blob: 4568617bf5eec84404f73f74ef5fe040d2761c56 [file] [log] [blame]
{"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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"}