blob: d65848295fc647499d5c76b2de2d7fef92302759 [file] [log] [blame]
{"version":3,"file":"echarts.simple.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/env.js","../node_modules/zrender/lib/core/util.js","../node_modules/zrender/lib/core/vector.js","../node_modules/zrender/lib/mixin/Draggable.js","../node_modules/zrender/lib/core/Eventful.js","../node_modules/zrender/lib/core/fourPointsTransform.js","../node_modules/zrender/lib/core/dom.js","../node_modules/zrender/lib/core/event.js","../node_modules/zrender/lib/core/GestureMgr.js","../node_modules/zrender/lib/Handler.js","../node_modules/zrender/lib/core/matrix.js","../node_modules/zrender/lib/core/Transformable.js","../node_modules/zrender/lib/animation/easing.js","../node_modules/zrender/lib/animation/Clip.js","../node_modules/zrender/lib/core/LRU.js","../node_modules/zrender/lib/tool/color.js","../node_modules/zrender/lib/animation/Animator.js","../node_modules/zrender/lib/core/Point.js","../node_modules/zrender/lib/core/BoundingRect.js","../node_modules/zrender/lib/contain/text.js","../node_modules/zrender/lib/config.js","../node_modules/zrender/lib/Element.js","../node_modules/zrender/lib/core/timsort.js","../node_modules/zrender/lib/Storage.js","../node_modules/zrender/lib/animation/requestAnimationFrame.js","../node_modules/zrender/lib/animation/Animation.js","../node_modules/zrender/lib/dom/HandlerProxy.js","../node_modules/zrender/lib/graphic/Group.js","../node_modules/zrender/lib/zrender.js","../lib/util/number.js","../lib/util/log.js","../lib/util/model.js","../lib/util/clazz.js","../lib/model/mixin/makeStyleMapper.js","../lib/model/mixin/areaStyle.js","../node_modules/zrender/lib/graphic/helper/image.js","../node_modules/zrender/lib/graphic/helper/parseText.js","../node_modules/zrender/lib/graphic/Displayable.js","../node_modules/zrender/lib/core/curve.js","../node_modules/zrender/lib/core/bbox.js","../node_modules/zrender/lib/core/PathProxy.js","../node_modules/zrender/lib/contain/line.js","../node_modules/zrender/lib/contain/cubic.js","../node_modules/zrender/lib/contain/quadratic.js","../node_modules/zrender/lib/contain/util.js","../node_modules/zrender/lib/contain/arc.js","../node_modules/zrender/lib/contain/windingLine.js","../node_modules/zrender/lib/contain/path.js","../node_modules/zrender/lib/graphic/Path.js","../node_modules/zrender/lib/graphic/TSpan.js","../node_modules/zrender/lib/graphic/Image.js","../node_modules/zrender/lib/graphic/helper/roundRect.js","../node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","../node_modules/zrender/lib/graphic/shape/Rect.js","../node_modules/zrender/lib/graphic/Text.js","../lib/util/innerStore.js","../lib/util/states.js","../node_modules/zrender/lib/tool/transformPath.js","../node_modules/zrender/lib/tool/path.js","../node_modules/zrender/lib/graphic/shape/Circle.js","../node_modules/zrender/lib/graphic/shape/Ellipse.js","../node_modules/zrender/lib/graphic/helper/roundSector.js","../node_modules/zrender/lib/graphic/shape/Sector.js","../node_modules/zrender/lib/graphic/shape/Ring.js","../node_modules/zrender/lib/graphic/helper/smoothSpline.js","../node_modules/zrender/lib/graphic/helper/smoothBezier.js","../node_modules/zrender/lib/graphic/helper/poly.js","../node_modules/zrender/lib/graphic/shape/Polygon.js","../node_modules/zrender/lib/graphic/shape/Polyline.js","../node_modules/zrender/lib/graphic/shape/Line.js","../node_modules/zrender/lib/graphic/shape/BezierCurve.js","../node_modules/zrender/lib/graphic/shape/Arc.js","../node_modules/zrender/lib/graphic/CompoundPath.js","../node_modules/zrender/lib/graphic/Gradient.js","../node_modules/zrender/lib/graphic/LinearGradient.js","../node_modules/zrender/lib/graphic/RadialGradient.js","../node_modules/zrender/lib/core/OrientedBoundingRect.js","../node_modules/zrender/lib/graphic/IncrementalDisplayable.js","../lib/util/graphic.js","../lib/label/labelStyle.js","../lib/model/mixin/textStyle.js","../lib/model/mixin/lineStyle.js","../lib/model/mixin/itemStyle.js","../lib/model/Model.js","../lib/util/component.js","../lib/i18n/langEN.js","../lib/i18n/langZH.js","../lib/core/locale.js","../lib/util/time.js","../lib/legacy/getTextRect.js","../lib/util/format.js","../lib/util/layout.js","../lib/model/Component.js","../lib/model/globalDefault.js","../lib/util/types.js","../lib/data/helper/sourceHelper.js","../lib/model/internalComponentCreator.js","../lib/model/mixin/palette.js","../lib/model/Global.js","../lib/core/ExtensionAPI.js","../lib/core/CoordinateSystem.js","../lib/model/OptionManager.js","../lib/preprocessor/helper/compatStyle.js","../lib/preprocessor/backwardCompat.js","../lib/processor/dataStack.js","../lib/data/Source.js","../lib/data/helper/dataProvider.js","../lib/model/mixin/dataFormat.js","../lib/core/task.js","../lib/data/helper/dataValueHelper.js","../lib/data/helper/transform.js","../lib/data/helper/sourceManager.js","../lib/component/tooltip/tooltipMarkup.js","../lib/component/tooltip/seriesFormatTooltip.js","../lib/model/Series.js","../lib/view/Component.js","../lib/chart/helper/createRenderPlanner.js","../lib/view/Chart.js","../lib/util/throttle.js","../lib/visual/style.js","../lib/loading/default.js","../lib/core/Scheduler.js","../lib/theme/light.js","../lib/theme/dark.js","../node_modules/zrender/lib/tool/parseXML.js","../lib/coord/geo/mapDataStorage.js","../lib/util/ECEventProcessor.js","../lib/visual/symbol.js","../lib/visual/helper.js","../lib/label/labelGuideHelper.js","../lib/label/labelLayoutHelper.js","../lib/label/LabelManager.js","../lib/legacy/dataSelectAction.js","../lib/util/event.js","../node_modules/zrender/lib/core/WeakMap.js","../lib/util/symbol.js","../node_modules/zrender/lib/canvas/helper.js","../node_modules/zrender/lib/graphic/helper/dashStyle.js","../node_modules/zrender/lib/canvas/graphic.js","../lib/util/decal.js","../lib/visual/decal.js","../lib/core/echarts.js","../lib/extension.js","../lib/data/DataDiffer.js","../lib/data/helper/dimensionHelper.js","../lib/data/DataDimensionInfo.js","../lib/data/List.js","../lib/data/helper/completeDimensions.js","../lib/data/helper/createDimensions.js","../lib/model/referHelper.js","../lib/data/helper/dataStackHelper.js","../lib/chart/helper/createListFromArray.js","../lib/scale/Scale.js","../lib/data/OrdinalMeta.js","../lib/scale/helper.js","../lib/scale/Ordinal.js","../lib/scale/Interval.js","../lib/layout/barGrid.js","../lib/scale/Time.js","../lib/scale/Log.js","../lib/coord/scaleRawExtentInfo.js","../lib/coord/axisHelper.js","../lib/coord/axisModelCommonMixin.js","../lib/export/api/helper.js","../node_modules/zrender/lib/contain/polygon.js","../lib/coord/geo/Region.js","../lib/coord/geo/parseGeoJson.js","../lib/coord/axisTickLabelBuilder.js","../lib/coord/Axis.js","../lib/export/api.js","../node_modules/zrender/lib/canvas/Layer.js","../node_modules/zrender/lib/canvas/Painter.js","../lib/renderer/installCanvasRenderer.js","../lib/chart/line/LineSeries.js","../lib/chart/helper/labelHelper.js","../lib/chart/helper/Symbol.js","../lib/chart/helper/SymbolDraw.js","../lib/chart/line/helper.js","../lib/util/vendor.js","../lib/chart/line/lineAnimationDiff.js","../lib/chart/line/poly.js","../lib/chart/helper/createClipPathFromCoordSys.js","../lib/coord/CoordinateSystem.js","../lib/chart/line/LineView.js","../lib/layout/points.js","../lib/processor/dataSample.js","../lib/chart/line/install.js","../lib/chart/bar/BaseBarSeries.js","../lib/chart/bar/BarSeries.js","../lib/util/shape/sausage.js","../lib/chart/bar/BarView.js","../lib/chart/bar/install.js","../lib/chart/pie/pieLayout.js","../lib/processor/dataFilter.js","../lib/chart/pie/labelLayout.js","../lib/chart/helper/pieHelper.js","../lib/chart/pie/PieView.js","../lib/chart/helper/createListSimply.js","../lib/visual/LegendVisualProvider.js","../lib/chart/pie/PieSeries.js","../lib/chart/pie/install.js","../lib/coord/cartesian/GridModel.js","../lib/coord/cartesian/AxisModel.js","../lib/coord/axisDefault.js","../lib/coord/axisCommonTypes.js","../lib/coord/axisModelCreator.js","../lib/coord/cartesian/Cartesian.js","../lib/coord/cartesian/Cartesian2D.js","../lib/coord/cartesian/Axis2D.js","../lib/coord/cartesian/cartesianAxisHelper.js","../lib/coord/cartesian/Grid.js","../lib/component/axis/AxisBuilder.js","../lib/component/axisPointer/modelHelper.js","../lib/component/axis/AxisView.js","../lib/component/axis/axisSplitHelper.js","../lib/component/axis/CartesianAxisView.js","../lib/component/grid/installSimple.js","../lib/visual/aria.js","../lib/component/aria/preprocessor.js","../lib/component/aria/install.js","../lib/component/dataset/install.js","../index.simple.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","var Browser = (function () {\n function Browser() {\n this.firefox = false;\n this.ie = false;\n this.edge = false;\n this.newEdge = false;\n this.weChat = false;\n }\n return Browser;\n}());\nvar Env = (function () {\n function Env() {\n this.browser = new Browser();\n this.node = false;\n this.wxa = false;\n this.worker = false;\n this.canvasSupported = false;\n this.svgSupported = false;\n this.touchEventsSupported = false;\n this.pointerEventsSupported = false;\n this.domSupported = false;\n }\n return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n env.wxa = true;\n env.canvasSupported = true;\n env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n env.worker = true;\n env.canvasSupported = true;\n}\nelse if (typeof navigator === 'undefined') {\n env.node = true;\n env.canvasSupported = true;\n env.svgSupported = true;\n}\nelse {\n detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n var browser = env.browser;\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n var edge = ua.match(/Edge?\\/([\\d.]+)/);\n var weChat = (/micromessenger/i).test(ua);\n if (firefox) {\n browser.firefox = true;\n browser.version = firefox[1];\n }\n if (ie) {\n browser.ie = true;\n browser.version = ie[1];\n }\n if (edge) {\n browser.edge = true;\n browser.version = edge[1];\n browser.newEdge = +edge[1].split('.')[0] > 18;\n }\n if (weChat) {\n browser.weChat = true;\n }\n env.canvasSupported = !!document.createElement('canvas').getContext;\n env.svgSupported = typeof SVGRect !== 'undefined';\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n env.pointerEventsSupported = 'onpointerdown' in window\n && (browser.edge || (browser.ie && +browser.version >= 11));\n env.domSupported = typeof document !== 'undefined';\n}\nexport default env;\n","var BUILTIN_OBJECT = {\n '[object Function]': true,\n '[object RegExp]': true,\n '[object Date]': true,\n '[object Error]': true,\n '[object CanvasGradient]': true,\n '[object CanvasPattern]': true,\n '[object Image]': true,\n '[object Canvas]': true\n};\nvar TYPED_ARRAY = {\n '[object Int8Array]': true,\n '[object Uint8Array]': true,\n '[object Uint8ClampedArray]': true,\n '[object Int16Array]': true,\n '[object Uint16Array]': true,\n '[object Int32Array]': true,\n '[object Uint32Array]': true,\n '[object Float32Array]': true,\n '[object Float64Array]': true\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar methods = {};\nexport function $override(name, fn) {\n methods[name] = fn;\n}\nvar idStart = 0x0907;\nexport function guid() {\n return idStart++;\n}\nexport function logError() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (typeof console !== 'undefined') {\n console.error.apply(console, args);\n }\n}\nexport function clone(source) {\n if (source == null || typeof source !== 'object') {\n return source;\n }\n var result = source;\n var typeStr = objToString.call(source);\n if (typeStr === '[object Array]') {\n if (!isPrimitive(source)) {\n result = [];\n for (var i = 0, len = source.length; i < len; i++) {\n result[i] = clone(source[i]);\n }\n }\n }\n else if (TYPED_ARRAY[typeStr]) {\n if (!isPrimitive(source)) {\n var Ctor = source.constructor;\n if (Ctor.from) {\n result = Ctor.from(source);\n }\n else {\n result = new Ctor(source.length);\n for (var i = 0, len = source.length; i < len; i++) {\n result[i] = clone(source[i]);\n }\n }\n }\n }\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n result = {};\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n result[key] = clone(source[key]);\n }\n }\n }\n return result;\n}\nexport function merge(target, source, overwrite) {\n if (!isObject(source) || !isObject(target)) {\n return overwrite ? clone(source) : target;\n }\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n var targetProp = target[key];\n var sourceProp = source[key];\n if (isObject(sourceProp)\n && isObject(targetProp)\n && !isArray(sourceProp)\n && !isArray(targetProp)\n && !isDom(sourceProp)\n && !isDom(targetProp)\n && !isBuiltInObject(sourceProp)\n && !isBuiltInObject(targetProp)\n && !isPrimitive(sourceProp)\n && !isPrimitive(targetProp)) {\n merge(targetProp, sourceProp, overwrite);\n }\n else if (overwrite || !(key in target)) {\n target[key] = clone(source[key]);\n }\n }\n }\n return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n var result = targetAndSources[0];\n for (var i = 1, len = targetAndSources.length; i < len; i++) {\n result = merge(result, targetAndSources[i], overwrite);\n }\n return result;\n}\nexport function extend(target, source) {\n if (Object.assign) {\n Object.assign(target, source);\n }\n else {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n}\nexport function defaults(target, source, overlay) {\n var keysArr = keys(source);\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n if ((overlay ? source[key] != null : target[key] == null)) {\n target[key] = source[key];\n }\n }\n return target;\n}\nexport var createCanvas = function () {\n return methods.createCanvas();\n};\nmethods.createCanvas = function () {\n return document.createElement('canvas');\n};\nexport function indexOf(array, value) {\n if (array) {\n if (array.indexOf) {\n return array.indexOf(value);\n }\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n }\n return -1;\n}\nexport function inherits(clazz, baseClazz) {\n var clazzPrototype = clazz.prototype;\n function F() { }\n F.prototype = baseClazz.prototype;\n clazz.prototype = new F();\n for (var prop in clazzPrototype) {\n if (clazzPrototype.hasOwnProperty(prop)) {\n clazz.prototype[prop] = clazzPrototype[prop];\n }\n }\n clazz.prototype.constructor = clazz;\n clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n target = 'prototype' in target ? target.prototype : target;\n source = 'prototype' in source ? source.prototype : source;\n if (Object.getOwnPropertyNames) {\n var keyList = Object.getOwnPropertyNames(source);\n for (var i = 0; i < keyList.length; i++) {\n var key = keyList[i];\n if (key !== 'constructor') {\n if ((override ? source[key] != null : target[key] == null)) {\n target[key] = source[key];\n }\n }\n }\n }\n else {\n defaults(target, source, override);\n }\n}\nexport function isArrayLike(data) {\n if (!data) {\n return false;\n }\n if (typeof data === 'string') {\n return false;\n }\n return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n if (!(arr && cb)) {\n return;\n }\n if (arr.forEach && arr.forEach === nativeForEach) {\n arr.forEach(cb, context);\n }\n else if (arr.length === +arr.length) {\n for (var i = 0, len = arr.length; i < len; i++) {\n cb.call(context, arr[i], i, arr);\n }\n }\n else {\n for (var key in arr) {\n if (arr.hasOwnProperty(key)) {\n cb.call(context, arr[key], key, arr);\n }\n }\n }\n}\nexport function map(arr, cb, context) {\n if (!arr) {\n return [];\n }\n if (!cb) {\n return slice(arr);\n }\n if (arr.map && arr.map === nativeMap) {\n return arr.map(cb, context);\n }\n else {\n var result = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n result.push(cb.call(context, arr[i], i, arr));\n }\n return result;\n }\n}\nexport function reduce(arr, cb, memo, context) {\n if (!(arr && cb)) {\n return;\n }\n for (var i = 0, len = arr.length; i < len; i++) {\n memo = cb.call(context, memo, arr[i], i, arr);\n }\n return memo;\n}\nexport function filter(arr, cb, context) {\n if (!arr) {\n return [];\n }\n if (!cb) {\n return slice(arr);\n }\n if (arr.filter && arr.filter === nativeFilter) {\n return arr.filter(cb, context);\n }\n else {\n var result = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n if (cb.call(context, arr[i], i, arr)) {\n result.push(arr[i]);\n }\n }\n return result;\n }\n}\nexport function find(arr, cb, context) {\n if (!(arr && cb)) {\n return;\n }\n for (var i = 0, len = arr.length; i < len; i++) {\n if (cb.call(context, arr[i], i, arr)) {\n return arr[i];\n }\n }\n}\nexport function keys(obj) {\n if (!obj) {\n return [];\n }\n if (Object.keys) {\n return Object.keys(obj);\n }\n var keyList = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n keyList.push(key);\n }\n }\n return keyList;\n}\nfunction bindPolyfill(func, context) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n return function () {\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\n };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n ? protoFunction.call.bind(protoFunction.bind)\n : bindPolyfill;\nfunction curry(func) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return function () {\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\n };\n}\nexport { curry };\nexport function isArray(value) {\n if (Array.isArray) {\n return Array.isArray(value);\n }\n return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n return typeof value === 'function';\n}\nexport function isString(value) {\n return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\nexport function isObject(value) {\n var type = typeof value;\n return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n return typeof value === 'object'\n && typeof value.nodeType === 'number'\n && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n return value.colorStops != null;\n}\nexport function isPatternObject(value) {\n return value.image != null;\n}\nexport function isRegExp(value) {\n return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n return value !== value;\n}\nexport function retrieve() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var i = 0, len = args.length; i < len; i++) {\n if (args[i] != null) {\n return args[i];\n }\n }\n}\nexport function retrieve2(value0, value1) {\n return value0 != null\n ? value0\n : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n return value0 != null\n ? value0\n : value1 != null\n ? value1\n : value2;\n}\nexport function slice(arr) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n if (typeof (val) === 'number') {\n return [val, val, val, val];\n }\n var len = val.length;\n if (len === 2) {\n return [val[0], val[1], val[0], val[1]];\n }\n else if (len === 3) {\n return [val[0], val[1], val[2], val[1]];\n }\n return val;\n}\nexport function assert(condition, message) {\n if (!condition) {\n throw new Error(message);\n }\n}\nexport function trim(str) {\n if (str == null) {\n return null;\n }\n else if (typeof str.trim === 'function') {\n return str.trim();\n }\n else {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n return obj[primitiveKey];\n}\nvar HashMap = (function () {\n function HashMap(obj) {\n this.data = {};\n var isArr = isArray(obj);\n this.data = {};\n var thisMap = this;\n (obj instanceof HashMap)\n ? obj.each(visit)\n : (obj && each(obj, visit));\n function visit(value, key) {\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n }\n }\n HashMap.prototype.get = function (key) {\n return this.data.hasOwnProperty(key) ? this.data[key] : null;\n };\n HashMap.prototype.set = function (key, value) {\n return (this.data[key] = value);\n };\n HashMap.prototype.each = function (cb, context) {\n for (var key in this.data) {\n if (this.data.hasOwnProperty(key)) {\n cb.call(context, this.data[key], key);\n }\n }\n };\n HashMap.prototype.keys = function () {\n return keys(this.data);\n };\n HashMap.prototype.removeKey = function (key) {\n delete this.data[key];\n };\n return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n var newArray = new a.constructor(a.length + b.length);\n for (var i = 0; i < a.length; i++) {\n newArray[i] = a[i];\n }\n var offset = a.length;\n for (var i = 0; i < b.length; i++) {\n newArray[i + offset] = b[i];\n }\n return newArray;\n}\nexport function createObject(proto, properties) {\n var obj;\n if (Object.create) {\n obj = Object.create(proto);\n }\n else {\n var StyleCtor = function () { };\n StyleCtor.prototype = proto;\n obj = new StyleCtor();\n }\n if (properties) {\n extend(obj, properties);\n }\n return obj;\n}\nexport function hasOwn(own, prop) {\n return own.hasOwnProperty(prop);\n}\nexport function noop() { }\n","export function create(x, y) {\n if (x == null) {\n x = 0;\n }\n if (y == null) {\n y = 0;\n }\n return [x, y];\n}\nexport function copy(out, v) {\n out[0] = v[0];\n out[1] = v[1];\n return out;\n}\nexport function clone(v) {\n return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n out[0] = a;\n out[1] = b;\n return out;\n}\nexport function add(out, v1, v2) {\n out[0] = v1[0] + v2[0];\n out[1] = v1[1] + v2[1];\n return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n out[0] = v1[0] + v2[0] * a;\n out[1] = v1[1] + v2[1] * a;\n return out;\n}\nexport function sub(out, v1, v2) {\n out[0] = v1[0] - v2[0];\n out[1] = v1[1] - v2[1];\n return out;\n}\nexport function len(v) {\n return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n out[0] = v1[0] * v2[0];\n out[1] = v1[1] * v2[1];\n return out;\n}\nexport function div(out, v1, v2) {\n out[0] = v1[0] / v2[0];\n out[1] = v1[1] / v2[1];\n return out;\n}\nexport function dot(v1, v2) {\n return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n out[0] = v[0] * s;\n out[1] = v[1] * s;\n return out;\n}\nexport function normalize(out, v) {\n var d = len(v);\n if (d === 0) {\n out[0] = 0;\n out[1] = 0;\n }\n else {\n out[0] = v[0] / d;\n out[1] = v[1] / d;\n }\n return out;\n}\nexport function distance(v1, v2) {\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n out[0] = -v[0];\n out[1] = -v[1];\n return out;\n}\nexport function lerp(out, v1, v2, t) {\n out[0] = v1[0] + t * (v2[0] - v1[0]);\n out[1] = v1[1] + t * (v2[1] - v1[1]);\n return out;\n}\nexport function applyTransform(out, v, m) {\n var x = v[0];\n var y = v[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\nexport function min(out, v1, v2) {\n out[0] = Math.min(v1[0], v2[0]);\n out[1] = Math.min(v1[1], v2[1]);\n return out;\n}\nexport function max(out, v1, v2) {\n out[0] = Math.max(v1[0], v2[0]);\n out[1] = Math.max(v1[1], v2[1]);\n return out;\n}\n","var Param = (function () {\n function Param(target, e) {\n this.target = target;\n this.topTarget = e && e.topTarget;\n }\n return Param;\n}());\nvar Draggable = (function () {\n function Draggable(handler) {\n this.handler = handler;\n handler.on('mousedown', this._dragStart, this);\n handler.on('mousemove', this._drag, this);\n handler.on('mouseup', this._dragEnd, this);\n }\n Draggable.prototype._dragStart = function (e) {\n var draggingTarget = e.target;\n while (draggingTarget && !draggingTarget.draggable) {\n draggingTarget = draggingTarget.parent;\n }\n if (draggingTarget) {\n this._draggingTarget = draggingTarget;\n draggingTarget.dragging = true;\n this._x = e.offsetX;\n this._y = e.offsetY;\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n }\n };\n Draggable.prototype._drag = function (e) {\n var draggingTarget = this._draggingTarget;\n if (draggingTarget) {\n var x = e.offsetX;\n var y = e.offsetY;\n var dx = x - this._x;\n var dy = y - this._y;\n this._x = x;\n this._y = y;\n draggingTarget.drift(dx, dy, e);\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n var lastDropTarget = this._dropTarget;\n this._dropTarget = dropTarget;\n if (draggingTarget !== dropTarget) {\n if (lastDropTarget && dropTarget !== lastDropTarget) {\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n }\n if (dropTarget && dropTarget !== lastDropTarget) {\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n }\n }\n }\n };\n Draggable.prototype._dragEnd = function (e) {\n var draggingTarget = this._draggingTarget;\n if (draggingTarget) {\n draggingTarget.dragging = false;\n }\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n if (this._dropTarget) {\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n }\n this._draggingTarget = null;\n this._dropTarget = null;\n };\n return Draggable;\n}());\nexport default Draggable;\n","var Eventful = (function () {\n function Eventful(eventProcessors) {\n if (eventProcessors) {\n this._$eventProcessor = eventProcessors;\n }\n }\n Eventful.prototype.on = function (event, query, handler, context) {\n if (!this._$handlers) {\n this._$handlers = {};\n }\n var _h = this._$handlers;\n if (typeof query === 'function') {\n context = handler;\n handler = query;\n query = null;\n }\n if (!handler || !event) {\n return this;\n }\n var eventProcessor = this._$eventProcessor;\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n query = eventProcessor.normalizeQuery(query);\n }\n if (!_h[event]) {\n _h[event] = [];\n }\n for (var i = 0; i < _h[event].length; i++) {\n if (_h[event][i].h === handler) {\n return this;\n }\n }\n var wrap = {\n h: handler,\n query: query,\n ctx: (context || this),\n callAtLast: handler.zrEventfulCallAtLast\n };\n var lastIndex = _h[event].length - 1;\n var lastWrap = _h[event][lastIndex];\n (lastWrap && lastWrap.callAtLast)\n ? _h[event].splice(lastIndex, 0, wrap)\n : _h[event].push(wrap);\n return this;\n };\n Eventful.prototype.isSilent = function (eventName) {\n var _h = this._$handlers;\n return !_h || !_h[eventName] || !_h[eventName].length;\n };\n Eventful.prototype.off = function (eventType, handler) {\n var _h = this._$handlers;\n if (!_h) {\n return this;\n }\n if (!eventType) {\n this._$handlers = {};\n return this;\n }\n if (handler) {\n if (_h[eventType]) {\n var newList = [];\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\n if (_h[eventType][i].h !== handler) {\n newList.push(_h[eventType][i]);\n }\n }\n _h[eventType] = newList;\n }\n if (_h[eventType] && _h[eventType].length === 0) {\n delete _h[eventType];\n }\n }\n else {\n delete _h[eventType];\n }\n return this;\n };\n Eventful.prototype.trigger = function (eventType) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!this._$handlers) {\n return this;\n }\n var _h = this._$handlers[eventType];\n var eventProcessor = this._$eventProcessor;\n if (_h) {\n var argLen = args.length;\n var len = _h.length;\n for (var i = 0; i < len; i++) {\n var hItem = _h[i];\n if (eventProcessor\n && eventProcessor.filter\n && hItem.query != null\n && !eventProcessor.filter(eventType, hItem.query)) {\n continue;\n }\n switch (argLen) {\n case 0:\n hItem.h.call(hItem.ctx);\n break;\n case 1:\n hItem.h.call(hItem.ctx, args[0]);\n break;\n case 2:\n hItem.h.call(hItem.ctx, args[0], args[1]);\n break;\n default:\n hItem.h.apply(hItem.ctx, args);\n break;\n }\n }\n }\n eventProcessor && eventProcessor.afterTrigger\n && eventProcessor.afterTrigger(eventType);\n return this;\n };\n Eventful.prototype.triggerWithContext = function (type) {\n if (!this._$handlers) {\n return this;\n }\n var _h = this._$handlers[type];\n var eventProcessor = this._$eventProcessor;\n if (_h) {\n var args = arguments;\n var argLen = args.length;\n var ctx = args[argLen - 1];\n var len = _h.length;\n for (var i = 0; i < len; i++) {\n var hItem = _h[i];\n if (eventProcessor\n && eventProcessor.filter\n && hItem.query != null\n && !eventProcessor.filter(type, hItem.query)) {\n continue;\n }\n switch (argLen) {\n case 0:\n hItem.h.call(ctx);\n break;\n case 1:\n hItem.h.call(ctx, args[0]);\n break;\n case 2:\n hItem.h.call(ctx, args[0], args[1]);\n break;\n default:\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\n break;\n }\n }\n }\n eventProcessor && eventProcessor.afterTrigger\n && eventProcessor.afterTrigger(type);\n return this;\n };\n return Eventful;\n}());\nexport default Eventful;\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n var cacheKey = rowMask + '-' + colMask;\n var fullRank = rows.length;\n if (detCache.hasOwnProperty(cacheKey)) {\n return detCache[cacheKey];\n }\n if (rank === 1) {\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n return rows[rowStart][colStart];\n }\n var subRowMask = rowMask | (1 << rowStart);\n var subRowStart = rowStart + 1;\n while (rowMask & (1 << subRowStart)) {\n subRowStart++;\n }\n var sum = 0;\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n var colTag = 1 << j;\n if (!(colTag & colMask)) {\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n colLocalIdx++;\n }\n }\n detCache[cacheKey] = sum;\n return sum;\n}\nexport function buildTransformer(src, dest) {\n var mA = [\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n ];\n var detCache = {};\n var det = determinant(mA, 8, 0, 0, 0, detCache);\n if (det === 0) {\n return;\n }\n var vh = [];\n for (var i = 0; i < 8; i++) {\n for (var j = 0; j < 8; j++) {\n vh[j] == null && (vh[j] = 0);\n vh[j] += ((i + j) % 2 ? -1 : 1)\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n / det * dest[i];\n }\n }\n return function (out, srcPointX, srcPointY) {\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n };\n}\n","import env from './env';\nimport { buildTransformer } from './fourPointsTransform';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n var markers = prepareCoordMarkers(el, saved);\n var transformer = preparePointerTransformer(markers, saved, inverse);\n if (transformer) {\n transformer(out, inX, inY);\n return true;\n }\n }\n return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n var markers = saved.markers;\n if (markers) {\n return markers;\n }\n markers = saved.markers = [];\n var propLR = ['left', 'right'];\n var propTB = ['top', 'bottom'];\n for (var i = 0; i < 4; i++) {\n var marker = document.createElement('div');\n var stl = marker.style;\n var idxLR = i % 2;\n var idxTB = (i >> 1) % 2;\n stl.cssText = [\n 'position: absolute',\n 'visibility: hidden',\n 'padding: 0',\n 'margin: 0',\n 'border-width: 0',\n 'user-select: none',\n 'width:0',\n 'height:0',\n propLR[idxLR] + ':0',\n propTB[idxTB] + ':0',\n propLR[1 - idxLR] + ':auto',\n propTB[1 - idxTB] + ':auto',\n ''\n ].join('!important;');\n el.appendChild(marker);\n markers.push(marker);\n }\n return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n var transformerName = inverse ? 'invTrans' : 'trans';\n var transformer = saved[transformerName];\n var oldSrcCoords = saved.srcCoords;\n var srcCoords = [];\n var destCoords = [];\n var oldCoordTheSame = true;\n for (var i = 0; i < 4; i++) {\n var rect = markers[i].getBoundingClientRect();\n var ii = 2 * i;\n var x = rect.left;\n var y = rect.top;\n srcCoords.push(x, y);\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n }\n return (oldCoordTheSame && transformer)\n ? transformer\n : (saved.srcCoords = srcCoords,\n saved[transformerName] = inverse\n ? buildTransformer(destCoords, srcCoords)\n : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n return el.nodeName.toUpperCase() === 'CANVAS';\n}\n","import Eventful from './Eventful';\nimport env from './env';\nimport { isCanvasEl, transformCoordWithViewport } from './dom';\nvar isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nexport function clientToLocal(el, e, out, calculate) {\n out = out || {};\n if (calculate || !env.canvasSupported) {\n calculateZrXY(el, e, out);\n }\n else if (env.browser.firefox\n && e.layerX != null\n && e.layerX !== e.offsetX) {\n out.zrX = e.layerX;\n out.zrY = e.layerY;\n }\n else if (e.offsetX != null) {\n out.zrX = e.offsetX;\n out.zrY = e.offsetY;\n }\n else {\n calculateZrXY(el, e, out);\n }\n return out;\n}\nfunction calculateZrXY(el, e, out) {\n if (env.domSupported && el.getBoundingClientRect) {\n var ex = e.clientX;\n var ey = e.clientY;\n if (isCanvasEl(el)) {\n var box = el.getBoundingClientRect();\n out.zrX = ex - box.left;\n out.zrY = ey - box.top;\n return;\n }\n else {\n if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n out.zrX = _calcOut[0];\n out.zrY = _calcOut[1];\n return;\n }\n }\n }\n out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n return e\n || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n e = getNativeEvent(e);\n if (e.zrX != null) {\n return e;\n }\n var eventType = e.type;\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\n if (!isTouch) {\n clientToLocal(el, e, e, calculate);\n var wheelDelta = getWheelDeltaMayPolyfill(e);\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n }\n else {\n var touch = eventType !== 'touchend'\n ? e.targetTouches[0]\n : e.changedTouches[0];\n touch && clientToLocal(el, touch, e, calculate);\n }\n var button = e.button;\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n }\n return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n var rawWheelDelta = e.wheelDelta;\n if (rawWheelDelta) {\n return rawWheelDelta;\n }\n var deltaX = e.deltaX;\n var deltaY = e.deltaY;\n if (deltaX == null || deltaY == null) {\n return rawWheelDelta;\n }\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n var sign = deltaY > 0 ? -1\n : deltaY < 0 ? 1\n : deltaX > 0 ? -1\n : 1;\n return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n if (isDomLevel2) {\n el.addEventListener(name, handler, opt);\n }\n else {\n el.attachEvent('on' + name, handler);\n }\n}\nexport function removeEventListener(el, name, handler, opt) {\n if (isDomLevel2) {\n el.removeEventListener(name, handler, opt);\n }\n else {\n el.detachEvent('on' + name, handler);\n }\n}\nexport var stop = isDomLevel2\n ? function (e) {\n e.preventDefault();\n e.stopPropagation();\n e.cancelBubble = true;\n }\n : function (e) {\n e.returnValue = false;\n e.cancelBubble = true;\n };\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n return e.which === 2 || e.which === 3;\n}\nexport function notLeftMouse(e) {\n return e.which > 1;\n}\nexport { Eventful as Dispatcher };\n","import * as eventUtil from './event';\nvar GestureMgr = (function () {\n function GestureMgr() {\n this._track = [];\n }\n GestureMgr.prototype.recognize = function (event, target, root) {\n this._doTrack(event, target, root);\n return this._recognize(event);\n };\n GestureMgr.prototype.clear = function () {\n this._track.length = 0;\n return this;\n };\n GestureMgr.prototype._doTrack = function (event, target, root) {\n var touches = event.touches;\n if (!touches) {\n return;\n }\n var trackItem = {\n points: [],\n touches: [],\n target: target,\n event: event\n };\n for (var i = 0, len = touches.length; i < len; i++) {\n var touch = touches[i];\n var pos = eventUtil.clientToLocal(root, touch, {});\n trackItem.points.push([pos.zrX, pos.zrY]);\n trackItem.touches.push(touch);\n }\n this._track.push(trackItem);\n };\n GestureMgr.prototype._recognize = function (event) {\n for (var eventName in recognizers) {\n if (recognizers.hasOwnProperty(eventName)) {\n var gestureInfo = recognizers[eventName](this._track, event);\n if (gestureInfo) {\n return gestureInfo;\n }\n }\n }\n };\n return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n var dx = pointPair[1][0] - pointPair[0][0];\n var dy = pointPair[1][1] - pointPair[0][1];\n return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n return [\n (pointPair[0][0] + pointPair[1][0]) / 2,\n (pointPair[0][1] + pointPair[1][1]) / 2\n ];\n}\nvar recognizers = {\n pinch: function (tracks, event) {\n var trackLen = tracks.length;\n if (!trackLen) {\n return;\n }\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n if (pinchPre\n && pinchPre.length > 1\n && pinchEnd\n && pinchEnd.length > 1) {\n var pinchScale = dist(pinchEnd) / dist(pinchPre);\n !isFinite(pinchScale) && (pinchScale = 1);\n event.pinchScale = pinchScale;\n var pinchCenter = center(pinchEnd);\n event.pinchX = pinchCenter[0];\n event.pinchY = pinchCenter[1];\n return {\n type: 'pinch',\n target: tracks[0].target,\n event: event\n };\n }\n }\n};\n","import { __extends } from \"tslib\";\nimport * as util from './core/util';\nimport * as vec2 from './core/vector';\nimport Draggable from './mixin/Draggable';\nimport Eventful from './core/Eventful';\nimport * as eventTool from './core/event';\nimport { GestureMgr } from './core/GestureMgr';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n return {\n type: eveType,\n event: event,\n target: targetInfo.target,\n topTarget: targetInfo.topTarget,\n cancelBubble: false,\n offsetX: event.zrX,\n offsetY: event.zrY,\n gestureEvent: event.gestureEvent,\n pinchX: event.pinchX,\n pinchY: event.pinchY,\n pinchScale: event.pinchScale,\n wheelDelta: event.zrDelta,\n zrByTouch: event.zrByTouch,\n which: event.which,\n stop: stopEvent\n };\n}\nfunction stopEvent() {\n eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n __extends(EmptyProxy, _super);\n function EmptyProxy() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handler = null;\n return _this;\n }\n EmptyProxy.prototype.dispose = function () { };\n EmptyProxy.prototype.setCursor = function () { };\n return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n function HoveredResult(x, y) {\n this.x = x;\n this.y = y;\n }\n return HoveredResult;\n}());\nvar handlerNames = [\n 'click', 'dblclick', 'mousewheel', 'mouseout',\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar Handler = (function (_super) {\n __extends(Handler, _super);\n function Handler(storage, painter, proxy, painterRoot) {\n var _this = _super.call(this) || this;\n _this._hovered = new HoveredResult(0, 0);\n _this.storage = storage;\n _this.painter = painter;\n _this.painterRoot = painterRoot;\n proxy = proxy || new EmptyProxy();\n _this.proxy = null;\n _this.setHandlerProxy(proxy);\n _this._draggingMgr = new Draggable(_this);\n return _this;\n }\n Handler.prototype.setHandlerProxy = function (proxy) {\n if (this.proxy) {\n this.proxy.dispose();\n }\n if (proxy) {\n util.each(handlerNames, function (name) {\n proxy.on && proxy.on(name, this[name], this);\n }, this);\n proxy.handler = this;\n }\n this.proxy = proxy;\n };\n Handler.prototype.mousemove = function (event) {\n var x = event.zrX;\n var y = event.zrY;\n var isOutside = isOutsideBoundary(this, x, y);\n var lastHovered = this._hovered;\n var lastHoveredTarget = lastHovered.target;\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n lastHoveredTarget = lastHovered.target;\n }\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n var hoveredTarget = hovered.target;\n var proxy = this.proxy;\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n this.dispatchToElement(lastHovered, 'mouseout', event);\n }\n this.dispatchToElement(hovered, 'mousemove', event);\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n this.dispatchToElement(hovered, 'mouseover', event);\n }\n };\n Handler.prototype.mouseout = function (event) {\n var eventControl = event.zrEventControl;\n if (eventControl !== 'only_globalout') {\n this.dispatchToElement(this._hovered, 'mouseout', event);\n }\n if (eventControl !== 'no_globalout') {\n this.trigger('globalout', { type: 'globalout', event: event });\n }\n };\n Handler.prototype.resize = function () {\n this._hovered = new HoveredResult(0, 0);\n };\n Handler.prototype.dispatch = function (eventName, eventArgs) {\n var handler = this[eventName];\n handler && handler.call(this, eventArgs);\n };\n Handler.prototype.dispose = function () {\n this.proxy.dispose();\n this.storage = null;\n this.proxy = null;\n this.painter = null;\n };\n Handler.prototype.setCursorStyle = function (cursorStyle) {\n var proxy = this.proxy;\n proxy.setCursor && proxy.setCursor(cursorStyle);\n };\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n targetInfo = targetInfo || {};\n var el = targetInfo.target;\n if (el && el.silent) {\n return;\n }\n var eventKey = ('on' + eventName);\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\n while (el) {\n el[eventKey]\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n el.trigger(eventName, eventPacket);\n el = el.__hostTarget ? el.__hostTarget : el.parent;\n if (eventPacket.cancelBubble) {\n break;\n }\n }\n if (!eventPacket.cancelBubble) {\n this.trigger(eventName, eventPacket);\n if (this.painter && this.painter.eachOtherLayer) {\n this.painter.eachOtherLayer(function (layer) {\n if (typeof (layer[eventKey]) === 'function') {\n layer[eventKey].call(layer, eventPacket);\n }\n if (layer.trigger) {\n layer.trigger(eventName, eventPacket);\n }\n });\n }\n }\n };\n Handler.prototype.findHover = function (x, y, exclude) {\n var list = this.storage.getDisplayList();\n var out = new HoveredResult(x, y);\n for (var i = list.length - 1; i >= 0; i--) {\n var hoverCheckResult = void 0;\n if (list[i] !== exclude\n && !list[i].ignore\n && (hoverCheckResult = isHover(list[i], x, y))) {\n !out.topTarget && (out.topTarget = list[i]);\n if (hoverCheckResult !== SILENT) {\n out.target = list[i];\n break;\n }\n }\n }\n return out;\n };\n Handler.prototype.processGesture = function (event, stage) {\n if (!this._gestureMgr) {\n this._gestureMgr = new GestureMgr();\n }\n var gestureMgr = this._gestureMgr;\n stage === 'start' && gestureMgr.clear();\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n stage === 'end' && gestureMgr.clear();\n if (gestureInfo) {\n var type = gestureInfo.type;\n event.gestureEvent = type;\n var res = new HoveredResult();\n res.target = gestureInfo.target;\n this.dispatchToElement(res, type, gestureInfo.event);\n }\n };\n return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n Handler.prototype[name] = function (event) {\n var x = event.zrX;\n var y = event.zrY;\n var isOutside = isOutsideBoundary(this, x, y);\n var hovered;\n var hoveredTarget;\n if (name !== 'mouseup' || !isOutside) {\n hovered = this.findHover(x, y);\n hoveredTarget = hovered.target;\n }\n if (name === 'mousedown') {\n this._downEl = hoveredTarget;\n this._downPoint = [event.zrX, event.zrY];\n this._upEl = hoveredTarget;\n }\n else if (name === 'mouseup') {\n this._upEl = hoveredTarget;\n }\n else if (name === 'click') {\n if (this._downEl !== this._upEl\n || !this._downPoint\n || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n return;\n }\n this._downPoint = null;\n }\n this.dispatchToElement(hovered, name, event);\n };\n});\nfunction isHover(displayable, x, y) {\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n var el = displayable;\n var isSilent = void 0;\n var ignoreClip = false;\n while (el) {\n if (el.ignoreClip) {\n ignoreClip = true;\n }\n if (!ignoreClip) {\n var clipPath = el.getClipPath();\n if (clipPath && !clipPath.contain(x, y)) {\n return false;\n }\n if (el.silent) {\n isSilent = true;\n }\n }\n var hostEl = el.__hostTarget;\n el = hostEl ? hostEl : el.parent;\n }\n return isSilent ? SILENT : true;\n }\n return false;\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n var painter = handlerInstance.painter;\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","export function create() {\n return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = 0;\n out[5] = 0;\n return out;\n}\nexport function copy(out, m) {\n out[0] = m[0];\n out[1] = m[1];\n out[2] = m[2];\n out[3] = m[3];\n out[4] = m[4];\n out[5] = m[5];\n return out;\n}\nexport function mul(out, m1, m2) {\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = out3;\n out[4] = out4;\n out[5] = out5;\n return out;\n}\nexport function translate(out, a, v) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4] + v[0];\n out[5] = a[5] + v[1];\n return out;\n}\nexport function rotate(out, a, rad) {\n var aa = a[0];\n var ac = a[2];\n var atx = a[4];\n var ab = a[1];\n var ad = a[3];\n var aty = a[5];\n var st = Math.sin(rad);\n var ct = Math.cos(rad);\n out[0] = aa * ct + ab * st;\n out[1] = -aa * st + ab * ct;\n out[2] = ac * ct + ad * st;\n out[3] = -ac * st + ct * ad;\n out[4] = ct * atx + st * aty;\n out[5] = ct * aty - st * atx;\n return out;\n}\nexport function scale(out, a, v) {\n var vx = v[0];\n var vy = v[1];\n out[0] = a[0] * vx;\n out[1] = a[1] * vy;\n out[2] = a[2] * vx;\n out[3] = a[3] * vy;\n out[4] = a[4] * vx;\n out[5] = a[5] * vy;\n return out;\n}\nexport function invert(out, a) {\n var aa = a[0];\n var ac = a[2];\n var atx = a[4];\n var ab = a[1];\n var ad = a[3];\n var aty = a[5];\n var det = aa * ad - ab * ac;\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n out[0] = ad * det;\n out[1] = -ab * det;\n out[2] = -ac * det;\n out[3] = aa * det;\n out[4] = (ac * aty - ad * atx) * det;\n out[5] = (ab * atx - aa * aty) * det;\n return out;\n}\nexport function clone(a) {\n var b = create();\n copy(b, a);\n return b;\n}\n","import * as matrix from './matrix';\nimport * as vector from './vector';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n function Transformable() {\n }\n Transformable.prototype.setPosition = function (arr) {\n this.x = arr[0];\n this.y = arr[1];\n };\n Transformable.prototype.setScale = function (arr) {\n this.scaleX = arr[0];\n this.scaleY = arr[1];\n };\n Transformable.prototype.setOrigin = function (arr) {\n this.originX = arr[0];\n this.originY = arr[1];\n };\n Transformable.prototype.needLocalTransform = function () {\n return isNotAroundZero(this.rotation)\n || isNotAroundZero(this.x)\n || isNotAroundZero(this.y)\n || isNotAroundZero(this.scaleX - 1)\n || isNotAroundZero(this.scaleY - 1);\n };\n Transformable.prototype.updateTransform = function () {\n var parent = this.parent;\n var parentHasTransform = parent && parent.transform;\n var needLocalTransform = this.needLocalTransform();\n var m = this.transform;\n if (!(needLocalTransform || parentHasTransform)) {\n m && mIdentity(m);\n return;\n }\n m = m || matrix.create();\n if (needLocalTransform) {\n this.getLocalTransform(m);\n }\n else {\n mIdentity(m);\n }\n if (parentHasTransform) {\n if (needLocalTransform) {\n matrix.mul(m, parent.transform, m);\n }\n else {\n matrix.copy(m, parent.transform);\n }\n }\n this.transform = m;\n this._resolveGlobalScaleRatio(m);\n };\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n var globalScaleRatio = this.globalScaleRatio;\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\n this.getGlobalScale(scaleTmp);\n var relX = scaleTmp[0] < 0 ? -1 : 1;\n var relY = scaleTmp[1] < 0 ? -1 : 1;\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n m[0] *= sx;\n m[1] *= sx;\n m[2] *= sy;\n m[3] *= sy;\n }\n this.invTransform = this.invTransform || matrix.create();\n matrix.invert(this.invTransform, m);\n };\n Transformable.prototype.getLocalTransform = function (m) {\n return Transformable.getLocalTransform(this, m);\n };\n Transformable.prototype.getComputedTransform = function () {\n var transformNode = this;\n var ancestors = [];\n while (transformNode) {\n ancestors.push(transformNode);\n transformNode = transformNode.parent;\n }\n while (transformNode = ancestors.pop()) {\n transformNode.updateTransform();\n }\n return this.transform;\n };\n Transformable.prototype.setLocalTransform = function (m) {\n if (!m) {\n return;\n }\n var sx = m[0] * m[0] + m[1] * m[1];\n var sy = m[2] * m[2] + m[3] * m[3];\n if (isNotAroundZero(sx - 1)) {\n sx = Math.sqrt(sx);\n }\n if (isNotAroundZero(sy - 1)) {\n sy = Math.sqrt(sy);\n }\n if (m[0] < 0) {\n sx = -sx;\n }\n if (m[3] < 0) {\n sy = -sy;\n }\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n if (sx < 0 && sy < 0) {\n this.rotation += Math.PI;\n sx = -sx;\n sy = -sy;\n }\n this.x = m[4];\n this.y = m[5];\n this.scaleX = sx;\n this.scaleY = sy;\n };\n Transformable.prototype.decomposeTransform = function () {\n if (!this.transform) {\n return;\n }\n var parent = this.parent;\n var m = this.transform;\n if (parent && parent.transform) {\n matrix.mul(tmpTransform, parent.invTransform, m);\n m = tmpTransform;\n }\n var ox = this.originX;\n var oy = this.originY;\n if (ox || oy) {\n originTransform[4] = ox;\n originTransform[5] = oy;\n matrix.mul(tmpTransform, m, originTransform);\n tmpTransform[4] -= ox;\n tmpTransform[5] -= oy;\n m = tmpTransform;\n }\n this.setLocalTransform(m);\n };\n Transformable.prototype.getGlobalScale = function (out) {\n var m = this.transform;\n out = out || [];\n if (!m) {\n out[0] = 1;\n out[1] = 1;\n return out;\n }\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n if (m[0] < 0) {\n out[0] = -out[0];\n }\n if (m[3] < 0) {\n out[1] = -out[1];\n }\n return out;\n };\n Transformable.prototype.transformCoordToLocal = function (x, y) {\n var v2 = [x, y];\n var invTransform = this.invTransform;\n if (invTransform) {\n vector.applyTransform(v2, v2, invTransform);\n }\n return v2;\n };\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\n var v2 = [x, y];\n var transform = this.transform;\n if (transform) {\n vector.applyTransform(v2, v2, transform);\n }\n return v2;\n };\n Transformable.prototype.getLineScale = function () {\n var m = this.transform;\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n : 1;\n };\n Transformable.getLocalTransform = function (target, m) {\n m = m || [];\n mIdentity(m);\n var ox = target.originX || 0;\n var oy = target.originY || 0;\n var sx = target.scaleX;\n var sy = target.scaleY;\n var rotation = target.rotation || 0;\n var x = target.x;\n var y = target.y;\n m[4] -= ox;\n m[5] -= oy;\n m[0] *= sx;\n m[1] *= sy;\n m[2] *= sx;\n m[3] *= sy;\n m[4] *= sx;\n m[5] *= sy;\n if (rotation) {\n matrix.rotate(m, m, rotation);\n }\n m[4] += ox;\n m[5] += oy;\n m[4] += x;\n m[5] += y;\n return m;\n };\n Transformable.initDefaultProps = (function () {\n var proto = Transformable.prototype;\n proto.x = 0;\n proto.y = 0;\n proto.scaleX = 1;\n proto.scaleY = 1;\n proto.originX = 0;\n proto.originY = 0;\n proto.rotation = 0;\n proto.globalScaleRatio = 1;\n })();\n return Transformable;\n}());\n;\nexport default Transformable;\n","var easing = {\n linear: function (k) {\n return k;\n },\n quadraticIn: function (k) {\n return k * k;\n },\n quadraticOut: function (k) {\n return k * (2 - k);\n },\n quadraticInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k;\n }\n return -0.5 * (--k * (k - 2) - 1);\n },\n cubicIn: function (k) {\n return k * k * k;\n },\n cubicOut: function (k) {\n return --k * k * k + 1;\n },\n cubicInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k;\n }\n return 0.5 * ((k -= 2) * k * k + 2);\n },\n quarticIn: function (k) {\n return k * k * k * k;\n },\n quarticOut: function (k) {\n return 1 - (--k * k * k * k);\n },\n quarticInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k * k;\n }\n return -0.5 * ((k -= 2) * k * k * k - 2);\n },\n quinticIn: function (k) {\n return k * k * k * k * k;\n },\n quinticOut: function (k) {\n return --k * k * k * k * k + 1;\n },\n quinticInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k * k * k;\n }\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\n },\n sinusoidalIn: function (k) {\n return 1 - Math.cos(k * Math.PI / 2);\n },\n sinusoidalOut: function (k) {\n return Math.sin(k * Math.PI / 2);\n },\n sinusoidalInOut: function (k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n },\n exponentialIn: function (k) {\n return k === 0 ? 0 : Math.pow(1024, k - 1);\n },\n exponentialOut: function (k) {\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n },\n exponentialInOut: function (k) {\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if ((k *= 2) < 1) {\n return 0.5 * Math.pow(1024, k - 1);\n }\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n },\n circularIn: function (k) {\n return 1 - Math.sqrt(1 - k * k);\n },\n circularOut: function (k) {\n return Math.sqrt(1 - (--k * k));\n },\n circularInOut: function (k) {\n if ((k *= 2) < 1) {\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\n }\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n },\n elasticIn: function (k) {\n var s;\n var a = 0.1;\n var p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / (2 * Math.PI);\n }\n return -(a * Math.pow(2, 10 * (k -= 1))\n * Math.sin((k - s) * (2 * Math.PI) / p));\n },\n elasticOut: function (k) {\n var s;\n var a = 0.1;\n var p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / (2 * Math.PI);\n }\n return (a * Math.pow(2, -10 * k)\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n },\n elasticInOut: function (k) {\n var s;\n var a = 0.1;\n var p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / (2 * Math.PI);\n }\n if ((k *= 2) < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n * Math.sin((k - s) * (2 * Math.PI) / p));\n }\n return a * Math.pow(2, -10 * (k -= 1))\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n },\n backIn: function (k) {\n var s = 1.70158;\n return k * k * ((s + 1) * k - s);\n },\n backOut: function (k) {\n var s = 1.70158;\n return --k * k * ((s + 1) * k + s) + 1;\n },\n backInOut: function (k) {\n var s = 1.70158 * 1.525;\n if ((k *= 2) < 1) {\n return 0.5 * (k * k * ((s + 1) * k - s));\n }\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n },\n bounceIn: function (k) {\n return 1 - easing.bounceOut(1 - k);\n },\n bounceOut: function (k) {\n if (k < (1 / 2.75)) {\n return 7.5625 * k * k;\n }\n else if (k < (2 / 2.75)) {\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n }\n else if (k < (2.5 / 2.75)) {\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n }\n else {\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n }\n },\n bounceInOut: function (k) {\n if (k < 0.5) {\n return easing.bounceIn(k * 2) * 0.5;\n }\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n }\n};\nexport default easing;\n","import easingFuncs from './easing';\nvar Clip = (function () {\n function Clip(opts) {\n this._initialized = false;\n this._startTime = 0;\n this._pausedTime = 0;\n this._paused = false;\n this._life = opts.life || 1000;\n this._delay = opts.delay || 0;\n this.loop = opts.loop == null ? false : opts.loop;\n this.gap = opts.gap || 0;\n this.easing = opts.easing || 'linear';\n this.onframe = opts.onframe;\n this.ondestroy = opts.ondestroy;\n this.onrestart = opts.onrestart;\n }\n Clip.prototype.step = function (globalTime, deltaTime) {\n if (!this._initialized) {\n this._startTime = globalTime + this._delay;\n this._initialized = true;\n }\n if (this._paused) {\n this._pausedTime += deltaTime;\n return;\n }\n var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\n if (percent < 0) {\n percent = 0;\n }\n percent = Math.min(percent, 1);\n var easing = this.easing;\n var easingFunc = typeof easing === 'string'\n ? easingFuncs[easing] : easing;\n var schedule = typeof easingFunc === 'function'\n ? easingFunc(percent)\n : percent;\n this.onframe && this.onframe(schedule);\n if (percent === 1) {\n if (this.loop) {\n this._restart(globalTime);\n this.onrestart && this.onrestart();\n }\n else {\n return true;\n }\n }\n return false;\n };\n Clip.prototype._restart = function (globalTime) {\n var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n this._startTime = globalTime - remainder + this.gap;\n this._pausedTime = 0;\n };\n Clip.prototype.pause = function () {\n this._paused = true;\n };\n Clip.prototype.resume = function () {\n this._paused = false;\n };\n return Clip;\n}());\nexport default Clip;\n","var Entry = (function () {\n function Entry(val) {\n this.value = val;\n }\n return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n function LinkedList() {\n this._len = 0;\n }\n LinkedList.prototype.insert = function (val) {\n var entry = new Entry(val);\n this.insertEntry(entry);\n return entry;\n };\n LinkedList.prototype.insertEntry = function (entry) {\n if (!this.head) {\n this.head = this.tail = entry;\n }\n else {\n this.tail.next = entry;\n entry.prev = this.tail;\n entry.next = null;\n this.tail = entry;\n }\n this._len++;\n };\n LinkedList.prototype.remove = function (entry) {\n var prev = entry.prev;\n var next = entry.next;\n if (prev) {\n prev.next = next;\n }\n else {\n this.head = next;\n }\n if (next) {\n next.prev = prev;\n }\n else {\n this.tail = prev;\n }\n entry.next = entry.prev = null;\n this._len--;\n };\n LinkedList.prototype.len = function () {\n return this._len;\n };\n LinkedList.prototype.clear = function () {\n this.head = this.tail = null;\n this._len = 0;\n };\n return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n function LRU(maxSize) {\n this._list = new LinkedList();\n this._maxSize = 10;\n this._map = {};\n this._maxSize = maxSize;\n }\n LRU.prototype.put = function (key, value) {\n var list = this._list;\n var map = this._map;\n var removed = null;\n if (map[key] == null) {\n var len = list.len();\n var entry = this._lastRemovedEntry;\n if (len >= this._maxSize && len > 0) {\n var leastUsedEntry = list.head;\n list.remove(leastUsedEntry);\n delete map[leastUsedEntry.key];\n removed = leastUsedEntry.value;\n this._lastRemovedEntry = leastUsedEntry;\n }\n if (entry) {\n entry.value = value;\n }\n else {\n entry = new Entry(value);\n }\n entry.key = key;\n list.insertEntry(entry);\n map[key] = entry;\n }\n return removed;\n };\n LRU.prototype.get = function (key) {\n var entry = this._map[key];\n var list = this._list;\n if (entry != null) {\n if (entry !== list.tail) {\n list.remove(entry);\n list.insertEntry(entry);\n }\n return entry.value;\n }\n };\n LRU.prototype.clear = function () {\n this._list.clear();\n this._map = {};\n };\n LRU.prototype.len = function () {\n return this._list.len();\n };\n return LRU;\n}());\nexport default LRU;\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n i = Math.round(i);\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n i = Math.round(i);\n return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n var str = val;\n if (str.length && str.charAt(str.length - 1) === '%') {\n return clampCssByte(parseFloat(str) / 100 * 255);\n }\n return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n var str = val;\n if (str.length && str.charAt(str.length - 1) === '%') {\n return clampCssFloat(parseFloat(str) / 100);\n }\n return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n if (h < 0) {\n h += 1;\n }\n else if (h > 1) {\n h -= 1;\n }\n if (h * 6 < 1) {\n return m1 + (m2 - m1) * h * 6;\n }\n if (h * 2 < 1) {\n return m2;\n }\n if (h * 3 < 2) {\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n }\n return m1;\n}\nfunction lerpNumber(a, b, p) {\n return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n out[0] = r;\n out[1] = g;\n out[2] = b;\n out[3] = a;\n return out;\n}\nfunction copyRgba(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n if (lastRemovedArr) {\n copyRgba(lastRemovedArr, rgbaArr);\n }\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n if (!colorStr) {\n return;\n }\n rgbaArr = rgbaArr || [];\n var cached = colorCache.get(colorStr);\n if (cached) {\n return copyRgba(rgbaArr, cached);\n }\n colorStr = colorStr + '';\n var str = colorStr.replace(/ /g, '').toLowerCase();\n if (str in kCSSColorTable) {\n copyRgba(rgbaArr, kCSSColorTable[str]);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n var strLen = str.length;\n if (str.charAt(0) === '#') {\n if (strLen === 4 || strLen === 5) {\n var iv = parseInt(str.slice(1, 4), 16);\n if (!(iv >= 0 && iv <= 0xfff)) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n else if (strLen === 7 || strLen === 9) {\n var iv = parseInt(str.slice(1, 7), 16);\n if (!(iv >= 0 && iv <= 0xffffff)) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n return;\n }\n var op = str.indexOf('(');\n var ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === strLen) {\n var fname = str.substr(0, op);\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\n var alpha = 1;\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) {\n return params.length === 3\n ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n : setRgba(rgbaArr, 0, 0, 0, 1);\n }\n alpha = parseCssFloat(params.pop());\n case 'rgb':\n if (params.length !== 3) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n case 'hsla':\n if (params.length !== 4) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n params[3] = parseCssFloat(params[3]);\n hsla2rgba(params, rgbaArr);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n case 'hsl':\n if (params.length !== 3) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n hsla2rgba(params, rgbaArr);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n default:\n return;\n }\n }\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n}\nfunction hsla2rgba(hsla, rgba) {\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n var s = parseCssFloat(hsla[1]);\n var l = parseCssFloat(hsla[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n rgba = rgba || [];\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\n if (hsla.length === 4) {\n rgba[3] = hsla[3];\n }\n return rgba;\n}\nfunction rgba2hsla(rgba) {\n if (!rgba) {\n return;\n }\n var R = rgba[0] / 255;\n var G = rgba[1] / 255;\n var B = rgba[2] / 255;\n var vMin = Math.min(R, G, B);\n var vMax = Math.max(R, G, B);\n var delta = vMax - vMin;\n var L = (vMax + vMin) / 2;\n var H;\n var S;\n if (delta === 0) {\n H = 0;\n S = 0;\n }\n else {\n if (L < 0.5) {\n S = delta / (vMax + vMin);\n }\n else {\n S = delta / (2 - vMax - vMin);\n }\n var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n if (R === vMax) {\n H = deltaB - deltaG;\n }\n else if (G === vMax) {\n H = (1 / 3) + deltaR - deltaB;\n }\n else if (B === vMax) {\n H = (2 / 3) + deltaG - deltaR;\n }\n if (H < 0) {\n H += 1;\n }\n if (H > 1) {\n H -= 1;\n }\n }\n var hsla = [H * 360, S, L];\n if (rgba[3] != null) {\n hsla.push(rgba[3]);\n }\n return hsla;\n}\nexport function lift(color, level) {\n var colorArr = parse(color);\n if (colorArr) {\n for (var i = 0; i < 3; i++) {\n if (level < 0) {\n colorArr[i] = colorArr[i] * (1 - level) | 0;\n }\n else {\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n }\n if (colorArr[i] > 255) {\n colorArr[i] = 255;\n }\n else if (colorArr[i] < 0) {\n colorArr[i] = 0;\n }\n }\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n }\n}\nexport function toHex(color) {\n var colorArr = parse(color);\n if (colorArr) {\n return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n if (!(colors && colors.length)\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n return;\n }\n out = out || [];\n var value = normalizedValue * (colors.length - 1);\n var leftIndex = Math.floor(value);\n var rightIndex = Math.ceil(value);\n var leftColor = colors[leftIndex];\n var rightColor = colors[rightIndex];\n var dv = value - leftIndex;\n out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n if (!(colors && colors.length)\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n return;\n }\n var value = normalizedValue * (colors.length - 1);\n var leftIndex = Math.floor(value);\n var rightIndex = Math.ceil(value);\n var leftColor = parse(colors[leftIndex]);\n var rightColor = parse(colors[rightIndex]);\n var dv = value - leftIndex;\n var color = stringify([\n clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n ], 'rgba');\n return fullOutput\n ? {\n color: color,\n leftIndex: leftIndex,\n rightIndex: rightIndex,\n value: value\n }\n : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n var colorArr = parse(color);\n if (color) {\n colorArr = rgba2hsla(colorArr);\n h != null && (colorArr[0] = clampCssAngle(h));\n s != null && (colorArr[1] = parseCssFloat(s));\n l != null && (colorArr[2] = parseCssFloat(l));\n return stringify(hsla2rgba(colorArr), 'rgba');\n }\n}\nexport function modifyAlpha(color, alpha) {\n var colorArr = parse(color);\n if (colorArr && alpha != null) {\n colorArr[3] = clampCssFloat(alpha);\n return stringify(colorArr, 'rgba');\n }\n}\nexport function stringify(arrColor, type) {\n if (!arrColor || !arrColor.length) {\n return;\n }\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n colorStr += ',' + arrColor[3];\n }\n return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n var arr = parse(color);\n return arr\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n + (1 - arr[3]) * backgroundLum\n : 0;\n}\nexport function random() {\n var r = Math.round(Math.random() * 255);\n var g = Math.round(Math.random() * 255);\n var b = Math.round(Math.random() * 255);\n return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n","import Clip from './Clip';\nimport * as color from '../tool/color';\nimport { isArrayLike, keys, logError } from '../core/util';\nvar arraySlice = Array.prototype.slice;\nexport function interpolateNumber(p0, p1, percent) {\n return (p1 - p0) * percent + p0;\n}\nexport function step(p0, p1, percent) {\n return percent > 0.5 ? p1 : p0;\n}\nexport function interpolate1DArray(out, p0, p1, percent) {\n var len = p0.length;\n for (var i = 0; i < len; i++) {\n out[i] = interpolateNumber(p0[i], p1[i], percent);\n }\n}\nexport function interpolate2DArray(out, p0, p1, percent) {\n var len = p0.length;\n var len2 = len && p0[0].length;\n for (var i = 0; i < len; i++) {\n if (!out[i]) {\n out[i] = [];\n }\n for (var j = 0; j < len2; j++) {\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n }\n }\n}\nfunction add1DArray(out, p0, p1, sign) {\n var len = p0.length;\n for (var i = 0; i < len; i++) {\n out[i] = p0[i] + p1[i] * sign;\n }\n return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n var len = p0.length;\n var len2 = len && p0[0].length;\n for (var i = 0; i < len; i++) {\n if (!out[i]) {\n out[i] = [];\n }\n for (var j = 0; j < len2; j++) {\n out[i][j] = p0[i][j] + p1[i][j] * sign;\n }\n }\n return out;\n}\nfunction fillArray(val0, val1, arrDim) {\n var arr0 = val0;\n var arr1 = val1;\n if (!arr0.push || !arr1.push) {\n return;\n }\n var arr0Len = arr0.length;\n var arr1Len = arr1.length;\n if (arr0Len !== arr1Len) {\n var isPreviousLarger = arr0Len > arr1Len;\n if (isPreviousLarger) {\n arr0.length = arr1Len;\n }\n else {\n for (var i = arr0Len; i < arr1Len; i++) {\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n }\n }\n }\n var len2 = arr0[0] && arr0[0].length;\n for (var i = 0; i < arr0.length; i++) {\n if (arrDim === 1) {\n if (isNaN(arr0[i])) {\n arr0[i] = arr1[i];\n }\n }\n else {\n for (var j = 0; j < len2; j++) {\n if (isNaN(arr0[i][j])) {\n arr0[i][j] = arr1[i][j];\n }\n }\n }\n }\n}\nfunction is1DArraySame(arr0, arr1) {\n var len = arr0.length;\n if (len !== arr1.length) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n if (arr0[i] !== arr1[i]) {\n return false;\n }\n }\n return true;\n}\nfunction is2DArraySame(arr0, arr1) {\n var len = arr0.length;\n if (len !== arr1.length) {\n return false;\n }\n var len2 = arr0[0].length;\n for (var i = 0; i < len; i++) {\n for (var j = 0; j < len2; j++) {\n if (arr0[i][j] !== arr1[i][j]) {\n return false;\n }\n }\n }\n return true;\n}\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n return (2 * (p1 - p2) + v0 + v1) * t3\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n + v0 * t + p1;\n}\nfunction catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\n var len = p0.length;\n for (var i = 0; i < len; i++) {\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n }\n}\nfunction catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\n var len = p0.length;\n var len2 = p0[0].length;\n for (var i = 0; i < len; i++) {\n if (!out[i]) {\n out[1] = [];\n }\n for (var j = 0; j < len2; j++) {\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n }\n }\n}\nexport function cloneValue(value) {\n if (isArrayLike(value)) {\n var len = value.length;\n if (isArrayLike(value[0])) {\n var ret = [];\n for (var i = 0; i < len; i++) {\n ret.push(arraySlice.call(value[i]));\n }\n return ret;\n }\n return arraySlice.call(value);\n }\n return value;\n}\nfunction rgba2String(rgba) {\n rgba[0] = Math.floor(rgba[0]);\n rgba[1] = Math.floor(rgba[1]);\n rgba[2] = Math.floor(rgba[2]);\n return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n function Track(propName) {\n this.keyframes = [];\n this.maxTime = 0;\n this.arrDim = 0;\n this.interpolable = true;\n this._needsSort = false;\n this._isAllValueEqual = true;\n this._lastFrame = 0;\n this._lastFramePercent = 0;\n this.propName = propName;\n }\n Track.prototype.isFinished = function () {\n return this._finished;\n };\n Track.prototype.setFinished = function () {\n this._finished = true;\n if (this._additiveTrack) {\n this._additiveTrack.setFinished();\n }\n };\n Track.prototype.needsAnimate = function () {\n return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\n };\n Track.prototype.getAdditiveTrack = function () {\n return this._additiveTrack;\n };\n Track.prototype.addKeyframe = function (time, value) {\n if (time >= this.maxTime) {\n this.maxTime = time;\n }\n else {\n this._needsSort = true;\n }\n var keyframes = this.keyframes;\n var len = keyframes.length;\n if (this.interpolable) {\n if (isArrayLike(value)) {\n var arrayDim = guessArrayDim(value);\n if (len > 0 && this.arrDim !== arrayDim) {\n this.interpolable = false;\n return;\n }\n if (arrayDim === 1 && typeof value[0] !== 'number'\n || arrayDim === 2 && typeof value[0][0] !== 'number') {\n this.interpolable = false;\n return;\n }\n if (len > 0) {\n var lastFrame = keyframes[len - 1];\n if (this._isAllValueEqual) {\n if (arrayDim === 1) {\n if (!is1DArraySame(value, lastFrame.value)) {\n this._isAllValueEqual = false;\n }\n }\n else {\n this._isAllValueEqual = false;\n }\n }\n }\n this.arrDim = arrayDim;\n }\n else {\n if (this.arrDim > 0) {\n this.interpolable = false;\n return;\n }\n if (typeof value === 'string') {\n var colorArray = color.parse(value);\n if (colorArray) {\n value = colorArray;\n this.isValueColor = true;\n }\n else {\n this.interpolable = false;\n }\n }\n else if (typeof value !== 'number') {\n this.interpolable = false;\n return;\n }\n if (this._isAllValueEqual && len > 0) {\n var lastFrame = keyframes[len - 1];\n if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\n this._isAllValueEqual = false;\n }\n else if (lastFrame.value !== value) {\n this._isAllValueEqual = false;\n }\n }\n }\n }\n var kf = {\n time: time,\n value: value,\n percent: 0\n };\n this.keyframes.push(kf);\n return kf;\n };\n Track.prototype.prepare = function (additiveTrack) {\n var kfs = this.keyframes;\n if (this._needsSort) {\n kfs.sort(function (a, b) {\n return a.time - b.time;\n });\n }\n var arrDim = this.arrDim;\n var kfsLen = kfs.length;\n var lastKf = kfs[kfsLen - 1];\n for (var i = 0; i < kfsLen; i++) {\n kfs[i].percent = kfs[i].time / this.maxTime;\n if (arrDim > 0 && i !== kfsLen - 1) {\n fillArray(kfs[i].value, lastKf.value, arrDim);\n }\n }\n if (additiveTrack\n && this.needsAnimate()\n && additiveTrack.needsAnimate()\n && arrDim === additiveTrack.arrDim\n && this.isValueColor === additiveTrack.isValueColor\n && !additiveTrack._finished) {\n this._additiveTrack = additiveTrack;\n var startValue = kfs[0].value;\n for (var i = 0; i < kfsLen; i++) {\n if (arrDim === 0) {\n if (this.isValueColor) {\n kfs[i].additiveValue\n = add1DArray([], kfs[i].value, startValue, -1);\n }\n else {\n kfs[i].additiveValue = kfs[i].value - startValue;\n }\n }\n else if (arrDim === 1) {\n kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\n }\n else if (arrDim === 2) {\n kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\n }\n }\n }\n };\n Track.prototype.step = function (target, percent) {\n if (this._finished) {\n return;\n }\n if (this._additiveTrack && this._additiveTrack._finished) {\n this._additiveTrack = null;\n }\n var isAdditive = this._additiveTrack != null;\n var valueKey = isAdditive ? 'additiveValue' : 'value';\n var keyframes = this.keyframes;\n var kfsNum = this.keyframes.length;\n var propName = this.propName;\n var arrDim = this.arrDim;\n var isValueColor = this.isValueColor;\n var frameIdx;\n if (percent < 0) {\n frameIdx = 0;\n }\n else if (percent < this._lastFramePercent) {\n var start = Math.min(this._lastFrame + 1, kfsNum - 1);\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n if (keyframes[frameIdx].percent <= percent) {\n break;\n }\n }\n frameIdx = Math.min(frameIdx, kfsNum - 2);\n }\n else {\n for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\n if (keyframes[frameIdx].percent > percent) {\n break;\n }\n }\n frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\n }\n var nextFrame = keyframes[frameIdx + 1];\n var frame = keyframes[frameIdx];\n if (!(frame && nextFrame)) {\n return;\n }\n this._lastFrame = frameIdx;\n this._lastFramePercent = percent;\n var range = (nextFrame.percent - frame.percent);\n if (range === 0) {\n return;\n }\n var w = (percent - frame.percent) / range;\n var targetArr = isAdditive ? this._additiveValue\n : (isValueColor ? tmpRgba : target[propName]);\n if ((arrDim > 0 || isValueColor) && !targetArr) {\n targetArr = this._additiveValue = [];\n }\n if (this.useSpline) {\n var p1 = keyframes[frameIdx][valueKey];\n var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\n var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\n var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\n if (arrDim > 0) {\n arrDim === 1\n ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\n : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n }\n else if (isValueColor) {\n catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n if (!isAdditive) {\n target[propName] = rgba2String(targetArr);\n }\n }\n else {\n var value = void 0;\n if (!this.interpolable) {\n value = p2;\n }\n else {\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n }\n if (isAdditive) {\n this._additiveValue = value;\n }\n else {\n target[propName] = value;\n }\n }\n }\n else {\n if (arrDim > 0) {\n arrDim === 1\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n }\n else if (isValueColor) {\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n if (!isAdditive) {\n target[propName] = rgba2String(targetArr);\n }\n }\n else {\n var value = void 0;\n if (!this.interpolable) {\n value = step(frame[valueKey], nextFrame[valueKey], w);\n }\n else {\n value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n }\n if (isAdditive) {\n this._additiveValue = value;\n }\n else {\n target[propName] = value;\n }\n }\n }\n if (isAdditive) {\n this._addToTarget(target);\n }\n };\n Track.prototype._addToTarget = function (target) {\n var arrDim = this.arrDim;\n var propName = this.propName;\n var additiveValue = this._additiveValue;\n if (arrDim === 0) {\n if (this.isValueColor) {\n color.parse(target[propName], tmpRgba);\n add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n target[propName] = rgba2String(tmpRgba);\n }\n else {\n target[propName] = target[propName] + additiveValue;\n }\n }\n else if (arrDim === 1) {\n add1DArray(target[propName], target[propName], additiveValue, 1);\n }\n else if (arrDim === 2) {\n add2DArray(target[propName], target[propName], additiveValue, 1);\n }\n };\n return Track;\n}());\nvar Animator = (function () {\n function Animator(target, loop, additiveTo) {\n this._tracks = {};\n this._trackKeys = [];\n this._delay = 0;\n this._maxTime = 0;\n this._paused = false;\n this._started = 0;\n this._clip = null;\n this._target = target;\n this._loop = loop;\n if (loop && additiveTo) {\n logError('Can\\' use additive animation on looped animation.');\n return;\n }\n this._additiveAnimators = additiveTo;\n }\n Animator.prototype.getTarget = function () {\n return this._target;\n };\n Animator.prototype.changeTarget = function (target) {\n this._target = target;\n };\n Animator.prototype.when = function (time, props) {\n return this.whenWithKeys(time, props, keys(props));\n };\n Animator.prototype.whenWithKeys = function (time, props, propNames) {\n var tracks = this._tracks;\n for (var i = 0; i < propNames.length; i++) {\n var propName = propNames[i];\n var track = tracks[propName];\n if (!track) {\n track = tracks[propName] = new Track(propName);\n var initialValue = void 0;\n var additiveTrack = this._getAdditiveTrack(propName);\n if (additiveTrack) {\n var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\n initialValue = lastFinalKf && lastFinalKf.value;\n if (additiveTrack.isValueColor && initialValue) {\n initialValue = rgba2String(initialValue);\n }\n }\n else {\n initialValue = this._target[propName];\n }\n if (initialValue == null) {\n continue;\n }\n if (time !== 0) {\n track.addKeyframe(0, cloneValue(initialValue));\n }\n this._trackKeys.push(propName);\n }\n track.addKeyframe(time, cloneValue(props[propName]));\n }\n this._maxTime = Math.max(this._maxTime, time);\n return this;\n };\n Animator.prototype.pause = function () {\n this._clip.pause();\n this._paused = true;\n };\n Animator.prototype.resume = function () {\n this._clip.resume();\n this._paused = false;\n };\n Animator.prototype.isPaused = function () {\n return !!this._paused;\n };\n Animator.prototype._doneCallback = function () {\n this._setTracksFinished();\n this._clip = null;\n var doneList = this._doneList;\n if (doneList) {\n var len = doneList.length;\n for (var i = 0; i < len; i++) {\n doneList[i].call(this);\n }\n }\n };\n Animator.prototype._abortedCallback = function () {\n this._setTracksFinished();\n var animation = this.animation;\n var abortedList = this._abortedList;\n if (animation) {\n animation.removeClip(this._clip);\n }\n this._clip = null;\n if (abortedList) {\n for (var i = 0; i < abortedList.length; i++) {\n abortedList[i].call(this);\n }\n }\n };\n Animator.prototype._setTracksFinished = function () {\n var tracks = this._tracks;\n var tracksKeys = this._trackKeys;\n for (var i = 0; i < tracksKeys.length; i++) {\n tracks[tracksKeys[i]].setFinished();\n }\n };\n Animator.prototype._getAdditiveTrack = function (trackName) {\n var additiveTrack;\n var additiveAnimators = this._additiveAnimators;\n if (additiveAnimators) {\n for (var i = 0; i < additiveAnimators.length; i++) {\n var track = additiveAnimators[i].getTrack(trackName);\n if (track) {\n additiveTrack = track;\n }\n }\n }\n return additiveTrack;\n };\n Animator.prototype.start = function (easing, forceAnimate) {\n if (this._started > 0) {\n return;\n }\n this._started = 1;\n var self = this;\n var tracks = [];\n for (var i = 0; i < this._trackKeys.length; i++) {\n var propName = this._trackKeys[i];\n var track = this._tracks[propName];\n var additiveTrack = this._getAdditiveTrack(propName);\n var kfs = track.keyframes;\n track.prepare(additiveTrack);\n if (track.needsAnimate()) {\n tracks.push(track);\n }\n else if (!track.interpolable) {\n var lastKf = kfs[kfs.length - 1];\n if (lastKf) {\n self._target[track.propName] = lastKf.value;\n }\n }\n }\n if (tracks.length || forceAnimate) {\n var clip = new Clip({\n life: this._maxTime,\n loop: this._loop,\n delay: this._delay,\n onframe: function (percent) {\n self._started = 2;\n var additiveAnimators = self._additiveAnimators;\n if (additiveAnimators) {\n var stillHasAdditiveAnimator = false;\n for (var i = 0; i < additiveAnimators.length; i++) {\n if (additiveAnimators[i]._clip) {\n stillHasAdditiveAnimator = true;\n break;\n }\n }\n if (!stillHasAdditiveAnimator) {\n self._additiveAnimators = null;\n }\n }\n for (var i = 0; i < tracks.length; i++) {\n tracks[i].step(self._target, percent);\n }\n var onframeList = self._onframeList;\n if (onframeList) {\n for (var i = 0; i < onframeList.length; i++) {\n onframeList[i](self._target, percent);\n }\n }\n },\n ondestroy: function () {\n self._doneCallback();\n }\n });\n this._clip = clip;\n if (this.animation) {\n this.animation.addClip(clip);\n }\n if (easing && easing !== 'spline') {\n clip.easing = easing;\n }\n }\n else {\n this._doneCallback();\n }\n return this;\n };\n Animator.prototype.stop = function (forwardToLast) {\n if (!this._clip) {\n return;\n }\n var clip = this._clip;\n if (forwardToLast) {\n clip.onframe(1);\n }\n this._abortedCallback();\n };\n Animator.prototype.delay = function (time) {\n this._delay = time;\n return this;\n };\n Animator.prototype.during = function (cb) {\n if (cb) {\n if (!this._onframeList) {\n this._onframeList = [];\n }\n this._onframeList.push(cb);\n }\n return this;\n };\n Animator.prototype.done = function (cb) {\n if (cb) {\n if (!this._doneList) {\n this._doneList = [];\n }\n this._doneList.push(cb);\n }\n return this;\n };\n Animator.prototype.aborted = function (cb) {\n if (cb) {\n if (!this._abortedList) {\n this._abortedList = [];\n }\n this._abortedList.push(cb);\n }\n return this;\n };\n Animator.prototype.getClip = function () {\n return this._clip;\n };\n Animator.prototype.getTrack = function (propName) {\n return this._tracks[propName];\n };\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n if (!propNames.length || !this._clip) {\n return true;\n }\n var tracks = this._tracks;\n var tracksKeys = this._trackKeys;\n for (var i = 0; i < propNames.length; i++) {\n var track = tracks[propNames[i]];\n if (track) {\n if (forwardToLast) {\n track.step(this._target, 1);\n }\n else if (this._started === 1) {\n track.step(this._target, 0);\n }\n track.setFinished();\n }\n }\n var allAborted = true;\n for (var i = 0; i < tracksKeys.length; i++) {\n if (!tracks[tracksKeys[i]].isFinished()) {\n allAborted = false;\n break;\n }\n }\n if (allAborted) {\n this._abortedCallback();\n }\n return allAborted;\n };\n Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\n if (!target) {\n return;\n }\n trackKeys = trackKeys || this._trackKeys;\n for (var i = 0; i < trackKeys.length; i++) {\n var propName = trackKeys[i];\n var track = this._tracks[propName];\n if (!track || track.isFinished()) {\n continue;\n }\n var kfs = track.keyframes;\n var lastKf = kfs[kfs.length - 1];\n if (lastKf) {\n var val = cloneValue(lastKf.value);\n if (track.isValueColor) {\n val = rgba2String(val);\n }\n target[propName] = val;\n }\n }\n };\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n trackKeys = trackKeys || keys(finalProps);\n for (var i = 0; i < trackKeys.length; i++) {\n var propName = trackKeys[i];\n var track = this._tracks[propName];\n if (!track) {\n continue;\n }\n var kfs = track.keyframes;\n if (kfs.length > 1) {\n var lastKf = kfs.pop();\n track.addKeyframe(lastKf.time, finalProps[propName]);\n track.prepare(track.getAdditiveTrack());\n }\n }\n };\n return Animator;\n}());\nexport default Animator;\n","var Point = (function () {\n function Point(x, y) {\n this.x = x || 0;\n this.y = y || 0;\n }\n Point.prototype.copy = function (other) {\n this.x = other.x;\n this.y = other.y;\n return this;\n };\n Point.prototype.clone = function () {\n return new Point(this.x, this.y);\n };\n Point.prototype.set = function (x, y) {\n this.x = x;\n this.y = y;\n return this;\n };\n Point.prototype.equal = function (other) {\n return other.x === this.x && other.y === this.y;\n };\n Point.prototype.add = function (other) {\n this.x += other.x;\n this.y += other.y;\n return this;\n };\n Point.prototype.scale = function (scalar) {\n this.x *= scalar;\n this.y *= scalar;\n };\n Point.prototype.scaleAndAdd = function (other, scalar) {\n this.x += other.x * scalar;\n this.y += other.y * scalar;\n };\n Point.prototype.sub = function (other) {\n this.x -= other.x;\n this.y -= other.y;\n return this;\n };\n Point.prototype.dot = function (other) {\n return this.x * other.x + this.y * other.y;\n };\n Point.prototype.len = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n };\n Point.prototype.lenSquare = function () {\n return this.x * this.x + this.y * this.y;\n };\n Point.prototype.normalize = function () {\n var len = this.len();\n this.x /= len;\n this.y /= len;\n return this;\n };\n Point.prototype.distance = function (other) {\n var dx = this.x - other.x;\n var dy = this.y - other.y;\n return Math.sqrt(dx * dx + dy * dy);\n };\n Point.prototype.distanceSquare = function (other) {\n var dx = this.x - other.x;\n var dy = this.y - other.y;\n return dx * dx + dy * dy;\n };\n Point.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n return this;\n };\n Point.prototype.transform = function (m) {\n if (!m) {\n return;\n }\n var x = this.x;\n var y = this.y;\n this.x = m[0] * x + m[2] * y + m[4];\n this.y = m[1] * x + m[3] * y + m[5];\n return this;\n };\n Point.prototype.toArray = function (out) {\n out[0] = this.x;\n out[1] = this.y;\n return out;\n };\n Point.prototype.fromArray = function (input) {\n this.x = input[0];\n this.y = input[1];\n };\n Point.set = function (p, x, y) {\n p.x = x;\n p.y = y;\n };\n Point.copy = function (p, p2) {\n p.x = p2.x;\n p.y = p2.y;\n };\n Point.len = function (p) {\n return Math.sqrt(p.x * p.x + p.y * p.y);\n };\n Point.lenSquare = function (p) {\n return p.x * p.x + p.y * p.y;\n };\n Point.dot = function (p0, p1) {\n return p0.x * p1.x + p0.y * p1.y;\n };\n Point.add = function (out, p0, p1) {\n out.x = p0.x + p1.x;\n out.y = p0.y + p1.y;\n };\n Point.sub = function (out, p0, p1) {\n out.x = p0.x - p1.x;\n out.y = p0.y - p1.y;\n };\n Point.scale = function (out, p0, scalar) {\n out.x = p0.x * scalar;\n out.y = p0.y * scalar;\n };\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\n out.x = p0.x + p1.x * scalar;\n out.y = p0.y + p1.y * scalar;\n };\n Point.lerp = function (out, p0, p1, t) {\n var onet = 1 - t;\n out.x = onet * p0.x + t * p1.x;\n out.y = onet * p0.y + t * p1.y;\n };\n return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix';\nimport Point from './Point';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n function BoundingRect(x, y, width, height) {\n if (width < 0 && isFinite(width)) {\n x = x + width;\n width = -width;\n }\n if (height < 0 && isFinite(height)) {\n y = y + height;\n height = -height;\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n BoundingRect.prototype.union = function (other) {\n var x = mathMin(other.x, this.x);\n var y = mathMin(other.y, this.y);\n if (isFinite(this.x) && isFinite(this.width)) {\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n }\n else {\n this.width = other.width;\n }\n if (isFinite(this.y) && isFinite(this.height)) {\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n }\n else {\n this.height = other.height;\n }\n this.x = x;\n this.y = y;\n };\n BoundingRect.prototype.applyTransform = function (m) {\n BoundingRect.applyTransform(this, this, m);\n };\n BoundingRect.prototype.calculateTransform = function (b) {\n var a = this;\n var sx = b.width / a.width;\n var sy = b.height / a.height;\n var m = matrix.create();\n matrix.translate(m, m, [-a.x, -a.y]);\n matrix.scale(m, m, [sx, sy]);\n matrix.translate(m, m, [b.x, b.y]);\n return m;\n };\n BoundingRect.prototype.intersect = function (b, mtv) {\n if (!b) {\n return false;\n }\n if (!(b instanceof BoundingRect)) {\n b = BoundingRect.create(b);\n }\n var a = this;\n var ax0 = a.x;\n var ax1 = a.x + a.width;\n var ay0 = a.y;\n var ay1 = a.y + a.height;\n var bx0 = b.x;\n var bx1 = b.x + b.width;\n var by0 = b.y;\n var by1 = b.y + b.height;\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n if (mtv) {\n var dMin = Infinity;\n var dMax = 0;\n var d0 = Math.abs(ax1 - bx0);\n var d1 = Math.abs(bx1 - ax0);\n var d2 = Math.abs(ay1 - by0);\n var d3 = Math.abs(by1 - ay0);\n var dx = Math.min(d0, d1);\n var dy = Math.min(d2, d3);\n if (ax1 < bx0 || bx1 < ax0) {\n if (dx > dMax) {\n dMax = dx;\n if (d0 < d1) {\n Point.set(maxTv, -d0, 0);\n }\n else {\n Point.set(maxTv, d1, 0);\n }\n }\n }\n else {\n if (dx < dMin) {\n dMin = dx;\n if (d0 < d1) {\n Point.set(minTv, d0, 0);\n }\n else {\n Point.set(minTv, -d1, 0);\n }\n }\n }\n if (ay1 < by0 || by1 < ay0) {\n if (dy > dMax) {\n dMax = dy;\n if (d2 < d3) {\n Point.set(maxTv, 0, -d2);\n }\n else {\n Point.set(maxTv, 0, d3);\n }\n }\n }\n else {\n if (dx < dMin) {\n dMin = dx;\n if (d2 < d3) {\n Point.set(minTv, 0, d2);\n }\n else {\n Point.set(minTv, 0, -d3);\n }\n }\n }\n }\n if (mtv) {\n Point.copy(mtv, overlap ? minTv : maxTv);\n }\n return overlap;\n };\n BoundingRect.prototype.contain = function (x, y) {\n var rect = this;\n return x >= rect.x\n && x <= (rect.x + rect.width)\n && y >= rect.y\n && y <= (rect.y + rect.height);\n };\n BoundingRect.prototype.clone = function () {\n return new BoundingRect(this.x, this.y, this.width, this.height);\n };\n BoundingRect.prototype.copy = function (other) {\n BoundingRect.copy(this, other);\n };\n BoundingRect.prototype.plain = function () {\n return {\n x: this.x,\n y: this.y,\n width: this.width,\n height: this.height\n };\n };\n BoundingRect.prototype.isFinite = function () {\n return isFinite(this.x)\n && isFinite(this.y)\n && isFinite(this.width)\n && isFinite(this.height);\n };\n BoundingRect.prototype.isZero = function () {\n return this.width === 0 || this.height === 0;\n };\n BoundingRect.create = function (rect) {\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n };\n BoundingRect.copy = function (target, source) {\n target.x = source.x;\n target.y = source.y;\n target.width = source.width;\n target.height = source.height;\n };\n BoundingRect.applyTransform = function (target, source, m) {\n if (!m) {\n if (target !== source) {\n BoundingRect.copy(target, source);\n }\n return;\n }\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n var sx = m[0];\n var sy = m[3];\n var tx = m[4];\n var ty = m[5];\n target.x = source.x * sx + tx;\n target.y = source.y * sy + ty;\n target.width = source.width * sx;\n target.height = source.height * sy;\n if (target.width < 0) {\n target.x += target.width;\n target.width = -target.width;\n }\n if (target.height < 0) {\n target.y += target.height;\n target.height = -target.height;\n }\n return;\n }\n lt.x = lb.x = source.x;\n lt.y = rt.y = source.y;\n rb.x = rt.x = source.x + source.width;\n rb.y = lb.y = source.y + source.height;\n lt.transform(m);\n rt.transform(m);\n rb.transform(m);\n lb.transform(m);\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n target.width = maxX - target.x;\n target.height = maxY - target.y;\n };\n return BoundingRect;\n}());\nexport default BoundingRect;\n","import BoundingRect from '../core/BoundingRect';\nimport { createCanvas } from '../core/util';\nimport LRU from '../core/LRU';\nvar textWidthCache = {};\nexport var DEFAULT_FONT = '12px sans-serif';\nvar _ctx;\nvar _cachedFont;\nfunction defaultMeasureText(text, font) {\n if (!_ctx) {\n _ctx = createCanvas().getContext('2d');\n }\n if (_cachedFont !== font) {\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\n }\n return _ctx.measureText(text);\n}\nvar methods = {\n measureText: defaultMeasureText\n};\nexport function $override(name, fn) {\n methods[name] = fn;\n}\nexport function getWidth(text, font) {\n font = font || DEFAULT_FONT;\n var cacheOfFont = textWidthCache[font];\n if (!cacheOfFont) {\n cacheOfFont = textWidthCache[font] = new LRU(500);\n }\n var width = cacheOfFont.get(text);\n if (width == null) {\n width = methods.measureText(text, font).width;\n cacheOfFont.put(text, width);\n }\n return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n var width = getWidth(text, font);\n var height = getLineHeight(font);\n var x = adjustTextX(0, width, textAlign);\n var y = adjustTextY(0, height, textBaseline);\n var rect = new BoundingRect(x, y, width, height);\n return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n var textLines = ((text || '') + '').split('\\n');\n var len = textLines.length;\n if (len === 1) {\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n }\n else {\n var uniondRect = new BoundingRect(0, 0, 0, 0);\n for (var i = 0; i < textLines.length; i++) {\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n }\n return uniondRect;\n }\n}\nexport function adjustTextX(x, width, textAlign) {\n if (textAlign === 'right') {\n x -= width;\n }\n else if (textAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n if (verticalAlign === 'middle') {\n y -= height / 2;\n }\n else if (verticalAlign === 'bottom') {\n y -= height;\n }\n return y;\n}\nexport function getLineHeight(font) {\n return getWidth('国', font);\n}\nexport function measureText(text, font) {\n return methods.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n if (typeof value === 'string') {\n if (value.lastIndexOf('%') >= 0) {\n return parseFloat(value) / 100 * maxValue;\n }\n return parseFloat(value);\n }\n return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n var textPosition = opts.position || 'inside';\n var distance = opts.distance != null ? opts.distance : 5;\n var height = rect.height;\n var width = rect.width;\n var halfHeight = height / 2;\n var x = rect.x;\n var y = rect.y;\n var textAlign = 'left';\n var textVerticalAlign = 'top';\n if (textPosition instanceof Array) {\n x += parsePercent(textPosition[0], rect.width);\n y += parsePercent(textPosition[1], rect.height);\n textAlign = null;\n textVerticalAlign = null;\n }\n else {\n switch (textPosition) {\n case 'left':\n x -= distance;\n y += halfHeight;\n textAlign = 'right';\n textVerticalAlign = 'middle';\n break;\n case 'right':\n x += distance + width;\n y += halfHeight;\n textVerticalAlign = 'middle';\n break;\n case 'top':\n x += width / 2;\n y -= distance;\n textAlign = 'center';\n textVerticalAlign = 'bottom';\n break;\n case 'bottom':\n x += width / 2;\n y += height + distance;\n textAlign = 'center';\n break;\n case 'inside':\n x += width / 2;\n y += halfHeight;\n textAlign = 'center';\n textVerticalAlign = 'middle';\n break;\n case 'insideLeft':\n x += distance;\n y += halfHeight;\n textVerticalAlign = 'middle';\n break;\n case 'insideRight':\n x += width - distance;\n y += halfHeight;\n textAlign = 'right';\n textVerticalAlign = 'middle';\n break;\n case 'insideTop':\n x += width / 2;\n y += distance;\n textAlign = 'center';\n break;\n case 'insideBottom':\n x += width / 2;\n y += height - distance;\n textAlign = 'center';\n textVerticalAlign = 'bottom';\n break;\n case 'insideTopLeft':\n x += distance;\n y += distance;\n break;\n case 'insideTopRight':\n x += width - distance;\n y += distance;\n textAlign = 'right';\n break;\n case 'insideBottomLeft':\n x += distance;\n y += height - distance;\n textVerticalAlign = 'bottom';\n break;\n case 'insideBottomRight':\n x += width - distance;\n y += height - distance;\n textAlign = 'right';\n textVerticalAlign = 'bottom';\n break;\n }\n }\n out = out || {};\n out.x = x;\n out.y = y;\n out.align = textAlign;\n out.verticalAlign = textVerticalAlign;\n return out;\n}\n","var dpr = 1;\nif (typeof window !== 'undefined') {\n dpr = Math.max(window.devicePixelRatio\n || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import Transformable from './core/Transformable';\nimport Animator, { cloneValue } from './animation/Animator';\nimport BoundingRect from './core/BoundingRect';\nimport Eventful from './core/Eventful';\nimport { calculateTextPosition, parsePercent } from './contain/text';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray } from './core/util';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config';\nimport { parse, stringify } from './tool/color';\nimport env from './core/env';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\nvar DEFAULT_ANIMATABLE_MAP = {\n x: true,\n y: true,\n scaleX: true,\n scaleY: true,\n originX: true,\n originY: true,\n rotation: true,\n ignore: false\n};\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n function Element(props) {\n this.id = guid();\n this.animators = [];\n this.currentStates = [];\n this.states = {};\n this._init(props);\n }\n Element.prototype._init = function (props) {\n this.attr(props);\n };\n Element.prototype.drift = function (dx, dy, e) {\n switch (this.draggable) {\n case 'horizontal':\n dy = 0;\n break;\n case 'vertical':\n dx = 0;\n break;\n }\n var m = this.transform;\n if (!m) {\n m = this.transform = [1, 0, 0, 1, 0, 0];\n }\n m[4] += dx;\n m[5] += dy;\n this.decomposeTransform();\n this.markRedraw();\n };\n Element.prototype.beforeUpdate = function () { };\n Element.prototype.afterUpdate = function () { };\n Element.prototype.update = function () {\n this.updateTransform();\n if (this.__dirty) {\n this.updateInnerText();\n }\n };\n Element.prototype.updateInnerText = function (forceUpdate) {\n var textEl = this._textContent;\n if (textEl && (!textEl.ignore || forceUpdate)) {\n if (!this.textConfig) {\n this.textConfig = {};\n }\n var textConfig = this.textConfig;\n var isLocal = textConfig.local;\n var attachedTransform = textEl.attachedTransform;\n var textAlign = void 0;\n var textVerticalAlign = void 0;\n var textStyleChanged = false;\n if (isLocal) {\n attachedTransform.parent = this;\n }\n else {\n attachedTransform.parent = null;\n }\n var innerOrigin = false;\n attachedTransform.x = textEl.x;\n attachedTransform.y = textEl.y;\n attachedTransform.originX = textEl.originX;\n attachedTransform.originY = textEl.originY;\n attachedTransform.rotation = textEl.rotation;\n attachedTransform.scaleX = textEl.scaleX;\n attachedTransform.scaleY = textEl.scaleY;\n if (textConfig.position != null) {\n var layoutRect = tmpBoundingRect;\n if (textConfig.layoutRect) {\n layoutRect.copy(textConfig.layoutRect);\n }\n else {\n layoutRect.copy(this.getBoundingRect());\n }\n if (!isLocal) {\n layoutRect.applyTransform(this.transform);\n }\n if (this.calculateTextPosition) {\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n }\n else {\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n }\n attachedTransform.x = tmpTextPosCalcRes.x;\n attachedTransform.y = tmpTextPosCalcRes.y;\n textAlign = tmpTextPosCalcRes.align;\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n var textOrigin = textConfig.origin;\n if (textOrigin && textConfig.rotation != null) {\n var relOriginX = void 0;\n var relOriginY = void 0;\n if (textOrigin === 'center') {\n relOriginX = layoutRect.width * 0.5;\n relOriginY = layoutRect.height * 0.5;\n }\n else {\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n }\n innerOrigin = true;\n attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n }\n }\n if (textConfig.rotation != null) {\n attachedTransform.rotation = textConfig.rotation;\n }\n var textOffset = textConfig.offset;\n if (textOffset) {\n attachedTransform.x += textOffset[0];\n attachedTransform.y += textOffset[1];\n if (!innerOrigin) {\n attachedTransform.originX = -textOffset[0];\n attachedTransform.originY = -textOffset[1];\n }\n }\n var isInside = textConfig.inside == null\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n : textConfig.inside;\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n var textFill = void 0;\n var textStroke = void 0;\n var autoStroke = void 0;\n if (isInside && this.canBeInsideText()) {\n textFill = textConfig.insideFill;\n textStroke = textConfig.insideStroke;\n if (textFill == null || textFill === 'auto') {\n textFill = this.getInsideTextFill();\n }\n if (textStroke == null || textStroke === 'auto') {\n textStroke = this.getInsideTextStroke(textFill);\n autoStroke = true;\n }\n }\n else {\n textFill = textConfig.outsideFill;\n textStroke = textConfig.outsideStroke;\n if (textFill == null || textFill === 'auto') {\n textFill = this.getOutsideFill();\n }\n if (textStroke == null || textStroke === 'auto') {\n textStroke = this.getOutsideStroke(textFill);\n autoStroke = true;\n }\n }\n textFill = textFill || '#000';\n if (textFill !== innerTextDefaultStyle.fill\n || textStroke !== innerTextDefaultStyle.stroke\n || autoStroke !== innerTextDefaultStyle.autoStroke\n || textAlign !== innerTextDefaultStyle.align\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n textStyleChanged = true;\n innerTextDefaultStyle.fill = textFill;\n innerTextDefaultStyle.stroke = textStroke;\n innerTextDefaultStyle.autoStroke = autoStroke;\n innerTextDefaultStyle.align = textAlign;\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\n }\n if (textStyleChanged) {\n textEl.dirtyStyle();\n }\n textEl.markRedraw();\n }\n };\n Element.prototype.canBeInsideText = function () {\n return true;\n };\n Element.prototype.getInsideTextFill = function () {\n return '#fff';\n };\n Element.prototype.getInsideTextStroke = function (textFill) {\n return '#000';\n };\n Element.prototype.getOutsideFill = function () {\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n };\n Element.prototype.getOutsideStroke = function (textFill) {\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n if (!colorArr) {\n colorArr = [255, 255, 255, 1];\n }\n var alpha = colorArr[3];\n var isDark = this.__zr.isDarkMode();\n for (var i = 0; i < 3; i++) {\n colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n }\n colorArr[3] = 1;\n return stringify(colorArr, 'rgba');\n };\n Element.prototype.traverse = function (cb, context) { };\n Element.prototype.attrKV = function (key, value) {\n if (key === 'textConfig') {\n this.setTextConfig(value);\n }\n else if (key === 'textContent') {\n this.setTextContent(value);\n }\n else if (key === 'clipPath') {\n this.setClipPath(value);\n }\n else if (key === 'extra') {\n this.extra = this.extra || {};\n extend(this.extra, value);\n }\n else {\n this[key] = value;\n }\n };\n Element.prototype.hide = function () {\n this.ignore = true;\n this.markRedraw();\n };\n Element.prototype.show = function () {\n this.ignore = false;\n this.markRedraw();\n };\n Element.prototype.attr = function (keyOrObj, value) {\n if (typeof keyOrObj === 'string') {\n this.attrKV(keyOrObj, value);\n }\n else if (isObject(keyOrObj)) {\n var obj = keyOrObj;\n var keysArr = keys(obj);\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n this.attrKV(key, keyOrObj[key]);\n }\n }\n this.markRedraw();\n return this;\n };\n Element.prototype.saveCurrentToNormalState = function (toState) {\n this._innerSaveToNormal(toState);\n var normalState = this._normalState;\n for (var i = 0; i < this.animators.length; i++) {\n var animator = this.animators[i];\n var fromStateTransition = animator.__fromStateTransition;\n if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n continue;\n }\n var targetName = animator.targetName;\n var target = targetName\n ? normalState[targetName] : normalState;\n animator.saveFinalToTarget(target);\n }\n };\n Element.prototype._innerSaveToNormal = function (toState) {\n var normalState = this._normalState;\n if (!normalState) {\n normalState = this._normalState = {};\n }\n if (toState.textConfig && !normalState.textConfig) {\n normalState.textConfig = this.textConfig;\n }\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n };\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n for (var i = 0; i < primaryKeys.length; i++) {\n var key = primaryKeys[i];\n if (toState[key] != null && !(key in normalState)) {\n normalState[key] = this[key];\n }\n }\n };\n Element.prototype.hasState = function () {\n return this.currentStates.length > 0;\n };\n Element.prototype.getState = function (name) {\n return this.states[name];\n };\n Element.prototype.ensureState = function (name) {\n var states = this.states;\n if (!states[name]) {\n states[name] = {};\n }\n return states[name];\n };\n Element.prototype.clearStates = function (noAnimation) {\n this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n };\n Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n var hasStates = this.hasState();\n if (!hasStates && toNormalState) {\n return;\n }\n var currentStates = this.currentStates;\n var animationCfg = this.stateTransition;\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n return;\n }\n var state;\n if (this.stateProxy && !toNormalState) {\n state = this.stateProxy(stateName);\n }\n if (!state) {\n state = (this.states && this.states[stateName]);\n }\n if (!state && !toNormalState) {\n logError(\"State \" + stateName + \" not exists.\");\n return;\n }\n if (!toNormalState) {\n this.saveCurrentToNormalState(state);\n }\n var useHoverLayer = !!(state && state.hoverLayer);\n if (useHoverLayer) {\n this._toggleHoverLayerFlag(true);\n }\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n if (this._textContent) {\n this._textContent.useState(stateName, keepCurrentStates);\n }\n if (this._textGuide) {\n this._textGuide.useState(stateName, keepCurrentStates);\n }\n if (toNormalState) {\n this.currentStates = [];\n this._normalState = {};\n }\n else {\n if (!keepCurrentStates) {\n this.currentStates = [stateName];\n }\n else {\n this.currentStates.push(stateName);\n }\n }\n this._updateAnimationTargets();\n this.markRedraw();\n if (!useHoverLayer && this.__inHover) {\n this._toggleHoverLayerFlag(false);\n this.__dirty &= ~Element.REDARAW_BIT;\n }\n return state;\n };\n Element.prototype.useStates = function (states, noAnimation) {\n if (!states.length) {\n this.clearStates();\n }\n else {\n var stateObjects = [];\n var currentStates = this.currentStates;\n var len = states.length;\n var notChange = len === currentStates.length;\n if (notChange) {\n for (var i = 0; i < len; i++) {\n if (states[i] !== currentStates[i]) {\n notChange = false;\n break;\n }\n }\n }\n if (notChange) {\n return;\n }\n for (var i = 0; i < len; i++) {\n var stateName = states[i];\n var stateObj = void 0;\n if (this.stateProxy) {\n stateObj = this.stateProxy(stateName, states);\n }\n if (!stateObj) {\n stateObj = this.states[stateName];\n }\n if (stateObj) {\n stateObjects.push(stateObj);\n }\n }\n var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\n if (useHoverLayer) {\n this._toggleHoverLayerFlag(true);\n }\n var mergedState = this._mergeStates(stateObjects);\n var animationCfg = this.stateTransition;\n this.saveCurrentToNormalState(mergedState);\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n if (this._textContent) {\n this._textContent.useStates(states);\n }\n if (this._textGuide) {\n this._textGuide.useStates(states);\n }\n this._updateAnimationTargets();\n this.currentStates = states.slice();\n this.markRedraw();\n if (!useHoverLayer && this.__inHover) {\n this._toggleHoverLayerFlag(false);\n this.__dirty &= ~Element.REDARAW_BIT;\n }\n }\n };\n Element.prototype._updateAnimationTargets = function () {\n for (var i = 0; i < this.animators.length; i++) {\n var animator = this.animators[i];\n if (animator.targetName) {\n animator.changeTarget(this[animator.targetName]);\n }\n }\n };\n Element.prototype.removeState = function (state) {\n var idx = indexOf(this.currentStates, state);\n if (idx >= 0) {\n var currentStates = this.currentStates.slice();\n currentStates.splice(idx, 1);\n this.useStates(currentStates);\n }\n };\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n var currentStates = this.currentStates.slice();\n var idx = indexOf(currentStates, oldState);\n var newStateExists = indexOf(currentStates, newState) >= 0;\n if (idx >= 0) {\n if (!newStateExists) {\n currentStates[idx] = newState;\n }\n else {\n currentStates.splice(idx, 1);\n }\n }\n else if (forceAdd && !newStateExists) {\n currentStates.push(newState);\n }\n this.useStates(currentStates);\n };\n Element.prototype.toggleState = function (state, enable) {\n if (enable) {\n this.useState(state, true);\n }\n else {\n this.removeState(state);\n }\n };\n Element.prototype._mergeStates = function (states) {\n var mergedState = {};\n var mergedTextConfig;\n for (var i = 0; i < states.length; i++) {\n var state = states[i];\n extend(mergedState, state);\n if (state.textConfig) {\n mergedTextConfig = mergedTextConfig || {};\n extend(mergedTextConfig, state.textConfig);\n }\n }\n if (mergedTextConfig) {\n mergedState.textConfig = mergedTextConfig;\n }\n return mergedState;\n };\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n var needsRestoreToNormal = !(state && keepCurrentStates);\n if (state && state.textConfig) {\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n extend(this.textConfig, state.textConfig);\n }\n else if (needsRestoreToNormal) {\n if (normalState.textConfig) {\n this.textConfig = normalState.textConfig;\n }\n }\n var transitionTarget = {};\n var hasTransition = false;\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n var key = PRIMARY_STATES_KEYS[i];\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n if (state && state[key] != null) {\n if (propNeedsTransition) {\n hasTransition = true;\n transitionTarget[key] = state[key];\n }\n else {\n this[key] = state[key];\n }\n }\n else if (needsRestoreToNormal) {\n if (normalState[key] != null) {\n if (propNeedsTransition) {\n hasTransition = true;\n transitionTarget[key] = normalState[key];\n }\n else {\n this[key] = normalState[key];\n }\n }\n }\n }\n if (!transition) {\n for (var i = 0; i < this.animators.length; i++) {\n var animator = this.animators[i];\n var targetName = animator.targetName;\n animator.__changeFinalValue(targetName\n ? (state || normalState)[targetName]\n : (state || normalState));\n }\n }\n if (hasTransition) {\n this._transitionState(stateName, transitionTarget, animationCfg);\n }\n };\n Element.prototype._attachComponent = function (componentEl) {\n if (componentEl.__zr && !componentEl.__hostTarget) {\n throw new Error('Text element has been added to zrender.');\n }\n if (componentEl === this) {\n throw new Error('Recursive component attachment.');\n }\n var zr = this.__zr;\n if (zr) {\n componentEl.addSelfToZr(zr);\n }\n componentEl.__zr = zr;\n componentEl.__hostTarget = this;\n };\n Element.prototype._detachComponent = function (componentEl) {\n if (componentEl.__zr) {\n componentEl.removeSelfFromZr(componentEl.__zr);\n }\n componentEl.__zr = null;\n componentEl.__hostTarget = null;\n };\n Element.prototype.getClipPath = function () {\n return this._clipPath;\n };\n Element.prototype.setClipPath = function (clipPath) {\n if (this._clipPath && this._clipPath !== clipPath) {\n this.removeClipPath();\n }\n this._attachComponent(clipPath);\n this._clipPath = clipPath;\n this.markRedraw();\n };\n Element.prototype.removeClipPath = function () {\n var clipPath = this._clipPath;\n if (clipPath) {\n this._detachComponent(clipPath);\n this._clipPath = null;\n this.markRedraw();\n }\n };\n Element.prototype.getTextContent = function () {\n return this._textContent;\n };\n Element.prototype.setTextContent = function (textEl) {\n var previousTextContent = this._textContent;\n if (previousTextContent === textEl) {\n return;\n }\n if (previousTextContent && previousTextContent !== textEl) {\n this.removeTextContent();\n }\n if (textEl.__zr && !textEl.__hostTarget) {\n throw new Error('Text element has been added to zrender.');\n }\n textEl.attachedTransform = new Transformable();\n this._attachComponent(textEl);\n this._textContent = textEl;\n this.markRedraw();\n };\n Element.prototype.setTextConfig = function (cfg) {\n if (!this.textConfig) {\n this.textConfig = {};\n }\n extend(this.textConfig, cfg);\n this.markRedraw();\n };\n Element.prototype.removeTextContent = function () {\n var textEl = this._textContent;\n if (textEl) {\n textEl.attachedTransform = null;\n this._detachComponent(textEl);\n this._textContent = null;\n this._innerTextDefaultStyle = null;\n this.markRedraw();\n }\n };\n Element.prototype.getTextGuideLine = function () {\n return this._textGuide;\n };\n Element.prototype.setTextGuideLine = function (guideLine) {\n if (this._textGuide && this._textGuide !== guideLine) {\n this.removeTextGuideLine();\n }\n this._attachComponent(guideLine);\n this._textGuide = guideLine;\n this.markRedraw();\n };\n Element.prototype.removeTextGuideLine = function () {\n var textGuide = this._textGuide;\n if (textGuide) {\n this._detachComponent(textGuide);\n this._textGuide = null;\n this.markRedraw();\n }\n };\n Element.prototype.markRedraw = function () {\n this.__dirty |= Element.REDARAW_BIT;\n var zr = this.__zr;\n if (zr) {\n if (this.__inHover) {\n zr.refreshHover();\n }\n else {\n zr.refresh();\n }\n }\n if (this.__hostTarget) {\n this.__hostTarget.markRedraw();\n }\n };\n Element.prototype.dirty = function () {\n this.markRedraw();\n };\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\n this.__inHover = inHover;\n var textContent = this._textContent;\n var textGuide = this._textGuide;\n if (textContent) {\n textContent.__inHover = inHover;\n }\n if (textGuide) {\n textGuide.__inHover = inHover;\n }\n };\n Element.prototype.addSelfToZr = function (zr) {\n this.__zr = zr;\n var animators = this.animators;\n if (animators) {\n for (var i = 0; i < animators.length; i++) {\n zr.animation.addAnimator(animators[i]);\n }\n }\n if (this._clipPath) {\n this._clipPath.addSelfToZr(zr);\n }\n if (this._textContent) {\n this._textContent.addSelfToZr(zr);\n }\n if (this._textGuide) {\n this._textGuide.addSelfToZr(zr);\n }\n };\n Element.prototype.removeSelfFromZr = function (zr) {\n this.__zr = null;\n var animators = this.animators;\n if (animators) {\n for (var i = 0; i < animators.length; i++) {\n zr.animation.removeAnimator(animators[i]);\n }\n }\n if (this._clipPath) {\n this._clipPath.removeSelfFromZr(zr);\n }\n if (this._textContent) {\n this._textContent.removeSelfFromZr(zr);\n }\n if (this._textGuide) {\n this._textGuide.removeSelfFromZr(zr);\n }\n };\n Element.prototype.animate = function (key, loop) {\n var target = key ? this[key] : this;\n if (!target) {\n logError('Property \"'\n + key\n + '\" is not existed in element '\n + this.id);\n return;\n }\n var animator = new Animator(target, loop);\n this.addAnimator(animator, key);\n return animator;\n };\n Element.prototype.addAnimator = function (animator, key) {\n var zr = this.__zr;\n var el = this;\n animator.during(function () {\n el.updateDuringAnimation(key);\n }).done(function () {\n var animators = el.animators;\n var idx = indexOf(animators, animator);\n if (idx >= 0) {\n animators.splice(idx, 1);\n }\n });\n this.animators.push(animator);\n if (zr) {\n zr.animation.addAnimator(animator);\n }\n zr && zr.wakeUp();\n };\n Element.prototype.updateDuringAnimation = function (key) {\n this.markRedraw();\n };\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\n var animators = this.animators;\n var len = animators.length;\n var leftAnimators = [];\n for (var i = 0; i < len; i++) {\n var animator = animators[i];\n if (!scope || scope === animator.scope) {\n animator.stop(forwardToLast);\n }\n else {\n leftAnimators.push(animator);\n }\n }\n this.animators = leftAnimators;\n return this;\n };\n Element.prototype.animateTo = function (target, cfg, animationProps) {\n animateTo(this, target, cfg, animationProps);\n };\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\n animateTo(this, target, cfg, animationProps, true);\n };\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n var animators = animateTo(this, target, cfg, animationProps);\n for (var i = 0; i < animators.length; i++) {\n animators[i].__fromStateTransition = stateName;\n }\n };\n Element.prototype.getBoundingRect = function () {\n return null;\n };\n Element.prototype.getPaintRect = function () {\n return null;\n };\n Element.REDARAW_BIT = 1;\n Element.initDefaultProps = (function () {\n var elProto = Element.prototype;\n elProto.type = 'element';\n elProto.name = '';\n elProto.ignore = false;\n elProto.silent = false;\n elProto.isGroup = false;\n elProto.draggable = false;\n elProto.dragging = false;\n elProto.ignoreClip = false;\n elProto.__inHover = false;\n elProto.__dirty = Element.REDARAW_BIT;\n var logs = {};\n function logDeprecatedError(key, xKey, yKey) {\n if (!logs[key + xKey + yKey]) {\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n logs[key + xKey + yKey] = true;\n }\n }\n function createLegacyProperty(key, privateKey, xKey, yKey) {\n Object.defineProperty(elProto, key, {\n get: function () {\n logDeprecatedError(key, xKey, yKey);\n if (!this[privateKey]) {\n var pos = this[privateKey] = [];\n enhanceArray(this, pos);\n }\n return this[privateKey];\n },\n set: function (pos) {\n logDeprecatedError(key, xKey, yKey);\n this[xKey] = pos[0];\n this[yKey] = pos[1];\n this[privateKey] = pos;\n enhanceArray(this, pos);\n }\n });\n function enhanceArray(self, pos) {\n Object.defineProperty(pos, 0, {\n get: function () {\n return self[xKey];\n },\n set: function (val) {\n self[xKey] = val;\n }\n });\n Object.defineProperty(pos, 1, {\n get: function () {\n return self[yKey];\n },\n set: function (val) {\n self[yKey] = val;\n }\n });\n }\n }\n if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n }\n })();\n return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n cfg = cfg || {};\n var animators = [];\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n var finishCount = animators.length;\n var doneHappened = false;\n var cfgDone = cfg.done;\n var cfgAborted = cfg.aborted;\n var doneCb = function () {\n doneHappened = true;\n finishCount--;\n if (finishCount <= 0) {\n doneHappened\n ? (cfgDone && cfgDone())\n : (cfgAborted && cfgAborted());\n }\n };\n var abortedCb = function () {\n finishCount--;\n if (finishCount <= 0) {\n doneHappened\n ? (cfgDone && cfgDone())\n : (cfgAborted && cfgAborted());\n }\n };\n if (!finishCount) {\n cfgDone && cfgDone();\n }\n if (animators.length > 0 && cfg.during) {\n animators[0].during(function (target, percent) {\n cfg.during(percent);\n });\n }\n for (var i = 0; i < animators.length; i++) {\n var animator = animators[i];\n if (doneCb) {\n animator.done(doneCb);\n }\n if (abortedCb) {\n animator.aborted(abortedCb);\n }\n animator.start(cfg.easing, cfg.force);\n }\n return animators;\n}\nfunction copyArrShallow(source, target, len) {\n for (var i = 0; i < len; i++) {\n source[i] = target[i];\n }\n}\nfunction is2DArray(value) {\n return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n if (isArrayLike(source[key])) {\n if (!isArrayLike(target[key])) {\n target[key] = [];\n }\n if (isTypedArray(source[key])) {\n var len = source[key].length;\n if (target[key].length !== len) {\n target[key] = new (source[key].constructor)(len);\n copyArrShallow(target[key], source[key], len);\n }\n }\n else {\n var sourceArr = source[key];\n var targetArr = target[key];\n var len0 = sourceArr.length;\n if (is2DArray(sourceArr)) {\n var len1 = sourceArr[0].length;\n for (var i = 0; i < len0; i++) {\n if (!targetArr[i]) {\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n }\n else {\n copyArrShallow(targetArr[i], sourceArr[i], len1);\n }\n }\n }\n else {\n copyArrShallow(targetArr, sourceArr, len0);\n }\n targetArr.length = sourceArr.length;\n }\n }\n else {\n target[key] = source[key];\n }\n}\nfunction animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\n var animatableKeys = [];\n var changedKeys = [];\n var targetKeys = keys(target);\n var duration = cfg.duration;\n var delay = cfg.delay;\n var additive = cfg.additive;\n var setToFinal = cfg.setToFinal;\n var animateAll = !isObject(animationProps);\n for (var k = 0; k < targetKeys.length; k++) {\n var innerKey = targetKeys[k];\n if (source[innerKey] != null\n && target[innerKey] != null\n && (animateAll || animationProps[innerKey])) {\n if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\n if (topKey) {\n if (!reverse) {\n source[innerKey] = target[innerKey];\n animatable.updateDuringAnimation(topKey);\n }\n continue;\n }\n animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\n }\n else {\n animatableKeys.push(innerKey);\n changedKeys.push(innerKey);\n }\n }\n else if (!reverse) {\n source[innerKey] = target[innerKey];\n animatable.updateDuringAnimation(topKey);\n changedKeys.push(innerKey);\n }\n }\n var keyLen = animatableKeys.length;\n if (keyLen > 0\n || (cfg.force && !animators.length)) {\n var existsAnimators = animatable.animators;\n var existsAnimatorsOnSameTarget = [];\n for (var i = 0; i < existsAnimators.length; i++) {\n if (existsAnimators[i].targetName === topKey) {\n existsAnimatorsOnSameTarget.push(existsAnimators[i]);\n }\n }\n if (!additive && existsAnimatorsOnSameTarget.length) {\n for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\n var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\n if (allAborted) {\n var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\n existsAnimators.splice(idx, 1);\n }\n }\n }\n var revertedSource = void 0;\n var reversedTarget = void 0;\n var sourceClone = void 0;\n if (reverse) {\n reversedTarget = {};\n if (setToFinal) {\n revertedSource = {};\n }\n for (var i = 0; i < keyLen; i++) {\n var innerKey = animatableKeys[i];\n reversedTarget[innerKey] = source[innerKey];\n if (setToFinal) {\n revertedSource[innerKey] = target[innerKey];\n }\n else {\n source[innerKey] = target[innerKey];\n }\n }\n }\n else if (setToFinal) {\n sourceClone = {};\n for (var i = 0; i < keyLen; i++) {\n var innerKey = animatableKeys[i];\n sourceClone[innerKey] = cloneValue(source[innerKey]);\n copyValue(source, target, innerKey);\n }\n }\n var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\n animator.targetName = topKey;\n if (cfg.scope) {\n animator.scope = cfg.scope;\n }\n if (setToFinal && revertedSource) {\n animator.whenWithKeys(0, revertedSource, animatableKeys);\n }\n if (sourceClone) {\n animator.whenWithKeys(0, sourceClone, animatableKeys);\n }\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\n animatable.addAnimator(animator, topKey);\n animators.push(animator);\n }\n}\nexport default Element;\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n var r = 0;\n while (n >= DEFAULT_MIN_MERGE) {\n r |= n & 1;\n n >>= 1;\n }\n return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n var runHi = lo + 1;\n if (runHi === hi) {\n return 1;\n }\n if (compare(array[runHi++], array[lo]) < 0) {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n runHi++;\n }\n reverseRun(array, lo, runHi);\n }\n else {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n runHi++;\n }\n }\n return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n hi--;\n while (lo < hi) {\n var t = array[lo];\n array[lo++] = array[hi];\n array[hi--] = t;\n }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n if (start === lo) {\n start++;\n }\n for (; start < hi; start++) {\n var pivot = array[start];\n var left = lo;\n var right = start;\n var mid;\n while (left < right) {\n mid = left + right >>> 1;\n if (compare(pivot, array[mid]) < 0) {\n right = mid;\n }\n else {\n left = mid + 1;\n }\n }\n var n = start - left;\n switch (n) {\n case 3:\n array[left + 3] = array[left + 2];\n case 2:\n array[left + 2] = array[left + 1];\n case 1:\n array[left + 1] = array[left];\n break;\n default:\n while (n > 0) {\n array[left + n] = array[left + n - 1];\n n--;\n }\n }\n array[left] = pivot;\n }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n if (compare(value, array[start + hint]) > 0) {\n maxOffset = length - hint;\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n lastOffset += hint;\n offset += hint;\n }\n else {\n maxOffset = hint + 1;\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n }\n lastOffset++;\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n if (compare(value, array[start + m]) > 0) {\n lastOffset = m + 1;\n }\n else {\n offset = m;\n }\n }\n return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n if (compare(value, array[start + hint]) < 0) {\n maxOffset = hint + 1;\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n }\n else {\n maxOffset = length - hint;\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n lastOffset += hint;\n offset += hint;\n }\n lastOffset++;\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n if (compare(value, array[start + m]) < 0) {\n offset = m;\n }\n else {\n lastOffset = m + 1;\n }\n }\n return offset;\n}\nfunction TimSort(array, compare) {\n var minGallop = DEFAULT_MIN_GALLOPING;\n var length = 0;\n var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n var stackLength = 0;\n var runStart;\n var runLength;\n var stackSize = 0;\n length = array.length;\n if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n tmpStorageLength = length >>> 1;\n }\n var tmp = [];\n stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n runStart = [];\n runLength = [];\n function pushRun(_runStart, _runLength) {\n runStart[stackSize] = _runStart;\n runLength[stackSize] = _runLength;\n stackSize += 1;\n }\n function mergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n if (runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n }\n else if (runLength[n] > runLength[n + 1]) {\n break;\n }\n mergeAt(n);\n }\n }\n function forceMergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n mergeAt(n);\n }\n }\n function mergeAt(i) {\n var start1 = runStart[i];\n var length1 = runLength[i];\n var start2 = runStart[i + 1];\n var length2 = runLength[i + 1];\n runLength[i] = length1 + length2;\n if (i === stackSize - 3) {\n runStart[i + 1] = runStart[i + 2];\n runLength[i + 1] = runLength[i + 2];\n }\n stackSize--;\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n start1 += k;\n length1 -= k;\n if (length1 === 0) {\n return;\n }\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n if (length2 === 0) {\n return;\n }\n if (length1 <= length2) {\n mergeLow(start1, length1, start2, length2);\n }\n else {\n mergeHigh(start1, length1, start2, length2);\n }\n }\n function mergeLow(start1, length1, start2, length2) {\n var i = 0;\n for (i = 0; i < length1; i++) {\n tmp[i] = array[start1 + i];\n }\n var cursor1 = 0;\n var cursor2 = start2;\n var dest = start1;\n array[dest++] = array[cursor2++];\n if (--length2 === 0) {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n return;\n }\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n array[dest + length2] = tmp[cursor1];\n return;\n }\n var _minGallop = minGallop;\n var count1;\n var count2;\n var exit;\n while (1) {\n count1 = 0;\n count2 = 0;\n exit = false;\n do {\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\n array[dest++] = array[cursor2++];\n count2++;\n count1 = 0;\n if (--length2 === 0) {\n exit = true;\n break;\n }\n }\n else {\n array[dest++] = tmp[cursor1++];\n count1++;\n count2 = 0;\n if (--length1 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n if (exit) {\n break;\n }\n do {\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n if (count1 !== 0) {\n for (i = 0; i < count1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n dest += count1;\n cursor1 += count1;\n length1 -= count1;\n if (length1 <= 1) {\n exit = true;\n break;\n }\n }\n array[dest++] = array[cursor2++];\n if (--length2 === 0) {\n exit = true;\n break;\n }\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n if (count2 !== 0) {\n for (i = 0; i < count2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n dest += count2;\n cursor2 += count2;\n length2 -= count2;\n if (length2 === 0) {\n exit = true;\n break;\n }\n }\n array[dest++] = tmp[cursor1++];\n if (--length1 === 1) {\n exit = true;\n break;\n }\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n if (exit) {\n break;\n }\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n _minGallop += 2;\n }\n minGallop = _minGallop;\n minGallop < 1 && (minGallop = 1);\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n array[dest + length2] = tmp[cursor1];\n }\n else if (length1 === 0) {\n throw new Error();\n }\n else {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n }\n }\n function mergeHigh(start1, length1, start2, length2) {\n var i = 0;\n for (i = 0; i < length2; i++) {\n tmp[i] = array[start2 + i];\n }\n var cursor1 = start1 + length1 - 1;\n var cursor2 = length2 - 1;\n var dest = start2 + length2 - 1;\n var customCursor = 0;\n var customDest = 0;\n array[dest--] = array[cursor1--];\n if (--length1 === 0) {\n customCursor = dest - (length2 - 1);\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n return;\n }\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n array[dest] = tmp[cursor2];\n return;\n }\n var _minGallop = minGallop;\n while (true) {\n var count1 = 0;\n var count2 = 0;\n var exit = false;\n do {\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\n array[dest--] = array[cursor1--];\n count1++;\n count2 = 0;\n if (--length1 === 0) {\n exit = true;\n break;\n }\n }\n else {\n array[dest--] = tmp[cursor2--];\n count2++;\n count1 = 0;\n if (--length2 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n if (exit) {\n break;\n }\n do {\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n if (count1 !== 0) {\n dest -= count1;\n cursor1 -= count1;\n length1 -= count1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n for (i = count1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n if (length1 === 0) {\n exit = true;\n break;\n }\n }\n array[dest--] = tmp[cursor2--];\n if (--length2 === 1) {\n exit = true;\n break;\n }\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n if (count2 !== 0) {\n dest -= count2;\n cursor2 -= count2;\n length2 -= count2;\n customDest = dest + 1;\n customCursor = cursor2 + 1;\n for (i = 0; i < count2; i++) {\n array[customDest + i] = tmp[customCursor + i];\n }\n if (length2 <= 1) {\n exit = true;\n break;\n }\n }\n array[dest--] = array[cursor1--];\n if (--length1 === 0) {\n exit = true;\n break;\n }\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n if (exit) {\n break;\n }\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n _minGallop += 2;\n }\n minGallop = _minGallop;\n if (minGallop < 1) {\n minGallop = 1;\n }\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n array[dest] = tmp[cursor2];\n }\n else if (length2 === 0) {\n throw new Error();\n }\n else {\n customCursor = dest - (length2 - 1);\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n }\n }\n return {\n mergeRuns: mergeRuns,\n forceMergeRuns: forceMergeRuns,\n pushRun: pushRun\n };\n}\nexport default function sort(array, compare, lo, hi) {\n if (!lo) {\n lo = 0;\n }\n if (!hi) {\n hi = array.length;\n }\n var remaining = hi - lo;\n if (remaining < 2) {\n return;\n }\n var runLength = 0;\n if (remaining < DEFAULT_MIN_MERGE) {\n runLength = makeAscendingRun(array, lo, hi, compare);\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n return;\n }\n var ts = TimSort(array, compare);\n var minRun = minRunLength(remaining);\n do {\n runLength = makeAscendingRun(array, lo, hi, compare);\n if (runLength < minRun) {\n var force = remaining;\n if (force > minRun) {\n force = minRun;\n }\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n runLength = force;\n }\n ts.pushRun(lo, runLength);\n ts.mergeRuns();\n remaining -= runLength;\n lo += runLength;\n } while (remaining !== 0);\n ts.forceMergeRuns();\n}\n","import * as util from './core/util';\nimport env from './core/env';\nimport Element from './Element';\nimport timsort from './core/timsort';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n if (invalidZErrorLogged) {\n return;\n }\n invalidZErrorLogged = true;\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n if (a.zlevel === b.zlevel) {\n if (a.z === b.z) {\n return a.z2 - b.z2;\n }\n return a.z - b.z;\n }\n return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n function Storage() {\n this._roots = [];\n this._displayList = [];\n this._displayListLen = 0;\n this.displayableSortFunc = shapeCompareFunc;\n }\n Storage.prototype.traverse = function (cb, context) {\n for (var i = 0; i < this._roots.length; i++) {\n this._roots[i].traverse(cb, context);\n }\n };\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\n includeIgnore = includeIgnore || false;\n var displayList = this._displayList;\n if (update || !displayList.length) {\n this.updateDisplayList(includeIgnore);\n }\n return displayList;\n };\n Storage.prototype.updateDisplayList = function (includeIgnore) {\n this._displayListLen = 0;\n var roots = this._roots;\n var displayList = this._displayList;\n for (var i = 0, len = roots.length; i < len; i++) {\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n }\n displayList.length = this._displayListLen;\n env.canvasSupported && timsort(displayList, shapeCompareFunc);\n };\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n if (el.ignore && !includeIgnore) {\n return;\n }\n el.beforeUpdate();\n el.update();\n el.afterUpdate();\n var userSetClipPath = el.getClipPath();\n if (el.ignoreClip) {\n clipPaths = null;\n }\n else if (userSetClipPath) {\n if (clipPaths) {\n clipPaths = clipPaths.slice();\n }\n else {\n clipPaths = [];\n }\n var currentClipPath = userSetClipPath;\n var parentClipPath = el;\n while (currentClipPath) {\n currentClipPath.parent = parentClipPath;\n currentClipPath.updateTransform();\n clipPaths.push(currentClipPath);\n parentClipPath = currentClipPath;\n currentClipPath = currentClipPath.getClipPath();\n }\n }\n if (el.childrenRef) {\n var children = el.childrenRef();\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (el.__dirty) {\n child.__dirty |= Element.REDARAW_BIT;\n }\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n }\n el.__dirty = 0;\n }\n else {\n var disp = el;\n if (clipPaths && clipPaths.length) {\n disp.__clipPaths = clipPaths;\n }\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n disp.__clipPaths = [];\n }\n if (isNaN(disp.z)) {\n logInvalidZError();\n disp.z = 0;\n }\n if (isNaN(disp.z2)) {\n logInvalidZError();\n disp.z2 = 0;\n }\n if (isNaN(disp.zlevel)) {\n logInvalidZError();\n disp.zlevel = 0;\n }\n this._displayList[this._displayListLen++] = disp;\n }\n var decalEl = el.getDecalElement && el.getDecalElement();\n if (decalEl) {\n this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n }\n var textGuide = el.getTextGuideLine();\n if (textGuide) {\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n }\n var textEl = el.getTextContent();\n if (textEl) {\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n }\n };\n Storage.prototype.addRoot = function (el) {\n if (el.__zr && el.__zr.storage === this) {\n return;\n }\n this._roots.push(el);\n };\n Storage.prototype.delRoot = function (el) {\n if (el instanceof Array) {\n for (var i = 0, l = el.length; i < l; i++) {\n this.delRoot(el[i]);\n }\n return;\n }\n var idx = util.indexOf(this._roots, el);\n if (idx >= 0) {\n this._roots.splice(idx, 1);\n }\n };\n Storage.prototype.delAllRoots = function () {\n this._roots = [];\n this._displayList = [];\n this._displayListLen = 0;\n return;\n };\n Storage.prototype.getRoots = function () {\n return this._roots;\n };\n Storage.prototype.dispose = function () {\n this._displayList = null;\n this._roots = null;\n };\n return Storage;\n}());\nexport default Storage;\n","var requestAnimationFrame;\nrequestAnimationFrame = (typeof window !== 'undefined'\n && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame)) || function (func) {\n return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful';\nimport requestAnimationFrame from './requestAnimationFrame';\nimport Animator from './Animator';\nvar Animation = (function (_super) {\n __extends(Animation, _super);\n function Animation(opts) {\n var _this = _super.call(this) || this;\n _this._running = false;\n _this._time = 0;\n _this._pausedTime = 0;\n _this._pauseStart = 0;\n _this._paused = false;\n opts = opts || {};\n _this.stage = opts.stage || {};\n _this.onframe = opts.onframe || function () { };\n return _this;\n }\n Animation.prototype.addClip = function (clip) {\n if (clip.animation) {\n this.removeClip(clip);\n }\n if (!this._clipsHead) {\n this._clipsHead = this._clipsTail = clip;\n }\n else {\n this._clipsTail.next = clip;\n clip.prev = this._clipsTail;\n clip.next = null;\n this._clipsTail = clip;\n }\n clip.animation = this;\n };\n Animation.prototype.addAnimator = function (animator) {\n animator.animation = this;\n var clip = animator.getClip();\n if (clip) {\n this.addClip(clip);\n }\n };\n Animation.prototype.removeClip = function (clip) {\n if (!clip.animation) {\n return;\n }\n var prev = clip.prev;\n var next = clip.next;\n if (prev) {\n prev.next = next;\n }\n else {\n this._clipsHead = next;\n }\n if (next) {\n next.prev = prev;\n }\n else {\n this._clipsTail = prev;\n }\n clip.next = clip.prev = clip.animation = null;\n };\n Animation.prototype.removeAnimator = function (animator) {\n var clip = animator.getClip();\n if (clip) {\n this.removeClip(clip);\n }\n animator.animation = null;\n };\n Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n var time = new Date().getTime() - this._pausedTime;\n var delta = time - this._time;\n var clip = this._clipsHead;\n while (clip) {\n var nextClip = clip.next;\n var finished = clip.step(time, delta);\n if (finished) {\n clip.ondestroy && clip.ondestroy();\n this.removeClip(clip);\n clip = nextClip;\n }\n else {\n clip = nextClip;\n }\n }\n this._time = time;\n if (!notTriggerFrameAndStageUpdate) {\n this.onframe(delta);\n this.trigger('frame', delta);\n this.stage.update && this.stage.update();\n }\n };\n Animation.prototype._startLoop = function () {\n var self = this;\n this._running = true;\n function step() {\n if (self._running) {\n requestAnimationFrame(step);\n !self._paused && self.update();\n }\n }\n requestAnimationFrame(step);\n };\n Animation.prototype.start = function () {\n if (this._running) {\n return;\n }\n this._time = new Date().getTime();\n this._pausedTime = 0;\n this._startLoop();\n };\n Animation.prototype.stop = function () {\n this._running = false;\n };\n Animation.prototype.pause = function () {\n if (!this._paused) {\n this._pauseStart = new Date().getTime();\n this._paused = true;\n }\n };\n Animation.prototype.resume = function () {\n if (this._paused) {\n this._pausedTime += (new Date().getTime()) - this._pauseStart;\n this._paused = false;\n }\n };\n Animation.prototype.clear = function () {\n var clip = this._clipsHead;\n while (clip) {\n var nextClip = clip.next;\n clip.prev = clip.next = clip.animation = null;\n clip = nextClip;\n }\n this._clipsHead = this._clipsTail = null;\n };\n Animation.prototype.isFinished = function () {\n return this._clipsHead == null;\n };\n Animation.prototype.animate = function (target, options) {\n options = options || {};\n this.start();\n var animator = new Animator(target, options.loop);\n this.addAnimator(animator);\n return animator;\n };\n return Animation;\n}(Eventful));\nexport default Animation;\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event';\nimport * as zrUtil from '../core/util';\nimport Eventful from '../core/Eventful';\nimport env from '../core/env';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n var mouseHandlerNames = [\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n ];\n var touchHandlerNames = [\n 'touchstart', 'touchend', 'touchmove'\n ];\n var pointerEventNameMap = {\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n };\n var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n var nm = name.replace('mouse', 'pointer');\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n });\n return {\n mouse: mouseHandlerNames,\n touch: touchHandlerNames,\n pointer: pointerHandlerNames\n };\n})();\nvar globalNativeListenerNames = {\n mouse: ['mousemove', 'mouseup'],\n pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n var pointerType = event.pointerType;\n return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n scope.touching = true;\n if (scope.touchTimer != null) {\n clearTimeout(scope.touchTimer);\n scope.touchTimer = null;\n }\n scope.touchTimer = setTimeout(function () {\n scope.touching = false;\n scope.touchTimer = null;\n }, 700);\n}\nfunction markTouch(event) {\n event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n var elTmp = el;\n var isLocal = false;\n while (elTmp && elTmp.nodeType !== 9\n && !(isLocal = elTmp.domBelongToZr\n || (elTmp !== el && elTmp === instance.painterRoot))) {\n elTmp = elTmp.parentNode;\n }\n return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n function FakeGlobalEvent(instance, event) {\n this.stopPropagation = zrUtil.noop;\n this.stopImmediatePropagation = zrUtil.noop;\n this.preventDefault = zrUtil.noop;\n this.type = event.type;\n this.target = this.currentTarget = instance.dom;\n this.pointerType = event.pointerType;\n this.clientX = event.clientX;\n this.clientY = event.clientY;\n }\n return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n mousedown: function (event) {\n event = normalizeEvent(this.dom, event);\n this.__mayPointerCapture = [event.zrX, event.zrY];\n this.trigger('mousedown', event);\n },\n mousemove: function (event) {\n event = normalizeEvent(this.dom, event);\n var downPoint = this.__mayPointerCapture;\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n this.__togglePointerCapture(true);\n }\n this.trigger('mousemove', event);\n },\n mouseup: function (event) {\n event = normalizeEvent(this.dom, event);\n this.__togglePointerCapture(false);\n this.trigger('mouseup', event);\n },\n mouseout: function (event) {\n event = normalizeEvent(this.dom, event);\n var element = event.toElement || event.relatedTarget;\n if (!isLocalEl(this, element)) {\n if (this.__pointerCapturing) {\n event.zrEventControl = 'no_globalout';\n }\n this.trigger('mouseout', event);\n }\n },\n wheel: function (event) {\n wheelEventSupported = true;\n event = normalizeEvent(this.dom, event);\n this.trigger('mousewheel', event);\n },\n mousewheel: function (event) {\n if (wheelEventSupported) {\n return;\n }\n event = normalizeEvent(this.dom, event);\n this.trigger('mousewheel', event);\n },\n touchstart: function (event) {\n event = normalizeEvent(this.dom, event);\n markTouch(event);\n this.__lastTouchMoment = new Date();\n this.handler.processGesture(event, 'start');\n localDOMHandlers.mousemove.call(this, event);\n localDOMHandlers.mousedown.call(this, event);\n },\n touchmove: function (event) {\n event = normalizeEvent(this.dom, event);\n markTouch(event);\n this.handler.processGesture(event, 'change');\n localDOMHandlers.mousemove.call(this, event);\n },\n touchend: function (event) {\n event = normalizeEvent(this.dom, event);\n markTouch(event);\n this.handler.processGesture(event, 'end');\n localDOMHandlers.mouseup.call(this, event);\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n localDOMHandlers.click.call(this, event);\n }\n },\n pointerdown: function (event) {\n localDOMHandlers.mousedown.call(this, event);\n },\n pointermove: function (event) {\n if (!isPointerFromTouch(event)) {\n localDOMHandlers.mousemove.call(this, event);\n }\n },\n pointerup: function (event) {\n localDOMHandlers.mouseup.call(this, event);\n },\n pointerout: function (event) {\n if (!isPointerFromTouch(event)) {\n localDOMHandlers.mouseout.call(this, event);\n }\n }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n localDOMHandlers[name] = function (event) {\n event = normalizeEvent(this.dom, event);\n this.trigger(name, event);\n };\n});\nvar globalDOMHandlers = {\n pointermove: function (event) {\n if (!isPointerFromTouch(event)) {\n globalDOMHandlers.mousemove.call(this, event);\n }\n },\n pointerup: function (event) {\n globalDOMHandlers.mouseup.call(this, event);\n },\n mousemove: function (event) {\n this.trigger('mousemove', event);\n },\n mouseup: function (event) {\n var pointerCaptureReleasing = this.__pointerCapturing;\n this.__togglePointerCapture(false);\n this.trigger('mouseup', event);\n if (pointerCaptureReleasing) {\n event.zrEventControl = 'only_globalout';\n this.trigger('mouseout', event);\n }\n }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n var domHandlers = scope.domHandlers;\n if (env.pointerEventsSupported) {\n zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n domHandlers[nativeEventName].call(instance, event);\n });\n });\n }\n else {\n if (env.touchEventsSupported) {\n zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n domHandlers[nativeEventName].call(instance, event);\n setTouchTimer(scope);\n });\n });\n }\n zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n event = getNativeEvent(event);\n if (!scope.touching) {\n domHandlers[nativeEventName].call(instance, event);\n }\n });\n });\n }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n if (env.pointerEventsSupported) {\n zrUtil.each(globalNativeListenerNames.pointer, mount);\n }\n else if (!env.touchEventsSupported) {\n zrUtil.each(globalNativeListenerNames.mouse, mount);\n }\n function mount(nativeEventName) {\n function nativeEventListener(event) {\n event = getNativeEvent(event);\n if (!isLocalEl(instance, event.target)) {\n event = normalizeGlobalEvent(instance, event);\n scope.domHandlers[nativeEventName].call(instance, event);\n }\n }\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n scope.mounted[nativeEventName] = listener;\n scope.listenerOpts[nativeEventName] = opt;\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n var mounted = scope.mounted;\n for (var nativeEventName in mounted) {\n if (mounted.hasOwnProperty(nativeEventName)) {\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n }\n }\n scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n function DOMHandlerScope(domTarget, domHandlers) {\n this.mounted = {};\n this.listenerOpts = {};\n this.touching = false;\n this.domTarget = domTarget;\n this.domHandlers = domHandlers;\n }\n return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n __extends(HandlerDomProxy, _super);\n function HandlerDomProxy(dom, painterRoot) {\n var _this = _super.call(this) || this;\n _this.__pointerCapturing = false;\n _this.dom = dom;\n _this.painterRoot = painterRoot;\n _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n if (globalEventSupported) {\n _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n }\n mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n return _this;\n }\n HandlerDomProxy.prototype.dispose = function () {\n unmountDOMEventListeners(this._localHandlerScope);\n if (globalEventSupported) {\n unmountDOMEventListeners(this._globalHandlerScope);\n }\n };\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n };\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n this.__mayPointerCapture = null;\n if (globalEventSupported\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n this.__pointerCapturing = isPointerCapturing;\n var globalHandlerScope = this._globalHandlerScope;\n isPointerCapturing\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n : unmountDOMEventListeners(globalHandlerScope);\n }\n };\n return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util';\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nvar Group = (function (_super) {\n __extends(Group, _super);\n function Group(opts) {\n var _this = _super.call(this) || this;\n _this.isGroup = true;\n _this._children = [];\n _this.attr(opts);\n return _this;\n }\n Group.prototype.childrenRef = function () {\n return this._children;\n };\n Group.prototype.children = function () {\n return this._children.slice();\n };\n Group.prototype.childAt = function (idx) {\n return this._children[idx];\n };\n Group.prototype.childOfName = function (name) {\n var children = this._children;\n for (var i = 0; i < children.length; i++) {\n if (children[i].name === name) {\n return children[i];\n }\n }\n };\n Group.prototype.childCount = function () {\n return this._children.length;\n };\n Group.prototype.add = function (child) {\n if (child) {\n if (child !== this && child.parent !== this) {\n this._children.push(child);\n this._doAdd(child);\n }\n if (child.__hostTarget) {\n throw 'This elemenet has been used as an attachment';\n }\n }\n return this;\n };\n Group.prototype.addBefore = function (child, nextSibling) {\n if (child && child !== this && child.parent !== this\n && nextSibling && nextSibling.parent === this) {\n var children = this._children;\n var idx = children.indexOf(nextSibling);\n if (idx >= 0) {\n children.splice(idx, 0, child);\n this._doAdd(child);\n }\n }\n return this;\n };\n Group.prototype.replaceAt = function (child, index) {\n var children = this._children;\n var old = children[index];\n if (child && child !== this && child.parent !== this && child !== old) {\n children[index] = child;\n old.parent = null;\n var zr = this.__zr;\n if (zr) {\n old.removeSelfFromZr(zr);\n }\n this._doAdd(child);\n }\n return this;\n };\n Group.prototype._doAdd = function (child) {\n if (child.parent) {\n child.parent.remove(child);\n }\n child.parent = this;\n var zr = this.__zr;\n if (zr && zr !== child.__zr) {\n child.addSelfToZr(zr);\n }\n zr && zr.refresh();\n };\n Group.prototype.remove = function (child) {\n var zr = this.__zr;\n var children = this._children;\n var idx = zrUtil.indexOf(children, child);\n if (idx < 0) {\n return this;\n }\n children.splice(idx, 1);\n child.parent = null;\n if (zr) {\n child.removeSelfFromZr(zr);\n }\n zr && zr.refresh();\n return this;\n };\n Group.prototype.removeAll = function () {\n var children = this._children;\n var zr = this.__zr;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (zr) {\n child.removeSelfFromZr(zr);\n }\n child.parent = null;\n }\n children.length = 0;\n return this;\n };\n Group.prototype.eachChild = function (cb, context) {\n var children = this._children;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n cb.call(context, child, i);\n }\n return this;\n };\n Group.prototype.traverse = function (cb, context) {\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n var stopped = cb.call(context, child);\n if (child.isGroup && !stopped) {\n child.traverse(cb, context);\n }\n }\n return this;\n };\n Group.prototype.addSelfToZr = function (zr) {\n _super.prototype.addSelfToZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n child.addSelfToZr(zr);\n }\n };\n Group.prototype.removeSelfFromZr = function (zr) {\n _super.prototype.removeSelfFromZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n child.removeSelfFromZr(zr);\n }\n };\n Group.prototype.getBoundingRect = function (includeChildren) {\n var tmpRect = new BoundingRect(0, 0, 0, 0);\n var children = includeChildren || this._children;\n var tmpMat = [];\n var rect = null;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child.ignore || child.invisible) {\n continue;\n }\n var childRect = child.getBoundingRect();\n var transform = child.getLocalTransform(tmpMat);\n if (transform) {\n BoundingRect.applyTransform(tmpRect, childRect, transform);\n rect = rect || tmpRect.clone();\n rect.union(tmpRect);\n }\n else {\n rect = rect || childRect.clone();\n rect.union(childRect);\n }\n }\n return rect || tmpRect;\n };\n return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n if (!backgroundColor) {\n return false;\n }\n if (typeof backgroundColor === 'string') {\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n }\n else if (backgroundColor.colorStops) {\n var colorStops = backgroundColor.colorStops;\n var totalLum = 0;\n var len = colorStops.length;\n for (var i = 0; i < len; i++) {\n totalLum += lum(colorStops[i].color, 1);\n }\n totalLum /= len;\n return totalLum < DARK_MODE_THRESHOLD;\n }\n return false;\n}\nvar ZRender = (function () {\n function ZRender(id, dom, opts) {\n var _this = this;\n this._sleepAfterStill = 10;\n this._stillFrameAccum = 0;\n this._needsRefresh = true;\n this._needsRefreshHover = true;\n this._darkMode = false;\n opts = opts || {};\n this.dom = dom;\n this.id = id;\n var storage = new Storage();\n var rendererType = opts.renderer || 'canvas';\n if (useVML) {\n throw new Error('IE8 support has been dropped since 5.0');\n }\n if (!painterCtors[rendererType]) {\n rendererType = zrUtil.keys(painterCtors)[0];\n }\n if (!painterCtors[rendererType]) {\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n }\n opts.useDirtyRect = opts.useDirtyRect == null\n ? false\n : opts.useDirtyRect;\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\n this.storage = storage;\n this.painter = painter;\n var handerProxy = (!env.node && !env.worker)\n ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n : null;\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\n this.animation = new Animation({\n stage: {\n update: function () { return _this._flush(true); }\n }\n });\n this.animation.start();\n }\n ZRender.prototype.add = function (el) {\n if (!el) {\n return;\n }\n this.storage.addRoot(el);\n el.addSelfToZr(this);\n this.refresh();\n };\n ZRender.prototype.remove = function (el) {\n if (!el) {\n return;\n }\n this.storage.delRoot(el);\n el.removeSelfFromZr(this);\n this.refresh();\n };\n ZRender.prototype.configLayer = function (zLevel, config) {\n if (this.painter.configLayer) {\n this.painter.configLayer(zLevel, config);\n }\n this.refresh();\n };\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n if (this.painter.setBackgroundColor) {\n this.painter.setBackgroundColor(backgroundColor);\n }\n this.refresh();\n this._backgroundColor = backgroundColor;\n this._darkMode = isDarkMode(backgroundColor);\n };\n ZRender.prototype.getBackgroundColor = function () {\n return this._backgroundColor;\n };\n ZRender.prototype.setDarkMode = function (darkMode) {\n this._darkMode = darkMode;\n };\n ZRender.prototype.isDarkMode = function () {\n return this._darkMode;\n };\n ZRender.prototype.refreshImmediately = function (fromInside) {\n if (!fromInside) {\n this.animation.update(true);\n }\n this._needsRefresh = false;\n this.painter.refresh();\n this._needsRefresh = false;\n };\n ZRender.prototype.refresh = function () {\n this._needsRefresh = true;\n this.animation.start();\n };\n ZRender.prototype.flush = function () {\n this._flush(false);\n };\n ZRender.prototype._flush = function (fromInside) {\n var triggerRendered;\n var start = new Date().getTime();\n if (this._needsRefresh) {\n triggerRendered = true;\n this.refreshImmediately(fromInside);\n }\n if (this._needsRefreshHover) {\n triggerRendered = true;\n this.refreshHoverImmediately();\n }\n var end = new Date().getTime();\n if (triggerRendered) {\n this._stillFrameAccum = 0;\n this.trigger('rendered', {\n elapsedTime: end - start\n });\n }\n else if (this._sleepAfterStill > 0) {\n this._stillFrameAccum++;\n if (this._stillFrameAccum > this._sleepAfterStill) {\n this.animation.stop();\n }\n }\n };\n ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n this._sleepAfterStill = stillFramesCount;\n };\n ZRender.prototype.wakeUp = function () {\n this.animation.start();\n this._stillFrameAccum = 0;\n };\n ZRender.prototype.addHover = function (el) {\n };\n ZRender.prototype.removeHover = function (el) {\n };\n ZRender.prototype.clearHover = function () {\n };\n ZRender.prototype.refreshHover = function () {\n this._needsRefreshHover = true;\n };\n ZRender.prototype.refreshHoverImmediately = function () {\n this._needsRefreshHover = false;\n if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n this.painter.refreshHover();\n }\n };\n ZRender.prototype.resize = function (opts) {\n opts = opts || {};\n this.painter.resize(opts.width, opts.height);\n this.handler.resize();\n };\n ZRender.prototype.clearAnimation = function () {\n this.animation.clear();\n };\n ZRender.prototype.getWidth = function () {\n return this.painter.getWidth();\n };\n ZRender.prototype.getHeight = function () {\n return this.painter.getHeight();\n };\n ZRender.prototype.pathToImage = function (e, dpr) {\n if (this.painter.pathToImage) {\n return this.painter.pathToImage(e, dpr);\n }\n };\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\n this.handler.setCursorStyle(cursorStyle);\n };\n ZRender.prototype.findHover = function (x, y) {\n return this.handler.findHover(x, y);\n };\n ZRender.prototype.on = function (eventName, eventHandler, context) {\n this.handler.on(eventName, eventHandler, context);\n return this;\n };\n ZRender.prototype.off = function (eventName, eventHandler) {\n this.handler.off(eventName, eventHandler);\n };\n ZRender.prototype.trigger = function (eventName, event) {\n this.handler.trigger(eventName, event);\n };\n ZRender.prototype.clear = function () {\n var roots = this.storage.getRoots();\n for (var i = 0; i < roots.length; i++) {\n if (roots[i] instanceof Group) {\n roots[i].removeSelfFromZr(this);\n }\n }\n this.storage.delAllRoots();\n this.painter.clear();\n };\n ZRender.prototype.dispose = function () {\n this.animation.stop();\n this.clear();\n this.storage.dispose();\n this.painter.dispose();\n this.handler.dispose();\n this.animation =\n this.storage =\n this.painter =\n this.handler = null;\n delInstance(this.id);\n };\n return ZRender;\n}());\nexport function init(dom, opts) {\n var zr = new ZRender(zrUtil.guid(), dom, opts);\n instances[zr.id] = zr;\n return zr;\n}\nexport function dispose(zr) {\n zr.dispose();\n}\nexport function disposeAll() {\n for (var key in instances) {\n if (instances.hasOwnProperty(key)) {\n instances[key].dispose();\n }\n }\n instances = {};\n}\nexport function getInstance(id) {\n return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n painterCtors[name] = Ctor;\n}\nexport var version = '5.0.3';\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nexport function linearMap(val, domain, range, clamp) {\n var subDomain = domain[1] - domain[0];\n var subRange = range[1] - range[0];\n\n if (subDomain === 0) {\n return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n }\n\n if (clamp) {\n if (subDomain > 0) {\n if (val <= domain[0]) {\n return range[0];\n } else if (val >= domain[1]) {\n return range[1];\n }\n } else {\n if (val >= domain[0]) {\n return range[0];\n } else if (val <= domain[1]) {\n return range[1];\n }\n }\n } else {\n if (val === domain[0]) {\n return range[0];\n }\n\n if (val === domain[1]) {\n return range[1];\n }\n }\n\n return (val - domain[0]) / subDomain * subRange + range[0];\n}\nexport function parsePercent(percent, all) {\n switch (percent) {\n case 'center':\n case 'middle':\n percent = '50%';\n break;\n\n case 'left':\n case 'top':\n percent = '0%';\n break;\n\n case 'right':\n case 'bottom':\n percent = '100%';\n break;\n }\n\n if (typeof percent === 'string') {\n if (_trim(percent).match(/%$/)) {\n return parseFloat(percent) / 100 * all;\n }\n\n return parseFloat(percent);\n }\n\n return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n if (precision == null) {\n precision = 10;\n }\n\n precision = Math.min(Math.max(0, precision), 20);\n x = (+x).toFixed(precision);\n return returnStr ? x : +x;\n}\nexport function asc(arr) {\n arr.sort(function (a, b) {\n return a - b;\n });\n return arr;\n}\nexport function getPrecision(val) {\n val = +val;\n\n if (isNaN(val)) {\n return 0;\n }\n\n var e = 1;\n var count = 0;\n\n while (Math.round(val * e) / e !== val) {\n e *= 10;\n count++;\n }\n\n return count;\n}\nexport function getPrecisionSafe(val) {\n var str = val.toString();\n var eIndex = str.indexOf('e');\n\n if (eIndex > 0) {\n var precision = +str.slice(eIndex + 1);\n return precision < 0 ? -precision : 0;\n } else {\n var dotIndex = str.indexOf('.');\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n }\n}\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n var log = Math.log;\n var LN10 = Math.LN10;\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n return !isFinite(precision) ? 20 : precision;\n}\nexport function getPercentWithPrecision(valueList, idx, precision) {\n if (!valueList[idx]) {\n return 0;\n }\n\n var sum = zrUtil.reduce(valueList, function (acc, val) {\n return acc + (isNaN(val) ? 0 : val);\n }, 0);\n\n if (sum === 0) {\n return 0;\n }\n\n var digits = Math.pow(10, precision);\n var votesPerQuota = zrUtil.map(valueList, function (val) {\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\n });\n var targetSeats = digits * 100;\n var seats = zrUtil.map(votesPerQuota, function (votes) {\n return Math.floor(votes);\n });\n var currentSum = zrUtil.reduce(seats, function (acc, val) {\n return acc + val;\n }, 0);\n var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n return votes - seats[idx];\n });\n\n while (currentSum < targetSeats) {\n var max = Number.NEGATIVE_INFINITY;\n var maxId = null;\n\n for (var i = 0, len = remainder.length; i < len; ++i) {\n if (remainder[i] > max) {\n max = remainder[i];\n maxId = i;\n }\n }\n\n ++seats[maxId];\n remainder[maxId] = 0;\n ++currentSum;\n }\n\n return seats[idx] / digits;\n}\nexport var MAX_SAFE_INTEGER = 9007199254740991;\nexport function remRadian(radian) {\n var pi2 = Math.PI * 2;\n return (radian % pi2 + pi2) % pi2;\n}\nexport function isRadianAroundZero(val) {\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\nvar TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;\nexport function parseDate(value) {\n if (value instanceof Date) {\n return value;\n } else if (typeof value === 'string') {\n var match = TIME_REG.exec(value);\n\n if (!match) {\n return new Date(NaN);\n }\n\n if (!match[8]) {\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\n } else {\n var hour = +match[4] || 0;\n\n if (match[8].toUpperCase() !== 'Z') {\n hour -= +match[8].slice(0, 3);\n }\n\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\n }\n } else if (value == null) {\n return new Date(NaN);\n }\n\n return new Date(Math.round(value));\n}\nexport function quantity(val) {\n return Math.pow(10, quantityExponent(val));\n}\nexport function quantityExponent(val) {\n if (val === 0) {\n return 0;\n }\n\n var exp = Math.floor(Math.log(val) / Math.LN10);\n\n if (val / Math.pow(10, exp) >= 10) {\n exp++;\n }\n\n return exp;\n}\nexport function nice(val, round) {\n var exponent = quantityExponent(val);\n var exp10 = Math.pow(10, exponent);\n var f = val / exp10;\n var nf;\n\n if (round) {\n if (f < 1.5) {\n nf = 1;\n } else if (f < 2.5) {\n nf = 2;\n } else if (f < 4) {\n nf = 3;\n } else if (f < 7) {\n nf = 5;\n } else {\n nf = 10;\n }\n } else {\n if (f < 1) {\n nf = 1;\n } else if (f < 2) {\n nf = 2;\n } else if (f < 3) {\n nf = 3;\n } else if (f < 5) {\n nf = 5;\n } else {\n nf = 10;\n }\n }\n\n val = nf * exp10;\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\nexport function quantile(ascArr, p) {\n var H = (ascArr.length - 1) * p + 1;\n var h = Math.floor(H);\n var v = +ascArr[h - 1];\n var e = H - h;\n return e ? v + e * (ascArr[h] - v) : v;\n}\nexport function reformIntervals(list) {\n list.sort(function (a, b) {\n return littleThan(a, b, 0) ? -1 : 1;\n });\n var curr = -Infinity;\n var currClose = 1;\n\n for (var i = 0; i < list.length;) {\n var interval = list[i].interval;\n var close_1 = list[i].close;\n\n for (var lg = 0; lg < 2; lg++) {\n if (interval[lg] <= curr) {\n interval[lg] = curr;\n close_1[lg] = !lg ? 1 - currClose : 1;\n }\n\n curr = interval[lg];\n currClose = close_1[lg];\n }\n\n if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n list.splice(i, 1);\n } else {\n i++;\n }\n }\n\n return list;\n\n function littleThan(a, b, lg) {\n return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n }\n}\nexport function numericToNumber(val) {\n var valFloat = parseFloat(val);\n return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN;\n}\nexport function isNumeric(val) {\n return !isNaN(numericToNumber(val));\n}\nexport function getRandomIdBase() {\n return Math.round(Math.random() * 9);\n}\nexport function getGreatestCommonDividor(a, b) {\n if (b === 0) {\n return a;\n }\n\n return getGreatestCommonDividor(b, a % b);\n}\nexport function getLeastCommonMultiple(a, b) {\n if (a == null) {\n return b;\n }\n\n if (b == null) {\n return a;\n }\n\n return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' && console.warn && console.log;\nexport function log(str) {\n if (hasConsole) {\n console.log(ECHARTS_PREFIX + str);\n }\n}\nexport function warn(str) {\n if (hasConsole) {\n console.warn(ECHARTS_PREFIX + str);\n }\n}\nexport function error(str) {\n if (hasConsole) {\n console.error(ECHARTS_PREFIX + str);\n }\n}\nexport function deprecateLog(str) {\n if (process.env.NODE_ENV !== 'production') {\n if (storedLogs[str]) {\n return;\n }\n\n if (hasConsole) {\n storedLogs[str] = true;\n console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\n }\n }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n }\n}\nexport function consoleLog() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof console !== 'undefined' && console.log) {\n console.log.apply(console, args);\n }\n }\n}\nexport function makePrintable() {\n var hintInfo = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n hintInfo[_i] = arguments[_i];\n }\n\n var msg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n var makePrintableStringIfPossible_1 = function (val) {\n return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n };\n\n msg = map(hintInfo, function (arg) {\n if (isString(arg)) {\n return arg;\n } else {\n var printableStr = makePrintableStringIfPossible_1(arg);\n\n if (printableStr != null) {\n return printableStr;\n } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n try {\n return JSON.stringify(arg, function (n, val) {\n var printableStr = makePrintableStringIfPossible_1(val);\n return printableStr == null ? val : printableStr;\n });\n } catch (err) {\n return '?';\n }\n } else {\n return '?';\n }\n }\n }).join(' ');\n }\n\n return msg;\n}\nexport function throwError(msg) {\n throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe } from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { isNumeric, getRandomIdBase, getPrecisionSafe, round } from './number';\nimport { interpolateNumber } from 'zrender/lib/animation/Animator';\nimport { warn } from './log';\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\nexport function normalizeToArray(value) {\n return value instanceof Array ? value : value == null ? [] : [value];\n}\nexport function defaultEmphasis(opt, key, subOpts) {\n if (opt) {\n opt[key] = opt[key] || {};\n opt.emphasis = opt.emphasis || {};\n opt.emphasis[key] = opt.emphasis[key] || {};\n\n for (var i = 0, len = subOpts.length; i < len; i++) {\n var subOptName = subOpts[i];\n\n if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n opt.emphasis[key][subOptName] = opt[key][subOptName];\n }\n }\n }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'];\nexport function getDataItemValue(dataItem) {\n return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\nexport function isDataItemOption(dataItem) {\n return isObject(dataItem) && !(dataItem instanceof Array);\n}\n;\nexport function mappingToExists(existings, newCmptOptions, mode) {\n var isNormalMergeMode = mode === 'normalMerge';\n var isReplaceMergeMode = mode === 'replaceMerge';\n var isReplaceAllMode = mode === 'replaceAll';\n existings = existings || [];\n newCmptOptions = (newCmptOptions || []).slice();\n var existingIdIdxMap = createHashMap();\n each(newCmptOptions, function (cmptOption, index) {\n if (!isObject(cmptOption)) {\n newCmptOptions[index] = null;\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n warnInvalidateIdOrName(cmptOption.id);\n }\n\n if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n warnInvalidateIdOrName(cmptOption.name);\n }\n }\n });\n var result = prepareResult(existings, existingIdIdxMap, mode);\n\n if (isNormalMergeMode || isReplaceMergeMode) {\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n }\n\n if (isNormalMergeMode) {\n mappingByName(result, newCmptOptions);\n }\n\n if (isNormalMergeMode || isReplaceMergeMode) {\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n } else if (isReplaceAllMode) {\n mappingInReplaceAllMode(result, newCmptOptions);\n }\n\n makeIdAndName(result);\n return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n var result = [];\n\n if (mode === 'replaceAll') {\n return result;\n }\n\n for (var index = 0; index < existings.length; index++) {\n var existing = existings[index];\n\n if (existing && existing.id != null) {\n existingIdIdxMap.set(existing.id, index);\n }\n\n result.push({\n existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n newOption: null,\n keyInfo: null,\n brandNew: null\n });\n }\n\n return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n each(newCmptOptions, function (cmptOption, index) {\n if (!cmptOption || cmptOption.id == null) {\n return;\n }\n\n var optionId = makeComparableKey(cmptOption.id);\n var existingIdx = existingIdIdxMap.get(optionId);\n\n if (existingIdx != null) {\n var resultItem = result[existingIdx];\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n resultItem.newOption = cmptOption;\n resultItem.existing = existings[existingIdx];\n newCmptOptions[index] = null;\n }\n });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n each(newCmptOptions, function (cmptOption, index) {\n if (!cmptOption || cmptOption.name == null) {\n return;\n }\n\n for (var i = 0; i < result.length; i++) {\n var existing = result[i].existing;\n\n if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n result[i].newOption = cmptOption;\n newCmptOptions[index] = null;\n return;\n }\n }\n });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n each(newCmptOptions, function (cmptOption) {\n if (!cmptOption) {\n return;\n }\n\n var resultItem;\n var nextIdx = 0;\n\n while ((resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n nextIdx++;\n }\n\n if (resultItem) {\n resultItem.newOption = cmptOption;\n resultItem.brandNew = brandNew;\n } else {\n result.push({\n newOption: cmptOption,\n brandNew: brandNew,\n existing: null,\n keyInfo: null\n });\n }\n\n nextIdx++;\n });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n each(newCmptOptions, function (cmptOption) {\n result.push({\n newOption: cmptOption,\n brandNew: true,\n existing: null,\n keyInfo: null\n });\n });\n}\n\nfunction makeIdAndName(mapResult) {\n var idMap = createHashMap();\n each(mapResult, function (item) {\n var existing = item.existing;\n existing && idMap.set(existing.id, item);\n });\n each(mapResult, function (item) {\n var opt = item.newOption;\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n opt && opt.id != null && idMap.set(opt.id, item);\n !item.keyInfo && (item.keyInfo = {});\n });\n each(mapResult, function (item, index) {\n var existing = item.existing;\n var opt = item.newOption;\n var keyInfo = item.keyInfo;\n\n if (!isObject(opt)) {\n return;\n }\n\n keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n if (existing) {\n keyInfo.id = makeComparableKey(existing.id);\n } else if (opt.id != null) {\n keyInfo.id = makeComparableKey(opt.id);\n } else {\n var idNum = 0;\n\n do {\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n } while (idMap.get(keyInfo.id));\n }\n\n idMap.set(keyInfo.id, item);\n });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n var key1 = convertOptionIdName(obj1[attr], null);\n var key2 = convertOptionIdName(obj2[attr], null);\n return key1 != null && key2 != null && key1 === key2;\n}\n\nfunction makeComparableKey(val) {\n if (process.env.NODE_ENV !== 'production') {\n if (val == null) {\n throw new Error();\n }\n }\n\n return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n if (idOrName == null) {\n return defaultValue;\n }\n\n var type = typeof idOrName;\n return type === 'string' ? idOrName : type === 'number' || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n }\n}\n\nfunction isValidIdOrName(idOrName) {\n return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n var name = componentModel.name;\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\nexport function isComponentIdInternal(cmptOption) {\n return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n each(mappingResult, function (item) {\n var newOption = item.newOption;\n\n if (isObject(newOption)) {\n item.keyInfo.mainType = mainType;\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n }\n });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption);\n return subType;\n}\n\nexport function compressBatches(batchA, batchB) {\n var mapA = {};\n var mapB = {};\n makeMap(batchA || [], mapA);\n makeMap(batchB || [], mapB, mapA);\n return [mapToArray(mapA), mapToArray(mapB)];\n\n function makeMap(sourceBatch, map, otherMap) {\n for (var i = 0, len = sourceBatch.length; i < len; i++) {\n var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n if (seriesId == null) {\n return;\n }\n\n var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n var otherDataIndices = otherMap && otherMap[seriesId];\n\n for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n var dataIndex = dataIndices[j];\n\n if (otherDataIndices && otherDataIndices[dataIndex]) {\n otherDataIndices[dataIndex] = null;\n } else {\n (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n }\n }\n }\n }\n\n function mapToArray(map, isData) {\n var result = [];\n\n for (var i in map) {\n if (map.hasOwnProperty(i) && map[i] != null) {\n if (isData) {\n result.push(+i);\n } else {\n var dataIndices = mapToArray(map[i], true);\n dataIndices.length && result.push({\n seriesId: i,\n dataIndex: dataIndices\n });\n }\n }\n }\n\n return result;\n }\n}\nexport function queryDataIndex(data, payload) {\n if (payload.dataIndexInside != null) {\n return payload.dataIndexInside;\n } else if (payload.dataIndex != null) {\n return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n return data.indexOfRawIndex(value);\n }) : data.indexOfRawIndex(payload.dataIndex);\n } else if (payload.name != null) {\n return isArray(payload.name) ? map(payload.name, function (value) {\n return data.indexOfName(value);\n }) : data.indexOfName(payload.name);\n }\n}\nexport function makeInner() {\n var key = '__ec_inner_' + innerUniqueIndex++;\n return function (hostObj) {\n return hostObj[key] || (hostObj[key] = {});\n };\n}\nvar innerUniqueIndex = getRandomIdBase();\nexport function parseFinder(ecModel, finderInput, opt) {\n var finder;\n\n if (isString(finderInput)) {\n var obj = {};\n obj[finderInput + 'Index'] = 0;\n finder = obj;\n } else {\n finder = finderInput;\n }\n\n var queryOptionMap = createHashMap();\n var result = {};\n var mainTypeSpecified = false;\n each(finder, function (value, key) {\n if (key === 'dataIndex' || key === 'dataIndexInside') {\n result[key] = value;\n return;\n }\n\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n var mainType = parsedKey[1];\n var queryType = (parsedKey[2] || '').toLowerCase();\n\n if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n return;\n }\n\n mainTypeSpecified = mainTypeSpecified || !!mainType;\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n queryOption[queryType] = value;\n });\n var defaultMainType = opt ? opt.defaultMainType : null;\n\n if (!mainTypeSpecified && defaultMainType) {\n queryOptionMap.set(defaultMainType, {});\n }\n\n queryOptionMap.each(function (queryOption, mainType) {\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n useDefault: defaultMainType === mainType,\n enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n });\n result[mainType + 'Models'] = queryResult.models;\n result[mainType + 'Model'] = queryResult.models[0];\n });\n return result;\n}\nexport var SINGLE_REFERRING = {\n useDefault: true,\n enableAll: false,\n enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n useDefault: false,\n enableAll: true,\n enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n opt = opt || SINGLE_REFERRING;\n var indexOption = userOption.index;\n var idOption = userOption.id;\n var nameOption = userOption.name;\n var result = {\n models: null,\n specified: indexOption != null || idOption != null || nameOption != null\n };\n\n if (!result.specified) {\n var firstCmpt = void 0;\n result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n return result;\n }\n\n if (indexOption === 'none' || indexOption === false) {\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n result.models = [];\n return result;\n }\n\n if (indexOption === 'all') {\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n indexOption = idOption = nameOption = null;\n }\n\n result.models = ecModel.queryComponents({\n mainType: mainType,\n index: indexOption,\n id: idOption,\n name: nameOption\n });\n return result;\n}\nexport function setAttribute(dom, key, value) {\n dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n if (renderModeOption === 'auto') {\n return env.domSupported ? 'html' : 'richText';\n } else {\n return renderModeOption || 'html';\n }\n}\nexport function groupData(array, getKey) {\n var buckets = createHashMap();\n var keys = [];\n each(array, function (item) {\n var key = getKey(item);\n (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n });\n return {\n keys: keys,\n buckets: buckets\n };\n}\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n var isAutoPrecision = precision == null || precision === 'auto';\n\n if (targetValue == null) {\n return targetValue;\n }\n\n if (typeof targetValue === 'number') {\n var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n return round(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue)) : precision);\n } else if (typeof targetValue === 'string') {\n return percent < 1 ? sourceValue : targetValue;\n } else {\n var interpolated = [];\n var leftArr = sourceValue;\n var rightArr = targetValue;\n var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n for (var i = 0; i < length_1; ++i) {\n var info = data.getDimensionInfo(i);\n\n if (info.type === 'ordinal') {\n interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n } else {\n var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n var rightVal = rightArr[i];\n var value = interpolateNumber(leftVal, rightVal, percent);\n interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal)) : precision);\n }\n }\n\n return interpolated;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\nexport function parseClassType(componentType) {\n var ret = {\n main: '',\n sub: ''\n };\n\n if (componentType) {\n var typeArr = componentType.split(TYPE_DELIMITER);\n ret.main = typeArr[0] || '';\n ret.sub = typeArr[1] || '';\n }\n\n return ret;\n}\n\nfunction checkClassType(componentType) {\n zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n rootClz.$constructor = rootClz;\n\n rootClz.extend = function (proto) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.each(mandatoryMethods, function (method) {\n if (!proto[method]) {\n console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n }\n });\n }\n\n var superClass = this;\n\n function ExtendedClass() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!proto.$constructor) {\n if (!isESClass(superClass)) {\n superClass.apply(this, arguments);\n } else {\n var ins = zrUtil.createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\n return ins;\n }\n } else {\n proto.$constructor.apply(this, arguments);\n }\n }\n\n ExtendedClass[IS_EXTENDED_CLASS] = true;\n zrUtil.extend(ExtendedClass.prototype, proto);\n ExtendedClass.extend = this.extend;\n ExtendedClass.superCall = superCall;\n ExtendedClass.superApply = superApply;\n zrUtil.inherits(ExtendedClass, this);\n ExtendedClass.superClass = superClass;\n return ExtendedClass;\n };\n}\n\nfunction isESClass(fn) {\n return typeof fn === 'function' && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n\nexport function mountExtend(SubClz, SupperClz) {\n SubClz.extend = SupperClz.extend;\n}\nvar classBase = Math.round(Math.random() * 10);\nexport function enableClassCheck(target) {\n var classAttr = ['__\\0is_clz', classBase++].join('_');\n target.prototype[classAttr] = true;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n }\n\n target.isInstance = function (obj) {\n return !!(obj && obj[classAttr]);\n };\n}\n\nfunction superCall(context, methodName) {\n var args = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n\n return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n return this.superClass.prototype[methodName].apply(context, args);\n}\n\nexport function enableClassManagement(target) {\n var storage = {};\n\n target.registerClass = function (clz) {\n var componentFullType = clz.type || clz.prototype.type;\n\n if (componentFullType) {\n checkClassType(componentFullType);\n clz.prototype.type = componentFullType;\n var componentTypeInfo = parseClassType(componentFullType);\n\n if (!componentTypeInfo.sub) {\n if (process.env.NODE_ENV !== 'production') {\n if (storage[componentTypeInfo.main]) {\n console.warn(componentTypeInfo.main + ' exists.');\n }\n }\n\n storage[componentTypeInfo.main] = clz;\n } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n var container = makeContainer(componentTypeInfo);\n container[componentTypeInfo.sub] = clz;\n }\n }\n\n return clz;\n };\n\n target.getClass = function (mainType, subType, throwWhenNotFound) {\n var clz = storage[mainType];\n\n if (clz && clz[IS_CONTAINER]) {\n clz = subType ? clz[subType] : null;\n }\n\n if (throwWhenNotFound && !clz) {\n throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\n }\n\n return clz;\n };\n\n target.getClassesByMainType = function (componentType) {\n var componentTypeInfo = parseClassType(componentType);\n var result = [];\n var obj = storage[componentTypeInfo.main];\n\n if (obj && obj[IS_CONTAINER]) {\n zrUtil.each(obj, function (o, type) {\n type !== IS_CONTAINER && result.push(o);\n });\n } else {\n result.push(obj);\n }\n\n return result;\n };\n\n target.hasClass = function (componentType) {\n var componentTypeInfo = parseClassType(componentType);\n return !!storage[componentTypeInfo.main];\n };\n\n target.getAllClassMainTypes = function () {\n var types = [];\n zrUtil.each(storage, function (obj, type) {\n types.push(type);\n });\n return types;\n };\n\n target.hasSubTypes = function (componentType) {\n var componentTypeInfo = parseClassType(componentType);\n var obj = storage[componentTypeInfo.main];\n return obj && obj[IS_CONTAINER];\n };\n\n function makeContainer(componentTypeInfo) {\n var container = storage[componentTypeInfo.main];\n\n if (!container || !container[IS_CONTAINER]) {\n container = storage[componentTypeInfo.main] = {};\n container[IS_CONTAINER] = true;\n }\n\n return container;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function makeStyleMapper(properties, ignoreParent) {\n for (var i = 0; i < properties.length; i++) {\n if (!properties[i][1]) {\n properties[i][1] = properties[i][0];\n }\n }\n\n ignoreParent = ignoreParent || false;\n return function (model, excludes, includes) {\n var style = {};\n\n for (var i = 0; i < properties.length; i++) {\n var propName = properties[i][1];\n\n if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n continue;\n }\n\n var val = model.getShallow(propName, ignoreParent);\n\n if (val != null) {\n style[properties[i][0]] = val;\n }\n }\n\n return style;\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin = function () {\n function AreaStyleMixin() {}\n\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n return getAreaStyle(this, excludes, includes);\n };\n\n return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","import LRU from '../../core/LRU';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n if (typeof newImageOrSrc === 'string') {\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\n return cachedImgObj && cachedImgObj.image;\n }\n else {\n return newImageOrSrc;\n }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n if (!newImageOrSrc) {\n return image;\n }\n else if (typeof newImageOrSrc === 'string') {\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n return image;\n }\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\n var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n if (cachedImgObj) {\n image = cachedImgObj.image;\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n }\n else {\n image = new Image();\n image.onload = image.onerror = imageOnLoad;\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n image: image,\n pending: [pendingWrap]\n });\n image.src = image.__zrImageSrc = newImageOrSrc;\n }\n return image;\n }\n else {\n return newImageOrSrc;\n }\n}\nfunction imageOnLoad() {\n var cachedImgObj = this.__cachedImgObj;\n this.onload = this.onerror = this.__cachedImgObj = null;\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\n var pendingWrap = cachedImgObj.pending[i];\n var cb = pendingWrap.cb;\n cb && cb(this, pendingWrap.cbPayload);\n pendingWrap.hostEl.dirty();\n }\n cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util';\nimport { getLineHeight, getWidth } from '../../contain/text';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n if (!containerWidth) {\n return '';\n }\n var textLines = (text + '').split('\\n');\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n for (var i = 0, len = textLines.length; i < len; i++) {\n textLines[i] = truncateSingleLine(textLines[i], options);\n }\n return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n options = options || {};\n var preparedOpts = extend({}, options);\n preparedOpts.font = font;\n ellipsis = retrieve2(ellipsis, '...');\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n preparedOpts.cnCharWidth = getWidth('国', font);\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n contentWidth -= ascCharWidth;\n }\n var ellipsisWidth = getWidth(ellipsis, font);\n if (ellipsisWidth > contentWidth) {\n ellipsis = '';\n ellipsisWidth = 0;\n }\n contentWidth = containerWidth - ellipsisWidth;\n preparedOpts.ellipsis = ellipsis;\n preparedOpts.ellipsisWidth = ellipsisWidth;\n preparedOpts.contentWidth = contentWidth;\n preparedOpts.containerWidth = containerWidth;\n return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n var containerWidth = options.containerWidth;\n var font = options.font;\n var contentWidth = options.contentWidth;\n if (!containerWidth) {\n return '';\n }\n var lineWidth = getWidth(textLine, font);\n if (lineWidth <= containerWidth) {\n return textLine;\n }\n for (var j = 0;; j++) {\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\n textLine += options.ellipsis;\n break;\n }\n var subLength = j === 0\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n : lineWidth > 0\n ? Math.floor(textLine.length * contentWidth / lineWidth)\n : 0;\n textLine = textLine.substr(0, subLength);\n lineWidth = getWidth(textLine, font);\n }\n if (textLine === '') {\n textLine = options.placeholder;\n }\n return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n var width = 0;\n var i = 0;\n for (var len = text.length; i < len && width < contentWidth; i++) {\n var charCode = text.charCodeAt(i);\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n }\n return i;\n}\nexport function parsePlainText(text, style) {\n text != null && (text += '');\n var overflow = style.overflow;\n var padding = style.padding;\n var font = style.font;\n var truncate = overflow === 'truncate';\n var calculatedLineHeight = getLineHeight(font);\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n var truncateLineOverflow = style.lineOverflow === 'truncate';\n var width = style.width;\n var lines;\n if (width != null && overflow === 'break' || overflow === 'breakAll') {\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n }\n else {\n lines = text ? text.split('\\n') : [];\n }\n var contentHeight = lines.length * lineHeight;\n var height = retrieve2(style.height, contentHeight);\n if (contentHeight > height && truncateLineOverflow) {\n var lineCount = Math.floor(height / lineHeight);\n lines = lines.slice(0, lineCount);\n }\n var outerHeight = height;\n var outerWidth = width;\n if (padding) {\n outerHeight += padding[0] + padding[2];\n if (outerWidth != null) {\n outerWidth += padding[1] + padding[3];\n }\n }\n if (text && truncate && outerWidth != null) {\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\n minChar: style.truncateMinChar,\n placeholder: style.placeholder\n });\n for (var i = 0; i < lines.length; i++) {\n lines[i] = truncateSingleLine(lines[i], options);\n }\n }\n if (width == null) {\n var maxWidth = 0;\n for (var i = 0; i < lines.length; i++) {\n maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\n }\n width = maxWidth;\n }\n return {\n lines: lines,\n height: height,\n outerHeight: outerHeight,\n lineHeight: lineHeight,\n calculatedLineHeight: calculatedLineHeight,\n contentHeight: contentHeight,\n width: width\n };\n}\nvar RichTextToken = (function () {\n function RichTextToken() {\n }\n return RichTextToken;\n}());\nvar RichTextLine = (function () {\n function RichTextLine(tokens) {\n this.tokens = [];\n if (tokens) {\n this.tokens = tokens;\n }\n }\n return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n function RichTextContentBlock() {\n this.width = 0;\n this.height = 0;\n this.contentWidth = 0;\n this.contentHeight = 0;\n this.outerWidth = 0;\n this.outerHeight = 0;\n this.lines = [];\n }\n return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n var contentBlock = new RichTextContentBlock();\n text != null && (text += '');\n if (!text) {\n return contentBlock;\n }\n var topWidth = style.width;\n var topHeight = style.height;\n var overflow = style.overflow;\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n : null;\n var lastIndex = STYLE_REG.lastIndex = 0;\n var result;\n while ((result = STYLE_REG.exec(text)) != null) {\n var matchedIndex = result.index;\n if (matchedIndex > lastIndex) {\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n }\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n lastIndex = STYLE_REG.lastIndex;\n }\n if (lastIndex < text.length) {\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n }\n var pendingList = [];\n var calculatedHeight = 0;\n var calculatedWidth = 0;\n var stlPadding = style.padding;\n var truncate = overflow === 'truncate';\n var truncateLine = style.lineOverflow === 'truncate';\n var prevToken;\n function finishLine(line, lineWidth, lineHeight) {\n line.width = lineWidth;\n line.lineHeight = lineHeight;\n calculatedHeight += lineHeight;\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\n }\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n var line = contentBlock.lines[i];\n var lineHeight = 0;\n var lineWidth = 0;\n for (var j = 0; j < line.tokens.length; j++) {\n var token = line.tokens[j];\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n var textPadding = token.textPadding = tokenStyle.padding;\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n var font = token.font = tokenStyle.font || style.font;\n token.contentHeight = getLineHeight(font);\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n token.innerHeight = tokenHeight;\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n token.height = tokenHeight;\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n token.align = tokenStyle && tokenStyle.align || style.align;\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n if (j > 0) {\n line.tokens = line.tokens.slice(0, j);\n finishLine(line, lineWidth, lineHeight);\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n }\n else {\n contentBlock.lines = contentBlock.lines.slice(0, i);\n }\n break outer;\n }\n var styleTokenWidth = tokenStyle.width;\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n token.percentWidth = styleTokenWidth;\n pendingList.push(token);\n token.contentWidth = getWidth(token.text, font);\n }\n else {\n if (tokenWidthNotSpecified) {\n var textBackgroundColor = tokenStyle.backgroundColor;\n var bgImg = textBackgroundColor && textBackgroundColor.image;\n if (bgImg) {\n bgImg = imageHelper.findExistImage(bgImg);\n if (imageHelper.isImageReady(bgImg)) {\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n }\n }\n }\n var remainTruncWidth = truncate && topWidth != null\n ? topWidth - lineWidth : null;\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n token.text = '';\n token.width = token.contentWidth = 0;\n }\n else {\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n token.width = token.contentWidth = getWidth(token.text, font);\n }\n }\n else {\n token.contentWidth = getWidth(token.text, font);\n }\n }\n token.width += paddingH;\n lineWidth += token.width;\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n prevToken = token;\n }\n finishLine(line, lineWidth, lineHeight);\n }\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n contentBlock.contentHeight = calculatedHeight;\n contentBlock.contentWidth = calculatedWidth;\n if (stlPadding) {\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n }\n for (var i = 0; i < pendingList.length; i++) {\n var token = pendingList[i];\n var percentWidth = token.percentWidth;\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n }\n return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n var isEmptyStr = str === '';\n var tokenStyle = styleName && style.rich[styleName] || {};\n var lines = block.lines;\n var font = tokenStyle.font || style.font;\n var newLine = false;\n var strLines;\n var linesWidths;\n if (wrapInfo) {\n var tokenPadding = tokenStyle.padding;\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n if (lines.length > 0) {\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n strLines = str.split('\\n');\n newLine = true;\n }\n }\n wrapInfo.accumWidth = outerWidth_1;\n }\n else {\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n linesWidths = res.linesWidths;\n strLines = res.lines;\n }\n }\n else {\n strLines = str.split('\\n');\n }\n for (var i = 0; i < strLines.length; i++) {\n var text = strLines[i];\n var token = new RichTextToken();\n token.styleName = styleName;\n token.text = text;\n token.isLineHolder = !text && !isEmptyStr;\n if (typeof tokenStyle.width === 'number') {\n token.width = tokenStyle.width;\n }\n else {\n token.width = linesWidths\n ? linesWidths[i]\n : getWidth(text, font);\n }\n if (!i && !newLine) {\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n var tokensLen = tokens.length;\n (tokensLen === 1 && tokens[0].isLineHolder)\n ? (tokens[0] = token)\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n }\n else {\n lines.push(new RichTextLine([token]));\n }\n }\n}\nfunction isLatin(ch) {\n var code = ch.charCodeAt(0);\n return code >= 0x21 && code <= 0xFF;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n obj[ch] = true;\n return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n if (isLatin(ch)) {\n if (breakCharMap[ch]) {\n return true;\n }\n return false;\n }\n return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n var lines = [];\n var linesWidths = [];\n var line = '';\n var currentWord = '';\n var currentWordWidth = 0;\n var accumWidth = 0;\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch === '\\n') {\n if (currentWord) {\n line += currentWord;\n accumWidth += currentWordWidth;\n }\n lines.push(line);\n linesWidths.push(accumWidth);\n line = '';\n currentWord = '';\n currentWordWidth = 0;\n accumWidth = 0;\n continue;\n }\n var chWidth = getWidth(ch, font);\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n if (!lines.length\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\n : accumWidth + chWidth > lineWidth) {\n if (!accumWidth) {\n if (inWord) {\n lines.push(currentWord);\n linesWidths.push(currentWordWidth);\n currentWord = ch;\n currentWordWidth = chWidth;\n }\n else {\n lines.push(ch);\n linesWidths.push(chWidth);\n }\n }\n else if (line || currentWord) {\n if (inWord) {\n if (!line) {\n line = currentWord;\n currentWord = '';\n currentWordWidth = 0;\n accumWidth = currentWordWidth;\n }\n lines.push(line);\n linesWidths.push(accumWidth - currentWordWidth);\n currentWord += ch;\n currentWordWidth += chWidth;\n line = '';\n accumWidth = currentWordWidth;\n }\n else {\n if (currentWord) {\n line += currentWord;\n accumWidth += currentWordWidth;\n currentWord = '';\n currentWordWidth = 0;\n }\n lines.push(line);\n linesWidths.push(accumWidth);\n line = ch;\n accumWidth = chWidth;\n }\n }\n continue;\n }\n accumWidth += chWidth;\n if (inWord) {\n currentWord += ch;\n currentWordWidth += chWidth;\n }\n else {\n if (currentWord) {\n line += currentWord;\n currentWord = '';\n currentWordWidth = 0;\n }\n line += ch;\n }\n }\n if (!lines.length && !line) {\n line = text;\n currentWord = '';\n currentWordWidth = 0;\n }\n if (currentWord) {\n line += currentWord;\n }\n if (line) {\n lines.push(line);\n linesWidths.push(accumWidth);\n }\n if (lines.length === 1) {\n accumWidth += lastAccumWidth;\n }\n return {\n accumWidth: accumWidth,\n lines: lines,\n linesWidths: linesWidths\n };\n}\nfunction parsePercent(value, maxValue) {\n if (typeof value === 'string') {\n if (value.lastIndexOf('%') >= 0) {\n return parseFloat(value) / 100 * maxValue;\n }\n return parseFloat(value);\n }\n return value;\n}\n","import { __extends } from \"tslib\";\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nimport { keys, extend, createObject } from '../core/util';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n shadowBlur: 0,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n shadowColor: '#000',\n opacity: 1,\n blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n style: {\n shadowBlur: true,\n shadowOffsetX: true,\n shadowOffsetY: true,\n shadowColor: true,\n opacity: true\n }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar Displayable = (function (_super) {\n __extends(Displayable, _super);\n function Displayable(props) {\n return _super.call(this, props) || this;\n }\n Displayable.prototype._init = function (props) {\n var keysArr = keys(props);\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n if (key === 'style') {\n this.useStyle(props[key]);\n }\n else {\n _super.prototype.attrKV.call(this, key, props[key]);\n }\n }\n if (!this.style) {\n this.useStyle({});\n }\n };\n Displayable.prototype.beforeBrush = function () { };\n Displayable.prototype.afterBrush = function () { };\n Displayable.prototype.innerBeforeBrush = function () { };\n Displayable.prototype.innerAfterBrush = function () { };\n Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n var m = this.transform;\n if (this.ignore\n || this.invisible\n || this.style.opacity === 0\n || (this.culling\n && isDisplayableCulled(this, viewWidth, viewHeight))\n || (m && !m[0] && !m[3])) {\n return false;\n }\n if (considerClipPath && this.__clipPaths) {\n for (var i = 0; i < this.__clipPaths.length; ++i) {\n if (this.__clipPaths[i].isZeroArea()) {\n return false;\n }\n }\n }\n if (considerAncestors && this.parent) {\n var parent_1 = this.parent;\n while (parent_1) {\n if (parent_1.ignore) {\n return false;\n }\n parent_1 = parent_1.parent;\n }\n }\n return true;\n };\n Displayable.prototype.contain = function (x, y) {\n return this.rectContain(x, y);\n };\n Displayable.prototype.traverse = function (cb, context) {\n cb.call(context, this);\n };\n Displayable.prototype.rectContain = function (x, y) {\n var coord = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n return rect.contain(coord[0], coord[1]);\n };\n Displayable.prototype.getPaintRect = function () {\n var rect = this._paintRect;\n if (!this._paintRect || this.__dirty) {\n var transform = this.transform;\n var elRect = this.getBoundingRect();\n var style = this.style;\n var shadowSize = style.shadowBlur || 0;\n var shadowOffsetX = style.shadowOffsetX || 0;\n var shadowOffsetY = style.shadowOffsetY || 0;\n rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n if (transform) {\n BoundingRect.applyTransform(rect, elRect, transform);\n }\n else {\n rect.copy(elRect);\n }\n if (shadowSize || shadowOffsetX || shadowOffsetY) {\n rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n }\n var tolerance = this.dirtyRectTolerance;\n if (!rect.isZero()) {\n rect.x = Math.floor(rect.x - tolerance);\n rect.y = Math.floor(rect.y - tolerance);\n rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n }\n }\n return rect;\n };\n Displayable.prototype.setPrevPaintRect = function (paintRect) {\n if (paintRect) {\n this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n this._prevPaintRect.copy(paintRect);\n }\n else {\n this._prevPaintRect = null;\n }\n };\n Displayable.prototype.getPrevPaintRect = function () {\n return this._prevPaintRect;\n };\n Displayable.prototype.animateStyle = function (loop) {\n return this.animate('style', loop);\n };\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\n if (targetKey === 'style') {\n this.dirtyStyle();\n }\n else {\n this.markRedraw();\n }\n };\n Displayable.prototype.attrKV = function (key, value) {\n if (key !== 'style') {\n _super.prototype.attrKV.call(this, key, value);\n }\n else {\n if (!this.style) {\n this.useStyle(value);\n }\n else {\n this.setStyle(value);\n }\n }\n };\n Displayable.prototype.setStyle = function (keyOrObj, value) {\n if (typeof keyOrObj === 'string') {\n this.style[keyOrObj] = value;\n }\n else {\n extend(this.style, keyOrObj);\n }\n this.dirtyStyle();\n return this;\n };\n Displayable.prototype.dirtyStyle = function () {\n this.markRedraw();\n this.__dirty |= Displayable.STYLE_CHANGED_BIT;\n if (this._rect) {\n this._rect = null;\n }\n };\n Displayable.prototype.dirty = function () {\n this.dirtyStyle();\n };\n Displayable.prototype.styleChanged = function () {\n return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\n };\n Displayable.prototype.styleUpdated = function () {\n this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\n };\n Displayable.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_COMMON_STYLE, obj);\n };\n Displayable.prototype.useStyle = function (obj) {\n if (!obj[STYLE_MAGIC_KEY]) {\n obj = this.createStyle(obj);\n }\n if (this.__inHover) {\n this.__hoverStyle = obj;\n }\n else {\n this.style = obj;\n }\n this.dirtyStyle();\n };\n Displayable.prototype.isStyleObject = function (obj) {\n return obj[STYLE_MAGIC_KEY];\n };\n Displayable.prototype._innerSaveToNormal = function (toState) {\n _super.prototype._innerSaveToNormal.call(this, toState);\n var normalState = this._normalState;\n if (toState.style && !normalState.style) {\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\n }\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n };\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n var needsRestoreToNormal = !(state && keepCurrentStates);\n var targetStyle;\n if (state && state.style) {\n if (transition) {\n if (keepCurrentStates) {\n targetStyle = state.style;\n }\n else {\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n this._mergeStyle(targetStyle, state.style);\n }\n }\n else {\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n this._mergeStyle(targetStyle, state.style);\n }\n }\n else if (needsRestoreToNormal) {\n targetStyle = normalState.style;\n }\n if (targetStyle) {\n if (transition) {\n var sourceStyle = this.style;\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n if (needsRestoreToNormal) {\n var changedKeys = keys(sourceStyle);\n for (var i = 0; i < changedKeys.length; i++) {\n var key = changedKeys[i];\n if (key in targetStyle) {\n targetStyle[key] = targetStyle[key];\n this.style[key] = sourceStyle[key];\n }\n }\n }\n var targetKeys = keys(targetStyle);\n for (var i = 0; i < targetKeys.length; i++) {\n var key = targetKeys[i];\n this.style[key] = this.style[key];\n }\n this._transitionState(stateName, {\n style: targetStyle\n }, animationCfg, this.getAnimationStyleProps());\n }\n else {\n this.useStyle(targetStyle);\n }\n }\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n var key = PRIMARY_STATES_KEYS[i];\n if (state && state[key] != null) {\n this[key] = state[key];\n }\n else if (needsRestoreToNormal) {\n if (normalState[key] != null) {\n this[key] = normalState[key];\n }\n }\n }\n };\n Displayable.prototype._mergeStates = function (states) {\n var mergedState = _super.prototype._mergeStates.call(this, states);\n var mergedStyle;\n for (var i = 0; i < states.length; i++) {\n var state = states[i];\n if (state.style) {\n mergedStyle = mergedStyle || {};\n this._mergeStyle(mergedStyle, state.style);\n }\n }\n if (mergedStyle) {\n mergedState.style = mergedStyle;\n }\n return mergedState;\n };\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n extend(targetStyle, sourceStyle);\n return targetStyle;\n };\n Displayable.prototype.getAnimationStyleProps = function () {\n return DEFAULT_COMMON_ANIMATION_PROPS;\n };\n Displayable.STYLE_CHANGED_BIT = 2;\n Displayable.initDefaultProps = (function () {\n var dispProto = Displayable.prototype;\n dispProto.type = 'displayable';\n dispProto.invisible = false;\n dispProto.z = 0;\n dispProto.z2 = 0;\n dispProto.zlevel = 0;\n dispProto.culling = false;\n dispProto.cursor = 'pointer';\n dispProto.rectHover = false;\n dispProto.incremental = false;\n dispProto._rect = null;\n dispProto.dirtyRectTolerance = 0;\n dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\n })();\n return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n tmpRect.copy(el.getBoundingRect());\n if (el.transform) {\n tmpRect.applyTransform(el.transform);\n }\n viewRect.width = width;\n viewRect.height = height;\n return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","import { create as v2Create, distSquare as v2DistSquare } from './vector';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n var onet = 1 - t;\n return onet * onet * (onet * p0 + 3 * t * p1)\n + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n var onet = 1 - t;\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n var a = p3 + 3 * (p1 - p2) - p0;\n var b = 3 * (p2 - p1 * 2 + p0);\n var c = 3 * (p1 - p0);\n var d = p0 - val;\n var A = b * b - 3 * a * c;\n var B = b * c - 9 * a * d;\n var C = c * c - 3 * b * d;\n var n = 0;\n if (isAroundZero(A) && isAroundZero(B)) {\n if (isAroundZero(b)) {\n roots[0] = 0;\n }\n else {\n var t1 = -c / b;\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n }\n else {\n var disc = B * B - 4 * A * C;\n if (isAroundZero(disc)) {\n var K = B / A;\n var t1 = -b / a + K;\n var t2 = -K / 2;\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n roots[n++] = t2;\n }\n }\n else if (disc > 0) {\n var discSqrt = mathSqrt(disc);\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n if (Y1 < 0) {\n Y1 = -mathPow(-Y1, ONE_THIRD);\n }\n else {\n Y1 = mathPow(Y1, ONE_THIRD);\n }\n if (Y2 < 0) {\n Y2 = -mathPow(-Y2, ONE_THIRD);\n }\n else {\n Y2 = mathPow(Y2, ONE_THIRD);\n }\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n else {\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n var theta = Math.acos(T) / 3;\n var ASqrt = mathSqrt(A);\n var tmp = Math.cos(theta);\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n roots[n++] = t2;\n }\n if (t3 >= 0 && t3 <= 1) {\n roots[n++] = t3;\n }\n }\n }\n return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n var b = 6 * p2 - 12 * p1 + 6 * p0;\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n var c = 3 * p1 - 3 * p0;\n var n = 0;\n if (isAroundZero(a)) {\n if (isNotAroundZero(b)) {\n var t1 = -c / b;\n if (t1 >= 0 && t1 <= 1) {\n extrema[n++] = t1;\n }\n }\n }\n else {\n var disc = b * b - 4 * a * c;\n if (isAroundZero(disc)) {\n extrema[0] = -b / (2 * a);\n }\n else if (disc > 0) {\n var discSqrt = mathSqrt(disc);\n var t1 = (-b + discSqrt) / (2 * a);\n var t2 = (-b - discSqrt) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n extrema[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n extrema[n++] = t2;\n }\n }\n }\n return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n var p01 = (p1 - p0) * t + p0;\n var p12 = (p2 - p1) * t + p1;\n var p23 = (p3 - p2) * t + p2;\n var p012 = (p12 - p01) * t + p01;\n var p123 = (p23 - p12) * t + p12;\n var p0123 = (p123 - p012) * t + p012;\n out[0] = p0;\n out[1] = p01;\n out[2] = p012;\n out[3] = p0123;\n out[4] = p0123;\n out[5] = p123;\n out[6] = p23;\n out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n var t;\n var interval = 0.005;\n var d = Infinity;\n var prev;\n var next;\n var d1;\n var d2;\n _v0[0] = x;\n _v0[1] = y;\n for (var _t = 0; _t < 1; _t += 0.05) {\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n d1 = v2DistSquare(_v0, _v1);\n if (d1 < d) {\n t = _t;\n d = d1;\n }\n }\n d = Infinity;\n for (var i = 0; i < 32; i++) {\n if (interval < EPSILON_NUMERIC) {\n break;\n }\n prev = t - interval;\n next = t + interval;\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n d1 = v2DistSquare(_v1, _v0);\n if (prev >= 0 && d1 < d) {\n t = prev;\n d = d1;\n }\n else {\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\n d2 = v2DistSquare(_v2, _v0);\n if (next <= 1 && d2 < d) {\n t = next;\n d = d2;\n }\n else {\n interval *= 0.5;\n }\n }\n }\n if (out) {\n out[0] = cubicAt(x0, x1, x2, x3, t);\n out[1] = cubicAt(y0, y1, y2, y3, t);\n }\n return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n var px = x0;\n var py = y0;\n var d = 0;\n var step = 1 / iteration;\n for (var i = 1; i <= iteration; i++) {\n var t = i * step;\n var x = cubicAt(x0, x1, x2, x3, t);\n var y = cubicAt(y0, y1, y2, y3, t);\n var dx = x - px;\n var dy = y - py;\n d += Math.sqrt(dx * dx + dy * dy);\n px = x;\n py = y;\n }\n return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n var onet = 1 - t;\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n var a = p0 - 2 * p1 + p2;\n var b = 2 * (p1 - p0);\n var c = p0 - val;\n var n = 0;\n if (isAroundZero(a)) {\n if (isNotAroundZero(b)) {\n var t1 = -c / b;\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n }\n else {\n var disc = b * b - 4 * a * c;\n if (isAroundZero(disc)) {\n var t1 = -b / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n else if (disc > 0) {\n var discSqrt = mathSqrt(disc);\n var t1 = (-b + discSqrt) / (2 * a);\n var t2 = (-b - discSqrt) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n roots[n++] = t2;\n }\n }\n }\n return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n var divider = p0 + p2 - 2 * p1;\n if (divider === 0) {\n return 0.5;\n }\n else {\n return (p0 - p1) / divider;\n }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n var p01 = (p1 - p0) * t + p0;\n var p12 = (p2 - p1) * t + p1;\n var p012 = (p12 - p01) * t + p01;\n out[0] = p0;\n out[1] = p01;\n out[2] = p012;\n out[3] = p012;\n out[4] = p12;\n out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n var t;\n var interval = 0.005;\n var d = Infinity;\n _v0[0] = x;\n _v0[1] = y;\n for (var _t = 0; _t < 1; _t += 0.05) {\n _v1[0] = quadraticAt(x0, x1, x2, _t);\n _v1[1] = quadraticAt(y0, y1, y2, _t);\n var d1 = v2DistSquare(_v0, _v1);\n if (d1 < d) {\n t = _t;\n d = d1;\n }\n }\n d = Infinity;\n for (var i = 0; i < 32; i++) {\n if (interval < EPSILON_NUMERIC) {\n break;\n }\n var prev = t - interval;\n var next = t + interval;\n _v1[0] = quadraticAt(x0, x1, x2, prev);\n _v1[1] = quadraticAt(y0, y1, y2, prev);\n var d1 = v2DistSquare(_v1, _v0);\n if (prev >= 0 && d1 < d) {\n t = prev;\n d = d1;\n }\n else {\n _v2[0] = quadraticAt(x0, x1, x2, next);\n _v2[1] = quadraticAt(y0, y1, y2, next);\n var d2 = v2DistSquare(_v2, _v0);\n if (next <= 1 && d2 < d) {\n t = next;\n d = d2;\n }\n else {\n interval *= 0.5;\n }\n }\n }\n if (out) {\n out[0] = quadraticAt(x0, x1, x2, t);\n out[1] = quadraticAt(y0, y1, y2, t);\n }\n return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n var px = x0;\n var py = y0;\n var d = 0;\n var step = 1 / iteration;\n for (var i = 1; i <= iteration; i++) {\n var t = i * step;\n var x = quadraticAt(x0, x1, x2, t);\n var y = quadraticAt(y0, y1, y2, t);\n var dx = x - px;\n var dy = y - py;\n d += Math.sqrt(dx * dx + dy * dy);\n px = x;\n py = y;\n }\n return d;\n}\n","import * as vec2 from './vector';\nimport * as curve from './curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n if (points.length === 0) {\n return;\n }\n var p = points[0];\n var left = p[0];\n var right = p[0];\n var top = p[1];\n var bottom = p[1];\n for (var i = 1; i < points.length; i++) {\n p = points[i];\n left = mathMin(left, p[0]);\n right = mathMax(right, p[0]);\n top = mathMin(top, p[1]);\n bottom = mathMax(bottom, p[1]);\n }\n min[0] = left;\n min[1] = top;\n max[0] = right;\n max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n min[0] = mathMin(x0, x1);\n min[1] = mathMin(y0, y1);\n max[0] = mathMax(x0, x1);\n max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n var cubicExtrema = curve.cubicExtrema;\n var cubicAt = curve.cubicAt;\n var n = cubicExtrema(x0, x1, x2, x3, xDim);\n min[0] = Infinity;\n min[1] = Infinity;\n max[0] = -Infinity;\n max[1] = -Infinity;\n for (var i = 0; i < n; i++) {\n var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n min[0] = mathMin(x, min[0]);\n max[0] = mathMax(x, max[0]);\n }\n n = cubicExtrema(y0, y1, y2, y3, yDim);\n for (var i = 0; i < n; i++) {\n var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n min[1] = mathMin(y, min[1]);\n max[1] = mathMax(y, max[1]);\n }\n min[0] = mathMin(x0, min[0]);\n max[0] = mathMax(x0, max[0]);\n min[0] = mathMin(x3, min[0]);\n max[0] = mathMax(x3, max[0]);\n min[1] = mathMin(y0, min[1]);\n max[1] = mathMax(y0, max[1]);\n min[1] = mathMin(y3, min[1]);\n max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n var quadraticExtremum = curve.quadraticExtremum;\n var quadraticAt = curve.quadraticAt;\n var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n var x = quadraticAt(x0, x1, x2, tx);\n var y = quadraticAt(y0, y1, y2, ty);\n min[0] = mathMin(x0, x2, x);\n min[1] = mathMin(y0, y2, y);\n max[0] = mathMax(x0, x2, x);\n max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n var vec2Min = vec2.min;\n var vec2Max = vec2.max;\n var diff = Math.abs(startAngle - endAngle);\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\n min[0] = x - rx;\n min[1] = y - ry;\n max[0] = x + rx;\n max[1] = y + ry;\n return;\n }\n start[0] = mathCos(startAngle) * rx + x;\n start[1] = mathSin(startAngle) * ry + y;\n end[0] = mathCos(endAngle) * rx + x;\n end[1] = mathSin(endAngle) * ry + y;\n vec2Min(min, start, end);\n vec2Max(max, start, end);\n startAngle = startAngle % (PI2);\n if (startAngle < 0) {\n startAngle = startAngle + PI2;\n }\n endAngle = endAngle % (PI2);\n if (endAngle < 0) {\n endAngle = endAngle + PI2;\n }\n if (startAngle > endAngle && !anticlockwise) {\n endAngle += PI2;\n }\n else if (startAngle < endAngle && anticlockwise) {\n startAngle += PI2;\n }\n if (anticlockwise) {\n var tmp = endAngle;\n endAngle = startAngle;\n startAngle = tmp;\n }\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n if (angle > startAngle) {\n extremity[0] = mathCos(angle) * rx + x;\n extremity[1] = mathSin(angle) * ry + y;\n vec2Min(min, extremity, min);\n vec2Max(max, extremity, max);\n }\n }\n}\n","import * as vec2 from './vector';\nimport BoundingRect from './BoundingRect';\nimport { devicePixelRatio as dpr } from '../config';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox';\nimport { cubicAt, cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve';\nvar CMD = {\n M: 1,\n L: 2,\n C: 3,\n Q: 4,\n A: 5,\n Z: 6,\n R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n var n = Math.round(radian / PI * 1e8) / 1e8;\n return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n var newStartAngle = modPI2(angles[0]);\n if (newStartAngle < 0) {\n newStartAngle += PI2;\n }\n var delta = newStartAngle - angles[0];\n var newEndAngle = angles[1];\n newEndAngle += delta;\n if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n newEndAngle = newStartAngle + PI2;\n }\n else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n newEndAngle = newStartAngle - PI2;\n }\n else if (!anticlockwise && newStartAngle > newEndAngle) {\n newEndAngle = newStartAngle +\n (PI2 - modPI2(newStartAngle - newEndAngle));\n }\n else if (anticlockwise && newStartAngle < newEndAngle) {\n newEndAngle = newStartAngle -\n (PI2 - modPI2(newEndAngle - newStartAngle));\n }\n angles[0] = newStartAngle;\n angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n function PathProxy(notSaveData) {\n this.dpr = 1;\n this._version = 0;\n this._xi = 0;\n this._yi = 0;\n this._x0 = 0;\n this._y0 = 0;\n this._len = 0;\n if (notSaveData) {\n this._saveData = false;\n }\n if (this._saveData) {\n this.data = [];\n }\n }\n PathProxy.prototype.increaseVersion = function () {\n this._version++;\n };\n PathProxy.prototype.getVersion = function () {\n return this._version;\n };\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n if (segmentIgnoreThreshold > 0) {\n this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n }\n };\n PathProxy.prototype.setDPR = function (dpr) {\n this.dpr = dpr;\n };\n PathProxy.prototype.setContext = function (ctx) {\n this._ctx = ctx;\n };\n PathProxy.prototype.getContext = function () {\n return this._ctx;\n };\n PathProxy.prototype.beginPath = function () {\n this._ctx && this._ctx.beginPath();\n this.reset();\n return this;\n };\n PathProxy.prototype.reset = function () {\n if (this._saveData) {\n this._len = 0;\n }\n if (this._lineDash) {\n this._lineDash = null;\n this._dashOffset = 0;\n }\n if (this._pathSegLen) {\n this._pathSegLen = null;\n this._pathLen = 0;\n }\n this._version++;\n };\n PathProxy.prototype.moveTo = function (x, y) {\n this.addData(CMD.M, x, y);\n this._ctx && this._ctx.moveTo(x, y);\n this._x0 = x;\n this._y0 = y;\n this._xi = x;\n this._yi = y;\n return this;\n };\n PathProxy.prototype.lineTo = function (x, y) {\n var exceedUnit = mathAbs(x - this._xi) > this._ux\n || mathAbs(y - this._yi) > this._uy\n || this._len < 5;\n this.addData(CMD.L, x, y);\n if (this._ctx && exceedUnit) {\n this._needsDash ? this._dashedLineTo(x, y)\n : this._ctx.lineTo(x, y);\n }\n if (exceedUnit) {\n this._xi = x;\n this._yi = y;\n }\n return this;\n };\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n if (this._ctx) {\n this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\n : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n }\n this._xi = x3;\n this._yi = y3;\n return this;\n };\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n this.addData(CMD.Q, x1, y1, x2, y2);\n if (this._ctx) {\n this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\n : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n }\n this._xi = x2;\n this._yi = y2;\n return this;\n };\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n tmpAngles[0] = startAngle;\n tmpAngles[1] = endAngle;\n normalizeArcAngles(tmpAngles, anticlockwise);\n startAngle = tmpAngles[0];\n endAngle = tmpAngles[1];\n var delta = endAngle - startAngle;\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n this._xi = mathCos(endAngle) * r + cx;\n this._yi = mathSin(endAngle) * r + cy;\n return this;\n };\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n if (this._ctx) {\n this._ctx.arcTo(x1, y1, x2, y2, radius);\n }\n return this;\n };\n PathProxy.prototype.rect = function (x, y, w, h) {\n this._ctx && this._ctx.rect(x, y, w, h);\n this.addData(CMD.R, x, y, w, h);\n return this;\n };\n PathProxy.prototype.closePath = function () {\n this.addData(CMD.Z);\n var ctx = this._ctx;\n var x0 = this._x0;\n var y0 = this._y0;\n if (ctx) {\n this._needsDash && this._dashedLineTo(x0, y0);\n ctx.closePath();\n }\n this._xi = x0;\n this._yi = y0;\n return this;\n };\n PathProxy.prototype.fill = function (ctx) {\n ctx && ctx.fill();\n this.toStatic();\n };\n PathProxy.prototype.stroke = function (ctx) {\n ctx && ctx.stroke();\n this.toStatic();\n };\n PathProxy.prototype.setLineDash = function (lineDash) {\n if (lineDash instanceof Array) {\n this._lineDash = lineDash;\n this._dashIdx = 0;\n var lineDashSum = 0;\n for (var i = 0; i < lineDash.length; i++) {\n lineDashSum += lineDash[i];\n }\n this._dashSum = lineDashSum;\n this._needsDash = true;\n }\n else {\n this._lineDash = null;\n this._needsDash = false;\n }\n return this;\n };\n PathProxy.prototype.setLineDashOffset = function (offset) {\n this._dashOffset = offset;\n return this;\n };\n PathProxy.prototype.len = function () {\n return this._len;\n };\n PathProxy.prototype.setData = function (data) {\n var len = data.length;\n if (!(this.data && this.data.length === len) && hasTypedArray) {\n this.data = new Float32Array(len);\n }\n for (var i = 0; i < len; i++) {\n this.data[i] = data[i];\n }\n this._len = len;\n };\n PathProxy.prototype.appendPath = function (path) {\n if (!(path instanceof Array)) {\n path = [path];\n }\n var len = path.length;\n var appendSize = 0;\n var offset = this._len;\n for (var i = 0; i < len; i++) {\n appendSize += path[i].len();\n }\n if (hasTypedArray && (this.data instanceof Float32Array)) {\n this.data = new Float32Array(offset + appendSize);\n }\n for (var i = 0; i < len; i++) {\n var appendPathData = path[i].data;\n for (var k = 0; k < appendPathData.length; k++) {\n this.data[offset++] = appendPathData[k];\n }\n }\n this._len = offset;\n };\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n if (!this._saveData) {\n return;\n }\n var data = this.data;\n if (this._len + arguments.length > data.length) {\n this._expandData();\n data = this.data;\n }\n for (var i = 0; i < arguments.length; i++) {\n data[this._len++] = arguments[i];\n }\n };\n PathProxy.prototype._expandData = function () {\n if (!(this.data instanceof Array)) {\n var newData = [];\n for (var i = 0; i < this._len; i++) {\n newData[i] = this.data[i];\n }\n this.data = newData;\n }\n };\n PathProxy.prototype._dashedLineTo = function (x1, y1) {\n var dashSum = this._dashSum;\n var lineDash = this._lineDash;\n var ctx = this._ctx;\n var offset = this._dashOffset;\n var x0 = this._xi;\n var y0 = this._yi;\n var dx = x1 - x0;\n var dy = y1 - y0;\n var dist = mathSqrt(dx * dx + dy * dy);\n var x = x0;\n var y = y0;\n var nDash = lineDash.length;\n var dash;\n var idx;\n dx /= dist;\n dy /= dist;\n if (offset < 0) {\n offset = dashSum + offset;\n }\n offset %= dashSum;\n x -= offset * dx;\n y -= offset * dy;\n while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\n || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\n idx = this._dashIdx;\n dash = lineDash[idx];\n x += dx * dash;\n y += dy * dash;\n this._dashIdx = (idx + 1) % nDash;\n if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\n continue;\n }\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n }\n dx = x - x1;\n dy = y - y1;\n this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n };\n PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\n var ctx = this._ctx;\n var dashSum = this._dashSum;\n var offset = this._dashOffset;\n var lineDash = this._lineDash;\n var x0 = this._xi;\n var y0 = this._yi;\n var bezierLen = 0;\n var idx = this._dashIdx;\n var nDash = lineDash.length;\n var t;\n var dx;\n var dy;\n var x;\n var y;\n var tmpLen = 0;\n if (offset < 0) {\n offset = dashSum + offset;\n }\n offset %= dashSum;\n for (t = 0; t < 1; t += 0.1) {\n dx = cubicAt(x0, x1, x2, x3, t + 0.1)\n - cubicAt(x0, x1, x2, x3, t);\n dy = cubicAt(y0, y1, y2, y3, t + 0.1)\n - cubicAt(y0, y1, y2, y3, t);\n bezierLen += mathSqrt(dx * dx + dy * dy);\n }\n for (; idx < nDash; idx++) {\n tmpLen += lineDash[idx];\n if (tmpLen > offset) {\n break;\n }\n }\n t = (tmpLen - offset) / bezierLen;\n while (t <= 1) {\n x = cubicAt(x0, x1, x2, x3, t);\n y = cubicAt(y0, y1, y2, y3, t);\n idx % 2 ? ctx.moveTo(x, y)\n : ctx.lineTo(x, y);\n t += lineDash[idx] / bezierLen;\n idx = (idx + 1) % nDash;\n }\n (idx % 2 !== 0) && ctx.lineTo(x3, y3);\n dx = x3 - x;\n dy = y3 - y;\n this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n };\n PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\n var x3 = x2;\n var y3 = y2;\n x2 = (x2 + 2 * x1) / 3;\n y2 = (y2 + 2 * y1) / 3;\n x1 = (this._xi + 2 * x1) / 3;\n y1 = (this._yi + 2 * y1) / 3;\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n };\n PathProxy.prototype.toStatic = function () {\n if (!this._saveData) {\n return;\n }\n var data = this.data;\n if (data instanceof Array) {\n data.length = this._len;\n if (hasTypedArray && this._len > 11) {\n this.data = new Float32Array(data);\n }\n }\n };\n PathProxy.prototype.getBoundingRect = function () {\n min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n var data = this.data;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var i;\n for (i = 0; i < this._len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n switch (cmd) {\n case CMD.M:\n xi = x0 = data[i++];\n yi = y0 = data[i++];\n min2[0] = x0;\n min2[1] = y0;\n max2[0] = x0;\n max2[1] = y0;\n break;\n case CMD.L:\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.C:\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.Q:\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var startAngle = data[i++];\n var endAngle = data[i++] + startAngle;\n i += 1;\n var anticlockwise = !data[i++];\n if (isFirst) {\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n break;\n case CMD.Z:\n xi = x0;\n yi = y0;\n break;\n }\n vec2.min(min, min, min2);\n vec2.max(max, max, max2);\n }\n if (i === 0) {\n min[0] = min[1] = max[0] = max[1] = 0;\n }\n return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n };\n PathProxy.prototype._calculateLength = function () {\n var data = this.data;\n var len = this._len;\n var ux = this._ux;\n var uy = this._uy;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n if (!this._pathSegLen) {\n this._pathSegLen = [];\n }\n var pathSegLen = this._pathSegLen;\n var pathTotalLen = 0;\n var segCount = 0;\n for (var i = 0; i < len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n var l = -1;\n switch (cmd) {\n case CMD.M:\n xi = x0 = data[i++];\n yi = y0 = data[i++];\n break;\n case CMD.L: {\n var x2 = data[i++];\n var y2 = data[i++];\n var dx = x2 - xi;\n var dy = y2 - yi;\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n l = Math.sqrt(dx * dx + dy * dy);\n xi = x2;\n yi = y2;\n }\n break;\n }\n case CMD.C: {\n var x1 = data[i++];\n var y1 = data[i++];\n var x2 = data[i++];\n var y2 = data[i++];\n var x3 = data[i++];\n var y3 = data[i++];\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n xi = x3;\n yi = y3;\n break;\n }\n case CMD.Q: {\n var x1 = data[i++];\n var y1 = data[i++];\n var x2 = data[i++];\n var y2 = data[i++];\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n xi = x2;\n yi = y2;\n break;\n }\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var startAngle = data[i++];\n var delta = data[i++];\n var endAngle = delta + startAngle;\n i += 1;\n var anticlockwise = !data[i++];\n if (isFirst) {\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n case CMD.R: {\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n l = width * 2 + height * 2;\n break;\n }\n case CMD.Z: {\n var dx = x0 - xi;\n var dy = y0 - yi;\n l = Math.sqrt(dx * dx + dy * dy);\n xi = x0;\n yi = y0;\n break;\n }\n }\n if (l >= 0) {\n pathSegLen[segCount++] = l;\n pathTotalLen += l;\n }\n }\n this._pathLen = pathTotalLen;\n return pathTotalLen;\n };\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\n var d = this.data;\n var ux = this._ux;\n var uy = this._uy;\n var len = this._len;\n var x0;\n var y0;\n var xi;\n var yi;\n var x;\n var y;\n var drawPart = percent < 1;\n var pathSegLen;\n var pathTotalLen;\n var accumLength = 0;\n var segCount = 0;\n var displayedLength;\n if (drawPart) {\n if (!this._pathSegLen) {\n this._calculateLength();\n }\n pathSegLen = this._pathSegLen;\n pathTotalLen = this._pathLen;\n displayedLength = percent * pathTotalLen;\n if (!displayedLength) {\n return;\n }\n }\n lo: for (var i = 0; i < len;) {\n var cmd = d[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = d[i];\n yi = d[i + 1];\n x0 = xi;\n y0 = yi;\n }\n switch (cmd) {\n case CMD.M:\n x0 = xi = d[i++];\n y0 = yi = d[i++];\n ctx.moveTo(xi, yi);\n break;\n case CMD.L: {\n x = d[i++];\n y = d[i++];\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n break lo;\n }\n accumLength += l;\n }\n ctx.lineTo(x, y);\n xi = x;\n yi = y;\n }\n break;\n }\n case CMD.C: {\n var x1 = d[i++];\n var y1 = d[i++];\n var x2 = d[i++];\n var y2 = d[i++];\n var x3 = d[i++];\n var y3 = d[i++];\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n break lo;\n }\n accumLength += l;\n }\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n xi = x3;\n yi = y3;\n break;\n }\n case CMD.Q: {\n var x1 = d[i++];\n var y1 = d[i++];\n var x2 = d[i++];\n var y2 = d[i++];\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n break lo;\n }\n accumLength += l;\n }\n ctx.quadraticCurveTo(x1, y1, x2, y2);\n xi = x2;\n yi = y2;\n break;\n }\n case CMD.A:\n var cx = d[i++];\n var cy = d[i++];\n var rx = d[i++];\n var ry = d[i++];\n var startAngle = d[i++];\n var delta = d[i++];\n var psi = d[i++];\n var anticlockwise = !d[i++];\n var r = (rx > ry) ? rx : ry;\n var scaleX = (rx > ry) ? 1 : rx / ry;\n var scaleY = (rx > ry) ? ry / rx : 1;\n var isEllipse = mathAbs(rx - ry) > 1e-3;\n var endAngle = startAngle + delta;\n var breakBuild = false;\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n breakBuild = true;\n }\n accumLength += l;\n }\n if (isEllipse && ctx.ellipse) {\n ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n }\n else {\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n }\n if (breakBuild) {\n break lo;\n }\n if (isFirst) {\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = d[i];\n y0 = yi = d[i + 1];\n x = d[i++];\n y = d[i++];\n var width = d[i++];\n var height = d[i++];\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var d_1 = displayedLength - accumLength;\n ctx.moveTo(x, y);\n ctx.lineTo(x + mathMin(d_1, width), y);\n d_1 -= width;\n if (d_1 > 0) {\n ctx.lineTo(x + width, y + mathMin(d_1, height));\n }\n d_1 -= height;\n if (d_1 > 0) {\n ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n }\n d_1 -= width;\n if (d_1 > 0) {\n ctx.lineTo(x, y + mathMax(height - d_1, 0));\n }\n break lo;\n }\n accumLength += l;\n }\n ctx.rect(x, y, width, height);\n break;\n case CMD.Z:\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n break lo;\n }\n accumLength += l;\n }\n ctx.closePath();\n xi = x0;\n yi = y0;\n }\n }\n };\n PathProxy.CMD = CMD;\n PathProxy.initDefaultProps = (function () {\n var proto = PathProxy.prototype;\n proto._saveData = true;\n proto._needsDash = false;\n proto._dashOffset = 0;\n proto._dashIdx = 0;\n proto._dashSum = 0;\n proto._ux = 0;\n proto._uy = 0;\n })();\n return PathProxy;\n}());\nexport default PathProxy;\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n var _a = 0;\n var _b = x0;\n if ((y > y0 + _l && y > y1 + _l)\n || (y < y0 - _l && y < y1 - _l)\n || (x > x0 + _l && x > x1 + _l)\n || (x < x0 - _l && x < x1 - _l)) {\n return false;\n }\n if (x0 !== x1) {\n _a = (y0 - y1) / (x0 - x1);\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n }\n else {\n return Math.abs(x - x0) <= _l / 2;\n }\n var tmp = _a * x - y + _b;\n var _s = tmp * tmp / (_a * _a + 1);\n return _s <= _l / 2 * _l / 2;\n}\n","import * as curve from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n return false;\n }\n var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n return d <= _l / 2;\n}\n","import { quadraticProjectPoint } from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n return false;\n }\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n return d <= _l / 2;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n angle %= PI2;\n if (angle < 0) {\n angle += PI2;\n }\n return angle;\n}\n","import { normalizeRadian } from './util';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n x -= cx;\n y -= cy;\n var d = Math.sqrt(x * x + y * y);\n if ((d - _l > r) || (d + _l < r)) {\n return false;\n }\n if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n return true;\n }\n if (anticlockwise) {\n var tmp = startAngle;\n startAngle = normalizeRadian(endAngle);\n endAngle = normalizeRadian(tmp);\n }\n else {\n startAngle = normalizeRadian(startAngle);\n endAngle = normalizeRadian(endAngle);\n }\n if (startAngle > endAngle) {\n endAngle += PI2;\n }\n var angle = Math.atan2(y, x);\n if (angle < 0) {\n angle += PI2;\n }\n return (angle >= startAngle && angle <= endAngle)\n || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n return 0;\n }\n if (y1 === y0) {\n return 0;\n }\n var t = (y - y0) / (y1 - y0);\n var dir = y1 < y0 ? 1 : -1;\n if (t === 1 || t === 0) {\n dir = y1 < y0 ? 0.5 : -0.5;\n }\n var x_ = t * (x1 - x0) + x0;\n return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import PathProxy from '../core/PathProxy';\nimport * as line from './line';\nimport * as cubic from './cubic';\nimport * as quadratic from './quadratic';\nimport * as arc from './arc';\nimport * as curve from '../core/curve';\nimport windingLine from './windingLine';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n var tmp = extrema[0];\n extrema[0] = extrema[1];\n extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n if ((y > y0 && y > y1 && y > y2 && y > y3)\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\n return 0;\n }\n var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n if (nRoots === 0) {\n return 0;\n }\n else {\n var w = 0;\n var nExtrema = -1;\n var y0_ = void 0;\n var y1_ = void 0;\n for (var i = 0; i < nRoots; i++) {\n var t = roots[i];\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\n var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n if (x_ < x) {\n continue;\n }\n if (nExtrema < 0) {\n nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n if (extrema[1] < extrema[0] && nExtrema > 1) {\n swapExtrema();\n }\n y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n if (nExtrema > 1) {\n y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n }\n }\n if (nExtrema === 2) {\n if (t < extrema[0]) {\n w += y0_ < y0 ? unit : -unit;\n }\n else if (t < extrema[1]) {\n w += y1_ < y0_ ? unit : -unit;\n }\n else {\n w += y3 < y1_ ? unit : -unit;\n }\n }\n else {\n if (t < extrema[0]) {\n w += y0_ < y0 ? unit : -unit;\n }\n else {\n w += y3 < y0_ ? unit : -unit;\n }\n }\n }\n return w;\n }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n if ((y > y0 && y > y1 && y > y2)\n || (y < y0 && y < y1 && y < y2)) {\n return 0;\n }\n var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n if (nRoots === 0) {\n return 0;\n }\n else {\n var t = curve.quadraticExtremum(y0, y1, y2);\n if (t >= 0 && t <= 1) {\n var w = 0;\n var y_ = curve.quadraticAt(y0, y1, y2, t);\n for (var i = 0; i < nRoots; i++) {\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n if (x_ < x) {\n continue;\n }\n if (roots[i] < t) {\n w += y_ < y0 ? unit : -unit;\n }\n else {\n w += y2 < y_ ? unit : -unit;\n }\n }\n return w;\n }\n else {\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n if (x_ < x) {\n return 0;\n }\n return y2 < y0 ? unit : -unit;\n }\n }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n y -= cy;\n if (y > r || y < -r) {\n return 0;\n }\n var tmp = Math.sqrt(r * r - y * y);\n roots[0] = -tmp;\n roots[1] = tmp;\n var dTheta = Math.abs(startAngle - endAngle);\n if (dTheta < 1e-4) {\n return 0;\n }\n if (dTheta >= PI2 - 1e-4) {\n startAngle = 0;\n endAngle = PI2;\n var dir = anticlockwise ? 1 : -1;\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\n return dir;\n }\n else {\n return 0;\n }\n }\n if (startAngle > endAngle) {\n var tmp_1 = startAngle;\n startAngle = endAngle;\n endAngle = tmp_1;\n }\n if (startAngle < 0) {\n startAngle += PI2;\n endAngle += PI2;\n }\n var w = 0;\n for (var i = 0; i < 2; i++) {\n var x_ = roots[i];\n if (x_ + cx > x) {\n var angle = Math.atan2(y, x_);\n var dir = anticlockwise ? 1 : -1;\n if (angle < 0) {\n angle = PI2 + angle;\n }\n if ((angle >= startAngle && angle <= endAngle)\n || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n dir = -dir;\n }\n w += dir;\n }\n }\n }\n return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n var data = path.data;\n var len = path.len();\n var w = 0;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var x1;\n var y1;\n for (var i = 0; i < len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (cmd === CMD.M && i > 1) {\n if (!isStroke) {\n w += windingLine(xi, yi, x0, y0, x, y);\n }\n }\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n switch (cmd) {\n case CMD.M:\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n break;\n case CMD.L:\n if (isStroke) {\n if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.C:\n if (isStroke) {\n if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.Q:\n if (isStroke) {\n if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++];\n i += 1;\n var anticlockwise = !!(1 - data[i++]);\n x1 = Math.cos(theta) * rx + cx;\n y1 = Math.sin(theta) * ry + cy;\n if (!isFirst) {\n w += windingLine(xi, yi, x1, y1, x, y);\n }\n else {\n x0 = x1;\n y0 = y1;\n }\n var _x = (x - cx) * ry / rx + cx;\n if (isStroke) {\n if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n return true;\n }\n }\n else {\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n }\n xi = Math.cos(theta + dTheta) * rx + cx;\n yi = Math.sin(theta + dTheta) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n x1 = x0 + width;\n y1 = y0 + height;\n if (isStroke) {\n if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(x1, y0, x1, y1, x, y);\n w += windingLine(x0, y1, x0, y0, x, y);\n }\n break;\n case CMD.Z:\n if (isStroke) {\n if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(xi, yi, x0, y0, x, y);\n }\n xi = x0;\n yi = y0;\n break;\n }\n }\n if (!isStroke && !isAroundEqual(yi, y0)) {\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\n }\n return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport Element from '../Element';\nimport PathProxy from '../core/PathProxy';\nimport * as pathContain from '../contain/path';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util';\nimport { lum } from '../tool/color';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';\nexport var DEFAULT_PATH_STYLE = defaults({\n fill: '#000',\n stroke: null,\n strokePercent: 1,\n fillOpacity: 1,\n strokeOpacity: 1,\n lineDashOffset: 0,\n lineWidth: 1,\n lineCap: 'butt',\n miterLimit: 10,\n strokeNoScale: false,\n strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n style: defaults({\n fill: true,\n stroke: true,\n strokePercent: true,\n fillOpacity: true,\n strokeOpacity: true,\n lineDashOffset: true,\n lineWidth: true,\n miterLimit: true\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = [\n 'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\n 'culling', 'z', 'z2', 'zlevel', 'parent'\n];\nvar Path = (function (_super) {\n __extends(Path, _super);\n function Path(opts) {\n return _super.call(this, opts) || this;\n }\n Path.prototype.update = function () {\n var _this = this;\n _super.prototype.update.call(this);\n var style = this.style;\n if (style.decal) {\n var decalEl = this._decalEl\n = this._decalEl || new Path();\n if (decalEl.buildPath === Path.prototype.buildPath) {\n decalEl.buildPath = function (ctx) {\n _this.buildPath(ctx, _this.shape);\n };\n }\n decalEl.silent = true;\n var decalElStyle = decalEl.style;\n for (var key in style) {\n if (decalElStyle[key] !== style[key]) {\n decalElStyle[key] = style[key];\n }\n }\n decalElStyle.fill = style.fill ? style.decal : null;\n decalElStyle.decal = null;\n decalElStyle.shadowColor = null;\n style.strokeFirst && (decalElStyle.stroke = null);\n for (var i = 0; i < pathCopyParams.length; ++i) {\n decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n }\n decalEl.__dirty |= Element.REDARAW_BIT;\n }\n else if (this._decalEl) {\n this._decalEl = null;\n }\n };\n Path.prototype.getDecalElement = function () {\n return this._decalEl;\n };\n Path.prototype._init = function (props) {\n var keysArr = keys(props);\n this.shape = this.getDefaultShape();\n var defaultStyle = this.getDefaultStyle();\n if (defaultStyle) {\n this.useStyle(defaultStyle);\n }\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n var value = props[key];\n if (key === 'style') {\n if (!this.style) {\n this.useStyle(value);\n }\n else {\n extend(this.style, value);\n }\n }\n else if (key === 'shape') {\n extend(this.shape, value);\n }\n else {\n _super.prototype.attrKV.call(this, key, value);\n }\n }\n if (!this.style) {\n this.useStyle({});\n }\n };\n Path.prototype.getDefaultStyle = function () {\n return null;\n };\n Path.prototype.getDefaultShape = function () {\n return {};\n };\n Path.prototype.canBeInsideText = function () {\n return this.hasFill();\n };\n Path.prototype.getInsideTextFill = function () {\n var pathFill = this.style.fill;\n if (pathFill !== 'none') {\n if (isString(pathFill)) {\n var fillLum = lum(pathFill, 0);\n if (fillLum > 0.5) {\n return DARK_LABEL_COLOR;\n }\n else if (fillLum > 0.2) {\n return LIGHTER_LABEL_COLOR;\n }\n return LIGHT_LABEL_COLOR;\n }\n else if (pathFill) {\n return LIGHT_LABEL_COLOR;\n }\n }\n return DARK_LABEL_COLOR;\n };\n Path.prototype.getInsideTextStroke = function (textFill) {\n var pathFill = this.style.fill;\n if (isString(pathFill)) {\n var zr = this.__zr;\n var isDarkMode = !!(zr && zr.isDarkMode());\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n if (isDarkMode === isDarkLabel) {\n return pathFill;\n }\n }\n };\n Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\n Path.prototype.pathUpdated = function () {\n this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\n };\n Path.prototype.createPathProxy = function () {\n this.path = new PathProxy(false);\n };\n Path.prototype.hasStroke = function () {\n var style = this.style;\n var stroke = style.stroke;\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n };\n Path.prototype.hasFill = function () {\n var style = this.style;\n var fill = style.fill;\n return fill != null && fill !== 'none';\n };\n Path.prototype.getBoundingRect = function () {\n var rect = this._rect;\n var style = this.style;\n var needsUpdateRect = !rect;\n if (needsUpdateRect) {\n var firstInvoke = false;\n if (!this.path) {\n firstInvoke = true;\n this.createPathProxy();\n }\n var path = this.path;\n if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\n path.beginPath();\n this.buildPath(path, this.shape, false);\n this.pathUpdated();\n }\n rect = path.getBoundingRect();\n }\n this._rect = rect;\n if (this.hasStroke() && this.path && this.path.len() > 0) {\n var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n if (this.__dirty || needsUpdateRect) {\n rectWithStroke.copy(rect);\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n var w = style.lineWidth;\n if (!this.hasFill()) {\n var strokeContainThreshold = this.strokeContainThreshold;\n w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n }\n if (lineScale > 1e-10) {\n rectWithStroke.width += w / lineScale;\n rectWithStroke.height += w / lineScale;\n rectWithStroke.x -= w / lineScale / 2;\n rectWithStroke.y -= w / lineScale / 2;\n }\n }\n return rectWithStroke;\n }\n return rect;\n };\n Path.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n var style = this.style;\n x = localPos[0];\n y = localPos[1];\n if (rect.contain(x, y)) {\n var pathProxy = this.path;\n if (this.hasStroke()) {\n var lineWidth = style.lineWidth;\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n if (lineScale > 1e-10) {\n if (!this.hasFill()) {\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n }\n if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n return true;\n }\n }\n }\n if (this.hasFill()) {\n return pathContain.contain(pathProxy, x, y);\n }\n }\n return false;\n };\n Path.prototype.dirtyShape = function () {\n this.__dirty |= Path.SHAPE_CHANGED_BIT;\n if (this._rect) {\n this._rect = null;\n }\n if (this._decalEl) {\n this._decalEl.dirtyShape();\n }\n this.markRedraw();\n };\n Path.prototype.dirty = function () {\n this.dirtyStyle();\n this.dirtyShape();\n };\n Path.prototype.animateShape = function (loop) {\n return this.animate('shape', loop);\n };\n Path.prototype.updateDuringAnimation = function (targetKey) {\n if (targetKey === 'style') {\n this.dirtyStyle();\n }\n else if (targetKey === 'shape') {\n this.dirtyShape();\n }\n else {\n this.markRedraw();\n }\n };\n Path.prototype.attrKV = function (key, value) {\n if (key === 'shape') {\n this.setShape(value);\n }\n else {\n _super.prototype.attrKV.call(this, key, value);\n }\n };\n Path.prototype.setShape = function (keyOrObj, value) {\n var shape = this.shape;\n if (!shape) {\n shape = this.shape = {};\n }\n if (typeof keyOrObj === 'string') {\n shape[keyOrObj] = value;\n }\n else {\n extend(shape, keyOrObj);\n }\n this.dirtyShape();\n return this;\n };\n Path.prototype.shapeChanged = function () {\n return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\n };\n Path.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_PATH_STYLE, obj);\n };\n Path.prototype._innerSaveToNormal = function (toState) {\n _super.prototype._innerSaveToNormal.call(this, toState);\n var normalState = this._normalState;\n if (toState.shape && !normalState.shape) {\n normalState.shape = extend({}, this.shape);\n }\n };\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n var needsRestoreToNormal = !(state && keepCurrentStates);\n var targetShape;\n if (state && state.shape) {\n if (transition) {\n if (keepCurrentStates) {\n targetShape = state.shape;\n }\n else {\n targetShape = extend({}, normalState.shape);\n extend(targetShape, state.shape);\n }\n }\n else {\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n extend(targetShape, state.shape);\n }\n }\n else if (needsRestoreToNormal) {\n targetShape = normalState.shape;\n }\n if (targetShape) {\n if (transition) {\n this.shape = extend({}, this.shape);\n var targetShapePrimaryProps = {};\n var shapeKeys = keys(targetShape);\n for (var i = 0; i < shapeKeys.length; i++) {\n var key = shapeKeys[i];\n if (typeof targetShape[key] === 'object') {\n this.shape[key] = targetShape[key];\n }\n else {\n targetShapePrimaryProps[key] = targetShape[key];\n }\n }\n this._transitionState(stateName, {\n shape: targetShapePrimaryProps\n }, animationCfg);\n }\n else {\n this.shape = targetShape;\n this.dirtyShape();\n }\n }\n };\n Path.prototype._mergeStates = function (states) {\n var mergedState = _super.prototype._mergeStates.call(this, states);\n var mergedShape;\n for (var i = 0; i < states.length; i++) {\n var state = states[i];\n if (state.shape) {\n mergedShape = mergedShape || {};\n this._mergeStyle(mergedShape, state.shape);\n }\n }\n if (mergedShape) {\n mergedState.shape = mergedShape;\n }\n return mergedState;\n };\n Path.prototype.getAnimationStyleProps = function () {\n return DEFAULT_PATH_ANIMATION_PROPS;\n };\n Path.prototype.isZeroArea = function () {\n return false;\n };\n Path.extend = function (defaultProps) {\n var Sub = (function (_super) {\n __extends(Sub, _super);\n function Sub(opts) {\n var _this = _super.call(this, opts) || this;\n defaultProps.init && defaultProps.init.call(_this, opts);\n return _this;\n }\n Sub.prototype.getDefaultStyle = function () {\n return clone(defaultProps.style);\n };\n Sub.prototype.getDefaultShape = function () {\n return clone(defaultProps.shape);\n };\n return Sub;\n }(Path));\n for (var key in defaultProps) {\n if (typeof defaultProps[key] === 'function') {\n Sub.prototype[key] = defaultProps[key];\n }\n }\n return Sub;\n };\n Path.SHAPE_CHANGED_BIT = 4;\n Path.initDefaultProps = (function () {\n var pathProto = Path.prototype;\n pathProto.type = 'path';\n pathProto.strokeContainThreshold = 5;\n pathProto.segmentIgnoreThreshold = 0;\n pathProto.subPixelOptimize = false;\n pathProto.autoBatch = false;\n pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\n })();\n return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable';\nimport { getBoundingRect, DEFAULT_FONT } from '../contain/text';\nimport { DEFAULT_PATH_STYLE } from './Path';\nimport { createObject, defaults } from '../core/util';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n strokeFirst: true,\n font: DEFAULT_FONT,\n x: 0,\n y: 0,\n textAlign: 'left',\n textBaseline: 'top',\n miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n __extends(TSpan, _super);\n function TSpan() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TSpan.prototype.hasStroke = function () {\n var style = this.style;\n var stroke = style.stroke;\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n };\n TSpan.prototype.hasFill = function () {\n var style = this.style;\n var fill = style.fill;\n return fill != null && fill !== 'none';\n };\n TSpan.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_TSPAN_STYLE, obj);\n };\n TSpan.prototype.setBoundingRect = function (rect) {\n this._rect = rect;\n };\n TSpan.prototype.getBoundingRect = function () {\n var style = this.style;\n if (!this._rect) {\n var text = style.text;\n text != null ? (text += '') : (text = '');\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n rect.x += style.x || 0;\n rect.y += style.y || 0;\n if (this.hasStroke()) {\n var w = style.lineWidth;\n rect.x -= w / 2;\n rect.y -= w / 2;\n rect.width += w;\n rect.height += w;\n }\n this._rect = rect;\n }\n return this._rect;\n };\n TSpan.initDefaultProps = (function () {\n var tspanProto = TSpan.prototype;\n tspanProto.dirtyRectTolerance = 10;\n })();\n return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nimport { defaults, createObject } from '../core/util';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n x: 0,\n y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n style: defaults({\n x: true,\n y: true,\n width: true,\n height: true,\n sx: true,\n sy: true,\n sWidth: true,\n sHeight: true\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n return !!(source\n && typeof source !== 'string'\n && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n __extends(ZRImage, _super);\n function ZRImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ZRImage.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_IMAGE_STYLE, obj);\n };\n ZRImage.prototype._getSize = function (dim) {\n var style = this.style;\n var size = style[dim];\n if (size != null) {\n return size;\n }\n var imageSource = isImageLike(style.image)\n ? style.image : this.__image;\n if (!imageSource) {\n return 0;\n }\n var otherDim = dim === 'width' ? 'height' : 'width';\n var otherDimSize = style[otherDim];\n if (otherDimSize == null) {\n return imageSource[dim];\n }\n else {\n return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n }\n };\n ZRImage.prototype.getWidth = function () {\n return this._getSize('width');\n };\n ZRImage.prototype.getHeight = function () {\n return this._getSize('height');\n };\n ZRImage.prototype.getAnimationStyleProps = function () {\n return DEFAULT_IMAGE_ANIMATION_PROPS;\n };\n ZRImage.prototype.getBoundingRect = function () {\n var style = this.style;\n if (!this._rect) {\n this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n }\n return this._rect;\n };\n return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","export function buildPath(ctx, shape) {\n var x = shape.x;\n var y = shape.y;\n var width = shape.width;\n var height = shape.height;\n var r = shape.r;\n var r1;\n var r2;\n var r3;\n var r4;\n if (width < 0) {\n x = x + width;\n width = -width;\n }\n if (height < 0) {\n y = y + height;\n height = -height;\n }\n if (typeof r === 'number') {\n r1 = r2 = r3 = r4 = r;\n }\n else if (r instanceof Array) {\n if (r.length === 1) {\n r1 = r2 = r3 = r4 = r[0];\n }\n else if (r.length === 2) {\n r1 = r3 = r[0];\n r2 = r4 = r[1];\n }\n else if (r.length === 3) {\n r1 = r[0];\n r2 = r4 = r[1];\n r3 = r[2];\n }\n else {\n r1 = r[0];\n r2 = r[1];\n r3 = r[2];\n r4 = r[3];\n }\n }\n else {\n r1 = r2 = r3 = r4 = 0;\n }\n var total;\n if (r1 + r2 > width) {\n total = r1 + r2;\n r1 *= width / total;\n r2 *= width / total;\n }\n if (r3 + r4 > width) {\n total = r3 + r4;\n r3 *= width / total;\n r4 *= width / total;\n }\n if (r2 + r3 > height) {\n total = r2 + r3;\n r2 *= height / total;\n r3 *= height / total;\n }\n if (r1 + r4 > height) {\n total = r1 + r4;\n r1 *= height / total;\n r4 *= height / total;\n }\n ctx.moveTo(x + r1, y);\n ctx.lineTo(x + width - r2, y);\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n ctx.lineTo(x + width, y + height - r3);\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n ctx.lineTo(x + r4, y + height);\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n ctx.lineTo(x, y + r1);\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n if (!inputShape) {\n return;\n }\n var x1 = inputShape.x1;\n var x2 = inputShape.x2;\n var y1 = inputShape.y1;\n var y2 = inputShape.y2;\n outputShape.x1 = x1;\n outputShape.x2 = x2;\n outputShape.y1 = y1;\n outputShape.y2 = y2;\n var lineWidth = style && style.lineWidth;\n if (!lineWidth) {\n return outputShape;\n }\n if (round(x1 * 2) === round(x2 * 2)) {\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n }\n if (round(y1 * 2) === round(y2 * 2)) {\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n }\n return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n if (!inputShape) {\n return;\n }\n var originX = inputShape.x;\n var originY = inputShape.y;\n var originWidth = inputShape.width;\n var originHeight = inputShape.height;\n outputShape.x = originX;\n outputShape.y = originY;\n outputShape.width = originWidth;\n outputShape.height = originHeight;\n var lineWidth = style && style.lineWidth;\n if (!lineWidth) {\n return outputShape;\n }\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n if (!lineWidth) {\n return position;\n }\n var doubledPosition = round(position * 2);\n return (doubledPosition + round(lineWidth)) % 2 === 0\n ? doubledPosition / 2\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundRectHelper from '../helper/roundRect';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize';\nvar RectShape = (function () {\n function RectShape() {\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n }\n return RectShape;\n}());\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n __extends(Rect, _super);\n function Rect(opts) {\n return _super.call(this, opts) || this;\n }\n Rect.prototype.getDefaultShape = function () {\n return new RectShape();\n };\n Rect.prototype.buildPath = function (ctx, shape) {\n var x;\n var y;\n var width;\n var height;\n if (this.subPixelOptimize) {\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n x = optimizedShape.x;\n y = optimizedShape.y;\n width = optimizedShape.width;\n height = optimizedShape.height;\n optimizedShape.r = shape.r;\n shape = optimizedShape;\n }\n else {\n x = shape.x;\n y = shape.y;\n width = shape.width;\n height = shape.height;\n }\n if (!shape.r) {\n ctx.rect(x, y, width, height);\n }\n else {\n roundRectHelper.buildPath(ctx, shape);\n }\n };\n Rect.prototype.isZeroArea = function () {\n return !this.shape.width || !this.shape.height;\n };\n return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText';\nimport TSpan from './TSpan';\nimport { retrieve2, isString, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';\nimport { DEFAULT_FONT, adjustTextX, adjustTextY } from '../contain/text';\nimport ZRImage from './Image';\nimport Rect from './shape/Rect';\nimport BoundingRect from '../core/BoundingRect';\nimport { copy } from '../core/matrix';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nvar DEFAULT_RICH_TEXT_COLOR = {\n fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n style: defaults({\n fill: true,\n stroke: true,\n fillOpacity: true,\n strokeOpacity: true,\n lineWidth: true,\n fontSize: true,\n lineHeight: true,\n width: true,\n height: true,\n textShadowColor: true,\n textShadowBlur: true,\n textShadowOffsetX: true,\n textShadowOffsetY: true,\n backgroundColor: true,\n padding: true,\n borderColor: true,\n borderWidth: true,\n borderRadius: true\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n __extends(ZRText, _super);\n function ZRText(opts) {\n var _this = _super.call(this) || this;\n _this.type = 'text';\n _this._children = [];\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n _this.attr(opts);\n return _this;\n }\n ZRText.prototype.childrenRef = function () {\n return this._children;\n };\n ZRText.prototype.update = function () {\n if (this.styleChanged()) {\n this._updateSubTexts();\n }\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n child.zlevel = this.zlevel;\n child.z = this.z;\n child.z2 = this.z2;\n child.culling = this.culling;\n child.cursor = this.cursor;\n child.invisible = this.invisible;\n }\n var attachedTransform = this.attachedTransform;\n if (attachedTransform) {\n attachedTransform.updateTransform();\n var m = attachedTransform.transform;\n if (m) {\n this.transform = this.transform || [];\n copy(this.transform, m);\n }\n else {\n this.transform = null;\n }\n }\n else {\n _super.prototype.update.call(this);\n }\n };\n ZRText.prototype.getComputedTransform = function () {\n if (this.__hostTarget) {\n this.__hostTarget.getComputedTransform();\n this.__hostTarget.updateInnerText(true);\n }\n return this.attachedTransform ? this.attachedTransform.getComputedTransform()\n : _super.prototype.getComputedTransform.call(this);\n };\n ZRText.prototype._updateSubTexts = function () {\n this._childCursor = 0;\n normalizeTextStyle(this.style);\n this.style.rich\n ? this._updateRichTexts()\n : this._updatePlainTexts();\n this._children.length = this._childCursor;\n this.styleUpdated();\n };\n ZRText.prototype.addSelfToZr = function (zr) {\n _super.prototype.addSelfToZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n this._children[i].__zr = zr;\n }\n };\n ZRText.prototype.removeSelfFromZr = function (zr) {\n _super.prototype.removeSelfFromZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n this._children[i].__zr = null;\n }\n };\n ZRText.prototype.getBoundingRect = function () {\n if (this.styleChanged()) {\n this._updateSubTexts();\n }\n if (!this._rect) {\n var tmpRect = new BoundingRect(0, 0, 0, 0);\n var children = this._children;\n var tmpMat = [];\n var rect = null;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n var childRect = child.getBoundingRect();\n var transform = child.getLocalTransform(tmpMat);\n if (transform) {\n tmpRect.copy(childRect);\n tmpRect.applyTransform(transform);\n rect = rect || tmpRect.clone();\n rect.union(tmpRect);\n }\n else {\n rect = rect || childRect.clone();\n rect.union(childRect);\n }\n }\n this._rect = rect || tmpRect;\n }\n return this._rect;\n };\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n };\n ZRText.prototype.setTextContent = function (textContent) {\n throw new Error('Can\\'t attach text on another text');\n };\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n if (!sourceStyle) {\n return targetStyle;\n }\n var sourceRich = sourceStyle.rich;\n var targetRich = targetStyle.rich || (sourceRich && {});\n extend(targetStyle, sourceStyle);\n if (sourceRich && targetRich) {\n this._mergeRich(targetRich, sourceRich);\n targetStyle.rich = targetRich;\n }\n else if (targetRich) {\n targetStyle.rich = targetRich;\n }\n return targetStyle;\n };\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n var richNames = keys(sourceRich);\n for (var i = 0; i < richNames.length; i++) {\n var richName = richNames[i];\n targetRich[richName] = targetRich[richName] || {};\n extend(targetRich[richName], sourceRich[richName]);\n }\n };\n ZRText.prototype.getAnimationStyleProps = function () {\n return DEFAULT_TEXT_ANIMATION_PROPS;\n };\n ZRText.prototype._getOrCreateChild = function (Ctor) {\n var child = this._children[this._childCursor];\n if (!child || !(child instanceof Ctor)) {\n child = new Ctor();\n }\n this._children[this._childCursor++] = child;\n child.__zr = this.__zr;\n child.parent = this;\n return child;\n };\n ZRText.prototype._updatePlainTexts = function () {\n var style = this.style;\n var textFont = style.font || DEFAULT_FONT;\n var textPadding = style.padding;\n var text = getStyleText(style);\n var contentBlock = parsePlainText(text, style);\n var needDrawBg = needDrawBackground(style);\n var bgColorDrawn = !!(style.backgroundColor);\n var outerHeight = contentBlock.outerHeight;\n var textLines = contentBlock.lines;\n var lineHeight = contentBlock.lineHeight;\n var defaultStyle = this._defaultStyle;\n var baseX = style.x || 0;\n var baseY = style.y || 0;\n var textAlign = style.align || defaultStyle.align || 'left';\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n var textX = baseX;\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n if (needDrawBg || textPadding) {\n var outerWidth_1 = contentBlock.width;\n textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\n var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\n }\n textY += lineHeight / 2;\n if (textPadding) {\n textX = getTextXForPadding(baseX, textAlign, textPadding);\n if (verticalAlign === 'top') {\n textY += textPadding[0];\n }\n else if (verticalAlign === 'bottom') {\n textY -= textPadding[2];\n }\n }\n var defaultLineWidth = 0;\n var useDefaultFill = false;\n var textFill = getFill('fill' in style\n ? style.fill\n : (useDefaultFill = true, defaultStyle.fill));\n var textStroke = getStroke('stroke' in style\n ? style.stroke\n : (!bgColorDrawn\n && (!defaultStyle.autoStroke || useDefaultFill))\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n : null);\n var hasShadow = style.textShadowBlur > 0;\n var fixedBoundingRect = style.width != null\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\n for (var i = 0; i < textLines.length; i++) {\n var el = this._getOrCreateChild(TSpan);\n var subElStyle = el.createStyle();\n el.useStyle(subElStyle);\n subElStyle.text = textLines[i];\n subElStyle.x = textX;\n subElStyle.y = textY;\n if (textAlign) {\n subElStyle.textAlign = textAlign;\n }\n subElStyle.textBaseline = 'middle';\n subElStyle.opacity = style.opacity;\n subElStyle.strokeFirst = true;\n if (hasShadow) {\n subElStyle.shadowBlur = style.textShadowBlur || 0;\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n }\n if (textStroke) {\n subElStyle.stroke = textStroke;\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n subElStyle.lineDash = style.lineDash;\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\n }\n if (textFill) {\n subElStyle.fill = textFill;\n }\n subElStyle.font = textFont;\n textY += lineHeight;\n if (fixedBoundingRect) {\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\n }\n }\n };\n ZRText.prototype._updateRichTexts = function () {\n var style = this.style;\n var text = getStyleText(style);\n var contentBlock = parseRichText(text, style);\n var contentWidth = contentBlock.width;\n var outerWidth = contentBlock.outerWidth;\n var outerHeight = contentBlock.outerHeight;\n var textPadding = style.padding;\n var baseX = style.x || 0;\n var baseY = style.y || 0;\n var defaultStyle = this._defaultStyle;\n var textAlign = style.align || defaultStyle.align;\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n var xLeft = boxX;\n var lineTop = boxY;\n if (textPadding) {\n xLeft += textPadding[3];\n lineTop += textPadding[0];\n }\n var xRight = xLeft + contentWidth;\n if (needDrawBackground(style)) {\n this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n }\n var bgColorDrawn = !!(style.backgroundColor);\n for (var i = 0; i < contentBlock.lines.length; i++) {\n var line = contentBlock.lines[i];\n var tokens = line.tokens;\n var tokenCount = tokens.length;\n var lineHeight = line.lineHeight;\n var remainedWidth = line.width;\n var leftIndex = 0;\n var lineXLeft = xLeft;\n var lineXRight = xRight;\n var rightIndex = tokenCount - 1;\n var token = void 0;\n while (leftIndex < tokenCount\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n remainedWidth -= token.width;\n lineXLeft += token.width;\n leftIndex++;\n }\n while (rightIndex >= 0\n && (token = tokens[rightIndex], token.align === 'right')) {\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n remainedWidth -= token.width;\n lineXRight -= token.width;\n rightIndex--;\n }\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n while (leftIndex <= rightIndex) {\n token = tokens[leftIndex];\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n lineXLeft += token.width;\n leftIndex++;\n }\n lineTop += lineHeight;\n }\n };\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n var tokenStyle = style.rich[token.styleName] || {};\n tokenStyle.text = token.text;\n var verticalAlign = token.verticalAlign;\n var y = lineTop + lineHeight / 2;\n if (verticalAlign === 'top') {\n y = lineTop + token.height / 2;\n }\n else if (verticalAlign === 'bottom') {\n y = lineTop + lineHeight - token.height / 2;\n }\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n ? x - token.width\n : textAlign === 'center'\n ? x - token.width / 2\n : x, y - token.height / 2, token.width, token.height);\n var bgColorDrawn = !!tokenStyle.backgroundColor;\n var textPadding = token.textPadding;\n if (textPadding) {\n x = getTextXForPadding(x, textAlign, textPadding);\n y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n }\n var el = this._getOrCreateChild(TSpan);\n var subElStyle = el.createStyle();\n el.useStyle(subElStyle);\n var defaultStyle = this._defaultStyle;\n var useDefaultFill = false;\n var defaultLineWidth = 0;\n var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\n : 'fill' in style ? style.fill\n : (useDefaultFill = true, defaultStyle.fill));\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n : 'stroke' in style ? style.stroke\n : (!bgColorDrawn\n && !parentBgColorDrawn\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n : null);\n var hasShadow = tokenStyle.textShadowBlur > 0\n || style.textShadowBlur > 0;\n subElStyle.text = token.text;\n subElStyle.x = x;\n subElStyle.y = y;\n if (hasShadow) {\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n }\n subElStyle.textAlign = textAlign;\n subElStyle.textBaseline = 'middle';\n subElStyle.font = token.font || DEFAULT_FONT;\n subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n if (textStroke) {\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\n subElStyle.stroke = textStroke;\n }\n if (textFill) {\n subElStyle.fill = textFill;\n }\n var textWidth = token.contentWidth;\n var textHeight = token.contentHeight;\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n };\n ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n var textBackgroundColor = style.backgroundColor;\n var textBorderWidth = style.borderWidth;\n var textBorderColor = style.borderColor;\n var isPlainBg = isString(textBackgroundColor);\n var textBorderRadius = style.borderRadius;\n var self = this;\n var rectEl;\n var imgEl;\n if (isPlainBg || (textBorderWidth && textBorderColor)) {\n rectEl = this._getOrCreateChild(Rect);\n rectEl.useStyle(rectEl.createStyle());\n rectEl.style.fill = null;\n var rectShape = rectEl.shape;\n rectShape.x = x;\n rectShape.y = y;\n rectShape.width = width;\n rectShape.height = height;\n rectShape.r = textBorderRadius;\n rectEl.dirtyShape();\n }\n if (isPlainBg) {\n var rectStyle = rectEl.style;\n rectStyle.fill = textBackgroundColor || null;\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n }\n else if (textBackgroundColor && textBackgroundColor.image) {\n imgEl = this._getOrCreateChild(ZRImage);\n imgEl.onload = function () {\n self.dirtyStyle();\n };\n var imgStyle = imgEl.style;\n imgStyle.image = textBackgroundColor.image;\n imgStyle.x = x;\n imgStyle.y = y;\n imgStyle.width = width;\n imgStyle.height = height;\n }\n if (textBorderWidth && textBorderColor) {\n var rectStyle = rectEl.style;\n rectStyle.lineWidth = textBorderWidth;\n rectStyle.stroke = textBorderColor;\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n rectStyle.lineDash = style.borderDash;\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\n rectEl.strokeContainThreshold = 0;\n if (rectEl.hasFill() && rectEl.hasStroke()) {\n rectStyle.strokeFirst = true;\n rectStyle.lineWidth *= 2;\n }\n }\n var commonStyle = (rectEl || imgEl).style;\n commonStyle.shadowBlur = style.shadowBlur || 0;\n commonStyle.shadowColor = style.shadowColor || 'transparent';\n commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n };\n ZRText.makeFont = function (style) {\n var font = '';\n if (style.fontSize || style.fontFamily || style.fontWeight) {\n var fontSize = '';\n if (typeof style.fontSize === 'string'\n && (style.fontSize.indexOf('px') !== -1\n || style.fontSize.indexOf('rem') !== -1\n || style.fontSize.indexOf('em') !== -1)) {\n fontSize = style.fontSize;\n }\n else if (!isNaN(+style.fontSize)) {\n fontSize = style.fontSize + 'px';\n }\n else {\n fontSize = '12px';\n }\n font = [\n style.fontStyle,\n style.fontWeight,\n fontSize,\n style.fontFamily || 'sans-serif'\n ].join(' ');\n }\n return font && trim(font) || style.textFont || style.font;\n };\n return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nexport function normalizeTextStyle(style) {\n normalizeStyle(style);\n each(style.rich, normalizeStyle);\n return style;\n}\nfunction normalizeStyle(style) {\n if (style) {\n style.font = ZRText.makeFont(style);\n var textAlign = style.align;\n textAlign === 'middle' && (textAlign = 'center');\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n var verticalAlign = style.verticalAlign;\n verticalAlign === 'center' && (verticalAlign = 'middle');\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n var textPadding = style.padding;\n if (textPadding) {\n style.padding = normalizeCssArray(style.padding);\n }\n }\n}\nfunction getStroke(stroke, lineWidth) {\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n ? null\n : (stroke.image || stroke.colorStops)\n ? '#000'\n : stroke;\n}\nfunction getFill(fill) {\n return (fill == null || fill === 'none')\n ? null\n : (fill.image || fill.colorStops)\n ? '#000'\n : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n return textAlign === 'right'\n ? (x - textPadding[1])\n : textAlign === 'center'\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n var text = style.text;\n text != null && (text += '');\n return text;\n}\nfunction needDrawBackground(style) {\n return !!(style.backgroundColor\n || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from './model';\nexport var getECData = makeInner();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LRU from 'zrender/lib/core/LRU';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport { queryDataIndex, makeInner } from './model';\nimport Path from 'zrender/lib/graphic/Path';\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n return fillOrStroke != null && fillOrStroke !== 'none';\n}\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n if (typeof color !== 'string') {\n return color;\n }\n\n var liftedColor = liftedColorCache.get(color);\n\n if (!liftedColor) {\n liftedColor = colorTool.lift(color, -0.1);\n liftedColorCache.put(color, liftedColor);\n }\n\n return liftedColor;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n el.onHoverStateChange(stateName);\n }\n\n el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n if (el.hoverState === HOVER_STATE_EMPHASIS) {\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n }\n}\n\nfunction singleEnterBlur(el) {\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n if (el.hoverState === HOVER_STATE_BLUR) {\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n }\n}\n\nfunction singleEnterSelect(el) {\n el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n updateElementState(el, updater, commonParam);\n el.isGroup && el.traverse(function (child) {\n updateElementState(child, updater, commonParam);\n });\n}\n\nexport function setStatesFlag(el, stateName) {\n switch (stateName) {\n case 'emphasis':\n el.hoverState = HOVER_STATE_EMPHASIS;\n break;\n\n case 'normal':\n el.hoverState = HOVER_STATE_NORMAL;\n break;\n\n case 'blur':\n el.hoverState = HOVER_STATE_BLUR;\n break;\n\n case 'select':\n el.selected = true;\n }\n}\nexport function clearStates(el) {\n if (el.isGroup) {\n el.traverse(function (child) {\n child.clearStates();\n });\n } else {\n el.clearStates();\n }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n var style = el.style;\n var fromState = {};\n\n for (var i = 0; i < props.length; i++) {\n var propName = props[i];\n var val = style[propName];\n fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n }\n\n for (var i = 0; i < el.animators.length; i++) {\n var animator = el.animators[i];\n\n if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n animator.saveFinalToTarget(fromState, props);\n }\n }\n\n return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n var cloned = false;\n\n if (el instanceof Path) {\n var store = getSavedStates(el);\n var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n state = state || {};\n var emphasisStyle = state.style || {};\n\n if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n cloned = true;\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle);\n emphasisStyle.fill = liftColor(fromFill);\n } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n if (!cloned) {\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle);\n }\n\n emphasisStyle.stroke = liftColor(fromStroke);\n }\n\n state.style = emphasisStyle;\n }\n }\n\n if (state) {\n if (state.z2 == null) {\n if (!cloned) {\n state = extend({}, state);\n }\n\n var z2EmphasisLift = el.z2EmphasisLift;\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n }\n }\n\n return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n if (state) {\n if (state.z2 == null) {\n state = extend({}, state);\n var z2SelectLift = el.z2SelectLift;\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n }\n }\n\n return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n var currentOpacity = el.style.opacity;\n var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n opacity: 1\n }) : null;\n state = state || {};\n var blurStyle = state.style || {};\n\n if (blurStyle.opacity == null) {\n state = extend({}, state);\n blurStyle = extend({\n opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n }, blurStyle);\n state.style = blurStyle;\n }\n\n return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n var state = this.states[stateName];\n\n if (this.style) {\n if (stateName === 'emphasis') {\n return createEmphasisDefaultState(this, stateName, targetStates, state);\n } else if (stateName === 'blur') {\n return createBlurDefaultState(this, stateName, state);\n } else if (stateName === 'select') {\n return createSelectDefaultState(this, stateName, state);\n }\n }\n\n return state;\n}\n\nexport function setDefaultStateProxy(el) {\n el.stateProxy = elementStateProxy;\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine();\n\n if (textContent) {\n textContent.stateProxy = elementStateProxy;\n }\n\n if (textGuide) {\n textGuide.stateProxy = elementStateProxy;\n }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n el.__highByOuter |= 1 << (highlightDigit || 0);\n traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nfunction allLeaveBlur(api) {\n var model = api.getModel();\n model.eachComponent(function (componentType, componentModel) {\n var view = componentType === 'series' ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n view.group.traverse(function (child) {\n singleLeaveBlur(child);\n });\n });\n}\n\nexport function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\n var ecModel = api.getModel();\n blurScope = blurScope || 'coordinateSystem';\n\n function leaveBlurOfIndices(data, dataIndices) {\n for (var i = 0; i < dataIndices.length; i++) {\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\n itemEl && leaveBlur(itemEl);\n }\n }\n\n if (!isBlur) {\n allLeaveBlur(api);\n return;\n }\n\n if (targetSeriesIndex == null) {\n return;\n }\n\n if (!focus || focus === 'none') {\n return;\n }\n\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n if (targetCoordSys && targetCoordSys.master) {\n targetCoordSys = targetCoordSys.master;\n }\n\n var blurredSeries = [];\n ecModel.eachSeries(function (seriesModel) {\n var sameSeries = targetSeriesModel === seriesModel;\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.master) {\n coordSys = coordSys.master;\n }\n\n var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries;\n\n if (!(blurScope === 'series' && !sameSeries || blurScope === 'coordinateSystem' && !sameCoordSys || focus === 'series' && sameSeries)) {\n var view = api.getViewOfSeriesModel(seriesModel);\n view.group.traverse(function (child) {\n singleEnterBlur(child);\n });\n\n if (isArrayLike(focus)) {\n leaveBlurOfIndices(seriesModel.getData(), focus);\n } else if (isObject(focus)) {\n var dataTypes = keys(focus);\n\n for (var d = 0; d < dataTypes.length; d++) {\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n }\n }\n\n blurredSeries.push(seriesModel);\n }\n });\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType === 'series') {\n return;\n }\n\n var view = api.getViewOfComponentModel(componentModel);\n\n if (view && view.blurSeries) {\n view.blurSeries(blurredSeries, ecModel);\n }\n });\n}\nexport function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\n if (!isHighDownPayload(payload)) {\n return;\n }\n\n var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\n var seriesIndex = seriesModel.seriesIndex;\n var data = seriesModel.getData(payload.dataType);\n var dataIndex = queryDataIndex(data, payload);\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n var el = data.getItemGraphicEl(dataIndex);\n\n if (!el) {\n var count = data.count();\n var current = 0;\n\n while (!el && current < count) {\n el = data.getItemGraphicEl(current++);\n }\n }\n\n if (el) {\n var ecData = getECData(el);\n toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\n } else {\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n if (focus_1 != null) {\n toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\n }\n }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n if (!isSelectChangePayload(payload)) {\n return;\n }\n\n var dataType = payload.dataType;\n var data = seriesModel.getData(dataType);\n var dataIndex = queryDataIndex(data, payload);\n\n if (!isArray(dataIndex)) {\n dataIndex = [dataIndex];\n }\n\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n var allData = seriesModel.getAllData();\n each(allData, function (_a) {\n var data = _a.data,\n type = _a.type;\n data.eachItemGraphicEl(function (el, idx) {\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n });\n });\n}\nexport function getAllSelectedIndices(ecModel) {\n var ret = [];\n ecModel.eachSeries(function (seriesModel) {\n var allData = seriesModel.getAllData();\n each(allData, function (_a) {\n var data = _a.data,\n type = _a.type;\n var dataIndices = seriesModel.getSelectedDataIndices();\n\n if (dataIndices.length > 0) {\n var item = {\n dataIndex: dataIndices,\n seriesIndex: seriesModel.seriesIndex\n };\n\n if (type != null) {\n item.dataType = type;\n }\n\n ret.push(item);\n }\n });\n });\n return ret;\n}\nexport function enableHoverEmphasis(el, focus, blurScope) {\n setAsHighDownDispatcher(el, true);\n traverseUpdateState(el, setDefaultStateProxy);\n enableHoverFocus(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n var ecData = getECData(el);\n\n if (focus != null) {\n ecData.focus = focus;\n ecData.blurScope = blurScope;\n } else if (ecData.focus) {\n ecData.focus = null;\n }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n itemStyle: 'getItemStyle',\n lineStyle: 'getLineStyle',\n areaStyle: 'getAreaStyle'\n};\nexport function setStatesStylesFromModel(el, itemModel, styleType, getter) {\n styleType = styleType || 'itemStyle';\n\n for (var i = 0; i < OTHER_STATES.length; i++) {\n var stateName = OTHER_STATES[i];\n var model = itemModel.getModel([stateName, styleType]);\n var state = el.ensureState(stateName);\n state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n }\n}\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n var disable = asDispatcher === false;\n var extendedEl = el;\n\n if (el.highDownSilentOnTouch) {\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n }\n\n if (!disable || extendedEl.__highDownDispatcher) {\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n extendedEl.__highDownDispatcher = !disable;\n }\n}\nexport function isHighDownDispatcher(el) {\n return !!(el && el.__highDownDispatcher);\n}\nexport function getHighlightDigit(highlightKey) {\n var highlightDigit = _highlightKeyMap[highlightKey];\n\n if (highlightDigit == null && _highlightNextDigit <= 32) {\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n }\n\n return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n var payloadType = payload.type;\n return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n var payloadType = payload.type;\n return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n var store = getSavedStates(el);\n store.normalFill = el.style.fill;\n store.normalStroke = el.style.stroke;\n var selectState = el.states.select || {};\n store.selectFill = selectState.style && selectState.style.fill || null;\n store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n var data = path.data;\n var len = path.len();\n var cmd;\n var nPoint;\n var i;\n var j;\n var k;\n var p;\n var M = CMD.M;\n var C = CMD.C;\n var L = CMD.L;\n var R = CMD.R;\n var A = CMD.A;\n var Q = CMD.Q;\n for (i = 0, j = 0; i < len;) {\n cmd = data[i++];\n j = i;\n nPoint = 0;\n switch (cmd) {\n case M:\n nPoint = 1;\n break;\n case L:\n nPoint = 1;\n break;\n case C:\n nPoint = 3;\n break;\n case Q:\n nPoint = 2;\n break;\n case A:\n var x = m[4];\n var y = m[5];\n var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n data[i] *= sx;\n data[i++] += x;\n data[i] *= sy;\n data[i++] += y;\n data[i++] *= sx;\n data[i++] *= sy;\n data[i++] += angle;\n data[i++] += angle;\n i += 2;\n j = i;\n break;\n case R:\n p[0] = data[i++];\n p[1] = data[i++];\n v2ApplyTransform(p, p, m);\n data[j++] = p[0];\n data[j++] = p[1];\n p[0] += data[i++];\n p[1] += data[i++];\n v2ApplyTransform(p, p, m);\n data[j++] = p[0];\n data[j++] = p[1];\n }\n for (k = 0; k < nPoint; k++) {\n var p_1 = points[k];\n p_1[0] = data[i++];\n p_1[1] = data[i++];\n v2ApplyTransform(p_1, p_1, m);\n data[j++] = p_1[0];\n data[j++] = p_1[1];\n }\n }\n path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n var psi = psiDeg * (PI / 180.0);\n var xp = mathCos(psi) * (x1 - x2) / 2.0\n + mathSin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n + mathCos(psi) * (y1 - y2) / 2.0;\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n if (lambda > 1) {\n rx *= mathSqrt(lambda);\n ry *= mathSqrt(lambda);\n }\n var f = (fa === fs ? -1 : 1)\n * mathSqrt((((rx * rx) * (ry * ry))\n - ((rx * rx) * (yp * yp))\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n + (ry * ry) * (xp * xp))) || 0;\n var cxp = f * rx * yp / ry;\n var cyp = f * -ry * xp / rx;\n var cx = (x1 + x2) / 2.0\n + mathCos(psi) * cxp\n - mathSin(psi) * cyp;\n var cy = (y1 + y2) / 2.0\n + mathSin(psi) * cxp\n + mathCos(psi) * cyp;\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (dTheta < 0) {\n var n = Math.round(dTheta / PI * 1e6) / 1e6;\n dTheta = PI * 2 + (n % 2) * PI;\n }\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n var path = new PathProxy();\n if (!data) {\n return path;\n }\n var cpx = 0;\n var cpy = 0;\n var subpathX = cpx;\n var subpathY = cpy;\n var prevCmd;\n var CMD = PathProxy.CMD;\n var cmdList = data.match(commandReg);\n if (!cmdList) {\n return path;\n }\n for (var l = 0; l < cmdList.length; l++) {\n var cmdText = cmdList[l];\n var cmdStr = cmdText.charAt(0);\n var cmd = void 0;\n var p = cmdText.match(numberReg) || [];\n var pLen = p.length;\n for (var i = 0; i < pLen; i++) {\n p[i] = parseFloat(p[i]);\n }\n var off = 0;\n while (off < pLen) {\n var ctlPtx = void 0;\n var ctlPty = void 0;\n var rx = void 0;\n var ry = void 0;\n var psi = void 0;\n var fa = void 0;\n var fs = void 0;\n var x1 = cpx;\n var y1 = cpy;\n var len = void 0;\n var pathData = void 0;\n switch (cmdStr) {\n case 'l':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'L':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'm':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'l';\n break;\n case 'M':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'L';\n break;\n case 'h':\n cpx += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'H':\n cpx = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'v':\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'V':\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'C':\n cmd = CMD.C;\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n cpx = p[off - 2];\n cpy = p[off - 1];\n break;\n case 'c':\n cmd = CMD.C;\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n cpx += p[off - 2];\n cpy += p[off - 1];\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cmd = CMD.C;\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cmd = CMD.C;\n x1 = cpx + p[off++];\n y1 = cpy + p[off++];\n cpx += p[off++];\n cpy += p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n case 'Q':\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n case 'q':\n x1 = p[off++] + cpx;\n y1 = p[off++] + cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n case 'a':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n }\n }\n if (cmdStr === 'z' || cmdStr === 'Z') {\n cmd = CMD.Z;\n path.addData(cmd);\n cpx = subpathX;\n cpy = subpathY;\n }\n prevCmd = cmd;\n }\n path.toStatic();\n return path;\n}\nvar SVGPath = (function (_super) {\n __extends(SVGPath, _super);\n function SVGPath() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SVGPath.prototype.applyTransform = function (m) { };\n return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n var pathProxy = createPathProxyFromString(str);\n var innerOpts = extend({}, opts);\n innerOpts.buildPath = function (path) {\n if (isPathProxy(path)) {\n path.setData(pathProxy.data);\n var ctx = path.getContext();\n if (ctx) {\n path.rebuildPath(ctx, 1);\n }\n }\n else {\n var ctx = path;\n pathProxy.rebuildPath(ctx, 1);\n }\n };\n innerOpts.applyTransform = function (m) {\n transformPath(pathProxy, m);\n this.dirtyShape();\n };\n return innerOpts;\n}\nexport function createFromString(str, opts) {\n return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n var innerOpts = createPathOptions(str, defaultOpts);\n var Sub = (function (_super) {\n __extends(Sub, _super);\n function Sub(opts) {\n var _this = _super.call(this, opts) || this;\n _this.applyTransform = innerOpts.applyTransform;\n _this.buildPath = innerOpts.buildPath;\n return _this;\n }\n return Sub;\n }(SVGPath));\n return Sub;\n}\nexport function mergePath(pathEls, opts) {\n var pathList = [];\n var len = pathEls.length;\n for (var i = 0; i < len; i++) {\n var pathEl = pathEls[i];\n if (!pathEl.path) {\n pathEl.createPathProxy();\n }\n if (pathEl.shapeChanged()) {\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\n }\n pathList.push(pathEl.path);\n }\n var pathBundle = new Path(opts);\n pathBundle.createPathProxy();\n pathBundle.buildPath = function (path) {\n if (isPathProxy(path)) {\n path.appendPath(pathList);\n var ctx = path.getContext();\n if (ctx) {\n path.rebuildPath(ctx, 1);\n }\n }\n };\n return pathBundle;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar CircleShape = (function () {\n function CircleShape() {\n this.cx = 0;\n this.cy = 0;\n this.r = 0;\n }\n return CircleShape;\n}());\nvar Circle = (function (_super) {\n __extends(Circle, _super);\n function Circle(opts) {\n return _super.call(this, opts) || this;\n }\n Circle.prototype.getDefaultShape = function () {\n return new CircleShape();\n };\n Circle.prototype.buildPath = function (ctx, shape, inBundle) {\n if (inBundle) {\n ctx.moveTo(shape.cx + shape.r, shape.cy);\n }\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n };\n return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar EllipseShape = (function () {\n function EllipseShape() {\n this.cx = 0;\n this.cy = 0;\n this.rx = 0;\n this.ry = 0;\n }\n return EllipseShape;\n}());\nvar Ellipse = (function (_super) {\n __extends(Ellipse, _super);\n function Ellipse(opts) {\n return _super.call(this, opts) || this;\n }\n Ellipse.prototype.getDefaultShape = function () {\n return new EllipseShape();\n };\n Ellipse.prototype.buildPath = function (ctx, shape) {\n var k = 0.5522848;\n var x = shape.cx;\n var y = shape.cy;\n var a = shape.rx;\n var b = shape.ry;\n var ox = a * k;\n var oy = b * k;\n ctx.moveTo(x - a, y);\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n ctx.closePath();\n };\n return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { normalizeArcAngles } from '../../core/PathProxy';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0;\n var y10 = y1 - y0;\n var x32 = x3 - x2;\n var y32 = y3 - y2;\n var t = y32 * x10 - x32 * y10;\n if (t * t < e) {\n return;\n }\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n var x01 = x0 - x1;\n var y01 = y0 - y1;\n var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n var ox = lo * y01;\n var oy = -lo * x01;\n var x11 = x0 + ox;\n var y11 = y0 + oy;\n var x10 = x1 + ox;\n var y10 = y1 + oy;\n var x00 = (x11 + x10) / 2;\n var y00 = (y11 + y10) / 2;\n var dx = x10 - x11;\n var dy = y10 - y11;\n var d2 = dx * dx + dy * dy;\n var r = radius - cr;\n var s = x11 * y10 - x10 * y11;\n var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n var cx0 = (s * dy - dx * d) / d2;\n var cy0 = (-s * dx - dy * d) / d2;\n var cx1 = (s * dy + dx * d) / d2;\n var cy1 = (-s * dx + dy * d) / d2;\n var dx0 = cx0 - x00;\n var dy0 = cy0 - y00;\n var dx1 = cx1 - x00;\n var dy1 = cy1 - y00;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n cx0 = cx1;\n cy0 = cy1;\n }\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (radius / r - 1),\n y11: cy0 * (radius / r - 1)\n };\n}\nexport function buildPath(ctx, shape) {\n var radius = mathMax(shape.r, 0);\n var innerRadius = mathMax(shape.r0 || 0, 0);\n var hasRadius = radius > 0;\n var hasInnerRadius = innerRadius > 0;\n if (!hasRadius && !hasInnerRadius) {\n return;\n }\n if (!hasRadius) {\n radius = innerRadius;\n innerRadius = 0;\n }\n if (innerRadius > radius) {\n var tmp = radius;\n radius = innerRadius;\n innerRadius = tmp;\n }\n var clockwise = !!shape.clockwise;\n var startAngle = shape.startAngle;\n var endAngle = shape.endAngle;\n var tmpAngles = [startAngle, endAngle];\n normalizeArcAngles(tmpAngles, !clockwise);\n var arc = mathAbs(tmpAngles[0] - tmpAngles[1]);\n var x = shape.cx;\n var y = shape.cy;\n var cornerRadius = shape.cornerRadius || 0;\n var innerCornerRadius = shape.innerCornerRadius || 0;\n if (!(radius > e)) {\n ctx.moveTo(x, y);\n }\n else if (arc > PI2 - e) {\n ctx.moveTo(x + radius * mathCos(startAngle), y + radius * mathSin(startAngle));\n ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n if (innerRadius > e) {\n ctx.moveTo(x + innerRadius * mathCos(endAngle), y + innerRadius * mathSin(endAngle));\n ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n }\n }\n else {\n var halfRd = mathAbs(radius - innerRadius) / 2;\n var cr = mathMin(halfRd, cornerRadius);\n var icr = mathMin(halfRd, innerCornerRadius);\n var cr0 = icr;\n var cr1 = cr;\n var xrs = radius * mathCos(startAngle);\n var yrs = radius * mathSin(startAngle);\n var xire = innerRadius * mathCos(endAngle);\n var yire = innerRadius * mathSin(endAngle);\n var xre = void 0;\n var yre = void 0;\n var xirs = void 0;\n var yirs = void 0;\n if (cr > e || icr > e) {\n xre = radius * mathCos(endAngle);\n yre = radius * mathSin(endAngle);\n xirs = innerRadius * mathCos(startAngle);\n yirs = innerRadius * mathSin(startAngle);\n if (arc < PI) {\n var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n if (it_1) {\n var x0 = xrs - it_1[0];\n var y0 = yrs - it_1[1];\n var x1 = xre - it_1[0];\n var y1 = yre - it_1[1];\n var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n cr0 = mathMin(icr, (innerRadius - b) / (a - 1));\n cr1 = mathMin(cr, (radius - b) / (a + 1));\n }\n }\n }\n if (!(arc > e)) {\n ctx.moveTo(x + xrs, y + yrs);\n }\n else if (cr1 > e) {\n var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\n var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\n ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n if (cr1 < cr) {\n ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n }\n else {\n ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\n ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n }\n }\n else {\n ctx.moveTo(x + xrs, y + yrs);\n ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n }\n if (!(innerRadius > e) || !(arc > e)) {\n ctx.lineTo(x + xire, y + yire);\n }\n else if (cr0 > e) {\n var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\n var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\n ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n if (cr0 < icr) {\n ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n }\n else {\n ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\n ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n }\n }\n else {\n ctx.lineTo(x + xire, y + yire);\n ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n }\n }\n ctx.closePath();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundSectorHelper from '../helper/roundSector';\nvar SectorShape = (function () {\n function SectorShape() {\n this.cx = 0;\n this.cy = 0;\n this.r0 = 0;\n this.r = 0;\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.clockwise = true;\n this.cornerRadius = 0;\n this.innerCornerRadius = 0;\n }\n return SectorShape;\n}());\nvar Sector = (function (_super) {\n __extends(Sector, _super);\n function Sector(opts) {\n return _super.call(this, opts) || this;\n }\n Sector.prototype.getDefaultShape = function () {\n return new SectorShape();\n };\n Sector.prototype.buildPath = function (ctx, shape) {\n roundSectorHelper.buildPath(ctx, shape);\n };\n Sector.prototype.isZeroArea = function () {\n return this.shape.startAngle === this.shape.endAngle\n || this.shape.r === this.shape.r0;\n };\n return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar RingShape = (function () {\n function RingShape() {\n this.cx = 0;\n this.cy = 0;\n this.r = 0;\n this.r0 = 0;\n }\n return RingShape;\n}());\nvar Ring = (function (_super) {\n __extends(Ring, _super);\n function Ring(opts) {\n return _super.call(this, opts) || this;\n }\n Ring.prototype.getDefaultShape = function () {\n return new RingShape();\n };\n Ring.prototype.buildPath = function (ctx, shape) {\n var x = shape.cx;\n var y = shape.cy;\n var PI2 = Math.PI * 2;\n ctx.moveTo(x + shape.r, y);\n ctx.arc(x, y, shape.r, 0, PI2, false);\n ctx.moveTo(x + shape.r0, y);\n ctx.arc(x, y, shape.r0, 0, PI2, true);\n };\n return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { distance as v2Distance } from '../../core/vector';\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n return (2 * (p1 - p2) + v0 + v1) * t3\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n + v0 * t + p1;\n}\nexport default function smoothSpline(points, isLoop) {\n var len = points.length;\n var ret = [];\n var distance = 0;\n for (var i = 1; i < len; i++) {\n distance += v2Distance(points[i - 1], points[i]);\n }\n var segs = distance / 2;\n segs = segs < len ? len : segs;\n for (var i = 0; i < segs; i++) {\n var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n var idx = Math.floor(pos);\n var w = pos - idx;\n var p0 = void 0;\n var p1 = points[idx % len];\n var p2 = void 0;\n var p3 = void 0;\n if (!isLoop) {\n p0 = points[idx === 0 ? idx : idx - 1];\n p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n }\n else {\n p0 = points[(idx - 1 + len) % len];\n p2 = points[(idx + 1) % len];\n p3 = points[(idx + 2) % len];\n }\n var w2 = w * w;\n var w3 = w * w2;\n ret.push([\n interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\n interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\n ]);\n }\n return ret;\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n var cps = [];\n var v = [];\n var v1 = [];\n var v2 = [];\n var prevPoint;\n var nextPoint;\n var min;\n var max;\n if (constraint) {\n min = [Infinity, Infinity];\n max = [-Infinity, -Infinity];\n for (var i = 0, len = points.length; i < len; i++) {\n v2Min(min, min, points[i]);\n v2Max(max, max, points[i]);\n }\n v2Min(min, min, constraint[0]);\n v2Max(max, max, constraint[1]);\n }\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n if (isLoop) {\n prevPoint = points[i ? i - 1 : len - 1];\n nextPoint = points[(i + 1) % len];\n }\n else {\n if (i === 0 || i === len - 1) {\n cps.push(v2Clone(points[i]));\n continue;\n }\n else {\n prevPoint = points[i - 1];\n nextPoint = points[i + 1];\n }\n }\n v2Sub(v, nextPoint, prevPoint);\n v2Scale(v, v, smooth);\n var d0 = v2Distance(point, prevPoint);\n var d1 = v2Distance(point, nextPoint);\n var sum = d0 + d1;\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n v2Scale(v1, v, -d0);\n v2Scale(v2, v, d1);\n var cp0 = v2Add([], point, v1);\n var cp1 = v2Add([], point, v2);\n if (constraint) {\n v2Max(cp0, cp0, min);\n v2Min(cp0, cp0, max);\n v2Max(cp1, cp1, min);\n v2Min(cp1, cp1, max);\n }\n cps.push(cp0);\n cps.push(cp1);\n }\n if (isLoop) {\n cps.push(cps.shift());\n }\n return cps;\n}\n","import smoothSpline from './smoothSpline';\nimport smoothBezier from './smoothBezier';\nexport function buildPath(ctx, shape, closePath) {\n var smooth = shape.smooth;\n var points = shape.points;\n if (points && points.length >= 2) {\n if (smooth && smooth !== 'spline') {\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n ctx.moveTo(points[0][0], points[0][1]);\n var len = points.length;\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\n var cp1 = controlPoints[i * 2];\n var cp2 = controlPoints[i * 2 + 1];\n var p = points[(i + 1) % len];\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n }\n }\n else {\n if (smooth === 'spline') {\n points = smoothSpline(points, closePath);\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (var i = 1, l = points.length; i < l; i++) {\n ctx.lineTo(points[i][0], points[i][1]);\n }\n }\n closePath && ctx.closePath();\n }\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolygonShape = (function () {\n function PolygonShape() {\n this.points = null;\n this.smooth = 0;\n this.smoothConstraint = null;\n }\n return PolygonShape;\n}());\nvar Polygon = (function (_super) {\n __extends(Polygon, _super);\n function Polygon(opts) {\n return _super.call(this, opts) || this;\n }\n Polygon.prototype.getDefaultShape = function () {\n return new PolygonShape();\n };\n Polygon.prototype.buildPath = function (ctx, shape) {\n polyHelper.buildPath(ctx, shape, true);\n };\n return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolylineShape = (function () {\n function PolylineShape() {\n this.points = null;\n this.percent = 1;\n this.smooth = 0;\n this.smoothConstraint = null;\n }\n return PolylineShape;\n}());\nvar Polyline = (function (_super) {\n __extends(Polyline, _super);\n function Polyline(opts) {\n return _super.call(this, opts) || this;\n }\n Polyline.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n Polyline.prototype.getDefaultShape = function () {\n return new PolylineShape();\n };\n Polyline.prototype.buildPath = function (ctx, shape) {\n polyHelper.buildPath(ctx, shape, false);\n };\n return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n function LineShape() {\n this.x1 = 0;\n this.y1 = 0;\n this.x2 = 0;\n this.y2 = 0;\n this.percent = 1;\n }\n return LineShape;\n}());\nvar Line = (function (_super) {\n __extends(Line, _super);\n function Line(opts) {\n return _super.call(this, opts) || this;\n }\n Line.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n Line.prototype.getDefaultShape = function () {\n return new LineShape();\n };\n Line.prototype.buildPath = function (ctx, shape) {\n var x1;\n var y1;\n var x2;\n var y2;\n if (this.subPixelOptimize) {\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n x1 = optimizedShape.x1;\n y1 = optimizedShape.y1;\n x2 = optimizedShape.x2;\n y2 = optimizedShape.y2;\n }\n else {\n x1 = shape.x1;\n y1 = shape.y1;\n x2 = shape.x2;\n y2 = shape.y2;\n }\n var percent = shape.percent;\n if (percent === 0) {\n return;\n }\n ctx.moveTo(x1, y1);\n if (percent < 1) {\n x2 = x1 * (1 - percent) + x2 * percent;\n y2 = y1 * (1 - percent) + y2 * percent;\n }\n ctx.lineTo(x2, y2);\n };\n Line.prototype.pointAt = function (p) {\n var shape = this.shape;\n return [\n shape.x1 * (1 - p) + shape.x2 * p,\n shape.y1 * (1 - p) + shape.y2 * p\n ];\n };\n return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as vec2 from '../../core/vector';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve';\nvar out = [];\nvar BezierCurveShape = (function () {\n function BezierCurveShape() {\n this.x1 = 0;\n this.y1 = 0;\n this.x2 = 0;\n this.y2 = 0;\n this.cpx1 = 0;\n this.cpy1 = 0;\n this.percent = 1;\n }\n return BezierCurveShape;\n}());\nfunction someVectorAt(shape, t, isTangent) {\n var cpx2 = shape.cpx2;\n var cpy2 = shape.cpy2;\n if (cpx2 === null || cpy2 === null) {\n return [\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n ];\n }\n else {\n return [\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n ];\n }\n}\nvar BezierCurve = (function (_super) {\n __extends(BezierCurve, _super);\n function BezierCurve(opts) {\n return _super.call(this, opts) || this;\n }\n BezierCurve.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n BezierCurve.prototype.getDefaultShape = function () {\n return new BezierCurveShape();\n };\n BezierCurve.prototype.buildPath = function (ctx, shape) {\n var x1 = shape.x1;\n var y1 = shape.y1;\n var x2 = shape.x2;\n var y2 = shape.y2;\n var cpx1 = shape.cpx1;\n var cpy1 = shape.cpy1;\n var cpx2 = shape.cpx2;\n var cpy2 = shape.cpy2;\n var percent = shape.percent;\n if (percent === 0) {\n return;\n }\n ctx.moveTo(x1, y1);\n if (cpx2 == null || cpy2 == null) {\n if (percent < 1) {\n quadraticSubdivide(x1, cpx1, x2, percent, out);\n cpx1 = out[1];\n x2 = out[2];\n quadraticSubdivide(y1, cpy1, y2, percent, out);\n cpy1 = out[1];\n y2 = out[2];\n }\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n }\n else {\n if (percent < 1) {\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n cpx1 = out[1];\n cpx2 = out[2];\n x2 = out[3];\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n cpy1 = out[1];\n cpy2 = out[2];\n y2 = out[3];\n }\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n }\n };\n BezierCurve.prototype.pointAt = function (t) {\n return someVectorAt(this.shape, t, false);\n };\n BezierCurve.prototype.tangentAt = function (t) {\n var p = someVectorAt(this.shape, t, true);\n return vec2.normalize(p, p);\n };\n return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar ArcShape = (function () {\n function ArcShape() {\n this.cx = 0;\n this.cy = 0;\n this.r = 0;\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.clockwise = true;\n }\n return ArcShape;\n}());\nvar Arc = (function (_super) {\n __extends(Arc, _super);\n function Arc(opts) {\n return _super.call(this, opts) || this;\n }\n Arc.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n Arc.prototype.getDefaultShape = function () {\n return new ArcShape();\n };\n Arc.prototype.buildPath = function (ctx, shape) {\n var x = shape.cx;\n var y = shape.cy;\n var r = Math.max(shape.r, 0);\n var startAngle = shape.startAngle;\n var endAngle = shape.endAngle;\n var clockwise = shape.clockwise;\n var unitX = Math.cos(startAngle);\n var unitY = Math.sin(startAngle);\n ctx.moveTo(unitX * r + x, unitY * r + y);\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n };\n return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from './Path';\nvar CompoundPath = (function (_super) {\n __extends(CompoundPath, _super);\n function CompoundPath() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'compound';\n return _this;\n }\n CompoundPath.prototype._updatePathDirty = function () {\n var paths = this.shape.paths;\n var dirtyPath = this.shapeChanged();\n for (var i = 0; i < paths.length; i++) {\n dirtyPath = dirtyPath || paths[i].shapeChanged();\n }\n if (dirtyPath) {\n this.dirtyShape();\n }\n };\n CompoundPath.prototype.beforeBrush = function () {\n this._updatePathDirty();\n var paths = this.shape.paths || [];\n var scale = this.getGlobalScale();\n for (var i = 0; i < paths.length; i++) {\n if (!paths[i].path) {\n paths[i].createPathProxy();\n }\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n }\n };\n CompoundPath.prototype.buildPath = function (ctx, shape) {\n var paths = shape.paths || [];\n for (var i = 0; i < paths.length; i++) {\n paths[i].buildPath(ctx, paths[i].shape, true);\n }\n };\n CompoundPath.prototype.afterBrush = function () {\n var paths = this.shape.paths || [];\n for (var i = 0; i < paths.length; i++) {\n paths[i].pathUpdated();\n }\n };\n CompoundPath.prototype.getBoundingRect = function () {\n this._updatePathDirty.call(this);\n return Path.prototype.getBoundingRect.call(this);\n };\n return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","var Gradient = (function () {\n function Gradient(colorStops) {\n this.colorStops = colorStops || [];\n }\n Gradient.prototype.addColorStop = function (offset, color) {\n this.colorStops.push({\n offset: offset,\n color: color\n });\n };\n return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar LinearGradient = (function (_super) {\n __extends(LinearGradient, _super);\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n var _this = _super.call(this, colorStops) || this;\n _this.x = x == null ? 0 : x;\n _this.y = y == null ? 0 : y;\n _this.x2 = x2 == null ? 1 : x2;\n _this.y2 = y2 == null ? 0 : y2;\n _this.type = 'linear';\n _this.global = globalCoord || false;\n return _this;\n }\n return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar RadialGradient = (function (_super) {\n __extends(RadialGradient, _super);\n function RadialGradient(x, y, r, colorStops, globalCoord) {\n var _this = _super.call(this, colorStops) || this;\n _this.x = x == null ? 0.5 : x;\n _this.y = y == null ? 0.5 : y;\n _this.r = r == null ? 0.5 : r;\n _this.type = 'radial';\n _this.global = globalCoord || false;\n return _this;\n }\n return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import Point from './Point';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n function OrientedBoundingRect(rect, transform) {\n this._corners = [];\n this._axes = [];\n this._origin = [0, 0];\n for (var i = 0; i < 4; i++) {\n this._corners[i] = new Point();\n }\n for (var i = 0; i < 2; i++) {\n this._axes[i] = new Point();\n }\n if (rect) {\n this.fromBoundingRect(rect, transform);\n }\n }\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n var corners = this._corners;\n var axes = this._axes;\n var x = rect.x;\n var y = rect.y;\n var x2 = x + rect.width;\n var y2 = y + rect.height;\n corners[0].set(x, y);\n corners[1].set(x2, y);\n corners[2].set(x2, y2);\n corners[3].set(x, y2);\n if (transform) {\n for (var i = 0; i < 4; i++) {\n corners[i].transform(transform);\n }\n }\n Point.sub(axes[0], corners[1], corners[0]);\n Point.sub(axes[1], corners[3], corners[0]);\n axes[0].normalize();\n axes[1].normalize();\n for (var i = 0; i < 2; i++) {\n this._origin[i] = axes[i].dot(corners[0]);\n }\n };\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n var overlapped = true;\n var noMtv = !mtv;\n minTv.set(Infinity, Infinity);\n maxTv.set(0, 0);\n if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n overlapped = false;\n if (noMtv) {\n return overlapped;\n }\n }\n if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n overlapped = false;\n if (noMtv) {\n return overlapped;\n }\n }\n if (!noMtv) {\n Point.copy(mtv, overlapped ? minTv : maxTv);\n }\n return overlapped;\n };\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n var overlapped = true;\n for (var i = 0; i < 2; i++) {\n var axis = this._axes[i];\n this._getProjMinMaxOnAxis(i, self._corners, extent);\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n overlapped = false;\n if (noMtv) {\n return overlapped;\n }\n var dist0 = Math.abs(extent2[0] - extent[1]);\n var dist1 = Math.abs(extent[0] - extent2[1]);\n if (Math.min(dist0, dist1) > maxTv.len()) {\n if (dist0 < dist1) {\n Point.scale(maxTv, axis, -dist0 * inverse);\n }\n else {\n Point.scale(maxTv, axis, dist1 * inverse);\n }\n }\n }\n else if (minTv) {\n var dist0 = Math.abs(extent2[0] - extent[1]);\n var dist1 = Math.abs(extent[0] - extent2[1]);\n if (Math.min(dist0, dist1) < minTv.len()) {\n if (dist0 < dist1) {\n Point.scale(minTv, axis, dist0 * inverse);\n }\n else {\n Point.scale(minTv, axis, -dist1 * inverse);\n }\n }\n }\n }\n return overlapped;\n };\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n var axis = this._axes[dim];\n var origin = this._origin;\n var proj = corners[0].dot(axis) + origin[dim];\n var min = proj;\n var max = proj;\n for (var i = 1; i < corners.length; i++) {\n var proj_1 = corners[i].dot(axis) + origin[dim];\n min = Math.min(proj_1, min);\n max = Math.max(proj_1, max);\n }\n out[0] = min;\n out[1] = max;\n };\n return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n __extends(IncrementalDisplayable, _super);\n function IncrementalDisplayable() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.notClear = true;\n _this.incremental = true;\n _this._displayables = [];\n _this._temporaryDisplayables = [];\n _this._cursor = 0;\n return _this;\n }\n IncrementalDisplayable.prototype.traverse = function (cb, context) {\n cb.call(context, this);\n };\n IncrementalDisplayable.prototype.useStyle = function () {\n this.style = {};\n };\n IncrementalDisplayable.prototype.getCursor = function () {\n return this._cursor;\n };\n IncrementalDisplayable.prototype.innerAfterBrush = function () {\n this._cursor = this._displayables.length;\n };\n IncrementalDisplayable.prototype.clearDisplaybles = function () {\n this._displayables = [];\n this._temporaryDisplayables = [];\n this._cursor = 0;\n this.markRedraw();\n this.notClear = false;\n };\n IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n this._temporaryDisplayables = [];\n };\n IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n if (notPersistent) {\n this._temporaryDisplayables.push(displayable);\n }\n else {\n this._displayables.push(displayable);\n }\n this.markRedraw();\n };\n IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n notPersistent = notPersistent || false;\n for (var i = 0; i < displayables.length; i++) {\n this.addDisplayable(displayables[i], notPersistent);\n }\n };\n IncrementalDisplayable.prototype.getDisplayables = function () {\n return this._displayables;\n };\n IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n return this._temporaryDisplayables;\n };\n IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n for (var i = this._cursor; i < this._displayables.length; i++) {\n cb && cb(this._displayables[i]);\n }\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n cb && cb(this._temporaryDisplayables[i]);\n }\n };\n IncrementalDisplayable.prototype.update = function () {\n this.updateTransform();\n for (var i = this._cursor; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n var displayable = this._temporaryDisplayables[i];\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n };\n IncrementalDisplayable.prototype.getBoundingRect = function () {\n if (!this._rect) {\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n var childRect = displayable.getBoundingRect().clone();\n if (displayable.needLocalTransform()) {\n childRect.applyTransform(displayable.getLocalTransform(m));\n }\n rect.union(childRect);\n }\n this._rect = rect;\n }\n return this._rect;\n };\n IncrementalDisplayable.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n if (rect.contain(localPos[0], localPos[1])) {\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n if (displayable.contain(x, y)) {\n return true;\n }\n }\n }\n return false;\n };\n return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as pathTool from 'zrender/lib/tool/path';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport Path from 'zrender/lib/graphic/Path';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport Group from 'zrender/lib/graphic/Group';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport Circle from 'zrender/lib/graphic/shape/Circle';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse';\nimport Sector from 'zrender/lib/graphic/shape/Sector';\nimport Ring from 'zrender/lib/graphic/shape/Ring';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport Line from 'zrender/lib/graphic/shape/Line';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve';\nimport Arc from 'zrender/lib/graphic/shape/Arc';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect';\nimport Point from 'zrender/lib/core/Point';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize';\nimport { extend, isArrayLike, map, defaults, isObject, retrieve2 } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\nexport function extendShape(opts) {\n return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\nexport function extendPath(pathData, opts) {\n return extendPathFromString(pathData, opts);\n}\nexport function registerShape(name, ShapeClass) {\n _customShapeMap[name] = ShapeClass;\n}\nexport function getShapeClass(name) {\n if (_customShapeMap.hasOwnProperty(name)) {\n return _customShapeMap[name];\n }\n}\nexport function makePath(pathData, opts, rect, layout) {\n var path = pathTool.createFromString(pathData, opts);\n\n if (rect) {\n if (layout === 'center') {\n rect = centerGraphic(rect, path.getBoundingRect());\n }\n\n resizePath(path, rect);\n }\n\n return path;\n}\nexport function makeImage(imageUrl, rect, layout) {\n var zrImg = new ZRImage({\n style: {\n image: imageUrl,\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n onload: function (img) {\n if (layout === 'center') {\n var boundingRect = {\n width: img.width,\n height: img.height\n };\n zrImg.setStyle(centerGraphic(rect, boundingRect));\n }\n }\n });\n return zrImg;\n}\n\nfunction centerGraphic(rect, boundingRect) {\n var aspect = boundingRect.width / boundingRect.height;\n var width = rect.height * aspect;\n var height;\n\n if (width <= rect.width) {\n height = rect.height;\n } else {\n width = rect.width;\n height = width / aspect;\n }\n\n var cx = rect.x + rect.width / 2;\n var cy = rect.y + rect.height / 2;\n return {\n x: cx - width / 2,\n y: cy - height / 2,\n width: width,\n height: height\n };\n}\n\nexport var mergePath = pathTool.mergePath;\nexport function resizePath(path, rect) {\n if (!path.applyTransform) {\n return;\n }\n\n var pathRect = path.getBoundingRect();\n var m = pathRect.calculateTransform(rect);\n path.applyTransform(m);\n}\nexport function subPixelOptimizeLine(param) {\n subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n return param;\n}\nexport function subPixelOptimizeRect(param) {\n subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n return param;\n}\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n var isFrom = false;\n var removeOpt;\n\n if (typeof dataIndex === 'function') {\n during = cb;\n cb = dataIndex;\n dataIndex = null;\n } else if (isObject(dataIndex)) {\n cb = dataIndex.cb;\n during = dataIndex.during;\n isFrom = dataIndex.isFrom;\n removeOpt = dataIndex.removeOpt;\n dataIndex = dataIndex.dataIndex;\n }\n\n var isUpdate = animationType === 'update';\n var isRemove = animationType === 'remove';\n var animationPayload;\n\n if (animatableModel && animatableModel.ecModel) {\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\n animationPayload = updatePayload && updatePayload.animation;\n }\n\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n if (!isRemove) {\n el.stopAnimation('remove');\n }\n\n if (animationEnabled) {\n var duration = void 0;\n var animationEasing = void 0;\n var animationDelay = void 0;\n\n if (animationPayload) {\n duration = animationPayload.duration || 0;\n animationEasing = animationPayload.easing || 'cubicOut';\n animationDelay = animationPayload.delay || 0;\n } else if (isRemove) {\n removeOpt = removeOpt || {};\n duration = retrieve2(removeOpt.duration, 200);\n animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\n animationDelay = 0;\n } else {\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n }\n\n if (typeof animationDelay === 'function') {\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n }\n\n if (typeof duration === 'function') {\n duration = duration(dataIndex);\n }\n\n duration > 0 ? isFrom ? el.animateFrom(props, {\n duration: duration,\n delay: animationDelay || 0,\n easing: animationEasing,\n done: cb,\n force: !!cb || !!during,\n scope: animationType,\n during: during\n }) : el.animateTo(props, {\n duration: duration,\n delay: animationDelay || 0,\n easing: animationEasing,\n done: cb,\n force: !!cb || !!during,\n setToFinal: true,\n scope: animationType,\n during: during\n }) : (el.stopAnimation(), !isFrom && el.attr(props), cb && cb());\n } else {\n el.stopAnimation();\n !isFrom && el.attr(props);\n during && during(1);\n cb && cb();\n }\n}\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb, during) {\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\n}\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n if (isElementRemoved(el)) {\n return;\n }\n\n animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n el.removeTextContent();\n el.removeTextGuideLine();\n removeElement(el, {\n style: {\n opacity: 0\n }\n }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n function doRemove() {\n el.parent && el.parent.remove(el);\n }\n\n if (!el.isGroup) {\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n } else {\n el.traverse(function (disp) {\n if (!disp.isGroup) {\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n }\n });\n }\n}\nexport function isElementRemoved(el) {\n if (!el.__zr) {\n return true;\n }\n\n for (var i = 0; i < el.animators.length; i++) {\n var animator = el.animators[i];\n\n if (animator.scope === 'remove') {\n return true;\n }\n }\n\n return false;\n}\nexport function getTransform(target, ancestor) {\n var mat = matrix.identity([]);\n\n while (target && target !== ancestor) {\n matrix.mul(mat, target.getLocalTransform(), mat);\n target = target.parent;\n }\n\n return mat;\n}\nexport function applyTransform(target, transform, invert) {\n if (transform && !isArrayLike(transform)) {\n transform = Transformable.getLocalTransform(transform);\n }\n\n if (invert) {\n transform = matrix.invert([], transform);\n }\n\n return vector.applyTransform([], target, transform);\n}\nexport function transformDirection(direction, transform, invert) {\n var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n vertex = applyTransform(vertex, transform, invert);\n return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n return !el.isGroup;\n}\n\nfunction isPath(el) {\n return el.shape != null;\n}\n\nexport function groupTransition(g1, g2, animatableModel) {\n if (!g1 || !g2) {\n return;\n }\n\n function getElMap(g) {\n var elMap = {};\n g.traverse(function (el) {\n if (isNotGroup(el) && el.anid) {\n elMap[el.anid] = el;\n }\n });\n return elMap;\n }\n\n function getAnimatableProps(el) {\n var obj = {\n x: el.x,\n y: el.y,\n rotation: el.rotation\n };\n\n if (isPath(el)) {\n obj.shape = extend({}, el.shape);\n }\n\n return obj;\n }\n\n var elMap1 = getElMap(g1);\n g2.traverse(function (el) {\n if (isNotGroup(el) && el.anid) {\n var oldEl = elMap1[el.anid];\n\n if (oldEl) {\n var newProp = getAnimatableProps(el);\n el.attr(getAnimatableProps(oldEl));\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n }\n }\n });\n}\nexport function clipPointsByRect(points, rect) {\n return map(points, function (point) {\n var x = point[0];\n x = mathMax(x, rect.x);\n x = mathMin(x, rect.x + rect.width);\n var y = point[1];\n y = mathMax(y, rect.y);\n y = mathMin(y, rect.y + rect.height);\n return [x, y];\n });\n}\nexport function clipRectByRect(targetRect, rect) {\n var x = mathMax(targetRect.x, rect.x);\n var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n var y = mathMax(targetRect.y, rect.y);\n var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n if (x2 >= x && y2 >= y) {\n return {\n x: x,\n y: y,\n width: x2 - x,\n height: y2 - y\n };\n }\n}\nexport function createIcon(iconStr, opt, rect) {\n var innerOpts = extend({\n rectHover: true\n }, opt);\n var style = innerOpts.style = {\n strokeNoScale: true\n };\n rect = rect || {\n x: -1,\n y: -1,\n width: 2,\n height: 2\n };\n\n if (iconStr) {\n return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n }\n}\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n var p = points[i];\n\n if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n return true;\n }\n\n p2 = p;\n }\n}\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n var mx = a2x - a1x;\n var my = a2y - a1y;\n var nx = b2x - b1x;\n var ny = b2y - b1y;\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n if (nearZero(nmCrossProduct)) {\n return false;\n }\n\n var b1a1x = a1x - b1x;\n var b1a1y = a1y - b1y;\n var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n if (q < 0 || q > 1) {\n return false;\n }\n\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n if (p < 0 || p > 1) {\n return false;\n }\n\n return true;\n}\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n return val <= 1e-6 && val >= -1e-6;\n}\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states';\nimport { deprecateReplaceLog } from '../util/log';\nimport { makeInner, interpolateRawValues } from '../util/model';\nimport { initProps, updateProps } from '../util/graphic';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var text = labelTexts[stateName];\n var state = label.ensureState(stateName);\n state.style = state.style || {};\n state.style.text = text;\n }\n\n var oldStates = label.currentStates.slice();\n label.clearStates(true);\n label.setStyle({\n text: labelTexts.normal\n });\n label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n var labelFetcher = opt.labelFetcher;\n var labelDataIndex = opt.labelDataIndex;\n var labelDimIndex = opt.labelDimIndex;\n var normalModel = stateModels.normal;\n var baseText;\n\n if (labelFetcher) {\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n interpolatedValue: interpolatedValue\n } : null);\n }\n\n if (baseText == null) {\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n }\n\n var statesText = {\n normal: baseText\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var stateModel = stateModels[stateName];\n statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n }\n\n return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\n opt = opt || EMPTY_OBJ;\n var isSetOnText = targetEl instanceof ZRText;\n var needsCreateText = false;\n\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n if (stateModel && stateModel.getShallow('show')) {\n needsCreateText = true;\n break;\n }\n }\n\n var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n if (needsCreateText) {\n if (!isSetOnText) {\n if (!textContent) {\n textContent = new ZRText();\n targetEl.setTextContent(textContent);\n }\n\n if (targetEl.stateProxy) {\n textContent.stateProxy = targetEl.stateProxy;\n }\n }\n\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\n var normalModel = labelStatesModels.normal;\n var showNormal = !!normalModel.getShallow('show');\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n normalStyle.text = labelStatesTexts.normal;\n\n if (!isSetOnText) {\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n }\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var stateModel = labelStatesModels[stateName];\n\n if (stateModel) {\n var stateObj = textContent.ensureState(stateName);\n var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n if (stateShow !== showNormal) {\n stateObj.ignore = !stateShow;\n }\n\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n stateObj.style.text = labelStatesTexts[stateName];\n\n if (!isSetOnText) {\n var targetElEmphasisState = targetEl.ensureState(stateName);\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n }\n }\n }\n\n textContent.silent = !!normalModel.getShallow('silent');\n\n if (textContent.style.x != null) {\n normalStyle.x = textContent.style.x;\n }\n\n if (textContent.style.y != null) {\n normalStyle.y = textContent.style.y;\n }\n\n textContent.ignore = !showNormal;\n textContent.useStyle(normalStyle);\n textContent.dirty();\n\n if (opt.enableTextSetter) {\n labelInner(textContent).setLabelText = function (interpolatedValue) {\n var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n setLabelText(textContent, labelStatesTexts);\n };\n }\n } else if (textContent) {\n textContent.ignore = true;\n }\n\n targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n labelName = labelName || 'label';\n var statesModels = {\n normal: itemModel.getModel(labelName)\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n }\n\n return statesModels;\n}\nexport function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\n var textStyle = {};\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n specifiedTextStyle && extend(textStyle, specifiedTextStyle);\n return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n opt = opt || {};\n var textConfig = {};\n var labelPosition;\n var labelRotate = textStyleModel.getShallow('rotate');\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n var labelOffset = textStyleModel.getShallow('offset');\n labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside');\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n if (labelPosition != null) {\n textConfig.position = labelPosition;\n }\n\n if (labelOffset != null) {\n textConfig.offset = labelOffset;\n }\n\n if (labelRotate != null) {\n labelRotate *= Math.PI / 180;\n textConfig.rotation = labelRotate;\n }\n\n if (labelDistance != null) {\n textConfig.distance = labelDistance;\n }\n\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n return textConfig;\n}\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n opt = opt || EMPTY_OBJ;\n var ecModel = textStyleModel.ecModel;\n var globalTextStyle = ecModel && ecModel.option.textStyle;\n var richItemNames = getRichItemNames(textStyleModel);\n var richResult;\n\n if (richItemNames) {\n richResult = {};\n\n for (var name_1 in richItemNames) {\n if (richItemNames.hasOwnProperty(name_1)) {\n var richTextStyle = textStyleModel.getModel(['rich', name_1]);\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n }\n }\n }\n\n if (richResult) {\n textStyle.rich = richResult;\n }\n\n var overflow = textStyleModel.get('overflow');\n\n if (overflow) {\n textStyle.overflow = overflow;\n }\n\n var margin = textStyleModel.get('minMargin');\n\n if (margin != null) {\n textStyle.margin = margin;\n }\n\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n}\n\nfunction getRichItemNames(textStyleModel) {\n var richItemNameMap;\n\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n if (rich) {\n richItemNameMap = richItemNameMap || {};\n var richKeys = keys(rich);\n\n for (var i = 0; i < richKeys.length; i++) {\n var richKey = richKeys[i];\n richItemNameMap[richKey] = 1;\n }\n }\n\n textStyleModel = textStyleModel.parentModel;\n }\n\n return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n var inheritColor = opt && opt.inheritColor;\n var fillColor = textStyleModel.getShallow('color');\n var strokeColor = textStyleModel.getShallow('textBorderColor');\n var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n if (fillColor === 'inherit' || fillColor === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n if (fillColor === 'auto') {\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n }\n }\n\n if (inheritColor) {\n fillColor = inheritColor;\n } else {\n fillColor = null;\n }\n }\n\n if (strokeColor === 'inherit' || strokeColor === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n if (strokeColor === 'auto') {\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n }\n }\n\n if (inheritColor) {\n strokeColor = inheritColor;\n } else {\n strokeColor = null;\n }\n }\n\n if (!isAttached) {\n fillColor = fillColor || globalTextStyle.color;\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\n }\n\n if (fillColor != null) {\n textStyle.fill = fillColor;\n }\n\n if (strokeColor != null) {\n textStyle.stroke = strokeColor;\n }\n\n var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n if (textBorderWidth != null) {\n textStyle.lineWidth = textBorderWidth;\n }\n\n var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n if (textBorderType != null) {\n textStyle.lineDash = textBorderType;\n }\n\n var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n if (textBorderDashOffset != null) {\n textStyle.lineDashOffset = textBorderDashOffset;\n }\n\n if (!isNotNormal && opacity == null && !inRich) {\n opacity = opt && opt.defaultOpacity;\n }\n\n if (opacity != null) {\n textStyle.opacity = opacity;\n }\n\n if (!isNotNormal && !isAttached) {\n if (textStyle.fill == null && opt.inheritColor) {\n textStyle.fill = opt.inheritColor;\n }\n }\n\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n var key = TEXT_PROPS_WITH_GLOBAL[i];\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n var key = TEXT_PROPS_SELF[i];\n var val = textStyleModel.getShallow(key);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n if (textStyle.verticalAlign == null) {\n var baseline = textStyleModel.getShallow('baseline');\n\n if (baseline != null) {\n textStyle.verticalAlign = baseline;\n }\n }\n\n if (!isBlock || !opt.disableBox) {\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n var key = TEXT_PROPS_BOX[i];\n var val = textStyleModel.getShallow(key);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n var borderType = textStyleModel.getShallow('borderType');\n\n if (borderType != null) {\n textStyle.borderDash = borderType;\n }\n\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n if (process.env.NODE_ENV !== 'production') {\n if (textStyle.backgroundColor === 'auto') {\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n }\n }\n\n textStyle.backgroundColor = inheritColor;\n }\n\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n if (process.env.NODE_ENV !== 'production') {\n if (textStyle.borderColor === 'auto') {\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n }\n }\n\n textStyle.borderColor = inheritColor;\n }\n }\n}\n\nexport function getFont(opt, ecModel) {\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n return trim([opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n if (!label) {\n return;\n }\n\n var obj = labelInner(label);\n obj.prevValue = obj.value;\n obj.value = value;\n var normalLabelModel = labelStatesModels.normal;\n obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n if (obj.valueAnimation) {\n obj.precision = normalLabelModel.get('precision');\n obj.defaultInterpolatedText = getDefaultText;\n obj.statesModels = labelStatesModels;\n }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n var labelInnerStore = labelInner(textEl);\n\n if (!labelInnerStore.valueAnimation) {\n return;\n }\n\n var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\n var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n var targetValue = labelInnerStore.value;\n\n function during(percent) {\n var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n var labelText = getLabelText({\n labelDataIndex: dataIndex,\n labelFetcher: labelFetcher,\n defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n }, labelInnerStore.statesModels, interpolated);\n setLabelText(textEl, labelText);\n }\n\n (currValue == null ? initProps : updateProps)(textEl, {}, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getFont } from '../../label/labelStyle';\nimport ZRText from 'zrender/lib/graphic/Text';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar tmpRichText = new ZRText();\n\nvar TextStyleMixin = function () {\n function TextStyleMixin() {}\n\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n var ecModel = this.ecModel;\n return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n };\n\n TextStyleMixin.prototype.getFont = function () {\n return getFont({\n fontStyle: this.getShallow('fontStyle'),\n fontWeight: this.getShallow('fontWeight'),\n fontSize: this.getShallow('fontSize'),\n fontFamily: this.getShallow('fontFamily')\n }, this.ecModel);\n };\n\n TextStyleMixin.prototype.getTextRect = function (text) {\n tmpRichText.useStyle({\n text: text,\n fontStyle: this.getShallow('fontStyle'),\n fontWeight: this.getShallow('fontWeight'),\n fontSize: this.getShallow('fontSize'),\n fontFamily: this.getShallow('fontFamily'),\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\n padding: this.getShallow('padding'),\n lineHeight: this.getShallow('lineHeight'),\n rich: this.getShallow('rich')\n });\n tmpRichText.update();\n return tmpRichText.getBoundingRect();\n };\n\n return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit']];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin = function () {\n function LineStyleMixin() {}\n\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\n return getLineStyle(this, excludes);\n };\n\n return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit']];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin = function () {\n function ItemStyleMixin() {}\n\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n return getItemStyle(this, excludes, includes);\n };\n\n return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport env from 'zrender/lib/core/env';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz';\nimport { AreaStyleMixin } from './mixin/areaStyle';\nimport TextStyleMixin from './mixin/textStyle';\nimport { LineStyleMixin } from './mixin/lineStyle';\nimport { ItemStyleMixin } from './mixin/itemStyle';\nimport { mixin, clone, merge } from 'zrender/lib/core/util';\n\nvar Model = function () {\n function Model(option, parentModel, ecModel) {\n this.parentModel = parentModel;\n this.ecModel = ecModel;\n this.option = option;\n }\n\n Model.prototype.init = function (option, parentModel, ecModel) {\n var rest = [];\n\n for (var _i = 3; _i < arguments.length; _i++) {\n rest[_i - 3] = arguments[_i];\n }\n };\n\n Model.prototype.mergeOption = function (option, ecModel) {\n merge(this.option, option, true);\n };\n\n Model.prototype.get = function (path, ignoreParent) {\n if (path == null) {\n return this.option;\n }\n\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n };\n\n Model.prototype.getShallow = function (key, ignoreParent) {\n var option = this.option;\n var val = option == null ? option : option[key];\n\n if (val == null && !ignoreParent) {\n var parentModel = this.parentModel;\n\n if (parentModel) {\n val = parentModel.getShallow(key);\n }\n }\n\n return val;\n };\n\n Model.prototype.getModel = function (path, parentModel) {\n var hasPath = path != null;\n var pathFinal = hasPath ? this.parsePath(path) : null;\n var obj = hasPath ? this._doGet(pathFinal) : this.option;\n parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n return new Model(obj, parentModel, this.ecModel);\n };\n\n Model.prototype.isEmpty = function () {\n return this.option == null;\n };\n\n Model.prototype.restoreData = function () {};\n\n Model.prototype.clone = function () {\n var Ctor = this.constructor;\n return new Ctor(clone(this.option));\n };\n\n Model.prototype.parsePath = function (path) {\n if (typeof path === 'string') {\n return path.split('.');\n }\n\n return path;\n };\n\n Model.prototype.resolveParentPath = function (path) {\n return path;\n };\n\n Model.prototype.isAnimationEnabled = function () {\n if (!env.node && this.option) {\n if (this.option.animation != null) {\n return !!this.option.animation;\n } else if (this.parentModel) {\n return this.parentModel.isAnimationEnabled();\n }\n }\n };\n\n Model.prototype._doGet = function (pathArr, parentModel) {\n var obj = this.option;\n\n if (!pathArr) {\n return obj;\n }\n\n for (var i = 0; i < pathArr.length; i++) {\n if (!pathArr[i]) {\n continue;\n }\n\n obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n if (obj == null) {\n break;\n }\n }\n\n if (obj == null && parentModel) {\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n }\n\n return obj;\n };\n\n return Model;\n}();\n\n;\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\nimport { makePrintable } from './log';\nvar base = Math.round(Math.random() * 10);\nexport function getUID(type) {\n return [type || '', base++].join('_');\n}\nexport function enableSubTypeDefaulter(target) {\n var subTypeDefaulters = {};\n\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\n var componentTypeInfo = parseClassType(componentType);\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\n };\n\n target.determineSubType = function (componentType, option) {\n var type = option.type;\n\n if (!type) {\n var componentTypeMain = parseClassType(componentType).main;\n\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n type = subTypeDefaulters[componentTypeMain](option);\n }\n }\n\n return type;\n };\n}\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n if (!targetNameList.length) {\n return;\n }\n\n var result = makeDepndencyGraph(fullNameList);\n var graph = result.graph;\n var noEntryList = result.noEntryList;\n var targetNameSet = {};\n zrUtil.each(targetNameList, function (name) {\n targetNameSet[name] = true;\n });\n\n while (noEntryList.length) {\n var currComponentType = noEntryList.pop();\n var currVertex = graph[currComponentType];\n var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n if (isInTargetNameSet) {\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\n delete targetNameSet[currComponentType];\n }\n\n zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n }\n\n zrUtil.each(targetNameSet, function () {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n }\n\n throw new Error(errMsg);\n });\n\n function removeEdge(succComponentType) {\n graph[succComponentType].entryCount--;\n\n if (graph[succComponentType].entryCount === 0) {\n noEntryList.push(succComponentType);\n }\n }\n\n function removeEdgeAndAdd(succComponentType) {\n targetNameSet[succComponentType] = true;\n removeEdge(succComponentType);\n }\n };\n\n function makeDepndencyGraph(fullNameList) {\n var graph = {};\n var noEntryList = [];\n zrUtil.each(fullNameList, function (name) {\n var thisItem = createDependencyGraphItem(graph, name);\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n thisItem.entryCount = availableDeps.length;\n\n if (thisItem.entryCount === 0) {\n noEntryList.push(name);\n }\n\n zrUtil.each(availableDeps, function (dependentName) {\n if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n thisItem.predecessor.push(dependentName);\n }\n\n var thatItem = createDependencyGraphItem(graph, dependentName);\n\n if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n thatItem.successor.push(name);\n }\n });\n });\n return {\n graph: graph,\n noEntryList: noEntryList\n };\n }\n\n function createDependencyGraphItem(graph, name) {\n if (!graph[name]) {\n graph[name] = {\n predecessor: [],\n successor: []\n };\n }\n\n return graph[name];\n }\n\n function getAvailableDependencies(originalDeps, fullNameList) {\n var availableDeps = [];\n zrUtil.each(originalDeps, function (dep) {\n zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n });\n return availableDeps;\n }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n time: {\n month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n },\n legend: {\n selector: {\n all: 'All',\n inverse: 'Inv'\n }\n },\n toolbox: {\n brush: {\n title: {\n rect: 'Box Select',\n polygon: 'Lasso Select',\n lineX: 'Horizontally Select',\n lineY: 'Vertically Select',\n keep: 'Keep Selections',\n clear: 'Clear Selections'\n }\n },\n dataView: {\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh']\n },\n dataZoom: {\n title: {\n zoom: 'Zoom',\n back: 'Zoom Reset'\n }\n },\n magicType: {\n title: {\n line: 'Switch to Line Chart',\n bar: 'Switch to Bar Chart',\n stack: 'Stack',\n tiled: 'Tile'\n }\n },\n restore: {\n title: 'Restore'\n },\n saveAsImage: {\n title: 'Save as Image',\n lang: ['Right Click to Save Image']\n }\n },\n series: {\n typeNames: {\n pie: 'Pie chart',\n bar: 'Bar chart',\n line: 'Line chart',\n scatter: 'Scatter plot',\n effectScatter: 'Ripple scatter plot',\n radar: 'Radar chart',\n tree: 'Tree',\n treemap: 'Treemap',\n boxplot: 'Boxplot',\n candlestick: 'Candlestick',\n k: 'K line chart',\n heatmap: 'Heat map',\n map: 'Map',\n parallel: 'Parallel coordinate map',\n lines: 'Line graph',\n graph: 'Relationship graph',\n sankey: 'Sankey diagram',\n funnel: 'Funnel chart',\n gauge: 'Guage',\n pictorialBar: 'Pictorial bar',\n themeRiver: 'Theme River Map',\n sunburst: 'Sunburst'\n }\n },\n aria: {\n general: {\n withTitle: 'This is a chart about \"{title}\"',\n withoutTitle: 'This is a chart'\n },\n series: {\n single: {\n prefix: '',\n withName: ' with type {seriesType} named {seriesName}.',\n withoutName: ' with type {seriesType}.'\n },\n multiple: {\n prefix: '. It consists of {seriesCount} series count.',\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n withoutName: ' The {seriesId} series is a {seriesType}.',\n separator: {\n middle: '',\n end: ''\n }\n }\n },\n data: {\n allData: 'The data is as follows: ',\n partialData: 'The first {displayCnt} items are: ',\n withName: 'the data for {name} is {value}',\n withoutName: '{value}',\n separator: {\n middle: ', ',\n end: '. '\n }\n }\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n time: {\n month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n },\n legend: {\n selector: {\n all: '全选',\n inverse: '反选'\n }\n },\n toolbox: {\n brush: {\n title: {\n rect: '矩形选择',\n polygon: '圈选',\n lineX: '横向选择',\n lineY: '纵向选择',\n keep: '保持选择',\n clear: '清除选择'\n }\n },\n dataView: {\n title: '数据视图',\n lang: ['数据视图', '关闭', '刷新']\n },\n dataZoom: {\n title: {\n zoom: '区域缩放',\n back: '区域缩放还原'\n }\n },\n magicType: {\n title: {\n line: '切换为折线图',\n bar: '切换为柱状图',\n stack: '切换为堆叠',\n tiled: '切换为平铺'\n }\n },\n restore: {\n title: '还原'\n },\n saveAsImage: {\n title: '保存为图片',\n lang: ['右键另存为图片']\n }\n },\n series: {\n typeNames: {\n pie: '饼图',\n bar: '柱状图',\n line: '折线图',\n scatter: '散点图',\n effectScatter: '涟漪散点图',\n radar: '雷达图',\n tree: '树图',\n treemap: '矩形树图',\n boxplot: '箱型图',\n candlestick: 'K线图',\n k: 'K线图',\n heatmap: '热力图',\n map: '地图',\n parallel: '平行坐标图',\n lines: '线图',\n graph: '关系图',\n sankey: '桑基图',\n funnel: '漏斗图',\n gauge: '仪表盘图',\n pictorialBar: '象形柱图',\n themeRiver: '主题河流图',\n sunburst: '旭日图'\n }\n },\n aria: {\n general: {\n withTitle: '这是一个关于“{title}”的图表。',\n withoutTitle: '这是一个图表,'\n },\n series: {\n single: {\n prefix: '',\n withName: '图表类型是{seriesType},表示{seriesName}。',\n withoutName: '图表类型是{seriesType}。'\n },\n multiple: {\n prefix: '它由{seriesCount}个图表系列组成。',\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n withoutName: '第{seriesId}个系列是一个{seriesType},',\n separator: {\n middle: ';',\n end: '。'\n }\n }\n },\n data: {\n allData: '其数据是——',\n partialData: '其中,前{displayCnt}项是——',\n withName: '{name}的数据是{value}',\n withoutName: '{value}',\n separator: {\n middle: ',',\n end: ''\n }\n }\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../model/Model';\nimport env from 'zrender/lib/core/env';\nimport langEN from '../i18n/langEN';\nimport langZH from '../i18n/langZH';\nimport { isString, clone, merge } from 'zrender/lib/core/util';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n locale = locale.toUpperCase();\n localeModels[locale] = new Model(localeObj);\n localeStorage[locale] = localeObj;\n}\nexport function createLocaleObject(locale) {\n if (isString(locale)) {\n var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n return clone(localeObj);\n } else {\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n }\n } else {\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n }\n}\nexport function getLocaleModel(lang) {\n return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n return localeModels[DEFAULT_LOCALE];\n}\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from './number';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale';\nimport Model from '../model/Model';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n year: '{yyyy}',\n month: '{MMM}',\n day: '{d}',\n hour: '{HH}:{mm}',\n minute: '{HH}:{mm}',\n second: '{HH}:{mm}:{ss}',\n millisecond: '{hh}:{mm}:{ss} {SSS}',\n none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n year: '{yyyy}',\n month: '{yyyy}-{MM}',\n day: fullDayFormatter,\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n str += '';\n return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n switch (timeUnit) {\n case 'half-year':\n case 'quarter':\n return 'month';\n\n case 'week':\n case 'half-week':\n return 'day';\n\n case 'half-day':\n case 'quarter-day':\n return 'hour';\n\n default:\n return timeUnit;\n }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n switch (timeUnit) {\n case 'year':\n case 'month':\n return 'day';\n\n case 'millisecond':\n return 'millisecond';\n\n default:\n return 'second';\n }\n}\nexport function format(time, template, isUTC, lang) {\n var date = numberUtil.parseDate(time);\n var y = date[fullYearGetterName(isUTC)]();\n var M = date[monthGetterName(isUTC)]() + 1;\n var q = Math.floor((M - 1) / 4) + 1;\n var d = date[dateGetterName(isUTC)]();\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n var H = date[hoursGetterName(isUTC)]();\n var h = (H - 1) % 12 + 1;\n var m = date[minutesGetterName(isUTC)]();\n var s = date[secondsGetterName(isUTC)]();\n var S = date[millisecondsGetterName(isUTC)]();\n var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n var timeModel = localeModel.getModel('time');\n var month = timeModel.get('month');\n var monthAbbr = timeModel.get('monthAbbr');\n var dayOfWeek = timeModel.get('dayOfWeek');\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n var template = null;\n\n if (typeof formatter === 'string') {\n template = formatter;\n } else if (typeof formatter === 'function') {\n template = formatter(tick.value, idx, {\n level: tick.level\n });\n } else {\n var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n if (tick.level > 0) {\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\n defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n }\n }\n\n var mergedFormatter = formatter ? formatter.inherit === false ? formatter : zrUtil.defaults(formatter, defaults) : defaults;\n var unit = getUnitFromValue(tick.value, isUTC);\n\n if (mergedFormatter[unit]) {\n template = mergedFormatter[unit];\n } else if (mergedFormatter.inherit) {\n var targetId = timeUnits.indexOf(unit);\n\n for (var i = targetId - 1; i >= 0; --i) {\n if (mergedFormatter[unit]) {\n template = mergedFormatter[unit];\n break;\n }\n }\n\n template = template || defaults.none;\n }\n\n if (zrUtil.isArray(template)) {\n var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n levelId = Math.min(levelId, template.length - 1);\n template = template[levelId];\n }\n }\n\n return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n var date = numberUtil.parseDate(value);\n var M = date[monthGetterName(isUTC)]() + 1;\n var d = date[dateGetterName(isUTC)]();\n var h = date[hoursGetterName(isUTC)]();\n var m = date[minutesGetterName(isUTC)]();\n var s = date[secondsGetterName(isUTC)]();\n var S = date[millisecondsGetterName(isUTC)]();\n var isSecond = S === 0;\n var isMinute = isSecond && s === 0;\n var isHour = isMinute && m === 0;\n var isDay = isHour && h === 0;\n var isMonth = isDay && d === 1;\n var isYear = isMonth && M === 1;\n\n if (isYear) {\n return 'year';\n } else if (isMonth) {\n return 'month';\n } else if (isDay) {\n return 'day';\n } else if (isHour) {\n return 'hour';\n } else if (isMinute) {\n return 'minute';\n } else if (isSecond) {\n return 'second';\n } else {\n return 'millisecond';\n }\n}\nexport function getUnitValue(value, unit, isUTC) {\n var date = typeof value === 'number' ? numberUtil.parseDate(value) : value;\n unit = unit || getUnitFromValue(value, isUTC);\n\n switch (unit) {\n case 'year':\n return date[fullYearGetterName(isUTC)]();\n\n case 'half-year':\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n case 'quarter':\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n case 'month':\n return date[monthGetterName(isUTC)]();\n\n case 'day':\n return date[dateGetterName(isUTC)]();\n\n case 'half-day':\n return date[hoursGetterName(isUTC)]() / 24;\n\n case 'hour':\n return date[hoursGetterName(isUTC)]();\n\n case 'minute':\n return date[minutesGetterName(isUTC)]();\n\n case 'second':\n return date[secondsGetterName(isUTC)]();\n\n case 'millisecond':\n return date[millisecondsGetterName(isUTC)]();\n }\n}\nexport function fullYearGetterName(isUTC) {\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function fullYearSetterName(isUTC) {\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Text } from '../util/graphic';\nimport { deprecateLog } from '../util/log';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n deprecateLog('getTextRect is deprecated.');\n var textEl = new Text({\n style: {\n text: text,\n font: font,\n align: align,\n verticalAlign: verticalAlign,\n padding: padding,\n rich: rich,\n overflow: truncate ? 'truncate' : null,\n lineHeight: lineHeight\n }\n });\n return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseDate, isNumeric, numericToNumber } from './number';\nimport { format as timeFormat, pad } from './time';\nimport { deprecateReplaceLog } from './log';\nexport function addCommas(x) {\n if (!isNumeric(x)) {\n return zrUtil.isString(x) ? x : '-';\n }\n\n var parts = (x + '').split('.');\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n return group1.toUpperCase();\n });\n\n if (upperCaseFirst && str) {\n str = str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n '\\'': '&#39;'\n};\nexport function encodeHTML(source) {\n return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n return replaceMap[c];\n });\n}\nexport function makeValueReadable(value, valueType, useUTC) {\n var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\n\n function stringToUserReadable(str) {\n return str && zrUtil.trim(str) ? str : '-';\n }\n\n function isNumberUserReadable(num) {\n return !!(num != null && !isNaN(num) && isFinite(num));\n }\n\n var isTypeTime = valueType === 'time';\n var isValueDate = value instanceof Date;\n\n if (isTypeTime || isValueDate) {\n var date = isTypeTime ? parseDate(value) : value;\n\n if (!isNaN(+date)) {\n return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n } else if (isValueDate) {\n return '-';\n }\n }\n\n if (valueType === 'ordinal') {\n return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n }\n\n var numericResult = numericToNumber(value);\n return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n\nexport function formatTpl(tpl, paramsList, encode) {\n if (!zrUtil.isArray(paramsList)) {\n paramsList = [paramsList];\n }\n\n var seriesLen = paramsList.length;\n\n if (!seriesLen) {\n return '';\n }\n\n var $vars = paramsList[0].$vars || [];\n\n for (var i = 0; i < $vars.length; i++) {\n var alias = TPL_VAR_ALIAS[i];\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n }\n\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n for (var k = 0; k < $vars.length; k++) {\n var val = paramsList[seriesIdx][$vars[k]];\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n }\n }\n\n return tpl;\n}\nexport function formatTplSimple(tpl, param, encode) {\n zrUtil.each(param, function (value, key) {\n tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n });\n return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n var opt = zrUtil.isString(inOpt) ? {\n color: inOpt,\n extraCssText: extraCssText\n } : inOpt || {};\n var color = opt.color;\n var type = opt.type;\n extraCssText = opt.extraCssText;\n var renderMode = opt.renderMode || 'html';\n\n if (!color) {\n return '';\n }\n\n if (renderMode === 'html') {\n return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:4px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n } else {\n var markerId = opt.markerId || 'markerX';\n return {\n renderMode: renderMode,\n content: '{' + markerId + '|} ',\n style: type === 'subItem' ? {\n width: 4,\n height: 4,\n borderRadius: 2,\n backgroundColor: color\n } : {\n width: 10,\n height: 10,\n borderRadius: 5,\n backgroundColor: color\n }\n };\n }\n}\nexport function formatTime(tpl, value, isUTC) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n }\n\n if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n tpl = 'MM-dd\\nyyyy';\n }\n\n var date = parseDate(value);\n var utc = isUTC ? 'UTC' : '';\n var y = date['get' + utc + 'FullYear']();\n var M = date['get' + utc + 'Month']() + 1;\n var d = date['get' + utc + 'Date']();\n var h = date['get' + utc + 'Hours']();\n var m = date['get' + utc + 'Minutes']();\n var s = date['get' + utc + 'Seconds']();\n var S = date['get' + utc + 'Milliseconds']();\n tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100 + '').replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n return tpl;\n}\nexport function capitalFirst(str) {\n return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\nexport function convertToColorString(color, defaultColor) {\n defaultColor = defaultColor || 'transparent';\n return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText';\nexport function windowOpen(link, target) {\n if (target === '_blank' || target === 'blank') {\n var blank = window.open();\n blank.opener = null;\n blank.location.href = link;\n } else {\n window.open(link, target);\n }\n}\nexport { getTextRect } from '../legacy/getTextRect';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent } from './number';\nimport * as formatUtil from './format';\nvar each = zrUtil.each;\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n var x = 0;\n var y = 0;\n\n if (maxWidth == null) {\n maxWidth = Infinity;\n }\n\n if (maxHeight == null) {\n maxHeight = Infinity;\n }\n\n var currentLineMaxSize = 0;\n group.eachChild(function (child, idx) {\n var rect = child.getBoundingRect();\n var nextChild = group.childAt(idx + 1);\n var nextChildRect = nextChild && nextChild.getBoundingRect();\n var nextX;\n var nextY;\n\n if (orient === 'horizontal') {\n var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n nextX = x + moveX;\n\n if (nextX > maxWidth || child.newline) {\n x = 0;\n nextX = moveX;\n y += currentLineMaxSize + gap;\n currentLineMaxSize = rect.height;\n } else {\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n }\n } else {\n var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n nextY = y + moveY;\n\n if (nextY > maxHeight || child.newline) {\n x += currentLineMaxSize + gap;\n y = 0;\n nextY = moveY;\n currentLineMaxSize = rect.width;\n } else {\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n }\n }\n\n if (child.newline) {\n return;\n }\n\n child.x = x;\n child.y = y;\n child.markRedraw();\n orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n });\n}\n\nexport var box = boxLayout;\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n var containerWidth = containerRect.width;\n var containerHeight = containerRect.height;\n var x = parsePercent(positionInfo.left, containerWidth);\n var y = parsePercent(positionInfo.top, containerHeight);\n var x2 = parsePercent(positionInfo.right, containerWidth);\n var y2 = parsePercent(positionInfo.bottom, containerHeight);\n (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n margin = formatUtil.normalizeCssArray(margin || 0);\n return {\n width: Math.max(x2 - x - margin[1] - margin[3], 0),\n height: Math.max(y2 - y - margin[0] - margin[2], 0)\n };\n}\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n margin = formatUtil.normalizeCssArray(margin || 0);\n var containerWidth = containerRect.width;\n var containerHeight = containerRect.height;\n var left = parsePercent(positionInfo.left, containerWidth);\n var top = parsePercent(positionInfo.top, containerHeight);\n var right = parsePercent(positionInfo.right, containerWidth);\n var bottom = parsePercent(positionInfo.bottom, containerHeight);\n var width = parsePercent(positionInfo.width, containerWidth);\n var height = parsePercent(positionInfo.height, containerHeight);\n var verticalMargin = margin[2] + margin[0];\n var horizontalMargin = margin[1] + margin[3];\n var aspect = positionInfo.aspect;\n\n if (isNaN(width)) {\n width = containerWidth - right - horizontalMargin - left;\n }\n\n if (isNaN(height)) {\n height = containerHeight - bottom - verticalMargin - top;\n }\n\n if (aspect != null) {\n if (isNaN(width) && isNaN(height)) {\n if (aspect > containerWidth / containerHeight) {\n width = containerWidth * 0.8;\n } else {\n height = containerHeight * 0.8;\n }\n }\n\n if (isNaN(width)) {\n width = aspect * height;\n }\n\n if (isNaN(height)) {\n height = width / aspect;\n }\n }\n\n if (isNaN(left)) {\n left = containerWidth - right - width - horizontalMargin;\n }\n\n if (isNaN(top)) {\n top = containerHeight - bottom - height - verticalMargin;\n }\n\n switch (positionInfo.left || positionInfo.right) {\n case 'center':\n left = containerWidth / 2 - width / 2 - margin[3];\n break;\n\n case 'right':\n left = containerWidth - width - horizontalMargin;\n break;\n }\n\n switch (positionInfo.top || positionInfo.bottom) {\n case 'middle':\n case 'center':\n top = containerHeight / 2 - height / 2 - margin[0];\n break;\n\n case 'bottom':\n top = containerHeight - height - verticalMargin;\n break;\n }\n\n left = left || 0;\n top = top || 0;\n\n if (isNaN(width)) {\n width = containerWidth - horizontalMargin - left - (right || 0);\n }\n\n if (isNaN(height)) {\n height = containerHeight - verticalMargin - top - (bottom || 0);\n }\n\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n rect.margin = margin;\n return rect;\n}\nexport function positionElement(el, positionInfo, containerRect, margin, opt) {\n var h = !opt || !opt.hv || opt.hv[0];\n var v = !opt || !opt.hv || opt.hv[1];\n var boundingMode = opt && opt.boundingMode || 'all';\n\n if (!h && !v) {\n return;\n }\n\n var rect;\n\n if (boundingMode === 'raw') {\n rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n } else {\n rect = el.getBoundingRect();\n\n if (el.needLocalTransform()) {\n var transform = el.getLocalTransform();\n rect = rect.clone();\n rect.applyTransform(transform);\n }\n }\n\n var layoutRect = getLayoutRect(zrUtil.defaults({\n width: rect.width,\n height: rect.height\n }, positionInfo), containerRect, margin);\n var dx = h ? layoutRect.x - rect.x : 0;\n var dy = v ? layoutRect.y - rect.y : 0;\n\n if (boundingMode === 'raw') {\n el.x = dx;\n el.y = dy;\n } else {\n el.x += dx;\n el.y += dy;\n }\n\n el.markRedraw();\n}\nexport function sizeCalculable(option, hvIdx) {\n return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n type: layoutMode\n } : null;\n}\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n var ignoreSize = opt && opt.ignoreSize;\n !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n var hResult = merge(HV_NAMES[0], 0);\n var vResult = merge(HV_NAMES[1], 1);\n copy(HV_NAMES[0], targetOption, hResult);\n copy(HV_NAMES[1], targetOption, vResult);\n\n function merge(names, hvIdx) {\n var newParams = {};\n var newValueCount = 0;\n var merged = {};\n var mergedValueCount = 0;\n var enoughParamNumber = 2;\n each(names, function (name) {\n merged[name] = targetOption[name];\n });\n each(names, function (name) {\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n hasValue(newParams, name) && newValueCount++;\n hasValue(merged, name) && mergedValueCount++;\n });\n\n if (ignoreSize[hvIdx]) {\n if (hasValue(newOption, names[1])) {\n merged[names[2]] = null;\n } else if (hasValue(newOption, names[2])) {\n merged[names[1]] = null;\n }\n\n return merged;\n }\n\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\n return merged;\n } else if (newValueCount >= enoughParamNumber) {\n return newParams;\n } else {\n for (var i = 0; i < names.length; i++) {\n var name_1 = names[i];\n\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n newParams[name_1] = targetOption[name_1];\n break;\n }\n }\n\n return newParams;\n }\n }\n\n function hasProp(obj, name) {\n return obj.hasOwnProperty(name);\n }\n\n function hasValue(obj, name) {\n return obj[name] != null && obj[name] !== 'auto';\n }\n\n function copy(names, target, source) {\n each(names, function (name) {\n target[name] = source[name];\n });\n }\n}\nexport function getLayoutParams(source) {\n return copyLayoutParams({}, source);\n}\nexport function copyLayoutParams(target, source) {\n source && target && each(LOCATION_PARAMS, function (name) {\n source.hasOwnProperty(name) && (target[name] = source[name]);\n });\n return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from './Model';\nimport * as componentUtil from '../util/component';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz';\nimport { makeInner, queryReferringComponents } from '../util/model';\nimport * as layout from '../util/layout';\nvar inner = makeInner();\n\nvar ComponentModel = function (_super) {\n __extends(ComponentModel, _super);\n\n function ComponentModel(option, parentModel, ecModel) {\n var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n _this.uid = componentUtil.getUID('ec_cpt_model');\n return _this;\n }\n\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n };\n\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = layout.fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n var themeModel = ecModel.getTheme();\n zrUtil.merge(option, themeModel.get(this.mainType));\n zrUtil.merge(option, this.getDefaultOption());\n\n if (layoutMode) {\n layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\n zrUtil.merge(this.option, option, true);\n var layoutMode = layout.fetchLayoutMode(this);\n\n if (layoutMode) {\n layout.mergeLayoutParam(this.option, option, layoutMode);\n }\n };\n\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n\n ComponentModel.prototype.getDefaultOption = function () {\n var ctor = this.constructor;\n\n if (!isExtendedClass(ctor)) {\n return ctor.defaultOption;\n }\n\n var fields = inner(this);\n\n if (!fields.defaultOption) {\n var optList = [];\n var clz = ctor;\n\n while (clz) {\n var opt = clz.prototype.defaultOption;\n opt && optList.push(opt);\n clz = clz.superClass;\n }\n\n var defaultOption = {};\n\n for (var i = optList.length - 1; i >= 0; i--) {\n defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n }\n\n fields.defaultOption = defaultOption;\n }\n\n return fields.defaultOption;\n };\n\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n var indexKey = mainType + 'Index';\n var idKey = mainType + 'Id';\n return queryReferringComponents(this.ecModel, mainType, {\n index: this.get(indexKey, true),\n id: this.get(idKey, true)\n }, opt);\n };\n\n ComponentModel.prototype.getBoxLayoutParams = function () {\n var boxLayoutModel = this;\n return {\n left: boxLayoutModel.get('left'),\n top: boxLayoutModel.get('top'),\n right: boxLayoutModel.get('right'),\n bottom: boxLayoutModel.get('bottom'),\n width: boxLayoutModel.get('width'),\n height: boxLayoutModel.get('height')\n };\n };\n\n ComponentModel.protoInitialize = function () {\n var proto = ComponentModel.prototype;\n proto.type = 'component';\n proto.id = '';\n proto.name = '';\n proto.mainType = '';\n proto.subType = '';\n proto.componentIndex = 0;\n }();\n\n return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n var deps = [];\n zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n });\n deps = zrUtil.map(deps, function (type) {\n return parseClassType(type).main;\n });\n\n if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n deps.unshift('dataset');\n }\n\n return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar platform = '';\n\nif (typeof navigator !== 'undefined') {\n platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n darkMode: 'auto',\n color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n aria: {\n decal: {\n decals: [{\n color: decalColor,\n dashArrayX: [1, 0],\n dashArrayY: [2, 5],\n symbolSize: 1,\n rotation: Math.PI / 6\n }, {\n color: decalColor,\n symbol: 'circle',\n dashArrayX: [[8, 8], [0, 8, 8, 0]],\n dashArrayY: [6, 0],\n symbolSize: 0.8\n }, {\n color: decalColor,\n dashArrayX: [1, 0],\n dashArrayY: [4, 3],\n rotation: -Math.PI / 4\n }, {\n color: decalColor,\n dashArrayX: [[6, 6], [0, 6, 6, 0]],\n dashArrayY: [6, 0]\n }, {\n color: decalColor,\n dashArrayX: [[1, 0], [1, 6]],\n dashArrayY: [1, 0, 6, 0],\n rotation: Math.PI / 4\n }, {\n color: decalColor,\n symbol: 'triangle',\n dashArrayX: [[9, 9], [0, 9, 9, 0]],\n dashArrayY: [7, 2],\n symbolSize: 0.75\n }]\n }\n },\n textStyle: {\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n fontSize: 12,\n fontStyle: 'normal',\n fontWeight: 'normal'\n },\n blendMode: null,\n stateAnimation: {\n duration: 300,\n easing: 'cubicOut'\n },\n animation: 'auto',\n animationDuration: 1000,\n animationDurationUpdate: 500,\n animationEasing: 'cubicInOut',\n animationEasingUpdate: 'cubicInOut',\n animationThreshold: 2000,\n progressiveThreshold: 3000,\n progressive: 400,\n hoverLayerThreshold: 3000,\n useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap } from 'zrender/lib/core/util';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types';\nexport var BE_ORDINAL = {\n Must: 1,\n Might: 2,\n Not: 3\n};\nvar innerGlobalModel = makeInner();\nexport function resetSourceDefaulter(ecModel) {\n innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n var encode = {};\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n if (!datasetModel || !coordDimensions) {\n return encode;\n }\n\n var encodeItemName = [];\n var encodeSeriesName = [];\n var ecModel = seriesModel.ecModel;\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n var baseCategoryDimIndex;\n var categoryWayValueDimStart;\n coordDimensions = coordDimensions.slice();\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n name: coordDimInfoLoose\n };\n\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n baseCategoryDimIndex = coordDimIdx;\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n }\n\n encode[coordDimInfo.name] = [];\n });\n var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n categoryWayDim: categoryWayValueDimStart,\n valueWayDim: 0\n });\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n var coordDimName = coordDimInfo.name;\n var count = getDataDimCountOnCoordDim(coordDimInfo);\n\n if (baseCategoryDimIndex == null) {\n var start = datasetRecord.valueWayDim;\n pushDim(encode[coordDimName], start, count);\n pushDim(encodeSeriesName, start, count);\n datasetRecord.valueWayDim += count;\n } else if (baseCategoryDimIndex === coordDimIdx) {\n pushDim(encode[coordDimName], 0, count);\n pushDim(encodeItemName, 0, count);\n } else {\n var start = datasetRecord.categoryWayDim;\n pushDim(encode[coordDimName], start, count);\n pushDim(encodeSeriesName, start, count);\n datasetRecord.categoryWayDim += count;\n }\n });\n\n function pushDim(dimIdxArr, idxFrom, idxCount) {\n for (var i = 0; i < idxCount; i++) {\n dimIdxArr.push(idxFrom + i);\n }\n }\n\n function getDataDimCountOnCoordDim(coordDimInfo) {\n var dimsDef = coordDimInfo.dimsDef;\n return dimsDef ? dimsDef.length : 1;\n }\n\n encodeItemName.length && (encode.itemName = encodeItemName);\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n return encode;\n}\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n var encode = {};\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n if (!datasetModel) {\n return encode;\n }\n\n var sourceFormat = source.sourceFormat;\n var dimensionsDefine = source.dimensionsDefine;\n var potentialNameDimIndex;\n\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n each(dimensionsDefine, function (dim, idx) {\n if ((isObject(dim) ? dim.name : dim) === 'name') {\n potentialNameDimIndex = idx;\n }\n });\n }\n\n var idxResult = function () {\n var idxRes0 = {};\n var idxRes1 = {};\n var guessRecords = [];\n\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n guessRecords.push(guessResult);\n var isPureNumber = guessResult === BE_ORDINAL.Not;\n\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n idxRes0.v = i;\n }\n\n if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n idxRes0.n = i;\n }\n\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n return idxRes0;\n }\n\n if (!isPureNumber) {\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n idxRes1.v = i;\n }\n\n if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n idxRes1.n = i;\n }\n }\n }\n\n function fulfilled(idxResult) {\n return idxResult.v != null && idxResult.n != null;\n }\n\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n }();\n\n if (idxResult) {\n encode.value = [idxResult.v];\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\n encode.itemName = [nameDimIndex];\n encode.seriesName = [nameDimIndex];\n }\n\n return encode;\n}\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n var thisData = seriesModel.get('data', true);\n\n if (!thisData) {\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n index: seriesModel.get('datasetIndex', true),\n id: seriesModel.get('datasetId', true)\n }, SINGLE_REFERRING).models[0];\n }\n}\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n return [];\n }\n\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n index: datasetModel.get('fromDatasetIndex', true),\n id: datasetModel.get('fromDatasetId', true)\n }, SINGLE_REFERRING).models;\n}\nexport function guessOrdinal(source, dimIndex) {\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n var result;\n var maxLoop = 5;\n\n if (isTypedArray(data)) {\n return BE_ORDINAL.Not;\n }\n\n var dimName;\n var dimType;\n\n if (dimensionsDefine) {\n var dimDefItem = dimensionsDefine[dimIndex];\n\n if (isObject(dimDefItem)) {\n dimName = dimDefItem.name;\n dimType = dimDefItem.type;\n } else if (isString(dimDefItem)) {\n dimName = dimDefItem;\n }\n }\n\n if (dimType != null) {\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n }\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n var dataArrayRows = data;\n\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n var sample = dataArrayRows[dimIndex];\n\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n if ((result = detectValue(sample[startIndex + i])) != null) {\n return result;\n }\n }\n } else {\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n var row = dataArrayRows[startIndex + i];\n\n if (row && (result = detectValue(row[dimIndex])) != null) {\n return result;\n }\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n var dataObjectRows = data;\n\n if (!dimName) {\n return BE_ORDINAL.Not;\n }\n\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n var item = dataObjectRows[i];\n\n if (item && (result = detectValue(item[dimName])) != null) {\n return result;\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n var dataKeyedColumns = data;\n\n if (!dimName) {\n return BE_ORDINAL.Not;\n }\n\n var sample = dataKeyedColumns[dimName];\n\n if (!sample || isTypedArray(sample)) {\n return BE_ORDINAL.Not;\n }\n\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\n if ((result = detectValue(sample[i])) != null) {\n return result;\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var dataOriginal = data;\n\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n var item = dataOriginal[i];\n var val = getDataItemValue(item);\n\n if (!isArray(val)) {\n return BE_ORDINAL.Not;\n }\n\n if ((result = detectValue(val[dimIndex])) != null) {\n return result;\n }\n }\n }\n\n function detectValue(val) {\n var beStr = isString(val);\n\n if (val != null && isFinite(val) && val !== '') {\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n } else if (beStr && val !== '-') {\n return BE_ORDINAL.Must;\n }\n }\n\n return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, assert } from 'zrender/lib/core/util';\nimport { isComponentIdInternal } from '../util/model';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n assert(internalOptionCreatorMap.get(mainType) == null && creator);\n internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n if (!internalOptionCreator) {\n return newCmptOptionList;\n }\n\n var internalOptions = internalOptionCreator(ecModel);\n\n if (!internalOptions) {\n return newCmptOptionList;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n for (var i = 0; i < internalOptions.length; i++) {\n assert(isComponentIdInternal(internalOptions[i]));\n }\n }\n\n return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, normalizeToArray } from '../../util/model';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin = function () {\n function PaletteMixin() {}\n\n PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n var defaultPalette = normalizeToArray(this.get('color', true));\n var layeredPalette = this.get('colorLayer', true);\n return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n };\n\n PaletteMixin.prototype.clearColorPalette = function () {\n clearPalette(this, innerColor);\n };\n\n return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n var paletteNum = palettes.length;\n\n for (var i = 0; i < paletteNum; i++) {\n if (palettes[i].length > requestColorNum) {\n return palettes[i];\n }\n }\n\n return palettes[paletteNum - 1];\n}\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n scope = scope || that;\n var scopeFields = inner(scope);\n var paletteIdx = scopeFields.paletteIdx || 0;\n var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\n\n if (paletteNameMap.hasOwnProperty(name)) {\n return paletteNameMap[name];\n }\n\n var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum);\n palette = palette || defaultPalette;\n\n if (!palette || !palette.length) {\n return;\n }\n\n var pickedPaletteItem = palette[paletteIdx];\n\n if (name) {\n paletteNameMap[name] = pickedPaletteItem;\n }\n\n scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n inner(that).paletteIdx = 0;\n inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util';\nimport * as modelUtil from '../util/model';\nimport Model from './Model';\nimport ComponentModel from './Component';\nimport globalDefault from './globalDefault';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper';\nimport { concatInternalOptions } from './internalComponentCreator';\nimport { PaletteMixin } from './mixin/palette';\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\n\nvar GlobalModel = function (_super) {\n __extends(GlobalModel, _super);\n\n function GlobalModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n theme = theme || {};\n this.option = null;\n this._theme = new Model(theme);\n this._locale = new Model(locale);\n this._optionManager = optionManager;\n };\n\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n if (process.env.NODE_ENV !== 'production') {\n assert(option != null, 'option is null/undefined');\n assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n }\n\n var innerOpt = normalizeSetOptionInput(opts);\n\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n this._resetOption(null, innerOpt);\n };\n\n GlobalModel.prototype.resetOption = function (type, opt) {\n return this._resetOption(type, normalizeSetOptionInput(opt));\n };\n\n GlobalModel.prototype._resetOption = function (type, opt) {\n var optionChanged = false;\n var optionManager = this._optionManager;\n\n if (!type || type === 'recreate') {\n var baseOption = optionManager.mountOption(type === 'recreate');\n\n if (!this.option || type === 'recreate') {\n initBase(this, baseOption);\n } else {\n this.restoreData();\n\n this._mergeOption(baseOption, opt);\n }\n\n optionChanged = true;\n }\n\n if (type === 'timeline' || type === 'media') {\n this.restoreData();\n }\n\n if (!type || type === 'recreate' || type === 'timeline') {\n var timelineOption = optionManager.getTimelineOption(this);\n\n if (timelineOption) {\n optionChanged = true;\n\n this._mergeOption(timelineOption, opt);\n }\n }\n\n if (!type || type === 'recreate' || type === 'media') {\n var mediaOptions = optionManager.getMediaOption(this);\n\n if (mediaOptions.length) {\n each(mediaOptions, function (mediaOption) {\n optionChanged = true;\n\n this._mergeOption(mediaOption, opt);\n }, this);\n }\n }\n\n return optionChanged;\n };\n\n GlobalModel.prototype.mergeOption = function (option) {\n this._mergeOption(option, null);\n };\n\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\n var option = this.option;\n var componentsMap = this._componentsMap;\n var componentsCount = this._componentsCount;\n var newCmptTypes = [];\n var newCmptTypeMap = createHashMap();\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n resetSourceDefaulter(this);\n each(newOption, function (componentOption, mainType) {\n if (componentOption == null) {\n return;\n }\n\n if (!ComponentModel.hasClass(mainType)) {\n option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n } else if (mainType) {\n newCmptTypes.push(mainType);\n newCmptTypeMap.set(mainType, true);\n }\n });\n\n if (replaceMergeMainTypeMap) {\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n newCmptTypes.push(mainTypeInReplaceMerge);\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n }\n });\n }\n\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n function visitComponent(mainType) {\n var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n var oldCmptList = componentsMap.get(mainType);\n var mergeMode = !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\n modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\n option[mainType] = null;\n componentsMap.set(mainType, null);\n componentsCount.set(mainType, 0);\n var optionsByMainType = [];\n var cmptsByMainType = [];\n var cmptsCountByMainType = 0;\n each(mappingResult, function (resultItem, index) {\n var componentModel = resultItem.existing;\n var newCmptOption = resultItem.newOption;\n\n if (!newCmptOption) {\n if (componentModel) {\n componentModel.mergeOption({}, this);\n componentModel.optionUpdated({}, false);\n }\n } else {\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n if (componentModel && componentModel.constructor === ComponentModelClass) {\n componentModel.name = resultItem.keyInfo.name;\n componentModel.mergeOption(newCmptOption, this);\n componentModel.optionUpdated(newCmptOption, false);\n } else {\n var extraOpt = extend({\n componentIndex: index\n }, resultItem.keyInfo);\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\n extend(componentModel, extraOpt);\n\n if (resultItem.brandNew) {\n componentModel.__requireNewView = true;\n }\n\n componentModel.init(newCmptOption, this, this);\n componentModel.optionUpdated(null, true);\n }\n }\n\n if (componentModel) {\n optionsByMainType.push(componentModel.option);\n cmptsByMainType.push(componentModel);\n cmptsCountByMainType++;\n } else {\n optionsByMainType.push(void 0);\n cmptsByMainType.push(void 0);\n }\n }, this);\n option[mainType] = optionsByMainType;\n componentsMap.set(mainType, cmptsByMainType);\n componentsCount.set(mainType, cmptsCountByMainType);\n\n if (mainType === 'series') {\n reCreateSeriesIndices(this);\n }\n }\n\n if (!this._seriesIndices) {\n reCreateSeriesIndices(this);\n }\n };\n\n GlobalModel.prototype.getOption = function () {\n var option = clone(this.option);\n each(option, function (optInMainType, mainType) {\n if (ComponentModel.hasClass(mainType)) {\n var opts = modelUtil.normalizeToArray(optInMainType);\n var realLen = opts.length;\n var metNonInner = false;\n\n for (var i = realLen - 1; i >= 0; i--) {\n if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n metNonInner = true;\n } else {\n opts[i] = null;\n !metNonInner && realLen--;\n }\n }\n\n opts.length = realLen;\n option[mainType] = opts;\n }\n });\n delete option[OPTION_INNER_KEY];\n return option;\n };\n\n GlobalModel.prototype.getTheme = function () {\n return this._theme;\n };\n\n GlobalModel.prototype.getLocaleModel = function () {\n return this._locale;\n };\n\n GlobalModel.prototype.getLocale = function (localePosition) {\n var locale = this.getLocaleModel();\n return locale.get(localePosition);\n };\n\n GlobalModel.prototype.setUpdatePayload = function (payload) {\n this._payload = payload;\n };\n\n GlobalModel.prototype.getUpdatePayload = function () {\n return this._payload;\n };\n\n GlobalModel.prototype.getComponent = function (mainType, idx) {\n var list = this._componentsMap.get(mainType);\n\n if (list) {\n var cmpt = list[idx || 0];\n\n if (cmpt) {\n return cmpt;\n } else if (idx == null) {\n for (var i = 0; i < list.length; i++) {\n if (list[i]) {\n return list[i];\n }\n }\n }\n }\n };\n\n GlobalModel.prototype.queryComponents = function (condition) {\n var mainType = condition.mainType;\n\n if (!mainType) {\n return [];\n }\n\n var index = condition.index;\n var id = condition.id;\n var name = condition.name;\n\n var cmpts = this._componentsMap.get(mainType);\n\n if (!cmpts || !cmpts.length) {\n return [];\n }\n\n var result;\n\n if (index != null) {\n result = [];\n each(modelUtil.normalizeToArray(index), function (idx) {\n cmpts[idx] && result.push(cmpts[idx]);\n });\n } else if (id != null) {\n result = queryByIdOrName('id', id, cmpts);\n } else if (name != null) {\n result = queryByIdOrName('name', name, cmpts);\n } else {\n result = filter(cmpts, function (cmpt) {\n return !!cmpt;\n });\n }\n\n return filterBySubType(result, condition);\n };\n\n GlobalModel.prototype.findComponents = function (condition) {\n var query = condition.query;\n var mainType = condition.mainType;\n var queryCond = getQueryCond(query);\n var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function (cmpt) {\n return !!cmpt;\n });\n return doFilter(filterBySubType(result, condition));\n\n function getQueryCond(q) {\n var indexAttr = mainType + 'Index';\n var idAttr = mainType + 'Id';\n var nameAttr = mainType + 'Name';\n return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n mainType: mainType,\n index: q[indexAttr],\n id: q[idAttr],\n name: q[nameAttr]\n } : null;\n }\n\n function doFilter(res) {\n return condition.filter ? filter(res, condition.filter) : res;\n }\n };\n\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n var componentsMap = this._componentsMap;\n\n if (isFunction(mainType)) {\n var ctxForAll_1 = cb;\n var cbForAll_1 = mainType;\n componentsMap.each(function (cmpts, componentType) {\n for (var i = 0; cmpts && i < cmpts.length; i++) {\n var cmpt = cmpts[i];\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n }\n });\n } else {\n var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n for (var i = 0; cmpts && i < cmpts.length; i++) {\n var cmpt = cmpts[i];\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n }\n }\n };\n\n GlobalModel.prototype.getSeriesByName = function (name) {\n var nameStr = modelUtil.convertOptionIdName(name, null);\n return filter(this._componentsMap.get('series'), function (oneSeries) {\n return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n });\n };\n\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n return this._componentsMap.get('series')[seriesIndex];\n };\n\n GlobalModel.prototype.getSeriesByType = function (subType) {\n return filter(this._componentsMap.get('series'), function (oneSeries) {\n return !!oneSeries && oneSeries.subType === subType;\n });\n };\n\n GlobalModel.prototype.getSeries = function () {\n return filter(this._componentsMap.get('series').slice(), function (oneSeries) {\n return !!oneSeries;\n });\n };\n\n GlobalModel.prototype.getSeriesCount = function () {\n return this._componentsCount.get('series');\n };\n\n GlobalModel.prototype.eachSeries = function (cb, context) {\n assertSeriesInitialized(this);\n each(this._seriesIndices, function (rawSeriesIndex) {\n var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n cb.call(context, series, rawSeriesIndex);\n }, this);\n };\n\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\n each(this._componentsMap.get('series'), function (series) {\n series && cb.call(context, series, series.componentIndex);\n });\n };\n\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n assertSeriesInitialized(this);\n each(this._seriesIndices, function (rawSeriesIndex) {\n var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n if (series.subType === subType) {\n cb.call(context, series, rawSeriesIndex);\n }\n }, this);\n };\n\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n return each(this.getSeriesByType(subType), cb, context);\n };\n\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n assertSeriesInitialized(this);\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n };\n\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\n return (this._seriesIndices || []).slice();\n };\n\n GlobalModel.prototype.filterSeries = function (cb, context) {\n assertSeriesInitialized(this);\n var newSeriesIndices = [];\n each(this._seriesIndices, function (seriesRawIdx) {\n var series = this._componentsMap.get('series')[seriesRawIdx];\n\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n }, this);\n this._seriesIndices = newSeriesIndices;\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\n };\n\n GlobalModel.prototype.restoreData = function (payload) {\n reCreateSeriesIndices(this);\n var componentsMap = this._componentsMap;\n var componentTypes = [];\n componentsMap.each(function (components, componentType) {\n if (ComponentModel.hasClass(componentType)) {\n componentTypes.push(componentType);\n }\n });\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n each(componentsMap.get(componentType), function (component) {\n if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n component.restoreData();\n }\n });\n });\n };\n\n GlobalModel.internalField = function () {\n reCreateSeriesIndices = function (ecModel) {\n var seriesIndices = ecModel._seriesIndices = [];\n each(ecModel._componentsMap.get('series'), function (series) {\n series && seriesIndices.push(series.componentIndex);\n });\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n };\n\n assertSeriesInitialized = function (ecModel) {\n if (process.env.NODE_ENV !== 'production') {\n if (!ecModel._seriesIndices) {\n throw new Error('Option should contains series.');\n }\n }\n };\n\n initBase = function (ecModel, baseOption) {\n ecModel.option = {};\n ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE;\n ecModel._componentsMap = createHashMap({\n series: []\n });\n ecModel._componentsCount = createHashMap();\n var airaOption = baseOption.aria;\n\n if (isObject(airaOption) && airaOption.enabled == null) {\n airaOption.enabled = true;\n }\n\n mergeTheme(baseOption, ecModel._theme.option);\n merge(baseOption, globalDefault, false);\n\n ecModel._mergeOption(baseOption, null);\n };\n }();\n\n return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n if (payload) {\n var index = payload.seriesIndex;\n var id = payload.seriesId;\n var name_1 = payload.seriesName;\n return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n }\n}\n\nfunction mergeTheme(option, theme) {\n var notMergeColorLayer = option.color && !option.colorLayer;\n each(theme, function (themeItem, name) {\n if (name === 'colorLayer' && notMergeColorLayer) {\n return;\n }\n\n if (!ComponentModel.hasClass(name)) {\n if (typeof themeItem === 'object') {\n option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n } else {\n if (option[name] == null) {\n option[name] = themeItem;\n }\n }\n }\n });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n if (isArray(idOrName)) {\n var keyMap_1 = createHashMap();\n each(idOrName, function (idOrNameItem) {\n if (idOrNameItem != null) {\n var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n idName != null && keyMap_1.set(idOrNameItem, true);\n }\n });\n return filter(cmpts, function (cmpt) {\n return cmpt && keyMap_1.get(cmpt[attr]);\n });\n } else {\n var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n return filter(cmpts, function (cmpt) {\n return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n });\n }\n}\n\nfunction filterBySubType(components, condition) {\n return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n return cmpt && cmpt.subType === condition.subType;\n }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n var replaceMergeMainTypeMap = createHashMap();\n opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n if (process.env.NODE_ENV !== 'production') {\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n }\n\n replaceMergeMainTypeMap.set(mainType, true);\n });\n return {\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\n };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI = function () {\n function ExtensionAPI(ecInstance) {\n zrUtil.each(availableMethods, function (methodName) {\n this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n }, this);\n }\n\n return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager = function () {\n function CoordinateSystemManager() {\n this._coordinateSystems = [];\n }\n\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\n var coordinateSystems = [];\n zrUtil.each(coordinateSystemCreators, function (creater, type) {\n var list = creater.create(ecModel, api);\n coordinateSystems = coordinateSystems.concat(list || []);\n });\n this._coordinateSystems = coordinateSystems;\n };\n\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\n zrUtil.each(this._coordinateSystems, function (coordSys) {\n coordSys.update && coordSys.update(ecModel, api);\n });\n };\n\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n return this._coordinateSystems.slice();\n };\n\n CoordinateSystemManager.register = function (type, creator) {\n coordinateSystemCreators[type] = creator;\n };\n\n CoordinateSystemManager.get = function (type) {\n return coordinateSystemCreators[type];\n };\n\n return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { normalizeToArray } from '../util/model';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject } from 'zrender/lib/core/util';\nimport { error } from '../util/log';\nvar QUERY_REG = /^(min|max)?(.+)$/;\n\nvar OptionManager = function () {\n function OptionManager(api) {\n this._timelineOptions = [];\n this._mediaList = [];\n this._currentMediaIndices = [];\n this._api = api;\n }\n\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n if (rawOption) {\n each(normalizeToArray(rawOption.series), function (series) {\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n });\n each(normalizeToArray(rawOption.dataset), function (dataset) {\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n });\n }\n\n rawOption = clone(rawOption);\n var optionBackup = this._optionBackup;\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n this._newBaseOption = newParsedOption.baseOption;\n\n if (optionBackup) {\n if (newParsedOption.timelineOptions.length) {\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\n }\n\n if (newParsedOption.mediaList.length) {\n optionBackup.mediaList = newParsedOption.mediaList;\n }\n\n if (newParsedOption.mediaDefault) {\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\n }\n } else {\n this._optionBackup = newParsedOption;\n }\n };\n\n OptionManager.prototype.mountOption = function (isRecreate) {\n var optionBackup = this._optionBackup;\n this._timelineOptions = optionBackup.timelineOptions;\n this._mediaList = optionBackup.mediaList;\n this._mediaDefault = optionBackup.mediaDefault;\n this._currentMediaIndices = [];\n return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption);\n };\n\n OptionManager.prototype.getTimelineOption = function (ecModel) {\n var option;\n var timelineOptions = this._timelineOptions;\n\n if (timelineOptions.length) {\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel) {\n option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\n }\n }\n\n return option;\n };\n\n OptionManager.prototype.getMediaOption = function (ecModel) {\n var ecWidth = this._api.getWidth();\n\n var ecHeight = this._api.getHeight();\n\n var mediaList = this._mediaList;\n var mediaDefault = this._mediaDefault;\n var indices = [];\n var result = [];\n\n if (!mediaList.length && !mediaDefault) {\n return result;\n }\n\n for (var i = 0, len = mediaList.length; i < len; i++) {\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n indices.push(i);\n }\n }\n\n if (!indices.length && mediaDefault) {\n indices = [-1];\n }\n\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n result = map(indices, function (index) {\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n });\n }\n\n this._currentMediaIndices = indices;\n return result;\n };\n\n return OptionManager;\n}();\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n var mediaList = [];\n var mediaDefault;\n var baseOption;\n var declaredBaseOption = rawOption.baseOption;\n var timelineOnRoot = rawOption.timeline;\n var timelineOptionsOnRoot = rawOption.options;\n var mediaOnRoot = rawOption.media;\n var hasMedia = !!rawOption.media;\n var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n if (declaredBaseOption) {\n baseOption = declaredBaseOption;\n\n if (!baseOption.timeline) {\n baseOption.timeline = timelineOnRoot;\n }\n } else {\n if (hasTimeline || hasMedia) {\n rawOption.options = rawOption.media = null;\n }\n\n baseOption = rawOption;\n }\n\n if (hasMedia) {\n if (isArray(mediaOnRoot)) {\n each(mediaOnRoot, function (singleMedia) {\n if (process.env.NODE_ENV !== 'production') {\n if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n }\n }\n\n if (singleMedia && singleMedia.option) {\n if (singleMedia.query) {\n mediaList.push(singleMedia);\n } else if (!mediaDefault) {\n mediaDefault = singleMedia;\n }\n }\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n }\n }\n }\n\n doPreprocess(baseOption);\n each(timelineOptionsOnRoot, function (option) {\n return doPreprocess(option);\n });\n each(mediaList, function (media) {\n return doPreprocess(media.option);\n });\n\n function doPreprocess(option) {\n each(optionPreprocessorFuncs, function (preProcess) {\n preProcess(option, isNew);\n });\n }\n\n return {\n baseOption: baseOption,\n timelineOptions: timelineOptionsOnRoot || [],\n mediaDefault: mediaDefault,\n mediaList: mediaList\n };\n}\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n var realMap = {\n width: ecWidth,\n height: ecHeight,\n aspectratio: ecWidth / ecHeight\n };\n var applicatable = true;\n each(query, function (value, attr) {\n var matched = attr.match(QUERY_REG);\n\n if (!matched || !matched[1] || !matched[2]) {\n return;\n }\n\n var operator = matched[1];\n var realAttr = matched[2].toLowerCase();\n\n if (!compare(realMap[realAttr], value, operator)) {\n applicatable = false;\n }\n });\n return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n if (operator === 'min') {\n return real >= expect;\n } else if (operator === 'max') {\n return real <= expect;\n } else {\n return real === expect;\n }\n}\n\nfunction indicesEquals(indices1, indices2) {\n return indices1.join(',') === indices2.join(',');\n}\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n var itemStyleOpt = opt && opt.itemStyle;\n\n if (!itemStyleOpt) {\n return;\n }\n\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n var styleName = POSSIBLE_STYLES[i];\n var normalItemStyleOpt = itemStyleOpt.normal;\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n }\n\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].normal) {\n opt[styleName].normal = normalItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n }\n\n normalItemStyleOpt[styleName] = null;\n }\n\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n }\n\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].emphasis) {\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n }\n\n emphasisItemStyleOpt[styleName] = null;\n }\n }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n var normalOpt = opt[optType].normal;\n var emphasisOpt = opt[optType].emphasis;\n\n if (normalOpt) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n }\n\n if (useExtend) {\n opt[optType].normal = opt[optType].emphasis = null;\n zrUtil.defaults(opt[optType], normalOpt);\n } else {\n opt[optType] = normalOpt;\n }\n }\n\n if (emphasisOpt) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n }\n\n opt.emphasis = opt.emphasis || {};\n opt.emphasis[optType] = emphasisOpt;\n\n if (emphasisOpt.focus) {\n opt.emphasis.focus = emphasisOpt.focus;\n }\n\n if (emphasisOpt.blurScope) {\n opt.emphasis.blurScope = emphasisOpt.blurScope;\n }\n }\n }\n}\n\nfunction removeEC3NormalStatus(opt) {\n convertNormalEmphasis(opt, 'itemStyle');\n convertNormalEmphasis(opt, 'lineStyle');\n convertNormalEmphasis(opt, 'areaStyle');\n convertNormalEmphasis(opt, 'label');\n convertNormalEmphasis(opt, 'labelLine');\n convertNormalEmphasis(opt, 'upperLabel');\n convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n var labelOptSingle = isObject(opt) && opt[propName];\n var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n if (textStyle) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n }\n\n for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n if (textStyle.hasOwnProperty(textPropName)) {\n labelOptSingle[textPropName] = textStyle[textPropName];\n }\n }\n }\n}\n\nfunction compatEC3CommonStyles(opt) {\n if (opt) {\n removeEC3NormalStatus(opt);\n compatTextStyle(opt, 'label');\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n }\n}\n\nfunction processSeries(seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n compatEC2ItemStyle(seriesOpt);\n removeEC3NormalStatus(seriesOpt);\n compatTextStyle(seriesOpt, 'label');\n compatTextStyle(seriesOpt, 'upperLabel');\n compatTextStyle(seriesOpt, 'edgeLabel');\n\n if (seriesOpt.emphasis) {\n compatTextStyle(seriesOpt.emphasis, 'label');\n compatTextStyle(seriesOpt.emphasis, 'upperLabel');\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n }\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint) {\n compatEC2ItemStyle(markPoint);\n compatEC3CommonStyles(markPoint);\n }\n\n var markLine = seriesOpt.markLine;\n\n if (markLine) {\n compatEC2ItemStyle(markLine);\n compatEC3CommonStyles(markLine);\n }\n\n var markArea = seriesOpt.markArea;\n\n if (markArea) {\n compatEC3CommonStyles(markArea);\n }\n\n var data = seriesOpt.data;\n\n if (seriesOpt.type === 'graph') {\n data = data || seriesOpt.nodes;\n var edgeData = seriesOpt.links || seriesOpt.edges;\n\n if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n for (var i = 0; i < edgeData.length; i++) {\n compatEC3CommonStyles(edgeData[i]);\n }\n }\n\n zrUtil.each(seriesOpt.categories, function (opt) {\n removeEC3NormalStatus(opt);\n });\n }\n\n if (data && !zrUtil.isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n compatEC3CommonStyles(data[i]);\n }\n }\n\n markPoint = seriesOpt.markPoint;\n\n if (markPoint && markPoint.data) {\n var mpData = markPoint.data;\n\n for (var i = 0; i < mpData.length; i++) {\n compatEC3CommonStyles(mpData[i]);\n }\n }\n\n markLine = seriesOpt.markLine;\n\n if (markLine && markLine.data) {\n var mlData = markLine.data;\n\n for (var i = 0; i < mlData.length; i++) {\n if (zrUtil.isArray(mlData[i])) {\n compatEC3CommonStyles(mlData[i][0]);\n compatEC3CommonStyles(mlData[i][1]);\n } else {\n compatEC3CommonStyles(mlData[i]);\n }\n }\n }\n\n if (seriesOpt.type === 'gauge') {\n compatTextStyle(seriesOpt, 'axisLabel');\n compatTextStyle(seriesOpt, 'title');\n compatTextStyle(seriesOpt, 'detail');\n } else if (seriesOpt.type === 'treemap') {\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n zrUtil.each(seriesOpt.levels, function (opt) {\n removeEC3NormalStatus(opt);\n });\n } else if (seriesOpt.type === 'tree') {\n removeEC3NormalStatus(seriesOpt.leaves);\n }\n}\n\nfunction toArr(o) {\n return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n each(toArr(option.series), function (seriesOpt) {\n isObject(seriesOpt) && processSeries(seriesOpt);\n });\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n each(axes, function (axisName) {\n each(toArr(option[axisName]), function (axisOpt) {\n if (axisOpt) {\n compatTextStyle(axisOpt, 'axisLabel');\n compatTextStyle(axisOpt.axisPointer, 'label');\n }\n });\n });\n each(toArr(option.parallel), function (parallelOpt) {\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n compatTextStyle(parallelAxisDefault, 'axisLabel');\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n });\n each(toArr(option.calendar), function (calendarOpt) {\n convertNormalEmphasis(calendarOpt, 'itemStyle');\n compatTextStyle(calendarOpt, 'dayLabel');\n compatTextStyle(calendarOpt, 'monthLabel');\n compatTextStyle(calendarOpt, 'yearLabel');\n });\n each(toArr(option.radar), function (radarOpt) {\n compatTextStyle(radarOpt, 'name');\n\n if (radarOpt.name && radarOpt.axisName == null) {\n radarOpt.axisName = radarOpt.name;\n delete radarOpt.name;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('name property in radar component has been changed to axisName');\n }\n }\n\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n radarOpt.axisNameGap = radarOpt.nameGap;\n delete radarOpt.nameGap;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n }\n }\n });\n each(toArr(option.geo), function (geoOpt) {\n if (isObject(geoOpt)) {\n compatEC3CommonStyles(geoOpt);\n each(toArr(geoOpt.regions), function (regionObj) {\n compatEC3CommonStyles(regionObj);\n });\n }\n });\n each(toArr(option.timeline), function (timelineOpt) {\n compatEC3CommonStyles(timelineOpt);\n convertNormalEmphasis(timelineOpt, 'label');\n convertNormalEmphasis(timelineOpt, 'itemStyle');\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n var data = timelineOpt.data;\n zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n if (zrUtil.isObject(item)) {\n convertNormalEmphasis(item, 'label');\n convertNormalEmphasis(item, 'itemStyle');\n }\n });\n });\n each(toArr(option.toolbox), function (toolboxOpt) {\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\n each(toolboxOpt.feature, function (featureOpt) {\n convertNormalEmphasis(featureOpt, 'iconStyle');\n });\n });\n compatTextStyle(toObj(option.axisPointer), 'label');\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util';\nimport compatStyle from './helper/compatStyle';\nimport { normalizeToArray } from '../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log';\n\nfunction get(opt, path) {\n var pathArr = path.split(',');\n var obj = opt;\n\n for (var i = 0; i < pathArr.length; i++) {\n obj = obj && obj[pathArr[i]];\n\n if (obj == null) {\n break;\n }\n }\n\n return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n var pathArr = path.split(',');\n var obj = opt;\n var key;\n var i = 0;\n\n for (; i < pathArr.length - 1; i++) {\n key = pathArr[i];\n\n if (obj[key] == null) {\n obj[key] = {};\n }\n\n obj = obj[key];\n }\n\n if (overwrite || obj[pathArr[i]] == null) {\n obj[pathArr[i]] = val;\n }\n}\n\nfunction compatLayoutProperties(option) {\n option && each(LAYOUT_PROPERTIES, function (prop) {\n if (prop[0] in option && !(prop[1] in option)) {\n option[prop[1]] = option[prop[0]];\n }\n });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n var itemStyle = option && option.itemStyle;\n\n if (itemStyle) {\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\n var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n if (itemStyle[oldName] != null) {\n itemStyle[newName] = itemStyle[oldName];\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(oldName, newName);\n }\n }\n }\n }\n}\n\nfunction compatPieLabel(option) {\n if (!option) {\n return;\n }\n\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n }\n\n option.edgeDistance = option.margin;\n }\n}\n\nfunction compatSunburstState(option) {\n if (!option) {\n return;\n }\n\n if (option.downplay && !option.blur) {\n option.blur = option.downplay;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\n }\n }\n}\n\nfunction compatGraphFocus(option) {\n if (!option) {\n return;\n }\n\n if (option.focusNodeAdjacency != null) {\n option.emphasis = option.emphasis || {};\n\n if (option.emphasis.focus == null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n }\n\n option.emphasis.focus = 'adjacency';\n }\n }\n}\n\nfunction traverseTree(data, cb) {\n if (data) {\n for (var i = 0; i < data.length; i++) {\n cb(data[i]);\n data[i] && traverseTree(data[i].children, cb);\n }\n }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n compatStyle(option, isTheme);\n option.series = normalizeToArray(option.series);\n each(option.series, function (seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n var seriesType = seriesOpt.type;\n\n if (seriesType === 'line') {\n if (seriesOpt.clipOverflow != null) {\n seriesOpt.clip = seriesOpt.clipOverflow;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\n }\n }\n } else if (seriesType === 'pie' || seriesType === 'gauge') {\n if (seriesOpt.clockWise != null) {\n seriesOpt.clockwise = seriesOpt.clockWise;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('clockWise', 'clockwise');\n }\n }\n\n compatPieLabel(seriesOpt.label);\n var data = seriesOpt.data;\n\n if (data && !isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n compatPieLabel(data[i]);\n }\n }\n\n if (seriesOpt.hoverOffset != null) {\n seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n if (seriesOpt.emphasis.scaleSize = null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n }\n\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n }\n }\n } else if (seriesType === 'gauge') {\n var pointerColor = get(seriesOpt, 'pointer.color');\n pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n } else if (seriesType === 'bar') {\n compatBarItemStyle(seriesOpt);\n compatBarItemStyle(seriesOpt.backgroundStyle);\n compatBarItemStyle(seriesOpt.emphasis);\n var data = seriesOpt.data;\n\n if (data && !isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n if (typeof data[i] === 'object') {\n compatBarItemStyle(data[i]);\n compatBarItemStyle(data[i] && data[i].emphasis);\n }\n }\n }\n } else if (seriesType === 'sunburst') {\n var highlightPolicy = seriesOpt.highlightPolicy;\n\n if (highlightPolicy) {\n seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n if (!seriesOpt.emphasis.focus) {\n seriesOpt.emphasis.focus = highlightPolicy;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n }\n }\n }\n\n compatSunburstState(seriesOpt);\n traverseTree(seriesOpt.data, compatSunburstState);\n } else if (seriesType === 'graph' || seriesType === 'sankey') {\n compatGraphFocus(seriesOpt);\n } else if (seriesType === 'map') {\n if (seriesOpt.mapType && !seriesOpt.map) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('mapType', 'map', 'map');\n }\n\n seriesOpt.map = seriesOpt.mapType;\n }\n\n if (seriesOpt.mapLocation) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('`mapLocation` is not used anymore.');\n }\n\n defaults(seriesOpt, seriesOpt.mapLocation);\n }\n }\n\n if (seriesOpt.hoverAnimation != null) {\n seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n }\n\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n }\n }\n\n compatLayoutProperties(seriesOpt);\n });\n\n if (option.dataRange) {\n option.visualMap = option.dataRange;\n }\n\n each(COMPATITABLE_COMPONENTS, function (componentName) {\n var options = option[componentName];\n\n if (options) {\n if (!isArray(options)) {\n options = [options];\n }\n\n each(options, function (option) {\n compatLayoutProperties(option);\n });\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nexport default function dataStack(ecModel) {\n var stackInfoMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var stack = seriesModel.get('stack');\n\n if (stack) {\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n var data = seriesModel.getData();\n var stackInfo = {\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n stackedDimension: data.getCalculationInfo('stackedDimension'),\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n data: data,\n seriesModel: seriesModel\n };\n\n if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n return;\n }\n\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n stackInfoList.push(stackInfo);\n }\n });\n stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n each(stackInfoList, function (targetStackInfo, idxInStack) {\n var resultVal = [];\n var resultNaN = [NaN, NaN];\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n var targetData = targetStackInfo.data;\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\n\n if (isNaN(sum)) {\n return resultNaN;\n }\n\n var byValue;\n var stackedDataRawIndex;\n\n if (isStackedByIndex) {\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n } else {\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n }\n\n var stackedOver = NaN;\n\n for (var j = idxInStack - 1; j >= 0; j--) {\n var stackInfo = stackInfoList[j];\n\n if (!isStackedByIndex) {\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n }\n\n if (stackedDataRawIndex >= 0) {\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\n\n if (sum >= 0 && val > 0 || sum <= 0 && val < 0) {\n sum += val;\n stackedOver = val;\n break;\n }\n }\n }\n\n resultVal[0] = sum;\n resultVal[1] = stackedOver;\n return resultVal;\n });\n targetData.hostModel.setData(newData);\n targetStackInfo.data = newData;\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types';\nimport { getDataItemValue } from '../util/model';\n;\n\nvar SourceImpl = function () {\n function SourceImpl(fields) {\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n this.startIndex = fields.startIndex || 0;\n this.dimensionsDefine = fields.dimensionsDefine;\n this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n this.encodeDefine = fields.encodeDefine;\n this.metaRawOption = fields.metaRawOption;\n }\n\n return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n return val instanceof SourceImpl;\n}\nexport function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n var source = new SourceImpl({\n data: sourceData,\n sourceFormat: sourceFormat,\n seriesLayoutBy: seriesLayoutBy,\n dimensionsDefine: determined.dimensionsDefine,\n startIndex: determined.startIndex,\n dimensionsDetectedCount: determined.dimensionsDetectedCount,\n encodeDefine: makeEncodeDefine(encodeDefine),\n metaRawOption: clone(thisMetaRawOption)\n });\n return source;\n}\nexport function createSourceFromSeriesDataOption(data) {\n return new SourceImpl({\n data: data,\n sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n });\n}\nexport function cloneSourceShallow(source) {\n return new SourceImpl({\n data: source.data,\n sourceFormat: source.sourceFormat,\n seriesLayoutBy: source.seriesLayoutBy,\n dimensionsDefine: clone(source.dimensionsDefine),\n startIndex: source.startIndex,\n dimensionsDetectedCount: source.dimensionsDetectedCount,\n encodeDefine: makeEncodeDefine(source.encodeDefine)\n });\n}\n\nfunction makeEncodeDefine(encodeDefine) {\n return encodeDefine ? createHashMap(encodeDefine) : null;\n}\n\nexport function detectSourceFormat(data) {\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n if (isTypedArray(data)) {\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n } else if (isArray(data)) {\n if (data.length === 0) {\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n }\n\n for (var i = 0, len = data.length; i < len; i++) {\n var item = data[i];\n\n if (item == null) {\n continue;\n } else if (isArray(item)) {\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n break;\n } else if (isObject(item)) {\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n break;\n }\n }\n } else if (isObject(data)) {\n for (var key in data) {\n if (hasOwn(data, key) && isArrayLike(data[key])) {\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n break;\n }\n }\n }\n\n return sourceFormat;\n}\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n var dimensionsDetectedCount;\n var startIndex;\n\n if (!data) {\n return {\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n startIndex: startIndex,\n dimensionsDetectedCount: dimensionsDetectedCount\n };\n }\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n var dataArrayRows = data;\n\n if (sourceHeader === 'auto' || sourceHeader == null) {\n arrayRowsTravelFirst(function (val) {\n if (val != null && val !== '-') {\n if (isString(val)) {\n startIndex == null && (startIndex = 1);\n } else {\n startIndex = 0;\n }\n }\n }, seriesLayoutBy, dataArrayRows, 10);\n } else {\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n }\n\n if (!dimensionsDefine && startIndex === 1) {\n dimensionsDefine = [];\n arrayRowsTravelFirst(function (val, index) {\n dimensionsDefine[index] = val != null ? val + '' : '';\n }, seriesLayoutBy, dataArrayRows, Infinity);\n }\n\n dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n if (!dimensionsDefine) {\n dimensionsDefine = objectRowsCollectDimensions(data);\n }\n } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n if (!dimensionsDefine) {\n dimensionsDefine = [];\n each(data, function (colArr, key) {\n dimensionsDefine.push(key);\n });\n }\n } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var value0 = getDataItemValue(data[0]);\n dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n }\n }\n\n return {\n startIndex: startIndex,\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n dimensionsDetectedCount: dimensionsDetectedCount\n };\n}\n\nfunction objectRowsCollectDimensions(data) {\n var firstIndex = 0;\n var obj;\n\n while (firstIndex < data.length && !(obj = data[firstIndex++])) {}\n\n if (obj) {\n var dimensions_1 = [];\n each(obj, function (value, key) {\n dimensions_1.push(key);\n });\n return dimensions_1;\n }\n}\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n if (!dimensionsDefine) {\n return;\n }\n\n var nameMap = createHashMap();\n return map(dimensionsDefine, function (rawItem, index) {\n rawItem = isObject(rawItem) ? rawItem : {\n name: rawItem\n };\n var item = {\n name: rawItem.name,\n displayName: rawItem.displayName,\n type: rawItem.type\n };\n\n if (item.name == null) {\n return item;\n }\n\n item.name += '';\n\n if (item.displayName == null) {\n item.displayName = item.name;\n }\n\n var exist = nameMap.get(item.name);\n\n if (!exist) {\n nameMap.set(item.name, {\n count: 1\n });\n } else {\n item.name += '-' + exist.count++;\n }\n\n return item;\n });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n for (var i = 0; i < data.length && i < maxLoop; i++) {\n cb(data[i] ? data[i][0] : null, i);\n }\n } else {\n var value0 = data[0] || [];\n\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\n cb(value0[i], i);\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar _a, _b, _c;\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util';\nimport { getDataItemValue } from '../../util/model';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types';\nvar providerMethods;\nvar mountMethods;\n\nvar DefaultDataProvider = function () {\n function DefaultDataProvider(sourceParam, dimSize) {\n var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam;\n this._source = source;\n var data = this._data = source.data;\n\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n if (process.env.NODE_ENV !== 'production') {\n if (dimSize == null) {\n throw new Error('Typed array data must specify dimension size');\n }\n }\n\n this._offset = 0;\n this._dimSize = dimSize;\n this._data = data;\n }\n\n mountMethods(this, data, source);\n }\n\n DefaultDataProvider.prototype.getSource = function () {\n return this._source;\n };\n\n DefaultDataProvider.prototype.count = function () {\n return 0;\n };\n\n DefaultDataProvider.prototype.getItem = function (idx, out) {\n return;\n };\n\n DefaultDataProvider.prototype.appendData = function (newData) {};\n\n DefaultDataProvider.prototype.clean = function () {};\n\n DefaultDataProvider.protoInitialize = function () {\n var proto = DefaultDataProvider.prototype;\n proto.pure = false;\n proto.persistent = true;\n }();\n\n DefaultDataProvider.internalField = function () {\n var _a;\n\n mountMethods = function (provider, data, source) {\n var sourceFormat = source.sourceFormat;\n var seriesLayoutBy = source.seriesLayoutBy;\n var startIndex = source.startIndex;\n var dimsDef = source.dimensionsDefine;\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n }\n\n extend(provider, methods);\n\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n provider.getItem = getItemForTypedArray;\n provider.count = countForTypedArray;\n provider.fillStorage = fillStorageForTypedArray;\n } else {\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n }\n };\n\n var getItemForTypedArray = function (idx, out) {\n idx = idx - this._offset;\n out = out || [];\n var data = this._data;\n var dimSize = this._dimSize;\n var offset = dimSize * idx;\n\n for (var i = 0; i < dimSize; i++) {\n out[i] = data[offset + i];\n }\n\n return out;\n };\n\n var fillStorageForTypedArray = function (start, end, storage, extent) {\n var data = this._data;\n var dimSize = this._dimSize;\n\n for (var dim = 0; dim < dimSize; dim++) {\n var dimExtent = extent[dim];\n var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n var count = end - start;\n var arr = storage[dim];\n\n for (var i = 0; i < count; i++) {\n var val = data[i * dimSize + dim];\n arr[start + i] = val;\n val < min && (min = val);\n val > max && (max = val);\n }\n\n dimExtent[0] = min;\n dimExtent[1] = max;\n }\n };\n\n var countForTypedArray = function () {\n return this._data ? this._data.length / this._dimSize : 0;\n };\n\n providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n pure: true,\n appendData: appendDataSimply\n }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n pure: true,\n appendData: function () {\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n }\n }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n pure: true,\n appendData: appendDataSimply\n }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n pure: true,\n appendData: function (newData) {\n var data = this._data;\n each(newData, function (newCol, key) {\n var oldCol = data[key] || (data[key] = []);\n\n for (var i = 0; i < (newCol || []).length; i++) {\n oldCol.push(newCol[i]);\n }\n });\n }\n }, _a[SOURCE_FORMAT_ORIGINAL] = {\n appendData: appendDataSimply\n }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n persistent: false,\n pure: true,\n appendData: function (newData) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n }\n\n this._data = newData;\n },\n clean: function () {\n this._offset += this.count();\n this._data = null;\n }\n }, _a);\n\n function appendDataSimply(newData) {\n for (var i = 0; i < newData.length; i++) {\n this._data.push(newData[i]);\n }\n }\n }();\n\n return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\n idx += startIndex;\n var item = [];\n var data = rawData;\n\n for (var i = 0; i < data.length; i++) {\n var row = data[i];\n item.push(row ? row[idx] : null);\n }\n\n return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\n var item = [];\n\n for (var i = 0; i < dimsDef.length; i++) {\n var dimName = dimsDef[i].name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (dimName == null) {\n throw new Error();\n }\n }\n\n var col = rawData[dimName];\n item.push(col ? col[idx] : null);\n }\n\n return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n }\n\n return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n var row = rawData[0];\n return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n var dimName = dimsDef[0].name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (dimName == null) {\n throw new Error();\n }\n }\n\n var col = rawData[dimName];\n return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n }\n\n return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, dimName) {\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\n return dimIndex != null ? dataItem[dimName] : dataItem;\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\n var value = getDataItemValue(dataItem);\n return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n var method = rawSourceValueGetterMap[sourceFormat];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\n }\n\n return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n}\n\nexport function retrieveRawValue(data, dataIndex, dim) {\n if (!data) {\n return;\n }\n\n var dataItem = data.getRawDataItem(dataIndex);\n\n if (dataItem == null) {\n return;\n }\n\n var sourceFormat = data.getProvider().getSource().sourceFormat;\n var dimName;\n var dimIndex;\n var dimInfo = data.getDimensionInfo(dim);\n\n if (dimInfo) {\n dimName = dimInfo.name;\n dimIndex = dimInfo.index;\n }\n\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\n}\nexport function retrieveRawAttr(data, dataIndex, attr) {\n if (!data) {\n return;\n }\n\n var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n return;\n }\n\n var dataItem = data.getRawDataItem(dataIndex);\n\n if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n dataItem = null;\n }\n\n if (dataItem) {\n return dataItem[attr];\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { formatTpl } from '../../util/format';\nimport { makePrintable } from '../../util/log';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin = function () {\n function DataFormatMixin() {}\n\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n var data = this.getData(dataType);\n var rawValue = this.getRawValue(dataIndex, dataType);\n var rawDataIndex = data.getRawIndex(dataIndex);\n var name = data.getName(dataIndex);\n var itemOpt = data.getRawDataItem(dataIndex);\n var style = data.getItemVisual(dataIndex, 'style');\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n var borderColor = style && style.stroke;\n var mainType = this.mainType;\n var isSeries = mainType === 'series';\n var userOutput = data.userOutput;\n return {\n componentType: mainType,\n componentSubType: this.subType,\n componentIndex: this.componentIndex,\n seriesType: isSeries ? this.subType : null,\n seriesIndex: this.seriesIndex,\n seriesId: isSeries ? this.id : null,\n seriesName: isSeries ? this.name : null,\n name: name,\n dataIndex: rawDataIndex,\n data: itemOpt,\n dataType: dataType,\n value: rawValue,\n color: color,\n borderColor: borderColor,\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\n encode: userOutput ? userOutput.encode : null,\n $vars: ['seriesName', 'name', 'value']\n };\n };\n\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n status = status || 'normal';\n var data = this.getData(dataType);\n var params = this.getDataParams(dataIndex, dataType);\n\n if (extendParams) {\n params.value = extendParams.interpolatedValue;\n }\n\n if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n params.value = params.value[labelDimIndex];\n }\n\n if (!formatter) {\n var itemModel = data.getItemModel(dataIndex);\n formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n }\n\n if (typeof formatter === 'function') {\n params.status = status;\n params.dimensionIndex = labelDimIndex;\n return formatter(params);\n } else if (typeof formatter === 'string') {\n var str = formatTpl(formatter, params);\n return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n var len = dimStr.length;\n var dimLoose = dimStr.charAt(0) === '[' && dimStr.charAt(len - 1) === ']' ? +dimStr.slice(1, len - 1) : dimStr;\n var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n var dimInfo = data.getDimensionInfo(dimLoose);\n\n if (dimInfo) {\n val = extendParams.interpolatedValue[dimInfo.index];\n }\n }\n\n return val != null ? val + '' : '';\n });\n }\n };\n\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n return retrieveRawValue(this.getData(dataType), idx);\n };\n\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n return;\n };\n\n return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n;\nexport function normalizeTooltipFormatResult(result) {\n var markupText;\n var markupFragment;\n\n if (zrUtil.isObject(result)) {\n if (result.type) {\n markupFragment = result;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n }\n }\n } else {\n markupText = result;\n }\n\n return {\n markupText: markupText,\n markupFragment: markupFragment\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray } from 'zrender/lib/core/util';\n;\nexport function createTask(define) {\n return new Task(define);\n}\n\nvar Task = function () {\n function Task(define) {\n define = define || {};\n this._reset = define.reset;\n this._plan = define.plan;\n this._count = define.count;\n this._onDirty = define.onDirty;\n this._dirty = true;\n }\n\n Task.prototype.perform = function (performArgs) {\n var upTask = this._upstream;\n var skip = performArgs && performArgs.skip;\n\n if (this._dirty && upTask) {\n var context = this.context;\n context.data = context.outputData = upTask.context.outputData;\n }\n\n if (this.__pipeline) {\n this.__pipeline.currentTask = this;\n }\n\n var planResult;\n\n if (this._plan && !skip) {\n planResult = this._plan(this.context);\n }\n\n var lastModBy = normalizeModBy(this._modBy);\n var lastModDataCount = this._modDataCount || 0;\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\n var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n planResult = 'reset';\n }\n\n function normalizeModBy(val) {\n !(val >= 1) && (val = 1);\n return val;\n }\n\n var forceFirstProgress;\n\n if (this._dirty || planResult === 'reset') {\n this._dirty = false;\n forceFirstProgress = this._doReset(skip);\n }\n\n this._modBy = modBy;\n this._modDataCount = modDataCount;\n var step = performArgs && performArgs.step;\n\n if (upTask) {\n if (process.env.NODE_ENV !== 'production') {\n assert(upTask._outputDueEnd != null);\n }\n\n this._dueEnd = upTask._outputDueEnd;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this._progress || this._count);\n }\n\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\n }\n\n if (this._progress) {\n var start = this._dueIndex;\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n if (!skip && (forceFirstProgress || start < end)) {\n var progress = this._progress;\n\n if (isArray(progress)) {\n for (var i = 0; i < progress.length; i++) {\n this._doProgress(progress[i], start, end, modBy, modDataCount);\n }\n } else {\n this._doProgress(progress, start, end, modBy, modDataCount);\n }\n }\n\n this._dueIndex = end;\n var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n if (process.env.NODE_ENV !== 'production') {\n assert(outputDueEnd >= this._outputDueEnd);\n }\n\n this._outputDueEnd = outputDueEnd;\n } else {\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n }\n\n return this.unfinished();\n };\n\n Task.prototype.dirty = function () {\n this._dirty = true;\n this._onDirty && this._onDirty(this.context);\n };\n\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n iterator.reset(start, end, modBy, modDataCount);\n this._callingProgress = progress;\n\n this._callingProgress({\n start: start,\n end: end,\n count: end - start,\n next: iterator.next\n }, this.context);\n };\n\n Task.prototype._doReset = function (skip) {\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n this._settedOutputEnd = null;\n var progress;\n var forceFirstProgress;\n\n if (!skip && this._reset) {\n progress = this._reset(this.context);\n\n if (progress && progress.progress) {\n forceFirstProgress = progress.forceFirstProgress;\n progress = progress.progress;\n }\n\n if (isArray(progress) && !progress.length) {\n progress = null;\n }\n }\n\n this._progress = progress;\n this._modBy = this._modDataCount = null;\n var downstream = this._downstream;\n downstream && downstream.dirty();\n return forceFirstProgress;\n };\n\n Task.prototype.unfinished = function () {\n return this._progress && this._dueIndex < this._dueEnd;\n };\n\n Task.prototype.pipe = function (downTask) {\n if (process.env.NODE_ENV !== 'production') {\n assert(downTask && !downTask._disposed && downTask !== this);\n }\n\n if (this._downstream !== downTask || this._dirty) {\n this._downstream = downTask;\n downTask._upstream = this;\n downTask.dirty();\n }\n };\n\n Task.prototype.dispose = function () {\n if (this._disposed) {\n return;\n }\n\n this._upstream && (this._upstream._downstream = null);\n this._downstream && (this._downstream._upstream = null);\n this._dirty = false;\n this._disposed = true;\n };\n\n Task.prototype.getUpstream = function () {\n return this._upstream;\n };\n\n Task.prototype.getDownstream = function () {\n return this._downstream;\n };\n\n Task.prototype.setOutputEnd = function (end) {\n this._outputDueEnd = this._settedOutputEnd = end;\n };\n\n return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n var end;\n var current;\n var modBy;\n var modDataCount;\n var winCount;\n var it = {\n reset: function (s, e, sStep, sCount) {\n current = s;\n end = e;\n modBy = sStep;\n modDataCount = sCount;\n winCount = Math.ceil(modDataCount / modBy);\n it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n }\n };\n return it;\n\n function sequentialNext() {\n return current < end ? current++ : null;\n }\n\n function modNext() {\n var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current;\n current++;\n return result;\n }\n}();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseDate, numericToNumber } from '../../util/number';\nimport { createHashMap, trim, hasOwn } from 'zrender/lib/core/util';\nimport { throwError } from '../../util/log';\nexport function parseDataValue(value, opt) {\n var dimType = opt && opt.type;\n\n if (dimType === 'ordinal') {\n var ordinalMeta = opt && opt.ordinalMeta;\n return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n }\n\n if (dimType === 'time' && typeof value !== 'number' && value != null && value !== '-') {\n value = +parseDate(value);\n }\n\n return value == null || value === '' ? NaN : +value;\n}\n;\nvar valueParserMap = createHashMap({\n 'number': function (val) {\n return parseFloat(val);\n },\n 'time': function (val) {\n return +parseDate(val);\n },\n 'trim': function (val) {\n return typeof val === 'string' ? trim(val) : val;\n }\n});\nexport function getRawValueParser(type) {\n return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n lt: function (lval, rval) {\n return lval < rval;\n },\n lte: function (lval, rval) {\n return lval <= rval;\n },\n gt: function (lval, rval) {\n return lval > rval;\n },\n gte: function (lval, rval) {\n return lval >= rval;\n }\n};\n\nvar FilterOrderComparator = function () {\n function FilterOrderComparator(op, rval) {\n if (typeof rval !== 'number') {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n }\n\n throwError(errMsg);\n }\n\n this._opFn = ORDER_COMPARISON_OP_MAP[op];\n this._rvalFloat = numericToNumber(rval);\n }\n\n FilterOrderComparator.prototype.evaluate = function (lval) {\n return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n };\n\n return FilterOrderComparator;\n}();\n\nvar SortOrderComparator = function () {\n function SortOrderComparator(order, incomparable) {\n var isDesc = order === 'desc';\n this._resultLT = isDesc ? 1 : -1;\n\n if (incomparable == null) {\n incomparable = isDesc ? 'min' : 'max';\n }\n\n this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n }\n\n SortOrderComparator.prototype.evaluate = function (lval, rval) {\n var lvalTypeof = typeof lval;\n var rvalTypeof = typeof rval;\n var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\n var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\n var lvalNotNumeric = isNaN(lvalFloat);\n var rvalNotNumeric = isNaN(rvalFloat);\n\n if (lvalNotNumeric) {\n lvalFloat = this._incomparable;\n }\n\n if (rvalNotNumeric) {\n rvalFloat = this._incomparable;\n }\n\n if (lvalNotNumeric && rvalNotNumeric) {\n var lvalIsStr = lvalTypeof === 'string';\n var rvalIsStr = rvalTypeof === 'string';\n\n if (lvalIsStr) {\n lvalFloat = rvalIsStr ? lval : 0;\n }\n\n if (rvalIsStr) {\n rvalFloat = lvalIsStr ? rval : 0;\n }\n }\n\n return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n };\n\n return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator = function () {\n function FilterEqualityComparator(isEq, rval) {\n this._rval = rval;\n this._isEQ = isEq;\n this._rvalTypeof = typeof rval;\n this._rvalFloat = numericToNumber(rval);\n }\n\n FilterEqualityComparator.prototype.evaluate = function (lval) {\n var eqResult = lval === this._rval;\n\n if (!eqResult) {\n var lvalTypeof = typeof lval;\n\n if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n eqResult = numericToNumber(lval) === this._rvalFloat;\n }\n }\n\n return this._isEQ ? eqResult : !eqResult;\n };\n\n return FilterEqualityComparator;\n}();\n\nexport function createFilterComparator(op, rval) {\n return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nimport { normalizeToArray } from '../../util/model';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend } from 'zrender/lib/core/util';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider';\nimport { parseDataValue } from './dataValueHelper';\nimport { consoleLog, makePrintable, throwError } from '../../util/log';\nimport { createSource, detectSourceFormat } from '../Source';\n\nvar ExternalSource = function () {\n function ExternalSource() {}\n\n ExternalSource.prototype.getRawData = function () {\n throw new Error('not supported');\n };\n\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n throw new Error('not supported');\n };\n\n ExternalSource.prototype.cloneRawData = function () {\n return;\n };\n\n ExternalSource.prototype.getDimensionInfo = function (dim) {\n return;\n };\n\n ExternalSource.prototype.cloneAllDimensionInfo = function () {\n return;\n };\n\n ExternalSource.prototype.count = function () {\n return;\n };\n\n ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n return;\n };\n\n ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n return;\n };\n\n ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n return parseDataValue(rawVal, dimInfo);\n };\n\n return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n var extSource = new ExternalSource();\n var data = internalSource.data;\n var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n var sourceHeaderCount = internalSource.startIndex;\n var errMsg = '';\n\n if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n }\n\n throwError(errMsg);\n }\n\n var dimensions = [];\n var dimsByName = {};\n var dimsDef = internalSource.dimensionsDefine;\n\n if (dimsDef) {\n each(dimsDef, function (dimDef, idx) {\n var name = dimDef.name;\n var dimDefExt = {\n index: idx,\n name: name,\n displayName: dimDef.displayName\n };\n dimensions.push(dimDefExt);\n\n if (name != null) {\n var errMsg_1 = '';\n\n if (hasOwn(dimsByName, name)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n }\n\n throwError(errMsg_1);\n }\n\n dimsByName[name] = dimDefExt;\n }\n });\n } else {\n for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n dimensions.push({\n index: i\n });\n }\n }\n\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n if (externalTransform.__isBuiltIn) {\n extSource.getRawDataItem = function (dataIndex) {\n return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n };\n\n extSource.getRawData = bind(getRawData, null, internalSource);\n }\n\n extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n extSource.retrieveValue = function (dataIndex, dimIndex) {\n var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n return retrieveValueFromItem(rawItem, dimIndex);\n };\n\n var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n if (dataItem == null) {\n return;\n }\n\n var dimDef = dimensions[dimIndex];\n\n if (dimDef) {\n return rawValueGetter(dataItem, dimIndex, dimDef.name);\n }\n };\n\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n return extSource;\n}\n\nfunction getRawData(upstream) {\n var sourceFormat = upstream.sourceFormat;\n\n if (!isSupportedSourceFormat(sourceFormat)) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n }\n\n throwError(errMsg);\n }\n\n return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n var sourceFormat = upstream.sourceFormat;\n var data = upstream.data;\n\n if (!isSupportedSourceFormat(sourceFormat)) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n }\n\n throwError(errMsg);\n }\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n var result = [];\n\n for (var i = 0, len = data.length; i < len; i++) {\n result.push(data[i].slice());\n }\n\n return result;\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n var result = [];\n\n for (var i = 0, len = data.length; i < len; i++) {\n result.push(extend({}, data[i]));\n }\n\n return result;\n }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n if (dim == null) {\n return;\n }\n\n if (typeof dim === 'number' || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n return dimensions[dim];\n } else if (hasOwn(dimsByName, dim)) {\n return dimsByName[dim];\n }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n externalTransform = clone(externalTransform);\n var type = externalTransform.type;\n var errMsg = '';\n\n if (!type) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Must have a `type` when `registerTransform`.';\n }\n\n throwError(errMsg);\n }\n\n var typeParsed = type.split(':');\n\n if (typeParsed.length !== 2) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Name must include namespace like \"ns:regression\".';\n }\n\n throwError(errMsg);\n }\n\n var isBuiltIn = false;\n\n if (typeParsed[0] === 'echarts') {\n type = typeParsed[1];\n isBuiltIn = true;\n }\n\n externalTransform.__isBuiltIn = isBuiltIn;\n externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n var pipedTransOption = normalizeToArray(rawTransOption);\n var pipeLen = pipedTransOption.length;\n var errMsg = '';\n\n if (!pipeLen) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'If `transform` declared, it should at least contain one transform.';\n }\n\n throwError(errMsg);\n }\n\n for (var i = 0, len = pipeLen; i < len; i++) {\n var transOption = pipedTransOption[i];\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\n\n if (i !== len - 1) {\n sourceList.length = Math.max(sourceList.length, 1);\n }\n }\n\n return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\n var errMsg = '';\n\n if (!upSourceList.length) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Must have at least one upstream dataset.';\n }\n\n throwError(errMsg);\n }\n\n if (!isObject(transOption)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n }\n\n throwError(errMsg);\n }\n\n var transType = transOption.type;\n var externalTransform = externalTransformMap.get(transType);\n\n if (!externalTransform) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Can not find transform on type \"' + transType + '\".';\n }\n\n throwError(errMsg);\n }\n\n var extUpSourceList = map(upSourceList, function (upSource) {\n return createExternalSource(upSource, externalTransform);\n });\n var resultList = normalizeToArray(externalTransform.transform({\n upstream: extUpSourceList[0],\n upstreamList: extUpSourceList,\n config: clone(transOption.config)\n }));\n\n if (process.env.NODE_ENV !== 'production') {\n if (transOption.print) {\n var printStrArr = map(resultList, function (extSource) {\n var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n }).join('\\n');\n consoleLog(printStrArr);\n }\n }\n\n return map(resultList, function (result, resultIndex) {\n var errMsg = '';\n\n if (!isObject(result)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'A transform should not return some empty results.';\n }\n\n throwError(errMsg);\n }\n\n if (!result.data) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Transform result data should be not be null or undefined';\n }\n\n throwError(errMsg);\n }\n\n var sourceFormat = detectSourceFormat(result.data);\n\n if (!isSupportedSourceFormat(sourceFormat)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Transform result data should be array rows or object rows.';\n }\n\n throwError(errMsg);\n }\n\n var resultMetaRawOption;\n var firstUpSource = upSourceList[0];\n\n if (firstUpSource && resultIndex === 0 && !result.dimensions) {\n var startIndex = firstUpSource.startIndex;\n\n if (startIndex) {\n result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n }\n\n resultMetaRawOption = {\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n sourceHeader: startIndex,\n dimensions: firstUpSource.metaRawOption.dimensions\n };\n } else {\n resultMetaRawOption = {\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n sourceHeader: 0,\n dimensions: result.dimensions\n };\n }\n\n return createSource(result.data, resultMetaRawOption, null, null);\n });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util';\nimport { createSource, cloneSourceShallow } from '../Source';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper';\nimport { applyDataTransform } from './transform';\n\nvar SourceManager = function () {\n function SourceManager(sourceHost) {\n this._sourceList = [];\n this._upstreamSignList = [];\n this._versionSignBase = 0;\n this._sourceHost = sourceHost;\n }\n\n SourceManager.prototype.dirty = function () {\n this._setLocalSource([], []);\n };\n\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n this._sourceList = sourceList;\n this._upstreamSignList = upstreamSignList;\n this._versionSignBase++;\n\n if (this._versionSignBase > 9e10) {\n this._versionSignBase = 0;\n }\n };\n\n SourceManager.prototype._getVersionSign = function () {\n return this._sourceHost.uid + '_' + this._versionSignBase;\n };\n\n SourceManager.prototype.prepareSource = function () {\n if (this._isDirty()) {\n this._createSource();\n }\n };\n\n SourceManager.prototype._createSource = function () {\n this._setLocalSource([], []);\n\n var sourceHost = this._sourceHost;\n\n var upSourceMgrList = this._getUpstreamSourceManagers();\n\n var hasUpstream = !!upSourceMgrList.length;\n var resultSourceList;\n var upstreamSignList;\n\n if (isSeries(sourceHost)) {\n var seriesModel = sourceHost;\n var data = void 0;\n var sourceFormat = void 0;\n var upSource = void 0;\n\n if (hasUpstream) {\n var upSourceMgr = upSourceMgrList[0];\n upSourceMgr.prepareSource();\n upSource = upSourceMgr.getSource();\n data = upSource.data;\n sourceFormat = upSource.sourceFormat;\n upstreamSignList = [upSourceMgr._getVersionSign()];\n } else {\n data = seriesModel.get('data', true);\n sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n upstreamSignList = [];\n }\n\n var newMetaRawOption = this._getSourceMetaRawOption();\n\n var upMetaRawOption = upSource ? upSource.metaRawOption : null;\n var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption ? upMetaRawOption.seriesLayoutBy : null);\n var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption ? upMetaRawOption.sourceHeader : null);\n var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption ? upMetaRawOption.dimensions : null);\n resultSourceList = [createSource(data, {\n seriesLayoutBy: seriesLayoutBy,\n sourceHeader: sourceHeader,\n dimensions: dimensions\n }, sourceFormat, seriesModel.get('encode', true))];\n } else {\n var datasetModel = sourceHost;\n\n if (hasUpstream) {\n var result = this._applyTransform(upSourceMgrList);\n\n resultSourceList = result.sourceList;\n upstreamSignList = result.upstreamSignList;\n } else {\n var sourceData = datasetModel.get('source', true);\n resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\n upstreamSignList = [];\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(resultSourceList && upstreamSignList);\n }\n\n this._setLocalSource(resultSourceList, upstreamSignList);\n };\n\n SourceManager.prototype._applyTransform = function (upMgrList) {\n var datasetModel = this._sourceHost;\n var transformOption = datasetModel.get('transform', true);\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(fromTransformResult != null || transformOption != null);\n }\n\n if (fromTransformResult != null) {\n var errMsg = '';\n\n if (upMgrList.length !== 1) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n }\n\n doThrow(errMsg);\n }\n }\n\n var sourceList;\n var upSourceList = [];\n var upstreamSignList = [];\n each(upMgrList, function (upMgr) {\n upMgr.prepareSource();\n var upSource = upMgr.getSource(fromTransformResult || 0);\n var errMsg = '';\n\n if (fromTransformResult != null && !upSource) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n }\n\n doThrow(errMsg);\n }\n\n upSourceList.push(upSource);\n upstreamSignList.push(upMgr._getVersionSign());\n });\n\n if (transformOption) {\n sourceList = applyDataTransform(transformOption, upSourceList, {\n datasetIndex: datasetModel.componentIndex\n });\n } else if (fromTransformResult != null) {\n sourceList = [cloneSourceShallow(upSourceList[0])];\n }\n\n return {\n sourceList: sourceList,\n upstreamSignList: upstreamSignList\n };\n };\n\n SourceManager.prototype._isDirty = function () {\n var sourceList = this._sourceList;\n\n if (!sourceList.length) {\n return true;\n }\n\n var upSourceMgrList = this._getUpstreamSourceManagers();\n\n for (var i = 0; i < upSourceMgrList.length; i++) {\n var upSrcMgr = upSourceMgrList[i];\n\n if (upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n return true;\n }\n }\n };\n\n SourceManager.prototype.getSource = function (sourceIndex) {\n return this._sourceList[sourceIndex || 0];\n };\n\n SourceManager.prototype._getUpstreamSourceManagers = function () {\n var sourceHost = this._sourceHost;\n\n if (isSeries(sourceHost)) {\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\n } else {\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n return datasetModel.getSourceManager();\n });\n }\n };\n\n SourceManager.prototype._getSourceMetaRawOption = function () {\n var sourceHost = this._sourceHost;\n var seriesLayoutBy;\n var sourceHeader;\n var dimensions;\n\n if (isSeries(sourceHost)) {\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n sourceHeader = sourceHost.get('sourceHeader', true);\n dimensions = sourceHost.get('dimensions', true);\n } else if (!this._getUpstreamSourceManagers().length) {\n var model = sourceHost;\n seriesLayoutBy = model.get('seriesLayoutBy', true);\n sourceHeader = model.get('sourceHeader', true);\n dimensions = model.get('dimensions', true);\n }\n\n return {\n seriesLayoutBy: seriesLayoutBy,\n sourceHeader: sourceHeader,\n dimensions: dimensions\n };\n };\n\n return SourceManager;\n}();\n\nexport { SourceManager };\nexport function disableTransformOptionMerge(datasetModel) {\n var transformOption = datasetModel.option.transform;\n transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper';\nimport { getRandomIdBase } from '../../util/number';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n var nameFontColor = textStyle.color || '#6e7079';\n var nameFontSize = textStyle.fontSize || 12;\n var nameFontWeight = textStyle.fontWeight || '400';\n var valueFontColor = textStyle.color || '#464646';\n var valueFontSize = textStyle.fontSize || 14;\n var valueFontWeight = textStyle.fontWeight || '900';\n\n if (renderMode === 'html') {\n return {\n nameStyle: \"font-size:\" + nameFontSize + \"px;color:\" + nameFontColor + \";font-weight:\" + nameFontWeight,\n valueStyle: \"font-size:\" + valueFontSize + \"px;color:\" + valueFontColor + \";font-weight:\" + valueFontWeight\n };\n } else {\n return {\n nameStyle: {\n fontSize: nameFontSize,\n fill: nameFontColor,\n fontWeight: nameFontWeight\n },\n valueStyle: {\n fontSize: valueFontSize,\n fill: valueFontColor,\n fontWeight: valueFontWeight\n }\n };\n }\n}\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\nexport function createTooltipMarkup(type, option) {\n option.type = type;\n return option;\n}\n\nfunction getBuilder(fragment) {\n return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\n}\n\nvar builderMap = {\n section: {\n planLayout: function (fragment) {\n var subBlockLen = fragment.blocks.length;\n var thisBlockHasInnerGap = subBlockLen > 1 || subBlockLen > 0 && !fragment.noHeader;\n var thisGapLevelBetweenSubBlocks = 0;\n each(fragment.blocks, function (subBlock) {\n getBuilder(subBlock).planLayout(subBlock);\n var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\n\n if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\n thisGapLevelBetweenSubBlocks = subGapLevel + (thisBlockHasInnerGap && (!subGapLevel || subBlock.type === 'section' && !subBlock.noHeader) ? 1 : 0);\n }\n });\n fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\n },\n build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n var noHeader = fragment.noHeader;\n var gaps = getGap(fragment);\n var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html, toolTipTextStyle);\n\n if (noHeader) {\n return subMarkupText;\n }\n\n var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n if (ctx.renderMode === 'richText') {\n return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n } else {\n return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n }\n }\n },\n nameValue: {\n planLayout: function (fragment) {\n fragment.__gapLevelBetweenSubBlocks = 0;\n },\n build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n var renderMode = ctx.renderMode;\n var noName = fragment.noName;\n var noValue = fragment.noValue;\n var noMarker = !fragment.markerType;\n var name = fragment.name;\n var value = fragment.value;\n var useUTC = ctx.useUTC;\n\n if (noName && noValue) {\n return;\n }\n\n var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n var valueTypeOption = fragment.valueType;\n var readableValueList = noValue ? [] : isArray(value) ? map(value, function (val, idx) {\n return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n }) : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)];\n var valueAlignRight = !noMarker || !noName;\n var valueCloseToMarker = !noMarker && noName;\n\n var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n nameStyle = _a.nameStyle,\n valueStyle = _a.valueStyle;\n\n return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n }\n }\n};\n\nfunction buildSubBlocks(ctx, fragment, topMarginForOuterGap, tooltipTextStyle) {\n var subMarkupTextList = [];\n var subBlocks = fragment.blocks || [];\n assert(!subBlocks || isArray(subBlocks));\n subBlocks = subBlocks || [];\n var orderMode = ctx.orderMode;\n\n if (fragment.sortBlocks && orderMode) {\n subBlocks = subBlocks.slice();\n var orderMap = {\n valueAsc: 'asc',\n valueDesc: 'desc'\n };\n\n if (hasOwn(orderMap, orderMode)) {\n var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n subBlocks.sort(function (a, b) {\n return comparator_1.evaluate(a.sortParam, b.sortParam);\n });\n } else if (orderMode === 'seriesDesc') {\n subBlocks.reverse();\n }\n }\n\n var gaps = getGap(fragment);\n each(subBlocks, function (subBlock, idx) {\n var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0, tooltipTextStyle);\n subMarkupText != null && subMarkupTextList.push(subMarkupText);\n });\n\n if (!subMarkupTextList.length) {\n return;\n }\n\n return ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\n}\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n if (!fragment) {\n return;\n }\n\n var builder = getBuilder(fragment);\n builder.planLayout(fragment);\n var ctx = {\n useUTC: useUTC,\n renderMode: renderMode,\n orderMode: orderMode,\n markupStyleCreator: markupStyleCreator\n };\n return builder.build(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(fragment) {\n var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\n return {\n html: HTML_GAPS[gapLevelBetweenSubBlocks],\n richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\n };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n var clearfix = '<div style=\"clear:both\"></div>';\n var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n var paddingStr = valueCloseToMarker ? '10px' : '20px';\n var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" + map(valueList, function (value) {\n return encodeHTML(value);\n }).join('&nbsp;&nbsp;') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker, style) {\n var styles = [style];\n var paddingLeft = valueCloseToMarker ? 10 : 20;\n alignRight && styles.push({\n padding: [0, 0, 0, paddingLeft],\n align: 'right'\n });\n return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join(' '), styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n var style = series.getData().getItemVisual(dataIndex, 'style');\n var color = style[series.visualDrawType];\n return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n var padding = model.get('padding');\n return padding != null ? padding : renderMode === 'richText' ? [8, 10] : 10;\n}\n\nvar TooltipMarkupStyleCreator = function () {\n function TooltipMarkupStyleCreator() {\n this.richTextStyles = {};\n this._nextStyleNameId = getRandomIdBase();\n }\n\n TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n return '__EC_aUTo_' + this._nextStyleNameId++;\n };\n\n TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n var marker = getTooltipMarker({\n color: colorStr,\n type: markerType,\n renderMode: renderMode,\n markerId: markerId\n });\n\n if (isString(marker)) {\n return marker;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n assert(markerId);\n }\n\n this.richTextStyles[markerId] = marker.style;\n return marker.content;\n }\n };\n\n TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n var finalStl = {};\n\n if (isArray(styles)) {\n each(styles, function (stl) {\n return extend(finalStl, stl);\n });\n } else {\n extend(finalStl, styles);\n }\n\n var styleName = this._generateStyleName();\n\n this.richTextStyles[styleName] = finalStl;\n return \"{\" + styleName + \"|\" + text + \"}\";\n };\n\n return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isNameSpecified } from '../../util/model';\nexport function defaultSeriesFormatTooltip(opt) {\n var series = opt.series;\n var dataIndex = opt.dataIndex;\n var multipleSeries = opt.multipleSeries;\n var data = series.getData();\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n var tooltipDimLen = tooltipDims.length;\n var value = series.getRawValue(dataIndex);\n var isValueArr = isArray(value);\n var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\n var inlineValue;\n var inlineValueType;\n var subBlocks;\n var sortParam;\n\n if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n inlineValue = formatArrResult.inlineValues;\n inlineValueType = formatArrResult.inlineValueTypes;\n subBlocks = formatArrResult.blocks;\n sortParam = formatArrResult.inlineValues[0];\n } else if (tooltipDimLen) {\n var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n inlineValueType = dimInfo.type;\n } else {\n sortParam = inlineValue = isValueArr ? value[0] : value;\n }\n\n var seriesNameSpecified = isNameSpecified(series);\n var seriesName = seriesNameSpecified && series.name || '';\n var itemName = data.getName(dataIndex);\n var inlineName = multipleSeries ? seriesName : itemName;\n return createTooltipMarkup('section', {\n header: seriesName,\n noHeader: multipleSeries || !seriesNameSpecified,\n sortParam: sortParam,\n blocks: [createTooltipMarkup('nameValue', {\n markerType: 'item',\n markerColor: markerColor,\n name: inlineName,\n noName: !trim(inlineName),\n value: inlineValue,\n valueType: inlineValueType\n })].concat(subBlocks || [])\n });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n var data = series.getData();\n var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n var dimItem = data.getDimensionInfo(idx);\n return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n }, false);\n var inlineValues = [];\n var inlineValueTypes = [];\n var blocks = [];\n tooltipDims.length ? each(tooltipDims, function (dim) {\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n }) : each(value, setEachItem);\n\n function setEachItem(val, dim) {\n var dimInfo = data.getDimensionInfo(dim);\n\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n return;\n }\n\n if (isValueMultipleLine) {\n blocks.push(createTooltipMarkup('nameValue', {\n markerType: 'subItem',\n markerColor: colorStr,\n name: dimInfo.displayName,\n value: val,\n valueType: dimInfo.type\n }));\n } else {\n inlineValues.push(val);\n inlineValueTypes.push(dimInfo.type);\n }\n }\n\n return {\n inlineValues: inlineValues,\n inlineValueTypes: inlineValueTypes,\n blocks: blocks\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends, __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport * as modelUtil from '../util/model';\nimport ComponentModel from './Component';\nimport { PaletteMixin } from './mixin/palette';\nimport { DataFormatMixin } from '../model/mixin/dataFormat';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport { createTask } from '../core/task';\nimport { mountExtend } from '../util/clazz';\nimport { SourceManager } from '../data/helper/sourceManager';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nvar SeriesModel = function (_super) {\n __extends(SeriesModel, _super);\n\n function SeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this._selectedDataIndicesMap = {};\n return _this;\n }\n\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n this.seriesIndex = this.componentIndex;\n this.dataTask = createTask({\n count: dataTaskCount,\n reset: dataTaskReset\n });\n this.dataTask.context = {\n model: this\n };\n this.mergeDefaultAndTheme(option, ecModel);\n var sourceManager = inner(this).sourceManager = new SourceManager(this);\n sourceManager.prepareSource();\n var data = this.getInitialData(option, ecModel);\n wrapData(data, this);\n this.dataTask.context.data = data;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(data, 'getInitialData returned invalid data.');\n }\n\n inner(this).dataBeforeProcessed = data;\n autoSeriesName(this);\n\n this._initSelectedMapFromData(data);\n };\n\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n var themeSubType = this.subType;\n\n if (ComponentModel.hasClass(themeSubType)) {\n themeSubType += 'Series';\n }\n\n zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n zrUtil.merge(option, this.getDefaultOption());\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n this.fillDataTextStyle(option.data);\n\n if (layoutMode) {\n mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n this.fillDataTextStyle(newSeriesOption.data);\n var layoutMode = fetchLayoutMode(this);\n\n if (layoutMode) {\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n }\n\n var sourceManager = inner(this).sourceManager;\n sourceManager.dirty();\n sourceManager.prepareSource();\n var data = this.getInitialData(newSeriesOption, ecModel);\n wrapData(data, this);\n this.dataTask.dirty();\n this.dataTask.context.data = data;\n inner(this).dataBeforeProcessed = data;\n autoSeriesName(this);\n\n this._initSelectedMapFromData(data);\n };\n\n SeriesModel.prototype.fillDataTextStyle = function (data) {\n if (data && !zrUtil.isTypedArray(data)) {\n var props = ['show'];\n\n for (var i = 0; i < data.length; i++) {\n if (data[i] && data[i].label) {\n modelUtil.defaultEmphasis(data[i], 'label', props);\n }\n }\n }\n };\n\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\n return;\n };\n\n SeriesModel.prototype.appendData = function (params) {\n var data = this.getRawData();\n data.appendData(params.data);\n };\n\n SeriesModel.prototype.getData = function (dataType) {\n var task = getCurrentTask(this);\n\n if (task) {\n var data = task.context.data;\n return dataType == null ? data : data.getLinkedData(dataType);\n } else {\n return inner(this).data;\n }\n };\n\n SeriesModel.prototype.getAllData = function () {\n var mainData = this.getData();\n return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n data: mainData\n }];\n };\n\n SeriesModel.prototype.setData = function (data) {\n var task = getCurrentTask(this);\n\n if (task) {\n var context = task.context;\n context.outputData = data;\n\n if (task !== this.dataTask) {\n context.data = data;\n }\n }\n\n inner(this).data = data;\n };\n\n SeriesModel.prototype.getSource = function () {\n return inner(this).sourceManager.getSource();\n };\n\n SeriesModel.prototype.getRawData = function () {\n return inner(this).dataBeforeProcessed;\n };\n\n SeriesModel.prototype.getBaseAxis = function () {\n var coordSys = this.coordinateSystem;\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n };\n\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n return defaultSeriesFormatTooltip({\n series: this,\n dataIndex: dataIndex,\n multipleSeries: multipleSeries\n });\n };\n\n SeriesModel.prototype.isAnimationEnabled = function () {\n if (env.node) {\n return false;\n }\n\n var animationEnabled = this.getShallow('animation');\n\n if (animationEnabled) {\n if (this.getData().count() > this.getShallow('animationThreshold')) {\n animationEnabled = false;\n }\n }\n\n return !!animationEnabled;\n };\n\n SeriesModel.prototype.restoreData = function () {\n this.dataTask.dirty();\n };\n\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n var ecModel = this.ecModel;\n var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n if (!color) {\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n }\n\n return color;\n };\n\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n return this.getRawData().mapDimensionsAll(coordDim);\n };\n\n SeriesModel.prototype.getProgressive = function () {\n return this.get('progressive');\n };\n\n SeriesModel.prototype.getProgressiveThreshold = function () {\n return this.get('progressiveThreshold');\n };\n\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n this._innerSelect(this.getData(dataType), innerDataIndices);\n };\n\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n var selectedMap = this.option.selectedMap;\n\n if (!selectedMap) {\n return;\n }\n\n var data = this.getData(dataType);\n\n for (var i = 0; i < innerDataIndices.length; i++) {\n var dataIndex = innerDataIndices[i];\n var nameOrId = getSelectionKey(data, dataIndex);\n selectedMap[nameOrId] = false;\n this._selectedDataIndicesMap[nameOrId] = -1;\n }\n };\n\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n var tmpArr = [];\n\n for (var i = 0; i < innerDataIndices.length; i++) {\n tmpArr[0] = innerDataIndices[i];\n this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n }\n };\n\n SeriesModel.prototype.getSelectedDataIndices = function () {\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\n var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n var dataIndices = [];\n\n for (var i = 0; i < nameOrIds.length; i++) {\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n if (dataIndex >= 0) {\n dataIndices.push(dataIndex);\n }\n }\n\n return dataIndices;\n };\n\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n var selectedMap = this.option.selectedMap;\n\n if (!selectedMap) {\n return false;\n }\n\n var data = this.getData(dataType);\n var nameOrId = getSelectionKey(data, dataIndex);\n return selectedMap[nameOrId] || false;\n };\n\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n var _a, _b;\n\n var selectedMode = this.option.selectedMode;\n var len = innerDataIndices.length;\n\n if (!selectedMode || !len) {\n return;\n }\n\n if (selectedMode === 'multiple') {\n var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\n\n for (var i = 0; i < len; i++) {\n var dataIndex = innerDataIndices[i];\n var nameOrId = getSelectionKey(data, dataIndex);\n selectedMap[nameOrId] = true;\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n }\n } else if (selectedMode === 'single' || selectedMode === true) {\n var lastDataIndex = innerDataIndices[len - 1];\n var nameOrId = getSelectionKey(data, lastDataIndex);\n this.option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n }\n };\n\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\n if (this.option.selectedMap) {\n return;\n }\n\n var dataIndices = [];\n\n if (data.hasItemOption) {\n data.each(function (idx) {\n var rawItem = data.getRawDataItem(idx);\n\n if (typeof rawItem === 'object' && rawItem.selected) {\n dataIndices.push(idx);\n }\n });\n }\n\n if (dataIndices.length > 0) {\n this._innerSelect(data, dataIndices);\n }\n };\n\n SeriesModel.registerClass = function (clz) {\n return ComponentModel.registerClass(clz);\n };\n\n SeriesModel.protoInitialize = function () {\n var proto = SeriesModel.prototype;\n proto.type = 'series.__base__';\n proto.seriesIndex = 0;\n proto.useColorPaletteOnData = false;\n proto.ignoreStyleOnData = false;\n proto.hasSymbolVisual = false;\n proto.defaultSymbol = 'circle';\n proto.visualStyleAccessPath = 'itemStyle';\n proto.visualDrawType = 'fill';\n }();\n\n return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n\nfunction autoSeriesName(seriesModel) {\n var name = seriesModel.name;\n\n if (!modelUtil.isNameSpecified(seriesModel)) {\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\n }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n var data = seriesModel.getRawData();\n var dataDims = data.mapDimensionsAll('seriesName');\n var nameArr = [];\n zrUtil.each(dataDims, function (dataDim) {\n var dimInfo = data.getDimensionInfo(dataDim);\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\n });\n return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n var seriesModel = context.model;\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\n return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n if (context.outputData && param.end > context.outputData.count()) {\n context.model.getRawData().cloneShallow(context.outputData);\n }\n}\n\nfunction wrapData(data, seriesModel) {\n zrUtil.each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n });\n}\n\nfunction onDataChange(seriesModel, newList) {\n var task = getCurrentTask(seriesModel);\n\n if (task) {\n task.setOutputEnd((newList || this).count());\n }\n\n return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n var scheduler = (seriesModel.ecModel || {}).scheduler;\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n if (pipeline) {\n var task = pipeline.currentTask;\n\n if (task) {\n var agentStubMap = task.agentStubMap;\n\n if (agentStubMap) {\n task = agentStubMap.get(seriesModel.uid);\n }\n }\n\n return task;\n }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\n\nvar ComponentView = function () {\n function ComponentView() {\n this.group = new Group();\n this.uid = componentUtil.getUID('viewComponent');\n }\n\n ComponentView.prototype.init = function (ecModel, api) {};\n\n ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n ComponentView.prototype.dispose = function (ecModel, api) {};\n\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {};\n\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {};\n\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {};\n\n ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {};\n\n return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nexport default function createRenderPlanner() {\n var inner = makeInner();\n return function (seriesModel) {\n var fields = inner(seriesModel);\n var pipelineContext = seriesModel.pipelineContext;\n var originalLarge = !!fields.large;\n var originalProgressive = !!fields.progressiveRender;\n var large = fields.large = !!(pipelineContext && pipelineContext.large);\n var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\nimport * as modelUtil from '../util/model';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit } from '../util/states';\nimport { createTask } from '../core/task';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView = function () {\n function ChartView() {\n this.group = new Group();\n this.uid = componentUtil.getUID('viewChart');\n this.renderTask = createTask({\n plan: renderTaskPlan,\n reset: renderTaskReset\n });\n this.renderTask.context = {\n view: this\n };\n }\n\n ChartView.prototype.init = function (ecModel, api) {};\n\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {};\n\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n };\n\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n toggleHighlight(seriesModel.getData(), payload, 'normal');\n };\n\n ChartView.prototype.remove = function (ecModel, api) {\n this.group.removeAll();\n };\n\n ChartView.prototype.dispose = function (ecModel, api) {};\n\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n this.render(seriesModel, ecModel, api, payload);\n };\n\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n this.render(seriesModel, ecModel, api, payload);\n };\n\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n this.render(seriesModel, ecModel, api, payload);\n };\n\n ChartView.markUpdateMethod = function (payload, methodName) {\n inner(payload).updateMethod = methodName;\n };\n\n ChartView.protoInitialize = function () {\n var proto = ChartView.prototype;\n proto.type = 'chart';\n }();\n\n return ChartView;\n}();\n\n;\n\nfunction elSetState(el, state, highlightDigit) {\n if (el) {\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n }\n}\n\nfunction toggleHighlight(data, payload, state) {\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n if (dataIndex != null) {\n each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n });\n } else {\n data.eachItemGraphicEl(function (el) {\n elSetState(el, state, highlightDigit);\n });\n }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n var seriesModel = context.model;\n var ecModel = context.ecModel;\n var api = context.api;\n var payload = context.payload;\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n var view = context.view;\n var updateMethod = payload && inner(payload).updateMethod;\n var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod : 'render';\n\n if (methodName !== 'render') {\n view[methodName](seriesModel, ecModel, api, payload);\n }\n\n return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n incrementalPrepareRender: {\n progress: function (params, context) {\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n }\n },\n render: {\n forceFirstProgress: true,\n progress: function (params, context) {\n context.view.render(context.model, context.ecModel, context.api, context.payload);\n }\n }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\nexport function throttle(fn, delay, debounce) {\n var currCall;\n var lastCall = 0;\n var lastExec = 0;\n var timer = null;\n var diff;\n var scope;\n var args;\n var debounceNextCall;\n delay = delay || 0;\n\n function exec() {\n lastExec = new Date().getTime();\n timer = null;\n fn.apply(scope, args || []);\n }\n\n var cb = function () {\n var cbArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n cbArgs[_i] = arguments[_i];\n }\n\n currCall = new Date().getTime();\n scope = this;\n args = cbArgs;\n var thisDelay = debounceNextCall || delay;\n var thisDebounce = debounceNextCall || debounce;\n debounceNextCall = null;\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n clearTimeout(timer);\n\n if (thisDebounce) {\n timer = setTimeout(exec, thisDelay);\n } else {\n if (diff >= 0) {\n exec();\n } else {\n timer = setTimeout(exec, -diff);\n }\n }\n\n lastCall = currCall;\n };\n\n cb.clear = function () {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n };\n\n cb.debounceNextCall = function (debounceDelay) {\n debounceNextCall = debounceDelay;\n };\n\n return cb;\n}\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n var fn = obj[fnAttr];\n\n if (!fn) {\n return;\n }\n\n var originFn = fn[ORIGIN_METHOD] || fn;\n var lastThrottleType = fn[THROTTLE_TYPE];\n var lastRate = fn[RATE];\n\n if (lastRate !== rate || lastThrottleType !== throttleType) {\n if (rate == null || !throttleType) {\n return obj[fnAttr] = originFn;\n }\n\n fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n fn[ORIGIN_METHOD] = originFn;\n fn[THROTTLE_TYPE] = throttleType;\n fn[RATE] = rate;\n }\n\n return fn;\n}\nexport function clear(obj, fnAttr) {\n var fn = obj[fnAttr];\n\n if (fn && fn[ORIGIN_METHOD]) {\n obj[fnAttr] = fn[ORIGIN_METHOD];\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle';\nimport Model from '../model/Model';\nimport { makeInner } from '../util/model';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n lineStyle: 'stroke',\n itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n if (!styleMapper) {\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n return defaultStyleMappers.itemStyle;\n }\n\n return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n if (!colorKey) {\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n return 'fill';\n }\n\n return colorKey;\n}\n\nvar seriesStyleTask = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n var styleModel = seriesModel.getModel(stylePath);\n var getStyle = getStyleMapper(seriesModel, stylePath);\n var globalStyle = getStyle(styleModel);\n var decalOption = styleModel.getShallow('decal');\n\n if (decalOption) {\n data.setVisual('decal', decalOption);\n decalOption.dirty = true;\n }\n\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\n var color = globalStyle[colorKey];\n var colorCallback = isFunction(color) ? color : null;\n\n if (!globalStyle[colorKey] || colorCallback) {\n globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\n data.setVisual('colorFromPalette', true);\n }\n\n data.setVisual('style', globalStyle);\n data.setVisual('drawType', colorKey);\n\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n data.setVisual('colorFromPalette', false);\n return {\n dataEach: function (data, idx) {\n var dataParams = seriesModel.getDataParams(idx);\n var itemStyle = extend({}, globalStyle);\n itemStyle[colorKey] = colorCallback(dataParams);\n data.setItemVisual(idx, 'style', itemStyle);\n }\n };\n }\n }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n var getStyle = getStyleMapper(seriesModel, stylePath);\n var colorKey = data.getVisual('drawType');\n return {\n dataEach: data.hasItemOption ? function (data, idx) {\n var rawItem = data.getRawDataItem(idx);\n\n if (rawItem && rawItem[stylePath]) {\n sharedModel.option = rawItem[stylePath];\n var style = getStyle(sharedModel);\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n extend(existsStyle, style);\n\n if (sharedModel.option.decal) {\n data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n sharedModel.option.decal.dirty = true;\n }\n\n if (colorKey in style) {\n data.setItemVisual(idx, 'colorFromPalette', false);\n }\n }\n } : null\n };\n }\n};\nvar dataColorPaletteTask = {\n performRawSeries: true,\n overallReset: function (ecModel) {\n var paletteScopeGroupByType = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n if (!seriesModel.useColorPaletteOnData) {\n return;\n }\n\n var colorScope = paletteScopeGroupByType.get(seriesModel.type);\n\n if (!colorScope) {\n colorScope = {};\n paletteScopeGroupByType.set(seriesModel.type, colorScope);\n }\n\n inner(seriesModel).scope = colorScope;\n });\n ecModel.eachSeries(function (seriesModel) {\n if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var dataAll = seriesModel.getRawData();\n var idxMap = {};\n var data = seriesModel.getData();\n var colorScope = inner(seriesModel).scope;\n var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\n data.each(function (idx) {\n var rawIdx = data.getRawIndex(idx);\n idxMap[rawIdx] = idx;\n });\n dataAll.each(function (rawIdx) {\n var idx = idxMap[rawIdx];\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\n\n if (fromPalette) {\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n var dataCount = dataAll.count();\n itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n }\n });\n });\n }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../util/graphic';\nvar PI = Math.PI;\nexport default function defaultLoading(api, opts) {\n opts = opts || {};\n zrUtil.defaults(opts, {\n text: 'loading',\n textColor: '#000',\n fontSize: 12,\n fontWeight: 'normal',\n fontStyle: 'normal',\n fontFamily: 'sans-serif',\n maskColor: 'rgba(255, 255, 255, 0.8)',\n showSpinner: true,\n color: '#5470c6',\n spinnerRadius: 10,\n lineWidth: 5,\n zlevel: 0\n });\n var group = new graphic.Group();\n var mask = new graphic.Rect({\n style: {\n fill: opts.maskColor\n },\n zlevel: opts.zlevel,\n z: 10000\n });\n group.add(mask);\n var textContent = new graphic.Text({\n style: {\n text: opts.text,\n fill: opts.textColor,\n fontSize: opts.fontSize,\n fontWeight: opts.fontWeight,\n fontStyle: opts.fontStyle,\n fontFamily: opts.fontFamily\n }\n });\n var labelRect = new graphic.Rect({\n style: {\n fill: 'none'\n },\n textContent: textContent,\n textConfig: {\n position: 'right',\n distance: 10\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n group.add(labelRect);\n var arc;\n\n if (opts.showSpinner) {\n arc = new graphic.Arc({\n shape: {\n startAngle: -PI / 2,\n endAngle: -PI / 2 + 0.1,\n r: opts.spinnerRadius\n },\n style: {\n stroke: opts.color,\n lineCap: 'round',\n lineWidth: opts.lineWidth\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n arc.animateShape(true).when(1000, {\n endAngle: PI * 3 / 2\n }).start('circularInOut');\n arc.animateShape(true).when(1000, {\n startAngle: PI * 3 / 2\n }).delay(300).start('circularInOut');\n group.add(arc);\n }\n\n group.resize = function () {\n var textWidth = textContent.getBoundingRect().width;\n var r = opts.showSpinner ? opts.spinnerRadius : 0;\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r);\n var cy = api.getHeight() / 2;\n opts.showSpinner && arc.setShape({\n cx: cx,\n cy: cy\n });\n labelRect.setShape({\n x: cx - r,\n y: cy - r,\n width: r * 2,\n height: r * 2\n });\n mask.setShape({\n x: 0,\n y: 0,\n width: api.getWidth(),\n height: api.getHeight()\n });\n };\n\n group.resize();\n return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util';\nimport { createTask } from './task';\nimport { getUID } from '../util/component';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport { normalizeToArray } from '../util/model';\n;\n\nvar Scheduler = function () {\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n this._stageTaskMap = createHashMap();\n this.ecInstance = ecInstance;\n this.api = api;\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n visualHandlers = this._visualHandlers = visualHandlers.slice();\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n }\n\n Scheduler.prototype.restoreData = function (ecModel, payload) {\n ecModel.restoreData(payload);\n\n this._stageTaskMap.each(function (taskRecord) {\n var overallTask = taskRecord.overallTask;\n overallTask && overallTask.dirty();\n });\n };\n\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n if (!task.__pipeline) {\n return;\n }\n\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n var pCtx = pipeline.context;\n var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n var step = incremental ? pipeline.step : null;\n var modDataCount = pCtx && pCtx.modDataCount;\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n return {\n step: step,\n modBy: modBy,\n modDataCount: modDataCount\n };\n };\n\n Scheduler.prototype.getPipeline = function (pipelineId) {\n return this._pipelineMap.get(pipelineId);\n };\n\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n var data = seriesModel.getData();\n var dataLen = data.count();\n var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n seriesModel.pipelineContext = pipeline.context = {\n progressiveRender: progressiveRender,\n modDataCount: modDataCount,\n large: large\n };\n };\n\n Scheduler.prototype.restorePipelines = function (ecModel) {\n var scheduler = this;\n var pipelineMap = scheduler._pipelineMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var progressive = seriesModel.getProgressive();\n var pipelineId = seriesModel.uid;\n pipelineMap.set(pipelineId, {\n id: pipelineId,\n head: null,\n tail: null,\n threshold: seriesModel.getProgressiveThreshold(),\n progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n blockIndex: -1,\n step: Math.round(progressive || 700),\n count: 0\n });\n\n scheduler._pipe(seriesModel, seriesModel.dataTask);\n });\n };\n\n Scheduler.prototype.prepareStageTasks = function () {\n var stageTaskMap = this._stageTaskMap;\n var ecModel = this.api.getModel();\n var api = this.api;\n each(this._allHandlers, function (handler) {\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n }\n\n assert(!(handler.reset && handler.overallReset), errMsg);\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n }, this);\n };\n\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n var renderTask = view.renderTask;\n var context = renderTask.context;\n context.model = model;\n context.ecModel = ecModel;\n context.api = api;\n renderTask.__block = !view.incrementalPrepareRender;\n\n this._pipe(model, renderTask);\n };\n\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n block: true\n });\n };\n\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n };\n\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n opt = opt || {};\n var unfinished = false;\n var scheduler = this;\n each(stageHandlers, function (stageHandler, idx) {\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n return;\n }\n\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n var overallTask = stageHandlerRecord.overallTask;\n\n if (overallTask) {\n var overallNeedDirty_1;\n var agentStubMap = overallTask.agentStubMap;\n agentStubMap.each(function (stub) {\n if (needSetDirty(opt, stub)) {\n stub.dirty();\n overallNeedDirty_1 = true;\n }\n });\n overallNeedDirty_1 && overallTask.dirty();\n scheduler.updatePayload(overallTask, payload);\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\n agentStubMap.each(function (stub) {\n stub.perform(performArgs_1);\n });\n\n if (overallTask.perform(performArgs_1)) {\n unfinished = true;\n }\n } else if (seriesTaskMap) {\n seriesTaskMap.each(function (task, pipelineId) {\n if (needSetDirty(opt, task)) {\n task.dirty();\n }\n\n var performArgs = scheduler.getPerformArgs(task, opt.block);\n performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n scheduler.updatePayload(task, payload);\n\n if (task.perform(performArgs)) {\n unfinished = true;\n }\n });\n }\n });\n\n function needSetDirty(opt, task) {\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n }\n\n this.unfinished = unfinished || this.unfinished;\n };\n\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\n var unfinished;\n ecModel.eachSeries(function (seriesModel) {\n unfinished = seriesModel.dataTask.perform() || unfinished;\n });\n this.unfinished = unfinished || this.unfinished;\n };\n\n Scheduler.prototype.plan = function () {\n this._pipelineMap.each(function (pipeline) {\n var task = pipeline.tail;\n\n do {\n if (task.__block) {\n pipeline.blockIndex = task.__idxInPipeline;\n break;\n }\n\n task = task.getUpstream();\n } while (task);\n });\n };\n\n Scheduler.prototype.updatePayload = function (task, payload) {\n payload !== 'remain' && (task.context.payload = payload);\n };\n\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n var scheduler = this;\n var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\n var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n var seriesType = stageHandler.seriesType;\n var getTargetSeries = stageHandler.getTargetSeries;\n\n if (stageHandler.createOnAllSeries) {\n ecModel.eachRawSeries(create);\n } else if (seriesType) {\n ecModel.eachRawSeriesByType(seriesType, create);\n } else if (getTargetSeries) {\n getTargetSeries(ecModel, api).each(create);\n }\n\n function create(seriesModel) {\n var pipelineId = seriesModel.uid;\n var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n plan: seriesTaskPlan,\n reset: seriesTaskReset,\n count: seriesTaskCount\n }));\n task.context = {\n model: seriesModel,\n ecModel: ecModel,\n api: api,\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n plan: stageHandler.plan,\n reset: stageHandler.reset,\n scheduler: scheduler\n };\n\n scheduler._pipe(seriesModel, task);\n }\n };\n\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n var scheduler = this;\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({\n reset: overallTaskReset\n });\n overallTask.context = {\n ecModel: ecModel,\n api: api,\n overallReset: stageHandler.overallReset,\n scheduler: scheduler\n };\n var oldAgentStubMap = overallTask.agentStubMap;\n var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n var seriesType = stageHandler.seriesType;\n var getTargetSeries = stageHandler.getTargetSeries;\n var overallProgress = true;\n var shouldOverallTaskDirty = false;\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", ' + 'becuase it will block all streams.';\n }\n\n assert(!stageHandler.createOnAllSeries, errMsg);\n\n if (seriesType) {\n ecModel.eachRawSeriesByType(seriesType, createStub);\n } else if (getTargetSeries) {\n getTargetSeries(ecModel, api).each(createStub);\n } else {\n overallProgress = false;\n each(ecModel.getSeries(), createStub);\n }\n\n function createStub(seriesModel) {\n var pipelineId = seriesModel.uid;\n var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || (shouldOverallTaskDirty = true, createTask({\n reset: stubReset,\n onDirty: stubOnDirty\n })));\n stub.context = {\n model: seriesModel,\n overallProgress: overallProgress\n };\n stub.agent = overallTask;\n stub.__block = overallProgress;\n\n scheduler._pipe(seriesModel, stub);\n }\n\n if (shouldOverallTaskDirty) {\n overallTask.dirty();\n }\n };\n\n Scheduler.prototype._pipe = function (seriesModel, task) {\n var pipelineId = seriesModel.uid;\n\n var pipeline = this._pipelineMap.get(pipelineId);\n\n !pipeline.head && (pipeline.head = task);\n pipeline.tail && pipeline.tail.pipe(task);\n pipeline.tail = task;\n task.__idxInPipeline = pipeline.count++;\n task.__pipeline = pipeline;\n };\n\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n if (isFunction(stageHandler)) {\n stageHandler = {\n overallReset: stageHandler,\n seriesType: detectSeriseType(stageHandler)\n };\n }\n\n stageHandler.uid = getUID('stageHandler');\n visualType && (stageHandler.visualType = visualType);\n return stageHandler;\n };\n\n ;\n return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n this.agent.dirty();\n this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n if (context.useClearVisual) {\n context.data.clearAllVisual();\n }\n\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n return makeSeriesTaskProgress(idx);\n }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n return function (params, context) {\n var data = context.data;\n var resetDefine = context.resetDefines[resetDefineIdx];\n\n if (resetDefine && resetDefine.dataEach) {\n for (var i = params.start; i < params.end; i++) {\n resetDefine.dataEach(data, i);\n }\n } else if (resetDefine && resetDefine.progress) {\n resetDefine.progress(params, data);\n }\n };\n}\n\nfunction seriesTaskCount(context) {\n return context.data.count();\n}\n\nfunction detectSeriseType(legacyFunc) {\n seriesType = null;\n\n try {\n legacyFunc(ecModelMock, apiMock);\n } catch (e) {}\n\n return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n if (cond.mainType === 'series' && cond.subType) {\n seriesType = cond.subType;\n }\n};\n\nfunction mockMethods(target, Clz) {\n for (var name_1 in Clz.prototype) {\n target[name_1] = noop;\n }\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n color: colorAll,\n colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n return {\n axisLine: {\n lineStyle: {\n color: contrastColor\n }\n },\n splitLine: {\n lineStyle: {\n color: '#484753'\n }\n },\n splitArea: {\n areaStyle: {\n color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n }\n },\n minorSplitLine: {\n lineStyle: {\n color: '#20203B'\n }\n }\n };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n darkMode: true,\n color: colorPalette,\n backgroundColor: backgroundColor,\n axisPointer: {\n lineStyle: {\n color: '#817f91'\n },\n crossStyle: {\n color: '#817f91'\n },\n label: {\n color: '#fff'\n }\n },\n legend: {\n textStyle: {\n color: contrastColor\n }\n },\n textStyle: {\n color: contrastColor\n },\n title: {\n textStyle: {\n color: '#EEF1FA'\n },\n subtextStyle: {\n color: '#B9B8CE'\n }\n },\n toolbox: {\n iconStyle: {\n borderColor: contrastColor\n }\n },\n dataZoom: {\n borderColor: '#71708A',\n textStyle: {\n color: contrastColor\n },\n brushStyle: {\n color: 'rgba(135,163,206,0.3)'\n },\n handleStyle: {\n color: '#353450',\n borderColor: '#C5CBE3'\n },\n moveHandleStyle: {\n color: '#B0B6C3',\n opacity: 0.3\n },\n fillerColor: 'rgba(135,163,206,0.2)',\n emphasis: {\n handleStyle: {\n borderColor: '#91B7F2',\n color: '#4D587D'\n },\n moveHandleStyle: {\n color: '#636D9A',\n opacity: 0.7\n }\n },\n dataBackground: {\n lineStyle: {\n color: '#71708A',\n width: 1\n },\n areaStyle: {\n color: '#71708A'\n }\n },\n selectedDataBackground: {\n lineStyle: {\n color: '#87A3CE'\n },\n areaStyle: {\n color: '#87A3CE'\n }\n }\n },\n visualMap: {\n textStyle: {\n color: contrastColor\n }\n },\n timeline: {\n lineStyle: {\n color: contrastColor\n },\n label: {\n color: contrastColor\n },\n controlStyle: {\n color: contrastColor,\n borderColor: contrastColor\n }\n },\n calendar: {\n itemStyle: {\n color: backgroundColor\n },\n dayLabel: {\n color: contrastColor\n },\n monthLabel: {\n color: contrastColor\n },\n yearLabel: {\n color: contrastColor\n }\n },\n timeAxis: axisCommon(),\n logAxis: axisCommon(),\n valueAxis: axisCommon(),\n categoryAxis: axisCommon(),\n line: {\n symbol: 'circle'\n },\n graph: {\n color: colorPalette\n },\n gauge: {\n title: {\n color: contrastColor\n },\n axisLine: {\n lineStyle: {\n color: [[1, 'rgba(207,212,219,0.2)']]\n }\n },\n axisLabel: {\n color: contrastColor\n },\n detail: {\n color: '#EEF1FA'\n }\n },\n candlestick: {\n itemStyle: {\n color: '#f64e56',\n color0: '#54ea92',\n borderColor: '#f64e56',\n borderColor0: '#54ea92'\n }\n }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","import { isString } from '../core/util';\nexport function parseXML(svg) {\n if (isString(svg)) {\n var parser = new DOMParser();\n svg = parser.parseFromString(svg, 'text/xml');\n }\n var svgNode = svg;\n if (svgNode.nodeType === 9) {\n svgNode = svgNode.firstChild;\n }\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n svgNode = svgNode.nextSibling;\n }\n return svgNode;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isString, isArray, each, assert } from 'zrender/lib/core/util';\nimport { parseXML } from 'zrender/lib/tool/parseXML';\nvar storage = createHashMap();\nexport default {\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\n var records;\n\n if (isArray(rawDef)) {\n records = rawDef;\n } else if (rawDef.svg) {\n records = [{\n type: 'svg',\n source: rawDef.svg,\n specialAreas: rawDef.specialAreas\n }];\n } else {\n var geoSource = rawDef.geoJson || rawDef.geoJSON;\n\n if (geoSource && !rawDef.features) {\n rawSpecialAreas = rawDef.specialAreas;\n rawDef = geoSource;\n }\n\n records = [{\n type: 'geoJSON',\n source: rawDef,\n specialAreas: rawSpecialAreas\n }];\n }\n\n each(records, function (record) {\n var type = record.type;\n type === 'geoJson' && (type = record.type = 'geoJSON');\n var parse = parsers[type];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(parse, 'Illegal map type: ' + type);\n }\n\n parse(record);\n });\n return storage.set(mapName, records);\n },\n retrieveMap: function (mapName) {\n return storage.get(mapName);\n }\n};\nvar parsers = {\n geoJSON: function (record) {\n var source = record.source;\n record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n },\n svg: function (record) {\n record.svgXML = parseXML(record.source);\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\n\nvar ECEventProcessor = function () {\n function ECEventProcessor() {}\n\n ECEventProcessor.prototype.normalizeQuery = function (query) {\n var cptQuery = {};\n var dataQuery = {};\n var otherQuery = {};\n\n if (zrUtil.isString(query)) {\n var condCptType = parseClassType(query);\n cptQuery.mainType = condCptType.main || null;\n cptQuery.subType = condCptType.sub || null;\n } else {\n var suffixes_1 = ['Index', 'Name', 'Id'];\n var dataKeys_1 = {\n name: 1,\n dataIndex: 1,\n dataType: 1\n };\n zrUtil.each(query, function (val, key) {\n var reserved = false;\n\n for (var i = 0; i < suffixes_1.length; i++) {\n var propSuffix = suffixes_1[i];\n var suffixPos = key.lastIndexOf(propSuffix);\n\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n var mainType = key.slice(0, suffixPos);\n\n if (mainType !== 'data') {\n cptQuery.mainType = mainType;\n cptQuery[propSuffix.toLowerCase()] = val;\n reserved = true;\n }\n }\n }\n\n if (dataKeys_1.hasOwnProperty(key)) {\n dataQuery[key] = val;\n reserved = true;\n }\n\n if (!reserved) {\n otherQuery[key] = val;\n }\n });\n }\n\n return {\n cptQuery: cptQuery,\n dataQuery: dataQuery,\n otherQuery: otherQuery\n };\n };\n\n ECEventProcessor.prototype.filter = function (eventType, query) {\n var eventInfo = this.eventInfo;\n\n if (!eventInfo) {\n return true;\n }\n\n var targetEl = eventInfo.targetEl;\n var packedEvent = eventInfo.packedEvent;\n var model = eventInfo.model;\n var view = eventInfo.view;\n\n if (!model || !view) {\n return true;\n }\n\n var cptQuery = query.cptQuery;\n var dataQuery = query.dataQuery;\n return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n function check(query, host, prop, propOnHost) {\n return query[prop] == null || host[propOnHost || prop] === query[prop];\n }\n };\n\n ECEventProcessor.prototype.afterTrigger = function () {\n this.eventInfo = null;\n };\n\n return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction } from 'zrender/lib/core/util';\nvar seriesSymbolTask = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n\n if (seriesModel.legendSymbol) {\n data.setVisual('legendSymbol', seriesModel.legendSymbol);\n }\n\n if (!seriesModel.hasSymbolVisual) {\n return;\n }\n\n var symbolType = seriesModel.get('symbol');\n var symbolSize = seriesModel.get('symbolSize');\n var keepAspect = seriesModel.get('symbolKeepAspect');\n var symbolRotate = seriesModel.get('symbolRotate');\n var hasSymbolTypeCallback = isFunction(symbolType);\n var hasSymbolSizeCallback = isFunction(symbolSize);\n var hasSymbolRotateCallback = isFunction(symbolRotate);\n var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\n var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : seriesModel.defaultSymbol;\n var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\n var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\n data.setVisual({\n legendSymbol: seriesModel.legendSymbol || seriesSymbol,\n symbol: seriesSymbol,\n symbolSize: seriesSymbolSize,\n symbolKeepAspect: keepAspect,\n symbolRotate: seriesSymbolRotate\n });\n\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n function dataEach(data, idx) {\n var rawValue = seriesModel.getRawValue(idx);\n var params = seriesModel.getDataParams(idx);\n hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\n hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\n }\n\n return {\n dataEach: hasCallback ? dataEach : null\n };\n }\n};\nvar dataSymbolTask = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n if (!seriesModel.hasSymbolVisual) {\n return;\n }\n\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n\n function dataEach(data, idx) {\n var itemModel = data.getItemModel(idx);\n var itemSymbolType = itemModel.getShallow('symbol', true);\n var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\n var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\n\n if (itemSymbolType != null) {\n data.setItemVisual(idx, 'symbol', itemSymbolType);\n }\n\n if (itemSymbolSize != null) {\n data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n }\n\n if (itemSymbolRotate != null) {\n data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\n }\n\n if (itemSymbolKeepAspect != null) {\n data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n }\n }\n\n return {\n dataEach: data.hasItemOption ? dataEach : null\n };\n }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getItemVisualFromData(data, dataIndex, key) {\n switch (key) {\n case 'color':\n var style = data.getItemVisual(dataIndex, 'style');\n return style[data.getVisual('drawType')];\n\n case 'opacity':\n return data.getItemVisual(dataIndex, 'style').opacity;\n\n case 'symbol':\n case 'symbolSize':\n case 'liftZ':\n return data.getItemVisual(dataIndex, key);\n\n default:\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Unknown visual type \" + key);\n }\n\n }\n}\nexport function getVisualFromData(data, key) {\n switch (key) {\n case 'color':\n var style = data.getVisual('style');\n return style[data.getVisual('drawType')];\n\n case 'opacity':\n return data.getVisual('style').opacity;\n\n case 'symbol':\n case 'symbolSize':\n case 'liftZ':\n return data.getVisual(key);\n\n default:\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Unknown visual type \" + key);\n }\n\n }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n switch (key) {\n case 'color':\n var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n style[data.getVisual('drawType')] = value;\n data.setItemVisual(dataIndex, 'colorFromPalette', false);\n break;\n\n case 'opacity':\n data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n break;\n\n case 'symbol':\n case 'symbolSize':\n case 'liftZ':\n data.setItemVisual(dataIndex, key, value);\n break;\n\n default:\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Unknown visual type \" + key);\n }\n\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Point, Path, Polyline } from '../util/graphic';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { normalizeRadian } from 'zrender/lib/contain/util';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util';\nimport { invert } from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n var width = rect.width;\n var height = rect.height;\n\n switch (pos) {\n case 'top':\n outPt.set(rect.x + width / 2, rect.y - distance);\n outDir.set(0, -1);\n break;\n\n case 'bottom':\n outPt.set(rect.x + width / 2, rect.y + height + distance);\n outDir.set(0, 1);\n break;\n\n case 'left':\n outPt.set(rect.x - distance, rect.y + height / 2);\n outDir.set(-1, 0);\n break;\n\n case 'right':\n outPt.set(rect.x + width + distance, rect.y + height / 2);\n outDir.set(1, 0);\n break;\n }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n x -= cx;\n y -= cy;\n var d = Math.sqrt(x * x + y * y);\n x /= d;\n y /= d;\n var ox = x * r + cx;\n var oy = y * r + cy;\n\n if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n out[0] = ox;\n out[1] = oy;\n return d - r;\n }\n\n if (anticlockwise) {\n var tmp = startAngle;\n startAngle = normalizeRadian(endAngle);\n endAngle = normalizeRadian(tmp);\n } else {\n startAngle = normalizeRadian(startAngle);\n endAngle = normalizeRadian(endAngle);\n }\n\n if (startAngle > endAngle) {\n endAngle += PI2;\n }\n\n var angle = Math.atan2(y, x);\n\n if (angle < 0) {\n angle += PI2;\n }\n\n if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n out[0] = ox;\n out[1] = oy;\n return d - r;\n }\n\n var x1 = r * Math.cos(startAngle) + cx;\n var y1 = r * Math.sin(startAngle) + cy;\n var x2 = r * Math.cos(endAngle) + cx;\n var y2 = r * Math.sin(endAngle) + cy;\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n if (d1 < d2) {\n out[0] = x1;\n out[1] = y1;\n return Math.sqrt(d1);\n } else {\n out[0] = x2;\n out[1] = y2;\n return Math.sqrt(d2);\n }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n var dx = x - x1;\n var dy = y - y1;\n var dx1 = x2 - x1;\n var dy1 = y2 - y1;\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n dx1 /= lineLen;\n dy1 /= lineLen;\n var projectedLen = dx * dx1 + dy * dy1;\n var t = projectedLen / lineLen;\n\n if (limitToEnds) {\n t = Math.min(Math.max(t, 0), 1);\n }\n\n t *= lineLen;\n var ox = out[0] = x1 + t * dx1;\n var oy = out[1] = y1 + t * dy1;\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n if (width < 0) {\n x1 = x1 + width;\n width = -width;\n }\n\n if (height < 0) {\n y1 = y1 + height;\n height = -height;\n }\n\n var x2 = x1 + width;\n var y2 = y1 + height;\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n out.set(tmpPt[0], tmpPt[1]);\n return dist;\n}\n\nfunction nearestPointOnPath(pt, path, out) {\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var x1;\n var y1;\n var minDist = Infinity;\n var data = path.data;\n var x = pt.x;\n var y = pt.y;\n\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n\n if (i === 1) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n\n var d = minDist;\n\n switch (cmd) {\n case CMD.M:\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n break;\n\n case CMD.L:\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.C:\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.Q:\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++];\n i += 1;\n var anticlockwise = !!(1 - data[i++]);\n x1 = Math.cos(theta) * rx + cx;\n y1 = Math.sin(theta) * ry + cy;\n\n if (i <= 1) {\n x0 = x1;\n y0 = y1;\n }\n\n var _x = (x - cx) * ry / rx + cx;\n\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n xi = Math.cos(theta + dTheta) * rx + cx;\n yi = Math.sin(theta + dTheta) * ry + cy;\n break;\n\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n break;\n\n case CMD.Z:\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n xi = x0;\n yi = y0;\n break;\n }\n\n if (d < minDist) {\n minDist = d;\n out.set(tmpPt[0], tmpPt[1]);\n }\n }\n\n return minDist;\n}\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\nexport function updateLabelLinePoints(target, labelLineModel) {\n if (!target) {\n return;\n }\n\n var labelLine = target.getTextGuideLine();\n var label = target.getTextContent();\n\n if (!(label && labelLine)) {\n return;\n }\n\n var labelGuideConfig = target.textGuideLineConfig || {};\n var points = [[0, 0], [0, 0], [0, 0]];\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n var labelRect = label.getBoundingRect().clone();\n labelRect.applyTransform(label.getComputedTransform());\n var minDist = Infinity;\n var anchorPoint = labelGuideConfig.anchor;\n var targetTransform = target.getComputedTransform();\n var targetInversedTransform = targetTransform && invert([], targetTransform);\n var len = labelLineModel.get('length2') || 0;\n\n if (anchorPoint) {\n pt2.copy(anchorPoint);\n }\n\n for (var i = 0; i < searchSpace.length; i++) {\n var candidate = searchSpace[i];\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n Point.scaleAndAdd(pt1, pt0, dir, len);\n pt1.transform(targetInversedTransform);\n var boundingRect = target.getBoundingRect();\n var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n\n if (dist < minDist) {\n minDist = dist;\n pt1.transform(targetTransform);\n pt2.transform(targetTransform);\n pt2.toArray(points[0]);\n pt1.toArray(points[1]);\n pt0.toArray(points[2]);\n }\n }\n\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n labelLine.setShape({\n points: points\n });\n}\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n return;\n }\n\n minTurnAngle = minTurnAngle / 180 * Math.PI;\n pt0.fromArray(linePoints[0]);\n pt1.fromArray(linePoints[1]);\n pt2.fromArray(linePoints[2]);\n Point.sub(dir, pt0, pt1);\n Point.sub(dir2, pt2, pt1);\n var len1 = dir.len();\n var len2 = dir2.len();\n\n if (len1 < 1e-3 || len2 < 1e-3) {\n return;\n }\n\n dir.scale(1 / len1);\n dir2.scale(1 / len2);\n var angleCos = dir.dot(dir2);\n var minTurnAngleCos = Math.cos(minTurnAngle);\n\n if (minTurnAngleCos < angleCos) {\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n tmpProjPoint.fromArray(tmpArr);\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n if (isNaN(t)) {\n return;\n }\n\n if (t < 0) {\n Point.copy(tmpProjPoint, pt1);\n } else if (t > 1) {\n Point.copy(tmpProjPoint, pt2);\n }\n\n tmpProjPoint.toArray(linePoints[1]);\n }\n}\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n return;\n }\n\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n pt0.fromArray(linePoints[0]);\n pt1.fromArray(linePoints[1]);\n pt2.fromArray(linePoints[2]);\n Point.sub(dir, pt1, pt0);\n Point.sub(dir2, pt2, pt1);\n var len1 = dir.len();\n var len2 = dir2.len();\n\n if (len1 < 1e-3 || len2 < 1e-3) {\n return;\n }\n\n dir.scale(1 / len1);\n dir2.scale(1 / len2);\n var angleCos = dir.dot(surfaceNormal);\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n if (angleCos < maxSurfaceAngleCos) {\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n tmpProjPoint.fromArray(tmpArr);\n var HALF_PI = Math.PI / 2;\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n if (newAngle >= HALF_PI) {\n Point.copy(tmpProjPoint, pt2);\n } else {\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n if (isNaN(t)) {\n return;\n }\n\n if (t < 0) {\n Point.copy(tmpProjPoint, pt1);\n } else if (t > 1) {\n Point.copy(tmpProjPoint, pt2);\n }\n }\n\n tmpProjPoint.toArray(linePoints[1]);\n }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n var isNormal = stateName === 'normal';\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n stateObj.ignore = ignore;\n var smooth = stateModel.get('smooth');\n\n if (smooth && smooth === true) {\n smooth = 0.3;\n }\n\n stateObj.shape = stateObj.shape || {};\n\n if (smooth > 0) {\n stateObj.shape.smooth = smooth;\n }\n\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n var smooth = shape.smooth;\n var points = shape.points;\n\n if (!points) {\n return;\n }\n\n path.moveTo(points[0][0], points[0][1]);\n\n if (smooth > 0 && points.length >= 3) {\n var len1 = vector.dist(points[0], points[1]);\n var len2 = vector.dist(points[1], points[2]);\n\n if (!len1 || !len2) {\n path.lineTo(points[1][0], points[1][1]);\n path.lineTo(points[2][0], points[2][1]);\n return;\n }\n\n var moveLen = Math.min(len1, len2) * smooth;\n var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n } else {\n for (var i = 1; i < points.length; i++) {\n path.lineTo(points[i][0], points[i][1]);\n }\n }\n}\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n var labelLine = targetEl.getTextGuideLine();\n var label = targetEl.getTextContent();\n\n if (!label) {\n if (labelLine) {\n targetEl.removeTextGuideLine();\n }\n\n return;\n }\n\n var normalModel = statesModels.normal;\n var showNormal = normalModel.get('show');\n var labelIgnoreNormal = label.ignore;\n\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\n var stateName = DISPLAY_STATES[i];\n var stateModel = statesModels[stateName];\n var isNormal = stateName === 'normal';\n\n if (stateModel) {\n var stateShow = stateModel.get('show');\n var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n if (isLabelIgnored || !retrieve2(stateShow, showNormal)) {\n var stateObj = isNormal ? labelLine : labelLine && labelLine.states.normal;\n\n if (stateObj) {\n stateObj.ignore = true;\n }\n\n continue;\n }\n\n if (!labelLine) {\n labelLine = new Polyline();\n targetEl.setTextGuideLine(labelLine);\n\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n }\n\n if (targetEl.stateProxy) {\n labelLine.stateProxy = targetEl.stateProxy;\n }\n }\n\n setLabelLineState(labelLine, false, stateName, stateModel);\n }\n }\n\n if (labelLine) {\n defaults(labelLine.style, defaultStyle);\n labelLine.style.fill = null;\n var showAbove = normalModel.get('showAbove');\n var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n labelLineConfig.showAbove = showAbove || false;\n labelLine.buildPath = buildLabelLinePath;\n }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n labelLineName = labelLineName || 'labelLine';\n var statesModels = {\n normal: itemModel.getModel(labelLineName)\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n }\n\n return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic';\nexport function prepareLayoutList(input) {\n var list = [];\n\n for (var i = 0; i < input.length; i++) {\n var rawItem = input[i];\n\n if (rawItem.defaultAttr.ignore) {\n continue;\n }\n\n var label = rawItem.label;\n var transform = label.getComputedTransform();\n var localRect = label.getBoundingRect();\n var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n var minMargin = label.style.margin || 0;\n var globalRect = localRect.clone();\n globalRect.applyTransform(transform);\n globalRect.x -= minMargin / 2;\n globalRect.y -= minMargin / 2;\n globalRect.width += minMargin;\n globalRect.height += minMargin;\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n list.push({\n label: label,\n labelLine: rawItem.labelLine,\n rect: globalRect,\n localRect: localRect,\n obb: obb,\n priority: rawItem.priority,\n defaultAttr: rawItem.defaultAttr,\n layoutOption: rawItem.computedLayoutOption,\n axisAligned: isAxisAligned,\n transform: transform\n });\n }\n\n return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n var len = list.length;\n\n if (len < 2) {\n return;\n }\n\n list.sort(function (a, b) {\n return a.rect[xyDim] - b.rect[xyDim];\n });\n var lastPos = 0;\n var delta;\n var adjusted = false;\n var shifts = [];\n var totalShifts = 0;\n\n for (var i = 0; i < len; i++) {\n var item = list[i];\n var rect = item.rect;\n delta = rect[xyDim] - lastPos;\n\n if (delta < 0) {\n rect[xyDim] -= delta;\n item.label[xyDim] -= delta;\n adjusted = true;\n }\n\n var shift = Math.max(-delta, 0);\n shifts.push(shift);\n totalShifts += shift;\n lastPos = rect[xyDim] + rect[sizeDim];\n }\n\n if (totalShifts > 0 && balanceShift) {\n shiftList(-totalShifts / len, 0, len);\n }\n\n var first = list[0];\n var last = list[len - 1];\n var minGap;\n var maxGap;\n updateMinMaxGap();\n minGap < 0 && squeezeGaps(-minGap, 0.8);\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\n updateMinMaxGap();\n takeBoundsGap(minGap, maxGap, 1);\n takeBoundsGap(maxGap, minGap, -1);\n updateMinMaxGap();\n\n if (minGap < 0) {\n squeezeWhenBailout(-minGap);\n }\n\n if (maxGap < 0) {\n squeezeWhenBailout(maxGap);\n }\n\n function updateMinMaxGap() {\n minGap = first.rect[xyDim] - minBound;\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n }\n\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n if (gapThisBound < 0) {\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n if (moveFromMaxGap > 0) {\n shiftList(moveFromMaxGap * moveDir, 0, len);\n var remained = moveFromMaxGap + gapThisBound;\n\n if (remained < 0) {\n squeezeGaps(-remained * moveDir, 1);\n }\n } else {\n squeezeGaps(-gapThisBound * moveDir, 1);\n }\n }\n }\n\n function shiftList(delta, start, end) {\n if (delta !== 0) {\n adjusted = true;\n }\n\n for (var i = start; i < end; i++) {\n var item = list[i];\n var rect = item.rect;\n rect[xyDim] += delta;\n item.label[xyDim] += delta;\n }\n }\n\n function squeezeGaps(delta, maxSqeezePercent) {\n var gaps = [];\n var totalGaps = 0;\n\n for (var i = 1; i < len; i++) {\n var prevItemRect = list[i - 1].rect;\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n gaps.push(gap);\n totalGaps += gap;\n }\n\n if (!totalGaps) {\n return;\n }\n\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n if (delta > 0) {\n for (var i = 0; i < len - 1; i++) {\n var movement = gaps[i] * squeezePercent;\n shiftList(movement, 0, i + 1);\n }\n } else {\n for (var i = len - 1; i > 0; i--) {\n var movement = gaps[i - 1] * squeezePercent;\n shiftList(-movement, i, len);\n }\n }\n }\n\n function squeezeWhenBailout(delta) {\n var dir = delta < 0 ? -1 : 1;\n delta = Math.abs(delta);\n var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n for (var i = 0; i < len - 1; i++) {\n if (dir > 0) {\n shiftList(moveForEachLabel, 0, i + 1);\n } else {\n shiftList(-moveForEachLabel, len - i - 1, len);\n }\n\n delta -= moveForEachLabel;\n\n if (delta <= 0) {\n return;\n }\n }\n }\n\n return adjusted;\n}\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\nexport function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n var displayedLabels = [];\n labelList.sort(function (a, b) {\n return b.priority - a.priority;\n });\n var globalRect = new BoundingRect(0, 0, 0, 0);\n\n function hideEl(el) {\n if (!el.ignore) {\n var emphasisState = el.ensureState('emphasis');\n\n if (emphasisState.ignore == null) {\n emphasisState.ignore = false;\n }\n }\n\n el.ignore = true;\n }\n\n for (var i = 0; i < labelList.length; i++) {\n var labelItem = labelList[i];\n var isAxisAligned = labelItem.axisAligned;\n var localRect = labelItem.localRect;\n var transform = labelItem.transform;\n var label = labelItem.label;\n var labelLine = labelItem.labelLine;\n globalRect.copy(labelItem.rect);\n globalRect.width -= 0.1;\n globalRect.height -= 0.1;\n globalRect.x += 0.05;\n globalRect.y += 0.05;\n var obb = labelItem.obb;\n var overlapped = false;\n\n for (var j = 0; j < displayedLabels.length; j++) {\n var existsTextCfg = displayedLabels[j];\n\n if (!globalRect.intersect(existsTextCfg.rect)) {\n continue;\n }\n\n if (isAxisAligned && existsTextCfg.axisAligned) {\n overlapped = true;\n break;\n }\n\n if (!existsTextCfg.obb) {\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n }\n\n if (!obb) {\n obb = new OrientedBoundingRect(localRect, transform);\n }\n\n if (obb.intersect(existsTextCfg.obb)) {\n overlapped = true;\n break;\n }\n }\n\n if (overlapped) {\n hideEl(label);\n labelLine && hideEl(labelLine);\n } else {\n label.attr('ignore', labelItem.defaultAttr.ignore);\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n displayedLabels.push(labelItem);\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { parsePercent } from '../util/number';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper';\nimport { makeInner } from '../util/model';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper';\nimport { labelInner, animateLabelValue } from './labelStyle';\n\nfunction cloneArr(points) {\n if (points) {\n var newPoints = [];\n\n for (var i = 0; i < points.length; i++) {\n newPoints.push(points[i].slice());\n }\n\n return newPoints;\n }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n var label = labelItem.label;\n var labelLine = hostEl && hostEl.getTextGuideLine();\n return {\n dataIndex: labelItem.dataIndex,\n dataType: labelItem.dataType,\n seriesIndex: labelItem.seriesModel.seriesIndex,\n text: labelItem.label.style.text,\n rect: labelItem.hostRect,\n labelRect: labelItem.rect,\n align: label.style.align,\n verticalAlign: label.style.verticalAlign,\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (source[key] != null) {\n target[key] = source[key];\n }\n }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager = function () {\n function LabelManager() {\n this._labelList = [];\n this._chartViewList = [];\n }\n\n LabelManager.prototype.clearLabels = function () {\n this._labelList = [];\n this._chartViewList = [];\n };\n\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n var labelStyle = label.style;\n var hostEl = label.__hostTarget;\n var textConfig = hostEl.textConfig || {};\n var labelTransform = label.getComputedTransform();\n var labelRect = label.getBoundingRect().plain();\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n if (labelTransform) {\n dummyTransformable.setLocalTransform(labelTransform);\n } else {\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n }\n\n var host = label.__hostTarget;\n var hostRect;\n\n if (host) {\n hostRect = host.getBoundingRect().plain();\n var transform = host.getComputedTransform();\n BoundingRect.applyTransform(hostRect, hostRect, transform);\n }\n\n var labelGuide = hostRect && host.getTextGuideLine();\n\n this._labelList.push({\n label: label,\n labelLine: labelGuide,\n seriesModel: seriesModel,\n dataIndex: dataIndex,\n dataType: dataType,\n layoutOption: layoutOption,\n computedLayoutOption: null,\n rect: labelRect,\n hostRect: hostRect,\n priority: hostRect ? hostRect.width * hostRect.height : 0,\n defaultAttr: {\n ignore: label.ignore,\n labelGuideIgnore: labelGuide && labelGuide.ignore,\n x: dummyTransformable.x,\n y: dummyTransformable.y,\n rotation: dummyTransformable.rotation,\n style: {\n x: labelStyle.x,\n y: labelStyle.y,\n align: labelStyle.align,\n verticalAlign: labelStyle.verticalAlign,\n width: labelStyle.width,\n height: labelStyle.height,\n fontSize: labelStyle.fontSize\n },\n cursor: label.cursor,\n attachedPos: textConfig.position,\n attachedRot: textConfig.rotation\n }\n });\n };\n\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n var _this = this;\n\n this._chartViewList.push(chartView);\n\n var seriesModel = chartView.__model;\n var layoutOption = seriesModel.get('labelLayout');\n\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n return;\n }\n\n chartView.group.traverse(function (child) {\n if (child.ignore) {\n return true;\n }\n\n var textEl = child.getTextContent();\n var ecData = getECData(child);\n\n if (textEl && !textEl.disableLabelLayout) {\n _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n }\n });\n };\n\n LabelManager.prototype.updateLayoutConfig = function (api) {\n var width = api.getWidth();\n var height = api.getHeight();\n\n function createDragHandler(el, labelLineModel) {\n return function () {\n updateLabelLinePoints(el, labelLineModel);\n };\n }\n\n for (var i = 0; i < this._labelList.length; i++) {\n var labelItem = this._labelList[i];\n var label = labelItem.label;\n var hostEl = label.__hostTarget;\n var defaultLabelAttr = labelItem.defaultAttr;\n var layoutOption = void 0;\n\n if (typeof labelItem.layoutOption === 'function') {\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n } else {\n layoutOption = labelItem.layoutOption;\n }\n\n layoutOption = layoutOption || {};\n labelItem.computedLayoutOption = layoutOption;\n var degreeToRadian = Math.PI / 180;\n\n if (hostEl) {\n hostEl.setTextConfig({\n local: false,\n position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n });\n }\n\n var needsUpdateLabelLine = false;\n\n if (layoutOption.x != null) {\n label.x = parsePercent(layoutOption.x, width);\n label.setStyle('x', 0);\n needsUpdateLabelLine = true;\n } else {\n label.x = defaultLabelAttr.x;\n label.setStyle('x', defaultLabelAttr.style.x);\n }\n\n if (layoutOption.y != null) {\n label.y = parsePercent(layoutOption.y, height);\n label.setStyle('y', 0);\n needsUpdateLabelLine = true;\n } else {\n label.y = defaultLabelAttr.y;\n label.setStyle('y', defaultLabelAttr.style.y);\n }\n\n if (layoutOption.labelLinePoints) {\n var guideLine = hostEl.getTextGuideLine();\n\n if (guideLine) {\n guideLine.setShape({\n points: layoutOption.labelLinePoints\n });\n needsUpdateLabelLine = false;\n }\n }\n\n var labelLayoutStore = labelLayoutInnerStore(label);\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n }\n\n if (layoutOption.draggable) {\n label.draggable = true;\n label.cursor = 'move';\n\n if (hostEl) {\n var hostModel = labelItem.seriesModel;\n\n if (labelItem.dataIndex != null) {\n var data = labelItem.seriesModel.getData(labelItem.dataType);\n hostModel = data.getItemModel(labelItem.dataIndex);\n }\n\n label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n }\n } else {\n label.off('drag');\n label.cursor = defaultLabelAttr.cursor;\n }\n }\n };\n\n LabelManager.prototype.layout = function (api) {\n var width = api.getWidth();\n var height = api.getHeight();\n var labelList = prepareLayoutList(this._labelList);\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n return item.layoutOption.moveOverlap === 'shiftX';\n });\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n return item.layoutOption.moveOverlap === 'shiftY';\n });\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\n return item.layoutOption.hideOverlap;\n });\n hideOverlap(labelsNeedsHideOverlap);\n };\n\n LabelManager.prototype.processLabelsOverall = function () {\n var _this = this;\n\n each(this._chartViewList, function (chartView) {\n var seriesModel = chartView.__model;\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n var animationEnabled = seriesModel.isAnimationEnabled();\n chartView.group.traverse(function (child) {\n if (child.ignore) {\n return true;\n }\n\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n var label = child.getTextContent();\n\n if (!needsUpdateLabelLine && label) {\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n }\n\n if (needsUpdateLabelLine) {\n _this._updateLabelLine(child, seriesModel);\n }\n\n if (animationEnabled) {\n _this._animateLabels(child, seriesModel);\n }\n });\n });\n };\n\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n var textEl = el.getTextContent();\n var ecData = getECData(el);\n var dataIndex = ecData.dataIndex;\n\n if (textEl && dataIndex != null) {\n var data = seriesModel.getData(ecData.dataType);\n var itemModel = data.getItemModel(dataIndex);\n var defaultStyle = {};\n var visualStyle = data.getItemVisual(dataIndex, 'style');\n var visualType = data.getVisual('drawType');\n defaultStyle.stroke = visualStyle[visualType];\n var labelLineModel = itemModel.getModel('labelLine');\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n updateLabelLinePoints(el, labelLineModel);\n }\n };\n\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\n var textEl = el.getTextContent();\n var guideLine = el.getTextGuideLine();\n\n if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el)) {\n var layoutStore = labelLayoutInnerStore(textEl);\n var oldLayout = layoutStore.oldLayout;\n var ecData = getECData(el);\n var dataIndex = ecData.dataIndex;\n var newProps = {\n x: textEl.x,\n y: textEl.y,\n rotation: textEl.rotation\n };\n var data = seriesModel.getData(ecData.dataType);\n\n if (!oldLayout) {\n textEl.attr(newProps);\n\n if (!labelInner(textEl).valueAnimation) {\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\n textEl.style.opacity = 0;\n initProps(textEl, {\n style: {\n opacity: oldOpacity\n }\n }, seriesModel, dataIndex);\n }\n } else {\n textEl.attr(oldLayout);\n var prevStates = el.prevStates;\n\n if (prevStates) {\n if (indexOf(prevStates, 'select') >= 0) {\n textEl.attr(layoutStore.oldLayoutSelect);\n }\n\n if (indexOf(prevStates, 'emphasis') >= 0) {\n textEl.attr(layoutStore.oldLayoutEmphasis);\n }\n }\n\n updateProps(textEl, newProps, seriesModel, dataIndex);\n }\n\n layoutStore.oldLayout = newProps;\n\n if (textEl.states.select) {\n var layoutSelect = layoutStore.oldLayoutSelect = {};\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n }\n\n if (textEl.states.emphasis) {\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n }\n\n animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n }\n\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n var layoutStore = labelLineAnimationStore(guideLine);\n var oldLayout = layoutStore.oldLayout;\n var newLayout = {\n points: guideLine.shape.points\n };\n\n if (!oldLayout) {\n guideLine.setShape(newLayout);\n guideLine.style.strokePercent = 0;\n initProps(guideLine, {\n style: {\n strokePercent: 1\n }\n }, seriesModel);\n } else {\n guideLine.attr({\n shape: oldLayout\n });\n updateProps(guideLine, {\n shape: newLayout\n }, seriesModel);\n }\n\n layoutStore.oldLayout = newLayout;\n }\n };\n\n return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend, each, isArray } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log';\nimport { queryDataIndex } from '../util/model';\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n function getSeriesIndices(ecModel, payload) {\n var seriesIndices = [];\n ecModel.eachComponent({\n mainType: 'series',\n subType: seriesType,\n query: payload\n }, function (seriesModel) {\n seriesIndices.push(seriesModel.seriesIndex);\n });\n return seriesIndices;\n }\n\n each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n payload = extend({}, payload);\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(payload.type, eventsMap[1]);\n }\n\n api.dispatchAction(extend(payload, {\n type: eventsMap[1],\n seriesIndex: getSeriesIndices(ecModel, payload)\n }));\n });\n });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n var legacyEventName = type + eventPostfix;\n\n if (!ecIns.isSilent(legacyEventName)) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n }\n\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'pie'\n }, function (seriesModel) {\n var seriesIndex = seriesModel.seriesIndex;\n var selected = payload.selected;\n\n for (var i = 0; i < selected.length; i++) {\n if (selected[i].seriesIndex === seriesIndex) {\n var data = seriesModel.getData();\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n ecIns.trigger(legacyEventName, {\n type: legacyEventName,\n seriesId: seriesModel.id,\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n selected: extend({}, seriesModel.option.selectedMap)\n });\n }\n }\n });\n }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n messageCenter.on('selectchanged', function (params) {\n var ecModel = api.getModel();\n\n if (params.isFromClick) {\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n } else if (params.fromAction === 'select') {\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n } else if (params.fromAction === 'unselect') {\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n var found;\n\n while (target) {\n if (det(target)) {\n found = target;\n\n if (returnFirstMatch) {\n break;\n }\n }\n\n target = target.__hostTarget || target.parent;\n }\n\n return found;\n}","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar WeakMap = (function () {\n function WeakMap() {\n this._id = '__ec_inner_' + wmUniqueIndex++;\n }\n WeakMap.prototype.get = function (key) {\n return this._guard(key)[this._id];\n };\n WeakMap.prototype.set = function (key, value) {\n var target = this._guard(key);\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(target, this._id, {\n value: value,\n enumerable: false,\n configurable: true\n });\n }\n else {\n target[this._id] = value;\n }\n return this;\n };\n WeakMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n delete this._guard(key)[this._id];\n return true;\n }\n return false;\n };\n WeakMap.prototype.has = function (key) {\n return !!this._guard(key)[this._id];\n };\n WeakMap.prototype._guard = function (key) {\n if (key !== Object(key)) {\n throw TypeError('Value of WeakMap is not a non-null object.');\n }\n return key;\n };\n return WeakMap;\n}());\nexport default WeakMap;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from './graphic';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { calculateTextPosition } from 'zrender/lib/contain/text';\nvar Triangle = graphic.Path.extend({\n type: 'triangle',\n shape: {\n cx: 0,\n cy: 0,\n width: 0,\n height: 0\n },\n buildPath: function (path, shape) {\n var cx = shape.cx;\n var cy = shape.cy;\n var width = shape.width / 2;\n var height = shape.height / 2;\n path.moveTo(cx, cy - height);\n path.lineTo(cx + width, cy + height);\n path.lineTo(cx - width, cy + height);\n path.closePath();\n }\n});\nvar Diamond = graphic.Path.extend({\n type: 'diamond',\n shape: {\n cx: 0,\n cy: 0,\n width: 0,\n height: 0\n },\n buildPath: function (path, shape) {\n var cx = shape.cx;\n var cy = shape.cy;\n var width = shape.width / 2;\n var height = shape.height / 2;\n path.moveTo(cx, cy - height);\n path.lineTo(cx + width, cy);\n path.lineTo(cx, cy + height);\n path.lineTo(cx - width, cy);\n path.closePath();\n }\n});\nvar Pin = graphic.Path.extend({\n type: 'pin',\n shape: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n buildPath: function (path, shape) {\n var x = shape.x;\n var y = shape.y;\n var w = shape.width / 5 * 3;\n var h = Math.max(w, shape.height);\n var r = w / 2;\n var dy = r * r / (h - r);\n var cy = y - h + r + dy;\n var angle = Math.asin(dy / r);\n var dx = Math.cos(angle) * r;\n var tanX = Math.sin(angle);\n var tanY = Math.cos(angle);\n var cpLen = r * 0.6;\n var cpLen2 = r * 0.7;\n path.moveTo(x - dx, cy + dy);\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n path.closePath();\n }\n});\nvar Arrow = graphic.Path.extend({\n type: 'arrow',\n shape: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n buildPath: function (ctx, shape) {\n var height = shape.height;\n var width = shape.width;\n var x = shape.x;\n var y = shape.y;\n var dx = width / 3 * 2;\n ctx.moveTo(x, y);\n ctx.lineTo(x + dx, y + height);\n ctx.lineTo(x, y + height / 4 * 3);\n ctx.lineTo(x - dx, y + height);\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n});\nvar symbolCtors = {\n line: graphic.Rect,\n rect: graphic.Rect,\n roundRect: graphic.Rect,\n square: graphic.Rect,\n circle: graphic.Circle,\n diamond: Diamond,\n pin: Pin,\n arrow: Arrow,\n triangle: Triangle\n};\nvar symbolShapeMakers = {\n line: function (x, y, w, h, shape) {\n var thickness = 2;\n shape.x = x;\n shape.y = y + h / 2 - thickness / 2;\n shape.width = w;\n shape.height = thickness;\n },\n rect: function (x, y, w, h, shape) {\n shape.x = x;\n shape.y = y;\n shape.width = w;\n shape.height = h;\n },\n roundRect: function (x, y, w, h, shape) {\n shape.x = x;\n shape.y = y;\n shape.width = w;\n shape.height = h;\n shape.r = Math.min(w, h) / 4;\n },\n square: function (x, y, w, h, shape) {\n var size = Math.min(w, h);\n shape.x = x;\n shape.y = y;\n shape.width = size;\n shape.height = size;\n },\n circle: function (x, y, w, h, shape) {\n shape.cx = x + w / 2;\n shape.cy = y + h / 2;\n shape.r = Math.min(w, h) / 2;\n },\n diamond: function (x, y, w, h, shape) {\n shape.cx = x + w / 2;\n shape.cy = y + h / 2;\n shape.width = w;\n shape.height = h;\n },\n pin: function (x, y, w, h, shape) {\n shape.x = x + w / 2;\n shape.y = y + h / 2;\n shape.width = w;\n shape.height = h;\n },\n arrow: function (x, y, w, h, shape) {\n shape.x = x + w / 2;\n shape.y = y + h / 2;\n shape.width = w;\n shape.height = h;\n },\n triangle: function (x, y, w, h, shape) {\n shape.cx = x + w / 2;\n shape.cy = y + h / 2;\n shape.width = w;\n shape.height = h;\n }\n};\nexport var symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n type: 'symbol',\n shape: {\n symbolType: '',\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n calculateTextPosition: function (out, config, rect) {\n var res = calculateTextPosition(out, config, rect);\n var shape = this.shape;\n\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n res.y = rect.y + rect.height * 0.4;\n }\n\n return res;\n },\n buildPath: function (ctx, shape, inBundle) {\n var symbolType = shape.symbolType;\n\n if (symbolType !== 'none') {\n var proxySymbol = symbolBuildProxies[symbolType];\n\n if (!proxySymbol) {\n symbolType = 'rect';\n proxySymbol = symbolBuildProxies[symbolType];\n }\n\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n }\n }\n});\n\nfunction symbolPathSetColor(color, innerColor) {\n if (this.type !== 'image') {\n var symbolStyle = this.style;\n\n if (this.__isEmptyBrush) {\n symbolStyle.stroke = color;\n symbolStyle.fill = innerColor || '#fff';\n symbolStyle.lineWidth = 2;\n } else {\n symbolStyle.fill = color;\n }\n\n this.markRedraw();\n }\n}\n\nexport function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n var isEmpty = symbolType.indexOf('empty') === 0;\n\n if (isEmpty) {\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n }\n\n var symbolPath;\n\n if (symbolType.indexOf('image://') === 0) {\n symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n } else if (symbolType.indexOf('path://') === 0) {\n symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n } else {\n symbolPath = new SymbolClz({\n shape: {\n symbolType: symbolType,\n x: x,\n y: y,\n width: w,\n height: h\n }\n });\n }\n\n symbolPath.__isEmptyBrush = isEmpty;\n symbolPath.setColor = symbolPathSetColor;\n\n if (color) {\n symbolPath.setColor(color);\n }\n\n return symbolPath;\n}","export function createLinearGradient(ctx, obj, rect) {\n var x = obj.x == null ? 0 : obj.x;\n var x2 = obj.x2 == null ? 1 : obj.x2;\n var y = obj.y == null ? 0 : obj.y;\n var y2 = obj.y2 == null ? 0 : obj.y2;\n if (!obj.global) {\n x = x * rect.width + rect.x;\n x2 = x2 * rect.width + rect.x;\n y = y * rect.height + rect.y;\n y2 = y2 * rect.height + rect.y;\n }\n x = isNaN(x) ? 0 : x;\n x2 = isNaN(x2) ? 1 : x2;\n y = isNaN(y) ? 0 : y;\n y2 = isNaN(y2) ? 0 : y2;\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n var width = rect.width;\n var height = rect.height;\n var min = Math.min(width, height);\n var x = obj.x == null ? 0.5 : obj.x;\n var y = obj.y == null ? 0.5 : obj.y;\n var r = obj.r == null ? 0.5 : obj.r;\n if (!obj.global) {\n x = x * width + rect.x;\n y = y * height + rect.y;\n r = r * min;\n }\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n var canvasGradient = obj.type === 'radial'\n ? createRadialGradient(ctx, obj, rect)\n : createLinearGradient(ctx, obj, rect);\n var colorStops = obj.colorStops;\n for (var i = 0; i < colorStops.length; i++) {\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n }\n return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n return false;\n }\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n return true;\n }\n for (var i = 0; i < clipPaths.length; i++) {\n if (clipPaths[i] !== prevClipPaths[i]) {\n return true;\n }\n }\n return false;\n}\n","import { isArray, isNumber } from '../../core/util';\nexport function normalizeLineDash(lineType, lineWidth) {\n if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n return null;\n }\n lineWidth = lineWidth || 1;\n return lineType === 'dashed'\n ? [4 * lineWidth, 2 * lineWidth]\n : lineType === 'dotted'\n ? [lineWidth]\n : isNumber(lineType)\n ? [lineType] : isArray(lineType) ? lineType : null;\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable';\nimport PathProxy from '../core/PathProxy';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image';\nimport { getCanvasGradient, isClipPathChanged } from './helper';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport { DEFAULT_FONT } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nimport Element from '../Element';\nimport IncrementalDisplayable from '../graphic/IncrementalDisplayable';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n var stroke = style.stroke;\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction styleHasFill(style) {\n var fill = style.fill;\n return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\n var originalGlobalAlpha = ctx.globalAlpha;\n ctx.globalAlpha = style.fillOpacity * style.opacity;\n ctx.fill();\n ctx.globalAlpha = originalGlobalAlpha;\n }\n else {\n ctx.fill();\n }\n}\nfunction doStrokePath(ctx, style) {\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n var originalGlobalAlpha = ctx.globalAlpha;\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\n ctx.stroke();\n ctx.globalAlpha = originalGlobalAlpha;\n }\n else {\n ctx.stroke();\n }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n if (isImageReady(image)) {\n var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n if (typeof DOMMatrix === 'function') {\n var matrix = new DOMMatrix();\n matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\n matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n canvasPattern.setTransform(matrix);\n }\n return canvasPattern;\n }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n var hasStroke = styleHasStroke(style);\n var hasFill = styleHasFill(style);\n var strokePercent = style.strokePercent;\n var strokePart = strokePercent < 1;\n var firstDraw = !el.path;\n if ((!el.silent || strokePart) && firstDraw) {\n el.createPathProxy();\n }\n var path = el.path || pathProxyForDraw;\n if (!inBatch) {\n var fill = style.fill;\n var stroke = style.stroke;\n var hasFillGradient = hasFill && !!fill.colorStops;\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n var hasFillPattern = hasFill && !!fill.image;\n var hasStrokePattern = hasStroke && !!stroke.image;\n var fillGradient = void 0;\n var strokeGradient = void 0;\n var fillPattern = void 0;\n var strokePattern = void 0;\n var rect = void 0;\n if (hasFillGradient || hasStrokeGradient) {\n rect = el.getBoundingRect();\n }\n if (hasFillGradient) {\n fillGradient = el.__dirty\n ? getCanvasGradient(ctx, fill, rect)\n : el.__canvasFillGradient;\n el.__canvasFillGradient = fillGradient;\n }\n if (hasStrokeGradient) {\n strokeGradient = el.__dirty\n ? getCanvasGradient(ctx, stroke, rect)\n : el.__canvasStrokeGradient;\n el.__canvasStrokeGradient = strokeGradient;\n }\n if (hasFillPattern) {\n fillPattern = (el.__dirty || !el.__canvasFillPattern)\n ? createCanvasPattern(ctx, fill, el)\n : el.__canvasFillPattern;\n el.__canvasFillPattern = fillPattern;\n }\n if (hasStrokePattern) {\n strokePattern = (el.__dirty || !el.__canvasStrokePattern)\n ? createCanvasPattern(ctx, stroke, el)\n : el.__canvasStrokePattern;\n el.__canvasStrokePattern = fillPattern;\n }\n if (hasFillGradient) {\n ctx.fillStyle = fillGradient;\n }\n else if (hasFillPattern) {\n if (fillPattern) {\n ctx.fillStyle = fillPattern;\n }\n else {\n hasFill = false;\n }\n }\n if (hasStrokeGradient) {\n ctx.strokeStyle = strokeGradient;\n }\n else if (hasStrokePattern) {\n if (strokePattern) {\n ctx.strokeStyle = strokePattern;\n }\n else {\n hasStroke = false;\n }\n }\n }\n var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n var lineDashOffset = style.lineDashOffset;\n var ctxLineDash = !!ctx.setLineDash;\n var scale = el.getGlobalScale();\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n if (lineDash) {\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n if (lineScale_1 && lineScale_1 !== 1) {\n lineDash = map(lineDash, function (rawVal) {\n return rawVal / lineScale_1;\n });\n lineDashOffset /= lineScale_1;\n }\n }\n var needsRebuild = true;\n if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\n || (lineDash && !ctxLineDash && hasStroke)) {\n path.setDPR(ctx.dpr);\n if (strokePart) {\n path.setContext(null);\n }\n else {\n path.setContext(ctx);\n needsRebuild = false;\n }\n path.reset();\n if (lineDash && !ctxLineDash) {\n path.setLineDash(lineDash);\n path.setLineDashOffset(lineDashOffset);\n }\n el.buildPath(path, el.shape, inBatch);\n path.toStatic();\n el.pathUpdated();\n }\n if (needsRebuild) {\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n }\n if (lineDash && ctxLineDash) {\n ctx.setLineDash(lineDash);\n ctx.lineDashOffset = lineDashOffset;\n }\n if (!inBatch) {\n if (style.strokeFirst) {\n if (hasStroke) {\n doStrokePath(ctx, style);\n }\n if (hasFill) {\n doFillPath(ctx, style);\n }\n }\n else {\n if (hasFill) {\n doFillPath(ctx, style);\n }\n if (hasStroke) {\n doStrokePath(ctx, style);\n }\n }\n }\n if (lineDash && ctxLineDash) {\n ctx.setLineDash([]);\n }\n}\nfunction brushImage(ctx, el, style) {\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n if (!image || !isImageReady(image)) {\n return;\n }\n var x = style.x || 0;\n var y = style.y || 0;\n var width = el.getWidth();\n var height = el.getHeight();\n var aspect = image.width / image.height;\n if (width == null && height != null) {\n width = height * aspect;\n }\n else if (height == null && width != null) {\n height = width / aspect;\n }\n else if (width == null && height == null) {\n width = image.width;\n height = image.height;\n }\n if (style.sWidth && style.sHeight) {\n var sx = style.sx || 0;\n var sy = style.sy || 0;\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n }\n else if (style.sx && style.sy) {\n var sx = style.sx;\n var sy = style.sy;\n var sWidth = width - sx;\n var sHeight = height - sy;\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n}\nfunction brushText(ctx, el, style) {\n var text = style.text;\n text != null && (text += '');\n if (text) {\n ctx.font = style.font || DEFAULT_FONT;\n ctx.textAlign = style.textAlign;\n ctx.textBaseline = style.textBaseline;\n var hasLineDash = void 0;\n if (ctx.setLineDash) {\n var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n var lineDashOffset = style.lineDashOffset;\n if (lineDash) {\n var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n if (lineScale_2 && lineScale_2 !== 1) {\n lineDash = map(lineDash, function (rawVal) {\n return rawVal / lineScale_2;\n });\n lineDashOffset /= lineScale_2;\n }\n ctx.setLineDash(lineDash);\n ctx.lineDashOffset = lineDashOffset;\n hasLineDash = true;\n }\n }\n if (style.strokeFirst) {\n if (styleHasStroke(style)) {\n ctx.strokeText(text, style.x, style.y);\n }\n if (styleHasFill(style)) {\n ctx.fillText(text, style.x, style.y);\n }\n }\n else {\n if (styleHasFill(style)) {\n ctx.fillText(text, style.x, style.y);\n }\n if (styleHasStroke(style)) {\n ctx.strokeText(text, style.x, style.y);\n }\n }\n if (hasLineDash) {\n ctx.setLineDash([]);\n }\n }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n var styleChanged = false;\n if (!forceSetAll) {\n prevStyle = prevStyle || {};\n if (style === prevStyle) {\n return false;\n }\n }\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\n }\n if (forceSetAll || style.blend !== prevStyle.blend) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n }\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n var propName = SHADOW_NUMBER_PROPS[i];\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx[propName] = ctx.dpr * (style[propName] || 0);\n }\n }\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n }\n return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n var style = getStyle(el, scope.inHover);\n var prevStyle = forceSetAll\n ? null\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\n if (style === prevStyle) {\n return false;\n }\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n if (forceSetAll || style.fill !== prevStyle.fill) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.fillStyle = style.fill;\n }\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.strokeStyle = style.stroke;\n }\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n }\n if (el.hasStroke()) {\n var lineWidth = style.lineWidth;\n var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\n if (ctx.lineWidth !== newLineWidth) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.lineWidth = newLineWidth;\n }\n }\n for (var i = 0; i < STROKE_PROPS.length; i++) {\n var prop = STROKE_PROPS[i];\n var propName = prop[0];\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx[propName] = style[propName] || prop[1];\n }\n }\n return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n var m = el.transform;\n var dpr = ctx.dpr || 1;\n if (m) {\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n }\n else {\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n var allClipped = false;\n for (var i = 0; i < clipPaths.length; i++) {\n var clipPath = clipPaths[i];\n allClipped = allClipped || clipPath.isZeroArea();\n setContextTransform(ctx, clipPath);\n ctx.beginPath();\n clipPath.buildPath(ctx, clipPath.shape);\n ctx.clip();\n }\n scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n if (m0 && m1) {\n return m0[0] !== m1[0]\n || m0[1] !== m1[1]\n || m0[2] !== m1[2]\n || m0[3] !== m1[3]\n || m0[4] !== m1[4]\n || m0[5] !== m1[5];\n }\n else if (!m0 && !m1) {\n return false;\n }\n return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n var hasFill = styleHasFill(style);\n var hasStroke = styleHasStroke(style);\n return !(style.lineDash\n || !(+hasFill ^ +hasStroke)\n || (hasFill && typeof style.fill !== 'string')\n || (hasStroke && typeof style.stroke !== 'string')\n || style.strokePercent < 1\n || style.strokeOpacity < 1\n || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n scope.batchFill && ctx.fill();\n scope.batchStroke && ctx.stroke();\n scope.batchFill = '';\n scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n var m = el.transform;\n if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n el.__dirty &= ~Element.REDARAW_BIT;\n el.__isRendered = false;\n return;\n }\n var clipPaths = el.__clipPaths;\n var prevElClipPaths = scope.prevElClipPaths;\n var forceSetTransform = false;\n var forceSetStyle = false;\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n if (prevElClipPaths && prevElClipPaths.length) {\n flushPathDrawn(ctx, scope);\n ctx.restore();\n forceSetStyle = forceSetTransform = true;\n scope.prevElClipPaths = null;\n scope.allClipped = false;\n scope.prevEl = null;\n }\n if (clipPaths && clipPaths.length) {\n flushPathDrawn(ctx, scope);\n ctx.save();\n updateClipStatus(clipPaths, ctx, scope);\n forceSetTransform = true;\n }\n scope.prevElClipPaths = clipPaths;\n }\n if (scope.allClipped) {\n el.__isRendered = false;\n return;\n }\n el.beforeBrush && el.beforeBrush();\n el.innerBeforeBrush();\n var prevEl = scope.prevEl;\n if (!prevEl) {\n forceSetStyle = forceSetTransform = true;\n }\n var canBatchPath = el instanceof Path\n && el.autoBatch\n && canPathBatch(el.style);\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n flushPathDrawn(ctx, scope);\n setContextTransform(ctx, el);\n }\n else if (!canBatchPath) {\n flushPathDrawn(ctx, scope);\n }\n var style = getStyle(el, scope.inHover);\n if (el instanceof Path) {\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_PATH;\n }\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n ctx.beginPath();\n }\n brushPath(ctx, el, style, canBatchPath);\n if (canBatchPath) {\n scope.batchFill = style.fill || '';\n scope.batchStroke = style.stroke || '';\n }\n }\n else {\n if (el instanceof TSpan) {\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_TEXT;\n }\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n brushText(ctx, el, style);\n }\n else if (el instanceof ZRImage) {\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_IMAGE;\n }\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n brushImage(ctx, el, style);\n }\n else if (el instanceof IncrementalDisplayable) {\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n }\n brushIncremental(ctx, el, scope);\n }\n }\n if (canBatchPath && isLast) {\n flushPathDrawn(ctx, scope);\n }\n el.innerAfterBrush();\n el.afterBrush && el.afterBrush();\n scope.prevEl = el;\n el.__dirty = 0;\n el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n var displayables = el.getDisplayables();\n var temporalDisplayables = el.getTemporalDisplayables();\n ctx.save();\n var innerScope = {\n prevElClipPaths: null,\n prevEl: null,\n allClipped: false,\n viewWidth: scope.viewWidth,\n viewHeight: scope.viewHeight,\n inHover: scope.inHover\n };\n var i;\n var len;\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n var displayable = displayables[i];\n displayable.beforeBrush && displayable.beforeBrush();\n displayable.innerBeforeBrush();\n brush(ctx, displayable, innerScope, i === len - 1);\n displayable.innerAfterBrush();\n displayable.afterBrush && displayable.afterBrush();\n innerScope.prevEl = displayable;\n }\n for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n var displayable = temporalDisplayables[i_1];\n displayable.beforeBrush && displayable.beforeBrush();\n displayable.innerBeforeBrush();\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n displayable.innerAfterBrush();\n displayable.afterBrush && displayable.afterBrush();\n innerScope.prevEl = displayable;\n }\n el.clearTemporalDisplayables();\n el.notClear = true;\n ctx.restore();\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport WeakMap from 'zrender/lib/core/WeakMap';\nimport LRU from 'zrender/lib/core/LRU';\nimport { defaults, createCanvas, map, isArray } from 'zrender/lib/core/util';\nimport { getLeastCommonMultiple } from './number';\nimport { createSymbol } from './symbol';\nimport { brushSingle } from 'zrender/lib/canvas/graphic';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n if (decalObject === 'none') {\n return null;\n }\n\n var dpr = api.getDevicePixelRatio();\n var zr = api.getZr();\n var isSVG = zr.painter.type === 'svg';\n\n if (decalObject.dirty) {\n decalMap[\"delete\"](decalObject);\n }\n\n var oldPattern = decalMap.get(decalObject);\n\n if (oldPattern) {\n return oldPattern;\n }\n\n var decalOpt = defaults(decalObject, {\n symbol: 'rect',\n symbolSize: 1,\n symbolKeepAspect: true,\n color: 'rgba(0, 0, 0, 0.2)',\n backgroundColor: null,\n dashArrayX: 5,\n dashArrayY: 5,\n rotation: 0,\n maxTileWidth: 512,\n maxTileHeight: 512\n });\n\n if (decalOpt.backgroundColor === 'none') {\n decalOpt.backgroundColor = null;\n }\n\n var pattern = {\n repeat: 'repeat'\n };\n setPatternnSource(pattern);\n pattern.rotation = decalOpt.rotation;\n pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n decalMap.set(decalObject, pattern);\n decalObject.dirty = false;\n return pattern;\n\n function setPatternnSource(pattern) {\n var keys = [dpr];\n var isValidKey = true;\n\n for (var i = 0; i < decalKeys.length; ++i) {\n var value = decalOpt[decalKeys[i]];\n var valueType = typeof value;\n\n if (value != null && !isArray(value) && valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') {\n isValidKey = false;\n break;\n }\n\n keys.push(value);\n }\n\n var cacheKey;\n\n if (isValidKey) {\n cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n var cache = decalCache.get(cacheKey);\n\n if (cache) {\n isSVG ? pattern.svgElement = cache : pattern.image = cache;\n }\n }\n\n var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n var canvas = !isSVG && createCanvas();\n var svgRoot = isSVG && zr.painter.createSVGElement('g');\n var pSize = getPatternSize();\n var ctx;\n\n if (canvas) {\n canvas.width = pSize.width * dpr;\n canvas.height = pSize.height * dpr;\n ctx = canvas.getContext('2d');\n }\n\n brushDecal();\n\n if (isValidKey) {\n decalCache.put(cacheKey, canvas || svgRoot);\n }\n\n pattern.image = canvas;\n pattern.svgElement = svgRoot;\n pattern.svgWidth = pSize.width;\n pattern.svgHeight = pSize.height;\n\n function getPatternSize() {\n var width = 1;\n\n for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n }\n\n var symbolRepeats = 1;\n\n for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n }\n\n width *= symbolRepeats;\n var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n if (process.env.NODE_ENV !== 'production') {\n var warn = function (attrName) {\n console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n };\n\n if (width > decalOpt.maxTileWidth) {\n warn('maxTileWidth');\n }\n\n if (height > decalOpt.maxTileHeight) {\n warn('maxTileHeight');\n }\n }\n\n return {\n width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n };\n }\n\n function brushDecal() {\n if (ctx) {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n if (decalOpt.backgroundColor) {\n ctx.fillStyle = decalOpt.backgroundColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n }\n\n var ySum = 0;\n\n for (var i = 0; i < dashArrayY.length; ++i) {\n ySum += dashArrayY[i];\n }\n\n if (ySum <= 0) {\n return;\n }\n\n var y = -lineBlockLengthY;\n var yId = 0;\n var yIdTotal = 0;\n var xId0 = 0;\n\n while (y < pSize.height) {\n if (yId % 2 === 0) {\n var symbolYId = yIdTotal / 2 % symbolArray.length;\n var x = 0;\n var xId1 = 0;\n var xId1Total = 0;\n\n while (x < pSize.width * 2) {\n var xSum = 0;\n\n for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n xSum += dashArrayX[xId0][i];\n }\n\n if (xSum <= 0) {\n break;\n }\n\n if (xId1 % 2 === 0) {\n var size = (1 - decalOpt.symbolSize) * 0.5;\n var left = x + dashArrayX[xId0][xId1] * size;\n var top_1 = y + dashArrayY[yId] * size;\n var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n var height = dashArrayY[yId] * decalOpt.symbolSize;\n var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n }\n\n x += dashArrayX[xId0][xId1];\n ++xId1Total;\n ++xId1;\n\n if (xId1 === dashArrayX[xId0].length) {\n xId1 = 0;\n }\n }\n\n ++xId0;\n\n if (xId0 === dashArrayX.length) {\n xId0 = 0;\n }\n }\n\n y += dashArrayY[yId];\n ++yIdTotal;\n ++yId;\n\n if (yId === dashArrayY.length) {\n yId = 0;\n }\n }\n\n function brushSymbol(x, y, width, height, symbolType) {\n var scale = isSVG ? 1 : dpr;\n var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n if (isSVG) {\n svgRoot.appendChild(zr.painter.paintOne(symbol));\n } else {\n brushSingle(ctx, symbol);\n }\n }\n }\n }\n}\n\nfunction normalizeSymbolArray(symbol) {\n if (!symbol || symbol.length === 0) {\n return [['rect']];\n }\n\n if (typeof symbol === 'string') {\n return [[symbol]];\n }\n\n var isAllString = true;\n\n for (var i = 0; i < symbol.length; ++i) {\n if (typeof symbol[i] !== 'string') {\n isAllString = false;\n break;\n }\n }\n\n if (isAllString) {\n return normalizeSymbolArray([symbol]);\n }\n\n var result = [];\n\n for (var i = 0; i < symbol.length; ++i) {\n if (typeof symbol[i] === 'string') {\n result.push([symbol[i]]);\n } else {\n result.push(symbol[i]);\n }\n }\n\n return result;\n}\n\nfunction normalizeDashArrayX(dash) {\n if (!dash || dash.length === 0) {\n return [[0, 0]];\n }\n\n if (typeof dash === 'number') {\n var dashValue = Math.ceil(dash);\n return [[dashValue, dashValue]];\n }\n\n var isAllNumber = true;\n\n for (var i = 0; i < dash.length; ++i) {\n if (typeof dash[i] !== 'number') {\n isAllNumber = false;\n break;\n }\n }\n\n if (isAllNumber) {\n return normalizeDashArrayX([dash]);\n }\n\n var result = [];\n\n for (var i = 0; i < dash.length; ++i) {\n if (typeof dash[i] === 'number') {\n var dashValue = Math.ceil(dash[i]);\n result.push([dashValue, dashValue]);\n } else {\n var dashValue = map(dash[i], function (n) {\n return Math.ceil(n);\n });\n\n if (dashValue.length % 2 === 1) {\n result.push(dashValue.concat(dashValue));\n } else {\n result.push(dashValue);\n }\n }\n }\n\n return result;\n}\n\nfunction normalizeDashArrayY(dash) {\n if (!dash || typeof dash === 'object' && dash.length === 0) {\n return [0, 0];\n }\n\n if (typeof dash === 'number') {\n var dashValue_1 = Math.ceil(dash);\n return [dashValue_1, dashValue_1];\n }\n\n var dashValue = map(dash, function (n) {\n return Math.ceil(n);\n });\n return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n\nfunction getLineBlockLengthX(dash) {\n return map(dash, function (line) {\n return getLineBlockLengthY(line);\n });\n}\n\nfunction getLineBlockLengthY(dash) {\n var blockLength = 0;\n\n for (var i = 0; i < dash.length; ++i) {\n blockLength += dash[i];\n }\n\n if (dash.length % 2 === 1) {\n return blockLength * 2;\n }\n\n return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createOrUpdatePatternFromDecal } from '../util/decal';\nexport default function decalVisual(ecModel, api) {\n ecModel.eachRawSeries(function (seriesModel) {\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n\n if (data.hasItemVisual()) {\n data.each(function (idx) {\n var decal = data.getItemVisual(idx, 'decal');\n\n if (decal) {\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n }\n });\n }\n\n var decal = data.getVisual('decal');\n\n if (decal) {\n var style = data.getVisual('style');\n style.decal = createOrUpdatePatternFromDecal(decal, api);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrender from 'zrender/lib/zrender';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport env from 'zrender/lib/core/env';\nimport timsort from 'zrender/lib/core/timsort';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport CoordinateSystemManager from './CoordinateSystem';\nimport OptionManager from '../model/OptionManager';\nimport backwardCompat from '../preprocessor/backwardCompat';\nimport dataStack from '../processor/dataStack';\nimport SeriesModel from '../model/Series';\nimport ComponentView from '../view/Component';\nimport ChartView from '../view/Chart';\nimport * as graphic from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { enterEmphasisWhenMouseOver, leaveEmphasisWhenMouseOut, isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, toggleSeriesBlurState, toggleSeriesBlurStateFromPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur } from '../util/states';\nimport * as modelUtil from '../util/model';\nimport { throttle } from '../util/throttle';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style';\nimport loadingDefault from '../loading/default';\nimport Scheduler from './Scheduler';\nimport lightTheme from '../theme/light';\nimport darkTheme from '../theme/dark';\nimport mapDataStorage from '../coord/geo/mapDataStorage';\nimport { parseClassType } from '../util/clazz';\nimport { ECEventProcessor } from '../util/ECEventProcessor';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper';\nimport LabelManager from '../label/LabelManager';\nimport { deprecateLog, throwError } from '../util/log';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction';\nimport { registerExternalTransform } from '../data/helper/transform';\nimport { createLocaleObject, SYSTEM_LANG } from './locale';\nimport { findEventDispatcher } from '../util/event';\nimport decal from '../visual/decal';\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar indexOf = zrUtil.indexOf;\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.0.1';\nexport var dependencies = {\n zrender: '5.0.3'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000;\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n PROCESSOR: {\n FILTER: PRIORITY_PROCESSOR_FILTER,\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n },\n VISUAL: {\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\n CHART: PRIORITY_VISUAL_CHART,\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\n BRUSH: PRIORITY_VISUAL_BRUSH,\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n ARIA: PRIORITY_VISUAL_ARIA,\n DECAL: PRIORITY_VISUAL_DECAL\n }\n};\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar OPTION_UPDATED_KEY = '__optionUpdated';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (this.isDisposed()) {\n disposedWarning(this.id);\n return;\n }\n\n return toLowercaseNameAndCallEventful(this, method, args);\n };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return toLowercaseNameAndCallEventful(this, method, args);\n };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n args[0] = args[0] && args[0].toLowerCase();\n return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter = function (_super) {\n __extends(MessageCenter, _super);\n\n function MessageCenter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar clearColorPalette;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar performPostUpdateFuncs;\nvar createExtensionAPI;\nvar enableConnect;\nvar setTransitionOpt;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts = function (_super) {\n __extends(ECharts, _super);\n\n function ECharts(dom, theme, opts) {\n var _this = _super.call(this, new ECEventProcessor()) || this;\n\n _this._chartsViews = [];\n _this._chartsMap = {};\n _this._componentsViews = [];\n _this._componentsMap = {};\n _this._pendingActions = [];\n opts = opts || {};\n\n if (typeof theme === 'string') {\n theme = themeStorage[theme];\n }\n\n _this._dom = dom;\n var defaultRenderer = 'canvas';\n var defaultUseDirtyRect = false;\n\n if (process.env.NODE_ENV !== 'production') {\n var root = hasWindow ? window : global;\n defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n }\n\n var zr = _this._zr = zrender.init(dom, {\n renderer: opts.renderer || defaultRenderer,\n devicePixelRatio: opts.devicePixelRatio,\n width: opts.width,\n height: opts.height,\n useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n });\n _this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n theme = zrUtil.clone(theme);\n theme && backwardCompat(theme, true);\n _this._theme = theme;\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n _this._coordSysMgr = new CoordinateSystemManager();\n var api = _this._api = createExtensionAPI(_this);\n\n function prioritySortFunc(a, b) {\n return a.__prio - b.__prio;\n }\n\n timsort(visualFuncs, prioritySortFunc);\n timsort(dataProcessorFuncs, prioritySortFunc);\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n _this._messageCenter = new MessageCenter();\n _this._labelManager = new LabelManager();\n\n _this._initEvents();\n\n _this.resize = zrUtil.bind(_this.resize, _this);\n zr.animation.on('frame', _this._onframe, _this);\n bindRenderedEvent(zr, _this);\n bindMouseEvent(zr, _this);\n zrUtil.setAsPrimitive(_this);\n return _this;\n }\n\n ECharts.prototype._onframe = function () {\n if (this._disposed) {\n return;\n }\n\n applyChangedStates(this);\n var scheduler = this._scheduler;\n\n if (this[OPTION_UPDATED_KEY]) {\n var silent = this[OPTION_UPDATED_KEY].silent;\n this[IN_MAIN_PROCESS_KEY] = true;\n prepare(this);\n updateMethods.update.call(this);\n\n this._zr.flush();\n\n this[IN_MAIN_PROCESS_KEY] = false;\n this[OPTION_UPDATED_KEY] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n } else if (scheduler.unfinished) {\n var remainTime = TEST_FRAME_REMAIN_TIME;\n var ecModel = this._model;\n var api = this._api;\n scheduler.unfinished = false;\n\n do {\n var startTime = +new Date();\n scheduler.performSeriesTasks(ecModel);\n scheduler.performDataProcessorTasks(ecModel);\n updateStreamModes(this, ecModel);\n scheduler.performVisualTasks(ecModel);\n renderSeries(this, this._model, api, 'remain');\n remainTime -= +new Date() - startTime;\n } while (remainTime > 0 && scheduler.unfinished);\n\n if (!scheduler.unfinished) {\n this._zr.flush();\n }\n }\n };\n\n ECharts.prototype.getDom = function () {\n return this._dom;\n };\n\n ECharts.prototype.getId = function () {\n return this.id;\n };\n\n ECharts.prototype.getZr = function () {\n return this._zr;\n };\n\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\n }\n\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var silent;\n var replaceMerge;\n var transitionOpt;\n\n if (isObject(notMerge)) {\n lazyUpdate = notMerge.lazyUpdate;\n silent = notMerge.silent;\n replaceMerge = notMerge.replaceMerge;\n transitionOpt = notMerge.transition;\n notMerge = notMerge.notMerge;\n }\n\n this[IN_MAIN_PROCESS_KEY] = true;\n\n if (!this._model || notMerge) {\n var optionManager = new OptionManager(this._api);\n var theme = this._theme;\n var ecModel = this._model = new GlobalModel();\n ecModel.scheduler = this._scheduler;\n ecModel.init(null, null, null, theme, this._locale, optionManager);\n }\n\n this._model.setOption(option, {\n replaceMerge: replaceMerge\n }, optionPreprocessorFuncs);\n\n setTransitionOpt(this, transitionOpt);\n\n if (lazyUpdate) {\n this[OPTION_UPDATED_KEY] = {\n silent: silent\n };\n this[IN_MAIN_PROCESS_KEY] = false;\n this.getZr().wakeUp();\n } else {\n prepare(this);\n updateMethods.update.call(this);\n\n this._zr.flush();\n\n this[OPTION_UPDATED_KEY] = false;\n this[IN_MAIN_PROCESS_KEY] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n }\n };\n\n ECharts.prototype.setTheme = function () {\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n };\n\n ECharts.prototype.getModel = function () {\n return this._model;\n };\n\n ECharts.prototype.getOption = function () {\n return this._model && this._model.getOption();\n };\n\n ECharts.prototype.getWidth = function () {\n return this._zr.getWidth();\n };\n\n ECharts.prototype.getHeight = function () {\n return this._zr.getHeight();\n };\n\n ECharts.prototype.getDevicePixelRatio = function () {\n return this._zr.painter.dpr || hasWindow && window.devicePixelRatio || 1;\n };\n\n ECharts.prototype.getRenderedCanvas = function (opts) {\n if (!env.canvasSupported) {\n return;\n }\n\n opts = zrUtil.extend({}, opts || {});\n opts.pixelRatio = opts.pixelRatio || 1;\n opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n var zr = this._zr;\n return zr.painter.getRenderedCanvas(opts);\n };\n\n ECharts.prototype.getSvgDataURL = function () {\n if (!env.svgSupported) {\n return;\n }\n\n var zr = this._zr;\n var list = zr.storage.getDisplayList();\n zrUtil.each(list, function (el) {\n el.stopAnimation(null, true);\n });\n return zr.painter.toDataURL();\n };\n\n ECharts.prototype.getDataURL = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n opts = opts || {};\n var excludeComponents = opts.excludeComponents;\n var ecModel = this._model;\n var excludesComponentViews = [];\n var self = this;\n each(excludeComponents, function (componentType) {\n ecModel.eachComponent({\n mainType: componentType\n }, function (component) {\n var view = self._componentsMap[component.__viewId];\n\n if (!view.group.ignore) {\n excludesComponentViews.push(view);\n view.group.ignore = true;\n }\n });\n });\n var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n each(excludesComponentViews, function (view) {\n view.group.ignore = false;\n });\n return url;\n };\n\n ECharts.prototype.getConnectedDataURL = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (!env.canvasSupported) {\n return;\n }\n\n var isSvg = opts.type === 'svg';\n var groupId = this.group;\n var mathMin = Math.min;\n var mathMax = Math.max;\n var MAX_NUMBER = Infinity;\n\n if (connectedGroups[groupId]) {\n var left_1 = MAX_NUMBER;\n var top_1 = MAX_NUMBER;\n var right_1 = -MAX_NUMBER;\n var bottom_1 = -MAX_NUMBER;\n var canvasList_1 = [];\n var dpr_1 = opts && opts.pixelRatio || 1;\n zrUtil.each(instances, function (chart, id) {\n if (chart.group === groupId) {\n var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n var boundingRect = chart.getDom().getBoundingClientRect();\n left_1 = mathMin(boundingRect.left, left_1);\n top_1 = mathMin(boundingRect.top, top_1);\n right_1 = mathMax(boundingRect.right, right_1);\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n canvasList_1.push({\n dom: canvas,\n left: boundingRect.left,\n top: boundingRect.top\n });\n }\n });\n left_1 *= dpr_1;\n top_1 *= dpr_1;\n right_1 *= dpr_1;\n bottom_1 *= dpr_1;\n var width = right_1 - left_1;\n var height = bottom_1 - top_1;\n var targetCanvas = zrUtil.createCanvas();\n var zr_1 = zrender.init(targetCanvas, {\n renderer: isSvg ? 'svg' : 'canvas'\n });\n zr_1.resize({\n width: width,\n height: height\n });\n\n if (isSvg) {\n var content_1 = '';\n each(canvasList_1, function (item) {\n var x = item.left - left_1;\n var y = item.top - top_1;\n content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n });\n zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n if (opts.connectedBackgroundColor) {\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n }\n\n zr_1.refreshImmediately();\n return zr_1.painter.toDataURL();\n } else {\n if (opts.connectedBackgroundColor) {\n zr_1.add(new graphic.Rect({\n shape: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n style: {\n fill: opts.connectedBackgroundColor\n }\n }));\n }\n\n each(canvasList_1, function (item) {\n var img = new graphic.Image({\n style: {\n x: item.left * dpr_1 - left_1,\n y: item.top * dpr_1 - top_1,\n image: item.dom\n }\n });\n zr_1.add(img);\n });\n zr_1.refreshImmediately();\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n }\n } else {\n return this.getDataURL(opts);\n }\n };\n\n ECharts.prototype.convertToPixel = function (finder, value) {\n return doConvertPixel(this, 'convertToPixel', finder, value);\n };\n\n ECharts.prototype.convertFromPixel = function (finder, value) {\n return doConvertPixel(this, 'convertFromPixel', finder, value);\n };\n\n ECharts.prototype.containPixel = function (finder, value) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var ecModel = this._model;\n var result;\n var findResult = modelUtil.parseFinder(ecModel, finder);\n zrUtil.each(findResult, function (models, key) {\n key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n var coordSys = model.coordinateSystem;\n\n if (coordSys && coordSys.containPoint) {\n result = result || !!coordSys.containPoint(value);\n } else if (key === 'seriesModels') {\n var view = this._chartsMap[model.__viewId];\n\n if (view && view.containPoint) {\n result = result || view.containPoint(value, model);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(key + ': containPoint is not supported');\n }\n }\n }, this);\n }, this);\n return !!result;\n };\n\n ECharts.prototype.getVisual = function (finder, visualType) {\n var ecModel = this._model;\n var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n defaultMainType: 'series'\n });\n var seriesModel = parsedFinder.seriesModel;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!seriesModel) {\n console.warn('There is no specified seires model');\n }\n }\n\n var data = seriesModel.getData();\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n };\n\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n return this._componentsMap[componentModel.__viewId];\n };\n\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n return this._chartsMap[seriesModel.__viewId];\n };\n\n ECharts.prototype._initEvents = function () {\n var _this = this;\n\n each(MOUSE_EVENT_NAMES, function (eveName) {\n var handler = function (e) {\n var ecModel = _this.getModel();\n\n var el = e.target;\n var params;\n var isGlobalOut = eveName === 'globalout';\n\n if (isGlobalOut) {\n params = {};\n } else {\n el && findEventDispatcher(el, function (parent) {\n var ecData = getECData(parent);\n\n if (ecData && ecData.dataIndex != null) {\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n return true;\n } else if (ecData.eventData) {\n params = zrUtil.extend({}, ecData.eventData);\n return true;\n }\n }, true);\n }\n\n if (params) {\n var componentType = params.componentType;\n var componentIndex = params.componentIndex;\n\n if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n componentType = 'series';\n componentIndex = params.seriesIndex;\n }\n\n var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!isGlobalOut && !(model && view)) {\n console.warn('model or view can not be found by params');\n }\n }\n\n params.event = e;\n params.type = eveName;\n _this._$eventProcessor.eventInfo = {\n targetEl: el,\n packedEvent: params,\n model: model,\n view: view\n };\n\n _this.trigger(eveName, params);\n }\n };\n\n handler.zrEventfulCallAtLast = true;\n\n _this._zr.on(eveName, handler, _this);\n });\n each(eventActionMap, function (actionType, eventType) {\n _this._messageCenter.on(eventType, function (event) {\n this.trigger(eventType, event);\n }, _this);\n });\n each(['selectchanged'], function (eventType) {\n _this._messageCenter.on(eventType, function (event) {\n this.trigger(eventType, event);\n }, _this);\n });\n handleLegacySelectEvents(this._messageCenter, this, this._api);\n };\n\n ECharts.prototype.isDisposed = function () {\n return this._disposed;\n };\n\n ECharts.prototype.clear = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this.setOption({\n series: []\n }, true);\n };\n\n ECharts.prototype.dispose = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._disposed = true;\n modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n var api = this._api;\n var ecModel = this._model;\n each(this._componentsViews, function (component) {\n component.dispose(ecModel, api);\n });\n each(this._chartsViews, function (chart) {\n chart.dispose(ecModel, api);\n });\n\n this._zr.dispose();\n\n delete instances[this.id];\n };\n\n ECharts.prototype.resize = function (opts) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\n }\n\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._zr.resize(opts);\n\n var ecModel = this._model;\n this._loadingFX && this._loadingFX.resize();\n\n if (!ecModel) {\n return;\n }\n\n var optionChanged = ecModel.resetOption('media');\n var silent = opts && opts.silent;\n this[IN_MAIN_PROCESS_KEY] = true;\n optionChanged && prepare(this);\n updateMethods.update.call(this, {\n type: 'resize',\n animation: {\n duration: 0\n }\n });\n this[IN_MAIN_PROCESS_KEY] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n };\n\n ECharts.prototype.showLoading = function (name, cfg) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (isObject(name)) {\n cfg = name;\n name = '';\n }\n\n name = name || 'default';\n this.hideLoading();\n\n if (!loadingEffects[name]) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Loading effects ' + name + ' not exists.');\n }\n\n return;\n }\n\n var el = loadingEffects[name](this._api, cfg);\n var zr = this._zr;\n this._loadingFX = el;\n zr.add(el);\n };\n\n ECharts.prototype.hideLoading = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._loadingFX && this._zr.remove(this._loadingFX);\n this._loadingFX = null;\n };\n\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\n var payload = zrUtil.extend({}, eventObj);\n payload.type = eventActionMap[eventObj.type];\n return payload;\n };\n\n ECharts.prototype.dispatchAction = function (payload, opt) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (!isObject(opt)) {\n opt = {\n silent: !!opt\n };\n }\n\n if (!actions[payload.type]) {\n return;\n }\n\n if (!this._model) {\n return;\n }\n\n if (this[IN_MAIN_PROCESS_KEY]) {\n this._pendingActions.push(payload);\n\n return;\n }\n\n var silent = opt.silent;\n doDispatchAction.call(this, payload, silent);\n var flush = opt.flush;\n\n if (flush) {\n this._zr.flush();\n } else if (flush !== false && env.browser.weChat) {\n this._throttledZrFlush();\n }\n\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n };\n\n ECharts.prototype.updateLabelLayout = function () {\n var labelManager = this._labelManager;\n labelManager.updateLayoutConfig(this._api);\n labelManager.layout(this._api);\n labelManager.processLabelsOverall();\n };\n\n ECharts.prototype.appendData = function (params) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var seriesIndex = params.seriesIndex;\n var ecModel = this.getModel();\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(params.data && seriesModel);\n }\n\n seriesModel.appendData(params);\n this._scheduler.unfinished = true;\n this.getZr().wakeUp();\n };\n\n ECharts.internalField = function () {\n prepare = function (ecIns) {\n var scheduler = ecIns._scheduler;\n scheduler.restorePipelines(ecIns._model);\n scheduler.prepareStageTasks();\n prepareView(ecIns, true);\n prepareView(ecIns, false);\n scheduler.plan();\n };\n\n prepareView = function (ecIns, isComponent) {\n var ecModel = ecIns._model;\n var scheduler = ecIns._scheduler;\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n var zr = ecIns._zr;\n var api = ecIns._api;\n\n for (var i = 0; i < viewList.length; i++) {\n viewList[i].__alive = false;\n }\n\n isComponent ? ecModel.eachComponent(function (componentType, model) {\n componentType !== 'series' && doPrepare(model);\n }) : ecModel.eachSeries(doPrepare);\n\n function doPrepare(model) {\n var requireNewView = model.__requireNewView;\n model.__requireNewView = false;\n var viewId = '_ec_' + model.id + '_' + model.type;\n var view = !requireNewView && viewMap[viewId];\n\n if (!view) {\n var classType = parseClassType(model.type);\n var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(Clazz, classType.sub + ' does not exist.');\n }\n\n view = new Clazz();\n view.init(ecModel, api);\n viewMap[viewId] = view;\n viewList.push(view);\n zr.add(view.group);\n }\n\n model.__viewId = view.__id = viewId;\n view.__alive = true;\n view.__model = model;\n view.group.__ecComponentInfo = {\n mainType: model.mainType,\n index: model.componentIndex\n };\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\n }\n\n for (var i = 0; i < viewList.length;) {\n var view = viewList[i];\n\n if (!view.__alive) {\n !isComponent && view.renderTask.dispose();\n zr.remove(view.group);\n view.dispose(ecModel, api);\n viewList.splice(i, 1);\n\n if (viewMap[view.__id] === view) {\n delete viewMap[view.__id];\n }\n\n view.__id = view.group.__ecComponentInfo = null;\n } else {\n i++;\n }\n }\n };\n\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\n var ecModel = ecIns._model;\n ecModel.setUpdatePayload(payload);\n\n if (!mainType) {\n each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n return;\n }\n\n var query = {};\n query[mainType + 'Id'] = payload[mainType + 'Id'];\n query[mainType + 'Index'] = payload[mainType + 'Index'];\n query[mainType + 'Name'] = payload[mainType + 'Name'];\n var condition = {\n mainType: mainType,\n query: query\n };\n subType && (condition.subType = subType);\n var excludeSeriesId = payload.excludeSeriesId;\n var excludeSeriesIdMap;\n\n if (excludeSeriesId != null) {\n excludeSeriesIdMap = zrUtil.createHashMap();\n each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n var modelId = modelUtil.convertOptionIdName(id, null);\n\n if (modelId != null) {\n excludeSeriesIdMap.set(modelId, true);\n }\n });\n }\n\n ecModel && ecModel.eachComponent(condition, function (model) {\n if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\n if (isHighDownPayload(payload) && !payload.notBlur) {\n if (model instanceof SeriesModel) {\n toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\n }\n } else if (isSelectChangePayload(payload)) {\n if (model instanceof SeriesModel) {\n toggleSelectionFromPayload(model, payload, ecIns._api);\n updateSeriesElementSelection(model);\n markStatusToUpdate(ecIns);\n }\n }\n\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n }\n }, ecIns);\n\n function callView(view) {\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n }\n };\n\n updateMethods = {\n prepareAndUpdate: function (payload) {\n prepare(this);\n updateMethods.update.call(this, payload);\n },\n update: function (payload) {\n var ecModel = this._model;\n var api = this._api;\n var zr = this._zr;\n var coordSysMgr = this._coordSysMgr;\n var scheduler = this._scheduler;\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n scheduler.restoreData(ecModel, payload);\n scheduler.performSeriesTasks(ecModel);\n coordSysMgr.create(ecModel, api);\n scheduler.performDataProcessorTasks(ecModel, payload);\n updateStreamModes(this, ecModel);\n coordSysMgr.update(ecModel, api);\n clearColorPalette(ecModel);\n scheduler.performVisualTasks(ecModel, payload);\n render(this, ecModel, api, payload);\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n var darkMode = ecModel.get('darkMode');\n\n if (!env.canvasSupported) {\n var colorArr = colorTool.parse(backgroundColor);\n backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n if (colorArr[3] === 0) {\n backgroundColor = 'transparent';\n }\n } else {\n zr.setBackgroundColor(backgroundColor);\n\n if (darkMode != null && darkMode !== 'auto') {\n zr.setDarkMode(darkMode);\n }\n }\n\n performPostUpdateFuncs(ecModel, api);\n },\n updateTransform: function (payload) {\n var _this = this;\n\n var ecModel = this._model;\n var api = this._api;\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n var componentDirtyList = [];\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType === 'series') {\n return;\n }\n\n var componentView = _this.getViewOfComponentModel(componentModel);\n\n if (componentView && componentView.__alive) {\n if (componentView.updateTransform) {\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n result && result.update && componentDirtyList.push(componentView);\n } else {\n componentDirtyList.push(componentView);\n }\n }\n });\n var seriesDirtyMap = zrUtil.createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var chartView = _this._chartsMap[seriesModel.__viewId];\n\n if (chartView.updateTransform) {\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n } else {\n seriesDirtyMap.set(seriesModel.uid, 1);\n }\n });\n clearColorPalette(ecModel);\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true,\n dirtyMap: seriesDirtyMap\n });\n\n renderSeries(this, ecModel, api, payload, seriesDirtyMap);\n performPostUpdateFuncs(ecModel, this._api);\n },\n updateView: function (payload) {\n var ecModel = this._model;\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n ChartView.markUpdateMethod(payload, 'updateView');\n clearColorPalette(ecModel);\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true\n });\n\n render(this, this._model, this._api, payload);\n performPostUpdateFuncs(ecModel, this._api);\n },\n updateVisual: function (payload) {\n var _this = this;\n\n var ecModel = this._model;\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.getData().clearAllVisual();\n });\n ChartView.markUpdateMethod(payload, 'updateVisual');\n clearColorPalette(ecModel);\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n visualType: 'visual',\n setDirty: true\n });\n\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType !== 'series') {\n var componentView = _this.getViewOfComponentModel(componentModel);\n\n componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n }\n });\n ecModel.eachSeries(function (seriesModel) {\n var chartView = _this._chartsMap[seriesModel.__viewId];\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n });\n performPostUpdateFuncs(ecModel, this._api);\n },\n updateLayout: function (payload) {\n updateMethods.update.call(this, payload);\n }\n };\n\n doConvertPixel = function (ecIns, methodName, finder, value) {\n if (ecIns._disposed) {\n disposedWarning(ecIns.id);\n return;\n }\n\n var ecModel = ecIns._model;\n\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n var result;\n var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n for (var i = 0; i < coordSysList.length; i++) {\n var coordSys = coordSysList[i];\n\n if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n return result;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n }\n };\n\n updateStreamModes = function (ecIns, ecModel) {\n var chartsMap = ecIns._chartsMap;\n var scheduler = ecIns._scheduler;\n ecModel.eachSeries(function (seriesModel) {\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n });\n };\n\n doDispatchAction = function (payload, silent) {\n var _this = this;\n\n var ecModel = this.getModel();\n var payloadType = payload.type;\n var escapeConnect = payload.escapeConnect;\n var actionWrap = actions[payloadType];\n var actionInfo = actionWrap.actionInfo;\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\n var updateMethod = cptTypeTmp.pop();\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n this[IN_MAIN_PROCESS_KEY] = true;\n var payloads = [payload];\n var batched = false;\n\n if (payload.batch) {\n batched = true;\n payloads = zrUtil.map(payload.batch, function (item) {\n item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n item.batch = null;\n return item;\n });\n }\n\n var eventObjBatch = [];\n var eventObj;\n var isSelectChange = isSelectChangePayload(payload);\n var isStatusChange = isHighDownPayload(payload) || isSelectChange;\n each(payloads, function (batchItem) {\n eventObj = actionWrap.action(batchItem, _this._model, _this._api);\n eventObj = eventObj || zrUtil.extend({}, batchItem);\n eventObj.type = actionInfo.event || eventObj.type;\n eventObjBatch.push(eventObj);\n\n if (isStatusChange) {\n updateDirectly(_this, updateMethod, batchItem, 'series');\n markStatusToUpdate(_this);\n } else if (cptType) {\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n }\n });\n\n if (updateMethod !== 'none' && !isStatusChange && !cptType) {\n if (this[OPTION_UPDATED_KEY]) {\n prepare(this);\n updateMethods.update.call(this, payload);\n this[OPTION_UPDATED_KEY] = false;\n } else {\n updateMethods[updateMethod].call(this, payload);\n }\n }\n\n if (batched) {\n eventObj = {\n type: actionInfo.event || payloadType,\n escapeConnect: escapeConnect,\n batch: eventObjBatch\n };\n } else {\n eventObj = eventObjBatch[0];\n }\n\n this[IN_MAIN_PROCESS_KEY] = false;\n\n if (!silent) {\n var messageCenter = this._messageCenter;\n messageCenter.trigger(eventObj.type, eventObj);\n\n if (isSelectChange) {\n var newObj = {\n type: 'selectchanged',\n escapeConnect: escapeConnect,\n selected: getAllSelectedIndices(ecModel),\n isFromClick: payload.isFromClick || false,\n fromAction: payload.type,\n fromActionPayload: payload\n };\n messageCenter.trigger(newObj.type, newObj);\n }\n }\n };\n\n flushPendingActions = function (silent) {\n var pendingActions = this._pendingActions;\n\n while (pendingActions.length) {\n var payload = pendingActions.shift();\n doDispatchAction.call(this, payload, silent);\n }\n };\n\n triggerUpdatedEvent = function (silent) {\n !silent && this.trigger('updated');\n };\n\n bindRenderedEvent = function (zr, ecIns) {\n zr.on('rendered', function (params) {\n ecIns.trigger('rendered', params);\n\n if (zr.animation.isFinished() && !ecIns[OPTION_UPDATED_KEY] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n ecIns.trigger('finished');\n }\n });\n };\n\n bindMouseEvent = function (zr, ecIns) {\n zr.on('mouseover', function (e) {\n var el = e.target;\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n if (dispatcher) {\n var ecData = getECData(dispatcher);\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\n enterEmphasisWhenMouseOver(dispatcher, e);\n markStatusToUpdate(ecIns);\n }\n }).on('mouseout', function (e) {\n var el = e.target;\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n if (dispatcher) {\n var ecData = getECData(dispatcher);\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\n leaveEmphasisWhenMouseOut(dispatcher, e);\n markStatusToUpdate(ecIns);\n }\n }).on('click', function (e) {\n var el = e.target;\n var dispatcher = findEventDispatcher(el, function (target) {\n return getECData(target).dataIndex != null;\n }, true);\n\n if (dispatcher) {\n var actionType = dispatcher.selected ? 'unselect' : 'select';\n var ecData = getECData(dispatcher);\n\n ecIns._api.dispatchAction({\n type: actionType,\n dataType: ecData.dataType,\n dataIndexInside: ecData.dataIndex,\n seriesIndex: ecData.seriesIndex,\n isFromClick: true\n });\n }\n });\n };\n\n clearColorPalette = function (ecModel) {\n ecModel.clearColorPalette();\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.clearColorPalette();\n });\n };\n\n render = function (ecIns, ecModel, api, payload) {\n renderComponents(ecIns, ecModel, api, payload);\n each(ecIns._chartsViews, function (chart) {\n chart.__alive = false;\n });\n renderSeries(ecIns, ecModel, api, payload);\n each(ecIns._chartsViews, function (chart) {\n if (!chart.__alive) {\n chart.remove(ecModel, api);\n }\n });\n };\n\n renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\n each(dirtyList || ecIns._componentsViews, function (componentView) {\n var componentModel = componentView.__model;\n clearStates(componentModel, componentView);\n componentView.render(componentModel, ecModel, api, payload);\n updateZ(componentModel, componentView);\n updateStates(componentModel, componentView);\n });\n };\n\n renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\n var scheduler = ecIns._scheduler;\n var labelManager = ecIns._labelManager;\n labelManager.clearLabels();\n var unfinished = false;\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n chartView.__alive = true;\n var renderTask = chartView.renderTask;\n scheduler.updatePayload(renderTask, payload);\n clearStates(seriesModel, chartView);\n\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n renderTask.dirty();\n }\n\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n unfinished = true;\n }\n\n seriesModel.__transientTransitionOpt = null;\n chartView.group.silent = !!seriesModel.get('silent');\n updateBlend(seriesModel, chartView);\n updateSeriesElementSelection(seriesModel);\n labelManager.addLabelsOfSeries(chartView);\n });\n scheduler.unfinished = unfinished || scheduler.unfinished;\n labelManager.updateLayoutConfig(api);\n labelManager.layout(api);\n labelManager.processLabelsOverall();\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n updateZ(seriesModel, chartView);\n updateStates(seriesModel, chartView);\n });\n updateHoverLayerStatus(ecIns, ecModel);\n };\n\n performPostUpdateFuncs = function (ecModel, api) {\n each(postUpdateFuncs, function (func) {\n func(ecModel, api);\n });\n };\n\n markStatusToUpdate = function (ecIns) {\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\n ecIns.getZr().wakeUp();\n };\n\n applyChangedStates = function (ecIns) {\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n return;\n }\n\n ecIns.getZr().storage.traverse(function (el) {\n if (graphic.isElementRemoved(el)) {\n return;\n }\n\n applyElementStates(el);\n });\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n };\n\n function applyElementStates(el) {\n var newStates = [];\n var oldStates = el.currentStates;\n\n for (var i = 0; i < oldStates.length; i++) {\n var stateName = oldStates[i];\n\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n newStates.push(stateName);\n }\n }\n\n if (el.selected && el.states.select) {\n newStates.push('select');\n }\n\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n newStates.push('emphasis');\n } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n newStates.push('blur');\n }\n\n el.useStates(newStates);\n }\n\n function updateHoverLayerStatus(ecIns, ecModel) {\n var zr = ecIns._zr;\n var storage = zr.storage;\n var elCount = 0;\n storage.traverse(function (el) {\n if (!el.isGroup) {\n elCount++;\n }\n });\n\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.preventUsingHoverLayer) {\n return;\n }\n\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n if (chartView.__alive) {\n chartView.group.traverse(function (el) {\n if (el.states.emphasis) {\n el.states.emphasis.hoverLayer = true;\n }\n });\n }\n });\n }\n }\n\n ;\n\n function updateBlend(seriesModel, chartView) {\n var blendMode = seriesModel.get('blendMode') || null;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\n console.warn('Only canvas support blendMode');\n }\n }\n\n chartView.group.traverse(function (el) {\n if (!el.isGroup) {\n el.style.blend = blendMode;\n }\n\n if (el.eachPendingDisplayable) {\n el.eachPendingDisplayable(function (displayable) {\n displayable.style.blend = blendMode;\n });\n }\n });\n }\n\n ;\n\n function updateZ(model, view) {\n if (model.preventAutoZ) {\n return;\n }\n\n var z = model.get('z');\n var zlevel = model.get('zlevel');\n view.group.traverse(function (el) {\n if (!el.isGroup) {\n z != null && (el.z = z);\n zlevel != null && (el.zlevel = zlevel);\n var label = el.getTextContent();\n var labelLine = el.getTextGuideLine();\n\n if (label) {\n label.z = el.z;\n label.zlevel = el.zlevel;\n label.z2 = el.z2 + 2;\n }\n\n if (labelLine) {\n var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\n labelLine.z = el.z;\n labelLine.zlevel = el.zlevel;\n labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\n }\n }\n });\n }\n\n ;\n\n function clearStates(model, view) {\n view.group.traverse(function (el) {\n if (graphic.isElementRemoved(el)) {\n return;\n }\n\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine();\n\n if (el.stateTransition) {\n el.stateTransition = null;\n }\n\n if (textContent && textContent.stateTransition) {\n textContent.stateTransition = null;\n }\n\n if (textGuide && textGuide.stateTransition) {\n textGuide.stateTransition = null;\n }\n\n if (el.hasState()) {\n el.prevStates = el.currentStates;\n el.clearStates();\n } else if (el.prevStates) {\n el.prevStates = null;\n }\n });\n }\n\n function updateStates(model, view) {\n var stateAnimationModel = model.getModel('stateAnimation');\n var enableAnimation = model.isAnimationEnabled();\n var duration = stateAnimationModel.get('duration');\n var stateTransition = duration > 0 ? {\n duration: duration,\n delay: stateAnimationModel.get('delay'),\n easing: stateAnimationModel.get('easing')\n } : null;\n view.group.traverse(function (el) {\n if (el.states && el.states.emphasis) {\n if (graphic.isElementRemoved(el)) {\n return;\n }\n\n if (el instanceof graphic.Path) {\n savePathStates(el);\n }\n\n if (el.__dirty) {\n var prevStates = el.prevStates;\n\n if (prevStates) {\n el.useStates(prevStates);\n }\n }\n\n if (enableAnimation) {\n el.stateTransition = stateTransition;\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine();\n\n if (textContent) {\n textContent.stateTransition = stateTransition;\n }\n\n if (textGuide) {\n textGuide.stateTransition = stateTransition;\n }\n }\n\n if (el.__dirty) {\n applyElementStates(el);\n }\n }\n });\n }\n\n ;\n\n createExtensionAPI = function (ecIns) {\n return new (function (_super) {\n __extends(class_1, _super);\n\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n class_1.prototype.getCoordinateSystems = function () {\n return ecIns._coordSysMgr.getCoordinateSystems();\n };\n\n class_1.prototype.getComponentByElement = function (el) {\n while (el) {\n var modelInfo = el.__ecComponentInfo;\n\n if (modelInfo != null) {\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n }\n\n el = el.parent;\n }\n };\n\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n enterEmphasis(el, highlightDigit);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n leaveEmphasis(el, highlightDigit);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.enterBlur = function (el) {\n enterBlur(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.leaveBlur = function (el) {\n leaveBlur(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.enterSelect = function (el) {\n enterSelect(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.leaveSelect = function (el) {\n leaveSelect(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.getModel = function () {\n return ecIns.getModel();\n };\n\n class_1.prototype.getViewOfComponentModel = function (componentModel) {\n return ecIns.getViewOfComponentModel(componentModel);\n };\n\n class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n return ecIns.getViewOfSeriesModel(seriesModel);\n };\n\n return class_1;\n }(ExtensionAPI))(ecIns);\n };\n\n enableConnect = function (chart) {\n function updateConnectedChartsStatus(charts, status) {\n for (var i = 0; i < charts.length; i++) {\n var otherChart = charts[i];\n otherChart[CONNECT_STATUS_KEY] = status;\n }\n }\n\n each(eventActionMap, function (actionType, eventType) {\n chart._messageCenter.on(eventType, function (event) {\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n if (event && event.escapeConnect) {\n return;\n }\n\n var action_1 = chart.makeActionFromEvent(event);\n var otherCharts_1 = [];\n each(instances, function (otherChart) {\n if (otherChart !== chart && otherChart.group === chart.group) {\n otherCharts_1.push(otherChart);\n }\n });\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n each(otherCharts_1, function (otherChart) {\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n otherChart.dispatchAction(action_1);\n }\n });\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n }\n });\n });\n };\n\n setTransitionOpt = function (chart, transitionOpt) {\n var ecModel = chart._model;\n zrUtil.each(modelUtil.normalizeToArray(transitionOpt), function (transOpt) {\n var errMsg;\n var fromOpt = transOpt.from;\n var toOpt = transOpt.to;\n\n if (toOpt == null) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`transition.to` must be specified.';\n }\n\n throwError(errMsg);\n }\n\n var finderOpt = {\n includeMainTypes: ['series'],\n enableAll: false,\n enableNone: false\n };\n var fromResult = fromOpt ? modelUtil.parseFinder(ecModel, fromOpt, finderOpt) : null;\n var toResult = modelUtil.parseFinder(ecModel, toOpt, finderOpt);\n var toSeries = toResult.seriesModel;\n\n if (toSeries == null) {\n errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`transition` is only supported on series.';\n }\n }\n\n if (fromResult && fromResult.seriesModel !== toSeries) {\n errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\n }\n }\n\n if (errMsg != null) {\n throwError(errMsg);\n }\n\n toSeries.__transientTransitionOpt = {\n from: fromOpt ? fromOpt.dimension : null,\n to: toOpt.dimension,\n dividingMethod: transOpt.dividingMethod\n };\n });\n };\n }();\n\n return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n\nechartsProto.one = function (eventName, cb, ctx) {\n var self = this;\n deprecateLog('ECharts#one is deprecated.');\n\n function wrapped() {\n var args2 = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args2[_i] = arguments[_i];\n }\n\n cb && cb.apply && cb.apply(this, args2);\n self.off(eventName, wrapped);\n }\n\n ;\n this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Instance ' + id + ' has been disposed');\n }\n}\n\nvar actions = {};\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar postInitFuncs = [];\nvar postUpdateFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nexport function init(dom, theme, opts) {\n if (process.env.NODE_ENV !== 'production') {\n if (!dom) {\n throw new Error('Initialize failed: invalid dom.');\n }\n }\n\n var existInstance = getInstanceByDom(dom);\n\n if (existInstance) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('There is a chart instance already initialized on the dom.');\n }\n\n return existInstance;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (zrUtil.isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n console.warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n }\n }\n\n var chart = new ECharts(dom, theme, opts);\n chart.id = 'ec_' + idBase++;\n instances[chart.id] = chart;\n modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n enableConnect(chart);\n each(postInitFuncs, function (postInitFunc) {\n postInitFunc(chart);\n });\n return chart;\n}\nexport function connect(groupId) {\n if (zrUtil.isArray(groupId)) {\n var charts = groupId;\n groupId = null;\n each(charts, function (chart) {\n if (chart.group != null) {\n groupId = chart.group;\n }\n });\n groupId = groupId || 'g_' + groupIdBase++;\n each(charts, function (chart) {\n chart.group = groupId;\n });\n }\n\n connectedGroups[groupId] = true;\n return groupId;\n}\nexport function disConnect(groupId) {\n connectedGroups[groupId] = false;\n}\nexport var disconnect = disConnect;\nexport function dispose(chart) {\n if (typeof chart === 'string') {\n chart = instances[chart];\n } else if (!(chart instanceof ECharts)) {\n chart = getInstanceByDom(chart);\n }\n\n if (chart instanceof ECharts && !chart.isDisposed()) {\n chart.dispose();\n }\n}\nexport function getInstanceByDom(dom) {\n return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n return instances[key];\n}\nexport function registerTheme(name, theme) {\n themeStorage[name] = theme;\n}\nexport function registerPreprocessor(preprocessorFunc) {\n if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n optionPreprocessorFuncs.push(preprocessorFunc);\n }\n}\nexport function registerProcessor(priority, processor) {\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\nexport function registerPostInit(postInitFunc) {\n if (indexOf(postInitFuncs, postInitFunc) < 0) {\n postInitFunc && postInitFuncs.push(postInitFunc);\n }\n}\nexport function registerPostUpdate(postUpdateFunc) {\n if (indexOf(postUpdateFuncs, postUpdateFunc) < 0) {\n postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\n }\n}\nexport function registerAction(actionInfo, eventName, action) {\n if (typeof eventName === 'function') {\n action = eventName;\n eventName = '';\n }\n\n var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n event: eventName\n }][0];\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n eventName = actionInfo.event;\n\n if (eventActionMap[eventName]) {\n return;\n }\n\n assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n if (!actions[actionType]) {\n actions[actionType] = {\n action: action,\n actionInfo: actionInfo\n };\n }\n\n eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n CoordinateSystemManager.register(type, coordSysCreator);\n}\nexport function getCoordinateSystemDimensions(type) {\n var coordSysCreator = CoordinateSystemManager.get(type);\n\n if (coordSysCreator) {\n return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n }\n}\nexport { registerLocale } from './locale';\n\nfunction registerLayout(priority, layoutTask) {\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n if (isFunction(priority) || isObject(priority)) {\n fn = priority;\n priority = defaultPriority;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isNaN(priority) || priority == null) {\n throw new Error('Illegal priority');\n }\n\n each(targetList, function (wrap) {\n assert(wrap.__raw !== fn);\n });\n }\n\n if (indexOf(registeredTasks, fn) >= 0) {\n return;\n }\n\n registeredTasks.push(fn);\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n stageHandler.__prio = priority;\n stageHandler.__raw = fn;\n targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n loadingEffects[name] = loadingFx;\n}\nexport function setCanvasCreator(creator) {\n zrUtil.$override('createCanvas', creator);\n}\nexport function registerMap(mapName, geoJson, specialAreas) {\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n var records = mapDataStorage.retrieveMap(mapName);\n return records && records[0] && {\n geoJson: records[0].geoJSON,\n specialAreas: records[0].specialAreas\n };\n}\nexport var registerTransform = registerExternalTransform;\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault);\nregisterAction({\n type: HIGHLIGHT_ACTION_TYPE,\n event: HIGHLIGHT_ACTION_TYPE,\n update: HIGHLIGHT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n type: DOWNPLAY_ACTION_TYPE,\n event: DOWNPLAY_ACTION_TYPE,\n update: DOWNPLAY_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n type: SELECT_ACTION_TYPE,\n event: SELECT_ACTION_TYPE,\n update: SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n type: UNSELECT_ACTION_TYPE,\n event: UNSELECT_ACTION_TYPE,\n update: UNSELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n type: TOGGLE_SELECT_ACTION_TYPE,\n event: TOGGLE_SELECT_ACTION_TYPE,\n update: TOGGLE_SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme);\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, PRIORITY } from './core/echarts';\nimport ComponentView from './view/Component';\nimport ChartView from './view/Chart';\nimport ComponentModel from './model/Component';\nimport SeriesModel from './model/Series';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util';\nimport { registerPainter } from 'zrender/lib/zrender';\nvar extensions = [];\nvar extensionRegisters = {\n registerPreprocessor: registerPreprocessor,\n registerProcessor: registerProcessor,\n registerPostInit: registerPostInit,\n registerPostUpdate: registerPostUpdate,\n registerAction: registerAction,\n registerCoordinateSystem: registerCoordinateSystem,\n registerLayout: registerLayout,\n registerVisual: registerVisual,\n registerTransform: registerTransform,\n registerLoading: registerLoading,\n registerMap: registerMap,\n PRIORITY: PRIORITY,\n ComponentModel: ComponentModel,\n ComponentView: ComponentView,\n SeriesModel: SeriesModel,\n ChartView: ChartView,\n registerComponentModel: function (ComponentModelClass) {\n ComponentModel.registerClass(ComponentModelClass);\n },\n registerComponentView: function (ComponentViewClass) {\n ComponentView.registerClass(ComponentViewClass);\n },\n registerSeriesModel: function (SeriesModelClass) {\n SeriesModel.registerClass(SeriesModelClass);\n },\n registerChartView: function (ChartViewClass) {\n ChartView.registerClass(ChartViewClass);\n },\n registerSubTypeDefaulter: function (componentType, defaulter) {\n ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n },\n registerPainter: function (painterType, PainterCtor) {\n registerPainter(painterType, PainterCtor);\n }\n};\nexport function use(ext) {\n if (isArray(ext)) {\n each(ext, function (singleExt) {\n use(singleExt);\n });\n return;\n }\n\n if (indexOf(extensions, ext) >= 0) {\n return;\n }\n\n extensions.push(ext);\n\n if (isFunction(ext)) {\n ext = {\n install: ext\n };\n }\n\n ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n return item;\n}\n\nvar DataDiffer = function () {\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\n this._old = oldArr;\n this._new = newArr;\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n this.context = context;\n this._diffModeMultiple = diffMode === 'multiple';\n }\n\n DataDiffer.prototype.add = function (func) {\n this._add = func;\n return this;\n };\n\n DataDiffer.prototype.update = function (func) {\n this._update = func;\n return this;\n };\n\n DataDiffer.prototype.updateManyToOne = function (func) {\n this._updateManyToOne = func;\n return this;\n };\n\n DataDiffer.prototype.updateOneToMany = function (func) {\n this._updateOneToMany = func;\n return this;\n };\n\n DataDiffer.prototype.remove = function (func) {\n this._remove = func;\n return this;\n };\n\n DataDiffer.prototype.execute = function () {\n this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n };\n\n DataDiffer.prototype._executeOneToOne = function () {\n var oldArr = this._old;\n var newArr = this._new;\n var newDataIndexMap = {};\n var oldDataKeyArr = new Array(oldArr.length);\n var newDataKeyArr = new Array(newArr.length);\n\n this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n for (var i = 0; i < oldArr.length; i++) {\n var oldKey = oldDataKeyArr[i];\n var newIdxMapVal = newDataIndexMap[oldKey];\n var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n if (newIdxMapValLen > 1) {\n var newIdx = newIdxMapVal.shift();\n\n if (newIdxMapVal.length === 1) {\n newDataIndexMap[oldKey] = newIdxMapVal[0];\n }\n\n this._update && this._update(newIdx, i);\n } else if (newIdxMapValLen === 1) {\n newDataIndexMap[oldKey] = null;\n this._update && this._update(newIdxMapVal, i);\n } else {\n this._remove && this._remove(i);\n }\n }\n\n this._performRestAdd(newDataKeyArr, newDataIndexMap);\n };\n\n DataDiffer.prototype._executeMultiple = function () {\n var oldArr = this._old;\n var newArr = this._new;\n var oldDataIndexMap = {};\n var newDataIndexMap = {};\n var oldDataKeyArr = [];\n var newDataKeyArr = [];\n\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n for (var i = 0; i < oldDataKeyArr.length; i++) {\n var oldKey = oldDataKeyArr[i];\n var oldIdxMapVal = oldDataIndexMap[oldKey];\n var newIdxMapVal = newDataIndexMap[oldKey];\n var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n newDataIndexMap[oldKey] = null;\n } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n newDataIndexMap[oldKey] = null;\n } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n this._update && this._update(newIdxMapVal, oldIdxMapVal);\n newDataIndexMap[oldKey] = null;\n } else if (oldIdxMapValLen > 1) {\n for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n this._remove && this._remove(oldIdxMapVal[i_1]);\n }\n } else {\n this._remove && this._remove(oldIdxMapVal);\n }\n }\n\n this._performRestAdd(newDataKeyArr, newDataIndexMap);\n };\n\n DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n for (var i = 0; i < newDataKeyArr.length; i++) {\n var newKey = newDataKeyArr[i];\n var newIdxMapVal = newDataIndexMap[newKey];\n var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n if (idxMapValLen > 1) {\n for (var j = 0; j < idxMapValLen; j++) {\n this._add && this._add(newIdxMapVal[j]);\n }\n } else if (idxMapValLen === 1) {\n this._add && this._add(newIdxMapVal);\n }\n\n newDataIndexMap[newKey] = null;\n }\n };\n\n DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\n var cbModeMultiple = this._diffModeMultiple;\n\n for (var i = 0; i < arr.length; i++) {\n var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n if (!cbModeMultiple) {\n keyArr[i] = key;\n }\n\n if (!map) {\n continue;\n }\n\n var idxMapVal = map[key];\n var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n if (idxMapValLen === 0) {\n map[key] = i;\n\n if (cbModeMultiple) {\n keyArr.push(key);\n }\n } else if (idxMapValLen === 1) {\n map[key] = [idxMapVal, i];\n } else {\n idxMapVal.push(i);\n }\n }\n };\n\n return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap, assert } from 'zrender/lib/core/util';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nexport function summarizeDimensions(data) {\n var summary = {};\n var encode = summary.encode = {};\n var notExtraCoordDimMap = createHashMap();\n var defaultedLabel = [];\n var defaultedTooltip = [];\n var userOutput = summary.userOutput = {\n dimensionNames: data.dimensions.slice(),\n encode: {}\n };\n each(data.dimensions, function (dimName) {\n var dimItem = data.getDimensionInfo(dimName);\n var coordDim = dimItem.coordDim;\n\n if (coordDim) {\n if (process.env.NODE_ENV !== 'production') {\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n }\n\n var coordDimIndex = dimItem.coordDimIndex;\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n if (!dimItem.isExtraCoord) {\n notExtraCoordDimMap.set(coordDim, 1);\n\n if (mayLabelDimType(dimItem.type)) {\n defaultedLabel[0] = dimName;\n }\n\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n }\n\n if (dimItem.defaultTooltip) {\n defaultedTooltip.push(dimName);\n }\n }\n\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n var dimIndex = dimItem.otherDims[otherDim];\n\n if (dimIndex != null && dimIndex !== false) {\n encodeArr[dimIndex] = dimItem.name;\n }\n });\n });\n var dataDimsOnCoord = [];\n var encodeFirstDimNotExtra = {};\n notExtraCoordDimMap.each(function (v, coordDim) {\n var dimArr = encode[coordDim];\n encodeFirstDimNotExtra[coordDim] = dimArr[0];\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n });\n summary.dataDimsOnCoord = dataDimsOnCoord;\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n var encodeLabel = encode.label;\n\n if (encodeLabel && encodeLabel.length) {\n defaultedLabel = encodeLabel.slice();\n }\n\n var encodeTooltip = encode.tooltip;\n\n if (encodeTooltip && encodeTooltip.length) {\n defaultedTooltip = encodeTooltip.slice();\n } else if (!defaultedTooltip.length) {\n defaultedTooltip = defaultedLabel.slice();\n }\n\n encode.defaultedLabel = defaultedLabel;\n encode.defaultedTooltip = defaultedTooltip;\n return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n if (!encode.hasOwnProperty(dim)) {\n encode[dim] = [];\n }\n\n return encode[dim];\n}\n\nexport function getDimensionTypeByAxis(axisType) {\n return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n return !(dimType === 'ordinal' || dimType === 'time');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar DataDimensionInfo = function () {\n function DataDimensionInfo(opt) {\n this.otherDims = {};\n\n if (opt != null) {\n zrUtil.extend(this, opt);\n }\n }\n\n return DataDimensionInfo;\n}();\n\n;\nexport default DataDimensionInfo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../model/Model';\nimport DataDiffer from './DataDiffer';\nimport { DefaultDataProvider } from './helper/dataProvider';\nimport { summarizeDimensions } from './helper/dimensionHelper';\nimport DataDimensionInfo from './DataDimensionInfo';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types';\nimport { isDataItemOption, convertOptionIdName } from '../util/model';\nimport { getECData } from '../util/innerStore';\nimport { parseDataValue } from './helper/dataValueHelper';\nimport { isSourceInstance } from './Source';\nvar mathFloor = Math.floor;\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar UNDEFINED = 'undefined';\nvar INDEX_NOT_FOUND = -1;\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n 'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n 'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n 'ordinal': Array,\n 'number': Array,\n 'time': Array\n};\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\nvar defaultDimValueGetters;\nvar prepareInvertedIndex;\nvar getIndicesCtor;\nvar prepareStorage;\nvar getRawIndexWithoutIndices;\nvar getRawIndexWithIndices;\nvar getId;\nvar getIdNameFromStore;\nvar makeIdFromName;\nvar normalizeDimensions;\nvar validateDimensions;\nvar cloneListForMapAndSample;\nvar getInitialExtent;\nvar setItemDataAndSeriesIndex;\nvar transferProperties;\n\nvar List = function () {\n function List(dimensions, hostModel) {\n this.type = 'list';\n this._count = 0;\n this._rawCount = 0;\n this._storage = {};\n this._storageArr = [];\n this._nameList = [];\n this._idList = [];\n this._visual = {};\n this._layout = {};\n this._itemVisuals = [];\n this._itemLayouts = [];\n this._graphicEls = [];\n this._rawExtent = {};\n this._extent = {};\n this._approximateExtent = {};\n this._calculationInfo = {};\n this.hasItemOption = true;\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n this.getRawIndex = getRawIndexWithoutIndices;\n dimensions = dimensions || ['x', 'y'];\n var dimensionInfos = {};\n var dimensionNames = [];\n var invertedIndicesMap = {};\n\n for (var i = 0; i < dimensions.length; i++) {\n var dimInfoInput = dimensions[i];\n var dimensionInfo = zrUtil.isString(dimInfoInput) ? new DataDimensionInfo({\n name: dimInfoInput\n }) : !(dimInfoInput instanceof DataDimensionInfo) ? new DataDimensionInfo(dimInfoInput) : dimInfoInput;\n var dimensionName = dimensionInfo.name;\n dimensionInfo.type = dimensionInfo.type || 'float';\n\n if (!dimensionInfo.coordDim) {\n dimensionInfo.coordDim = dimensionName;\n dimensionInfo.coordDimIndex = 0;\n }\n\n var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n dimensionNames.push(dimensionName);\n dimensionInfos[dimensionName] = dimensionInfo;\n dimensionInfo.index = i;\n\n if (dimensionInfo.createInvertedIndices) {\n invertedIndicesMap[dimensionName] = [];\n }\n\n if (otherDims.itemName === 0) {\n this._nameDimIdx = i;\n this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\n }\n\n if (otherDims.itemId === 0) {\n this._idDimIdx = i;\n this._idOrdinalMeta = dimensionInfo.ordinalMeta;\n }\n }\n\n this.dimensions = dimensionNames;\n this._dimensionInfos = dimensionInfos;\n this.hostModel = hostModel;\n this._dimensionsSummary = summarizeDimensions(this);\n this._invertedIndicesMap = invertedIndicesMap;\n this.userOutput = this._dimensionsSummary.userOutput;\n }\n\n List.prototype.getDimension = function (dim) {\n if (typeof dim === 'number' || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) {\n dim = this.dimensions[dim];\n }\n\n return dim;\n };\n\n List.prototype.getDimensionInfo = function (dim) {\n return this._dimensionInfos[this.getDimension(dim)];\n };\n\n List.prototype.getDimensionsOnCoord = function () {\n return this._dimensionsSummary.dataDimsOnCoord.slice();\n };\n\n List.prototype.mapDimension = function (coordDim, idx) {\n var dimensionsSummary = this._dimensionsSummary;\n\n if (idx == null) {\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n }\n\n var dims = dimensionsSummary.encode[coordDim];\n return dims ? dims[idx] : null;\n };\n\n List.prototype.mapDimensionsAll = function (coordDim) {\n var dimensionsSummary = this._dimensionsSummary;\n var dims = dimensionsSummary.encode[coordDim];\n return (dims || []).slice();\n };\n\n List.prototype.initData = function (data, nameList, dimValueGetter) {\n var notProvider = isSourceInstance(data) || zrUtil.isArrayLike(data);\n var provider = notProvider ? new DefaultDataProvider(data, this.dimensions.length) : data;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(notProvider || zrUtil.isFunction(provider.getItem) && zrUtil.isFunction(provider.count), 'Inavlid data provider.');\n }\n\n this._rawData = provider;\n var sourceFormat = provider.getSource().sourceFormat;\n this._storage = {};\n this._indices = null;\n this._dontMakeIdFromName = this._idDimIdx != null || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY || !!provider.fillStorage;\n this._nameList = (nameList || []).slice();\n this._idList = [];\n this._nameRepeatCount = {};\n\n if (!dimValueGetter) {\n this.hasItemOption = false;\n }\n\n this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\n this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter;\n this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\n this._rawExtent = {};\n\n this._initDataFromProvider(0, provider.count());\n\n if (provider.pure) {\n this.hasItemOption = false;\n }\n };\n\n List.prototype.getProvider = function () {\n return this._rawData;\n };\n\n List.prototype.appendData = function (data) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(!this._indices, 'appendData can only be called on raw data.');\n }\n\n var rawData = this._rawData;\n var start = this.count();\n rawData.appendData(data);\n var end = rawData.count();\n\n if (!rawData.persistent) {\n end += start;\n }\n\n this._initDataFromProvider(start, end, true);\n };\n\n List.prototype.appendValues = function (values, names) {\n var storage = this._storage;\n var dimensions = this.dimensions;\n var dimLen = dimensions.length;\n var rawExtent = this._rawExtent;\n var start = this.count();\n var end = start + Math.max(values.length, names ? names.length : 0);\n\n for (var i = 0; i < dimLen; i++) {\n var dim = dimensions[i];\n\n if (!rawExtent[dim]) {\n rawExtent[dim] = getInitialExtent();\n }\n\n prepareStorage(storage, this._dimensionInfos[dim], end, true);\n }\n\n var rawExtentArr = map(dimensions, function (dim) {\n return rawExtent[dim];\n });\n var storageArr = this._storageArr = map(dimensions, function (dim) {\n return storage[dim];\n });\n var emptyDataItem = [];\n\n for (var idx = start; idx < end; idx++) {\n var sourceIdx = idx - start;\n\n for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n var dim = dimensions[dimIdx];\n\n var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\n\n storageArr[dimIdx][idx] = val;\n var dimRawExtent = rawExtentArr[dimIdx];\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\n }\n\n if (names) {\n this._nameList[idx] = names[sourceIdx];\n\n if (!this._dontMakeIdFromName) {\n makeIdFromName(this, idx);\n }\n }\n }\n\n this._rawCount = this._count = end;\n this._extent = {};\n prepareInvertedIndex(this);\n };\n\n List.prototype._initDataFromProvider = function (start, end, append) {\n if (start >= end) {\n return;\n }\n\n var rawData = this._rawData;\n var storage = this._storage;\n var dimensions = this.dimensions;\n var dimLen = dimensions.length;\n var dimensionInfoMap = this._dimensionInfos;\n var nameList = this._nameList;\n var idList = this._idList;\n var rawExtent = this._rawExtent;\n var sourceFormat = rawData.getSource().sourceFormat;\n var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\n\n for (var i = 0; i < dimLen; i++) {\n var dim = dimensions[i];\n\n if (!rawExtent[dim]) {\n rawExtent[dim] = getInitialExtent();\n }\n\n prepareStorage(storage, dimensionInfoMap[dim], end, append);\n }\n\n var storageArr = this._storageArr = map(dimensions, function (dim) {\n return storage[dim];\n });\n var rawExtentArr = map(dimensions, function (dim) {\n return rawExtent[dim];\n });\n\n if (rawData.fillStorage) {\n rawData.fillStorage(start, end, storageArr, rawExtentArr);\n } else {\n var dataItem = [];\n\n for (var idx = start; idx < end; idx++) {\n dataItem = rawData.getItem(idx, dataItem);\n\n for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n var dim = dimensions[dimIdx];\n var dimStorage = storageArr[dimIdx];\n\n var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\n\n dimStorage[idx] = val;\n var dimRawExtent = rawExtentArr[dimIdx];\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\n }\n\n if (isFormatOriginal && !rawData.pure && dataItem) {\n var itemName = dataItem.name;\n\n if (nameList[idx] == null && itemName != null) {\n nameList[idx] = convertOptionIdName(itemName, null);\n }\n\n var itemId = dataItem.id;\n\n if (idList[idx] == null && itemId != null) {\n idList[idx] = convertOptionIdName(itemId, null);\n }\n }\n\n if (!this._dontMakeIdFromName) {\n makeIdFromName(this, idx);\n }\n }\n }\n\n if (!rawData.persistent && rawData.clean) {\n rawData.clean();\n }\n\n this._rawCount = this._count = end;\n this._extent = {};\n prepareInvertedIndex(this);\n };\n\n List.prototype.count = function () {\n return this._count;\n };\n\n List.prototype.getIndices = function () {\n var newIndices;\n var indices = this._indices;\n\n if (indices) {\n var Ctor = indices.constructor;\n var thisCount = this._count;\n\n if (Ctor === Array) {\n newIndices = new Ctor(thisCount);\n\n for (var i = 0; i < thisCount; i++) {\n newIndices[i] = indices[i];\n }\n } else {\n newIndices = new Ctor(indices.buffer, 0, thisCount);\n }\n } else {\n var Ctor = getIndicesCtor(this);\n newIndices = new Ctor(this.count());\n\n for (var i = 0; i < newIndices.length; i++) {\n newIndices[i] = i;\n }\n }\n\n return newIndices;\n };\n\n List.prototype.getByDimIdx = function (dimIdx, idx) {\n if (!(idx >= 0 && idx < this._count)) {\n return NaN;\n }\n\n var dimStore = this._storageArr[dimIdx];\n return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n };\n\n List.prototype.get = function (dim, idx) {\n if (!(idx >= 0 && idx < this._count)) {\n return NaN;\n }\n\n var dimStore = this._storage[dim];\n return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n };\n\n List.prototype.getByRawIndex = function (dim, rawIdx) {\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n return NaN;\n }\n\n var dimStore = this._storage[dim];\n return dimStore ? dimStore[rawIdx] : NaN;\n };\n\n List.prototype.getValues = function (dimensions, idx) {\n var values = [];\n\n if (!zrUtil.isArray(dimensions)) {\n idx = dimensions;\n dimensions = this.dimensions;\n }\n\n for (var i = 0, len = dimensions.length; i < len; i++) {\n values.push(this.get(dimensions[i], idx));\n }\n\n return values;\n };\n\n List.prototype.hasValue = function (idx) {\n var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n\n for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\n return false;\n }\n }\n\n return true;\n };\n\n List.prototype.getDataExtent = function (dim) {\n dim = this.getDimension(dim);\n var dimData = this._storage[dim];\n var initialExtent = getInitialExtent();\n\n if (!dimData) {\n return initialExtent;\n }\n\n var currEnd = this.count();\n var useRaw = !this._indices;\n var dimExtent;\n\n if (useRaw) {\n return this._rawExtent[dim].slice();\n }\n\n dimExtent = this._extent[dim];\n\n if (dimExtent) {\n return dimExtent.slice();\n }\n\n dimExtent = initialExtent;\n var min = dimExtent[0];\n var max = dimExtent[1];\n\n for (var i = 0; i < currEnd; i++) {\n var rawIdx = this.getRawIndex(i);\n var value = dimData[rawIdx];\n value < min && (min = value);\n value > max && (max = value);\n }\n\n dimExtent = [min, max];\n this._extent[dim] = dimExtent;\n return dimExtent;\n };\n\n List.prototype.getApproximateExtent = function (dim) {\n dim = this.getDimension(dim);\n return this._approximateExtent[dim] || this.getDataExtent(dim);\n };\n\n List.prototype.setApproximateExtent = function (extent, dim) {\n dim = this.getDimension(dim);\n this._approximateExtent[dim] = extent.slice();\n };\n\n List.prototype.getCalculationInfo = function (key) {\n return this._calculationInfo[key];\n };\n\n List.prototype.setCalculationInfo = function (key, value) {\n isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n };\n\n List.prototype.getSum = function (dim) {\n var dimData = this._storage[dim];\n var sum = 0;\n\n if (dimData) {\n for (var i = 0, len = this.count(); i < len; i++) {\n var value = this.get(dim, i);\n\n if (!isNaN(value)) {\n sum += value;\n }\n }\n }\n\n return sum;\n };\n\n List.prototype.getMedian = function (dim) {\n var dimDataArray = [];\n this.each(dim, function (val) {\n if (!isNaN(val)) {\n dimDataArray.push(val);\n }\n });\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n return a - b;\n });\n var len = this.count();\n return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n };\n\n List.prototype.rawIndexOf = function (dim, value) {\n var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!invertedIndices) {\n throw new Error('Do not supported yet');\n }\n }\n\n var rawIndex = invertedIndices[value];\n\n if (rawIndex == null || isNaN(rawIndex)) {\n return INDEX_NOT_FOUND;\n }\n\n return rawIndex;\n };\n\n List.prototype.indexOfName = function (name) {\n for (var i = 0, len = this.count(); i < len; i++) {\n if (this.getName(i) === name) {\n return i;\n }\n }\n\n return -1;\n };\n\n List.prototype.indexOfRawIndex = function (rawIndex) {\n if (rawIndex >= this._rawCount || rawIndex < 0) {\n return -1;\n }\n\n if (!this._indices) {\n return rawIndex;\n }\n\n var indices = this._indices;\n var rawDataIndex = indices[rawIndex];\n\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n return rawIndex;\n }\n\n var left = 0;\n var right = this._count - 1;\n\n while (left <= right) {\n var mid = (left + right) / 2 | 0;\n\n if (indices[mid] < rawIndex) {\n left = mid + 1;\n } else if (indices[mid] > rawIndex) {\n right = mid - 1;\n } else {\n return mid;\n }\n }\n\n return -1;\n };\n\n List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n var storage = this._storage;\n var dimData = storage[dim];\n var nearestIndices = [];\n\n if (!dimData) {\n return nearestIndices;\n }\n\n if (maxDistance == null) {\n maxDistance = Infinity;\n }\n\n var minDist = Infinity;\n var minDiff = -1;\n var nearestIndicesLen = 0;\n\n for (var i = 0, len = this.count(); i < len; i++) {\n var dataIndex = this.getRawIndex(i);\n var diff = value - dimData[dataIndex];\n var dist = Math.abs(diff);\n\n if (dist <= maxDistance) {\n if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n minDist = dist;\n minDiff = diff;\n nearestIndicesLen = 0;\n }\n\n if (diff === minDiff) {\n nearestIndices[nearestIndicesLen++] = i;\n }\n }\n }\n\n nearestIndices.length = nearestIndicesLen;\n return nearestIndices;\n };\n\n List.prototype.getRawDataItem = function (idx) {\n if (!this._rawData.persistent) {\n var val = [];\n\n for (var i = 0; i < this.dimensions.length; i++) {\n var dim = this.dimensions[i];\n val.push(this.get(dim, idx));\n }\n\n return val;\n } else {\n return this._rawData.getItem(this.getRawIndex(idx));\n }\n };\n\n List.prototype.getName = function (idx) {\n var rawIndex = this.getRawIndex(idx);\n var name = this._nameList[rawIndex];\n\n if (name == null && this._nameDimIdx != null) {\n name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\n }\n\n if (name == null) {\n name = '';\n }\n\n return name;\n };\n\n List.prototype.getId = function (idx) {\n return getId(this, this.getRawIndex(idx));\n };\n\n List.prototype.each = function (dims, cb, ctx, ctxCompat) {\n 'use strict';\n\n var _this = this;\n\n if (!this._count) {\n return;\n }\n\n if (typeof dims === 'function') {\n ctxCompat = ctx;\n ctx = cb;\n cb = dims;\n dims = [];\n }\n\n var fCtx = ctx || ctxCompat || this;\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n if (process.env.NODE_ENV !== 'production') {\n validateDimensions(this, dimNames);\n }\n\n var dimSize = dimNames.length;\n var dimIndices = map(dimNames, function (dimName) {\n return _this._dimensionInfos[dimName].index;\n });\n var storageArr = this._storageArr;\n\n for (var i = 0, len = this.count(); i < len; i++) {\n var rawIdx = this.getRawIndex(i);\n\n switch (dimSize) {\n case 0:\n cb.call(fCtx, i);\n break;\n\n case 1:\n cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\n break;\n\n case 2:\n cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\n break;\n\n default:\n var k = 0;\n var value = [];\n\n for (; k < dimSize; k++) {\n value[k] = storageArr[dimIndices[k]][rawIdx];\n }\n\n value[k] = i;\n cb.apply(fCtx, value);\n }\n }\n };\n\n List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\n 'use strict';\n\n var _this = this;\n\n if (!this._count) {\n return;\n }\n\n if (typeof dims === 'function') {\n ctxCompat = ctx;\n ctx = cb;\n cb = dims;\n dims = [];\n }\n\n var fCtx = ctx || ctxCompat || this;\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n if (process.env.NODE_ENV !== 'production') {\n validateDimensions(this, dimNames);\n }\n\n var count = this.count();\n var Ctor = getIndicesCtor(this);\n var newIndices = new Ctor(count);\n var value = [];\n var dimSize = dimNames.length;\n var offset = 0;\n var dimIndices = map(dimNames, function (dimName) {\n return _this._dimensionInfos[dimName].index;\n });\n var dim0 = dimIndices[0];\n var storageArr = this._storageArr;\n\n for (var i = 0; i < count; i++) {\n var keep = void 0;\n var rawIdx = this.getRawIndex(i);\n\n if (dimSize === 0) {\n keep = cb.call(fCtx, i);\n } else if (dimSize === 1) {\n var val = storageArr[dim0][rawIdx];\n keep = cb.call(fCtx, val, i);\n } else {\n var k = 0;\n\n for (; k < dimSize; k++) {\n value[k] = storageArr[dimIndices[k]][rawIdx];\n }\n\n value[k] = i;\n keep = cb.apply(fCtx, value);\n }\n\n if (keep) {\n newIndices[offset++] = rawIdx;\n }\n }\n\n if (offset < count) {\n this._indices = newIndices;\n }\n\n this._count = offset;\n this._extent = {};\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n return this;\n };\n\n List.prototype.selectRange = function (range) {\n 'use strict';\n\n var _this = this;\n\n var len = this._count;\n\n if (!len) {\n return;\n }\n\n var dimensions = [];\n\n for (var dim in range) {\n if (range.hasOwnProperty(dim)) {\n dimensions.push(dim);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n validateDimensions(this, dimensions);\n }\n\n var dimSize = dimensions.length;\n\n if (!dimSize) {\n return;\n }\n\n var originalCount = this.count();\n var Ctor = getIndicesCtor(this);\n var newIndices = new Ctor(originalCount);\n var offset = 0;\n var dim0 = dimensions[0];\n var dimIndices = map(dimensions, function (dimName) {\n return _this._dimensionInfos[dimName].index;\n });\n var min = range[dim0][0];\n var max = range[dim0][1];\n var storageArr = this._storageArr;\n var quickFinished = false;\n\n if (!this._indices) {\n var idx = 0;\n\n if (dimSize === 1) {\n var dimStorage = storageArr[dimIndices[0]];\n\n for (var i = 0; i < len; i++) {\n var val = dimStorage[i];\n\n if (val >= min && val <= max || isNaN(val)) {\n newIndices[offset++] = idx;\n }\n\n idx++;\n }\n\n quickFinished = true;\n } else if (dimSize === 2) {\n var dimStorage = storageArr[dimIndices[0]];\n var dimStorage2 = storageArr[dimIndices[1]];\n var min2 = range[dimensions[1]][0];\n var max2 = range[dimensions[1]][1];\n\n for (var i = 0; i < len; i++) {\n var val = dimStorage[i];\n var val2 = dimStorage2[i];\n\n if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n newIndices[offset++] = idx;\n }\n\n idx++;\n }\n\n quickFinished = true;\n }\n }\n\n if (!quickFinished) {\n if (dimSize === 1) {\n for (var i = 0; i < originalCount; i++) {\n var rawIndex = this.getRawIndex(i);\n var val = storageArr[dimIndices[0]][rawIndex];\n\n if (val >= min && val <= max || isNaN(val)) {\n newIndices[offset++] = rawIndex;\n }\n }\n } else {\n for (var i = 0; i < originalCount; i++) {\n var keep = true;\n var rawIndex = this.getRawIndex(i);\n\n for (var k = 0; k < dimSize; k++) {\n var dimk = dimensions[k];\n var val = storageArr[dimIndices[k]][rawIndex];\n\n if (val < range[dimk][0] || val > range[dimk][1]) {\n keep = false;\n }\n }\n\n if (keep) {\n newIndices[offset++] = this.getRawIndex(i);\n }\n }\n }\n }\n\n if (offset < originalCount) {\n this._indices = newIndices;\n }\n\n this._count = offset;\n this._extent = {};\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n return this;\n };\n\n List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\n 'use strict';\n\n if (typeof dims === 'function') {\n ctxCompat = ctx;\n ctx = cb;\n cb = dims;\n dims = [];\n }\n\n ctx = ctx || ctxCompat || this;\n var result = [];\n this.each(dims, function () {\n result.push(cb && cb.apply(this, arguments));\n }, ctx);\n return result;\n };\n\n List.prototype.map = function (dims, cb, ctx, ctxCompat) {\n 'use strict';\n\n var fCtx = ctx || ctxCompat || this;\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n if (process.env.NODE_ENV !== 'production') {\n validateDimensions(this, dimNames);\n }\n\n var list = cloneListForMapAndSample(this, dimNames);\n var storage = list._storage;\n list._indices = this._indices;\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n var tmpRetValue = [];\n var dimSize = dimNames.length;\n var dataCount = this.count();\n var values = [];\n var rawExtent = list._rawExtent;\n\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\n }\n\n values[dimSize] = dataIndex;\n var retValue = cb && cb.apply(fCtx, values);\n\n if (retValue != null) {\n if (typeof retValue !== 'object') {\n tmpRetValue[0] = retValue;\n retValue = tmpRetValue;\n }\n\n var rawIndex = this.getRawIndex(dataIndex);\n\n for (var i = 0; i < retValue.length; i++) {\n var dim = dimNames[i];\n var val = retValue[i];\n var rawExtentOnDim = rawExtent[dim];\n var dimStore = storage[dim];\n\n if (dimStore) {\n dimStore[rawIndex] = val;\n }\n\n if (val < rawExtentOnDim[0]) {\n rawExtentOnDim[0] = val;\n }\n\n if (val > rawExtentOnDim[1]) {\n rawExtentOnDim[1] = val;\n }\n }\n }\n }\n\n return list;\n };\n\n List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n var list = cloneListForMapAndSample(this, [dimension]);\n var targetStorage = list._storage;\n var frameValues = [];\n var frameSize = mathFloor(1 / rate);\n var dimStore = targetStorage[dimension];\n var len = this.count();\n var rawExtentOnDim = list._rawExtent[dimension];\n var newIndices = new (getIndicesCtor(this))(len);\n var offset = 0;\n\n for (var i = 0; i < len; i += frameSize) {\n if (frameSize > len - i) {\n frameSize = len - i;\n frameValues.length = frameSize;\n }\n\n for (var k = 0; k < frameSize; k++) {\n var dataIdx = this.getRawIndex(i + k);\n frameValues[k] = dimStore[dataIdx];\n }\n\n var value = sampleValue(frameValues);\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n dimStore[sampleFrameIdx] = value;\n\n if (value < rawExtentOnDim[0]) {\n rawExtentOnDim[0] = value;\n }\n\n if (value > rawExtentOnDim[1]) {\n rawExtentOnDim[1] = value;\n }\n\n newIndices[offset++] = sampleFrameIdx;\n }\n\n list._count = offset;\n list._indices = newIndices;\n list.getRawIndex = getRawIndexWithIndices;\n return list;\n };\n\n List.prototype.lttbDownSample = function (valueDimension, rate) {\n var list = cloneListForMapAndSample(this, []);\n var targetStorage = list._storage;\n var dimStore = targetStorage[valueDimension];\n var len = this.count();\n var newIndices = new (getIndicesCtor(this))(len);\n var sampledIndex = 0;\n var frameSize = mathFloor(1 / rate);\n var currentRawIndex = this.getRawIndex(0);\n var maxArea;\n var area;\n var nextRawIndex;\n newIndices[sampledIndex++] = currentRawIndex;\n\n for (var i = 1; i < len - 1; i += frameSize) {\n var nextFrameStart = Math.min(i + frameSize, len - 1);\n var nextFrameEnd = Math.min(i + frameSize * 2, len);\n var avgX = (nextFrameEnd + nextFrameStart) / 2;\n var avgY = 0;\n\n for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n var rawIndex = this.getRawIndex(idx);\n var y = dimStore[rawIndex];\n\n if (isNaN(y)) {\n continue;\n }\n\n avgY += y;\n }\n\n avgY /= nextFrameEnd - nextFrameStart;\n var frameStart = i;\n var frameEnd = Math.min(i + frameSize, len);\n var pointAX = i - 1;\n var pointAY = dimStore[currentRawIndex];\n maxArea = -1;\n nextRawIndex = frameStart;\n\n for (var idx = frameStart; idx < frameEnd; idx++) {\n var rawIndex = this.getRawIndex(idx);\n var y = dimStore[rawIndex];\n\n if (isNaN(y)) {\n continue;\n }\n\n area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n if (area > maxArea) {\n maxArea = area;\n nextRawIndex = rawIndex;\n }\n }\n\n newIndices[sampledIndex++] = nextRawIndex;\n currentRawIndex = nextRawIndex;\n }\n\n newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n list._count = sampledIndex;\n list._indices = newIndices;\n list.getRawIndex = getRawIndexWithIndices;\n return list;\n };\n\n List.prototype.getItemModel = function (idx) {\n var hostModel = this.hostModel;\n var dataItem = this.getRawDataItem(idx);\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n };\n\n List.prototype.diff = function (otherList) {\n var thisList = this;\n return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n return getId(otherList, idx);\n }, function (idx) {\n return getId(thisList, idx);\n });\n };\n\n List.prototype.getVisual = function (key) {\n var visual = this._visual;\n return visual && visual[key];\n };\n\n List.prototype.setVisual = function (kvObj, val) {\n this._visual = this._visual || {};\n\n if (isObject(kvObj)) {\n zrUtil.extend(this._visual, kvObj);\n } else {\n this._visual[kvObj] = val;\n }\n };\n\n List.prototype.getItemVisual = function (idx, key) {\n var itemVisual = this._itemVisuals[idx];\n var val = itemVisual && itemVisual[key];\n\n if (val == null) {\n return this.getVisual(key);\n }\n\n return val;\n };\n\n List.prototype.hasItemVisual = function () {\n return this._itemVisuals.length > 0;\n };\n\n List.prototype.ensureUniqueItemVisual = function (idx, key) {\n var itemVisuals = this._itemVisuals;\n var itemVisual = itemVisuals[idx];\n\n if (!itemVisual) {\n itemVisual = itemVisuals[idx] = {};\n }\n\n var val = itemVisual[key];\n\n if (val == null) {\n val = this.getVisual(key);\n\n if (zrUtil.isArray(val)) {\n val = val.slice();\n } else if (isObject(val)) {\n val = zrUtil.extend({}, val);\n }\n\n itemVisual[key] = val;\n }\n\n return val;\n };\n\n List.prototype.setItemVisual = function (idx, key, value) {\n var itemVisual = this._itemVisuals[idx] || {};\n this._itemVisuals[idx] = itemVisual;\n\n if (isObject(key)) {\n zrUtil.extend(itemVisual, key);\n } else {\n itemVisual[key] = value;\n }\n };\n\n List.prototype.clearAllVisual = function () {\n this._visual = {};\n this._itemVisuals = [];\n };\n\n List.prototype.setLayout = function (key, val) {\n if (isObject(key)) {\n for (var name_1 in key) {\n if (key.hasOwnProperty(name_1)) {\n this.setLayout(name_1, key[name_1]);\n }\n }\n\n return;\n }\n\n this._layout[key] = val;\n };\n\n List.prototype.getLayout = function (key) {\n return this._layout[key];\n };\n\n List.prototype.getItemLayout = function (idx) {\n return this._itemLayouts[idx];\n };\n\n List.prototype.setItemLayout = function (idx, layout, merge) {\n this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n };\n\n List.prototype.clearItemLayouts = function () {\n this._itemLayouts.length = 0;\n };\n\n List.prototype.setItemGraphicEl = function (idx, el) {\n var hostModel = this.hostModel;\n\n if (el) {\n var ecData = getECData(el);\n ecData.dataIndex = idx;\n ecData.dataType = this.dataType;\n ecData.seriesIndex = hostModel && hostModel.seriesIndex;\n\n if (el.type === 'group') {\n el.traverse(setItemDataAndSeriesIndex, el);\n }\n }\n\n this._graphicEls[idx] = el;\n };\n\n List.prototype.getItemGraphicEl = function (idx) {\n return this._graphicEls[idx];\n };\n\n List.prototype.eachItemGraphicEl = function (cb, context) {\n zrUtil.each(this._graphicEls, function (el, idx) {\n if (el) {\n cb && cb.call(context, el, idx);\n }\n });\n };\n\n List.prototype.cloneShallow = function (list) {\n if (!list) {\n var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\n list = new List(dimensionInfoList, this.hostModel);\n }\n\n list._storage = this._storage;\n list._storageArr = this._storageArr;\n transferProperties(list, this);\n\n if (this._indices) {\n var Ctor = this._indices.constructor;\n\n if (Ctor === Array) {\n var thisCount = this._indices.length;\n list._indices = new Ctor(thisCount);\n\n for (var i = 0; i < thisCount; i++) {\n list._indices[i] = this._indices[i];\n }\n } else {\n list._indices = new Ctor(this._indices);\n }\n } else {\n list._indices = null;\n }\n\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n return list;\n };\n\n List.prototype.wrapMethod = function (methodName, injectFunction) {\n var originalMethod = this[methodName];\n\n if (typeof originalMethod !== 'function') {\n return;\n }\n\n this.__wrappedMethods = this.__wrappedMethods || [];\n\n this.__wrappedMethods.push(methodName);\n\n this[methodName] = function () {\n var res = originalMethod.apply(this, arguments);\n return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n };\n };\n\n List.internalField = function () {\n defaultDimValueGetters = {\n arrayRows: getDimValueSimply,\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n },\n keyedColumns: getDimValueSimply,\n original: function (dataItem, dimName, dataIndex, dimIndex) {\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\n this.hasItemOption = true;\n }\n\n return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensionInfos[dimName]);\n },\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n return dataItem[dimIndex];\n }\n };\n\n function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n }\n\n prepareInvertedIndex = function (list) {\n var invertedIndicesMap = list._invertedIndicesMap;\n zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n var dimInfo = list._dimensionInfos[dim];\n var ordinalMeta = dimInfo.ordinalMeta;\n\n if (ordinalMeta) {\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\n\n for (var i = 0; i < invertedIndices.length; i++) {\n invertedIndices[i] = INDEX_NOT_FOUND;\n }\n\n for (var i = 0; i < list._count; i++) {\n invertedIndices[list.get(dim, i)] = i;\n }\n }\n });\n };\n\n getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\n var val;\n var chunk = list._storageArr[dimIdx];\n\n if (chunk) {\n val = chunk[rawIndex];\n\n if (ordinalMeta && ordinalMeta.categories.length) {\n val = ordinalMeta.categories[val];\n }\n }\n\n return convertOptionIdName(val, null);\n };\n\n getIndicesCtor = function (list) {\n return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n };\n\n prepareStorage = function (storage, dimInfo, end, append) {\n var DataCtor = dataCtors[dimInfo.type];\n var dim = dimInfo.name;\n\n if (append) {\n var oldStore = storage[dim];\n var oldLen = oldStore && oldStore.length;\n\n if (!(oldLen === end)) {\n var newStore = new DataCtor(end);\n\n for (var j = 0; j < oldLen; j++) {\n newStore[j] = oldStore[j];\n }\n\n storage[dim] = newStore;\n }\n } else {\n storage[dim] = new DataCtor(end);\n }\n };\n\n getRawIndexWithoutIndices = function (idx) {\n return idx;\n };\n\n getRawIndexWithIndices = function (idx) {\n if (idx < this._count && idx >= 0) {\n return this._indices[idx];\n }\n\n return -1;\n };\n\n getId = function (list, rawIndex) {\n var id = list._idList[rawIndex];\n\n if (id == null && list._idDimIdx != null) {\n id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\n }\n\n if (id == null) {\n id = ID_PREFIX + rawIndex;\n }\n\n return id;\n };\n\n normalizeDimensions = function (dimensions) {\n if (!zrUtil.isArray(dimensions)) {\n dimensions = dimensions != null ? [dimensions] : [];\n }\n\n return dimensions;\n };\n\n validateDimensions = function (list, dims) {\n for (var i = 0; i < dims.length; i++) {\n if (!list._dimensionInfos[dims[i]]) {\n console.error('Unkown dimension ' + dims[i]);\n }\n }\n };\n\n cloneListForMapAndSample = function (original, excludeDimensions) {\n var allDimensions = original.dimensions;\n var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\n transferProperties(list, original);\n var storage = list._storage = {};\n var originalStorage = original._storage;\n var storageArr = list._storageArr = [];\n\n for (var i = 0; i < allDimensions.length; i++) {\n var dim = allDimensions[i];\n\n if (originalStorage[dim]) {\n if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n storage[dim] = cloneChunk(originalStorage[dim]);\n list._rawExtent[dim] = getInitialExtent();\n list._extent[dim] = null;\n } else {\n storage[dim] = originalStorage[dim];\n }\n\n storageArr.push(storage[dim]);\n }\n }\n\n return list;\n };\n\n function cloneChunk(originalChunk) {\n var Ctor = originalChunk.constructor;\n return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n }\n\n getInitialExtent = function () {\n return [Infinity, -Infinity];\n };\n\n setItemDataAndSeriesIndex = function (child) {\n var childECData = getECData(child);\n var thisECData = getECData(this);\n childECData.seriesIndex = thisECData.seriesIndex;\n childECData.dataIndex = thisECData.dataIndex;\n childECData.dataType = thisECData.dataType;\n };\n\n transferProperties = function (target, source) {\n zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n if (source.hasOwnProperty(propName)) {\n target[propName] = source[propName];\n }\n });\n target.__wrappedMethods = source.__wrappedMethods;\n zrUtil.each(CLONE_PROPERTIES, function (propName) {\n target[propName] = zrUtil.clone(source[propName]);\n });\n target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n };\n\n makeIdFromName = function (list, idx) {\n var nameList = list._nameList;\n var idList = list._idList;\n var nameDimIdx = list._nameDimIdx;\n var idDimIdx = list._idDimIdx;\n var name = nameList[idx];\n var id = idList[idx];\n\n if (name == null && nameDimIdx != null) {\n nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\n }\n\n if (id == null && idDimIdx != null) {\n idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\n }\n\n if (id == null && name != null) {\n var nameRepeatCount = list._nameRepeatCount;\n var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n id = name;\n\n if (nmCnt > 1) {\n id += '__ec__' + nmCnt;\n }\n\n idList[idx] = id;\n }\n };\n }();\n\n return List;\n}();\n\nexport default List;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each, isString, defaults, extend, isObject, clone } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { guessOrdinal, BE_ORDINAL } from './sourceHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nimport DataDimensionInfo from '../DataDimensionInfo';\n\nfunction completeDimensions(sysDims, source, opt) {\n if (!isSourceInstance(source)) {\n source = createSourceFromSeriesDataOption(source);\n }\n\n opt = opt || {};\n sysDims = (sysDims || []).slice();\n var dimsDef = (opt.dimsDef || []).slice();\n var dataDimNameMap = createHashMap();\n var coordDimNameMap = createHashMap();\n var result = [];\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\n\n for (var i = 0; i < dimCount; i++) {\n var dimDefItemRaw = dimsDef[i];\n var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {\n name: dimDefItemRaw\n });\n var userDimName = dimDefItem.name;\n var resultItem = result[i] = new DataDimensionInfo();\n\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n resultItem.name = resultItem.displayName = userDimName;\n dataDimNameMap.set(userDimName, i);\n }\n\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n }\n\n var encodeDef = opt.encodeDef;\n\n if (!encodeDef && opt.encodeDefaulter) {\n encodeDef = opt.encodeDefaulter(source, dimCount);\n }\n\n var encodeDefMap = createHashMap(encodeDef);\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\n var dataDims = normalizeToArray(dataDimsRaw).slice();\n\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n encodeDefMap.set(coordDim, false);\n return;\n }\n\n var validDataDims = encodeDefMap.set(coordDim, []);\n each(dataDims, function (resultDimIdxOrName, idx) {\n var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n if (resultDimIdx != null && resultDimIdx < dimCount) {\n validDataDims[idx] = resultDimIdx;\n applyDim(result[resultDimIdx], coordDim, idx);\n }\n });\n });\n var availDimIdx = 0;\n each(sysDims, function (sysDimItemRaw) {\n var coordDim;\n var sysDimItemDimsDef;\n var sysDimItemOtherDims;\n var sysDimItem;\n\n if (isString(sysDimItemRaw)) {\n coordDim = sysDimItemRaw;\n sysDimItem = {};\n } else {\n sysDimItem = sysDimItemRaw;\n coordDim = sysDimItem.name;\n var ordinalMeta = sysDimItem.ordinalMeta;\n sysDimItem.ordinalMeta = null;\n sysDimItem = clone(sysDimItem);\n sysDimItem.ordinalMeta = ordinalMeta;\n sysDimItemDimsDef = sysDimItem.dimsDef;\n sysDimItemOtherDims = sysDimItem.otherDims;\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n }\n\n var dataDims = encodeDefMap.get(coordDim);\n\n if (dataDims === false) {\n return;\n }\n\n dataDims = normalizeToArray(dataDims);\n\n if (!dataDims.length) {\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n availDimIdx++;\n }\n\n availDimIdx < result.length && dataDims.push(availDimIdx++);\n }\n }\n\n each(dataDims, function (resultDimIdx, coordDimIndex) {\n var resultItem = result[resultDimIdx];\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n if (resultItem.name == null && sysDimItemDimsDef) {\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n name: sysDimItemDimsDefItem\n });\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n }\n\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n });\n });\n\n function applyDim(resultItem, coordDim, coordDimIndex) {\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n resultItem.otherDims[coordDim] = coordDimIndex;\n } else {\n resultItem.coordDim = coordDim;\n resultItem.coordDimIndex = coordDimIndex;\n coordDimNameMap.set(coordDim, true);\n }\n }\n\n var generateCoord = opt.generateCoord;\n var generateCoordCount = opt.generateCoordCount;\n var fromZero = generateCoordCount != null;\n generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n var extra = generateCoord || 'value';\n\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\n var coordDim = resultItem.coordDim;\n\n if (coordDim == null) {\n resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n resultItem.coordDimIndex = 0;\n\n if (!generateCoord || generateCoordCount <= 0) {\n resultItem.isExtraCoord = true;\n }\n\n generateCoordCount--;\n }\n\n resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\n\n if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n resultItem.type = 'ordinal';\n }\n }\n\n return result;\n}\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n each(sysDims, function (sysDimItem) {\n var sysDimItemDimsDef;\n\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n }\n });\n return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n if (fromZero || map.get(name) != null) {\n var i = 0;\n\n while (map.get(name + i) != null) {\n i++;\n }\n\n name += i;\n }\n\n map.set(name, true);\n return name;\n}\n\nexport default completeDimensions;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport completeDimensions from './completeDimensions';\nexport default function createDimensions(source, opt) {\n opt = opt || {};\n return completeDimensions(opt.coordDimensions || [], source, {\n dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n encodeDef: opt.encodeDefine || source.encodeDefine,\n dimCount: opt.dimensionsCount,\n encodeDefaulter: opt.encodeDefaulter,\n generateCoord: opt.generateCoord,\n generateCoordCount: opt.generateCoordCount\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../util/model';\n\nvar CoordSysInfo = function () {\n function CoordSysInfo(coordSysName) {\n this.coordSysDims = [];\n this.axisMap = createHashMap();\n this.categoryAxisMap = createHashMap();\n this.coordSysName = coordSysName;\n }\n\n return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n var coordSysName = seriesModel.get('coordinateSystem');\n var result = new CoordSysInfo(coordSysName);\n var fetch = fetchers[coordSysName];\n\n if (fetch) {\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n return result;\n }\n}\nvar fetchers = {\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!xAxisModel) {\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n }\n\n if (!yAxisModel) {\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n }\n }\n\n result.coordSysDims = ['x', 'y'];\n axisMap.set('x', xAxisModel);\n axisMap.set('y', yAxisModel);\n\n if (isCategory(xAxisModel)) {\n categoryAxisMap.set('x', xAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n\n if (isCategory(yAxisModel)) {\n categoryAxisMap.set('y', yAxisModel);\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n }\n },\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!singleAxisModel) {\n throw new Error('singleAxis should be specified.');\n }\n }\n\n result.coordSysDims = ['single'];\n axisMap.set('single', singleAxisModel);\n\n if (isCategory(singleAxisModel)) {\n categoryAxisMap.set('single', singleAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n },\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n if (process.env.NODE_ENV !== 'production') {\n if (!angleAxisModel) {\n throw new Error('angleAxis option not found');\n }\n\n if (!radiusAxisModel) {\n throw new Error('radiusAxis option not found');\n }\n }\n\n result.coordSysDims = ['radius', 'angle'];\n axisMap.set('radius', radiusAxisModel);\n axisMap.set('angle', angleAxisModel);\n\n if (isCategory(radiusAxisModel)) {\n categoryAxisMap.set('radius', radiusAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n\n if (isCategory(angleAxisModel)) {\n categoryAxisMap.set('angle', angleAxisModel);\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n }\n },\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n result.coordSysDims = ['lng', 'lat'];\n },\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n var ecModel = seriesModel.ecModel;\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n var axisDim = coordSysDims[index];\n axisMap.set(axisDim, axisModel);\n\n if (isCategory(axisModel)) {\n categoryAxisMap.set(axisDim, axisModel);\n\n if (result.firstCategoryDimIndex == null) {\n result.firstCategoryDimIndex = index;\n }\n }\n });\n }\n};\n\nfunction isCategory(axisModel) {\n return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isString } from 'zrender/lib/core/util';\nexport function enableDataStack(seriesModel, dimensionInfoList, opt) {\n opt = opt || {};\n var byIndex = opt.byIndex;\n var stackedCoordDimension = opt.stackedCoordDimension;\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\n var stackedByDimInfo;\n var stackedDimInfo;\n var stackResultDimension;\n var stackedOverDimension;\n each(dimensionInfoList, function (dimensionInfo, index) {\n if (isString(dimensionInfo)) {\n dimensionInfoList[index] = dimensionInfo = {\n name: dimensionInfo\n };\n }\n\n if (mayStack && !dimensionInfo.isExtraCoord) {\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n stackedByDimInfo = dimensionInfo;\n }\n\n if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n stackedDimInfo = dimensionInfo;\n }\n }\n });\n\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n byIndex = true;\n }\n\n if (stackedDimInfo) {\n stackResultDimension = '__\\0ecstackresult';\n stackedOverDimension = '__\\0ecstackedover';\n\n if (stackedByDimInfo) {\n stackedByDimInfo.createInvertedIndices = true;\n }\n\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n var stackedDimType = stackedDimInfo.type;\n var stackedDimCoordIndex_1 = 0;\n each(dimensionInfoList, function (dimensionInfo) {\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n stackedDimCoordIndex_1++;\n }\n });\n dimensionInfoList.push({\n name: stackResultDimension,\n coordDim: stackedDimCoordDim_1,\n coordDimIndex: stackedDimCoordIndex_1,\n type: stackedDimType,\n isExtraCoord: true,\n isCalculationCoord: true\n });\n stackedDimCoordIndex_1++;\n dimensionInfoList.push({\n name: stackedOverDimension,\n coordDim: stackedOverDimension,\n coordDimIndex: stackedDimCoordIndex_1,\n type: stackedDimType,\n isExtraCoord: true,\n isCalculationCoord: true\n });\n }\n\n return {\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n isStackedByIndex: byIndex,\n stackedOverDimension: stackedOverDimension,\n stackResultDimension: stackResultDimension\n };\n}\nexport function isDimensionStacked(data, stackedDim) {\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { getDataItemValue } from '../../util/model';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../../data/Source';\nimport { enableDataStack } from '../../data/helper/dataStackHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types';\n\nfunction createListFromArray(source, seriesModel, opt) {\n opt = opt || {};\n\n if (!isSourceInstance(source)) {\n source = createSourceFromSeriesDataOption(source);\n }\n\n var coordSysName = seriesModel.get('coordinateSystem');\n var registeredCoordSys = CoordinateSystem.get(coordSysName);\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n var coordSysDimDefs;\n\n if (coordSysInfo && coordSysInfo.coordSysDims) {\n coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n var dimInfo = {\n name: dim\n };\n var axisModel = coordSysInfo.axisMap.get(dim);\n\n if (axisModel) {\n var axisType = axisModel.get('type');\n dimInfo.type = getDimensionTypeByAxis(axisType);\n }\n\n return dimInfo;\n });\n }\n\n if (!coordSysDimDefs) {\n coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n }\n\n var useEncodeDefaulter = opt.useEncodeDefaulter;\n var dimInfoList = createDimensions(source, {\n coordDimensions: coordSysDimDefs,\n generateCoord: opt.generateCoord,\n encodeDefaulter: zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n });\n var firstCategoryDimIndex;\n var hasNameEncode;\n coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n var coordDim = dimInfo.coordDim;\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n if (categoryAxisModel) {\n if (firstCategoryDimIndex == null) {\n firstCategoryDimIndex = dimIndex;\n }\n\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n if (opt.createInvertedIndices) {\n dimInfo.createInvertedIndices = true;\n }\n }\n\n if (dimInfo.otherDims.itemName != null) {\n hasNameEncode = true;\n }\n });\n\n if (!hasNameEncode && firstCategoryDimIndex != null) {\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n }\n\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n var list = new List(dimInfoList, seriesModel);\n list.setCalculationInfo(stackCalculationInfo);\n var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n } : null;\n list.hasItemOption = false;\n list.initData(source, null, dimValueGetter);\n return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var sampleItem = firstDataNotNull(source.data || []);\n return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n }\n}\n\nfunction firstDataNotNull(data) {\n var i = 0;\n\n while (i < data.length && data[i] == null) {\n i++;\n }\n\n return data[i];\n}\n\nexport default createListFromArray;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as clazzUtil from '../util/clazz';\n\nvar Scale = function () {\n function Scale(setting) {\n this._setting = setting || {};\n this._extent = [Infinity, -Infinity];\n }\n\n Scale.prototype.getSetting = function (name) {\n return this._setting[name];\n };\n\n Scale.prototype.unionExtent = function (other) {\n var extent = this._extent;\n other[0] < extent[0] && (extent[0] = other[0]);\n other[1] > extent[1] && (extent[1] = other[1]);\n };\n\n Scale.prototype.unionExtentFromData = function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n };\n\n Scale.prototype.getExtent = function () {\n return this._extent.slice();\n };\n\n Scale.prototype.setExtent = function (start, end) {\n var thisExtent = this._extent;\n\n if (!isNaN(start)) {\n thisExtent[0] = start;\n }\n\n if (!isNaN(end)) {\n thisExtent[1] = end;\n }\n };\n\n Scale.prototype.isInExtentRange = function (value) {\n return this._extent[0] <= value && this._extent[1] >= value;\n };\n\n Scale.prototype.isBlank = function () {\n return this._isBlank;\n };\n\n Scale.prototype.setBlank = function (isBlank) {\n this._isBlank = isBlank;\n };\n\n return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isObject, map } from 'zrender/lib/core/util';\n\nvar OrdinalMeta = function () {\n function OrdinalMeta(opt) {\n this.categories = opt.categories || [];\n this._needCollect = opt.needCollect;\n this._deduplication = opt.deduplication;\n }\n\n OrdinalMeta.createByAxisModel = function (axisModel) {\n var option = axisModel.option;\n var data = option.data;\n var categories = data && map(data, getName);\n return new OrdinalMeta({\n categories: categories,\n needCollect: !categories,\n deduplication: option.dedplication !== false\n });\n };\n\n ;\n\n OrdinalMeta.prototype.getOrdinal = function (category) {\n return this._getOrCreateMap().get(category);\n };\n\n OrdinalMeta.prototype.parseAndCollect = function (category) {\n var index;\n var needCollect = this._needCollect;\n\n if (typeof category !== 'string' && !needCollect) {\n return category;\n }\n\n if (needCollect && !this._deduplication) {\n index = this.categories.length;\n this.categories[index] = category;\n return index;\n }\n\n var map = this._getOrCreateMap();\n\n index = map.get(category);\n\n if (index == null) {\n if (needCollect) {\n index = this.categories.length;\n this.categories[index] = category;\n map.set(category, index);\n } else {\n index = NaN;\n }\n }\n\n return index;\n };\n\n OrdinalMeta.prototype._getOrCreateMap = function () {\n return this._map || (this._map = createHashMap(this.categories));\n };\n\n return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n if (isObject(obj) && obj.value != null) {\n return obj.value;\n } else {\n return obj + '';\n }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../util/number';\nvar roundNumber = numberUtil.round;\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n var result = {};\n var span = extent[1] - extent[0];\n var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n if (minInterval != null && interval < minInterval) {\n interval = result.interval = minInterval;\n }\n\n if (maxInterval != null && interval > maxInterval) {\n interval = result.interval = maxInterval;\n }\n\n var precision = result.intervalPrecision = getIntervalPrecision(interval);\n var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n fixExtent(niceTickExtent, extent);\n return result;\n}\nexport function getIntervalPrecision(interval) {\n return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n}\n\nexport function fixExtent(niceTickExtent, extent) {\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n clamp(niceTickExtent, 0, extent);\n clamp(niceTickExtent, 1, extent);\n\n if (niceTickExtent[0] > niceTickExtent[1]) {\n niceTickExtent[0] = niceTickExtent[1];\n }\n}\nexport function contain(val, extent) {\n return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n if (extent[1] === extent[0]) {\n return 0.5;\n }\n\n return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Scale from './Scale';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport * as scaleHelper from './helper';\nimport { isArray, map, isObject } from 'zrender/lib/core/util';\n\nvar OrdinalScale = function (_super) {\n __extends(OrdinalScale, _super);\n\n function OrdinalScale(setting) {\n var _this = _super.call(this, setting) || this;\n\n _this.type = 'ordinal';\n\n var ordinalMeta = _this.getSetting('ordinalMeta');\n\n if (!ordinalMeta) {\n ordinalMeta = new OrdinalMeta({});\n }\n\n if (isArray(ordinalMeta)) {\n ordinalMeta = new OrdinalMeta({\n categories: map(ordinalMeta, function (item) {\n return isObject(item) ? item.value : item;\n })\n });\n }\n\n _this._ordinalMeta = ordinalMeta;\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n return _this;\n }\n\n OrdinalScale.prototype.parse = function (val) {\n return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) : Math.round(val);\n };\n\n OrdinalScale.prototype.contain = function (rank) {\n rank = this.parse(rank);\n return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n };\n\n OrdinalScale.prototype.normalize = function (val) {\n val = this._getTickNumber(this.parse(val));\n return scaleHelper.normalize(val, this._extent);\n };\n\n OrdinalScale.prototype.scale = function (val) {\n val = Math.round(scaleHelper.scale(val, this._extent));\n return this.getRawOrdinalNumber(val);\n };\n\n OrdinalScale.prototype.getTicks = function () {\n var ticks = [];\n var extent = this._extent;\n var rank = extent[0];\n\n while (rank <= extent[1]) {\n ticks.push({\n value: rank\n });\n rank++;\n }\n\n return ticks;\n };\n\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n return;\n };\n\n OrdinalScale.prototype.setSortInfo = function (info) {\n if (info == null) {\n this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n return;\n }\n\n var infoOrdinalNumbers = info.ordinalNumbers;\n var ordinalsByTick = this._ordinalNumbersByTick = [];\n var ticksByOrdinal = this._ticksByOrdinalNumber = [];\n var tickNum = 0;\n var allCategoryLen = this._ordinalMeta.categories.length;\n\n for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n var ordinalNumber = infoOrdinalNumbers[tickNum];\n ordinalsByTick[tickNum] = ordinalNumber;\n ticksByOrdinal[ordinalNumber] = tickNum;\n }\n\n var unusedOrdinal = 0;\n\n for (; tickNum < allCategoryLen; ++tickNum) {\n while (ticksByOrdinal[unusedOrdinal] != null) {\n unusedOrdinal++;\n }\n\n ;\n ordinalsByTick.push(unusedOrdinal);\n ticksByOrdinal[unusedOrdinal] = tickNum;\n }\n };\n\n OrdinalScale.prototype._getTickNumber = function (ordinal) {\n var ticksByOrdinalNumber = this._ticksByOrdinalNumber;\n return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n };\n\n OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n var ordinalNumbersByTick = this._ordinalNumbersByTick;\n return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n };\n\n OrdinalScale.prototype.getLabel = function (tick) {\n if (!this.isBlank()) {\n var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n var cateogry = this._ordinalMeta.categories[ordinalNumber];\n return cateogry == null ? '' : cateogry + '';\n }\n };\n\n OrdinalScale.prototype.count = function () {\n return this._extent[1] - this._extent[0] + 1;\n };\n\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n };\n\n OrdinalScale.prototype.isInExtentRange = function (value) {\n value = this._getTickNumber(value);\n return this._extent[0] <= value && this._extent[1] >= value;\n };\n\n OrdinalScale.prototype.getOrdinalMeta = function () {\n return this._ordinalMeta;\n };\n\n OrdinalScale.prototype.niceTicks = function () {};\n\n OrdinalScale.prototype.niceExtent = function () {};\n\n OrdinalScale.type = 'ordinal';\n return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport * as formatUtil from '../util/format';\nimport Scale from './Scale';\nimport * as helper from './helper';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale = function (_super) {\n __extends(IntervalScale, _super);\n\n function IntervalScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'interval';\n _this._interval = 0;\n _this._intervalPrecision = 2;\n return _this;\n }\n\n IntervalScale.prototype.parse = function (val) {\n return val;\n };\n\n IntervalScale.prototype.contain = function (val) {\n return helper.contain(val, this._extent);\n };\n\n IntervalScale.prototype.normalize = function (val) {\n return helper.normalize(val, this._extent);\n };\n\n IntervalScale.prototype.scale = function (val) {\n return helper.scale(val, this._extent);\n };\n\n IntervalScale.prototype.setExtent = function (start, end) {\n var thisExtent = this._extent;\n\n if (!isNaN(start)) {\n thisExtent[0] = parseFloat(start);\n }\n\n if (!isNaN(end)) {\n thisExtent[1] = parseFloat(end);\n }\n };\n\n IntervalScale.prototype.unionExtent = function (other) {\n var extent = this._extent;\n other[0] < extent[0] && (extent[0] = other[0]);\n other[1] > extent[1] && (extent[1] = other[1]);\n this.setExtent(extent[0], extent[1]);\n };\n\n IntervalScale.prototype.getInterval = function () {\n return this._interval;\n };\n\n IntervalScale.prototype.setInterval = function (interval) {\n this._interval = interval;\n this._niceExtent = this._extent.slice();\n this._intervalPrecision = helper.getIntervalPrecision(interval);\n };\n\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n var interval = this._interval;\n var extent = this._extent;\n var niceTickExtent = this._niceExtent;\n var intervalPrecision = this._intervalPrecision;\n var ticks = [];\n\n if (!interval) {\n return ticks;\n }\n\n var safeLimit = 10000;\n\n if (extent[0] < niceTickExtent[0]) {\n if (expandToNicedExtent) {\n ticks.push({\n value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n });\n } else {\n ticks.push({\n value: extent[0]\n });\n }\n }\n\n var tick = niceTickExtent[0];\n\n while (tick <= niceTickExtent[1]) {\n ticks.push({\n value: tick\n });\n tick = roundNumber(tick + interval, intervalPrecision);\n\n if (tick === ticks[ticks.length - 1].value) {\n break;\n }\n\n if (ticks.length > safeLimit) {\n return [];\n }\n }\n\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n if (extent[1] > lastNiceTick) {\n if (expandToNicedExtent) {\n ticks.push({\n value: roundNumber(lastNiceTick + interval, intervalPrecision)\n });\n } else {\n ticks.push({\n value: extent[1]\n });\n }\n }\n\n return ticks;\n };\n\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n var ticks = this.getTicks(true);\n var minorTicks = [];\n var extent = this.getExtent();\n\n for (var i = 1; i < ticks.length; i++) {\n var nextTick = ticks[i];\n var prevTick = ticks[i - 1];\n var count = 0;\n var minorTicksGroup = [];\n var interval = nextTick.value - prevTick.value;\n var minorInterval = interval / splitNumber;\n\n while (count < splitNumber - 1) {\n var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval);\n\n if (minorTick > extent[0] && minorTick < extent[1]) {\n minorTicksGroup.push(minorTick);\n }\n\n count++;\n }\n\n minorTicks.push(minorTicksGroup);\n }\n\n return minorTicks;\n };\n\n IntervalScale.prototype.getLabel = function (data, opt) {\n if (data == null) {\n return '';\n }\n\n var precision = opt && opt.precision;\n\n if (precision == null) {\n precision = numberUtil.getPrecisionSafe(data.value) || 0;\n } else if (precision === 'auto') {\n precision = this._intervalPrecision;\n }\n\n var dataNum = roundNumber(data.value, precision, true);\n return formatUtil.addCommas(dataNum);\n };\n\n IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\n splitNumber = splitNumber || 5;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (!isFinite(span)) {\n return;\n }\n\n if (span < 0) {\n span = -span;\n extent.reverse();\n }\n\n var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n this._intervalPrecision = result.intervalPrecision;\n this._interval = result.interval;\n this._niceExtent = result.niceTickExtent;\n };\n\n IntervalScale.prototype.niceExtent = function (opt) {\n var extent = this._extent;\n\n if (extent[0] === extent[1]) {\n if (extent[0] !== 0) {\n var expandSize = extent[0];\n\n if (!opt.fixMax) {\n extent[1] += expandSize / 2;\n extent[0] -= expandSize / 2;\n } else {\n extent[0] -= expandSize / 2;\n }\n } else {\n extent[1] = 1;\n }\n }\n\n var span = extent[1] - extent[0];\n\n if (!isFinite(span)) {\n extent[0] = 0;\n extent[1] = 1;\n }\n\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n var interval = this._interval;\n\n if (!opt.fixMin) {\n extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n }\n\n if (!opt.fixMax) {\n extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n }\n };\n\n IntervalScale.type = 'interval';\n return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n return axis.dim + axis.index;\n}\n\nexport function getLayoutOnAxis(opt) {\n var params = [];\n var baseAxis = opt.axis;\n var axisKey = 'axis0';\n\n if (baseAxis.type !== 'category') {\n return;\n }\n\n var bandWidth = baseAxis.getBandWidth();\n\n for (var i = 0; i < opt.count || 0; i++) {\n params.push(zrUtil.defaults({\n bandWidth: bandWidth,\n axisKey: axisKey,\n stackId: STACK_PREFIX + i\n }, opt));\n }\n\n var widthAndOffsets = doCalBarWidthAndOffset(params);\n var result = [];\n\n for (var i = 0; i < opt.count; i++) {\n var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n item.offsetCenter = item.offset + item.width / 2;\n result.push(item);\n }\n\n return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n var seriesModels = [];\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n seriesModels.push(seriesModel);\n }\n });\n return seriesModels;\n}\n\nfunction getValueAxesMinGaps(barSeries) {\n var axisValues = {};\n zrUtil.each(barSeries, function (seriesModel) {\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n return;\n }\n\n var data = seriesModel.getData();\n var key = baseAxis.dim + '_' + baseAxis.index;\n var dim = data.mapDimension(baseAxis.dim);\n\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n var value = data.get(dim, i);\n\n if (!axisValues[key]) {\n axisValues[key] = [value];\n } else {\n axisValues[key].push(value);\n }\n }\n });\n var axisMinGaps = {};\n\n for (var key in axisValues) {\n if (axisValues.hasOwnProperty(key)) {\n var valuesInAxis = axisValues[key];\n\n if (valuesInAxis) {\n valuesInAxis.sort(function (a, b) {\n return a - b;\n });\n var min = null;\n\n for (var j = 1; j < valuesInAxis.length; ++j) {\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n if (delta > 0) {\n min = min === null ? delta : Math.min(min, delta);\n }\n }\n\n axisMinGaps[key] = min;\n }\n }\n }\n\n return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n var axisMinGaps = getValueAxesMinGaps(barSeries);\n var seriesInfoList = [];\n zrUtil.each(barSeries, function (seriesModel) {\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var axisExtent = baseAxis.getExtent();\n var bandWidth;\n\n if (baseAxis.type === 'category') {\n bandWidth = baseAxis.getBandWidth();\n } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n var key = baseAxis.dim + '_' + baseAxis.index;\n var minGap = axisMinGaps[key];\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n var scale = baseAxis.scale.getExtent();\n var scaleSpan = Math.abs(scale[1] - scale[0]);\n bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan;\n } else {\n var data = seriesModel.getData();\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n }\n\n var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n var barMinWidth = parsePercent(seriesModel.get('barMinWidth') || 1, bandWidth);\n var barGap = seriesModel.get('barGap');\n var barCategoryGap = seriesModel.get('barCategoryGap');\n seriesInfoList.push({\n bandWidth: bandWidth,\n barWidth: barWidth,\n barMaxWidth: barMaxWidth,\n barMinWidth: barMinWidth,\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n axisKey: getAxisKey(baseAxis),\n stackId: getSeriesStackId(seriesModel)\n });\n });\n return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n var columnsMap = {};\n zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n var axisKey = seriesInfo.axisKey;\n var bandWidth = seriesInfo.bandWidth;\n var columnsOnAxis = columnsMap[axisKey] || {\n bandWidth: bandWidth,\n remainedWidth: bandWidth,\n autoWidthCount: 0,\n categoryGap: null,\n gap: '20%',\n stacks: {}\n };\n var stacks = columnsOnAxis.stacks;\n columnsMap[axisKey] = columnsOnAxis;\n var stackId = seriesInfo.stackId;\n\n if (!stacks[stackId]) {\n columnsOnAxis.autoWidthCount++;\n }\n\n stacks[stackId] = stacks[stackId] || {\n width: 0,\n maxWidth: 0\n };\n var barWidth = seriesInfo.barWidth;\n\n if (barWidth && !stacks[stackId].width) {\n stacks[stackId].width = barWidth;\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n columnsOnAxis.remainedWidth -= barWidth;\n }\n\n var barMaxWidth = seriesInfo.barMaxWidth;\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n var barMinWidth = seriesInfo.barMinWidth;\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n var barGap = seriesInfo.barGap;\n barGap != null && (columnsOnAxis.gap = barGap);\n var barCategoryGap = seriesInfo.barCategoryGap;\n barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n });\n var result = {};\n zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n result[coordSysName] = {};\n var stacks = columnsOnAxis.stacks;\n var bandWidth = columnsOnAxis.bandWidth;\n var categoryGapPercent = columnsOnAxis.categoryGap;\n\n if (categoryGapPercent == null) {\n var columnCount = zrUtil.keys(stacks).length;\n categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n }\n\n var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n var remainedWidth = columnsOnAxis.remainedWidth;\n var autoWidthCount = columnsOnAxis.autoWidthCount;\n var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n zrUtil.each(stacks, function (column) {\n var maxWidth = column.maxWidth;\n var minWidth = column.minWidth;\n\n if (!column.width) {\n var finalWidth = autoWidth;\n\n if (maxWidth && maxWidth < finalWidth) {\n finalWidth = Math.min(maxWidth, remainedWidth);\n }\n\n if (minWidth && minWidth > finalWidth) {\n finalWidth = minWidth;\n }\n\n if (finalWidth !== autoWidth) {\n column.width = finalWidth;\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\n autoWidthCount--;\n }\n } else {\n var finalWidth = column.width;\n\n if (maxWidth) {\n finalWidth = Math.min(finalWidth, maxWidth);\n }\n\n if (minWidth) {\n finalWidth = Math.max(finalWidth, minWidth);\n }\n\n column.width = finalWidth;\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\n autoWidthCount--;\n }\n });\n autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n var widthSum = 0;\n var lastColumn;\n zrUtil.each(stacks, function (column, idx) {\n if (!column.width) {\n column.width = autoWidth;\n }\n\n lastColumn = column;\n widthSum += column.width * (1 + barGapPercent);\n });\n\n if (lastColumn) {\n widthSum -= lastColumn.width * barGapPercent;\n }\n\n var offset = -widthSum / 2;\n zrUtil.each(stacks, function (column, stackId) {\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\n bandWidth: bandWidth,\n offset: offset,\n width: column.width\n };\n offset += column.width * (1 + barGapPercent);\n });\n });\n return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n if (barWidthAndOffset && axis) {\n var result = barWidthAndOffset[getAxisKey(axis)];\n\n if (result != null && seriesModel != null) {\n return result[getSeriesStackId(seriesModel)];\n }\n\n return result;\n }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n var barWidthAndOffset = makeColumnLayout(seriesModels);\n var lastStackCoords = {};\n zrUtil.each(seriesModels, function (seriesModel) {\n var data = seriesModel.getData();\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var stackId = getSeriesStackId(seriesModel);\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n var columnOffset = columnLayoutInfo.offset;\n var columnWidth = columnLayoutInfo.width;\n var valueAxis = cartesian.getOtherAxis(baseAxis);\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n data.setLayout({\n bandWidth: columnLayoutInfo.bandWidth,\n offset: columnOffset,\n size: columnWidth\n });\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var stacked = isDimensionStacked(data, valueDim);\n var isValueAxisH = valueAxis.isHorizontal();\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n var value = data.get(valueDim, idx);\n var baseValue = data.get(baseDim, idx);\n var sign = value >= 0 ? 'p' : 'n';\n var baseCoord = valueAxisStart;\n\n if (stacked) {\n if (!lastStackCoords[stackId][baseValue]) {\n lastStackCoords[stackId][baseValue] = {\n p: valueAxisStart,\n n: valueAxisStart\n };\n }\n\n baseCoord = lastStackCoords[stackId][baseValue][sign];\n }\n\n var x = void 0;\n var y = void 0;\n var width = void 0;\n var height = void 0;\n\n if (isValueAxisH) {\n var coord = cartesian.dataToPoint([value, baseValue]);\n x = baseCoord;\n y = coord[1] + columnOffset;\n width = coord[0] - valueAxisStart;\n height = columnWidth;\n\n if (Math.abs(width) < barMinHeight) {\n width = (width < 0 ? -1 : 1) * barMinHeight;\n }\n\n if (!isNaN(width)) {\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n }\n } else {\n var coord = cartesian.dataToPoint([baseValue, value]);\n x = coord[0] + columnOffset;\n y = baseCoord;\n width = columnWidth;\n height = coord[1] - valueAxisStart;\n\n if (Math.abs(height) < barMinHeight) {\n height = (height <= 0 ? -1 : 1) * barMinHeight;\n }\n\n if (!isNaN(height)) {\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n }\n }\n\n data.setItemLayout(idx, {\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n });\n}\nexport var largeLayout = {\n seriesType: 'bar',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n var cartesian = seriesModel.coordinateSystem;\n var coordLayout = cartesian.master.getRect();\n var baseAxis = cartesian.getBaseAxis();\n var valueAxis = cartesian.getOtherAxis(baseAxis);\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var valueAxisHorizontal = valueAxis.isHorizontal();\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n barWidth = LARGE_BAR_MIN_WIDTH;\n }\n\n return {\n progress: function (params, data) {\n var count = params.count;\n var largePoints = new LargeArr(count * 2);\n var largeBackgroundPoints = new LargeArr(count * 2);\n var largeDataIndices = new LargeArr(count);\n var dataIndex;\n var coord = [];\n var valuePair = [];\n var pointsOffset = 0;\n var idxOffset = 0;\n\n while ((dataIndex = params.next()) != null) {\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n coord = cartesian.dataToPoint(valuePair, null, coord);\n largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n largePoints[pointsOffset++] = coord[0];\n largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n largePoints[pointsOffset++] = coord[1];\n largeDataIndices[idxOffset++] = dataIndex;\n }\n\n data.setLayout({\n largePoints: largePoints,\n largeDataIndices: largeDataIndices,\n largeBackgroundPoints: largeBackgroundPoints,\n barWidth: barWidth,\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n valueAxisHorizontal: valueAxisHorizontal\n });\n }\n };\n }\n};\n\nfunction isOnCartesian(seriesModel) {\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nimport Scale from './Scale';\nimport { warn } from '../util/log';\nimport { filter, map } from 'zrender/lib/core/util';\n\nvar bisect = function (a, x, lo, hi) {\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n\n if (a[mid][1] < x) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n\n return lo;\n};\n\nvar TimeScale = function (_super) {\n __extends(TimeScale, _super);\n\n function TimeScale(settings) {\n var _this = _super.call(this, settings) || this;\n\n _this.type = 'time';\n return _this;\n }\n\n TimeScale.prototype.getLabel = function (tick) {\n var useUTC = this.getSetting('useUTC');\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n };\n\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n var isUTC = this.getSetting('useUTC');\n var lang = this.getSetting('locale');\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n };\n\n TimeScale.prototype.getTicks = function (expandToNicedExtent) {\n var interval = this._interval;\n var extent = this._extent;\n var ticks = [];\n\n if (!interval) {\n return ticks;\n }\n\n ticks.push({\n value: extent[0],\n level: 0\n });\n var useUTC = this.getSetting('useUTC');\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n ticks = ticks.concat(innerTicks);\n ticks.push({\n value: extent[1],\n level: 0\n });\n return ticks;\n };\n\n TimeScale.prototype.niceExtent = function (opt) {\n var extent = this._extent;\n\n if (extent[0] === extent[1]) {\n extent[0] -= ONE_DAY;\n extent[1] += ONE_DAY;\n }\n\n if (extent[1] === -Infinity && extent[0] === Infinity) {\n var d = new Date();\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n extent[0] = extent[1] - ONE_DAY;\n }\n\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n };\n\n TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n this._approxInterval = span / approxTickNum;\n\n if (minInterval != null && this._approxInterval < minInterval) {\n this._approxInterval = minInterval;\n }\n\n if (maxInterval != null && this._approxInterval > maxInterval) {\n this._approxInterval = maxInterval;\n }\n\n var scaleIntervalsLen = scaleIntervals.length;\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\n this._interval = scaleIntervals[idx][1];\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n };\n\n TimeScale.prototype.parse = function (val) {\n return typeof val === 'number' ? val : +numberUtil.parseDate(val);\n };\n\n TimeScale.prototype.contain = function (val) {\n return scaleHelper.contain(this.parse(val), this._extent);\n };\n\n TimeScale.prototype.normalize = function (val) {\n return scaleHelper.normalize(this.parse(val), this._extent);\n };\n\n TimeScale.prototype.scale = function (val) {\n return scaleHelper.scale(val, this._extent);\n };\n\n TimeScale.type = 'time';\n return TimeScale;\n}(IntervalScale);\n\nvar scaleIntervals = [['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR]];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n var dateA = numberUtil.parseDate(valueA);\n var dateB = numberUtil.parseDate(valueB);\n\n var isSame = function (unit) {\n return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n };\n\n var isSameYear = function () {\n return isSame('year');\n };\n\n var isSameMonth = function () {\n return isSameYear() && isSame('month');\n };\n\n var isSameDay = function () {\n return isSameMonth() && isSame('day');\n };\n\n var isSameHour = function () {\n return isSameDay() && isSame('hour');\n };\n\n var isSameMinute = function () {\n return isSameHour() && isSame('minute');\n };\n\n var isSameSecond = function () {\n return isSameMinute() && isSame('second');\n };\n\n var isSameMilliSecond = function () {\n return isSameSecond() && isSame('millisecond');\n };\n\n switch (unit) {\n case 'year':\n return isSameYear();\n\n case 'month':\n return isSameMonth();\n\n case 'day':\n return isSameDay();\n\n case 'hour':\n return isSameHour();\n\n case 'minute':\n return isSameMinute();\n\n case 'second':\n return isSameSecond();\n\n case 'millisecond':\n return isSameMilliSecond();\n }\n}\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n approxInterval /= ONE_DAY;\n return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\n approxInterval /= APPROX_ONE_MONTH;\n return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n approxInterval /= ONE_HOUR;\n return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n var outDate = new Date(date);\n\n switch (getPrimaryTimeUnit(unitName)) {\n case 'year':\n case 'month':\n outDate[monthSetterName(isUTC)](0);\n\n case 'day':\n outDate[dateSetterName(isUTC)](1);\n\n case 'hour':\n outDate[hoursSetterName(isUTC)](0);\n\n case 'minute':\n outDate[minutesSetterName(isUTC)](0);\n\n case 'second':\n outDate[secondsSetterName(isUTC)](0);\n outDate[millisecondsSetterName(isUTC)](0);\n }\n\n return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n var safeLimit = 10000;\n var unitNames = timeUnits;\n var iter = 0;\n\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n var date = new Date(minTimestamp);\n var dateTime = minTimestamp;\n var d = date[getMethodName]();\n\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n out.push({\n value: dateTime\n });\n d += interval;\n date[setMethodName](d);\n dateTime = date.getTime();\n }\n\n out.push({\n value: dateTime,\n notAdd: true\n });\n }\n\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n var newAddedTicks = [];\n var isFirstLevel = !lastLevelTicks.length;\n\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n return;\n }\n\n if (isFirstLevel) {\n lastLevelTicks = [{\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n }, {\n value: extent[1]\n }];\n }\n\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n var startTick = lastLevelTicks[i].value;\n var endTick = lastLevelTicks[i + 1].value;\n\n if (startTick === endTick) {\n continue;\n }\n\n var interval = void 0;\n var getterName = void 0;\n var setterName = void 0;\n var isDate = false;\n\n switch (unitName) {\n case 'year':\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n getterName = fullYearGetterName(isUTC);\n setterName = fullYearSetterName(isUTC);\n break;\n\n case 'half-year':\n case 'quarter':\n case 'month':\n interval = getMonthInterval(approxInterval);\n getterName = monthGetterName(isUTC);\n setterName = monthSetterName(isUTC);\n break;\n\n case 'week':\n case 'half-week':\n case 'day':\n interval = getDateInterval(approxInterval, 31);\n getterName = dateGetterName(isUTC);\n setterName = dateSetterName(isUTC);\n isDate = true;\n break;\n\n case 'half-day':\n case 'quarter-day':\n case 'hour':\n interval = getHourInterval(approxInterval);\n getterName = hoursGetterName(isUTC);\n setterName = hoursSetterName(isUTC);\n break;\n\n case 'minute':\n interval = getMinutesAndSecondsInterval(approxInterval, true);\n getterName = minutesGetterName(isUTC);\n setterName = minutesSetterName(isUTC);\n break;\n\n case 'second':\n interval = getMinutesAndSecondsInterval(approxInterval, false);\n getterName = secondsGetterName(isUTC);\n setterName = secondsSetterName(isUTC);\n break;\n\n case 'millisecond':\n interval = getMillisecondsInterval(approxInterval);\n getterName = millisecondsGetterName(isUTC);\n setterName = millisecondsSetterName(isUTC);\n break;\n }\n\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n levelTicks.unshift({\n value: levelTicks[0].value - interval\n });\n }\n }\n\n for (var i = 0; i < newAddedTicks.length; i++) {\n levelTicks.push(newAddedTicks[i]);\n }\n\n return newAddedTicks;\n }\n\n var levelsTicks = [];\n var currentLevelTicks = [];\n var tickCount = 0;\n var lastLevelTickCount = 0;\n\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n if (!isPrimaryTimeUnit(unitNames[i])) {\n continue;\n }\n\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n if (currentLevelTicks.length) {\n lastLevelTickCount = tickCount;\n currentLevelTicks.sort(function (a, b) {\n return a.value - b.value;\n });\n var levelTicksRemoveDuplicated = [];\n\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n var tickValue = currentLevelTicks[i_1].value;\n\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\n tickCount++;\n }\n }\n }\n\n var targetTickNum = (extent[1] - extent[0]) / approxInterval;\n\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n break;\n }\n\n levelsTicks.push(levelTicksRemoveDuplicated);\n\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n break;\n }\n }\n\n currentLevelTicks = [];\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (iter >= safeLimit) {\n warn('Exceed safe limit.');\n }\n }\n\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n return filter(levelTicks, function (tick) {\n return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n });\n }), function (levelTicks) {\n return levelTicks.length > 0;\n });\n var ticks = [];\n var maxLevel = levelsTicksInExtent.length - 1;\n\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n var levelTicks = levelsTicksInExtent[i];\n\n for (var k = 0; k < levelTicks.length; ++k) {\n ticks.push({\n value: levelTicks[k].value,\n level: maxLevel - i\n });\n }\n }\n\n ticks.sort(function (a, b) {\n return a.value - b.value;\n });\n var result = [];\n\n for (var i = 0; i < ticks.length; ++i) {\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n result.push(ticks[i]);\n }\n }\n\n return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Scale from './Scale';\nimport * as numberUtil from '../util/number';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale = function (_super) {\n __extends(LogScale, _super);\n\n function LogScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'log';\n _this.base = 10;\n _this._originalScale = new IntervalScale();\n _this._interval = 0;\n return _this;\n }\n\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\n var originalScale = this._originalScale;\n var extent = this._extent;\n var originalExtent = originalScale.getExtent();\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n return zrUtil.map(ticks, function (tick) {\n var val = tick.value;\n var powVal = numberUtil.round(mathPow(this.base, val));\n powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n return {\n value: powVal\n };\n }, this);\n };\n\n LogScale.prototype.setExtent = function (start, end) {\n var base = this.base;\n start = mathLog(start) / mathLog(base);\n end = mathLog(end) / mathLog(base);\n intervalScaleProto.setExtent.call(this, start, end);\n };\n\n LogScale.prototype.getExtent = function () {\n var base = this.base;\n var extent = scaleProto.getExtent.call(this);\n extent[0] = mathPow(base, extent[0]);\n extent[1] = mathPow(base, extent[1]);\n var originalScale = this._originalScale;\n var originalExtent = originalScale.getExtent();\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n return extent;\n };\n\n LogScale.prototype.unionExtent = function (extent) {\n this._originalScale.unionExtent(extent);\n\n var base = this.base;\n extent[0] = mathLog(extent[0]) / mathLog(base);\n extent[1] = mathLog(extent[1]) / mathLog(base);\n scaleProto.unionExtent.call(this, extent);\n };\n\n LogScale.prototype.unionExtentFromData = function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n };\n\n LogScale.prototype.niceTicks = function (approxTickNum) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (span === Infinity || span <= 0) {\n return;\n }\n\n var interval = numberUtil.quantity(span);\n var err = approxTickNum / span * interval;\n\n if (err <= 0.5) {\n interval *= 10;\n }\n\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n interval *= 10;\n }\n\n var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n this._interval = interval;\n this._niceExtent = niceExtent;\n };\n\n LogScale.prototype.niceExtent = function (opt) {\n intervalScaleProto.niceExtent.call(this, opt);\n this._fixMin = opt.fixMin;\n this._fixMax = opt.fixMax;\n };\n\n LogScale.prototype.parse = function (val) {\n return val;\n };\n\n LogScale.prototype.contain = function (val) {\n val = mathLog(val) / mathLog(this.base);\n return scaleHelper.contain(val, this._extent);\n };\n\n LogScale.prototype.normalize = function (val) {\n val = mathLog(val) / mathLog(this.base);\n return scaleHelper.normalize(val, this._extent);\n };\n\n LogScale.prototype.scale = function (val) {\n val = scaleHelper.scale(val, this._extent);\n return mathPow(this.base, val);\n };\n\n LogScale.type = 'log';\n return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\n\nvar ScaleRawExtentInfo = function () {\n function ScaleRawExtentInfo(scale, model, originalExtent) {\n this._prepareParams(scale, model, originalExtent);\n }\n\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\n if (dataExtent[1] < dataExtent[0]) {\n dataExtent = [NaN, NaN];\n }\n\n this._dataMin = dataExtent[0];\n this._dataMax = dataExtent[1];\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n if (isFunction(modelMinRaw)) {\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n min: dataExtent[0],\n max: dataExtent[1]\n }));\n } else if (modelMinRaw !== 'dataMin') {\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n }\n\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n if (isFunction(modelMaxRaw)) {\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n min: dataExtent[0],\n max: dataExtent[1]\n }));\n } else if (modelMaxRaw !== 'dataMax') {\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n }\n\n if (isOrdinal) {\n this._axisDataLen = model.getCategories().length;\n } else {\n var boundaryGap = model.get('boundaryGap');\n var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n }\n\n this._boundaryGapInner = [0, 0];\n } else {\n this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n }\n }\n };\n\n ScaleRawExtentInfo.prototype.calculate = function () {\n var isOrdinal = this._isOrdinal;\n var dataMin = this._dataMin;\n var dataMax = this._dataMax;\n var axisDataLen = this._axisDataLen;\n var boundaryGapInner = this._boundaryGapInner;\n var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null;\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\n var minFixed = min != null;\n var maxFixed = max != null;\n\n if (min == null) {\n min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n }\n\n if (max == null) {\n max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n }\n\n (min == null || !isFinite(min)) && (min = NaN);\n (max == null || !isFinite(max)) && (max = NaN);\n\n if (min > max) {\n min = NaN;\n max = NaN;\n }\n\n var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen;\n\n if (this._needCrossZero) {\n if (min > 0 && max > 0 && !minFixed) {\n min = 0;\n }\n\n if (min < 0 && max < 0 && !maxFixed) {\n max = 0;\n }\n }\n\n var determinedMin = this._determinedMin;\n var determinedMax = this._determinedMax;\n\n if (determinedMin != null) {\n min = determinedMin;\n minFixed = true;\n }\n\n if (determinedMax != null) {\n max = determinedMax;\n maxFixed = true;\n }\n\n return {\n min: min,\n max: max,\n minFixed: minFixed,\n maxFixed: maxFixed,\n isBlank: isBlank\n };\n };\n\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this.frozen);\n }\n\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n };\n\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(!this.frozen && this[attr] == null);\n }\n\n this[attr] = val;\n };\n\n ScaleRawExtentInfo.prototype.freeze = function () {\n this.frozen = true;\n };\n\n return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n min: '_determinedMin',\n max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n min: '_dataMin',\n max: '_dataMax'\n};\nexport function ensureScaleRawExtentInfo(scale, model, originalExtent) {\n var rawExtentInfo = scale.rawExtentInfo;\n\n if (rawExtentInfo) {\n return rawExtentInfo;\n }\n\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\n scale.rawExtentInfo = rawExtentInfo;\n return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport OrdinalScale from '../scale/Ordinal';\nimport IntervalScale from '../scale/Interval';\nimport Scale from '../scale/Scale';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport TimeScale from '../scale/Time';\nimport LogScale from '../scale/Log';\nimport { getStackedDimension } from '../data/helper/dataStackHelper';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo';\nexport function getScaleExtent(scale, model) {\n var scaleType = scale.type;\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n scale.setBlank(rawExtentResult.isBlank);\n var min = rawExtentResult.min;\n var max = rawExtentResult.max;\n var ecModel = model.ecModel;\n\n if (ecModel && scaleType === 'time') {\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n var isBaseAxisAndHasBarSeries_1 = false;\n zrUtil.each(barSeriesModels, function (seriesModel) {\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n });\n\n if (isBaseAxisAndHasBarSeries_1) {\n var barWidthAndOffset = makeColumnLayout(barSeriesModels);\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n min = adjustedScale.min;\n max = adjustedScale.max;\n }\n }\n\n return {\n extent: [min, max],\n fixMin: rawExtentResult.minFixed,\n fixMax: rawExtentResult.maxFixed\n };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n var axisExtent = model.axis.getExtent();\n var axisLength = axisExtent[1] - axisExtent[0];\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n if (barsOnCurrentAxis === undefined) {\n return {\n min: min,\n max: max\n };\n }\n\n var minOverflow = Infinity;\n zrUtil.each(barsOnCurrentAxis, function (item) {\n minOverflow = Math.min(item.offset, minOverflow);\n });\n var maxOverflow = -Infinity;\n zrUtil.each(barsOnCurrentAxis, function (item) {\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n });\n minOverflow = Math.abs(minOverflow);\n maxOverflow = Math.abs(maxOverflow);\n var totalOverFlow = minOverflow + maxOverflow;\n var oldRange = max - min;\n var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n max += overflowBuffer * (maxOverflow / totalOverFlow);\n min -= overflowBuffer * (minOverflow / totalOverFlow);\n return {\n min: min,\n max: max\n };\n}\n\nexport function niceScaleExtent(scale, model) {\n var extentInfo = getScaleExtent(scale, model);\n var extent = extentInfo.extent;\n var splitNumber = model.get('splitNumber');\n\n if (scale instanceof LogScale) {\n scale.base = model.get('logBase');\n }\n\n var scaleType = scale.type;\n scale.setExtent(extent[0], extent[1]);\n scale.niceExtent({\n splitNumber: splitNumber,\n fixMin: extentInfo.fixMin,\n fixMax: extentInfo.fixMax,\n minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n });\n var interval = model.get('interval');\n\n if (interval != null) {\n scale.setInterval && scale.setInterval(interval);\n }\n}\nexport function createScaleByModel(model, axisType) {\n axisType = axisType || model.get('type');\n\n if (axisType) {\n switch (axisType) {\n case 'category':\n return new OrdinalScale({\n ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n extent: [Infinity, -Infinity]\n });\n\n case 'time':\n return new TimeScale({\n locale: model.ecModel.getLocaleModel(),\n useUTC: model.ecModel.get('useUTC')\n });\n\n default:\n return new (Scale.getClass(axisType) || IntervalScale)();\n }\n }\n}\nexport function ifAxisCrossZero(axis) {\n var dataExtent = axis.scale.getExtent();\n var min = dataExtent[0];\n var max = dataExtent[1];\n return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\nexport function makeLabelFormatter(axis) {\n var labelFormatter = axis.getLabelModel().get('formatter');\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n if (axis.scale.type === 'time') {\n return function (tpl) {\n return function (tick, idx) {\n return axis.scale.getFormattedLabel(tick, idx, tpl);\n };\n }(labelFormatter);\n } else if (typeof labelFormatter === 'string') {\n return function (tpl) {\n return function (tick) {\n var label = axis.scale.getLabel(tick);\n var text = tpl.replace('{value}', label != null ? label : '');\n return text;\n };\n }(labelFormatter);\n } else if (typeof labelFormatter === 'function') {\n return function (cb) {\n return function (tick, idx) {\n if (categoryTickStart != null) {\n idx = tick.value - categoryTickStart;\n }\n\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n level: tick.level\n } : null);\n };\n }(labelFormatter);\n } else {\n return function (tick) {\n return axis.scale.getLabel(tick);\n };\n }\n}\nexport function getAxisRawValue(axis, tick) {\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\nexport function estimateLabelUnionRect(axis) {\n var axisModel = axis.model;\n var scale = axis.scale;\n\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n return;\n }\n\n var realNumberScaleTicks;\n var tickCount;\n var categoryScaleExtent = scale.getExtent();\n\n if (scale instanceof OrdinalScale) {\n tickCount = scale.count();\n } else {\n realNumberScaleTicks = scale.getTicks();\n tickCount = realNumberScaleTicks.length;\n }\n\n var axisLabelModel = axis.getLabelModel();\n var labelFormatter = makeLabelFormatter(axis);\n var rect;\n var step = 1;\n\n if (tickCount > 40) {\n step = Math.ceil(tickCount / 40);\n }\n\n for (var i = 0; i < tickCount; i += step) {\n var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n value: categoryScaleExtent[0] + i\n };\n var label = labelFormatter(tick, i);\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n rect ? rect.union(singleRect) : rect = singleRect;\n }\n\n return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n var rotateRadians = rotate * Math.PI / 180;\n var beforeWidth = textRect.width;\n var beforeHeight = textRect.height;\n var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n return rotatedRect;\n}\n\nexport function getOptionCategoryInterval(model) {\n var interval = model.get('interval');\n return interval == null ? 'auto' : interval;\n}\nexport function shouldShowAllLabels(axis) {\n return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n var dataDimMap = {};\n zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n dataDimMap[getStackedDimension(data, dataDim)] = true;\n });\n return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n if (data) {\n zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n var seriesExtent = data.getApproximateExtent(dim);\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n });\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AxisModelCommonMixin = function () {\n function AxisModelCommonMixin() {}\n\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n var option = this.option;\n return !option.scale;\n };\n\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n return;\n };\n\n return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListFromArray from '../../chart/helper/createListFromArray';\nimport * as axisHelper from '../../coord/axisHelper';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin';\nimport Model from '../../model/Model';\nimport { getLayoutRect } from '../../util/layout';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle';\nexport function createList(seriesModel) {\n return createListFromArray(seriesModel.getSource(), seriesModel);\n}\nexport { getLayoutRect };\nexport { default as createDimensions } from '../../data/helper/createDimensions';\nexport var dataStack = {\n isDimensionStacked: isDimensionStacked,\n enableDataStack: enableDataStack,\n getStackedDimension: getStackedDimension\n};\nexport { createSymbol } from '../../util/symbol';\nexport function createScale(dataExtent, option) {\n var axisModel = option;\n\n if (!(option instanceof Model)) {\n axisModel = new Model(option);\n }\n\n var scale = axisHelper.createScaleByModel(axisModel);\n scale.setExtent(dataExtent[0], dataExtent[1]);\n axisHelper.niceScaleExtent(scale, axisModel);\n return scale;\n}\nexport function mixinAxisModelCommonMethods(Model) {\n zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states';\nexport function createTextStyle(textStyleModel, opts) {\n opts = opts || {};\n return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","import windingLine from './windingLine';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n var w = 0;\n var p = points[0];\n if (!p) {\n return false;\n }\n for (var i = 1; i < points.length; i++) {\n var p2 = points[i];\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n p = p2;\n }\n var p0 = points[0];\n if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n }\n return w !== 0;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as polygonContain from 'zrender/lib/contain/polygon';\n\nvar Region = function () {\n function Region(name, geometries, cp) {\n this.name = name;\n this.geometries = geometries;\n\n if (!cp) {\n var rect = this.getBoundingRect();\n cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n } else {\n cp = [cp[0], cp[1]];\n }\n\n this.center = cp;\n }\n\n Region.prototype.getBoundingRect = function () {\n var rect = this._rect;\n\n if (rect) {\n return rect;\n }\n\n var MAX_NUMBER = Number.MAX_VALUE;\n var min = [MAX_NUMBER, MAX_NUMBER];\n var max = [-MAX_NUMBER, -MAX_NUMBER];\n var min2 = [];\n var max2 = [];\n var geometries = this.geometries;\n var i = 0;\n\n for (; i < geometries.length; i++) {\n if (geometries[i].type !== 'polygon') {\n continue;\n }\n\n var exterior = geometries[i].exterior;\n bbox.fromPoints(exterior, min2, max2);\n vec2.min(min, min, min2);\n vec2.max(max, max, max2);\n }\n\n if (i === 0) {\n min[0] = min[1] = max[0] = max[1] = 0;\n }\n\n return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n };\n\n Region.prototype.contain = function (coord) {\n var rect = this.getBoundingRect();\n var geometries = this.geometries;\n\n if (!rect.contain(coord[0], coord[1])) {\n return false;\n }\n\n loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n if (geometries[i].type !== 'polygon') {\n continue;\n }\n\n var exterior = geometries[i].exterior;\n var interiors = geometries[i].interiors;\n\n if (polygonContain.contain(exterior, coord[0], coord[1])) {\n for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n continue loopGeo;\n }\n }\n\n return true;\n }\n }\n\n return false;\n };\n\n Region.prototype.transformTo = function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var aspect = rect.width / rect.height;\n\n if (!width) {\n width = aspect * height;\n } else if (!height) {\n height = width / aspect;\n }\n\n var target = new BoundingRect(x, y, width, height);\n var transform = rect.calculateTransform(target);\n var geometries = this.geometries;\n\n for (var i = 0; i < geometries.length; i++) {\n if (geometries[i].type !== 'polygon') {\n continue;\n }\n\n var exterior = geometries[i].exterior;\n var interiors = geometries[i].interiors;\n\n for (var p = 0; p < exterior.length; p++) {\n vec2.applyTransform(exterior[p], exterior[p], transform);\n }\n\n for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n for (var p = 0; p < interiors[h].length; p++) {\n vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n }\n }\n }\n\n rect = this._rect;\n rect.copy(target);\n this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n };\n\n Region.prototype.cloneShallow = function (name) {\n name == null && (name = this.name);\n var newRegion = new Region(name, this.geometries, this.center);\n newRegion._rect = this._rect;\n newRegion.transformTo = null;\n return newRegion;\n };\n\n return Region;\n}();\n\nexport default Region;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from './Region';\n\nfunction decode(json) {\n if (!json.UTF8Encoding) {\n return json;\n }\n\n var jsonCompressed = json;\n var encodeScale = jsonCompressed.UTF8Scale;\n\n if (encodeScale == null) {\n encodeScale = 1024;\n }\n\n var features = jsonCompressed.features;\n\n for (var f = 0; f < features.length; f++) {\n var feature = features[f];\n var geometry = feature.geometry;\n\n if (geometry.type === 'Polygon') {\n var coordinates = geometry.coordinates;\n\n for (var c = 0; c < coordinates.length; c++) {\n coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\n }\n } else if (geometry.type === 'MultiPolygon') {\n var coordinates = geometry.coordinates;\n\n for (var c = 0; c < coordinates.length; c++) {\n var coordinate = coordinates[c];\n\n for (var c2 = 0; c2 < coordinate.length; c2++) {\n coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\n }\n }\n }\n }\n\n jsonCompressed.UTF8Encoding = false;\n return jsonCompressed;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n var result = [];\n var prevX = encodeOffsets[0];\n var prevY = encodeOffsets[1];\n\n for (var i = 0; i < coordinate.length; i += 2) {\n var x = coordinate.charCodeAt(i) - 64;\n var y = coordinate.charCodeAt(i + 1) - 64;\n x = x >> 1 ^ -(x & 1);\n y = y >> 1 ^ -(y & 1);\n x += prevX;\n y += prevY;\n prevX = x;\n prevY = y;\n result.push([x / encodeScale, y / encodeScale]);\n }\n\n return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n geoJson = decode(geoJson);\n return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n }), function (featureObj) {\n var properties = featureObj.properties;\n var geo = featureObj.geometry;\n var geometries = [];\n\n if (geo.type === 'Polygon') {\n var coordinates = geo.coordinates;\n geometries.push({\n type: 'polygon',\n exterior: coordinates[0],\n interiors: coordinates.slice(1)\n });\n }\n\n if (geo.type === 'MultiPolygon') {\n var coordinates = geo.coordinates;\n zrUtil.each(coordinates, function (item) {\n if (item[0]) {\n geometries.push({\n type: 'polygon',\n exterior: item[0],\n interiors: item.slice(1)\n });\n }\n });\n }\n\n var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\n region.properties = properties;\n return region;\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport { makeInner } from '../util/model';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\nexport function createAxisTicks(axis, tickModel) {\n return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n return tick.value;\n })\n };\n}\n\nfunction makeCategoryLabels(axis) {\n var labelModel = axis.getLabelModel();\n var result = makeCategoryLabelsActually(axis, labelModel);\n return !labelModel.get('show') || axis.scale.isBlank() ? {\n labels: [],\n labelCategoryInterval: result.labelCategoryInterval\n } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n var labelsCache = getListCache(axis, 'labels');\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\n var result = listCacheGet(labelsCache, optionLabelInterval);\n\n if (result) {\n return result;\n }\n\n var labels;\n var numericLabelInterval;\n\n if (zrUtil.isFunction(optionLabelInterval)) {\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n } else {\n numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n }\n\n return listCacheSet(labelsCache, optionLabelInterval, {\n labels: labels,\n labelCategoryInterval: numericLabelInterval\n });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n var ticksCache = getListCache(axis, 'ticks');\n var optionTickInterval = getOptionCategoryInterval(tickModel);\n var result = listCacheGet(ticksCache, optionTickInterval);\n\n if (result) {\n return result;\n }\n\n var ticks;\n var tickCategoryInterval;\n\n if (!tickModel.get('show') || axis.scale.isBlank()) {\n ticks = [];\n }\n\n if (zrUtil.isFunction(optionTickInterval)) {\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n } else if (optionTickInterval === 'auto') {\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n tickCategoryInterval = labelsResult.labelCategoryInterval;\n ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n return labelItem.tickValue;\n });\n } else {\n tickCategoryInterval = optionTickInterval;\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n }\n\n return listCacheSet(ticksCache, optionTickInterval, {\n ticks: ticks,\n tickCategoryInterval: tickCategoryInterval\n });\n}\n\nfunction makeRealNumberLabels(axis) {\n var ticks = axis.scale.getTicks();\n var labelFormatter = makeLabelFormatter(axis);\n return {\n labels: zrUtil.map(ticks, function (tick, idx) {\n return {\n formattedLabel: labelFormatter(tick, idx),\n rawLabel: axis.scale.getLabel(tick),\n tickValue: tick.value\n };\n })\n };\n}\n\nfunction getListCache(axis, prop) {\n return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n for (var i = 0; i < cache.length; i++) {\n if (cache[i].key === key) {\n return cache[i].value;\n }\n }\n}\n\nfunction listCacheSet(cache, key, value) {\n cache.push({\n key: key,\n value: value\n });\n return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n var result = inner(axis).autoInterval;\n return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n\nexport function calculateCategoryInterval(axis) {\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\n var labelFormatter = makeLabelFormatter(axis);\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent();\n var tickCount = ordinalScale.count();\n\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n return 0;\n }\n\n var step = 1;\n\n if (tickCount > 40) {\n step = Math.max(1, Math.floor(tickCount / 40));\n }\n\n var tickValue = ordinalExtent[0];\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\n var maxW = 0;\n var maxH = 0;\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n var width = 0;\n var height = 0;\n var rect = textContain.getBoundingRect(labelFormatter({\n value: tickValue\n }), params.font, 'center', 'top');\n width = rect.width * 1.3;\n height = rect.height * 1.3;\n maxW = Math.max(maxW, width, 7);\n maxH = Math.max(maxH, height, 7);\n }\n\n var dw = maxW / unitW;\n var dh = maxH / unitH;\n isNaN(dw) && (dw = Infinity);\n isNaN(dh) && (dh = Infinity);\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n var cache = inner(axis.model);\n var axisExtent = axis.getExtent();\n var lastAutoInterval = cache.lastAutoInterval;\n var lastTickCount = cache.lastTickCount;\n\n if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n interval = lastAutoInterval;\n } else {\n cache.lastTickCount = tickCount;\n cache.lastAutoInterval = interval;\n cache.axisExtent0 = axisExtent[0];\n cache.axisExtent1 = axisExtent[1];\n }\n\n return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n var labelModel = axis.getLabelModel();\n return {\n axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n labelRotate: labelModel.get('rotate') || 0,\n font: labelModel.getFont()\n };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n var labelFormatter = makeLabelFormatter(axis);\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent();\n var labelModel = axis.getLabelModel();\n var result = [];\n var step = Math.max((categoryInterval || 0) + 1, 1);\n var startTick = ordinalExtent[0];\n var tickCount = ordinalScale.count();\n\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n startTick = Math.round(Math.ceil(startTick / step) * step);\n }\n\n var showAllLabel = shouldShowAllLabels(axis);\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\n addItem(ordinalExtent[0]);\n }\n\n var tickValue = startTick;\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n addItem(tickValue);\n }\n\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n addItem(ordinalExtent[1]);\n }\n\n function addItem(tickValue) {\n var tickObj = {\n value: tickValue\n };\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tickObj),\n rawLabel: ordinalScale.getLabel(tickObj),\n tickValue: tickValue\n });\n }\n\n return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n var ordinalScale = axis.scale;\n var labelFormatter = makeLabelFormatter(axis);\n var result = [];\n zrUtil.each(ordinalScale.getTicks(), function (tick) {\n var rawLabel = ordinalScale.getLabel(tick);\n var tickValue = tick.value;\n\n if (categoryInterval(tick.value, rawLabel)) {\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tick),\n rawLabel: rawLabel,\n tickValue: tickValue\n });\n }\n });\n return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map } from 'zrender/lib/core/util';\nimport { linearMap, getPixelPrecision, round } from '../util/number';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder';\nvar NORMALIZED_EXTENT = [0, 1];\n\nvar Axis = function () {\n function Axis(dim, scale, extent) {\n this.onBand = false;\n this.inverse = false;\n this.dim = dim;\n this.scale = scale;\n this._extent = extent || [0, 0];\n }\n\n Axis.prototype.contain = function (coord) {\n var extent = this._extent;\n var min = Math.min(extent[0], extent[1]);\n var max = Math.max(extent[0], extent[1]);\n return coord >= min && coord <= max;\n };\n\n Axis.prototype.containData = function (data) {\n return this.scale.contain(data);\n };\n\n Axis.prototype.getExtent = function () {\n return this._extent.slice();\n };\n\n Axis.prototype.getPixelPrecision = function (dataExtent) {\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n };\n\n Axis.prototype.setExtent = function (start, end) {\n var extent = this._extent;\n extent[0] = start;\n extent[1] = end;\n };\n\n Axis.prototype.dataToCoord = function (data, clamp) {\n var extent = this._extent;\n var scale = this.scale;\n data = scale.normalize(data);\n\n if (this.onBand && scale.type === 'ordinal') {\n extent = extent.slice();\n fixExtentWithBands(extent, scale.count());\n }\n\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n };\n\n Axis.prototype.coordToData = function (coord, clamp) {\n var extent = this._extent;\n var scale = this.scale;\n\n if (this.onBand && scale.type === 'ordinal') {\n extent = extent.slice();\n fixExtentWithBands(extent, scale.count());\n }\n\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n return this.scale.scale(t);\n };\n\n Axis.prototype.pointToData = function (point, clamp) {\n return;\n };\n\n Axis.prototype.getTicksCoords = function (opt) {\n opt = opt || {};\n var tickModel = opt.tickModel || this.getTickModel();\n var result = createAxisTicks(this, tickModel);\n var ticks = result.ticks;\n var ticksCoords = map(ticks, function (tickVal) {\n return {\n coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n tickValue: tickVal\n };\n }, this);\n var alignWithLabel = tickModel.get('alignWithLabel');\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n return ticksCoords;\n };\n\n Axis.prototype.getMinorTicksCoords = function () {\n if (this.scale.type === 'ordinal') {\n return [];\n }\n\n var minorTickModel = this.model.getModel('minorTick');\n var splitNumber = minorTickModel.get('splitNumber');\n\n if (!(splitNumber > 0 && splitNumber < 100)) {\n splitNumber = 5;\n }\n\n var minorTicks = this.scale.getMinorTicks(splitNumber);\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n return map(minorTicksGroup, function (minorTick) {\n return {\n coord: this.dataToCoord(minorTick),\n tickValue: minorTick\n };\n }, this);\n }, this);\n return minorTicksCoords;\n };\n\n Axis.prototype.getViewLabels = function () {\n return createAxisLabels(this).labels;\n };\n\n Axis.prototype.getLabelModel = function () {\n return this.model.getModel('axisLabel');\n };\n\n Axis.prototype.getTickModel = function () {\n return this.model.getModel('axisTick');\n };\n\n Axis.prototype.getBandWidth = function () {\n var axisExtent = this._extent;\n var dataExtent = this.scale.getExtent();\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\n len === 0 && (len = 1);\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\n return Math.abs(size) / len;\n };\n\n Axis.prototype.calculateCategoryInterval = function () {\n return calculateCategoryInterval(this);\n };\n\n return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n var size = extent[1] - extent[0];\n var len = nTick;\n var margin = size / len / 2;\n extent[0] += margin;\n extent[1] -= margin;\n}\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n var ticksLen = ticksCoords.length;\n\n if (!axis.onBand || alignWithLabel || !ticksLen) {\n return;\n }\n\n var axisExtent = axis.getExtent();\n var last;\n var diffSize;\n\n if (ticksLen === 1) {\n ticksCoords[0].coord = axisExtent[0];\n last = ticksCoords[1] = {\n coord: axisExtent[0]\n };\n } else {\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n each(ticksCoords, function (ticksItem) {\n ticksItem.coord -= shift_1 / 2;\n });\n var dataExtent = axis.scale.getExtent();\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n last = {\n coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n };\n ticksCoords.push(last);\n }\n\n var inverse = axisExtent[0] > axisExtent[1];\n\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n }\n\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n ticksCoords.unshift({\n coord: axisExtent[0]\n });\n }\n\n if (littleThan(axisExtent[1], last.coord)) {\n clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n }\n\n if (clamp && littleThan(last.coord, axisExtent[1])) {\n ticksCoords.push({\n coord: axisExtent[1]\n });\n }\n\n function littleThan(a, b) {\n a = round(a);\n b = round(b);\n return inverse ? a > b : a < b;\n }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ComponentModel from '../model/Component';\nimport ComponentView from '../view/Component';\nimport SeriesModel from '../model/Series';\nimport ChartView from '../view/Chart';\nimport * as zrender_1 from 'zrender/lib/zrender';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle';\nimport * as helper_1 from './api/helper';\nexport { helper_1 as helper };\nexport { use } from '../extension';\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson';\nimport * as number_1 from './api/number';\nexport { number_1 as number };\nimport * as time_1 from './api/time';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format';\nexport { format_1 as format };\nimport * as util_1 from './api/util';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env';\nexport { default as List } from '../data/List';\nexport { default as Model } from '../model/Model';\nexport { default as Axis } from '../coord/Axis';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView };\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic';\nexport function extendComponentModel(proto) {\n var Model = ComponentModel.extend(proto);\n ComponentModel.registerClass(Model);\n return Model;\n}\nexport function extendComponentView(proto) {\n var View = ComponentView.extend(proto);\n ComponentView.registerClass(View);\n return View;\n}\nexport function extendSeriesModel(proto) {\n var Model = SeriesModel.extend(proto);\n SeriesModel.registerClass(Model);\n return Model;\n}\nexport function extendChartView(proto) {\n var View = ChartView.extend(proto);\n ChartView.registerClass(View);\n return View;\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util';\nimport { devicePixelRatio } from '../config';\nimport Eventful from '../core/Eventful';\nimport Element from '../Element';\nimport { getCanvasGradient } from './helper';\nimport { createCanvasPattern } from './graphic';\nimport BoundingRect from '../core/BoundingRect';\nfunction returnFalse() {\n return false;\n}\nfunction createDom(id, painter, dpr) {\n var newDom = util.createCanvas();\n var width = painter.getWidth();\n var height = painter.getHeight();\n var newDomStyle = newDom.style;\n if (newDomStyle) {\n newDomStyle.position = 'absolute';\n newDomStyle.left = '0';\n newDomStyle.top = '0';\n newDomStyle.width = width + 'px';\n newDomStyle.height = height + 'px';\n newDom.setAttribute('data-zr-dom-id', id);\n }\n newDom.width = width * dpr;\n newDom.height = height * dpr;\n return newDom;\n}\n;\nvar Layer = (function (_super) {\n __extends(Layer, _super);\n function Layer(id, painter, dpr) {\n var _this = _super.call(this) || this;\n _this.motionBlur = false;\n _this.lastFrameAlpha = 0.7;\n _this.dpr = 1;\n _this.virtual = false;\n _this.config = {};\n _this.incremental = false;\n _this.zlevel = 0;\n _this.maxRepaintRectCount = 5;\n _this.__dirty = true;\n _this.__firstTimePaint = true;\n _this.__used = false;\n _this.__drawIndex = 0;\n _this.__startIndex = 0;\n _this.__endIndex = 0;\n _this.__prevStartIndex = null;\n _this.__prevEndIndex = null;\n var dom;\n dpr = dpr || devicePixelRatio;\n if (typeof id === 'string') {\n dom = createDom(id, painter, dpr);\n }\n else if (util.isObject(id)) {\n dom = id;\n id = dom.id;\n }\n _this.id = id;\n _this.dom = dom;\n var domStyle = dom.style;\n if (domStyle) {\n dom.onselectstart = returnFalse;\n domStyle.webkitUserSelect = 'none';\n domStyle.userSelect = 'none';\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n domStyle['-webkit-touch-callout'] = 'none';\n domStyle.padding = '0';\n domStyle.margin = '0';\n domStyle.borderWidth = '0';\n }\n _this.domBack = null;\n _this.ctxBack = null;\n _this.painter = painter;\n _this.config = null;\n _this.dpr = dpr;\n return _this;\n }\n Layer.prototype.getElementCount = function () {\n return this.__endIndex - this.__startIndex;\n };\n Layer.prototype.afterBrush = function () {\n this.__prevStartIndex = this.__startIndex;\n this.__prevEndIndex = this.__endIndex;\n };\n Layer.prototype.initContext = function () {\n this.ctx = this.dom.getContext('2d');\n this.ctx.dpr = this.dpr;\n };\n Layer.prototype.setUnpainted = function () {\n this.__firstTimePaint = true;\n };\n Layer.prototype.createBackBuffer = function () {\n var dpr = this.dpr;\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\n this.ctxBack = this.domBack.getContext('2d');\n if (dpr !== 1) {\n this.ctxBack.scale(dpr, dpr);\n }\n };\n Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n if (this.__firstTimePaint) {\n this.__firstTimePaint = false;\n return null;\n }\n var mergedRepaintRects = [];\n var maxRepaintRectCount = this.maxRepaintRectCount;\n var full = false;\n var pendingRect = new BoundingRect(0, 0, 0, 0);\n function addRectToMergePool(rect) {\n if (!rect.isFinite() || rect.isZero()) {\n return;\n }\n if (mergedRepaintRects.length === 0) {\n var boundingRect = new BoundingRect(0, 0, 0, 0);\n boundingRect.copy(rect);\n mergedRepaintRects.push(boundingRect);\n }\n else {\n var isMerged = false;\n var minDeltaArea = Infinity;\n var bestRectToMergeIdx = 0;\n for (var i = 0; i < mergedRepaintRects.length; ++i) {\n var mergedRect = mergedRepaintRects[i];\n if (mergedRect.intersect(rect)) {\n var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n pendingRect_1.copy(mergedRect);\n pendingRect_1.union(rect);\n mergedRepaintRects[i] = pendingRect_1;\n isMerged = true;\n break;\n }\n else if (full) {\n pendingRect.copy(rect);\n pendingRect.union(mergedRect);\n var aArea = rect.width * rect.height;\n var bArea = mergedRect.width * mergedRect.height;\n var pendingArea = pendingRect.width * pendingRect.height;\n var deltaArea = pendingArea - aArea - bArea;\n if (deltaArea < minDeltaArea) {\n minDeltaArea = deltaArea;\n bestRectToMergeIdx = i;\n }\n }\n }\n if (full) {\n mergedRepaintRects[bestRectToMergeIdx].union(rect);\n isMerged = true;\n }\n if (!isMerged) {\n var boundingRect = new BoundingRect(0, 0, 0, 0);\n boundingRect.copy(rect);\n mergedRepaintRects.push(boundingRect);\n }\n if (!full) {\n full = mergedRepaintRects.length >= maxRepaintRectCount;\n }\n }\n }\n for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n var el = displayList[i];\n if (el) {\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\n ? el.getPrevPaintRect()\n : null;\n if (prevRect) {\n addRectToMergePool(prevRect);\n }\n var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\n ? el.getPaintRect()\n : null;\n if (curRect) {\n addRectToMergePool(curRect);\n }\n }\n }\n for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n var el = prevList[i];\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n var prevRect = el.getPrevPaintRect();\n if (prevRect) {\n addRectToMergePool(prevRect);\n }\n }\n }\n var hasIntersections;\n do {\n hasIntersections = false;\n for (var i = 0; i < mergedRepaintRects.length;) {\n if (mergedRepaintRects[i].isZero()) {\n mergedRepaintRects.splice(i, 1);\n continue;\n }\n for (var j = i + 1; j < mergedRepaintRects.length;) {\n if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n hasIntersections = true;\n mergedRepaintRects[i].union(mergedRepaintRects[j]);\n mergedRepaintRects.splice(j, 1);\n }\n else {\n j++;\n }\n }\n i++;\n }\n } while (hasIntersections);\n this._paintRects = mergedRepaintRects;\n return mergedRepaintRects;\n };\n Layer.prototype.debugGetPaintRects = function () {\n return (this._paintRects || []).slice();\n };\n Layer.prototype.resize = function (width, height) {\n var dpr = this.dpr;\n var dom = this.dom;\n var domStyle = dom.style;\n var domBack = this.domBack;\n if (domStyle) {\n domStyle.width = width + 'px';\n domStyle.height = height + 'px';\n }\n dom.width = width * dpr;\n dom.height = height * dpr;\n if (domBack) {\n domBack.width = width * dpr;\n domBack.height = height * dpr;\n if (dpr !== 1) {\n this.ctxBack.scale(dpr, dpr);\n }\n }\n };\n Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n var dom = this.dom;\n var ctx = this.ctx;\n var width = dom.width;\n var height = dom.height;\n clearColor = clearColor || this.clearColor;\n var haveMotionBLur = this.motionBlur && !clearAll;\n var lastFrameAlpha = this.lastFrameAlpha;\n var dpr = this.dpr;\n var self = this;\n if (haveMotionBLur) {\n if (!this.domBack) {\n this.createBackBuffer();\n }\n this.ctxBack.globalCompositeOperation = 'copy';\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n }\n var domBack = this.domBack;\n function doClear(x, y, width, height) {\n ctx.clearRect(x, y, width, height);\n if (clearColor && clearColor !== 'transparent') {\n var clearColorGradientOrPattern = void 0;\n if (util.isGradientObject(clearColor)) {\n clearColorGradientOrPattern = clearColor.__canvasGradient\n || getCanvasGradient(ctx, clearColor, {\n x: 0,\n y: 0,\n width: width,\n height: height\n });\n clearColor.__canvasGradient = clearColorGradientOrPattern;\n }\n else if (util.isPatternObject(clearColor)) {\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n dirty: function () {\n self.setUnpainted();\n self.__painter.refresh();\n }\n });\n }\n ctx.save();\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n ctx.fillRect(x, y, width, height);\n ctx.restore();\n }\n if (haveMotionBLur) {\n ctx.save();\n ctx.globalAlpha = lastFrameAlpha;\n ctx.drawImage(domBack, x, y, width, height);\n ctx.restore();\n }\n }\n ;\n if (!repaintRects || haveMotionBLur) {\n doClear(0, 0, width, height);\n }\n else if (repaintRects.length) {\n util.each(repaintRects, function (rect) {\n doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n });\n }\n };\n return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config';\nimport * as util from '../core/util';\nimport Layer from './Layer';\nimport requestAnimationFrame from '../animation/requestAnimationFrame';\nimport ZRImage from '../graphic/Image';\nimport env from '../core/env';\nimport { brush, brushSingle } from './graphic';\nimport Element from '../Element';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction parseInt10(val) {\n return parseInt(val, 10);\n}\nfunction isLayerValid(layer) {\n if (!layer) {\n return false;\n }\n if (layer.__builtin__) {\n return true;\n }\n if (typeof (layer.resize) !== 'function'\n || typeof (layer.refresh) !== 'function') {\n return false;\n }\n return true;\n}\nfunction createRoot(width, height) {\n var domRoot = document.createElement('div');\n domRoot.style.cssText = [\n 'position:relative',\n 'width:' + width + 'px',\n 'height:' + height + 'px',\n 'padding:0',\n 'margin:0',\n 'border-width:0'\n ].join(';') + ';';\n return domRoot;\n}\nvar CanvasPainter = (function () {\n function CanvasPainter(root, storage, opts, id) {\n this.type = 'canvas';\n this._zlevelList = [];\n this._prevDisplayList = [];\n this._layers = {};\n this._layerConfig = {};\n this._needsManuallyCompositing = false;\n this.type = 'canvas';\n var singleCanvas = !root.nodeName\n || root.nodeName.toUpperCase() === 'CANVAS';\n this._opts = opts = util.extend({}, opts || {});\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\n this._singleCanvas = singleCanvas;\n this.root = root;\n var rootStyle = root.style;\n if (rootStyle) {\n rootStyle.webkitTapHighlightColor = 'transparent';\n rootStyle.webkitUserSelect = 'none';\n rootStyle.userSelect = 'none';\n rootStyle['-webkit-touch-callout'] = 'none';\n root.innerHTML = '';\n }\n this.storage = storage;\n var zlevelList = this._zlevelList;\n this._prevDisplayList = [];\n var layers = this._layers;\n if (!singleCanvas) {\n this._width = this._getSize(0);\n this._height = this._getSize(1);\n var domRoot = this._domRoot = createRoot(this._width, this._height);\n root.appendChild(domRoot);\n }\n else {\n var rootCanvas = root;\n var width = rootCanvas.width;\n var height = rootCanvas.height;\n if (opts.width != null) {\n width = opts.width;\n }\n if (opts.height != null) {\n height = opts.height;\n }\n this.dpr = opts.devicePixelRatio || 1;\n rootCanvas.width = width * this.dpr;\n rootCanvas.height = height * this.dpr;\n this._width = width;\n this._height = height;\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\n mainLayer.__builtin__ = true;\n mainLayer.initContext();\n layers[CANVAS_ZLEVEL] = mainLayer;\n mainLayer.zlevel = CANVAS_ZLEVEL;\n zlevelList.push(CANVAS_ZLEVEL);\n this._domRoot = root;\n }\n }\n CanvasPainter.prototype.getType = function () {\n return 'canvas';\n };\n CanvasPainter.prototype.isSingleCanvas = function () {\n return this._singleCanvas;\n };\n CanvasPainter.prototype.getViewportRoot = function () {\n return this._domRoot;\n };\n CanvasPainter.prototype.getViewportRootOffset = function () {\n var viewportRoot = this.getViewportRoot();\n if (viewportRoot) {\n return {\n offsetLeft: viewportRoot.offsetLeft || 0,\n offsetTop: viewportRoot.offsetTop || 0\n };\n }\n };\n CanvasPainter.prototype.refresh = function (paintAll) {\n var list = this.storage.getDisplayList(true);\n var prevList = this._prevDisplayList;\n var zlevelList = this._zlevelList;\n this._redrawId = Math.random();\n this._paintList(list, prevList, paintAll, this._redrawId);\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n var layer = this._layers[z];\n if (!layer.__builtin__ && layer.refresh) {\n var clearColor = i === 0 ? this._backgroundColor : null;\n layer.refresh(clearColor);\n }\n }\n if (this._opts.useDirtyRect) {\n this._prevDisplayList = list.slice();\n }\n return this;\n };\n CanvasPainter.prototype.refreshHover = function () {\n this._paintHoverList(this.storage.getDisplayList(false));\n };\n CanvasPainter.prototype._paintHoverList = function (list) {\n var len = list.length;\n var hoverLayer = this._hoverlayer;\n hoverLayer && hoverLayer.clear();\n if (!len) {\n return;\n }\n var scope = {\n inHover: true,\n viewWidth: this._width,\n viewHeight: this._height\n };\n var ctx;\n for (var i = 0; i < len; i++) {\n var el = list[i];\n if (el.__inHover) {\n if (!hoverLayer) {\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n }\n if (!ctx) {\n ctx = hoverLayer.ctx;\n ctx.save();\n }\n brush(ctx, el, scope, i === len - 1);\n }\n }\n if (ctx) {\n ctx.restore();\n }\n };\n CanvasPainter.prototype.getHoverLayer = function () {\n return this.getLayer(HOVER_LAYER_ZLEVEL);\n };\n CanvasPainter.prototype.paintOne = function (ctx, el) {\n brushSingle(ctx, el);\n };\n CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n if (this._redrawId !== redrawId) {\n return;\n }\n paintAll = paintAll || false;\n this._updateLayerStatus(list);\n var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n if (this._needsManuallyCompositing) {\n this._compositeManually();\n }\n if (needsRefreshHover) {\n this._paintHoverList(list);\n }\n if (!finished) {\n var self_1 = this;\n requestAnimationFrame(function () {\n self_1._paintList(list, prevList, paintAll, redrawId);\n });\n }\n else {\n this.eachLayer(function (layer) {\n layer.afterBrush && layer.afterBrush();\n });\n }\n };\n CanvasPainter.prototype._compositeManually = function () {\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n var width = this._domRoot.width;\n var height = this._domRoot.height;\n ctx.clearRect(0, 0, width, height);\n this.eachBuiltinLayer(function (layer) {\n if (layer.virtual) {\n ctx.drawImage(layer.dom, 0, 0, width, height);\n }\n });\n };\n CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n var _this = this;\n var layerList = [];\n var useDirtyRect = this._opts.useDirtyRect;\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\n var zlevel = this._zlevelList[zi];\n var layer = this._layers[zlevel];\n if (layer.__builtin__\n && layer !== this._hoverlayer\n && (layer.__dirty || paintAll)) {\n layerList.push(layer);\n }\n }\n var finished = true;\n var needsRefreshHover = false;\n var _loop_1 = function (k) {\n var layer = layerList[k];\n var ctx = layer.ctx;\n var repaintRects = useDirtyRect\n && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n ctx.save();\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n var useTimer = !paintAll && layer.incremental && Date.now;\n var startTime = useTimer && Date.now();\n var clearColor = layer.zlevel === this_1._zlevelList[0]\n ? this_1._backgroundColor : null;\n if (layer.__startIndex === layer.__endIndex) {\n layer.clear(false, clearColor, repaintRects);\n }\n else if (start === layer.__startIndex) {\n var firstEl = list[start];\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n layer.clear(false, clearColor, repaintRects);\n }\n }\n if (start === -1) {\n console.error('For some unknown reason. drawIndex is -1');\n start = layer.__startIndex;\n }\n var i;\n var repaint = function (repaintRect) {\n var scope = {\n inHover: false,\n allClipped: false,\n prevEl: null,\n viewWidth: _this._width,\n viewHeight: _this._height\n };\n for (i = start; i < layer.__endIndex; i++) {\n var el = list[i];\n if (el.__inHover) {\n needsRefreshHover = true;\n }\n _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n if (useTimer) {\n var dTime = Date.now() - startTime;\n if (dTime > 15) {\n break;\n }\n }\n }\n if (scope.prevElClipPaths) {\n ctx.restore();\n }\n };\n if (repaintRects) {\n if (repaintRects.length === 0) {\n i = layer.__endIndex;\n }\n else {\n var dpr = this_1.dpr;\n for (var r = 0; r < repaintRects.length; ++r) {\n var rect = repaintRects[r];\n ctx.save();\n ctx.beginPath();\n ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n ctx.clip();\n repaint(rect);\n ctx.restore();\n }\n }\n }\n else {\n ctx.save();\n repaint();\n ctx.restore();\n }\n layer.__drawIndex = i;\n if (layer.__drawIndex < layer.__endIndex) {\n finished = false;\n }\n };\n var this_1 = this;\n for (var k = 0; k < layerList.length; k++) {\n _loop_1(k);\n }\n if (env.wxa) {\n util.each(this._layers, function (layer) {\n if (layer && layer.ctx && layer.ctx.draw) {\n layer.ctx.draw();\n }\n });\n }\n return {\n finished: finished,\n needsRefreshHover: needsRefreshHover\n };\n };\n CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n var ctx = currentLayer.ctx;\n if (useDirtyRect) {\n var paintRect = el.getPaintRect();\n if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n brush(ctx, el, scope, isLast);\n el.setPrevPaintRect(paintRect);\n }\n }\n else {\n brush(ctx, el, scope, isLast);\n }\n };\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n if (this._singleCanvas && !this._needsManuallyCompositing) {\n zlevel = CANVAS_ZLEVEL;\n }\n var layer = this._layers[zlevel];\n if (!layer) {\n layer = new Layer('zr_' + zlevel, this, this.dpr);\n layer.zlevel = zlevel;\n layer.__builtin__ = true;\n if (this._layerConfig[zlevel]) {\n util.merge(layer, this._layerConfig[zlevel], true);\n }\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n }\n if (virtual) {\n layer.virtual = virtual;\n }\n this.insertLayer(zlevel, layer);\n layer.initContext();\n }\n return layer;\n };\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n var layersMap = this._layers;\n var zlevelList = this._zlevelList;\n var len = zlevelList.length;\n var domRoot = this._domRoot;\n var prevLayer = null;\n var i = -1;\n if (layersMap[zlevel]) {\n util.logError('ZLevel ' + zlevel + ' has been used already');\n return;\n }\n if (!isLayerValid(layer)) {\n util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n return;\n }\n if (len > 0 && zlevel > zlevelList[0]) {\n for (i = 0; i < len - 1; i++) {\n if (zlevelList[i] < zlevel\n && zlevelList[i + 1] > zlevel) {\n break;\n }\n }\n prevLayer = layersMap[zlevelList[i]];\n }\n zlevelList.splice(i + 1, 0, zlevel);\n layersMap[zlevel] = layer;\n if (!layer.virtual) {\n if (prevLayer) {\n var prevDom = prevLayer.dom;\n if (prevDom.nextSibling) {\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n }\n else {\n domRoot.appendChild(layer.dom);\n }\n }\n else {\n if (domRoot.firstChild) {\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\n }\n else {\n domRoot.appendChild(layer.dom);\n }\n }\n }\n layer.__painter = this;\n };\n CanvasPainter.prototype.eachLayer = function (cb, context) {\n var zlevelList = this._zlevelList;\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n cb.call(context, this._layers[z], z);\n }\n };\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n var zlevelList = this._zlevelList;\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n var layer = this._layers[z];\n if (layer.__builtin__) {\n cb.call(context, layer, z);\n }\n }\n };\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n var zlevelList = this._zlevelList;\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n var layer = this._layers[z];\n if (!layer.__builtin__) {\n cb.call(context, layer, z);\n }\n }\n };\n CanvasPainter.prototype.getLayers = function () {\n return this._layers;\n };\n CanvasPainter.prototype._updateLayerStatus = function (list) {\n this.eachBuiltinLayer(function (layer, z) {\n layer.__dirty = layer.__used = false;\n });\n function updatePrevLayer(idx) {\n if (prevLayer) {\n if (prevLayer.__endIndex !== idx) {\n prevLayer.__dirty = true;\n }\n prevLayer.__endIndex = idx;\n }\n }\n if (this._singleCanvas) {\n for (var i_1 = 1; i_1 < list.length; i_1++) {\n var el = list[i_1];\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n this._needsManuallyCompositing = true;\n break;\n }\n }\n }\n var prevLayer = null;\n var incrementalLayerCount = 0;\n var prevZlevel;\n var i;\n for (i = 0; i < list.length; i++) {\n var el = list[i];\n var zlevel = el.zlevel;\n var layer = void 0;\n if (prevZlevel !== zlevel) {\n prevZlevel = zlevel;\n incrementalLayerCount = 0;\n }\n if (el.incremental) {\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n layer.incremental = true;\n incrementalLayerCount = 1;\n }\n else {\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n }\n if (!layer.__builtin__) {\n util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n }\n if (layer !== prevLayer) {\n layer.__used = true;\n if (layer.__startIndex !== i) {\n layer.__dirty = true;\n }\n layer.__startIndex = i;\n if (!layer.incremental) {\n layer.__drawIndex = i;\n }\n else {\n layer.__drawIndex = -1;\n }\n updatePrevLayer(i);\n prevLayer = layer;\n }\n if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\n layer.__dirty = true;\n if (layer.incremental && layer.__drawIndex < 0) {\n layer.__drawIndex = i;\n }\n }\n }\n updatePrevLayer(i);\n this.eachBuiltinLayer(function (layer, z) {\n if (!layer.__used && layer.getElementCount() > 0) {\n layer.__dirty = true;\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n }\n if (layer.__dirty && layer.__drawIndex < 0) {\n layer.__drawIndex = layer.__startIndex;\n }\n });\n };\n CanvasPainter.prototype.clear = function () {\n this.eachBuiltinLayer(this._clearLayer);\n return this;\n };\n CanvasPainter.prototype._clearLayer = function (layer) {\n layer.clear();\n };\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n this._backgroundColor = backgroundColor;\n util.each(this._layers, function (layer) {\n layer.setUnpainted();\n });\n };\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\n if (config) {\n var layerConfig = this._layerConfig;\n if (!layerConfig[zlevel]) {\n layerConfig[zlevel] = config;\n }\n else {\n util.merge(layerConfig[zlevel], config, true);\n }\n for (var i = 0; i < this._zlevelList.length; i++) {\n var _zlevel = this._zlevelList[i];\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n var layer = this._layers[_zlevel];\n util.merge(layer, layerConfig[zlevel], true);\n }\n }\n }\n };\n CanvasPainter.prototype.delLayer = function (zlevel) {\n var layers = this._layers;\n var zlevelList = this._zlevelList;\n var layer = layers[zlevel];\n if (!layer) {\n return;\n }\n layer.dom.parentNode.removeChild(layer.dom);\n delete layers[zlevel];\n zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n };\n CanvasPainter.prototype.resize = function (width, height) {\n if (!this._domRoot.style) {\n if (width == null || height == null) {\n return;\n }\n this._width = width;\n this._height = height;\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n }\n else {\n var domRoot = this._domRoot;\n domRoot.style.display = 'none';\n var opts = this._opts;\n width != null && (opts.width = width);\n height != null && (opts.height = height);\n width = this._getSize(0);\n height = this._getSize(1);\n domRoot.style.display = '';\n if (this._width !== width || height !== this._height) {\n domRoot.style.width = width + 'px';\n domRoot.style.height = height + 'px';\n for (var id in this._layers) {\n if (this._layers.hasOwnProperty(id)) {\n this._layers[id].resize(width, height);\n }\n }\n this.refresh(true);\n }\n this._width = width;\n this._height = height;\n }\n return this;\n };\n CanvasPainter.prototype.clearLayer = function (zlevel) {\n var layer = this._layers[zlevel];\n if (layer) {\n layer.clear();\n }\n };\n CanvasPainter.prototype.dispose = function () {\n this.root.innerHTML = '';\n this.root =\n this.storage =\n this._domRoot =\n this._layers = null;\n };\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n opts = opts || {};\n if (this._singleCanvas && !this._compositeManually) {\n return this._layers[CANVAS_ZLEVEL].dom;\n }\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n var ctx = imageLayer.ctx;\n imageLayer.initContext();\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n if (opts.pixelRatio <= this.dpr) {\n this.refresh();\n var width_1 = imageLayer.dom.width;\n var height_1 = imageLayer.dom.height;\n var ctx_1 = imageLayer.ctx;\n this.eachLayer(function (layer) {\n if (layer.__builtin__) {\n ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\n }\n else if (layer.renderToCanvas) {\n imageLayer.ctx.save();\n layer.renderToCanvas(imageLayer.ctx);\n imageLayer.ctx.restore();\n }\n });\n }\n else {\n var scope = {\n inHover: false,\n viewWidth: this._width,\n viewHeight: this._height\n };\n var displayList = this.storage.getDisplayList(true);\n for (var i = 0, len = displayList.length; i < len; i++) {\n var el = displayList[i];\n brush(ctx, el, scope, i === len - 1);\n }\n }\n return imageLayer.dom;\n };\n CanvasPainter.prototype.getWidth = function () {\n return this._width;\n };\n CanvasPainter.prototype.getHeight = function () {\n return this._height;\n };\n CanvasPainter.prototype._getSize = function (whIdx) {\n var opts = this._opts;\n var wh = ['width', 'height'][whIdx];\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\n if (opts[wh] != null && opts[wh] !== 'auto') {\n return parseFloat(opts[wh]);\n }\n var root = this.root;\n var stl = document.defaultView.getComputedStyle(root);\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n - (parseInt10(stl[plt]) || 0)\n - (parseInt10(stl[prb]) || 0)) | 0;\n };\n CanvasPainter.prototype.pathToImage = function (path, dpr) {\n dpr = dpr || this.dpr;\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var rect = path.getBoundingRect();\n var style = path.style;\n var shadowBlurSize = style.shadowBlur * dpr;\n var shadowOffsetX = style.shadowOffsetX * dpr;\n var shadowOffsetY = style.shadowOffsetY * dpr;\n var lineWidth = path.hasStroke() ? style.lineWidth : 0;\n var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n var width = rect.width + leftMargin + rightMargin;\n var height = rect.height + topMargin + bottomMargin;\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, width, height);\n ctx.dpr = dpr;\n var pathTransform = {\n x: path.x,\n y: path.y,\n scaleX: path.scaleX,\n scaleY: path.scaleY,\n rotation: path.rotation,\n originX: path.originX,\n originY: path.originY\n };\n path.x = leftMargin - rect.x;\n path.y = topMargin - rect.y;\n path.rotation = 0;\n path.scaleX = 1;\n path.scaleY = 1;\n path.updateTransform();\n if (path) {\n brush(ctx, path, {\n inHover: false,\n viewWidth: this._width,\n viewHeight: this._height\n }, true);\n }\n var imgShape = new ZRImage({\n style: {\n x: 0,\n y: 0,\n image: canvas\n }\n });\n util.extend(path, pathTransform);\n return imgShape;\n };\n return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CanvasPainter from 'zrender/lib/canvas/Painter';\nexport function install(registers) {\n registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar LineSeriesModel = function (_super) {\n __extends(LineSeriesModel, _super);\n\n function LineSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LineSeriesModel.type;\n _this.hasSymbolVisual = true;\n _this.legendSymbol = 'line';\n return _this;\n }\n\n LineSeriesModel.prototype.getInitialData = function (option) {\n if (process.env.NODE_ENV !== 'production') {\n var coordSys = option.coordinateSystem;\n\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\n }\n }\n\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n };\n\n LineSeriesModel.type = 'series.line';\n LineSeriesModel.dependencies = ['grid', 'polar'];\n LineSeriesModel.defaultOption = {\n zlevel: 0,\n z: 3,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n clip: true,\n label: {\n position: 'top'\n },\n endLabel: {\n show: false,\n valueAnimation: true,\n distance: 8\n },\n lineStyle: {\n width: 2,\n type: 'solid'\n },\n emphasis: {\n scale: true,\n lineStyle: {\n width: 'bolder'\n }\n },\n step: false,\n smooth: false,\n smoothMonotone: null,\n symbol: 'emptyCircle',\n symbolSize: 4,\n symbolRotate: null,\n showSymbol: true,\n showAllSymbol: 'auto',\n connectNulls: false,\n sampling: 'none',\n animationEasing: 'linear',\n progressive: 0,\n hoverLayerThreshold: Infinity\n };\n return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isArray } from 'zrender/lib/core/util';\nexport function getDefaultLabel(data, dataIndex) {\n var labelDims = data.mapDimensionsAll('defaultedLabel');\n var len = labelDims.length;\n\n if (len === 1) {\n var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n return rawVal != null ? rawVal + '' : null;\n } else if (len) {\n var vals = [];\n\n for (var i = 0; i < labelDims.length; i++) {\n vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n }\n\n return vals.join(' ');\n }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n if (!isArray(interpolatedValue)) {\n return interpolatedValue + '';\n }\n\n var vals = [];\n\n for (var i = 0; i < labelDims.length; i++) {\n var dimInfo = data.getDimensionInfo(labelDims[i]);\n\n if (dimInfo) {\n vals.push(interpolatedValue[dimInfo.index]);\n }\n }\n\n return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport { getDefaultLabel } from './labelHelper';\nimport { extend } from 'zrender/lib/core/util';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nvar Symbol = function (_super) {\n __extends(Symbol, _super);\n\n function Symbol(data, idx, seriesScope, opts) {\n var _this = _super.call(this) || this;\n\n _this.updateData(data, idx, seriesScope, opts);\n\n return _this;\n }\n\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n this.removeAll();\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n symbolPath.attr({\n z2: 100,\n culling: true,\n scaleX: symbolSize[0] / 2,\n scaleY: symbolSize[1] / 2\n });\n symbolPath.drift = driftSymbol;\n this._symbolType = symbolType;\n this.add(symbolPath);\n };\n\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n this.childAt(0).stopAnimation(null, toLastFrame);\n };\n\n Symbol.prototype.getSymbolPath = function () {\n return this.childAt(0);\n };\n\n Symbol.prototype.highlight = function () {\n enterEmphasis(this.childAt(0));\n };\n\n Symbol.prototype.downplay = function () {\n leaveEmphasis(this.childAt(0));\n };\n\n Symbol.prototype.setZ = function (zlevel, z) {\n var symbolPath = this.childAt(0);\n symbolPath.zlevel = zlevel;\n symbolPath.z = z;\n };\n\n Symbol.prototype.setDraggable = function (draggable) {\n var symbolPath = this.childAt(0);\n symbolPath.draggable = draggable;\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n };\n\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n this.silent = false;\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n var seriesModel = data.hostModel;\n var symbolSize = Symbol.getSymbolSize(data, idx);\n var isInit = symbolType !== this._symbolType;\n var disableAnimation = opts && opts.disableAnimation;\n\n if (isInit) {\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n } else {\n var symbolPath = this.childAt(0);\n symbolPath.silent = false;\n var target = {\n scaleX: symbolSize[0] / 2,\n scaleY: symbolSize[1] / 2\n };\n disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n }\n\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n if (isInit) {\n var symbolPath = this.childAt(0);\n\n if (!disableAnimation) {\n var target = {\n scaleX: this._sizeX,\n scaleY: this._sizeY,\n style: {\n opacity: symbolPath.style.opacity\n }\n };\n symbolPath.scaleX = symbolPath.scaleY = 0;\n symbolPath.style.opacity = 0;\n graphic.initProps(symbolPath, target, seriesModel, idx);\n }\n }\n\n if (disableAnimation) {\n this.childAt(0).stopAnimation('remove');\n }\n\n this._seriesModel = seriesModel;\n };\n\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n var symbolPath = this.childAt(0);\n var seriesModel = data.hostModel;\n var emphasisItemStyle;\n var blurItemStyle;\n var selectItemStyle;\n var focus;\n var blurScope;\n var symbolOffset;\n var labelStatesModels;\n var hoverScale;\n var cursorStyle;\n\n if (seriesScope) {\n emphasisItemStyle = seriesScope.emphasisItemStyle;\n blurItemStyle = seriesScope.blurItemStyle;\n selectItemStyle = seriesScope.selectItemStyle;\n focus = seriesScope.focus;\n blurScope = seriesScope.blurScope;\n symbolOffset = seriesScope.symbolOffset;\n labelStatesModels = seriesScope.labelStatesModels;\n hoverScale = seriesScope.hoverScale;\n cursorStyle = seriesScope.cursorStyle;\n }\n\n if (!seriesScope || data.hasItemOption) {\n var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n focus = emphasisModel.get('focus');\n blurScope = emphasisModel.get('blurScope');\n symbolOffset = itemModel.getShallow('symbolOffset');\n labelStatesModels = getLabelStatesModels(itemModel);\n hoverScale = emphasisModel.getShallow('scale');\n cursorStyle = itemModel.getShallow('cursor');\n }\n\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n if (symbolOffset) {\n symbolPath.x = parsePercent(symbolOffset[0], symbolSize[0]);\n symbolPath.y = parsePercent(symbolOffset[1], symbolSize[1]);\n }\n\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\n var symbolStyle = data.getItemVisual(idx, 'style');\n var visualColor = symbolStyle.fill;\n\n if (symbolPath instanceof ZRImage) {\n var pathStyle = symbolPath.style;\n symbolPath.useStyle(extend({\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, symbolStyle));\n } else {\n if (symbolPath.__isEmptyBrush) {\n symbolPath.useStyle(extend({}, symbolStyle));\n } else {\n symbolPath.useStyle(symbolStyle);\n }\n\n symbolPath.style.decal = null;\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n symbolPath.style.strokeNoScale = true;\n }\n\n var liftZ = data.getItemVisual(idx, 'liftZ');\n var z2Origin = this._z2;\n\n if (liftZ != null) {\n if (z2Origin == null) {\n this._z2 = symbolPath.z2;\n symbolPath.z2 += liftZ;\n }\n } else if (z2Origin != null) {\n symbolPath.z2 = z2Origin;\n this._z2 = null;\n }\n\n var useNameLabel = opts && opts.useNameLabel;\n setLabelStyle(symbolPath, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: idx,\n defaultText: getLabelDefaultText,\n inheritColor: visualColor,\n defaultOpacity: symbolStyle.opacity\n });\n\n function getLabelDefaultText(idx) {\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n }\n\n this._sizeX = symbolSize[0] / 2;\n this._sizeY = symbolSize[1] / 2;\n var emphasisState = symbolPath.ensureState('emphasis');\n emphasisState.style = emphasisItemStyle;\n symbolPath.ensureState('select').style = selectItemStyle;\n symbolPath.ensureState('blur').style = blurItemStyle;\n\n if (hoverScale) {\n var scaleRatio = Math.max(1.1, 3 / this._sizeY);\n emphasisState.scaleX = this._sizeX * scaleRatio;\n emphasisState.scaleY = this._sizeY * scaleRatio;\n }\n\n this.setSymbolScale(1);\n enableHoverEmphasis(this, focus, blurScope);\n };\n\n Symbol.prototype.setSymbolScale = function (scale) {\n this.scaleX = this.scaleY = scale;\n };\n\n Symbol.prototype.fadeOut = function (cb, opt) {\n var symbolPath = this.childAt(0);\n var seriesModel = this._seriesModel;\n var dataIndex = getECData(this).dataIndex;\n var animationOpt = opt && opt.animation;\n this.silent = symbolPath.silent = true;\n\n if (opt && opt.fadeLabel) {\n var textContent = symbolPath.getTextContent();\n\n if (textContent) {\n graphic.removeElement(textContent, {\n style: {\n opacity: 0\n }\n }, seriesModel, {\n dataIndex: dataIndex,\n removeOpt: animationOpt,\n cb: function () {\n symbolPath.removeTextContent();\n }\n });\n }\n } else {\n symbolPath.removeTextContent();\n }\n\n graphic.removeElement(symbolPath, {\n style: {\n opacity: 0\n },\n scaleX: 0,\n scaleY: 0\n }, seriesModel, {\n dataIndex: dataIndex,\n cb: cb,\n removeOpt: animationOpt\n });\n };\n\n Symbol.getSymbolSize = function (data, idx) {\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\n return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n };\n\n return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport SymbolClz from './Symbol';\nimport { isObject } from 'zrender/lib/core/util';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n if (opt != null && !isObject(opt)) {\n opt = {\n isIgnore: opt\n };\n }\n\n return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n var seriesModel = data.hostModel;\n var emphasisModel = seriesModel.getModel('emphasis');\n return {\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n focus: emphasisModel.get('focus'),\n blurScope: emphasisModel.get('blurScope'),\n symbolRotate: seriesModel.get('symbolRotate'),\n symbolOffset: seriesModel.get('symbolOffset'),\n hoverScale: emphasisModel.get('scale'),\n labelStatesModels: getLabelStatesModels(seriesModel),\n cursorStyle: seriesModel.get('cursor')\n };\n}\n\nvar SymbolDraw = function () {\n function SymbolDraw(SymbolCtor) {\n this.group = new graphic.Group();\n this._SymbolCtor = SymbolCtor || SymbolClz;\n }\n\n SymbolDraw.prototype.updateData = function (data, opt) {\n opt = normalizeUpdateOpt(opt);\n var group = this.group;\n var seriesModel = data.hostModel;\n var oldData = this._data;\n var SymbolCtor = this._SymbolCtor;\n var disableAnimation = opt.disableAnimation;\n var seriesScope = makeSeriesScope(data);\n var symbolUpdateOpt = {\n disableAnimation: disableAnimation\n };\n\n var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n return data.getItemLayout(idx);\n };\n\n if (!oldData) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n var point = getSymbolPoint(newIdx);\n\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n symbolEl.setPosition(point);\n data.setItemGraphicEl(newIdx, symbolEl);\n group.add(symbolEl);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\n var point = getSymbolPoint(newIdx);\n\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n group.remove(symbolEl);\n return;\n }\n\n if (!symbolEl) {\n symbolEl = new SymbolCtor(data, newIdx);\n symbolEl.setPosition(point);\n } else {\n symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n var target = {\n x: point[0],\n y: point[1]\n };\n disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n }\n\n group.add(symbolEl);\n data.setItemGraphicEl(newIdx, symbolEl);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && el.fadeOut(function () {\n group.remove(el);\n });\n }).execute();\n this._getSymbolPoint = getSymbolPoint;\n this._data = data;\n };\n\n ;\n\n SymbolDraw.prototype.isPersistent = function () {\n return true;\n };\n\n ;\n\n SymbolDraw.prototype.updateLayout = function () {\n var _this = this;\n\n var data = this._data;\n\n if (data) {\n data.eachItemGraphicEl(function (el, idx) {\n var point = _this._getSymbolPoint(idx);\n\n el.setPosition(point);\n el.markRedraw();\n });\n }\n };\n\n ;\n\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n this._seriesScope = makeSeriesScope(data);\n this._data = null;\n this.group.removeAll();\n };\n\n ;\n\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n opt = normalizeUpdateOpt(opt);\n\n function updateIncrementalAndHover(el) {\n if (!el.isGroup) {\n el.incremental = true;\n el.ensureState('emphasis').hoverLayer = true;\n }\n }\n\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n var point = data.getItemLayout(idx);\n\n if (symbolNeedsDraw(data, point, idx, opt)) {\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\n el.traverse(updateIncrementalAndHover);\n el.setPosition(point);\n this.group.add(el);\n data.setItemGraphicEl(idx, el);\n }\n }\n };\n\n ;\n\n SymbolDraw.prototype.remove = function (enableAnimation) {\n var group = this.group;\n var data = this._data;\n\n if (data && enableAnimation) {\n data.eachItemGraphicEl(function (el) {\n el.fadeOut(function () {\n group.remove(el);\n });\n });\n } else {\n group.removeAll();\n }\n };\n\n ;\n return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { map } from 'zrender/lib/core/util';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var valueStart = getValueStart(valueAxis, valueOrigin);\n var baseAxisDim = baseAxis.dim;\n var valueAxisDim = valueAxis.dim;\n var valueDim = data.mapDimension(valueAxisDim);\n var baseDim = data.mapDimension(baseAxisDim);\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n var dims = map(coordSys.dimensions, function (coordDim) {\n return data.mapDimension(coordDim);\n });\n var stacked = false;\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n if (isDimensionStacked(data, dims[0])) {\n stacked = true;\n dims[0] = stackResultDim;\n }\n\n if (isDimensionStacked(data, dims[1])) {\n stacked = true;\n dims[1] = stackResultDim;\n }\n\n return {\n dataDimsForPoint: dims,\n valueStart: valueStart,\n valueAxisDim: valueAxisDim,\n baseAxisDim: baseAxisDim,\n stacked: !!stacked,\n valueDim: valueDim,\n baseDim: baseDim,\n baseDataOffset: baseDataOffset,\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n var valueStart = 0;\n var extent = valueAxis.scale.getExtent();\n\n if (valueOrigin === 'start') {\n valueStart = extent[0];\n } else if (valueOrigin === 'end') {\n valueStart = extent[1];\n } else {\n if (extent[0] > 0) {\n valueStart = extent[0];\n } else if (extent[1] < 0) {\n valueStart = extent[1];\n }\n }\n\n return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n var value = NaN;\n\n if (dataCoordInfo.stacked) {\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n }\n\n if (isNaN(value)) {\n value = dataCoordInfo.valueStart;\n }\n\n var baseDataOffset = dataCoordInfo.baseDataOffset;\n var stackedData = [];\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n stackedData[1 - baseDataOffset] = value;\n return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n if (isArray(arg)) {\n return supportFloat32Array ? new Float32Array(arg) : arg;\n }\n\n return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction diffData(oldData, newData) {\n var diffResult = [];\n newData.diff(oldData).add(function (idx) {\n diffResult.push({\n cmd: '+',\n idx: idx\n });\n }).update(function (newIdx, oldIdx) {\n diffResult.push({\n cmd: '=',\n idx: oldIdx,\n idx1: newIdx\n });\n }).remove(function (idx) {\n diffResult.push({\n cmd: '-',\n idx: idx\n });\n }).execute();\n return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n var diff = diffData(oldData, newData);\n var currPoints = [];\n var nextPoints = [];\n var currStackedPoints = [];\n var nextStackedPoints = [];\n var status = [];\n var sortedIndices = [];\n var rawIndices = [];\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n var oldPoints = oldData.getLayout('points') || [];\n var newPoints = newData.getLayout('points') || [];\n\n for (var i = 0; i < diff.length; i++) {\n var diffItem = diff[i];\n var pointAdded = true;\n var oldIdx2 = void 0;\n var newIdx2 = void 0;\n\n switch (diffItem.cmd) {\n case '=':\n oldIdx2 = diffItem.idx * 2;\n newIdx2 = diffItem.idx1 * 2;\n var currentX = oldPoints[oldIdx2];\n var currentY = oldPoints[oldIdx2 + 1];\n var nextX = newPoints[newIdx2];\n var nextY = newPoints[newIdx2 + 1];\n\n if (isNaN(currentX) || isNaN(currentY)) {\n currentX = nextX;\n currentY = nextY;\n }\n\n currPoints.push(currentX, currentY);\n nextPoints.push(nextX, nextY);\n currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\n break;\n\n case '+':\n var newIdx = diffItem.idx;\n var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n newIdx2 = newIdx * 2;\n currPoints.push(oldPt[0], oldPt[1]);\n nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n rawIndices.push(newData.getRawIndex(newIdx));\n break;\n\n case '-':\n var oldIdx = diffItem.idx;\n var rawIndex = oldData.getRawIndex(oldIdx);\n var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\n oldIdx2 = oldIdx * 2;\n\n if (rawIndex !== oldIdx) {\n var newPt = newCoordSys.dataToPoint([oldData.get(oldDataDimsForPoint[0], oldIdx), oldData.get(oldDataDimsForPoint[1], oldIdx)]);\n var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\n currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\n nextPoints.push(newPt[0], newPt[1]);\n currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\n rawIndices.push(rawIndex);\n } else {\n pointAdded = false;\n }\n\n }\n\n if (pointAdded) {\n status.push(diffItem);\n sortedIndices.push(sortedIndices.length);\n }\n }\n\n sortedIndices.sort(function (a, b) {\n return rawIndices[a] - rawIndices[b];\n });\n var len = currPoints.length;\n var sortedCurrPoints = createFloat32Array(len);\n var sortedNextPoints = createFloat32Array(len);\n var sortedCurrStackedPoints = createFloat32Array(len);\n var sortedNextStackedPoints = createFloat32Array(len);\n var sortedStatus = [];\n\n for (var i = 0; i < sortedIndices.length; i++) {\n var idx = sortedIndices[i];\n var i2 = i * 2;\n var idx2 = idx * 2;\n sortedCurrPoints[i2] = currPoints[idx2];\n sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n sortedNextPoints[i2] = nextPoints[idx2];\n sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n sortedStatus[i] = status[idx];\n }\n\n return {\n current: sortedCurrPoints,\n next: sortedNextPoints,\n stackedOnCurrent: sortedCurrStackedPoints,\n stackedOnNext: sortedNextStackedPoints,\n status: sortedStatus\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n return isNaN(x) || isNaN(y);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n var prevX;\n var prevY;\n var cpx0;\n var cpy0;\n var cpx1;\n var cpy1;\n var idx = start;\n var k = 0;\n\n for (; k < segLen; k++) {\n var x = points[idx * 2];\n var y = points[idx * 2 + 1];\n\n if (idx >= allLen || idx < 0) {\n break;\n }\n\n if (isPointNull(x, y)) {\n if (connectNulls) {\n idx += dir;\n continue;\n }\n\n break;\n }\n\n if (idx === start) {\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n cpx0 = x;\n cpy0 = y;\n } else {\n var dx = x - prevX;\n var dy = y - prevY;\n\n if (dx * dx + dy * dy < 0.5) {\n idx += dir;\n continue;\n }\n\n if (smooth > 0) {\n var nextIdx = idx + dir;\n var nextX = points[nextIdx * 2];\n var nextY = points[nextIdx * 2 + 1];\n var tmpK = k + 1;\n\n if (connectNulls) {\n while (isPointNull(nextX, nextY) && tmpK < segLen) {\n tmpK++;\n nextIdx += dir;\n nextX = points[nextIdx * 2];\n nextY = points[nextIdx * 2 + 1];\n }\n }\n\n var ratioNextSeg = 0.5;\n var vx = 0;\n var vy = 0;\n var nextCpx0 = void 0;\n var nextCpy0 = void 0;\n\n if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n cpx1 = x;\n cpy1 = y;\n } else {\n vx = nextX - prevX;\n vy = nextY - prevY;\n var dx0 = x - prevX;\n var dx1 = nextX - x;\n var dy0 = y - prevY;\n var dy1 = nextY - y;\n var lenPrevSeg = void 0;\n var lenNextSeg = void 0;\n\n if (smoothMonotone === 'x') {\n lenPrevSeg = Math.abs(dx0);\n lenNextSeg = Math.abs(dx1);\n cpx1 = x - lenPrevSeg * smooth;\n cpy1 = y;\n nextCpx0 = x + lenPrevSeg * smooth;\n nextCpy0 = y;\n } else if (smoothMonotone === 'y') {\n lenPrevSeg = Math.abs(dy0);\n lenNextSeg = Math.abs(dy1);\n cpx1 = x;\n cpy1 = y - lenPrevSeg * smooth;\n nextCpx0 = x;\n nextCpy0 = y + lenPrevSeg * smooth;\n } else {\n lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n cpy1 = y - vy * smooth * (1 - ratioNextSeg);\n nextCpx0 = x + vx * smooth * ratioNextSeg;\n nextCpy0 = y + vy * smooth * ratioNextSeg;\n nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));\n vx = nextCpx0 - x;\n vy = nextCpy0 - y;\n cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n cpy1 = y - vy * lenPrevSeg / lenNextSeg;\n cpx1 = mathMin(cpx1, mathMax(prevX, x));\n cpy1 = mathMin(cpy1, mathMax(prevY, y));\n cpx1 = mathMax(cpx1, mathMin(prevX, x));\n cpy1 = mathMax(cpy1, mathMin(prevY, y));\n vx = x - cpx1;\n vy = y - cpy1;\n nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n }\n }\n\n ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n cpx0 = nextCpx0;\n cpy0 = nextCpy0;\n } else {\n ctx.lineTo(x, y);\n }\n }\n\n prevX = x;\n prevY = y;\n idx += dir;\n }\n\n return k;\n}\n\nvar ECPolylineShape = function () {\n function ECPolylineShape() {\n this.smooth = 0;\n this.smoothConstraint = true;\n }\n\n return ECPolylineShape;\n}();\n\nvar ECPolyline = function (_super) {\n __extends(ECPolyline, _super);\n\n function ECPolyline(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'ec-polyline';\n return _this;\n }\n\n ECPolyline.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n ECPolyline.prototype.getDefaultShape = function () {\n return new ECPolylineShape();\n };\n\n ECPolyline.prototype.buildPath = function (ctx, shape) {\n var points = shape.points;\n var i = 0;\n var len = points.length / 2;\n\n if (shape.connectNulls) {\n for (; len > 0; len--) {\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n break;\n }\n }\n\n for (; i < len; i++) {\n if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n break;\n }\n }\n }\n\n while (i < len) {\n i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n }\n };\n\n ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n if (!this.path) {\n this.createPathProxy();\n this.buildPath(this.path, this.shape);\n }\n\n var path = this.path;\n var data = path.data;\n var CMD = PathProxy.CMD;\n var x0;\n var y0;\n var isDimX = dim === 'x';\n var roots = [];\n\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n var x = void 0;\n var y = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var x3 = void 0;\n var y3 = void 0;\n var t = void 0;\n\n switch (cmd) {\n case CMD.M:\n x0 = data[i++];\n y0 = data[i++];\n break;\n\n case CMD.L:\n x = data[i++];\n y = data[i++];\n t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n if (t <= 1 && t >= 0) {\n var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n return isDimX ? [xOrY, val] : [val, xOrY];\n }\n\n x0 = x;\n y0 = y;\n break;\n\n case CMD.C:\n x = data[i++];\n y = data[i++];\n x2 = data[i++];\n y2 = data[i++];\n x3 = data[i++];\n y3 = data[i++];\n var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n if (nRoot > 0) {\n for (var i_1 = 0; i_1 < nRoot; i_1++) {\n var t_1 = roots[i_1];\n\n if (t_1 <= 1 && t_1 >= 0) {\n var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n return isDimX ? [xOrY, val] : [val, xOrY];\n }\n }\n }\n\n x0 = x3;\n y0 = y3;\n break;\n }\n }\n };\n\n return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape = function (_super) {\n __extends(ECPolygonShape, _super);\n\n function ECPolygonShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon = function (_super) {\n __extends(ECPolygon, _super);\n\n function ECPolygon(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'ec-polygon';\n return _this;\n }\n\n ECPolygon.prototype.getDefaultShape = function () {\n return new ECPolygonShape();\n };\n\n ECPolygon.prototype.buildPath = function (ctx, shape) {\n var points = shape.points;\n var stackedOnPoints = shape.stackedOnPoints;\n var i = 0;\n var len = points.length / 2;\n var smoothMonotone = shape.smoothMonotone;\n\n if (shape.connectNulls) {\n for (; len > 0; len--) {\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n break;\n }\n }\n\n for (; i < len; i++) {\n if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n break;\n }\n }\n }\n\n while (i < len) {\n var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n i += k + 1;\n ctx.closePath();\n }\n };\n\n return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { round } from '../../util/number';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n var rect = cartesian.getArea();\n var x = rect.x;\n var y = rect.y;\n var width = rect.width;\n var height = rect.height;\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\n x -= lineWidth / 2;\n y -= lineWidth / 2;\n width += lineWidth;\n height += lineWidth;\n x = Math.floor(x);\n width = Math.round(width);\n var clipPath = new graphic.Rect({\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n }\n });\n\n if (hasAnimation) {\n var baseAxis = cartesian.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var isAxisInversed = baseAxis.inverse;\n\n if (isHorizontal) {\n if (isAxisInversed) {\n clipPath.shape.x += width;\n }\n\n clipPath.shape.width = 0;\n } else {\n if (!isAxisInversed) {\n clipPath.shape.y += height;\n }\n\n clipPath.shape.height = 0;\n }\n\n var duringCb = typeof during === 'function' ? function (percent) {\n during(percent, clipPath);\n } : null;\n graphic.initProps(clipPath, {\n shape: {\n width: width,\n height: height,\n x: x,\n y: y\n }\n }, seriesModel, null, done, duringCb);\n }\n\n return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n var sectorArea = polar.getArea();\n var r0 = round(sectorArea.r0, 1);\n var r = round(sectorArea.r, 1);\n var clipPath = new graphic.Sector({\n shape: {\n cx: round(polar.cx, 1),\n cy: round(polar.cy, 1),\n r0: r0,\n r: r,\n startAngle: sectorArea.startAngle,\n endAngle: sectorArea.endAngle,\n clockwise: sectorArea.clockwise\n }\n });\n\n if (hasAnimation) {\n var isRadial = polar.getBaseAxis().dim === 'angle';\n\n if (isRadial) {\n clipPath.shape.endAngle = sectorArea.startAngle;\n } else {\n clipPath.shape.r = r0;\n }\n\n graphic.initProps(clipPath, {\n shape: {\n endAngle: sectorArea.endAngle,\n r: r\n }\n }, seriesModel);\n }\n\n return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n if (!coordSys) {\n return null;\n } else if (coordSys.type === 'polar') {\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n } else if (coordSys.type === 'cartesian2d') {\n return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n }\n\n return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function isCoordinateSystemType(coordSys, type) {\n return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport SymbolClz from '../helper/Symbol';\nimport lineAnimationDiff from './lineAnimationDiff';\nimport * as graphic from '../../util/graphic';\nimport * as modelUtil from '../../util/model';\nimport { ECPolyline, ECPolygon } from './poly';\nimport ChartView from '../../view/Chart';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setStatesStylesFromModel, setStatesFlag, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction isPointsSame(points1, points2) {\n if (points1.length !== points2.length) {\n return;\n }\n\n for (var i = 0; i < points1.length; i++) {\n if (points1[i] !== points2[i]) {\n return;\n }\n }\n\n return true;\n}\n\nfunction bboxFromPoints(points) {\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n\n if (!isNaN(x)) {\n minX = Math.min(x, minX);\n maxX = Math.max(x, maxX);\n }\n\n if (!isNaN(y)) {\n minY = Math.min(y, minY);\n maxY = Math.max(y, maxY);\n }\n }\n\n return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n var _a = bboxFromPoints(points1),\n min1 = _a[0],\n max1 = _a[1];\n\n var _b = bboxFromPoints(points2),\n min2 = _b[0],\n max2 = _b[1];\n\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n if (!dataCoordInfo.valueDim) {\n return [];\n }\n\n var len = data.count();\n var points = createFloat32Array(len * 2);\n\n for (var idx = 0; idx < len; idx++) {\n var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n points[idx * 2] = pt[0];\n points[idx * 2 + 1] = pt[1];\n }\n\n return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n var baseAxis = coordSys.getBaseAxis();\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n var stepPoints = [];\n var i = 0;\n var stepPt = [];\n var pt = [];\n var nextPt = [];\n\n for (; i < points.length - 2; i += 2) {\n nextPt[0] = points[i + 2];\n nextPt[1] = points[i + 3];\n pt[0] = points[i];\n pt[1] = points[i + 1];\n stepPoints.push(pt[0], pt[1]);\n\n switch (stepTurnAt) {\n case 'end':\n stepPt[baseIndex] = nextPt[baseIndex];\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\n stepPoints.push(stepPt[0], stepPt[1]);\n break;\n\n case 'middle':\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n var stepPt2 = [];\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n stepPoints.push(stepPt[0], stepPt[1]);\n stepPoints.push(stepPt2[0], stepPt2[1]);\n break;\n\n default:\n stepPt[baseIndex] = pt[baseIndex];\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n stepPoints.push(stepPt[0], stepPt[1]);\n }\n }\n\n stepPoints.push(points[i++], points[i++]);\n return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n var visualMetaList = data.getVisual('visualMeta');\n\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\n return;\n }\n\n if (coordSys.type !== 'cartesian2d') {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Visual map on line style is only supported on cartesian2d.');\n }\n\n return;\n }\n\n var coordDim;\n var visualMeta;\n\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\n var dimIndex = visualMetaList[i].dimension;\n var dimName = data.dimensions[dimIndex];\n var dimInfo = data.getDimensionInfo(dimName);\n coordDim = dimInfo && dimInfo.coordDim;\n\n if (coordDim === 'x' || coordDim === 'y') {\n visualMeta = visualMetaList[i];\n break;\n }\n }\n\n if (!visualMeta) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Visual map on line style only support x or y dimension.');\n }\n\n return;\n }\n\n var axis = coordSys.getAxis(coordDim);\n var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n return {\n offset: 0,\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n color: stop.color\n };\n });\n var stopLen = colorStops.length;\n var outerColors = visualMeta.outerColors.slice();\n\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n colorStops.reverse();\n outerColors.reverse();\n }\n\n var tinyExtent = 10;\n var minCoord = colorStops[0].coord - tinyExtent;\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n var coordSpan = maxCoord - minCoord;\n\n if (coordSpan < 1e-3) {\n return 'transparent';\n }\n\n zrUtil.each(colorStops, function (stop) {\n stop.offset = (stop.coord - minCoord) / coordSpan;\n });\n colorStops.push({\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n color: outerColors[1] || 'transparent'\n });\n colorStops.unshift({\n offset: stopLen ? colorStops[0].offset : 0.5,\n color: outerColors[0] || 'transparent'\n });\n var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n gradient[coordDim] = minCoord;\n gradient[coordDim + '2'] = maxCoord;\n return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n var showAllSymbol = seriesModel.get('showAllSymbol');\n var isAuto = showAllSymbol === 'auto';\n\n if (showAllSymbol && !isAuto) {\n return;\n }\n\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n if (!categoryAxis) {\n return;\n }\n\n if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {\n return;\n }\n\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\n var labelMap = {};\n zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n labelMap[ordinalNumber] = 1;\n });\n return function (dataIndex) {\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n var axisExtent = categoryAxis.getExtent();\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n isNaN(availSize) && (availSize = 0);\n var dataLen = data.count();\n var step = Math.max(1, Math.round(dataLen / 5));\n\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n if (SymbolClz.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isPointNull(x, y) {\n return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n var len = points.length / 2;\n\n for (; len > 0; len--) {\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n break;\n }\n }\n\n return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n var len = points.length / 2;\n var dimIdx = dim === 'x' ? 0 : 1;\n var a;\n var b;\n var prevIndex = 0;\n var nextIndex = -1;\n\n for (var i = 0; i < len; i++) {\n b = points[i * 2 + dimIdx];\n\n if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n continue;\n }\n\n if (i === 0) {\n a = b;\n continue;\n }\n\n if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n nextIndex = i;\n break;\n }\n\n prevIndex = i;\n a = b;\n }\n\n return {\n range: [prevIndex, nextIndex],\n t: (xOrY - a) / (b - a)\n };\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n var endLabelModel_1 = seriesModel.getModel('endLabel');\n var showEndLabel = endLabelModel_1.get('show');\n var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n var data_1 = seriesModel.getData();\n var labelAnimationRecord_1 = {\n lastFrameIndex: 0\n };\n var during = showEndLabel ? function (percent, clipRect) {\n lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n } : null;\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n var endLabel = lineView._endLabel;\n\n if (endLabel && hasAnimation) {\n if (labelAnimationRecord_1.originalX != null) {\n endLabel.attr({\n x: labelAnimationRecord_1.originalX,\n y: labelAnimationRecord_1.originalY\n });\n }\n }\n }, during);\n\n if (!seriesModel.get('clip', true)) {\n var rectShape = clipPath.shape;\n var expandSize = Math.max(rectShape.width, rectShape.height);\n\n if (isHorizontal) {\n rectShape.y -= expandSize;\n rectShape.height += expandSize * 2;\n } else {\n rectShape.x -= expandSize;\n rectShape.width += expandSize * 2;\n }\n }\n\n if (during) {\n during(1, clipPath);\n }\n\n return clipPath;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (seriesModel.get(['endLabel', 'show'])) {\n console.warn('endLabel is not supported for lines in polar systems.');\n }\n }\n\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n var baseAxis = coordSys.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var isBaseInversed = baseAxis.inverse;\n var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n return {\n normal: {\n align: endLabelModel.get('align') || align,\n verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n }\n };\n}\n\nvar LineView = function (_super) {\n __extends(LineView, _super);\n\n function LineView() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LineView.prototype.init = function () {\n var lineGroup = new graphic.Group();\n var symbolDraw = new SymbolDraw();\n this.group.add(symbolDraw.group);\n this._symbolDraw = symbolDraw;\n this._lineGroup = lineGroup;\n };\n\n LineView.prototype.render = function (seriesModel, ecModel, api) {\n var _this = this;\n\n var coordSys = seriesModel.coordinateSystem;\n var group = this.group;\n var data = seriesModel.getData();\n var lineStyleModel = seriesModel.getModel('lineStyle');\n var areaStyleModel = seriesModel.getModel('areaStyle');\n var points = data.getLayout('points') || [];\n var isCoordSysPolar = coordSys.type === 'polar';\n var prevCoordSys = this._coordSys;\n var symbolDraw = this._symbolDraw;\n var polyline = this._polyline;\n var polygon = this._polygon;\n var lineGroup = this._lineGroup;\n var hasAnimation = seriesModel.get('animation');\n var isAreaChart = !areaStyleModel.isEmpty();\n var valueOrigin = areaStyleModel.get('origin');\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n var showSymbol = seriesModel.get('showSymbol');\n var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);\n var oldData = this._data;\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\n if (el.__temp) {\n group.remove(el);\n oldData.setItemGraphicEl(idx, null);\n }\n });\n\n if (!showSymbol) {\n symbolDraw.remove();\n }\n\n group.add(lineGroup);\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n var clipShapeForSymbol;\n\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n clipShapeForSymbol = coordSys.getArea();\n\n if (clipShapeForSymbol.width != null) {\n clipShapeForSymbol.x -= 0.1;\n clipShapeForSymbol.y -= 0.1;\n clipShapeForSymbol.width += 0.2;\n clipShapeForSymbol.height += 0.2;\n } else if (clipShapeForSymbol.r0) {\n clipShapeForSymbol.r0 -= 0.5;\n clipShapeForSymbol.r += 0.5;\n }\n }\n\n this._clipShapeForSymbol = clipShapeForSymbol;\n\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n showSymbol && symbolDraw.updateData(data, {\n isIgnore: isIgnoreFunc,\n clipShape: clipShapeForSymbol,\n disableAnimation: true,\n getSymbolPoint: function (idx) {\n return [points[idx * 2], points[idx * 2 + 1]];\n }\n });\n hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n if (step) {\n points = turnPointsIntoStep(points, coordSys, step);\n\n if (stackedOnPoints) {\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n }\n }\n\n polyline = this._newPolyline(points);\n\n if (isAreaChart) {\n polygon = this._newPolygon(points, stackedOnPoints);\n }\n\n if (!isCoordSysPolar) {\n this._initOrUpdateEndLabel(seriesModel, coordSys);\n }\n\n lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n } else {\n if (isAreaChart && !polygon) {\n polygon = this._newPolygon(points, stackedOnPoints);\n } else if (polygon && !isAreaChart) {\n lineGroup.remove(polygon);\n polygon = this._polygon = null;\n }\n\n if (!isCoordSysPolar) {\n this._initOrUpdateEndLabel(seriesModel, coordSys);\n }\n\n lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\n showSymbol && symbolDraw.updateData(data, {\n isIgnore: isIgnoreFunc,\n clipShape: clipShapeForSymbol,\n disableAnimation: true,\n getSymbolPoint: function (idx) {\n return [points[idx * 2], points[idx * 2 + 1]];\n }\n });\n\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n if (hasAnimation) {\n this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n } else {\n if (step) {\n points = turnPointsIntoStep(points, coordSys, step);\n\n if (stackedOnPoints) {\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n }\n }\n\n polyline.setShape({\n points: points\n });\n polygon && polygon.setShape({\n points: points,\n stackedOnPoints: stackedOnPoints\n });\n }\n }\n }\n\n var visualColor = getVisualGradient(data, coordSys) || data.getVisual('style')[data.getVisual('drawType')];\n var focus = seriesModel.get(['emphasis', 'focus']);\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n polyline.useStyle(zrUtil.defaults(lineStyleModel.getLineStyle(), {\n fill: 'none',\n stroke: visualColor,\n lineJoin: 'bevel'\n }));\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n var emphasisLineStyle = polyline.getState('emphasis').style;\n emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\n }\n\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n enableHoverEmphasis(polyline, focus, blurScope);\n var smooth = getSmooth(seriesModel.get('smooth'));\n var smoothMonotone = seriesModel.get('smoothMonotone');\n var connectNulls = seriesModel.get('connectNulls');\n polyline.setShape({\n smooth: smooth,\n smoothMonotone: smoothMonotone,\n connectNulls: connectNulls\n });\n\n if (polygon) {\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n var stackedOnSmooth = 0;\n polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n fill: visualColor,\n opacity: 0.7,\n lineJoin: 'bevel',\n decal: data.getVisual('style').decal\n }));\n\n if (stackedOnSeries) {\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n }\n\n polygon.setShape({\n smooth: smooth,\n stackedOnSmooth: stackedOnSmooth,\n smoothMonotone: smoothMonotone,\n connectNulls: connectNulls\n });\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n enableHoverEmphasis(polygon, focus, blurScope);\n }\n\n var changePolyState = function (toState) {\n _this._changePolyState(toState);\n };\n\n data.eachItemGraphicEl(function (el) {\n el && (el.onHoverStateChange = changePolyState);\n });\n this._polyline.onHoverStateChange = changePolyState;\n this._data = data;\n this._coordSys = coordSys;\n this._stackedOnPoints = stackedOnPoints;\n this._points = points;\n this._step = step;\n this._valueOrigin = valueOrigin;\n };\n\n LineView.prototype.dispose = function () {};\n\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n this._changePolyState('emphasis');\n\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n var points = data.getLayout('points');\n var symbol = data.getItemGraphicEl(dataIndex);\n\n if (!symbol) {\n var x = points[dataIndex * 2];\n var y = points[dataIndex * 2 + 1];\n\n if (isNaN(x) || isNaN(y)) {\n return;\n }\n\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n return;\n }\n\n symbol = new SymbolClz(data, dataIndex);\n symbol.x = x;\n symbol.y = y;\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n symbol.__temp = true;\n data.setItemGraphicEl(dataIndex, symbol);\n symbol.stopSymbolAnimation(true);\n this.group.add(symbol);\n }\n\n symbol.highlight();\n } else {\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n }\n };\n\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n this._changePolyState('normal');\n\n if (dataIndex != null && dataIndex >= 0) {\n var symbol = data.getItemGraphicEl(dataIndex);\n\n if (symbol) {\n if (symbol.__temp) {\n data.setItemGraphicEl(dataIndex, null);\n this.group.remove(symbol);\n } else {\n symbol.downplay();\n }\n }\n } else {\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n }\n };\n\n LineView.prototype._changePolyState = function (toState) {\n var polygon = this._polygon;\n setStatesFlag(this._polyline, toState);\n polygon && setStatesFlag(polygon, toState);\n };\n\n LineView.prototype._newPolyline = function (points) {\n var polyline = this._polyline;\n\n if (polyline) {\n this._lineGroup.remove(polyline);\n }\n\n polyline = new ECPolyline({\n shape: {\n points: points\n },\n segmentIgnoreThreshold: 2,\n z2: 10\n });\n\n this._lineGroup.add(polyline);\n\n this._polyline = polyline;\n return polyline;\n };\n\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n var polygon = this._polygon;\n\n if (polygon) {\n this._lineGroup.remove(polygon);\n }\n\n polygon = new ECPolygon({\n shape: {\n points: points,\n stackedOnPoints: stackedOnPoints\n },\n segmentIgnoreThreshold: 2\n });\n\n this._lineGroup.add(polygon);\n\n this._polygon = polygon;\n return polygon;\n };\n\n LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n var isHorizontalOrRadial;\n var isCoordSysPolar;\n var baseAxis = coordSys.getBaseAxis();\n var isAxisInverse = baseAxis.inverse;\n\n if (coordSys.type === 'cartesian2d') {\n isHorizontalOrRadial = baseAxis.isHorizontal();\n isCoordSysPolar = false;\n } else if (coordSys.type === 'polar') {\n isHorizontalOrRadial = baseAxis.dim === 'angle';\n isCoordSysPolar = true;\n }\n\n var seriesModel = data.hostModel;\n var seriesDuration = seriesModel.get('animationDuration');\n\n if (typeof seriesDuration === 'function') {\n seriesDuration = seriesDuration(null);\n }\n\n var seriesDalay = seriesModel.get('animationDelay') || 0;\n var seriesDalayValue = typeof seriesDalay === 'function' ? seriesDalay(null) : seriesDalay;\n data.eachItemGraphicEl(function (symbol, idx) {\n var el = symbol;\n\n if (el) {\n var point = [symbol.x, symbol.y];\n var start = void 0;\n var end = void 0;\n var current = void 0;\n\n if (isCoordSysPolar) {\n var polarClip = clipShape;\n var coord = coordSys.pointToCoord(point);\n\n if (isHorizontalOrRadial) {\n start = polarClip.startAngle;\n end = polarClip.endAngle;\n current = -coord[1] / 180 * Math.PI;\n } else {\n start = polarClip.r0;\n end = polarClip.r;\n current = coord[0];\n }\n } else {\n var gridClip = clipShape;\n\n if (isHorizontalOrRadial) {\n start = gridClip.x;\n end = gridClip.x + gridClip.width;\n current = symbol.x;\n } else {\n start = gridClip.y + gridClip.height;\n end = gridClip.y;\n current = symbol.y;\n }\n }\n\n var ratio = end === start ? 0 : (current - start) / (end - start);\n\n if (isAxisInverse) {\n ratio = 1 - ratio;\n }\n\n var delay = typeof seriesDalay === 'function' ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n var symbolPath = el.getSymbolPath();\n var text = symbolPath.getTextContent();\n el.attr({\n scaleX: 0,\n scaleY: 0\n });\n el.animateTo({\n scaleX: 1,\n scaleY: 1\n }, {\n duration: 200,\n delay: delay\n });\n\n if (text) {\n text.animateFrom({\n style: {\n opacity: 0\n }\n }, {\n duration: 300,\n delay: delay\n });\n }\n\n symbolPath.disableLabelAnimation = true;\n }\n });\n };\n\n LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\n var endLabelModel = seriesModel.getModel('endLabel');\n\n if (endLabelModel.get('show')) {\n var data_2 = seriesModel.getData();\n var polyline = this._polyline;\n var endLabel = this._endLabel;\n\n if (!endLabel) {\n endLabel = this._endLabel = new graphic.Text({\n z2: 200\n });\n endLabel.ignoreClip = true;\n polyline.setTextContent(this._endLabel);\n polyline.disableLabelAnimation = true;\n }\n\n var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\n\n if (dataIndex >= 0) {\n setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n labelFetcher: seriesModel,\n labelDataIndex: dataIndex,\n defaultText: function (dataIndex, opt, interpolatedValue) {\n return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n },\n enableTextSetter: true\n }, getEndLabelStateSpecified(endLabelModel, coordSys));\n polyline.textConfig.position = null;\n }\n } else if (this._endLabel) {\n this._polyline.removeTextContent();\n\n this._endLabel = null;\n }\n };\n\n LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n var endLabel = this._endLabel;\n var polyline = this._polyline;\n\n if (endLabel) {\n if (percent < 1 && animationRecord.originalX == null) {\n animationRecord.originalX = endLabel.x;\n animationRecord.originalY = endLabel.y;\n }\n\n var points = data.getLayout('points');\n var seriesModel = data.hostModel;\n var connectNulls = seriesModel.get('connectNulls');\n var precision = endLabelModel.get('precision');\n var distance = endLabelModel.get('distance') || 0;\n var baseAxis = coordSys.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var isBaseInversed = baseAxis.inverse;\n var clipShape = clipRect.shape;\n var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n var dim = isHorizontal ? 'x' : 'y';\n var dataIndexRange = getIndexRange(points, xOrY, dim);\n var indices = dataIndexRange.range;\n var diff = indices[1] - indices[0];\n var value = void 0;\n\n if (diff >= 1) {\n if (diff > 1 && !connectNulls) {\n var pt = getPointAtIndex(points, indices[0]);\n endLabel.attr({\n x: pt[0] + distanceX,\n y: pt[1] + distanceY\n });\n valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n } else {\n var pt = polyline.getPointOn(xOrY, dim);\n pt && endLabel.attr({\n x: pt[0] + distanceX,\n y: pt[1] + distanceY\n });\n var startValue = seriesModel.getRawValue(indices[0]);\n var endValue = seriesModel.getRawValue(indices[1]);\n valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n }\n\n animationRecord.lastFrameIndex = indices[0];\n } else {\n var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n var pt = getPointAtIndex(points, idx);\n valueAnimation && (value = seriesModel.getRawValue(idx));\n endLabel.attr({\n x: pt[0] + distanceX,\n y: pt[1] + distanceY\n });\n }\n\n if (valueAnimation) {\n labelInner(endLabel).setLabelText(value);\n }\n }\n };\n\n LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n var polyline = this._polyline;\n var polygon = this._polygon;\n var seriesModel = data.hostModel;\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n var current = diff.current;\n var stackedOnCurrent = diff.stackedOnCurrent;\n var next = diff.next;\n var stackedOnNext = diff.stackedOnNext;\n\n if (step) {\n current = turnPointsIntoStep(diff.current, coordSys, step);\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n next = turnPointsIntoStep(diff.next, coordSys, step);\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n }\n\n if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n polyline.setShape({\n points: next\n });\n\n if (polygon) {\n polygon.setShape({\n points: next,\n stackedOnPoints: stackedOnNext\n });\n }\n\n return;\n }\n\n polyline.shape.__points = diff.current;\n polyline.shape.points = current;\n var target = {\n shape: {\n points: next\n }\n };\n\n if (diff.current !== current) {\n target.shape.__points = diff.next;\n }\n\n polyline.stopAnimation();\n graphic.updateProps(polyline, target, seriesModel);\n\n if (polygon) {\n polygon.setShape({\n points: current,\n stackedOnPoints: stackedOnCurrent\n });\n polygon.stopAnimation();\n graphic.updateProps(polygon, {\n shape: {\n stackedOnPoints: stackedOnNext\n }\n }, seriesModel);\n\n if (polyline.shape.points !== polygon.shape.points) {\n polygon.shape.points = polyline.shape.points;\n }\n }\n\n var updatedDataInfo = [];\n var diffStatus = diff.status;\n\n for (var i = 0; i < diffStatus.length; i++) {\n var cmd = diffStatus[i].cmd;\n\n if (cmd === '=') {\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n if (el) {\n updatedDataInfo.push({\n el: el,\n ptIdx: i\n });\n }\n }\n }\n\n if (polyline.animators && polyline.animators.length) {\n polyline.animators[0].during(function () {\n polygon && polygon.dirtyShape();\n var points = polyline.shape.__points;\n\n for (var i = 0; i < updatedDataInfo.length; i++) {\n var el = updatedDataInfo[i].el;\n var offset = updatedDataInfo[i].ptIdx * 2;\n el.x = points[offset];\n el.y = points[offset + 1];\n el.markRedraw();\n }\n });\n }\n };\n\n LineView.prototype.remove = function (ecModel) {\n var group = this.group;\n var oldData = this._data;\n\n this._lineGroup.removeAll();\n\n this._symbolDraw.remove(true);\n\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\n if (el.__temp) {\n group.remove(el);\n oldData.setItemGraphicEl(idx, null);\n }\n });\n this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n };\n\n LineView.type = 'line';\n return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map } from 'zrender/lib/core/util';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport { createFloat32Array } from '../util/vendor';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n return {\n seriesType: seriesType,\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var data = seriesModel.getData();\n var coordSys = seriesModel.coordinateSystem;\n var pipelineContext = seriesModel.pipelineContext;\n var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n if (!coordSys) {\n return;\n }\n\n var dims = map(coordSys.dimensions, function (dim) {\n return data.mapDimension(dim);\n }).slice(0, 2);\n var dimLen = dims.length;\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n if (isDimensionStacked(data, dims[0])) {\n dims[0] = stackResultDim;\n }\n\n if (isDimensionStacked(data, dims[1])) {\n dims[1] = stackResultDim;\n }\n\n var dimInfo0 = data.getDimensionInfo(dims[0]);\n var dimInfo1 = data.getDimensionInfo(dims[1]);\n var dimIdx0 = dimInfo0 && dimInfo0.index;\n var dimIdx1 = dimInfo1 && dimInfo1.index;\n return dimLen && {\n progress: function (params, data) {\n var segCount = params.end - params.start;\n var points = useTypedArray && createFloat32Array(segCount * dimLen);\n var tmpIn = [];\n var tmpOut = [];\n\n for (var i = params.start, offset = 0; i < params.end; i++) {\n var point = void 0;\n\n if (dimLen === 1) {\n var x = data.getByDimIdx(dimIdx0, i);\n point = coordSys.dataToPoint(x, null, tmpOut);\n } else {\n tmpIn[0] = data.getByDimIdx(dimIdx0, i);\n tmpIn[1] = data.getByDimIdx(dimIdx1, i);\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n }\n\n if (useTypedArray) {\n points[offset++] = point[0];\n points[offset++] = point[1];\n } else {\n data.setItemLayout(i, point.slice());\n }\n }\n\n useTypedArray && data.setLayout('points', points);\n }\n };\n }\n };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar samplers = {\n average: function (frame) {\n var sum = 0;\n var count = 0;\n\n for (var i = 0; i < frame.length; i++) {\n if (!isNaN(frame[i])) {\n sum += frame[i];\n count++;\n }\n }\n\n return count === 0 ? NaN : sum / count;\n },\n sum: function (frame) {\n var sum = 0;\n\n for (var i = 0; i < frame.length; i++) {\n sum += frame[i] || 0;\n }\n\n return sum;\n },\n max: function (frame) {\n var max = -Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] > max && (max = frame[i]);\n }\n\n return isFinite(max) ? max : NaN;\n },\n min: function (frame) {\n var min = Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] < min && (min = frame[i]);\n }\n\n return isFinite(min) ? min : NaN;\n },\n nearest: function (frame) {\n return frame[0];\n }\n};\n\nvar indexSampler = function (frame) {\n return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var sampling = seriesModel.get('sampling');\n var coordSys = seriesModel.coordinateSystem;\n var count = data.count();\n\n if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var extent = baseAxis.getExtent();\n var dpr = api.getDevicePixelRatio();\n var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n var rate = Math.round(count / size);\n\n if (rate > 1) {\n if (sampling === 'lttb') {\n seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n }\n\n var sampler = void 0;\n\n if (typeof sampling === 'string') {\n sampler = samplers[sampling];\n } else if (typeof sampling === 'function') {\n sampler = sampling;\n }\n\n if (sampler) {\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n }\n }\n }\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LineSeries from './LineSeries';\nimport LineView from './LineView';\nimport layoutPoints from '../../layout/points';\nimport dataSample from '../../processor/dataSample';\nexport function install(registers) {\n registers.registerChartView(LineView);\n registers.registerSeriesModel(LineSeries);\n registers.registerLayout(layoutPoints('line', true));\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar BaseBarSeriesModel = function (_super) {\n __extends(BaseBarSeriesModel, _super);\n\n function BaseBarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BaseBarSeriesModel.type;\n return _this;\n }\n\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n };\n\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n var coordSys = this.coordinateSystem;\n\n if (coordSys) {\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\n var data = this.getData();\n var offset = data.getLayout('offset');\n var size = data.getLayout('size');\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n pt[offsetIndex] += offset + size / 2;\n return pt;\n }\n\n return [NaN, NaN];\n };\n\n BaseBarSeriesModel.type = 'series.__base_bar__';\n BaseBarSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n barMinHeight: 0,\n barMinAngle: 0,\n large: false,\n largeThreshold: 400,\n progressive: 3e3,\n progressiveChunkMode: 'mod'\n };\n return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport createListFromArray from '../helper/createListFromArray';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar BarSeriesModel = function (_super) {\n __extends(BarSeriesModel, _super);\n\n function BarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BarSeriesModel.type;\n return _this;\n }\n\n BarSeriesModel.prototype.getInitialData = function () {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true,\n createInvertedIndices: !!this.get('realtimeSort', true) || null\n });\n };\n\n BarSeriesModel.prototype.getProgressive = function () {\n return this.get('large') ? this.get('progressive') : false;\n };\n\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\n var progressiveThreshold = this.get('progressiveThreshold');\n var largeThreshold = this.get('largeThreshold');\n\n if (largeThreshold > progressiveThreshold) {\n progressiveThreshold = largeThreshold;\n }\n\n return progressiveThreshold;\n };\n\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n return selectors.rect(data.getItemLayout(dataIndex));\n };\n\n BarSeriesModel.type = 'series.bar';\n BarSeriesModel.dependencies = ['grid', 'polar'];\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n clip: true,\n roundCap: false,\n showBackground: false,\n backgroundStyle: {\n color: 'rgba(180, 180, 180, 0.2)',\n borderColor: null,\n borderWidth: 0,\n borderType: 'solid',\n borderRadius: 0,\n shadowBlur: 0,\n shadowColor: null,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n opacity: 1\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n },\n realtimeSort: false\n });\n return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic';\n\nvar SausageShape = function () {\n function SausageShape() {\n this.cx = 0;\n this.cy = 0;\n this.r0 = 0;\n this.r = 0;\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.clockwise = true;\n }\n\n return SausageShape;\n}();\n\nvar SausagePath = function (_super) {\n __extends(SausagePath, _super);\n\n function SausagePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'sausage';\n return _this;\n }\n\n SausagePath.prototype.getDefaultShape = function () {\n return new SausageShape();\n };\n\n SausagePath.prototype.buildPath = function (ctx, shape) {\n var x = shape.cx;\n var y = shape.cy;\n var r0 = Math.max(shape.r0 || 0, 0);\n var r = Math.max(shape.r, 0);\n var dr = (r - r0) * 0.5;\n var rCenter = r0 + dr;\n var startAngle = shape.startAngle;\n var endAngle = shape.endAngle;\n var clockwise = shape.clockwise;\n var unitStartX = Math.cos(startAngle);\n var unitStartY = Math.sin(startAngle);\n var unitEndX = Math.cos(endAngle);\n var unitEndY = Math.sin(endAngle);\n var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2;\n\n if (lessThanCircle) {\n ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\n ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\n }\n\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\n ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n if (r0 !== 0) {\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\n }\n\n ctx.closePath();\n };\n\n return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport Group from 'zrender/lib/graphic/Group';\nimport { extend, defaults, each, map } from 'zrender/lib/core/util';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut } from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation } from '../../label/labelStyle';\nimport { throttle } from '../../util/throttle';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport Sausage from '../../util/shape/sausage';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { warn } from '../../util/log';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\nvar _eventPos = [0, 0];\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n var coordSysClipArea = coord.getArea && coord.getArea();\n\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\n var baseAxis = coord.getBaseAxis();\n\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n var expandWidth = data.getLayout('bandWidth');\n\n if (baseAxis.isHorizontal()) {\n coordSysClipArea.x -= expandWidth;\n coordSysClipArea.width += expandWidth * 2;\n } else {\n coordSysClipArea.y -= expandWidth;\n coordSysClipArea.height += expandWidth * 2;\n }\n }\n }\n\n return coordSysClipArea;\n}\n\nvar BarView = function (_super) {\n __extends(BarView, _super);\n\n function BarView() {\n var _this = _super.call(this) || this;\n\n _this.type = BarView.type;\n _this._isFirstFrame = true;\n return _this;\n }\n\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n this._model = seriesModel;\n\n this._removeOnRenderedListener(api);\n\n this._updateDrawMode(seriesModel);\n\n var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n } else if (process.env.NODE_ENV !== 'production') {\n warn('Only cartesian2d and polar supported for bar.');\n }\n };\n\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n this._clear();\n\n this._updateDrawMode(seriesModel);\n\n this._updateLargeClip(seriesModel);\n };\n\n BarView.prototype.incrementalRender = function (params, seriesModel) {\n this._incrementalRenderLarge(params, seriesModel);\n };\n\n BarView.prototype._updateDrawMode = function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n };\n\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n var coord = seriesModel.coordinateSystem;\n var baseAxis = coord.getBaseAxis();\n var isHorizontalOrRadial;\n\n if (coord.type === 'cartesian2d') {\n isHorizontalOrRadial = baseAxis.isHorizontal();\n } else if (coord.type === 'polar') {\n isHorizontalOrRadial = baseAxis.dim === 'angle';\n }\n\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n if (realtimeSortCfg) {\n this._enableRealtimeSort(realtimeSortCfg, data, api);\n }\n\n var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n var coordSysClipArea = getClipArea(coord, data);\n group.removeClipPath();\n var roundCap = seriesModel.get('roundCap', true);\n var drawBackground = seriesModel.get('showBackground', true);\n var backgroundModel = seriesModel.getModel('backgroundStyle');\n var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n var bgEls = [];\n var oldBgEls = this._backgroundEls;\n var isInitSort = payload && payload.isInitSort;\n var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n function createBackground(dataIndex) {\n var bgLayout = getLayout[coord.type](data, dataIndex);\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n bgEl.useStyle(backgroundModel.getItemStyle());\n\n if (coord.type === 'cartesian2d') {\n bgEl.setShape('r', barBorderRadius);\n }\n\n bgEls[dataIndex] = bgEl;\n return bgEl;\n }\n\n ;\n data.diff(oldData).add(function (dataIndex) {\n var itemModel = data.getItemModel(dataIndex);\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n if (drawBackground) {\n createBackground(dataIndex);\n }\n\n if (!data.hasValue(dataIndex)) {\n return;\n }\n\n var isClipped = false;\n\n if (needsClip) {\n isClipped = clip[coord.type](coordSysClipArea, layout);\n }\n\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n if (isInitSort) {\n el.attr({\n shape: layout\n });\n } else if (realtimeSortCfg) {\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n } else {\n initProps(el, {\n shape: layout\n }, seriesModel, dataIndex);\n }\n\n data.setItemGraphicEl(dataIndex, el);\n group.add(el);\n el.ignore = isClipped;\n }).update(function (newIndex, oldIndex) {\n var itemModel = data.getItemModel(newIndex);\n var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n if (drawBackground) {\n var bgEl = void 0;\n\n if (oldBgEls.length === 0) {\n bgEl = createBackground(oldIndex);\n } else {\n bgEl = oldBgEls[oldIndex];\n bgEl.useStyle(backgroundModel.getItemStyle());\n\n if (coord.type === 'cartesian2d') {\n bgEl.setShape('r', barBorderRadius);\n }\n\n bgEls[newIndex] = bgEl;\n }\n\n var bgLayout = getLayout[coord.type](data, newIndex);\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n updateProps(bgEl, {\n shape: shape\n }, animationModel, newIndex);\n }\n\n var el = oldData.getItemGraphicEl(oldIndex);\n\n if (!data.hasValue(newIndex)) {\n group.remove(el);\n el = null;\n return;\n }\n\n var isClipped = false;\n\n if (needsClip) {\n isClipped = clip[coord.type](coordSysClipArea, layout);\n\n if (isClipped) {\n group.remove(el);\n }\n }\n\n if (!el) {\n el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n }\n\n if (!isChangeOrder) {\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n }\n\n if (isInitSort) {\n el.attr({\n shape: layout\n });\n } else if (realtimeSortCfg) {\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n } else {\n updateProps(el, {\n shape: layout\n }, seriesModel, newIndex, null);\n }\n\n data.setItemGraphicEl(newIndex, el);\n el.ignore = isClipped;\n group.add(el);\n }).remove(function (dataIndex) {\n var el = oldData.getItemGraphicEl(dataIndex);\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n }).execute();\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n bgGroup.removeAll();\n\n for (var i = 0; i < bgEls.length; ++i) {\n bgGroup.add(bgEls[i]);\n }\n\n group.add(bgGroup);\n this._backgroundEls = bgEls;\n this._data = data;\n };\n\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n\n this._updateLargeClip(seriesModel);\n };\n\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n this._removeBackground();\n\n createLarge(seriesModel, this.group, true);\n };\n\n BarView.prototype._updateLargeClip = function (seriesModel) {\n var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n if (clipPath) {\n this.group.setClipPath(clipPath);\n } else {\n this.group.removeClipPath();\n }\n };\n\n BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n var _this = this;\n\n if (!data.count()) {\n return;\n }\n\n var baseAxis = realtimeSortCfg.baseAxis;\n\n if (this._isFirstFrame) {\n this._dispatchInitSort(data, realtimeSortCfg, api);\n\n this._isFirstFrame = false;\n } else {\n var orderMapping_1 = function (idx) {\n var el = data.getItemGraphicEl(idx);\n\n if (el) {\n var shape = el.shape;\n return (baseAxis.isHorizontal() ? Math.abs(shape.height) : Math.abs(shape.width)) || 0;\n } else {\n return 0;\n }\n };\n\n this._onRendered = function () {\n _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n };\n\n api.getZr().on('rendered', this._onRendered);\n }\n };\n\n BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n var info = [];\n data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n var mappedValue = orderMapping(dataIdx);\n mappedValue = mappedValue == null ? NaN : mappedValue;\n info.push({\n dataIndex: dataIdx,\n mappedValue: mappedValue,\n ordinalNumber: ordinalNumber\n });\n });\n info.sort(function (a, b) {\n return b.mappedValue - a.mappedValue;\n });\n return {\n ordinalNumbers: map(info, function (item) {\n return item.ordinalNumber;\n })\n };\n };\n\n BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n var scale = baseAxis.scale;\n var ordinalDataDim = data.mapDimension(baseAxis.dim);\n var lastValue = Number.MAX_VALUE;\n\n for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));\n\n if (value > lastValue) {\n return true;\n }\n\n lastValue = value;\n }\n\n return false;\n };\n\n BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n var scale = baseAxis.scale;\n var extent = scale.getExtent();\n var tickNum = Math.max(0, extent[0]);\n var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n for (; tickNum <= tickMax; ++tickNum) {\n if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n return true;\n }\n }\n };\n\n BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n return;\n }\n\n var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n this._removeOnRenderedListener(api);\n\n api.dispatchAction({\n type: 'changeAxisOrder',\n componentType: baseAxis.dim + 'Axis',\n axisId: baseAxis.index,\n sortInfo: sortInfo\n });\n }\n };\n\n BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n var baseAxis = realtimeSortCfg.baseAxis;\n\n var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n });\n\n api.dispatchAction({\n type: 'changeAxisOrder',\n componentType: baseAxis.dim + 'Axis',\n isInitSort: true,\n axisId: baseAxis.index,\n sortInfo: sortResult,\n animation: {\n duration: 0\n }\n });\n };\n\n BarView.prototype.remove = function (ecModel, api) {\n this._clear(this._model);\n\n this._removeOnRenderedListener(api);\n };\n\n BarView.prototype.dispose = function (ecModel, api) {\n this._removeOnRenderedListener(api);\n };\n\n BarView.prototype._removeOnRenderedListener = function (api) {\n if (this._onRendered) {\n api.getZr().off('rendered', this._onRendered);\n this._onRendered = null;\n }\n };\n\n BarView.prototype._clear = function (model) {\n var group = this.group;\n var data = this._data;\n\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n this._removeBackground();\n\n this._backgroundEls = [];\n data.eachItemGraphicEl(function (el) {\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n });\n } else {\n group.removeAll();\n }\n\n this._data = null;\n this._isFirstFrame = true;\n };\n\n BarView.prototype._removeBackground = function () {\n this.group.remove(this._backgroundGroup);\n this._backgroundGroup = null;\n };\n\n BarView.type = 'bar';\n return BarView;\n}(ChartView);\n\nvar clip = {\n cartesian2d: function (coordSysBoundingRect, layout) {\n var signWidth = layout.width < 0 ? -1 : 1;\n var signHeight = layout.height < 0 ? -1 : 1;\n\n if (signWidth < 0) {\n layout.x += layout.width;\n layout.width = -layout.width;\n }\n\n if (signHeight < 0) {\n layout.y += layout.height;\n layout.height = -layout.height;\n }\n\n var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n var x = mathMax(layout.x, coordSysBoundingRect.x);\n var x2 = mathMin(layout.x + layout.width, coordSysX2);\n var y = mathMax(layout.y, coordSysBoundingRect.y);\n var y2 = mathMin(layout.y + layout.height, coordSysY2);\n var xClipped = x2 < x;\n var yClipped = y2 < y;\n layout.x = xClipped && x > coordSysX2 ? x2 : x;\n layout.y = yClipped && y > coordSysY2 ? y2 : y;\n layout.width = xClipped ? 0 : x2 - x;\n layout.height = yClipped ? 0 : y2 - y;\n\n if (signWidth < 0) {\n layout.x += layout.width;\n layout.width = -layout.width;\n }\n\n if (signHeight < 0) {\n layout.y += layout.height;\n layout.height = -layout.height;\n }\n\n return xClipped || yClipped;\n },\n polar: function (coordSysClipArea, layout) {\n var signR = layout.r0 <= layout.r ? 1 : -1;\n\n if (signR < 0) {\n var tmp = layout.r;\n layout.r = layout.r0;\n layout.r0 = tmp;\n }\n\n var r = mathMin(layout.r, coordSysClipArea.r);\n var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n layout.r = r;\n layout.r0 = r0;\n var clipped = r - r0 < 0;\n\n if (signR < 0) {\n var tmp = layout.r;\n layout.r = layout.r0;\n layout.r0 = tmp;\n }\n\n return clipped;\n }\n};\nvar elementCreator = {\n cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n var rect = new Rect({\n shape: extend({}, layout),\n z2: 1\n });\n rect.__dataIndex = newIndex;\n rect.name = 'item';\n\n if (animationModel) {\n var rectShape = rect.shape;\n var animateProperty = isHorizontal ? 'height' : 'width';\n rectShape[animateProperty] = 0;\n }\n\n return rect;\n },\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n var clockwise = layout.startAngle < layout.endAngle;\n var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n var sector = new ShapeClass({\n shape: defaults({\n clockwise: clockwise\n }, layout),\n z2: 1\n });\n sector.name = 'item';\n\n if (animationModel) {\n var sectorShape = sector.shape;\n var animateProperty = isRadial ? 'r' : 'endAngle';\n var animateTarget = {};\n sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n animateTarget[animateProperty] = layout[animateProperty];\n (isUpdate ? updateProps : initProps)(sector, {\n shape: animateTarget\n }, animationModel);\n }\n\n return sector;\n }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n var realtimeSortOption = seriesModel.get('realtimeSort', true);\n var baseAxis = coordSys.getBaseAxis();\n\n if (process.env.NODE_ENV !== 'production') {\n if (realtimeSortOption) {\n if (baseAxis.type !== 'category') {\n warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n }\n\n if (coordSys.type !== 'cartesian2d') {\n warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n }\n }\n }\n\n if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n return {\n baseAxis: baseAxis,\n otherAxis: coordSys.getOtherAxis(baseAxis)\n };\n }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n var seriesTarget;\n var axisTarget;\n\n if (isHorizontal) {\n axisTarget = {\n x: layout.x,\n width: layout.width\n };\n seriesTarget = {\n y: layout.y,\n height: layout.height\n };\n } else {\n axisTarget = {\n y: layout.y,\n height: layout.height\n };\n seriesTarget = {\n x: layout.x,\n width: layout.width\n };\n }\n\n if (!isChangeOrder) {\n (isUpdate ? updateProps : initProps)(el, {\n shape: seriesTarget\n }, seriesAnimationModel, newIndex, null);\n }\n\n var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n (isUpdate ? updateProps : initProps)(el, {\n shape: axisTarget\n }, axisAnimationModel, newIndex);\n}\n\nvar getLayout = {\n cartesian2d: function (data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\n var signX = layout.width > 0 ? 1 : -1;\n var signY = layout.height > 0 ? 1 : -1;\n return {\n x: layout.x + signX * fixedLineWidth / 2,\n y: layout.y + signY * fixedLineWidth / 2,\n width: layout.width - signX * fixedLineWidth,\n height: layout.height - signY * fixedLineWidth\n };\n },\n polar: function (data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n return {\n cx: layout.cx,\n cy: layout.cy,\n r0: layout.r0,\n r: layout.r,\n startAngle: layout.startAngle,\n endAngle: layout.endAngle\n };\n }\n};\n\nfunction isZeroOnPolar(layout) {\n return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n var style = data.getItemVisual(dataIndex, 'style');\n\n if (!isPolar) {\n el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\n }\n\n el.useStyle(style);\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && el.attr('cursor', cursorStyle);\n\n if (!isPolar) {\n var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n var labelStatesModels = getLabelStatesModels(itemModel);\n setLabelStyle(el, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: dataIndex,\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n inheritColor: style.fill,\n defaultOpacity: style.opacity,\n defaultOutsidePosition: labelPositionOutside\n });\n var label = el.getTextContent();\n setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n return getDefaultInterpolatedLabel(data, value);\n });\n }\n\n var emphasisModel = itemModel.getModel(['emphasis']);\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n setStatesStylesFromModel(el, itemModel);\n\n if (isZeroOnPolar(layout)) {\n el.style.fill = 'none';\n el.style.stroke = 'none';\n each(el.states, function (state) {\n if (state.style) {\n state.style.fill = state.style.stroke = 'none';\n }\n });\n }\n}\n\nfunction getLineWidth(itemModel, rawLayout) {\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape = function () {\n function LagePathShape() {}\n\n return LagePathShape;\n}();\n\nvar LargePath = function (_super) {\n __extends(LargePath, _super);\n\n function LargePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'largeBar';\n return _this;\n }\n\n ;\n\n LargePath.prototype.getDefaultShape = function () {\n return new LagePathShape();\n };\n\n LargePath.prototype.buildPath = function (ctx, shape) {\n var points = shape.points;\n var startPoint = this.__startPoint;\n var baseDimIdx = this.__baseDimIdx;\n\n for (var i = 0; i < points.length; i += 2) {\n startPoint[baseDimIdx] = points[i + baseDimIdx];\n ctx.moveTo(startPoint[0], startPoint[1]);\n ctx.lineTo(points[i], points[i + 1]);\n }\n };\n\n return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n var data = seriesModel.getData();\n var startPoint = [];\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\n var largeDataIndices = data.getLayout('largeDataIndices');\n var barWidth = data.getLayout('barWidth');\n var backgroundModel = seriesModel.getModel('backgroundStyle');\n var drawBackground = seriesModel.get('showBackground', true);\n\n if (drawBackground) {\n var points = data.getLayout('largeBackgroundPoints');\n var backgroundStartPoint = [];\n backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\n var bgEl = new LargePath({\n shape: {\n points: points\n },\n incremental: !!incremental,\n silent: true,\n z2: 0\n });\n bgEl.__startPoint = backgroundStartPoint;\n bgEl.__baseDimIdx = baseDimIdx;\n bgEl.__largeDataIndices = largeDataIndices;\n bgEl.__barWidth = barWidth;\n setLargeBackgroundStyle(bgEl, backgroundModel, data);\n group.add(bgEl);\n }\n\n var el = new LargePath({\n shape: {\n points: data.getLayout('largePoints')\n },\n incremental: !!incremental\n });\n el.__startPoint = startPoint;\n el.__baseDimIdx = baseDimIdx;\n el.__largeDataIndices = largeDataIndices;\n el.__barWidth = barWidth;\n group.add(el);\n setLargeStyle(el, seriesModel, data);\n getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n if (!seriesModel.get('silent')) {\n el.on('mousedown', largePathUpdateDataIndex);\n el.on('mousemove', largePathUpdateDataIndex);\n }\n}\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n var largePath = this;\n var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n var baseDimIdx = largePath.__baseDimIdx;\n var valueDimIdx = 1 - baseDimIdx;\n var points = largePath.shape.points;\n var largeDataIndices = largePath.__largeDataIndices;\n var barWidthHalf = Math.abs(largePath.__barWidth / 2);\n var startValueVal = largePath.__startPoint[valueDimIdx];\n _eventPos[0] = x;\n _eventPos[1] = y;\n var pointerBaseVal = _eventPos[baseDimIdx];\n var pointerValueVal = _eventPos[1 - baseDimIdx];\n var baseLowerBound = pointerBaseVal - barWidthHalf;\n var baseUpperBound = pointerBaseVal + barWidthHalf;\n\n for (var i = 0, len = points.length / 2; i < len; i++) {\n var ii = i * 2;\n var barBaseVal = points[ii + baseDimIdx];\n var barValueVal = points[ii + valueDimIdx];\n\n if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) {\n return largeDataIndices[i];\n }\n }\n\n return -1;\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n var globalStyle = data.getVisual('style');\n el.useStyle(extend({}, globalStyle));\n el.style.fill = null;\n el.style.stroke = globalStyle.fill;\n el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction setLargeBackgroundStyle(el, backgroundModel, data) {\n var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\n var itemStyle = backgroundModel.getItemStyle();\n el.useStyle(itemStyle);\n el.style.fill = null;\n el.style.stroke = borderColor;\n el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\n var rectShape = layout;\n var coordLayout = coord.getArea();\n return {\n x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n };\n } else {\n var coordLayout = coord.getArea();\n var sectorShape = layout;\n return {\n cx: coordLayout.cx,\n cy: coordLayout.cy,\n r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n };\n }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n var ElementClz = coord.type === 'polar' ? Sector : Rect;\n return new ElementClz({\n shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n silent: true,\n z2: 0\n });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { layout, largeLayout } from '../../layout/barGrid';\nimport dataSample from '../../processor/dataSample';\nimport BarSeries from './BarSeries';\nimport BarView from './BarView';\nexport function install(registers) {\n registers.registerChartView(BarView);\n registers.registerSeriesModel(BarSeries);\n registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar'));\n registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\n registers.registerVisual({\n seriesType: 'bar',\n reset: function (seriesModel) {\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n }\n });\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n registers.registerAction({\n type: 'changeAxisOrder',\n event: 'changeAxisOrder',\n update: 'update'\n }, function (payload, ecModel) {\n var componentType = payload.componentType || 'series';\n ecModel.eachComponent({\n mainType: componentType,\n query: payload\n }, function (componentModel) {\n if (payload.sortInfo) {\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\n }\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent, linearMap } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nexport default function pieLayout(seriesType, ecModel, api) {\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var viewRect = getViewRect(seriesModel, api);\n var center = seriesModel.get('center');\n var radius = seriesModel.get('radius');\n\n if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n\n if (!zrUtil.isArray(center)) {\n center = [center, center];\n }\n\n var width = parsePercent(viewRect.width, api.getWidth());\n var height = parsePercent(viewRect.height, api.getHeight());\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], width) + viewRect.x;\n var cy = parsePercent(center[1], height) + viewRect.y;\n var r0 = parsePercent(radius[0], size / 2);\n var r = parsePercent(radius[1], size / 2);\n var startAngle = -seriesModel.get('startAngle') * RADIAN;\n var minAngle = seriesModel.get('minAngle') * RADIAN;\n var validDataCount = 0;\n data.each(valueDim, function (value) {\n !isNaN(value) && validDataCount++;\n });\n var sum = data.getSum(valueDim);\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\n var clockwise = seriesModel.get('clockwise');\n var roseType = seriesModel.get('roseType');\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n var extent = data.getDataExtent(valueDim);\n extent[0] = 0;\n var restAngle = PI2;\n var valueSumLargerThanMinAngle = 0;\n var currentAngle = startAngle;\n var dir = clockwise ? 1 : -1;\n data.setLayout({\n viewRect: viewRect,\n r: r\n });\n data.each(valueDim, function (value, idx) {\n var angle;\n\n if (isNaN(value)) {\n data.setItemLayout(idx, {\n angle: NaN,\n startAngle: NaN,\n endAngle: NaN,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? NaN : r\n });\n return;\n }\n\n if (roseType !== 'area') {\n angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n } else {\n angle = PI2 / validDataCount;\n }\n\n if (angle < minAngle) {\n angle = minAngle;\n restAngle -= minAngle;\n } else {\n valueSumLargerThanMinAngle += value;\n }\n\n var endAngle = currentAngle + dir * angle;\n data.setItemLayout(idx, {\n angle: angle,\n startAngle: currentAngle,\n endAngle: endAngle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? linearMap(value, extent, [r0, r]) : r\n });\n currentAngle = endAngle;\n });\n\n if (restAngle < PI2 && validDataCount) {\n if (restAngle <= 1e-3) {\n var angle_1 = PI2 / validDataCount;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout_1 = data.getItemLayout(idx);\n layout_1.angle = angle_1;\n layout_1.startAngle = startAngle + dir * idx * angle_1;\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n }\n });\n } else {\n unitRadian = restAngle / valueSumLargerThanMinAngle;\n currentAngle = startAngle;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout_2 = data.getItemLayout(idx);\n var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n layout_2.startAngle = currentAngle;\n layout_2.endAngle = currentAngle + dir * angle;\n currentAngle += dir * angle;\n }\n });\n }\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function dataFilter(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (!legendModels || !legendModels.length) {\n return;\n }\n\n var data = seriesModel.getData();\n data.filterSelf(function (idx) {\n var name = data.getName(idx);\n\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(name)) {\n return false;\n }\n }\n\n return true;\n });\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport { Point } from '../../util/graphic';\nimport { each } from 'zrender/lib/core/util';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n if (list.length < 2) {\n return;\n }\n\n ;\n\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n var rB = semi.rB;\n var rB2 = rB * rB;\n\n for (var i = 0; i < semi.list.length; i++) {\n var item = semi.list[i];\n var dy = Math.abs(item.label.y - cy);\n var rA = r + item.len;\n var rA2 = rA * rA;\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n item.label.x = cx + (dx + item.len2) * dir;\n }\n }\n\n function recalculateX(items) {\n var topSemi = {\n list: [],\n maxY: 0\n };\n var bottomSemi = {\n list: [],\n maxY: 0\n };\n\n for (var i = 0; i < items.length; i++) {\n if (items[i].labelAlignTo !== 'none') {\n continue;\n }\n\n var item = items[i];\n var semi = item.label.y > cy ? bottomSemi : topSemi;\n var dy = Math.abs(item.label.y - cy);\n\n if (dy > semi.maxY) {\n var dx = item.label.x - cx - item.len2 * dir;\n var rA = r + item.len;\n var rB = dx < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n semi.rB = rB;\n semi.maxY = dy;\n }\n\n semi.list.push(item);\n }\n\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n }\n\n var len = list.length;\n\n for (var i = 0; i < len; i++) {\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n var dx = list[i].label.x - farthestX;\n list[i].linePoints[1][0] += dx;\n list[i].label.x = farthestX;\n }\n }\n\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n recalculateX(list);\n }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n var leftList = [];\n var rightList = [];\n var leftmostX = Number.MAX_VALUE;\n var rightmostX = -Number.MAX_VALUE;\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n var label = labelLayoutList[i].label;\n\n if (isPositionCenter(labelLayoutList[i])) {\n continue;\n }\n\n if (label.x < cx) {\n leftmostX = Math.min(leftmostX, label.x);\n leftList.push(labelLayoutList[i]);\n } else {\n rightmostX = Math.max(rightmostX, label.x);\n rightList.push(labelLayoutList[i]);\n }\n }\n\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n var label = layout.label;\n\n if (isPositionCenter(layout)) {\n continue;\n }\n\n var linePoints = layout.linePoints;\n\n if (linePoints) {\n var isAlignToEdge = layout.labelAlignTo === 'edge';\n var realTextWidth = layout.rect.width;\n var targetTextWidth = void 0;\n\n if (isAlignToEdge) {\n if (label.x < cx) {\n targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n } else {\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n }\n } else {\n if (label.x < cx) {\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n } else {\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n }\n }\n\n if (targetTextWidth < layout.rect.width) {\n layout.label.style.width = targetTextWidth;\n\n if (layout.labelAlignTo === 'edge') {\n realTextWidth = targetTextWidth;\n }\n }\n\n var dist = linePoints[1][0] - linePoints[2][0];\n\n if (isAlignToEdge) {\n if (label.x < cx) {\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n } else {\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n }\n } else {\n if (label.x < cx) {\n linePoints[2][0] = label.x + layout.labelDistance;\n } else {\n linePoints[2][0] = label.x - layout.labelDistance;\n }\n\n linePoints[1][0] = linePoints[2][0] + dist;\n }\n\n linePoints[1][1] = linePoints[2][1] = label.y;\n }\n }\n}\n\nfunction isPositionCenter(sectorShape) {\n return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n var data = seriesModel.getData();\n var labelLayoutList = [];\n var cx;\n var cy;\n var hasLabelRotate = false;\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n var viewRect = data.getLayout('viewRect');\n var r = data.getLayout('r');\n var viewWidth = viewRect.width;\n var viewLeft = viewRect.x;\n var viewTop = viewRect.y;\n var viewHeight = viewRect.height;\n\n function setNotShow(el) {\n el.ignore = true;\n }\n\n function isLabelShown(label) {\n if (!label.ignore) {\n return true;\n }\n\n for (var key in label.states) {\n if (label.states[key].ignore === false) {\n return true;\n }\n }\n\n return false;\n }\n\n data.each(function (idx) {\n var sector = data.getItemGraphicEl(idx);\n var sectorShape = sector.shape;\n var label = sector.getTextContent();\n var labelLine = sector.getTextGuideLine();\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n var labelDistance = labelModel.get('distanceToLabelLine');\n var labelAlignTo = labelModel.get('alignTo');\n var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n var bleedMargin = labelModel.get('bleedMargin');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineLen = labelLineModel.get('length');\n labelLineLen = parsePercent(labelLineLen, viewWidth);\n var labelLineLen2 = labelLineModel.get('length2');\n labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n each(label.states, setNotShow);\n label.ignore = true;\n return;\n }\n\n if (!isLabelShown(label)) {\n return;\n }\n\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n var nx = Math.cos(midAngle);\n var ny = Math.sin(midAngle);\n var textX;\n var textY;\n var linePoints;\n var textAlign;\n cx = sectorShape.cx;\n cy = sectorShape.cy;\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n if (labelPosition === 'center') {\n textX = sectorShape.cx;\n textY = sectorShape.cy;\n textAlign = 'center';\n } else {\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n textX = x1 + nx * 3;\n textY = y1 + ny * 3;\n\n if (!isLabelInside) {\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n var y3 = y2;\n\n if (labelAlignTo === 'edge') {\n textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n } else {\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n }\n\n textY = y3;\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n }\n\n textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n }\n\n var labelRotate;\n var rotate = labelModel.get('rotate');\n\n if (typeof rotate === 'number') {\n labelRotate = rotate * (Math.PI / 180);\n } else {\n labelRotate = rotate ? nx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n }\n\n hasLabelRotate = !!labelRotate;\n label.x = textX;\n label.y = textY;\n label.rotation = labelRotate;\n label.setStyle({\n verticalAlign: 'middle'\n });\n\n if (!isLabelInside) {\n var textRect = label.getBoundingRect().clone();\n textRect.applyTransform(label.getComputedTransform());\n var margin = (label.style.margin || 0) + 2.1;\n textRect.y -= margin / 2;\n textRect.height += margin;\n labelLayoutList.push({\n label: label,\n labelLine: labelLine,\n position: labelPosition,\n len: labelLineLen,\n len2: labelLineLen2,\n minTurnAngle: labelLineModel.get('minTurnAngle'),\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n surfaceNormal: new Point(nx, ny),\n linePoints: linePoints,\n textAlign: textAlign,\n labelDistance: labelDistance,\n labelAlignTo: labelAlignTo,\n edgeDistance: edgeDistance,\n bleedMargin: bleedMargin,\n rect: textRect\n });\n } else {\n label.setStyle({\n align: textAlign\n });\n var selectState = label.states.select;\n\n if (selectState) {\n selectState.x += label.x;\n selectState.y += label.y;\n }\n }\n\n sector.setTextConfig({\n inside: isLabelInside\n });\n });\n\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n }\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n var label = layout.label;\n var labelLine = layout.labelLine;\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n if (label) {\n label.setStyle({\n align: layout.textAlign\n });\n\n if (notShowLabel) {\n each(label.states, setNotShow);\n label.ignore = true;\n }\n\n var selectState = label.states.select;\n\n if (selectState) {\n selectState.x += label.x;\n selectState.y += label.y;\n }\n }\n\n if (labelLine) {\n var linePoints = layout.linePoints;\n\n if (notShowLabel || !linePoints) {\n each(labelLine.states, setNotShow);\n labelLine.ignore = true;\n } else {\n limitTurnAngle(linePoints, layout.minTurnAngle);\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n labelLine.setShape({\n points: linePoints\n });\n label.__hostTarget.textGuideLineConfig = {\n anchor: new Point(linePoints[0][0], linePoints[0][1])\n };\n }\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\nexport function getSectorCornerRadius(model, shape) {\n var cornerRadius = model.get('borderRadius');\n\n if (cornerRadius == null) {\n return null;\n }\n\n if (!isArray(cornerRadius)) {\n cornerRadius = [cornerRadius, cornerRadius];\n }\n\n return {\n innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\n cornerRadius: parsePercent(cornerRadius[1], shape.r)\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __assign, __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport labelLayout from './labelLayout';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\n\nvar PiePiece = function (_super) {\n __extends(PiePiece, _super);\n\n function PiePiece(data, idx, startAngle) {\n var _this = _super.call(this) || this;\n\n _this.z2 = 2;\n var polyline = new graphic.Polyline();\n var text = new graphic.Text();\n\n _this.setTextGuideLine(polyline);\n\n _this.setTextContent(text);\n\n _this.updateData(data, idx, startAngle, true);\n\n return _this;\n }\n\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n var sector = this;\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n var layout = data.getItemLayout(idx);\n var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\n\n if (firstCreate) {\n sector.setShape(sectorShape);\n var animationType = seriesModel.getShallow('animationType');\n\n if (animationType === 'scale') {\n sector.shape.r = layout.r0;\n graphic.initProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, idx);\n } else {\n if (startAngle != null) {\n sector.setShape({\n startAngle: startAngle,\n endAngle: startAngle\n });\n graphic.initProps(sector, {\n shape: {\n startAngle: layout.startAngle,\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n } else {\n sector.shape.endAngle = layout.startAngle;\n graphic.updateProps(sector, {\n shape: {\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n }\n }\n } else {\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel, idx);\n }\n\n sector.useStyle(data.getItemVisual(idx, 'style'));\n setStatesStylesFromModel(sector, itemModel);\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var offset = seriesModel.get('selectedOffset');\n var dx = Math.cos(midAngle) * offset;\n var dy = Math.sin(midAngle) * offset;\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle);\n\n this._updateLabel(seriesModel, data, idx);\n\n sector.ensureState('emphasis').shape = __assign({\n r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n extend(sector.ensureState('select'), {\n x: dx,\n y: dy,\n shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n });\n extend(sector.ensureState('blur'), {\n shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n });\n var labelLine = sector.getTextGuideLine();\n var labelText = sector.getTextContent();\n extend(labelLine.ensureState('select'), {\n x: dx,\n y: dy\n });\n extend(labelText.ensureState('select'), {\n x: dx,\n y: dy\n });\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n };\n\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n var sector = this;\n var itemModel = data.getItemModel(idx);\n var labelLineModel = itemModel.getModel('labelLine');\n var style = data.getItemVisual(idx, 'style');\n var visualColor = style && style.fill;\n var visualOpacity = style && style.opacity;\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n inheritColor: visualColor,\n defaultOpacity: visualOpacity,\n defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n });\n var labelText = sector.getTextContent();\n sector.setTextConfig({\n position: null,\n rotation: null\n });\n labelText.attr({\n z2: 10\n });\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n stroke: visualColor,\n opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n });\n };\n\n return PiePiece;\n}(graphic.Sector);\n\nvar PieView = function (_super) {\n __extends(PieView, _super);\n\n function PieView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.ignoreLabelLineUpdate = true;\n return _this;\n }\n\n PieView.prototype.init = function () {\n var sectorGroup = new graphic.Group();\n this._sectorGroup = sectorGroup;\n };\n\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var startAngle;\n\n if (!oldData && data.count() > 0) {\n var shape = data.getItemLayout(0);\n\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n shape = data.getItemLayout(s);\n }\n\n if (shape) {\n startAngle = shape.startAngle;\n }\n }\n\n data.diff(oldData).add(function (idx) {\n var piePiece = new PiePiece(data, idx, startAngle);\n data.setItemGraphicEl(idx, piePiece);\n group.add(piePiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n piePiece.updateData(data, newIdx, startAngle);\n piePiece.off('click');\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n }).execute();\n labelLayout(seriesModel);\n\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n this._data = data;\n }\n };\n\n PieView.prototype.dispose = function () {};\n\n PieView.prototype.containPoint = function (point, seriesModel) {\n var data = seriesModel.getData();\n var itemLayout = data.getItemLayout(0);\n\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n };\n\n PieView.type = 'pie';\n return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createDimensions from '../../data/helper/createDimensions';\nimport List from '../../data/List';\nimport { extend, isArray } from 'zrender/lib/core/util';\nexport default function createListSimply(seriesModel, opt, nameList) {\n opt = isArray(opt) && {\n coordDimensions: opt\n } || extend({}, opt);\n var source = seriesModel.getSource();\n var dimensionsInfo = createDimensions(source, opt);\n var list = new List(dimensionsInfo, seriesModel);\n list.initData(source, nameList);\n return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar LegendVisualProvider = function () {\n function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n this._getRawData = getRawData;\n }\n\n LegendVisualProvider.prototype.getAllNames = function () {\n var rawData = this._getRawData();\n\n return rawData.mapArray(rawData.getName);\n };\n\n LegendVisualProvider.prototype.containName = function (name) {\n var rawData = this._getRawData();\n\n return rawData.indexOfName(name) >= 0;\n };\n\n LegendVisualProvider.prototype.indexOfName = function (name) {\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n return dataWithEncodedVisual.indexOfName(name);\n };\n\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n };\n\n return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { getPercentWithPrecision } from '../../util/number';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar PieSeriesModel = function (_super) {\n __extends(PieSeriesModel, _super);\n\n function PieSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.useColorPaletteOnData = true;\n return _this;\n }\n\n PieSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments);\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n this._defaultLabelLine(option);\n };\n\n PieSeriesModel.prototype.mergeOption = function () {\n _super.prototype.mergeOption.apply(this, arguments);\n };\n\n PieSeriesModel.prototype.getInitialData = function () {\n return createListSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n };\n\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n var data = this.getData();\n\n var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n var valueList = [];\n data.each(data.mapDimension('value'), function (value) {\n valueList.push(value);\n });\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n params.$vars.push('percent');\n return params;\n };\n\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\n modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine;\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n };\n\n PieSeriesModel.type = 'series.pie';\n PieSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n center: ['50%', '50%'],\n radius: [0, '75%'],\n clockwise: true,\n startAngle: 90,\n minAngle: 0,\n minShowLabelAngle: 0,\n selectedOffset: 10,\n percentPrecision: 2,\n stillShowZeroSum: true,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n width: null,\n height: null,\n label: {\n rotate: 0,\n show: true,\n overflow: 'truncate',\n position: 'outer',\n alignTo: 'none',\n edgeDistance: '25%',\n bleedMargin: 10,\n distanceToLabelLine: 5\n },\n labelLine: {\n show: true,\n length: 15,\n length2: 15,\n smooth: false,\n minTurnAngle: 90,\n maxSurfaceAngle: 90,\n lineStyle: {\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n borderWidth: 1\n },\n labelLayout: {\n hideOverlap: true\n },\n emphasis: {\n scale: true,\n scaleSize: 5\n },\n avoidLabelOverlap: true,\n animationType: 'expansion',\n animationDuration: 1000,\n animationTypeUpdate: 'transition',\n animationEasingUpdate: 'cubicInOut',\n animationDurationUpdate: 500,\n animationEasing: 'cubicInOut'\n };\n return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nimport pieLayout from '../pie/pieLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport PieView from './PieView';\nimport PieSeriesModel from './PieSeries';\nexport function install(registers) {\n registers.registerChartView(PieView);\n registers.registerSeriesModel(PieSeriesModel);\n createLegacyDataSelectAction('pie', registers.registerAction);\n registers.registerLayout(curry(pieLayout, 'pie'));\n registers.registerProcessor(dataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar GridModel = function (_super) {\n __extends(GridModel, _super);\n\n function GridModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GridModel.type = 'grid';\n GridModel.dependencies = ['xAxis', 'yAxis'];\n GridModel.layoutMode = 'box';\n GridModel.defaultOption = {\n show: false,\n zlevel: 0,\n z: 0,\n left: '10%',\n top: 60,\n right: '10%',\n bottom: 70,\n containLabel: false,\n backgroundColor: 'rgba(0,0,0,0)',\n borderWidth: 1,\n borderColor: '#ccc'\n };\n return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar CartesianAxisModel = function (_super) {\n __extends(CartesianAxisModel, _super);\n\n function CartesianAxisModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CartesianAxisModel.prototype.getCoordSysModel = function () {\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n };\n\n CartesianAxisModel.type = 'cartesian2dAxis';\n return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar defaultOption = {\n show: true,\n zlevel: 0,\n z: 0,\n inverse: false,\n name: '',\n nameLocation: 'end',\n nameRotate: null,\n nameTruncate: {\n maxWidth: null,\n ellipsis: '...',\n placeholder: '.'\n },\n nameTextStyle: {},\n nameGap: 15,\n silent: false,\n triggerEvent: false,\n tooltip: {\n show: false\n },\n axisPointer: {},\n axisLine: {\n show: true,\n onZero: true,\n onZeroAxisIndex: null,\n lineStyle: {\n color: '#6E7079',\n width: 1,\n type: 'solid'\n },\n symbol: ['none', 'none'],\n symbolSize: [10, 15]\n },\n axisTick: {\n show: true,\n inside: false,\n length: 5,\n lineStyle: {\n width: 1\n }\n },\n axisLabel: {\n show: true,\n inside: false,\n rotate: 0,\n showMinLabel: null,\n showMaxLabel: null,\n margin: 8,\n fontSize: 12\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: ['#E0E6F1'],\n width: 1,\n type: 'solid'\n }\n },\n splitArea: {\n show: false,\n areaStyle: {\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n }\n }\n};\nvar categoryAxis = zrUtil.merge({\n boundaryGap: true,\n deduplication: null,\n splitLine: {\n show: false\n },\n axisTick: {\n alignWithLabel: false,\n interval: 'auto'\n },\n axisLabel: {\n interval: 'auto'\n }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n boundaryGap: [0, 0],\n axisLine: {\n show: 'auto'\n },\n axisTick: {\n show: 'auto'\n },\n splitNumber: 5,\n minorTick: {\n show: false,\n splitNumber: 5,\n length: 3,\n lineStyle: {}\n },\n minorSplitLine: {\n show: false,\n lineStyle: {\n color: '#F4F7FD',\n width: 1\n }\n }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n scale: true,\n splitNumber: 6,\n axisLabel: {\n showMinLabel: false,\n showMaxLabel: false,\n rich: {\n primary: {\n fontWeight: 'bold'\n }\n }\n },\n splitLine: {\n show: false\n }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n scale: true,\n logBase: 10\n}, valueAxis);\nexport default {\n category: categoryAxis,\n value: valueAxis,\n time: timeAxis,\n log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var AXIS_TYPES = {\n value: 1,\n category: 1,\n time: 1,\n log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport { AXIS_TYPES } from './axisCommonTypes';\nimport { each, merge } from 'zrender/lib/core/util';\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n each(AXIS_TYPES, function (v, axisType) {\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n var AxisModel = function (_super) {\n __extends(AxisModel, _super);\n\n function AxisModel() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var _this = _super.apply(this, args) || this;\n\n _this.type = axisName + 'Axis.' + axisType;\n return _this;\n }\n\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n var themeModel = ecModel.getTheme();\n merge(option, themeModel.get(axisType + 'Axis'));\n merge(option, this.getDefaultOption());\n option.type = getAxisType(option);\n\n if (layoutMode) {\n mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n\n AxisModel.prototype.optionUpdated = function () {\n var thisOption = this.option;\n\n if (thisOption.type === 'category') {\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n }\n };\n\n AxisModel.prototype.getCategories = function (rawData) {\n var option = this.option;\n\n if (option.type === 'category') {\n if (rawData) {\n return option.data;\n }\n\n return this.__ordinalMeta.categories;\n }\n };\n\n AxisModel.prototype.getOrdinalMeta = function () {\n return this.__ordinalMeta;\n };\n\n AxisModel.type = axisName + 'Axis.' + axisType;\n AxisModel.defaultOption = defaultOption;\n return AxisModel;\n }(BaseAxisModelClass);\n\n registers.registerComponentModel(AxisModel);\n });\n registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar Cartesian = function () {\n function Cartesian(name) {\n this.type = 'cartesian';\n this._dimList = [];\n this._axes = {};\n this.name = name || '';\n }\n\n Cartesian.prototype.getAxis = function (dim) {\n return this._axes[dim];\n };\n\n Cartesian.prototype.getAxes = function () {\n return zrUtil.map(this._dimList, function (dim) {\n return this._axes[dim];\n }, this);\n };\n\n Cartesian.prototype.getAxesByScale = function (scaleType) {\n scaleType = scaleType.toLowerCase();\n return zrUtil.filter(this.getAxes(), function (axis) {\n return axis.scale.type === scaleType;\n });\n };\n\n Cartesian.prototype.addAxis = function (axis) {\n var dim = axis.dim;\n this._axes[dim] = axis;\n\n this._dimList.push(dim);\n };\n\n return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Cartesian from './Cartesian';\nimport { invert } from 'zrender/lib/core/matrix';\nimport { applyTransform } from 'zrender/lib/core/vector';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D = function (_super) {\n __extends(Cartesian2D, _super);\n\n function Cartesian2D() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'cartesian2d';\n _this.dimensions = cartesian2DDimensions;\n return _this;\n }\n\n Cartesian2D.prototype.calcAffineTransform = function () {\n this._transform = this._invTransform = null;\n var xAxisScale = this.getAxis('x').scale;\n var yAxisScale = this.getAxis('y').scale;\n\n if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n return;\n }\n\n var xScaleExtent = xAxisScale.getExtent();\n var yScaleExtent = yAxisScale.getExtent();\n var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n if (!xScaleSpan || !yScaleSpan) {\n return;\n }\n\n var scaleX = (end[0] - start[0]) / xScaleSpan;\n var scaleY = (end[1] - start[1]) / yScaleSpan;\n var translateX = start[0] - xScaleExtent[0] * scaleX;\n var translateY = start[1] - yScaleExtent[0] * scaleY;\n var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n this._invTransform = invert([], m);\n };\n\n Cartesian2D.prototype.getBaseAxis = function () {\n return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n };\n\n Cartesian2D.prototype.containPoint = function (point) {\n var axisX = this.getAxis('x');\n var axisY = this.getAxis('y');\n return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n };\n\n Cartesian2D.prototype.containData = function (data) {\n return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n };\n\n Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\n out = out || [];\n var xVal = data[0];\n var yVal = data[1];\n\n if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n return applyTransform(out, data, this._transform);\n }\n\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\n return out;\n };\n\n Cartesian2D.prototype.clampData = function (data, out) {\n var xScale = this.getAxis('x').scale;\n var yScale = this.getAxis('y').scale;\n var xAxisExtent = xScale.getExtent();\n var yAxisExtent = yScale.getExtent();\n var x = xScale.parse(data[0]);\n var y = yScale.parse(data[1]);\n out = out || [];\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n return out;\n };\n\n Cartesian2D.prototype.pointToData = function (point, out) {\n out = out || [];\n\n if (this._invTransform) {\n return applyTransform(out, point, this._invTransform);\n }\n\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n return out;\n };\n\n Cartesian2D.prototype.getOtherAxis = function (axis) {\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n };\n\n Cartesian2D.prototype.getArea = function () {\n var xExtent = this.getAxis('x').getGlobalExtent();\n var yExtent = this.getAxis('y').getGlobalExtent();\n var x = Math.min(xExtent[0], xExtent[1]);\n var y = Math.min(yExtent[0], yExtent[1]);\n var width = Math.max(xExtent[0], xExtent[1]) - x;\n var height = Math.max(yExtent[0], yExtent[1]) - y;\n return new BoundingRect(x, y, width, height);\n };\n\n return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar Axis2D = function (_super) {\n __extends(Axis2D, _super);\n\n function Axis2D(dim, scale, coordExtent, axisType, position) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n _this.index = 0;\n _this.type = axisType || 'value';\n _this.position = position || 'bottom';\n return _this;\n }\n\n Axis2D.prototype.isHorizontal = function () {\n var position = this.position;\n return position === 'top' || position === 'bottom';\n };\n\n Axis2D.prototype.getGlobalExtent = function (asc) {\n var ret = this.getExtent();\n ret[0] = this.toGlobalCoord(ret[0]);\n ret[1] = this.toGlobalCoord(ret[1]);\n asc && ret[0] > ret[1] && ret.reverse();\n return ret;\n };\n\n Axis2D.prototype.pointToData = function (point, clamp) {\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n };\n\n Axis2D.prototype.setCategorySortInfo = function (info) {\n if (this.type !== 'category') {\n return false;\n }\n\n this.model.option.categorySortInfo = info;\n this.scale.setSortInfo(info);\n };\n\n return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../../util/model';\nexport function layout(gridModel, axisModel, opt) {\n opt = opt || {};\n var grid = gridModel.coordinateSystem;\n var axis = axisModel.axis;\n var layout = {};\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n var rawAxisPosition = axis.position;\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n var axisDim = axis.dim;\n var rect = grid.getRect();\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n var idx = {\n left: 0,\n right: 1,\n top: 0,\n bottom: 1,\n onZero: 2\n };\n var axisOffset = axisModel.get('offset') || 0;\n var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n if (otherAxisOnZeroOf) {\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n }\n\n layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n var dirMap = {\n top: -1,\n bottom: 1,\n left: -1,\n right: 1\n };\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n if (axisModel.get(['axisTick', 'inside'])) {\n layout.tickDirection = -layout.tickDirection;\n }\n\n if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n layout.labelDirection = -layout.labelDirection;\n }\n\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n layout.z2 = 1;\n return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n var axisModelMap = {\n xAxisModel: null,\n yAxisModel: null\n };\n zrUtil.each(axisModelMap, function (v, key) {\n var axisType = key.replace(/Model$/, '');\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!axisModel) {\n throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n }\n }\n\n axisModelMap[key] = axisModel;\n });\n return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isObject, each, indexOf, retrieve3 } from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D';\nimport Axis2D from './Axis2D';\nimport { SINGLE_REFERRING } from '../../util/model';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper';\n\nvar Grid = function () {\n function Grid(gridModel, ecModel, api) {\n this.type = 'grid';\n this._coordsMap = {};\n this._coordsList = [];\n this._axesMap = {};\n this._axesList = [];\n this.axisPointerEnabled = true;\n this.dimensions = cartesian2DDimensions;\n\n this._initCartesian(gridModel, ecModel, api);\n\n this.model = gridModel;\n }\n\n Grid.prototype.getRect = function () {\n return this._rect;\n };\n\n Grid.prototype.update = function (ecModel, api) {\n var axesMap = this._axesMap;\n\n this._updateScale(ecModel, this.model);\n\n each(axesMap.x, function (xAxis) {\n niceScaleExtent(xAxis.scale, xAxis.model);\n });\n each(axesMap.y, function (yAxis) {\n niceScaleExtent(yAxis.scale, yAxis.model);\n });\n var onZeroRecords = {};\n each(axesMap.x, function (xAxis) {\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n });\n each(axesMap.y, function (yAxis) {\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n });\n this.resize(this.model, api);\n };\n\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n var boxLayoutParams = gridModel.getBoxLayoutParams();\n var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n var gridRect = getLayoutRect(boxLayoutParams, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n this._rect = gridRect;\n var axesList = this._axesList;\n adjustAxes();\n\n if (isContainLabel) {\n each(axesList, function (axis) {\n if (!axis.model.get(['axisLabel', 'inside'])) {\n var labelUnionRect = estimateLabelUnionRect(axis);\n\n if (labelUnionRect) {\n var dim = axis.isHorizontal() ? 'height' : 'width';\n var margin = axis.model.get(['axisLabel', 'margin']);\n gridRect[dim] -= labelUnionRect[dim] + margin;\n\n if (axis.position === 'top') {\n gridRect.y += labelUnionRect.height + margin;\n } else if (axis.position === 'left') {\n gridRect.x += labelUnionRect.width + margin;\n }\n }\n }\n });\n adjustAxes();\n }\n\n each(this._coordsList, function (coord) {\n coord.calcAffineTransform();\n });\n\n function adjustAxes() {\n each(axesList, function (axis) {\n var isHorizontal = axis.isHorizontal();\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(extent[idx], extent[1 - idx]);\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n });\n }\n };\n\n Grid.prototype.getAxis = function (dim, axisIndex) {\n var axesMapOnDim = this._axesMap[dim];\n\n if (axesMapOnDim != null) {\n return axesMapOnDim[axisIndex || 0];\n }\n };\n\n Grid.prototype.getAxes = function () {\n return this._axesList.slice();\n };\n\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n if (xAxisIndex != null && yAxisIndex != null) {\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n return this._coordsMap[key];\n }\n\n if (isObject(xAxisIndex)) {\n yAxisIndex = xAxisIndex.yAxisIndex;\n xAxisIndex = xAxisIndex.xAxisIndex;\n }\n\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n return coordList[i];\n }\n }\n };\n\n Grid.prototype.getCartesians = function () {\n return this._coordsList.slice();\n };\n\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n var target = this._findConvertTarget(finder);\n\n return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n };\n\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n var target = this._findConvertTarget(finder);\n\n return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n };\n\n Grid.prototype._findConvertTarget = function (finder) {\n var seriesModel = finder.seriesModel;\n var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n var gridModel = finder.gridModel;\n var coordsList = this._coordsList;\n var cartesian;\n var axis;\n\n if (seriesModel) {\n cartesian = seriesModel.coordinateSystem;\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n } else if (xAxisModel && yAxisModel) {\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n } else if (xAxisModel) {\n axis = this.getAxis('x', xAxisModel.componentIndex);\n } else if (yAxisModel) {\n axis = this.getAxis('y', yAxisModel.componentIndex);\n } else if (gridModel) {\n var grid = gridModel.coordinateSystem;\n\n if (grid === this) {\n cartesian = this._coordsList[0];\n }\n }\n\n return {\n cartesian: cartesian,\n axis: axis\n };\n };\n\n Grid.prototype.containPoint = function (point) {\n var coord = this._coordsList[0];\n\n if (coord) {\n return coord.containPoint(point);\n }\n };\n\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n var _this = this;\n\n var grid = this;\n var axisPositionUsed = {\n left: false,\n right: false,\n top: false,\n bottom: false\n };\n var axesMap = {\n x: {},\n y: {}\n };\n var axesCount = {\n x: 0,\n y: 0\n };\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n if (!axesCount.x || !axesCount.y) {\n this._axesMap = {};\n this._axesList = [];\n return;\n }\n\n this._axesMap = axesMap;\n each(axesMap.x, function (xAxis, xAxisIndex) {\n each(axesMap.y, function (yAxis, yAxisIndex) {\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n var cartesian = new Cartesian2D(key);\n cartesian.master = _this;\n cartesian.model = gridModel;\n _this._coordsMap[key] = cartesian;\n\n _this._coordsList.push(cartesian);\n\n cartesian.addAxis(xAxis);\n cartesian.addAxis(yAxis);\n });\n });\n\n function createAxisCreator(dimName) {\n return function (axisModel, idx) {\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n return;\n }\n\n var axisPosition = axisModel.get('position');\n\n if (dimName === 'x') {\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n }\n } else {\n if (axisPosition !== 'left' && axisPosition !== 'right') {\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\n }\n }\n\n axisPositionUsed[axisPosition] = true;\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse');\n axisModel.axis = axis;\n axis.model = axisModel;\n axis.grid = grid;\n axis.index = idx;\n\n grid._axesList.push(axis);\n\n axesMap[dimName][idx] = axis;\n axesCount[dimName]++;\n };\n }\n };\n\n Grid.prototype._updateScale = function (ecModel, gridModel) {\n each(this._axesList, function (axis) {\n axis.scale.setExtent(Infinity, -Infinity);\n\n if (axis.type === 'category') {\n var categorySortInfo = axis.model.get('categorySortInfo');\n axis.scale.setSortInfo(categorySortInfo);\n }\n });\n ecModel.eachSeries(function (seriesModel) {\n if (isCartesian2DSeries(seriesModel)) {\n var axesModelMap = findAxisModels(seriesModel);\n var xAxisModel = axesModelMap.xAxisModel;\n var yAxisModel = axesModelMap.yAxisModel;\n\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n return;\n }\n\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n var data = seriesModel.getData();\n var xAxis = cartesian.getAxis('x');\n var yAxis = cartesian.getAxis('y');\n\n if (data.type === 'list') {\n unionExtent(data, xAxis);\n unionExtent(data, yAxis);\n }\n }\n }, this);\n\n function unionExtent(data, axis) {\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n axis.scale.unionExtentFromData(data, dim);\n });\n }\n };\n\n Grid.prototype.getTooltipAxes = function (dim) {\n var baseAxes = [];\n var otherAxes = [];\n each(this.getCartesians(), function (cartesian) {\n var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n var otherAxis = cartesian.getOtherAxis(baseAxis);\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n });\n return {\n baseAxes: baseAxes,\n otherAxes: otherAxes\n };\n };\n\n Grid.create = function (ecModel, api) {\n var grids = [];\n ecModel.eachComponent('grid', function (gridModel, idx) {\n var grid = new Grid(gridModel, ecModel, api);\n grid.name = 'grid_' + idx;\n grid.resize(gridModel, api, true);\n gridModel.coordinateSystem = grid;\n grids.push(grid);\n });\n ecModel.eachSeries(function (seriesModel) {\n if (!isCartesian2DSeries(seriesModel)) {\n return;\n }\n\n var axesModelMap = findAxisModels(seriesModel);\n var xAxisModel = axesModelMap.xAxisModel;\n var yAxisModel = axesModelMap.yAxisModel;\n var gridModel = xAxisModel.getCoordSysModel();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!gridModel) {\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n }\n\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n throw new Error('xAxis and yAxis must use the same grid');\n }\n }\n\n var grid = gridModel.coordinateSystem;\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n });\n return grids;\n };\n\n Grid.dimensions = cartesian2DDimensions;\n return Grid;\n}();\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\n axis.getAxesOnZeroOf = function () {\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n };\n\n var otherAxes = axesMap[otherAxisDim];\n var otherAxisOnZeroOf;\n var axisModel = axis.model;\n var onZero = axisModel.get(['axisLine', 'onZero']);\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n if (!onZero) {\n return;\n }\n\n if (onZeroAxisIndex != null) {\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n }\n } else {\n for (var idx in otherAxes) {\n if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n otherAxisOnZeroOf = otherAxes[idx];\n break;\n }\n }\n }\n\n if (otherAxisOnZeroOf) {\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n }\n\n function getOnZeroRecordKey(axis) {\n return axis.dim + '_' + axis.index;\n }\n}\n\nfunction canOnZeroToAxis(axis) {\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n var axisExtent = axis.getExtent();\n var axisExtentSum = axisExtent[0] + axisExtent[1];\n axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n return coord + coordBase;\n } : function (coord) {\n return axisExtentSum - coord + coordBase;\n };\n axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n return coord - coordBase;\n } : function (coord) {\n return axisExtentSum - coord + coordBase;\n };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieve, defaults, extend, each, isObject } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport { isRadianAroundZero, remRadian } from '../../util/number';\nimport { createSymbol } from '../../util/symbol';\nimport * as matrixUtil from 'zrender/lib/core/matrix';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector';\nimport { shouldShowAllLabels } from '../../coord/axisHelper';\nvar PI = Math.PI;\n\nvar AxisBuilder = function () {\n function AxisBuilder(axisModel, opt) {\n this.group = new graphic.Group();\n this.opt = opt;\n this.axisModel = axisModel;\n defaults(opt, {\n labelOffset: 0,\n nameDirection: 1,\n tickDirection: 1,\n labelDirection: 1,\n silent: true,\n handleAutoShown: function () {\n return true;\n }\n });\n var transformGroup = new graphic.Group({\n x: opt.position[0],\n y: opt.position[1],\n rotation: opt.rotation\n });\n transformGroup.updateTransform();\n this._transformGroup = transformGroup;\n }\n\n AxisBuilder.prototype.hasBuilder = function (name) {\n return !!builders[name];\n };\n\n AxisBuilder.prototype.add = function (name) {\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n };\n\n AxisBuilder.prototype.getGroup = function () {\n return this.group;\n };\n\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n var rotationDiff = remRadian(textRotation - axisRotation);\n var textAlign;\n var textVerticalAlign;\n\n if (isRadianAroundZero(rotationDiff)) {\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n textAlign = 'center';\n } else if (isRadianAroundZero(rotationDiff - PI)) {\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n textAlign = 'center';\n } else {\n textVerticalAlign = 'middle';\n\n if (rotationDiff > 0 && rotationDiff < PI) {\n textAlign = direction > 0 ? 'right' : 'left';\n } else {\n textAlign = direction > 0 ? 'left' : 'right';\n }\n }\n\n return {\n rotation: rotationDiff,\n textAlign: textAlign,\n textVerticalAlign: textVerticalAlign\n };\n };\n\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n var eventData = {\n componentType: axisModel.mainType,\n componentIndex: axisModel.componentIndex\n };\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n return eventData;\n };\n\n AxisBuilder.isLabelSilent = function (axisModel) {\n var tooltipOpt = axisModel.get('tooltip');\n return axisModel.get('silent') || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n };\n\n return AxisBuilder;\n}();\n\n;\nvar builders = {\n axisLine: function (opt, axisModel, group, transformGroup) {\n var shown = axisModel.get(['axisLine', 'show']);\n\n if (shown === 'auto' && opt.handleAutoShown) {\n shown = opt.handleAutoShown('axisLine');\n }\n\n if (!shown) {\n return;\n }\n\n var extent = axisModel.axis.getExtent();\n var matrix = transformGroup.transform;\n var pt1 = [extent[0], 0];\n var pt2 = [extent[1], 0];\n\n if (matrix) {\n v2ApplyTransform(pt1, pt1, matrix);\n v2ApplyTransform(pt2, pt2, matrix);\n }\n\n var lineStyle = extend({\n lineCap: 'round'\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n var line = new graphic.Line({\n subPixelOptimize: true,\n shape: {\n x1: pt1[0],\n y1: pt1[1],\n x2: pt2[0],\n y2: pt2[1]\n },\n style: lineStyle,\n strokeContainThreshold: opt.strokeContainThreshold || 5,\n silent: true,\n z2: 1\n });\n line.anid = 'line';\n group.add(line);\n var arrows = axisModel.get(['axisLine', 'symbol']);\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\n\n if (typeof arrowOffset === 'number') {\n arrowOffset = [arrowOffset, arrowOffset];\n }\n\n if (arrows != null) {\n if (typeof arrows === 'string') {\n arrows = [arrows, arrows];\n }\n\n if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n arrowSize = [arrowSize, arrowSize];\n }\n\n var symbolWidth_1 = arrowSize[0];\n var symbolHeight_1 = arrowSize[1];\n each([{\n rotate: opt.rotation + Math.PI / 2,\n offset: arrowOffset[0],\n r: 0\n }, {\n rotate: opt.rotation - Math.PI / 2,\n offset: arrowOffset[1],\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n }], function (point, index) {\n if (arrows[index] !== 'none' && arrows[index] != null) {\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n var r = point.r + point.offset;\n symbol.attr({\n rotation: point.rotate,\n x: pt1[0] + r * Math.cos(opt.rotation),\n y: pt1[1] - r * Math.sin(opt.rotation),\n silent: true,\n z2: 11\n });\n group.add(symbol);\n }\n });\n }\n },\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n },\n axisName: function (opt, axisModel, group, transformGroup) {\n var name = retrieve(opt.axisName, axisModel.get('name'));\n\n if (!name) {\n return;\n }\n\n var nameLocation = axisModel.get('nameLocation');\n var nameDirection = opt.nameDirection;\n var textStyleModel = axisModel.getModel('nameTextStyle');\n var gap = axisModel.get('nameGap') || 0;\n var extent = axisModel.axis.getExtent();\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\n var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n var labelLayout;\n var nameRotation = axisModel.get('nameRotate');\n\n if (nameRotation != null) {\n nameRotation = nameRotation * PI / 180;\n }\n\n var axisNameAvailableWidth;\n\n if (isNameLocationCenter(nameLocation)) {\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\n } else {\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n if (axisNameAvailableWidth != null) {\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n }\n }\n\n var textFont = textStyleModel.getFont();\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\n var ellipsis = truncateOpt.ellipsis;\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n var tooltipOpt = axisModel.get('tooltip', true);\n var mainType = axisModel.mainType;\n var formatterParams = {\n componentType: mainType,\n name: name,\n $vars: ['name']\n };\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n var textEl = new graphic.Text({\n x: pos[0],\n y: pos[1],\n rotation: labelLayout.rotation,\n silent: AxisBuilder.isLabelSilent(axisModel),\n style: createTextStyle(textStyleModel, {\n text: name,\n font: textFont,\n overflow: 'truncate',\n width: maxWidth,\n ellipsis: ellipsis,\n fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n align: textStyleModel.get('align') || labelLayout.textAlign,\n verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n }),\n z2: 1\n });\n textEl.tooltip = tooltipOpt && tooltipOpt.show ? extend({\n content: name,\n formatter: function () {\n return name;\n },\n formatterParams: formatterParams\n }, tooltipOpt) : null;\n textEl.__fullText = name;\n textEl.anid = 'name';\n\n if (axisModel.get('triggerEvent')) {\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n eventData.targetType = 'axisName';\n eventData.name = name;\n getECData(textEl).eventData = eventData;\n }\n\n transformGroup.add(textEl);\n textEl.updateTransform();\n group.add(textEl);\n textEl.decomposeTransform();\n }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n var rotationDiff = remRadian(textRotate - rotation);\n var textAlign;\n var textVerticalAlign;\n var inverse = extent[0] > extent[1];\n var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n if (isRadianAroundZero(rotationDiff - PI / 2)) {\n textVerticalAlign = onLeft ? 'bottom' : 'top';\n textAlign = 'center';\n } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n textVerticalAlign = onLeft ? 'top' : 'bottom';\n textAlign = 'center';\n } else {\n textVerticalAlign = 'middle';\n\n if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n textAlign = onLeft ? 'left' : 'right';\n } else {\n textAlign = onLeft ? 'right' : 'left';\n }\n }\n\n return {\n rotation: rotationDiff,\n textAlign: textAlign,\n textVerticalAlign: textVerticalAlign\n };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n if (shouldShowAllLabels(axisModel.axis)) {\n return;\n }\n\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n labelEls = labelEls || [];\n tickEls = tickEls || [];\n var firstLabel = labelEls[0];\n var nextLabel = labelEls[1];\n var lastLabel = labelEls[labelEls.length - 1];\n var prevLabel = labelEls[labelEls.length - 2];\n var firstTick = tickEls[0];\n var nextTick = tickEls[1];\n var lastTick = tickEls[tickEls.length - 1];\n var prevTick = tickEls[tickEls.length - 2];\n\n if (showMinLabel === false) {\n ignoreEl(firstLabel);\n ignoreEl(firstTick);\n } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n if (showMinLabel) {\n ignoreEl(nextLabel);\n ignoreEl(nextTick);\n } else {\n ignoreEl(firstLabel);\n ignoreEl(firstTick);\n }\n }\n\n if (showMaxLabel === false) {\n ignoreEl(lastLabel);\n ignoreEl(lastTick);\n } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n if (showMaxLabel) {\n ignoreEl(prevLabel);\n ignoreEl(prevTick);\n } else {\n ignoreEl(lastLabel);\n ignoreEl(lastTick);\n }\n }\n}\n\nfunction ignoreEl(el) {\n el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n var firstRect = current && current.getBoundingRect().clone();\n var nextRect = next && next.getBoundingRect().clone();\n\n if (!firstRect || !nextRect) {\n return;\n }\n\n var mRotationBack = matrixUtil.identity([]);\n matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n var tickEls = [];\n var pt1 = [];\n var pt2 = [];\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = ticksCoords[i].coord;\n pt1[0] = tickCoord;\n pt1[1] = 0;\n pt2[0] = tickCoord;\n pt2[1] = tickEndCoord;\n\n if (tickTransform) {\n v2ApplyTransform(pt1, pt1, tickTransform);\n v2ApplyTransform(pt2, pt2, tickTransform);\n }\n\n var tickEl = new graphic.Line({\n subPixelOptimize: true,\n shape: {\n x1: pt1[0],\n y1: pt1[1],\n x2: pt2[0],\n y2: pt2[1]\n },\n style: tickLineStyle,\n z2: 2,\n autoBatch: true,\n silent: true\n });\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n tickEls.push(tickEl);\n }\n\n return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n var axis = axisModel.axis;\n var tickModel = axisModel.getModel('axisTick');\n var shown = tickModel.get('show');\n\n if (shown === 'auto' && opt.handleAutoShown) {\n shown = opt.handleAutoShown('axisTick');\n }\n\n if (!shown || axis.scale.isBlank()) {\n return;\n }\n\n var lineStyleModel = tickModel.getModel('lineStyle');\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\n var ticksCoords = axis.getTicksCoords();\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n }), 'ticks');\n\n for (var i = 0; i < ticksEls.length; i++) {\n group.add(ticksEls[i]);\n }\n\n return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n var axis = axisModel.axis;\n var minorTickModel = axisModel.getModel('minorTick');\n\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n return;\n }\n\n var minorTicksCoords = axis.getMinorTicksCoords();\n\n if (!minorTicksCoords.length) {\n return;\n }\n\n var lineStyleModel = minorTickModel.getModel('lineStyle');\n var tickEndCoord = tickDirection * minorTickModel.get('length');\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n }));\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n for (var k = 0; k < minorTicksEls.length; k++) {\n group.add(minorTicksEls[k]);\n }\n }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n var axis = axisModel.axis;\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n if (!show || axis.scale.isBlank()) {\n return;\n }\n\n var labelModel = axisModel.getModel('axisLabel');\n var labelMargin = labelModel.get('margin');\n var labels = axis.getViewLabels();\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n var labelEls = [];\n var silent = AxisBuilder.isLabelSilent(axisModel);\n var triggerEvent = axisModel.get('triggerEvent');\n each(labels, function (labelItem, index) {\n var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n var formattedLabel = labelItem.formattedLabel;\n var rawLabel = labelItem.rawLabel;\n var itemLabelModel = labelModel;\n\n if (rawCategoryData && rawCategoryData[tickValue]) {\n var rawCategoryItem = rawCategoryData[tickValue];\n\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n }\n }\n\n var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n var tickCoord = axis.dataToCoord(tickValue);\n var textEl = new graphic.Text({\n x: tickCoord,\n y: opt.labelOffset + opt.labelDirection * labelMargin,\n rotation: labelLayout.rotation,\n silent: silent,\n z2: 10,\n style: createTextStyle(itemLabelModel, {\n text: formattedLabel,\n align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n fill: typeof textColor === 'function' ? textColor(axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n })\n });\n textEl.anid = 'label_' + tickValue;\n\n if (triggerEvent) {\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n eventData.targetType = 'axisLabel';\n eventData.value = rawLabel;\n getECData(textEl).eventData = eventData;\n }\n\n transformGroup.add(textEl);\n textEl.updateTransform();\n labelEls.push(textEl);\n group.add(textEl);\n textEl.decomposeTransform();\n });\n return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../../model/Model';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util';\nexport function collect(ecModel, api) {\n var result = {\n axesInfo: {},\n seriesInvolved: false,\n coordSysAxesInfo: {},\n coordSysMap: {}\n };\n collectAxesInfo(result, ecModel, api);\n result.seriesInvolved && collectSeriesInfo(result, ecModel);\n return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n var globalTooltipModel = ecModel.getComponent('tooltip');\n var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n var linksOption = globalAxisPointerModel.get('link', true) || [];\n var linkGroups = [];\n each(api.getCoordinateSystems(), function (coordSys) {\n if (!coordSys.axisPointerEnabled) {\n return;\n }\n\n var coordSysKey = makeKey(coordSys.model);\n var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n result.coordSysMap[coordSysKey] = coordSys;\n var coordSysModel = coordSys.model;\n var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n\n if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get('show')) {\n var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n if (triggerAxis || cross) {\n each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n }\n\n if (cross) {\n each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n }\n }\n\n function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n var axisPointerShow = axisPointerModel.get('show');\n\n if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n return;\n }\n\n if (triggerTooltip == null) {\n triggerTooltip = axisPointerModel.get('triggerTooltip');\n }\n\n axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n var snap = axisPointerModel.get('snap');\n var axisKey = makeKey(axis.model);\n var involveSeries = triggerTooltip || snap || axis.type === 'category';\n var axisInfo = result.axesInfo[axisKey] = {\n key: axisKey,\n axis: axis,\n coordSys: coordSys,\n axisPointerModel: axisPointerModel,\n triggerTooltip: triggerTooltip,\n involveSeries: involveSeries,\n snap: snap,\n useHandle: isHandleTrigger(axisPointerModel),\n seriesModels: [],\n linkGroup: null\n };\n axesInfoInCoordSys[axisKey] = axisInfo;\n result.seriesInvolved = result.seriesInvolved || involveSeries;\n var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n if (groupIndex != null) {\n var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n axesInfo: {}\n });\n linkGroup.axesInfo[axisKey] = axisInfo;\n linkGroup.mapper = linksOption[groupIndex].mapper;\n axisInfo.linkGroup = linkGroup;\n }\n }\n });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n var volatileOption = {};\n each(fields, function (field) {\n volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n });\n volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n\n if (tooltipAxisPointerModel.get('type') === 'cross') {\n volatileOption.type = 'line';\n }\n\n var labelOption = volatileOption.label || (volatileOption.label = {});\n labelOption.show == null && (labelOption.show = false);\n\n if (fromTooltip === 'cross') {\n var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n\n if (!triggerTooltip) {\n var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n crossStyle && defaults(labelOption, crossStyle.textStyle);\n }\n }\n\n return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n ecModel.eachSeries(function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n return;\n }\n\n each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n var axis = axisInfo.axis;\n\n if (coordSys.getAxis(axis.dim) === axis) {\n axisInfo.seriesModels.push(seriesModel);\n axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n axisInfo.seriesDataCount += seriesModel.getData().count();\n }\n });\n });\n}\n\nfunction getLinkGroupIndex(linksOption, axis) {\n var axisModel = axis.model;\n var dim = axis.dim;\n\n for (var i = 0; i < linksOption.length; i++) {\n var linkOption = linksOption[i] || {};\n\n if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n return i;\n }\n }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n var axisInfo = getAxisInfo(axisModel);\n\n if (!axisInfo) {\n return;\n }\n\n var axisPointerModel = axisInfo.axisPointerModel;\n var scale = axisInfo.axis.scale;\n var option = axisPointerModel.option;\n var status = axisPointerModel.get('status');\n var value = axisPointerModel.get('value');\n\n if (value != null) {\n value = scale.parse(value);\n }\n\n var useHandle = isHandleTrigger(axisPointerModel);\n\n if (status == null) {\n option.status = useHandle ? 'show' : 'hide';\n }\n\n var extent = scale.getExtent().slice();\n extent[0] > extent[1] && extent.reverse();\n\n if (value == null || value > extent[1]) {\n value = extent[1];\n }\n\n if (value < extent[0]) {\n value = extent[0];\n }\n\n option.value = value;\n\n if (useHandle) {\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n }\n}\nexport function getAxisInfo(axisModel) {\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n var axisInfo = getAxisInfo(axisModel);\n return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n return !!axisPointerModel.get(['handle', 'show']);\n}\n\nexport function makeKey(model) {\n return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper';\nimport ComponentView from '../../view/Component';\nvar axisPointerClazz = {};\n\nvar AxisView = function (_super) {\n __extends(AxisView, _super);\n\n function AxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AxisView.type;\n return _this;\n }\n\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n _super.prototype.render.apply(this, arguments);\n\n this._doUpdateAxisPointerClass(axisModel, api, true);\n };\n\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n this._doUpdateAxisPointerClass(axisModel, api, false);\n };\n\n AxisView.prototype.remove = function (ecModel, api) {\n var axisPointer = this._axisPointer;\n axisPointer && axisPointer.remove(api);\n };\n\n AxisView.prototype.dispose = function (ecModel, api) {\n this._disposeAxisPointer(api);\n\n _super.prototype.dispose.apply(this, arguments);\n };\n\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n if (!Clazz) {\n return;\n }\n\n var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n };\n\n AxisView.prototype._disposeAxisPointer = function (api) {\n this._axisPointer && this._axisPointer.dispose(api);\n this._axisPointer = null;\n };\n\n AxisView.registerAxisPointerClass = function (type, clazz) {\n if (process.env.NODE_ENV !== 'production') {\n if (axisPointerClazz[type]) {\n throw new Error('axisPointer ' + type + ' exists');\n }\n }\n\n axisPointerClazz[type] = clazz;\n };\n\n ;\n\n AxisView.getAxisPointerClass = function (type) {\n return type && axisPointerClazz[type];\n };\n\n ;\n AxisView.type = 'axis';\n return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitAreaModel = axisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var gridRect = gridModel.coordinateSystem.getRect();\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitAreaModel,\n clamp: true\n });\n\n if (!ticksCoords.length) {\n return;\n }\n\n var areaColorsLen = areaColors.length;\n var lastSplitAreaColors = inner(axisView).splitAreaColors;\n var newSplitAreaColors = zrUtil.createHashMap();\n var colorIndex = 0;\n\n if (lastSplitAreaColors) {\n for (var i = 0; i < ticksCoords.length; i++) {\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n if (cIndex != null) {\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n break;\n }\n }\n }\n\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n var areaStyle = areaStyleModel.getAreaStyle();\n areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n var x = void 0;\n var y = void 0;\n var width = void 0;\n var height = void 0;\n\n if (axis.isHorizontal()) {\n x = prev;\n y = gridRect.y;\n width = tickCoord - x;\n height = gridRect.height;\n prev = x + width;\n } else {\n x = gridRect.x;\n y = prev;\n width = gridRect.width;\n height = tickCoord - y;\n prev = y + height;\n }\n\n var tickValue = ticksCoords[i - 1].tickValue;\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n axisGroup.add(new graphic.Rect({\n anid: tickValue != null ? 'area_' + tickValue : null,\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n style: zrUtil.defaults({\n fill: areaColors[colorIndex]\n }, areaStyle),\n autoBatch: true,\n silent: true\n }));\n colorIndex = (colorIndex + 1) % areaColorsLen;\n }\n\n inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView = function (_super) {\n __extends(CartesianAxisView, _super);\n\n function CartesianAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianAxisView.type;\n _this.axisPointerClass = 'CartesianAxisPointer';\n return _this;\n }\n\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var gridModel = axisModel.getCoordSysModel();\n var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n handleAutoShown: function (elementType) {\n var cartesians = gridModel.coordinateSystem.getCartesians();\n\n for (var i = 0; i < cartesians.length; i++) {\n var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\n\n if (otherAxisType === 'value' || otherAxisType === 'log') {\n return true;\n }\n }\n\n return false;\n }\n }, layout));\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get([name, 'show'])) {\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n }\n }, this);\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n };\n\n CartesianAxisView.prototype.remove = function () {\n rectCoordAxisHandleRemove(this);\n };\n\n CartesianAxisView.type = 'cartesianAxis';\n return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var colorIndex = lineCount++ % lineColors.length;\n var tickValue = ticksCoords[i].tickValue;\n axisGroup.add(new graphic.Line({\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n subPixelOptimize: true,\n autoBatch: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: zrUtil.defaults({\n stroke: lineColors[colorIndex]\n }, lineStyle),\n silent: true\n }));\n }\n },\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var minorTicksCoords = axis.getMinorTicksCoords();\n\n if (!minorTicksCoords.length) {\n return;\n }\n\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n axisGroup.add(new graphic.Line({\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n subPixelOptimize: true,\n autoBatch: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: lineStyle,\n silent: true\n }));\n }\n }\n },\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n }\n};\n\nvar CartesianXAxisView = function (_super) {\n __extends(CartesianXAxisView, _super);\n\n function CartesianXAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianXAxisView.type;\n return _this;\n }\n\n CartesianXAxisView.type = 'xAxis';\n return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView = function (_super) {\n __extends(CartesianYAxisView, _super);\n\n function CartesianYAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianXAxisView.type;\n return _this;\n }\n\n CartesianYAxisView.type = 'yAxis';\n return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport GridModel from '../../coord/cartesian/GridModel';\nimport { Rect } from '../../util/graphic';\nimport { defaults } from 'zrender/lib/core/util';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport Grid from '../../coord/cartesian/Grid';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView';\n\nvar GridView = function (_super) {\n __extends(GridView, _super);\n\n function GridView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'grid';\n return _this;\n }\n\n GridView.prototype.render = function (gridModel, ecModel) {\n this.group.removeAll();\n\n if (gridModel.get('show')) {\n this.group.add(new Rect({\n shape: gridModel.coordinateSystem.getRect(),\n style: defaults({\n fill: gridModel.get('backgroundColor')\n }, gridModel.getItemStyle()),\n silent: true,\n z2: -1\n }));\n }\n };\n\n GridView.type = 'grid';\n return GridView;\n}(ComponentView);\n\nvar extraOption = {\n offset: 0\n};\nexport function install(registers) {\n registers.registerComponentView(GridView);\n registers.registerComponentModel(GridModel);\n registers.registerCoordinateSystem('cartesian2d', Grid);\n axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n registers.registerComponentView(CartesianXAxisView);\n registers.registerComponentView(CartesianYAxisView);\n registers.registerPreprocessor(function (option) {\n if (option.xAxis && option.yAxis && !option.grid) {\n option.grid = {};\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../data/helper/dataProvider';\nimport { makeInner } from '../util/model';\nimport { getDecalFromPalette } from '../model/mixin/palette';\nvar DEFAULT_OPTION = {\n label: {\n enabled: true\n },\n decal: {\n show: false\n }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n var ariaModel = ecModel.getModel('aria');\n\n if (!ariaModel.get('enabled')) {\n return;\n }\n\n var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n zrUtil.merge(ariaModel.option, defaultOption, false);\n setDecal();\n setLabel();\n\n function setDecal() {\n var decalModel = ariaModel.getModel('decal');\n var useDecal = decalModel.get('show');\n\n if (useDecal) {\n var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n if (!seriesModel.useColorPaletteOnData) {\n return;\n }\n\n var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n if (!decalScope) {\n decalScope = {};\n paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n }\n\n inner(seriesModel).scope = decalScope;\n });\n ecModel.eachRawSeries(function (seriesModel) {\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n if (typeof seriesModel.enableAriaDecal === 'function') {\n seriesModel.enableAriaDecal();\n return;\n }\n\n var data = seriesModel.getData();\n\n if (seriesModel.useColorPaletteOnData) {\n var dataAll_1 = seriesModel.getRawData();\n var idxMap_1 = {};\n var decalScope_1 = inner(seriesModel).scope;\n data.each(function (idx) {\n var rawIdx = data.getRawIndex(idx);\n idxMap_1[rawIdx] = idx;\n });\n var dataCount_1 = dataAll_1.count();\n dataAll_1.each(function (rawIdx) {\n var idx = idxMap_1[rawIdx];\n var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n var specifiedDecal = data.getItemVisual(idx, 'decal');\n data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n });\n } else {\n var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n var specifiedDecal = data.getVisual('decal');\n data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n }\n\n function mergeDecal(specifiedDecal, paletteDecal) {\n var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n resultDecal.dirty = true;\n return resultDecal;\n }\n });\n }\n }\n\n function setLabel() {\n var labelLocale = ecModel.getLocaleModel().get('aria');\n var labelModel = ariaModel.getModel('label');\n labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n if (!labelModel.get('enabled')) {\n return;\n }\n\n var dom = api.getZr().dom;\n\n if (labelModel.get('description')) {\n dom.setAttribute('aria-label', labelModel.get('description'));\n return;\n }\n\n var seriesCnt = ecModel.getSeriesCount();\n var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n var ariaLabel;\n\n if (seriesCnt < 1) {\n return;\n } else {\n var title = getTitle();\n\n if (title) {\n var withTitle = labelModel.get(['general', 'withTitle']);\n ariaLabel = replace(withTitle, {\n title: title\n });\n } else {\n ariaLabel = labelModel.get(['general', 'withoutTitle']);\n }\n\n var seriesLabels_1 = [];\n var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n ariaLabel += replace(prefix, {\n seriesCount: seriesCnt\n });\n ecModel.eachSeries(function (seriesModel, idx) {\n if (idx < displaySeriesCnt) {\n var seriesLabel = void 0;\n var seriesName = seriesModel.get('name');\n var withName = seriesName ? 'withName' : 'withoutName';\n seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n seriesLabel = replace(seriesLabel, {\n seriesId: seriesModel.seriesIndex,\n seriesName: seriesModel.get('name'),\n seriesType: getSeriesTypeName(seriesModel.subType)\n });\n var data = seriesModel.getData();\n\n if (data.count() > maxDataCnt) {\n var partialLabel = labelModel.get(['data', 'partialData']);\n seriesLabel += replace(partialLabel, {\n displayCnt: maxDataCnt\n });\n } else {\n seriesLabel += labelModel.get(['data', 'allData']);\n }\n\n var dataLabels = [];\n\n for (var i = 0; i < data.count(); i++) {\n if (i < maxDataCnt) {\n var name_1 = data.getName(i);\n var value = retrieveRawValue(data, i);\n var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n dataLabels.push(replace(dataLabel, {\n name: name_1,\n value: value\n }));\n }\n }\n\n var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n seriesLabels_1.push(seriesLabel);\n }\n });\n var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n var middleSeparator = separatorModel.get('middle');\n var endSeparator = separatorModel.get('end');\n ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n dom.setAttribute('aria-label', ariaLabel);\n }\n }\n\n function replace(str, keyValues) {\n if (typeof str !== 'string') {\n return str;\n }\n\n var result = str;\n zrUtil.each(keyValues, function (value, key) {\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n });\n return result;\n }\n\n function getTitle() {\n var title = ecModel.get('title');\n\n if (title && title.length) {\n title = title[0];\n }\n\n return title && title.text;\n }\n\n function getSeriesTypeName(type) {\n return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function ariaPreprocessor(option) {\n if (!option || !option.aria) {\n return;\n }\n\n var aria = option.aria;\n\n if (aria.show != null) {\n aria.enabled = aria.show;\n }\n\n aria.label = aria.label || {};\n zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n if (aria[name] != null) {\n aria.label[name] = aria[name];\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ariaVisual from '../../visual/aria';\nimport ariaPreprocessor from './preprocessor';\nexport function install(registers) {\n registers.registerPreprocessor(ariaPreprocessor);\n registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager';\n\nvar DatasetModel = function (_super) {\n __extends(DatasetModel, _super);\n\n function DatasetModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'dataset';\n return _this;\n }\n\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n _super.prototype.init.call(this, option, parentModel, ecModel);\n\n this._sourceManager = new SourceManager(this);\n disableTransformOptionMerge(this);\n };\n\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n disableTransformOptionMerge(this);\n };\n\n DatasetModel.prototype.optionUpdated = function () {\n this._sourceManager.dirty();\n };\n\n DatasetModel.prototype.getSourceManager = function () {\n return this._sourceManager;\n };\n\n DatasetModel.type = 'dataset';\n DatasetModel.defaultOption = {\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n };\n return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView = function (_super) {\n __extends(DatasetView, _super);\n\n function DatasetView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'dataset';\n return _this;\n }\n\n DatasetView.type = 'dataset';\n return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n registers.registerComponentModel(DatasetModel);\n registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from './lib/extension';\nexport * from './lib/export/core';\nimport { install as CanvasRenderer } from './lib/renderer/installCanvasRenderer';\nimport { install as LineChart } from './lib/chart/line/install';\nimport { install as BarChart } from './lib/chart/bar/install';\nimport { install as PieChart } from './lib/chart/pie/install';\nimport { install as GridSimpleComponent } from './lib/component/grid/installSimple';\nimport { install as AriaComponent } from './lib/component/aria/install';\nimport { install as DatasetComponent } from './lib/component/dataset/install';\nuse([CanvasRenderer]);\nuse([LineChart, BarChart, PieChart]);\nuse([GridSimpleComponent, AriaComponent, DatasetComponent]);"],"names":["clone","eventUtil.clientToLocal","dist","eventTool.stop","util.each","vec2.dist","create","copy","mul","scale","matrix.identity","matrix.create","matrix.mul","matrix.copy","matrix.invert","vector.applyTransform","matrix.rotate","easing","easingFuncs","lerp","color.parse","matrix.translate","matrix.scale","methods","timsort","util.indexOf","requestAnimationFrame","zrUtil.map","zrUtil.noop","zrUtil.each","zrUtil.indexOf","zrUtil.keys","HandlerProxy","zrUtil.guid","parsePercent","zrUtil.reduce","zrUtil.assert","zrUtil.createObject","zrUtil.extend","zrUtil.inherits","imageHelper.findExistImage","imageHelper.isImageReady","PRIMARY_STATES_KEYS","EPSILON","v2Create","isNotAroundZero","v2DistSquare","mathMin","mathMax","vec2.create","cubicExtrema","curve.cubicExtrema","cubicAt","curve.cubicAt","quadraticExtremum","curve.quadraticExtremum","quadraticAt","curve.quadraticAt","min","max","vec2.min","vec2.max","mathCos","mathSin","mathSqrt","PI2","dpr","containStroke","curve.cubicProjectPoint","CMD","curve.cubicRootAt","curve.quadraticRootAt","line.containStroke","cubic.containStroke","quadratic.containStroke","arc.containStroke","pathContain.containStroke","pathContain.contain","round","roundRectHelper.buildPath","color","colorTool.lift","v2ApplyTransform","PI","mathAbs","buildPath","roundSectorHelper.buildPath","distance","v2Distance","v2Min","v2Max","v2Clone","v2Sub","v2Scale","v2Add","polyHelper.buildPath","subPixelOptimizeOutputShape","vec2.normalize","minTv","maxTv","Displayble","pathTool.extendFromString","pathTool.createFromString","mergePath","pathTool.mergePath","zrUtil.merge","numberUtil.parseDate","defaults","zrUtil.defaults","zrUtil.isArray","Text","zrUtil.isString","normalizeCssArray","zrUtil.normalizeCssArray","zrUtil.isObject","each","zrUtil.curry","formatUtil.normalizeCssArray","componentUtil.getUID","layout.fetchLayoutMode","layout.getLayoutParams","layout.mergeLayoutParam","componentUtil.enableSubTypeDefaulter","componentUtil.enableTopologicalTravel","modelUtil.normalizeToArray","modelUtil.mappingToExists","modelUtil.setComponentTypeToKeyInfo","modelUtil.isComponentIdInternal","modelUtil.convertOptionIdName","zrUtil.bind","isObject","modelUtil.TEXT_STYLE_OPTIONS","zrUtil.isTypedArray","set","compatStyle","inner","modelUtil.makeInner","modelUtil.defaultEmphasis","zrUtil.mixin","modelUtil.isNameSpecified","clazzUtil.enableClassExtend","clazzUtil.enableClassManagement","modelUtil.queryDataIndex","graphic.Group","graphic.Rect","graphic.Text","graphic.Arc","vector.dist","vector.lerp","graphic.Path","graphic.Circle","graphic.makeImage","graphic.makePath","assert","isFunction","zrUtil.isFunction","indexOf","version","zrender.init","zrUtil.clone","backwardCompat","zrUtil.setAsPrimitive","instances","zrUtil.createCanvas","graphic.Image","modelUtil.parseFinder","modelUtil.setAttribute","zrUtil.createHashMap","colorTool.parse","colorTool.stringify","graphic.isElementRemoved","init","zrUtil.isDom","dispose","modelUtil.getAttribute","zrUtil.$override","decal","loadingDefault","darkTheme","map","zrUtil.isArrayLike","zrUtil.slice","CoordinateSystem","numberUtil.round","numberUtil.nice","numberUtil.getPrecisionSafe","contain","normalize","scaleHelper.contain","scaleHelper.normalize","scaleHelper.scale","roundNumber","helper.contain","helper.normalize","helper.scale","helper.getIntervalPrecision","formatUtil.addCommas","helper.intervalScaleNiceTicks","getPrecisionSafe","mathFloor","mathPow","numberUtil.quantity","dataStack","axisHelper.createScaleByModel","axisHelper.niceScaleExtent","createTextStyle","innerCreateTextStyle","isAroundEqual","bbox.fromPoints","polygonContain.contain","vec2.applyTransform","zrUtil.filter","textContain.getBoundingRect","util.createCanvas","util.isObject","util.isGradientObject","util.isPatternObject","util.extend","util.merge","util.logError","graphic.updateProps","graphic.initProps","graphic.removeElement","SymbolClz","graphic.Sector","graphic.LinearGradient","isPointNull","modelUtil.interpolateRawValues","install","LineSeries","layoutPoints","Sausage","BarSeries","layout.getLayoutRect","RADIAN","graphic.Polyline","graphic.removeElementWithFadeOut","labelLayout","layout","zrUtil.retrieve","zrUtil.retrieve3","graphic.Line","matrixUtil.identity","matrixUtil.rotate","matrixUtil.mul","axisPointerModelHelper.fixValue","axisPointerModelHelper.getAxisPointerModel","cartesianAxisHelper.layout","graphic.groupTransition","CanvasRenderer","LineChart","BarChart","PieChart","GridSimpleComponent","AriaComponent","DatasetComponent"],"mappings":"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"}