qauMaWeb/node_modules/.cache/babel-loader/6c69d7374100e9d4c8b5d06a26e...

1 line
255 KiB
JSON

{"ast":null,"code":"import \"core-js/modules/es.error.cause.js\";\nimport \"core-js/modules/es.string.sub.js\";\nimport \"core-js/modules/es.array.splice.js\";\nimport \"core-js/modules/es.array.concat.js\";\nimport \"core-js/modules/es.function.name.js\";\nimport \"core-js/modules/es.regexp.exec.js\";\nimport \"core-js/modules/es.string.split.js\";\nimport \"core-js/modules/es.object.to-string.js\";\nimport \"core-js/modules/web.dom-collections.iterator.js\";\nimport \"core-js/modules/es.regexp.test.js\";\nimport \"core-js/modules/es.array.slice.js\";\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\nimport { __extends } from \"tslib\";\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n\nimport * as zrender from 'zrender/lib/zrender.js';\nimport { assert, each, isFunction, isObject, indexOf, bind, clone, setAsPrimitive, extend, createHashMap, map, defaults, isDom, isArray, noop, isString } from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport timsort from 'zrender/lib/core/timsort.js';\nimport Eventful from 'zrender/lib/core/Eventful.js';\nimport GlobalModel from '../model/Global.js';\nimport ExtensionAPI from './ExtensionAPI.js';\nimport CoordinateSystemManager from './CoordinateSystem.js';\nimport OptionManager from '../model/OptionManager.js';\nimport backwardCompat from '../preprocessor/backwardCompat.js';\nimport dataStack from '../processor/dataStack.js';\nimport SeriesModel from '../model/Series.js';\nimport ComponentView from '../view/Component.js';\nimport ChartView from '../view/Chart.js';\nimport * as graphic from '../util/graphic.js';\nimport { getECData } from '../util/innerStore.js';\nimport { isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, blurSeriesFromHighlightPayload, 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, allLeaveBlur, findComponentHighDownDispatchers, blurComponent, handleGlobalMouseOverForHighDown, handleGlobalMouseOutForHighDown } from '../util/states.js';\nimport * as modelUtil from '../util/model.js';\nimport { throttle } from '../util/throttle.js';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style.js';\nimport loadingDefault from '../loading/default.js';\nimport Scheduler from './Scheduler.js';\nimport lightTheme from '../theme/light.js';\nimport darkTheme from '../theme/dark.js';\nimport { parseClassType } from '../util/clazz.js';\nimport { ECEventProcessor } from '../util/ECEventProcessor.js';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol.js';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper.js';\nimport { deprecateLog, deprecateReplaceLog, error } from '../util/log.js';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction.js';\nimport { registerExternalTransform } from '../data/helper/transform.js';\nimport { createLocaleObject, SYSTEM_LANG } from './locale.js';\nimport { findEventDispatcher } from '../util/event.js';\nimport decal from '../visual/decal.js';\nimport lifecycle from './lifecycle.js';\nimport { platformApi, setPlatformAPI } from 'zrender/lib/core/platform.js';\nimport { getImpl } from './impl.js';\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.3.2';\nexport var dependencies = {\n zrender: '5.3.1'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800; // Some data processors depends on the stack result dimension (to calculate data extent).\n// So data stack stage should be in front of data processing stage.\n\nvar PRIORITY_PROCESSOR_DATASTACK = 900; // \"Data filter\" will block the stream, so it should be\n// put at the begining of data processing.\n\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; // Visual property in data. Greater than `PRIORITY_VISUAL_COMPONENT` to enable to\n// overwrite the viusal result of component (like `visualMap`)\n// using data item specific setting (like itemStyle.xxx on data item)\n\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500; // Greater than `PRIORITY_VISUAL_CHART_DATA_CUSTOM` to enable to layout based on\n// visual result like `symbolSize`.\n\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}; // Main process have three entries: `setOption`, `dispatchAction` and `resize`,\n// where they must not be invoked nestedly, except the only case: invoke\n// dispatchAction with updateMethod \"none\" in main process.\n// This flag is used to carry out this rule.\n// All events will be triggered out side main process (i.e. when !this[IN_MAIN_PROCESS]).\n\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar PENDING_UPDATE = '__pendingUpdate';\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;\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]` is event name. Event name is all lowercase.\n args[0] = args[0] && args[0].toLowerCase();\n return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter =\n/** @class */\nfunction (_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'); // ---------------------------------------\n// Internal method names for class ECharts\n// ---------------------------------------\n\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar createExtensionAPI;\nvar enableConnect;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts =\n/** @class */\nfunction (_super) {\n __extends(ECharts, _super);\n\n function ECharts(dom, // Theme name or themeOption.\n theme, opts) {\n var _this = _super.call(this, new ECEventProcessor()) || this;\n\n _this._chartsViews = [];\n _this._chartsMap = {};\n _this._componentsViews = [];\n _this._componentsMap = {}; // Can't dispatch action during rendering procedure\n\n _this._pendingActions = [];\n opts = opts || {}; // Get theme by name\n\n if (isString(theme)) {\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 =\n /* eslint-disable-next-line */\n 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 ssr: opts.ssr,\n useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n });\n _this._ssr = opts.ssr; // Expect 60 fps.\n\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\n theme = 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); // Sort on demand\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(); // Init mouse events\n\n _this._initEvents(); // In case some people write `window.onresize = chart.resize`\n\n\n _this.resize = bind(_this.resize, _this);\n zr.animation.on('frame', _this._onframe, _this);\n bindRenderedEvent(zr, _this);\n bindMouseEvent(zr, _this); // ECharts instance can be used as value.\n\n 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; // Lazy update\n\n if (this[PENDING_UPDATE]) {\n var silent = this[PENDING_UPDATE].silent;\n this[IN_MAIN_PROCESS_KEY] = true;\n\n try {\n prepare(this);\n updateMethods.update.call(this, null, this[PENDING_UPDATE].updateParams);\n } catch (e) {\n this[IN_MAIN_PROCESS_KEY] = false;\n this[PENDING_UPDATE] = null;\n throw e;\n } // At present, in each frame, zrender performs:\n // (1) animation step forward.\n // (2) trigger('frame') (where this `_onframe` is called)\n // (3) zrender flush (render).\n // If we do nothing here, since we use `setToFinal: true`, the step (3) above\n // will render the final state of the elements before the real animation started.\n\n\n this._zr.flush();\n\n this[IN_MAIN_PROCESS_KEY] = false;\n this[PENDING_UPDATE] = null;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n } // Avoid do both lazy update and progress in one frame.\n else if (scheduler.unfinished) {\n // Stream progress.\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); // Currently dataProcessorFuncs do not check threshold.\n\n scheduler.performDataProcessorTasks(ecModel);\n updateStreamModes(this, ecModel); // Do not update coordinate system here. Because that coord system update in\n // each frame is not a good user experience. So we follow the rule that\n // the extent of the coordinate system is determin in the first frame (the\n // frame is executed immedietely after task reset.\n // this._coordSysMgr.update(ecModel, api);\n // console.log('--- ec frame visual ---', remainTime);\n\n scheduler.performVisualTasks(ecModel);\n renderSeries(this, this._model, api, 'remain', {});\n remainTime -= +new Date() - startTime;\n } while (remainTime > 0 && scheduler.unfinished); // Call flush explicitly for trigger finished event.\n\n\n if (!scheduler.unfinished) {\n this._zr.flush();\n } // Else, zr flushing be ensue within the same frame,\n // because zr flushing is after onframe event.\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.isSSR = function () {\n return this._ssr;\n };\n /* eslint-disable-next-line */\n\n\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n if (this[IN_MAIN_PROCESS_KEY]) {\n if (process.env.NODE_ENV !== 'production') {\n error('`setOption` should not be called during main process.');\n }\n\n return;\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.ssr = this._ssr;\n ecModel.init(null, null, null, theme, this._locale, optionManager);\n }\n\n this._model.setOption(option, {\n replaceMerge: replaceMerge\n }, optionPreprocessorFuncs);\n\n var updateParams = {\n seriesTransition: transitionOpt,\n optionChanged: true\n };\n\n if (lazyUpdate) {\n this[PENDING_UPDATE] = {\n silent: silent,\n updateParams: updateParams\n };\n this[IN_MAIN_PROCESS_KEY] = false; // `setOption(option, {lazyMode: true})` may be called when zrender has been slept.\n // It should wake it up to make sure zrender start to render at the next frame.\n\n this.getZr().wakeUp();\n } else {\n try {\n prepare(this);\n updateMethods.update.call(this, null, updateParams);\n } catch (e) {\n this[PENDING_UPDATE] = null;\n this[IN_MAIN_PROCESS_KEY] = false;\n throw e;\n } // Ensure zr refresh sychronously, and then pixel in canvas can be\n // fetched after `setOption`.\n\n\n if (!this._ssr) {\n // not use flush when using ssr mode.\n this._zr.flush();\n }\n\n this[PENDING_UPDATE] = null;\n this[IN_MAIN_PROCESS_KEY] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n }\n };\n /**\r\n * @deprecated\r\n */\n\n\n ECharts.prototype.setTheme = function () {\n deprecateLog('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n }; // We don't want developers to use getModel directly.\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\n /* eslint-disable-next-line */\n || hasWindow && window.devicePixelRatio || 1;\n };\n /**\r\n * Get canvas which has all thing rendered\r\n * @deprecated Use renderToCanvas instead.\r\n */\n\n\n ECharts.prototype.getRenderedCanvas = function (opts) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('getRenderedCanvas', 'renderToCanvas');\n }\n\n return this.renderToCanvas(opts);\n };\n\n ECharts.prototype.renderToCanvas = function (opts) {\n opts = opts || {};\n var painter = this._zr.painter;\n\n if (process.env.NODE_ENV !== 'production') {\n if (painter.type !== 'canvas') {\n throw new Error('renderToCanvas can only be used in the canvas renderer.');\n }\n }\n\n return painter.getRenderedCanvas({\n backgroundColor: opts.backgroundColor || this._model.get('backgroundColor'),\n pixelRatio: opts.pixelRatio || this.getDevicePixelRatio()\n });\n };\n\n ECharts.prototype.renderToSVGString = function (opts) {\n opts = opts || {};\n var painter = this._zr.painter;\n\n if (process.env.NODE_ENV !== 'production') {\n if (painter.type !== 'svg') {\n throw new Error('renderToSVGString can only be used in the svg renderer.');\n }\n }\n\n return painter.renderToString({\n useViewBox: opts.useViewBox\n });\n };\n /**\r\n * Get svg data url\r\n */\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(); // Stop animations\n\n 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.renderToCanvas(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 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 || this.getDevicePixelRatio();\n each(instances, function (chart, id) {\n if (chart.group === groupId) {\n var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.renderToCanvas(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 = platformApi.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 // Background between the charts\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 /**\r\n * Is the specified coordinate systems or components contain the given pixel point.\r\n * @param {Array|number} value\r\n * @return {boolean} result\r\n */\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 each(findResult, function (models, key) {\n key.indexOf('Models') >= 0 && 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 /**\r\n * Get visual from series or data.\r\n * @param finder\r\n * If string, e.g., 'series', means {seriesIndex: 0}.\r\n * If Object, could contain some of these properties below:\r\n * {\r\n * seriesIndex / seriesId / seriesName,\r\n * dataIndex / dataIndexInside\r\n * }\r\n * If dataIndex is not specified, series visual will be fetched,\r\n * but not data item visual.\r\n * If all of seriesIndex, seriesId, seriesName are not specified,\r\n * visual will be fetched from first series.\r\n * @param visualType 'color', 'symbol', 'symbolSize'\r\n */\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 /**\r\n * Get view of corresponding component model\r\n */\n\n\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n return this._componentsMap[componentModel.__viewId];\n };\n /**\r\n * Get view of corresponding series model\r\n */\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 handler(e) {\n var ecModel = _this.getModel();\n\n var el = e.target;\n var params;\n var isGlobalOut = eveName === 'globalout'; // no e.target when '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 } // If element has custom eventData of components\n else if (ecData.eventData) {\n params = extend({}, ecData.eventData);\n return true;\n }\n }, true);\n } // Contract: if params prepared in mouse event,\n // these properties must be specified:\n // {\n // componentType: string (component main type)\n // componentIndex: number\n // }\n // Otherwise event query can not work.\n\n\n if (params) {\n var componentType = params.componentType;\n var componentIndex = params.componentIndex; // Special handling for historic reason: when trigger by\n // markLine/markPoint/markArea, the componentType is\n // 'markLine'/'markPoint'/'markArea', but we should better\n // enable them to be queried by seriesIndex, since their\n // option is set in each series.\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 // `event.componentType` and `event[componentTpype + 'Index']` must not\n // be missed, otherwise there is no way to distinguish source component.\n // See `dataFormat.getDataParams`.\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 }; // Consider that some component (like tooltip, brush, ...)\n // register zr event handler, but user event handler might\n // do anything, such as call `setOption` or `dispatchAction`,\n // which probably update any of the content and probably\n // cause problem if it is called previous other inner handlers.\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 }); // Extra events\n // TODO register?\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 var dom = this.getDom();\n\n if (dom) {\n modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n }\n\n var chart = this;\n var api = chart._api;\n var ecModel = chart._model;\n each(chart._componentsViews, function (component) {\n component.dispose(ecModel, api);\n });\n each(chart._chartsViews, function (chart) {\n chart.dispose(ecModel, api);\n }); // Dispose after all views disposed\n\n chart._zr.dispose(); // Set properties to null.\n // To reduce the memory cost in case the top code still holds this instance unexpectedly.\n\n\n chart._dom = chart._model = chart._chartsMap = chart._componentsMap = chart._chartsViews = chart._componentsViews = chart._scheduler = chart._api = chart._zr = chart._throttledZrFlush = chart._theme = chart._coordSysMgr = chart._messageCenter = null;\n delete instances[chart.id];\n };\n /**\r\n * Resize the chart\r\n */\n\n\n ECharts.prototype.resize = function (opts) {\n if (this[IN_MAIN_PROCESS_KEY]) {\n if (process.env.NODE_ENV !== 'production') {\n error('`resize` should not be called during main process.');\n }\n\n return;\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; // Resize loading effect\n\n this._loadingFX && this._loadingFX.resize();\n\n if (!ecModel) {\n return;\n }\n\n var needPrepare = ecModel.resetOption('media');\n var silent = opts && opts.silent; // There is some real cases that:\n // chart.setOption(option, { lazyUpdate: true });\n // chart.resize();\n\n if (this[PENDING_UPDATE]) {\n if (silent == null) {\n silent = this[PENDING_UPDATE].silent;\n }\n\n needPrepare = true;\n this[PENDING_UPDATE] = null;\n }\n\n this[IN_MAIN_PROCESS_KEY] = true;\n\n try {\n needPrepare && prepare(this);\n updateMethods.update.call(this, {\n type: 'resize',\n animation: extend({\n // Disable animation\n duration: 0\n }, opts && opts.animation)\n });\n } catch (e) {\n this[IN_MAIN_PROCESS_KEY] = false;\n throw e;\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 /**\r\n * Hide loading effect\r\n */\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 = extend({}, eventObj);\n payload.type = eventActionMap[eventObj.type];\n return payload;\n };\n /**\r\n * @param opt If pass boolean, means opt.silent\r\n * @param opt.silent Default `false`. Whether trigger events.\r\n * @param opt.flush Default `undefined`.\r\n * true: Flush immediately, and then pixel in canvas can be fetched\r\n * immediately. Caution: it might affect performance.\r\n * false: Not flush.\r\n * undefined: Auto decide whether perform flush.\r\n */\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 } // Avoid dispatch action before setOption. Especially in `connect`.\n\n\n if (!this._model) {\n return;\n } // May dispatchAction in rendering procedure\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 // In WeChat embeded browser, `requestAnimationFrame` and `setInterval`\n // hang when sliding page (on touch event), which cause that zr does not\n // refresh util user interaction finished, which is not expected.\n // But `dispatchAction` may be called too frequently when pan on touch\n // screen, which impacts performance if do not throttle them.\n this._throttledZrFlush();\n }\n\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n };\n\n ECharts.prototype.updateLabelLayout = function () {\n lifecycle.trigger('series:layoutlabels', this._model, this._api, {\n // Not adding series labels.\n // TODO\n updatedSeries: []\n });\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); // Note: `appendData` does not support that update extent of coordinate\n // system, util some scenario require that. In the expected usage of\n // `appendData`, the initial extent of coordinate system should better\n // be fixed by axis `min`/`max` setting or initial data, otherwise if\n // the extent changed while `appendData`, the location of the painted\n // graphic elements have to be changed, which make the usage of\n // `appendData` meaningless.\n\n this._scheduler.unfinished = true;\n this.getZr().wakeUp();\n }; // A work around for no `internal` modifier in ts yet but\n // need to strictly hide private methods to JS users.\n\n\n ECharts.internalField = function () {\n prepare = function prepare(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 /**\r\n * Prepare view instances of charts and components\r\n */\n\n\n prepareView = function prepareView(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 // By defaut view will be reused if possible for the case that `setOption` with \"notMerge\"\n // mode and need to enable transition animation. (Usually, when they have the same id, or\n // especially no id but have the same type & name & index. See the `model.id` generation\n // rule in `makeIdAndName` and `viewId` generation rule here).\n // But in `replaceMerge` mode, this feature should be able to disabled when it is clear that\n // the new model has nothing to do with the old model.\n var requireNewView = model.__requireNewView; // This command should not work twice.\n\n model.__requireNewView = false; // Consider: id same and type changed.\n\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) : // FIXME:TS\n // (ChartView as ChartViewConstructor).getClass('series', classType.sub)\n // For backward compat, still support a chart type declared as only subType\n // like \"liquidfill\", but recommend \"series.liquidfill\"\n // But need a base class to make a type series.\n 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 updateDirectly(ecIns, method, payload, mainType, subType) {\n var ecModel = ecIns._model;\n ecModel.setUpdatePayload(payload); // broadcast\n\n if (!mainType) {\n // FIXME\n // Chart will not be update directly here, except set dirty.\n // But there is no such scenario now.\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); // subType may be '' by parseClassType;\n\n var excludeSeriesId = payload.excludeSeriesId;\n var excludeSeriesIdMap;\n\n if (excludeSeriesId != null) {\n excludeSeriesIdMap = 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 } // If dispatchAction before setOption, do nothing.\n\n\n ecModel && ecModel.eachComponent(condition, function (model) {\n var isExcluded = excludeSeriesIdMap && excludeSeriesIdMap.get(model.id) !== null;\n\n if (isExcluded) {\n return;\n }\n\n ;\n\n if (isHighDownPayload(payload)) {\n if (model instanceof SeriesModel) {\n if (payload.type === HIGHLIGHT_ACTION_TYPE && !payload.notBlur && !model.get(['emphasis', 'disabled'])) {\n blurSeriesFromHighlightPayload(model, payload, ecIns._api);\n }\n } else {\n var _a = findComponentHighDownDispatchers(model.mainType, model.componentIndex, payload.name, ecIns._api),\n focusSelf = _a.focusSelf,\n dispatchers = _a.dispatchers;\n\n if (payload.type === HIGHLIGHT_ACTION_TYPE && focusSelf && !payload.notBlur) {\n blurComponent(model.mainType, model.componentIndex, ecIns._api);\n } // PENDING:\n // Whether to put this \"enter emphasis\" code in `ComponentView`,\n // which will be the same as `ChartView` but might be not necessary\n // and will be far from this logic.\n\n\n if (dispatchers) {\n each(dispatchers, function (dispatcher) {\n payload.type === HIGHLIGHT_ACTION_TYPE ? enterEmphasis(dispatcher) : leaveEmphasis(dispatcher);\n });\n }\n }\n } else if (isSelectChangePayload(payload)) {\n // TODO geo\n if (model instanceof SeriesModel) {\n toggleSelectionFromPayload(model, payload, ecIns._api);\n updateSeriesElementSelection(model);\n markStatusToUpdate(ecIns);\n }\n }\n }, ecIns);\n ecModel && ecModel.eachComponent(condition, function (model) {\n var isExcluded = excludeSeriesIdMap && excludeSeriesIdMap.get(model.id) !== null;\n\n if (isExcluded) {\n return;\n }\n\n ;\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\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 prepareAndUpdate(payload) {\n prepare(this);\n updateMethods.update.call(this, payload, {\n // Needs to mark option changed if newOption is given.\n // It's from MagicType.\n // TODO If use a separate flag optionChanged in payload?\n optionChanged: payload.newOption != null\n });\n },\n update: function update(payload, updateParams) {\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; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n scheduler.restoreData(ecModel, payload);\n scheduler.performSeriesTasks(ecModel); // TODO\n // Save total ecModel here for undo/redo (after restoring data and before processing data).\n // Undo (restoration of total ecModel) can be carried out in 'action' or outside API call.\n // Create new coordinate system each update\n // In LineView may save the old coordinate system and use it to get the orignal point\n\n coordSysMgr.create(ecModel, api);\n scheduler.performDataProcessorTasks(ecModel, payload); // Current stream render is not supported in data process. So we can update\n // stream modes after data processing, where the filtered data is used to\n // deteming whether use progressive rendering.\n\n updateStreamModes(this, ecModel); // We update stream modes before coordinate system updated, then the modes info\n // can be fetched when coord sys updating (consider the barGrid extent fix). But\n // the drawback is the full coord info can not be fetched. Fortunately this full\n // coord is not requied in stream mode updater currently.\n\n coordSysMgr.update(ecModel, api);\n clearColorPalette(ecModel);\n scheduler.performVisualTasks(ecModel, payload);\n render(this, ecModel, api, payload, updateParams); // Set background\n\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n var darkMode = ecModel.get('darkMode');\n zr.setBackgroundColor(backgroundColor); // Force set dark mode.\n\n if (darkMode != null && darkMode !== 'auto') {\n zr.setDarkMode(darkMode);\n }\n\n lifecycle.trigger('afterupdate', ecModel, api);\n },\n updateTransform: function updateTransform(payload) {\n var _this = this;\n\n var ecModel = this._model;\n var api = this._api; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload); // ChartView.markUpdateMethod(payload, 'updateTransform');\n\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 = 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); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true);\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true,\n dirtyMap: seriesDirtyMap\n }); // Currently, not call render of components. Geo render cost a lot.\n // renderComponents(ecIns, ecModel, api, payload, componentDirtyList);\n\n\n renderSeries(this, ecModel, api, payload, {}, seriesDirtyMap);\n lifecycle.trigger('afterupdate', ecModel, api);\n },\n updateView: function updateView(payload) {\n var ecModel = this._model; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n ChartView.markUpdateMethod(payload, 'updateView');\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true\n });\n\n render(this, ecModel, this._api, payload, {});\n lifecycle.trigger('afterupdate', ecModel, this._api);\n },\n updateVisual: function updateVisual(payload) {\n // updateMethods.update.call(this, payload);\n var _this = this;\n\n var ecModel = this._model; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload); // clear all visual\n\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.getData().clearAllVisual();\n }); // Perform visual\n\n ChartView.markUpdateMethod(payload, 'updateVisual');\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\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 lifecycle.trigger('afterupdate', ecModel, this._api);\n },\n updateLayout: function updateLayout(payload) {\n updateMethods.update.call(this, payload);\n }\n };\n\n doConvertPixel = function doConvertPixel(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 updateStreamModes(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 doDispatchAction(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; // Batch action\n\n if (payload.batch) {\n batched = true;\n payloads = map(payload.batch, function (item) {\n item = defaults(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 isHighDown = isHighDownPayload(payload); // Only leave blur once if there are multiple batches.\n\n if (isHighDown) {\n allLeaveBlur(this._api);\n }\n\n each(payloads, function (batchItem) {\n // Action can specify the event by return it.\n eventObj = actionWrap.action(batchItem, _this._model, _this._api); // Emit event outside\n\n eventObj = eventObj || extend({}, batchItem); // Convert type to eventType\n\n eventObj.type = actionInfo.event || eventObj.type;\n eventObjBatch.push(eventObj); // light update does not perform data process, layout and visual.\n\n if (isHighDown) {\n var _a = modelUtil.preParseFinder(payload),\n queryOptionMap = _a.queryOptionMap,\n mainTypeSpecified = _a.mainTypeSpecified;\n\n var componentMainType = mainTypeSpecified ? queryOptionMap.keys()[0] : 'series';\n updateDirectly(_this, updateMethod, batchItem, componentMainType);\n markStatusToUpdate(_this);\n } else if (isSelectChange) {\n // At present `dispatchAction({ type: 'select', ... })` is not supported on components.\n // geo still use 'geoselect'.\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' && !isHighDown && !isSelectChange && !cptType) {\n try {\n // Still dirty\n if (this[PENDING_UPDATE]) {\n prepare(this);\n updateMethods.update.call(this, payload);\n this[PENDING_UPDATE] = null;\n } else {\n updateMethods[updateMethod].call(this, payload);\n }\n } catch (e) {\n this[IN_MAIN_PROCESS_KEY] = false;\n throw e;\n }\n } // Follow the rule of action batch\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); // Extra triggered 'selectchanged' event\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 flushPendingActions(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 triggerUpdatedEvent(silent) {\n !silent && this.trigger('updated');\n };\n /**\r\n * Event `rendered` is triggered when zr\r\n * rendered. It is useful for realtime\r\n * snapshot (reflect animation).\r\n *\r\n * Event `finished` is triggered when:\r\n * (1) zrender rendering finished.\r\n * (2) initial animation finished.\r\n * (3) progressive rendering finished.\r\n * (4) no pending action.\r\n * (5) no delayed setOption needs to be processed.\r\n */\n\n\n bindRenderedEvent = function bindRenderedEvent(zr, ecIns) {\n zr.on('rendered', function (params) {\n ecIns.trigger('rendered', params); // The `finished` event should not be triggered repeatly,\n // so it should only be triggered when rendering indeed happend\n // in zrender. (Consider the case that dipatchAction is keep\n // triggering when mouse move).\n\n if ( // Although zr is dirty if initial animation is not finished\n // and this checking is called on frame, we also check\n // animation finished for robustness.\n zr.animation.isFinished() && !ecIns[PENDING_UPDATE] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n ecIns.trigger('finished');\n }\n });\n };\n\n bindMouseEvent = function bindMouseEvent(zr, ecIns) {\n zr.on('mouseover', function (e) {\n var el = e.target;\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n if (dispatcher) {\n handleGlobalMouseOverForHighDown(dispatcher, e, ecIns._api);\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 handleGlobalMouseOutForHighDown(dispatcher, e, ecIns._api);\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 function clearColorPalette(ecModel) {\n ecModel.clearColorPalette();\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.clearColorPalette();\n });\n }\n\n ; // Allocate zlevels for series and components\n\n function allocateZlevels(ecModel) {\n ;\n var componentZLevels = [];\n var seriesZLevels = [];\n var hasSeperateZLevel = false;\n ecModel.eachComponent(function (componentType, componentModel) {\n var zlevel = componentModel.get('zlevel') || 0;\n var z = componentModel.get('z') || 0;\n var zlevelKey = componentModel.getZLevelKey();\n hasSeperateZLevel = hasSeperateZLevel || !!zlevelKey;\n (componentType === 'series' ? seriesZLevels : componentZLevels).push({\n zlevel: zlevel,\n z: z,\n idx: componentModel.componentIndex,\n type: componentType,\n key: zlevelKey\n });\n });\n\n if (hasSeperateZLevel) {\n // Series after component\n var zLevels = componentZLevels.concat(seriesZLevels);\n var lastSeriesZLevel_1;\n var lastSeriesKey_1;\n timsort(zLevels, function (a, b) {\n if (a.zlevel === b.zlevel) {\n return a.z - b.z;\n }\n\n return a.zlevel - b.zlevel;\n });\n each(zLevels, function (item) {\n var componentModel = ecModel.getComponent(item.type, item.idx);\n var zlevel = item.zlevel;\n var key = item.key;\n\n if (lastSeriesZLevel_1 != null) {\n zlevel = Math.max(lastSeriesZLevel_1, zlevel);\n }\n\n if (key) {\n if (zlevel === lastSeriesZLevel_1 && key !== lastSeriesKey_1) {\n zlevel++;\n }\n\n lastSeriesKey_1 = key;\n } else if (lastSeriesKey_1) {\n if (zlevel === lastSeriesZLevel_1) {\n zlevel++;\n }\n\n lastSeriesKey_1 = '';\n }\n\n lastSeriesZLevel_1 = zlevel;\n componentModel.setZLevel(zlevel);\n });\n }\n }\n\n render = function render(ecIns, ecModel, api, payload, updateParams) {\n allocateZlevels(ecModel);\n renderComponents(ecIns, ecModel, api, payload, updateParams);\n each(ecIns._chartsViews, function (chart) {\n chart.__alive = false;\n });\n renderSeries(ecIns, ecModel, api, payload, updateParams); // Remove groups of unrendered charts\n\n each(ecIns._chartsViews, function (chart) {\n if (!chart.__alive) {\n chart.remove(ecModel, api);\n }\n });\n };\n\n renderComponents = function renderComponents(ecIns, ecModel, api, payload, updateParams, 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 /**\r\n * Render each chart and component\r\n */\n\n\n renderSeries = function renderSeries(ecIns, ecModel, api, payload, updateParams, dirtyMap) {\n // Render all charts\n var scheduler = ecIns._scheduler;\n updateParams = extend(updateParams || {}, {\n updatedSeries: ecModel.getSeries()\n }); // TODO progressive?\n\n lifecycle.trigger('series:beforeupdate', ecModel, api, updateParams);\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); // TODO states on marker.\n\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 chartView.group.silent = !!seriesModel.get('silent'); // Should not call markRedraw on group, because it will disable zrender\n // increamental render (alway render from the __startIndex each frame)\n // chartView.group.markRedraw();\n\n updateBlend(seriesModel, chartView);\n updateSeriesElementSelection(seriesModel);\n });\n scheduler.unfinished = unfinished || scheduler.unfinished;\n lifecycle.trigger('series:layoutlabels', ecModel, api, updateParams); // transition after label is layouted.\n\n lifecycle.trigger('series:transition', ecModel, api, updateParams);\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._chartsMap[seriesModel.__viewId]; // Update Z after labels updated. Before applying states.\n\n updateZ(seriesModel, chartView); // NOTE: Update states after label is updated.\n // label should be in normal status when layouting.\n\n updateStates(seriesModel, chartView);\n }); // If use hover layer\n\n updateHoverLayerStatus(ecIns, ecModel);\n lifecycle.trigger('series:afterupdate', ecModel, api, updateParams);\n };\n\n markStatusToUpdate = function markStatusToUpdate(ecIns) {\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true; // Wake up zrender if it's sleep. Let it update states in the next frame.\n\n ecIns.getZr().wakeUp();\n };\n\n applyChangedStates = function applyChangedStates(ecIns) {\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n return;\n }\n\n ecIns.getZr().storage.traverse(function (el) {\n // Not applied on removed elements, it may still in fading.\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; // Keep other states.\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 } // Only use states when it's exists.\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.eachRendered(function (el) {\n if (el.states.emphasis) {\n el.states.emphasis.hoverLayer = true;\n }\n });\n }\n });\n }\n }\n\n ;\n /**\r\n * Update chart and blend.\r\n */\n\n function updateBlend(seriesModel, chartView) {\n var blendMode = seriesModel.get('blendMode') || null;\n chartView.eachRendered(function (el) {\n // FIXME marker and other components\n if (!el.isGroup) {\n // DONT mark the element dirty. In case element is incremental and don't wan't to rerender.\n el.style.blend = blendMode;\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') || 0;\n var zlevel = model.get('zlevel') || 0; // Set z and zlevel\n\n view.eachRendered(function (el) {\n doUpdateZ(el, z, zlevel, -Infinity); // Don't traverse the children because it has been traversed in _updateZ.\n\n return true;\n });\n }\n\n ;\n\n function doUpdateZ(el, z, zlevel, maxZ2) {\n // Group may also have textContent\n var label = el.getTextContent();\n var labelLine = el.getTextGuideLine();\n var isGroup = el.isGroup;\n\n if (isGroup) {\n // set z & zlevel of children elements of Group\n var children = el.childrenRef();\n\n for (var i = 0; i < children.length; i++) {\n maxZ2 = Math.max(doUpdateZ(children[i], z, zlevel, maxZ2), maxZ2);\n }\n } else {\n // not Group\n el.z = z;\n el.zlevel = zlevel;\n maxZ2 = Math.max(el.z2, maxZ2);\n } // always set z and zlevel if label/labelLine exists\n\n\n if (label) {\n label.z = z;\n label.zlevel = zlevel; // lift z2 of text content\n // TODO if el.emphasis.z2 is spcefied, what about textContent.\n\n isFinite(maxZ2) && (label.z2 = maxZ2 + 2);\n }\n\n if (labelLine) {\n var textGuideLineConfig = el.textGuideLineConfig;\n labelLine.z = z;\n labelLine.zlevel = zlevel;\n isFinite(maxZ2) && (labelLine.z2 = maxZ2 + (textGuideLineConfig && textGuideLineConfig.showAbove ? 1 : -1));\n }\n\n return maxZ2;\n } // Clear states without animation.\n // TODO States on component.\n\n\n function clearStates(model, view) {\n view.eachRendered(function (el) {\n // Not applied on removed elements, it may still in fading.\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 } // TODO If el is incremental.\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') // additive: stateAnimationModel.get('additive')\n\n } : null;\n view.eachRendered(function (el) {\n if (el.states && el.states.emphasis) {\n // Not applied on removed elements, it may still in fading.\n if (graphic.isElementRemoved(el)) {\n return;\n }\n\n if (el instanceof graphic.Path) {\n savePathStates(el);\n } // Only updated on changed element. In case element is incremental and don't wan't to rerender.\n // TODO, a more proper way?\n\n\n if (el.__dirty) {\n var prevStates = el.prevStates; // Restore states without animation\n\n if (prevStates) {\n el.useStates(prevStates);\n }\n } // Update state transition and enable animation again.\n\n\n if (enableAnimation) {\n el.stateTransition = stateTransition;\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine(); // TODO Is it necessary to animate label?\n\n if (textContent) {\n textContent.stateTransition = stateTransition;\n }\n\n if (textGuide) {\n textGuide.stateTransition = stateTransition;\n }\n } // The use higlighted and selected flag to toggle states.\n\n\n if (el.__dirty) {\n applyElementStates(el);\n }\n }\n });\n }\n\n ;\n\n createExtensionAPI = function createExtensionAPI(ecIns) {\n return new (\n /** @class */\n 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 enableConnect(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\n return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n/**\r\n * @deprecated\r\n */\n// @ts-ignore\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); // @ts-ignore\n\n self.off(eventName, wrapped);\n }\n\n ; // @ts-ignore\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 = {};\n/**\r\n * Map eventType to actionType\r\n */\n\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\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_';\n/**\r\n * @param opts.devicePixelRatio Use window.devicePixelRatio by default\r\n * @param opts.renderer Can choose 'canvas' or 'svg' to render the chart.\r\n * @param opts.width Use clientWidth of the input `dom` by default.\r\n * Can be 'auto' (the same as null/undefined)\r\n * @param opts.height Use clientHeight of the input `dom` by default.\r\n * Can be 'auto' (the same as null/undefined)\r\n * @param opts.locale Specify the locale.\r\n * @param opts.useDirtyRect Enable dirty rectangle rendering or not.\r\n */\n\nexport function init(dom, theme, opts) {\n var isClient = !(opts && opts.ssr);\n\n if (isClient) {\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 (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\n var chart = new ECharts(dom, theme, opts);\n chart.id = 'ec_' + idBase++;\n instances[chart.id] = chart;\n isClient && modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n enableConnect(chart);\n lifecycle.trigger('afterinit', chart);\n return chart;\n}\n/**\r\n * @usage\r\n * (A)\r\n * ```js\r\n * let chart1 = echarts.init(dom1);\r\n * let chart2 = echarts.init(dom2);\r\n * chart1.group = 'xxx';\r\n * chart2.group = 'xxx';\r\n * echarts.connect('xxx');\r\n * ```\r\n * (B)\r\n * ```js\r\n * let chart1 = echarts.init(dom1);\r\n * let chart2 = echarts.init(dom2);\r\n * echarts.connect('xxx', [chart1, chart2]);\r\n * ```\r\n */\n\nexport function connect(groupId) {\n // Is array of charts\n if (isArray(groupId)) {\n var charts = groupId;\n groupId = null; // If any chart has group\n\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}\n/**\r\n * @deprecated\r\n */\n\nexport function disConnect(groupId) {\n connectedGroups[groupId] = false;\n}\n/**\r\n * Alias and backword compat\r\n */\n\nexport var disconnect = disConnect;\n/**\r\n * Dispose a chart instance\r\n */\n\nexport function dispose(chart) {\n if (isString(chart)) {\n chart = instances[chart];\n } else if (!(chart instanceof ECharts)) {\n // Try to treat as dom\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}\n/**\r\n * Register theme\r\n */\n\nexport function registerTheme(name, theme) {\n themeStorage[name] = theme;\n}\n/**\r\n * Register option preprocessor\r\n */\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}\n/**\r\n * Register postIniter\r\n * @param {Function} postInitFunc\r\n */\n\nexport function registerPostInit(postInitFunc) {\n registerUpdateLifecycle('afterinit', postInitFunc);\n}\n/**\r\n * Register postUpdater\r\n * @param {Function} postUpdateFunc\r\n */\n\nexport function registerPostUpdate(postUpdateFunc) {\n registerUpdateLifecycle('afterupdate', postUpdateFunc);\n}\nexport function registerUpdateLifecycle(name, cb) {\n lifecycle.on(name, cb);\n}\nexport function registerAction(actionInfo, eventName, action) {\n if (isFunction(eventName)) {\n action = eventName;\n eventName = '';\n }\n\n var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n event: eventName\n }][0]; // Event name is all lowercase\n\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n eventName = actionInfo.event;\n\n if (eventActionMap[eventName]) {\n // Already registered.\n return;\n } // Validate action type and event name.\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}\n/**\r\n * Get dimensions of specified coordinate system.\r\n * @param {string} type\r\n * @return {Array.<string|Object>}\r\n */\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.js';\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 } // Check duplicate\n\n\n each(targetList, function (wrap) {\n assert(wrap.__raw !== fn);\n });\n } // Already registered\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}\n/**\r\n * ZRender need a canvas context to do measureText.\r\n * But in node environment canvas may be created by node-canvas.\r\n * So we need to specify how to create a canvas instead of using document.createElement('canvas')\r\n *\r\n *\r\n * @deprecated use setPlatformAPI({ createCanvas }) instead.\r\n *\r\n * @example\r\n * let Canvas = require('canvas');\r\n * let echarts = require('echarts');\r\n * echarts.setCanvasCreator(function () {\r\n * // Small size is enough.\r\n * return new Canvas(32, 32);\r\n * });\r\n */\n\nexport function setCanvasCreator(creator) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('setCanvasCreator is deprecated. Use setPlatformAPI({ createCanvas }) instead.');\n }\n\n setPlatformAPI({\n createCanvas: creator\n });\n}\n/**\r\n * The parameters and usage: see `geoSourceManager.registerMap`.\r\n * Compatible with previous `echarts.registerMap`.\r\n */\n\nexport function registerMap(mapName, geoJson, specialAreas) {\n var registerMap = getImpl('registerMap');\n registerMap && registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n var getMap = getImpl('getMap');\n return getMap && getMap(mapName);\n}\nexport var registerTransform = registerExternalTransform;\n/**\r\n * Globa dispatchAction to a specified chart instance.\r\n */\n// export function dispatchAction(payload: { chartId: string } & Payload, opt?: Parameters<ECharts['dispatchAction']>[1]) {\n// if (!payload || !payload.chartId) {\n// // Must have chartId to find chart\n// return;\n// }\n// const chart = instances[payload.chartId];\n// if (chart) {\n// chart.dispatchAction(payload, opt);\n// }\n// }\n// Buitlin global visual\n\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); // Default actions\n\nregisterAction({\n type: HIGHLIGHT_ACTION_TYPE,\n event: HIGHLIGHT_ACTION_TYPE,\n update: HIGHLIGHT_ACTION_TYPE\n}, noop);\nregisterAction({\n type: DOWNPLAY_ACTION_TYPE,\n event: DOWNPLAY_ACTION_TYPE,\n update: DOWNPLAY_ACTION_TYPE\n}, noop);\nregisterAction({\n type: SELECT_ACTION_TYPE,\n event: SELECT_ACTION_TYPE,\n update: SELECT_ACTION_TYPE\n}, noop);\nregisterAction({\n type: UNSELECT_ACTION_TYPE,\n event: UNSELECT_ACTION_TYPE,\n update: UNSELECT_ACTION_TYPE\n}, noop);\nregisterAction({\n type: TOGGLE_SELECT_ACTION_TYPE,\n event: TOGGLE_SELECT_ACTION_TYPE,\n update: TOGGLE_SELECT_ACTION_TYPE\n}, noop); // Default theme\n\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme); // For backward compatibility, where the namespace `dataTool` will\n// be mounted on `echarts` is the extension `dataTool` is imported.\n\nexport var dataTool = {};","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/qingge-Market/qingge-vue/node_modules/echarts/lib/core/echarts.js"],"names":["__extends","zrender","assert","each","isFunction","isObject","indexOf","bind","clone","setAsPrimitive","extend","createHashMap","map","defaults","isDom","isArray","noop","isString","env","timsort","Eventful","GlobalModel","ExtensionAPI","CoordinateSystemManager","OptionManager","backwardCompat","dataStack","SeriesModel","ComponentView","ChartView","graphic","getECData","isHighDownDispatcher","HOVER_STATE_EMPHASIS","HOVER_STATE_BLUR","blurSeriesFromHighlightPayload","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","allLeaveBlur","findComponentHighDownDispatchers","blurComponent","handleGlobalMouseOverForHighDown","handleGlobalMouseOutForHighDown","modelUtil","throttle","seriesStyleTask","dataStyleTask","dataColorPaletteTask","loadingDefault","Scheduler","lightTheme","darkTheme","parseClassType","ECEventProcessor","seriesSymbolTask","dataSymbolTask","getVisualFromData","getItemVisualFromData","deprecateLog","deprecateReplaceLog","error","handleLegacySelectEvents","registerExternalTransform","createLocaleObject","SYSTEM_LANG","findEventDispatcher","decal","lifecycle","platformApi","setPlatformAPI","getImpl","hasWindow","window","version","dependencies","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_DEFAULT","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_CHART_DATA_CUSTOM","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_BRUSH","PRIORITY_VISUAL_ARIA","PRIORITY_VISUAL_DECAL","PRIORITY","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","POST_CHART_LAYOUT","COMPONENT","BRUSH","CHART_ITEM","ARIA","DECAL","IN_MAIN_PROCESS_KEY","PENDING_UPDATE","STATUS_NEEDS_UPDATE_KEY","ACTION_REG","CONNECT_STATUS_KEY","CONNECT_STATUS_PENDING","CONNECT_STATUS_UPDATING","CONNECT_STATUS_UPDATED","createRegisterEventWithLowercaseECharts","method","args","_i","arguments","length","isDisposed","disposedWarning","id","toLowercaseNameAndCallEventful","createRegisterEventWithLowercaseMessageCenter","host","toLowerCase","prototype","apply","MessageCenter","_super","messageCenterProto","on","off","prepare","prepareView","updateDirectly","updateMethods","doConvertPixel","updateStreamModes","doDispatchAction","flushPendingActions","triggerUpdatedEvent","bindRenderedEvent","bindMouseEvent","render","renderComponents","renderSeries","createExtensionAPI","enableConnect","markStatusToUpdate","applyChangedStates","ECharts","dom","theme","opts","_this","call","_chartsViews","_chartsMap","_componentsViews","_componentsMap","_pendingActions","themeStorage","_dom","defaultRenderer","defaultUseDirtyRect","process","NODE_ENV","root","global","__ECHARTS__DEFAULT__RENDERER__","devUseDirtyRect","__ECHARTS__DEFAULT__USE_DIRTY_RECT__","zr","_zr","init","renderer","devicePixelRatio","width","height","ssr","useDirtyRect","_ssr","_throttledZrFlush","flush","_theme","_locale","locale","_coordSysMgr","api","_api","prioritySortFunc","a","b","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_messageCenter","_initEvents","resize","animation","_onframe","_disposed","scheduler","silent","update","updateParams","e","unfinished","remainTime","ecModel","_model","startTime","Date","performSeriesTasks","performDataProcessorTasks","performVisualTasks","getDom","getId","getZr","isSSR","setOption","option","notMerge","lazyUpdate","replaceMerge","transitionOpt","transition","optionManager","optionPreprocessorFuncs","seriesTransition","optionChanged","wakeUp","setTheme","getModel","getOption","getWidth","getHeight","getDevicePixelRatio","painter","dpr","getRenderedCanvas","renderToCanvas","type","Error","backgroundColor","get","pixelRatio","renderToSVGString","renderToString","useViewBox","getSvgDataURL","svgSupported","list","storage","getDisplayList","el","stopAnimation","toDataURL","getDataURL","excludeComponents","excludesComponentViews","self","componentType","eachComponent","mainType","component","view","__viewId","group","ignore","push","url","getType","getConnectedDataURL","isSvg","groupId","mathMin","Math","min","mathMax","max","MAX_NUMBER","Infinity","connectedGroups","left_1","top_1","right_1","bottom_1","canvasList_1","dpr_1","instances","chart","canvas","getSvgDom","innerHTML","boundingRect","getBoundingClientRect","left","top","right","bottom","targetCanvas","createCanvas","zr_1","content_1","item","x","y","getSvgRoot","connectedBackgroundColor","setBackgroundColor","refreshImmediately","add","Rect","shape","style","fill","img","Image","image","convertToPixel","finder","value","convertFromPixel","containPixel","result","findResult","parseFinder","models","key","model","coordSys","coordinateSystem","containPoint","console","warn","getVisual","visualType","parsedFinder","defaultMainType","seriesModel","data","getData","dataIndexInside","hasOwnProperty","indexOfRawIndex","dataIndex","getViewOfComponentModel","componentModel","getViewOfSeriesModel","MOUSE_EVENT_NAMES","eveName","handler","target","params","isGlobalOut","parent","ecData","dataModel","getSeriesByIndex","seriesIndex","getDataParams","dataType","eventData","componentIndex","getComponent","event","_$eventProcessor","eventInfo","targetEl","packedEvent","trigger","zrEventfulCallAtLast","eventActionMap","actionType","eventType","clear","series","dispose","setAttribute","DOM_ATTRIBUTE_KEY","_loadingFX","needPrepare","resetOption","duration","showLoading","name","cfg","hideLoading","loadingEffects","remove","makeActionFromEvent","eventObj","payload","dispatchAction","opt","actions","browser","weChat","updateLabelLayout","updatedSeries","appendData","internalField","ecIns","restorePipelines","prepareStageTasks","plan","isComponent","viewList","viewMap","i","__alive","doPrepare","eachSeries","requireNewView","__requireNewView","viewId","classType","Clazz","getClass","main","sub","__id","__model","__ecComponentInfo","index","renderTask","splice","subType","setUpdatePayload","concat","callView","query","condition","excludeSeriesId","excludeSeriesIdMap","normalizeToArray","modelId","convertOptionIdName","set","isExcluded","notBlur","_a","focusSelf","dispatchers","dispatcher","prepareAndUpdate","newOption","coordSysMgr","restoreData","create","clearColorPalette","darkMode","setDarkMode","updateTransform","componentDirtyList","componentView","seriesDirtyMap","chartView","uid","setDirty","dirtyMap","updateView","markUpdateMethod","updateVisual","clearAllVisual","updateLayout","methodName","coordSysList","getCoordinateSystems","chartsMap","payloadType","escapeConnect","actionWrap","actionInfo","cptTypeTmp","split","updateMethod","pop","cptType","payloads","batched","batch","eventObjBatch","isSelectChange","isHighDown","batchItem","action","preParseFinder","queryOptionMap","mainTypeSpecified","componentMainType","keys","messageCenter","newObj","selected","isFromClick","fromAction","fromActionPayload","pendingActions","shift","isFinished","allocateZlevels","componentZLevels","seriesZLevels","hasSeperateZLevel","zlevel","z","zlevelKey","getZLevelKey","idx","zLevels","lastSeriesZLevel_1","lastSeriesKey_1","setZLevel","dirtyList","clearStates","updateZ","updateStates","getSeries","updatePayload","dirty","perform","getPerformArgs","updateBlend","updateHoverLayerStatus","traverse","isElementRemoved","applyElementStates","newStates","oldStates","currentStates","stateName","states","select","hoverState","emphasis","blur","useStates","elCount","isGroup","node","worker","preventUsingHoverLayer","eachRendered","hoverLayer","blendMode","blend","preventAutoZ","doUpdateZ","maxZ2","label","getTextContent","labelLine","getTextGuideLine","children","childrenRef","z2","isFinite","textGuideLineConfig","showAbove","textContent","textGuide","stateTransition","hasState","prevStates","stateAnimationModel","enableAnimation","isAnimationEnabled","delay","easing","Path","__dirty","class_1","getComponentByElement","modelInfo","highlightDigit","updateConnectedChartsStatus","charts","status","otherChart","action_1","otherCharts_1","echartsProto","one","eventName","cb","ctx","wrapped","args2","idBase","groupIdBase","isClient","existInstance","getInstanceByDom","nodeName","toUpperCase","clientWidth","clientHeight","connect","disConnect","disconnect","getAttribute","getInstanceById","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","priority","processor","normalizeRegister","registerPostInit","postInitFunc","registerUpdateLifecycle","registerPostUpdate","postUpdateFunc","registerAction","test","registerCoordinateSystem","coordSysCreator","register","getCoordinateSystemDimensions","getDimensionsInfo","dimensions","slice","registerLocale","registerLayout","layoutTask","registerVisual","visualTask","registeredTasks","targetList","fn","defaultPriority","isNaN","wrap","__raw","stageHandler","wrapStageHandler","registerLoading","loadingFx","setCanvasCreator","creator","registerMap","mapName","geoJson","specialAreas","getMap","registerTransform","dataTool"],"mappings":"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","sourcesContent":["\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\n\r\n\r\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\r\n\r\nimport { __extends } from \"tslib\";\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\n\r\nimport * as zrender from 'zrender/lib/zrender.js';\r\nimport { assert, each, isFunction, isObject, indexOf, bind, clone, setAsPrimitive, extend, createHashMap, map, defaults, isDom, isArray, noop, isString } from 'zrender/lib/core/util.js';\r\nimport env from 'zrender/lib/core/env.js';\r\nimport timsort from 'zrender/lib/core/timsort.js';\r\nimport Eventful from 'zrender/lib/core/Eventful.js';\r\nimport GlobalModel from '../model/Global.js';\r\nimport ExtensionAPI from './ExtensionAPI.js';\r\nimport CoordinateSystemManager from './CoordinateSystem.js';\r\nimport OptionManager from '../model/OptionManager.js';\r\nimport backwardCompat from '../preprocessor/backwardCompat.js';\r\nimport dataStack from '../processor/dataStack.js';\r\nimport SeriesModel from '../model/Series.js';\r\nimport ComponentView from '../view/Component.js';\r\nimport ChartView from '../view/Chart.js';\r\nimport * as graphic from '../util/graphic.js';\r\nimport { getECData } from '../util/innerStore.js';\r\nimport { isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, blurSeriesFromHighlightPayload, 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, allLeaveBlur, findComponentHighDownDispatchers, blurComponent, handleGlobalMouseOverForHighDown, handleGlobalMouseOutForHighDown } from '../util/states.js';\r\nimport * as modelUtil from '../util/model.js';\r\nimport { throttle } from '../util/throttle.js';\r\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style.js';\r\nimport loadingDefault from '../loading/default.js';\r\nimport Scheduler from './Scheduler.js';\r\nimport lightTheme from '../theme/light.js';\r\nimport darkTheme from '../theme/dark.js';\r\nimport { parseClassType } from '../util/clazz.js';\r\nimport { ECEventProcessor } from '../util/ECEventProcessor.js';\r\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol.js';\r\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper.js';\r\nimport { deprecateLog, deprecateReplaceLog, error } from '../util/log.js';\r\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction.js';\r\nimport { registerExternalTransform } from '../data/helper/transform.js';\r\nimport { createLocaleObject, SYSTEM_LANG } from './locale.js';\r\nimport { findEventDispatcher } from '../util/event.js';\r\nimport decal from '../visual/decal.js';\r\nimport lifecycle from './lifecycle.js';\r\nimport { platformApi, setPlatformAPI } from 'zrender/lib/core/platform.js';\r\nimport { getImpl } from './impl.js';\r\nvar hasWindow = typeof window !== 'undefined';\r\nexport var version = '5.3.2';\r\nexport var dependencies = {\r\n zrender: '5.3.1'\r\n};\r\nvar TEST_FRAME_REMAIN_TIME = 1;\r\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800; // Some data processors depends on the stack result dimension (to calculate data extent).\r\n// So data stack stage should be in front of data processing stage.\r\n\r\nvar PRIORITY_PROCESSOR_DATASTACK = 900; // \"Data filter\" will block the stream, so it should be\r\n// put at the begining of data processing.\r\n\r\nvar PRIORITY_PROCESSOR_FILTER = 1000;\r\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\r\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\r\nvar PRIORITY_VISUAL_LAYOUT = 1000;\r\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\r\nvar PRIORITY_VISUAL_GLOBAL = 2000;\r\nvar PRIORITY_VISUAL_CHART = 3000;\r\nvar PRIORITY_VISUAL_COMPONENT = 4000; // Visual property in data. Greater than `PRIORITY_VISUAL_COMPONENT` to enable to\r\n// overwrite the viusal result of component (like `visualMap`)\r\n// using data item specific setting (like itemStyle.xxx on data item)\r\n\r\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500; // Greater than `PRIORITY_VISUAL_CHART_DATA_CUSTOM` to enable to layout based on\r\n// visual result like `symbolSize`.\r\n\r\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\r\nvar PRIORITY_VISUAL_BRUSH = 5000;\r\nvar PRIORITY_VISUAL_ARIA = 6000;\r\nvar PRIORITY_VISUAL_DECAL = 7000;\r\nexport var PRIORITY = {\r\n PROCESSOR: {\r\n FILTER: PRIORITY_PROCESSOR_FILTER,\r\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\r\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\r\n },\r\n VISUAL: {\r\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\r\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\r\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\r\n CHART: PRIORITY_VISUAL_CHART,\r\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\r\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\r\n BRUSH: PRIORITY_VISUAL_BRUSH,\r\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\r\n ARIA: PRIORITY_VISUAL_ARIA,\r\n DECAL: PRIORITY_VISUAL_DECAL\r\n }\r\n}; // Main process have three entries: `setOption`, `dispatchAction` and `resize`,\r\n// where they must not be invoked nestedly, except the only case: invoke\r\n// dispatchAction with updateMethod \"none\" in main process.\r\n// This flag is used to carry out this rule.\r\n// All events will be triggered out side main process (i.e. when !this[IN_MAIN_PROCESS]).\r\n\r\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\r\nvar PENDING_UPDATE = '__pendingUpdate';\r\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\r\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\r\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\r\nvar CONNECT_STATUS_PENDING = 0;\r\nvar CONNECT_STATUS_UPDATING = 1;\r\nvar CONNECT_STATUS_UPDATED = 2;\r\n;\r\n;\r\n\r\nfunction createRegisterEventWithLowercaseECharts(method) {\r\n return function () {\r\n var args = [];\r\n\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n\r\n if (this.isDisposed()) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n}\r\n\r\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\r\n return function () {\r\n var args = [];\r\n\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n}\r\n\r\nfunction toLowercaseNameAndCallEventful(host, method, args) {\r\n // `args[0]` is event name. Event name is all lowercase.\r\n args[0] = args[0] && args[0].toLowerCase();\r\n return Eventful.prototype[method].apply(host, args);\r\n}\r\n\r\nvar MessageCenter =\r\n/** @class */\r\nfunction (_super) {\r\n __extends(MessageCenter, _super);\r\n\r\n function MessageCenter() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n\r\n return MessageCenter;\r\n}(Eventful);\r\n\r\nvar messageCenterProto = MessageCenter.prototype;\r\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\r\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off'); // ---------------------------------------\r\n// Internal method names for class ECharts\r\n// ---------------------------------------\r\n\r\nvar prepare;\r\nvar prepareView;\r\nvar updateDirectly;\r\nvar updateMethods;\r\nvar doConvertPixel;\r\nvar updateStreamModes;\r\nvar doDispatchAction;\r\nvar flushPendingActions;\r\nvar triggerUpdatedEvent;\r\nvar bindRenderedEvent;\r\nvar bindMouseEvent;\r\nvar render;\r\nvar renderComponents;\r\nvar renderSeries;\r\nvar createExtensionAPI;\r\nvar enableConnect;\r\nvar markStatusToUpdate;\r\nvar applyChangedStates;\r\n\r\nvar ECharts =\r\n/** @class */\r\nfunction (_super) {\r\n __extends(ECharts, _super);\r\n\r\n function ECharts(dom, // Theme name or themeOption.\r\n theme, opts) {\r\n var _this = _super.call(this, new ECEventProcessor()) || this;\r\n\r\n _this._chartsViews = [];\r\n _this._chartsMap = {};\r\n _this._componentsViews = [];\r\n _this._componentsMap = {}; // Can't dispatch action during rendering procedure\r\n\r\n _this._pendingActions = [];\r\n opts = opts || {}; // Get theme by name\r\n\r\n if (isString(theme)) {\r\n theme = themeStorage[theme];\r\n }\r\n\r\n _this._dom = dom;\r\n var defaultRenderer = 'canvas';\r\n var defaultUseDirtyRect = false;\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n var root =\r\n /* eslint-disable-next-line */\r\n hasWindow ? window : global;\r\n defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\r\n var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\r\n defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\r\n }\r\n\r\n var zr = _this._zr = zrender.init(dom, {\r\n renderer: opts.renderer || defaultRenderer,\r\n devicePixelRatio: opts.devicePixelRatio,\r\n width: opts.width,\r\n height: opts.height,\r\n ssr: opts.ssr,\r\n useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\r\n });\r\n _this._ssr = opts.ssr; // Expect 60 fps.\r\n\r\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\r\n theme = clone(theme);\r\n theme && backwardCompat(theme, true);\r\n _this._theme = theme;\r\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\r\n _this._coordSysMgr = new CoordinateSystemManager();\r\n var api = _this._api = createExtensionAPI(_this); // Sort on demand\r\n\r\n function prioritySortFunc(a, b) {\r\n return a.__prio - b.__prio;\r\n }\r\n\r\n timsort(visualFuncs, prioritySortFunc);\r\n timsort(dataProcessorFuncs, prioritySortFunc);\r\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\r\n _this._messageCenter = new MessageCenter(); // Init mouse events\r\n\r\n _this._initEvents(); // In case some people write `window.onresize = chart.resize`\r\n\r\n\r\n _this.resize = bind(_this.resize, _this);\r\n zr.animation.on('frame', _this._onframe, _this);\r\n bindRenderedEvent(zr, _this);\r\n bindMouseEvent(zr, _this); // ECharts instance can be used as value.\r\n\r\n setAsPrimitive(_this);\r\n return _this;\r\n }\r\n\r\n ECharts.prototype._onframe = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n\r\n applyChangedStates(this);\r\n var scheduler = this._scheduler; // Lazy update\r\n\r\n if (this[PENDING_UPDATE]) {\r\n var silent = this[PENDING_UPDATE].silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n\r\n try {\r\n prepare(this);\r\n updateMethods.update.call(this, null, this[PENDING_UPDATE].updateParams);\r\n } catch (e) {\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this[PENDING_UPDATE] = null;\r\n throw e;\r\n } // At present, in each frame, zrender performs:\r\n // (1) animation step forward.\r\n // (2) trigger('frame') (where this `_onframe` is called)\r\n // (3) zrender flush (render).\r\n // If we do nothing here, since we use `setToFinal: true`, the step (3) above\r\n // will render the final state of the elements before the real animation started.\r\n\r\n\r\n this._zr.flush();\r\n\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this[PENDING_UPDATE] = null;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n } // Avoid do both lazy update and progress in one frame.\r\n else if (scheduler.unfinished) {\r\n // Stream progress.\r\n var remainTime = TEST_FRAME_REMAIN_TIME;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n scheduler.unfinished = false;\r\n\r\n do {\r\n var startTime = +new Date();\r\n scheduler.performSeriesTasks(ecModel); // Currently dataProcessorFuncs do not check threshold.\r\n\r\n scheduler.performDataProcessorTasks(ecModel);\r\n updateStreamModes(this, ecModel); // Do not update coordinate system here. Because that coord system update in\r\n // each frame is not a good user experience. So we follow the rule that\r\n // the extent of the coordinate system is determin in the first frame (the\r\n // frame is executed immedietely after task reset.\r\n // this._coordSysMgr.update(ecModel, api);\r\n // console.log('--- ec frame visual ---', remainTime);\r\n\r\n scheduler.performVisualTasks(ecModel);\r\n renderSeries(this, this._model, api, 'remain', {});\r\n remainTime -= +new Date() - startTime;\r\n } while (remainTime > 0 && scheduler.unfinished); // Call flush explicitly for trigger finished event.\r\n\r\n\r\n if (!scheduler.unfinished) {\r\n this._zr.flush();\r\n } // Else, zr flushing be ensue within the same frame,\r\n // because zr flushing is after onframe event.\r\n\r\n }\r\n };\r\n\r\n ECharts.prototype.getDom = function () {\r\n return this._dom;\r\n };\r\n\r\n ECharts.prototype.getId = function () {\r\n return this.id;\r\n };\r\n\r\n ECharts.prototype.getZr = function () {\r\n return this._zr;\r\n };\r\n\r\n ECharts.prototype.isSSR = function () {\r\n return this._ssr;\r\n };\r\n /* eslint-disable-next-line */\r\n\r\n\r\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n error('`setOption` should not be called during main process.');\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n var silent;\r\n var replaceMerge;\r\n var transitionOpt;\r\n\r\n if (isObject(notMerge)) {\r\n lazyUpdate = notMerge.lazyUpdate;\r\n silent = notMerge.silent;\r\n replaceMerge = notMerge.replaceMerge;\r\n transitionOpt = notMerge.transition;\r\n notMerge = notMerge.notMerge;\r\n }\r\n\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n\r\n if (!this._model || notMerge) {\r\n var optionManager = new OptionManager(this._api);\r\n var theme = this._theme;\r\n var ecModel = this._model = new GlobalModel();\r\n ecModel.scheduler = this._scheduler;\r\n ecModel.ssr = this._ssr;\r\n ecModel.init(null, null, null, theme, this._locale, optionManager);\r\n }\r\n\r\n this._model.setOption(option, {\r\n replaceMerge: replaceMerge\r\n }, optionPreprocessorFuncs);\r\n\r\n var updateParams = {\r\n seriesTransition: transitionOpt,\r\n optionChanged: true\r\n };\r\n\r\n if (lazyUpdate) {\r\n this[PENDING_UPDATE] = {\r\n silent: silent,\r\n updateParams: updateParams\r\n };\r\n this[IN_MAIN_PROCESS_KEY] = false; // `setOption(option, {lazyMode: true})` may be called when zrender has been slept.\r\n // It should wake it up to make sure zrender start to render at the next frame.\r\n\r\n this.getZr().wakeUp();\r\n } else {\r\n try {\r\n prepare(this);\r\n updateMethods.update.call(this, null, updateParams);\r\n } catch (e) {\r\n this[PENDING_UPDATE] = null;\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n throw e;\r\n } // Ensure zr refresh sychronously, and then pixel in canvas can be\r\n // fetched after `setOption`.\r\n\r\n\r\n if (!this._ssr) {\r\n // not use flush when using ssr mode.\r\n this._zr.flush();\r\n }\r\n\r\n this[PENDING_UPDATE] = null;\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n };\r\n /**\r\n * @deprecated\r\n */\r\n\r\n\r\n ECharts.prototype.setTheme = function () {\r\n deprecateLog('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\r\n }; // We don't want developers to use getModel directly.\r\n\r\n\r\n ECharts.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n\r\n ECharts.prototype.getOption = function () {\r\n return this._model && this._model.getOption();\r\n };\r\n\r\n ECharts.prototype.getWidth = function () {\r\n return this._zr.getWidth();\r\n };\r\n\r\n ECharts.prototype.getHeight = function () {\r\n return this._zr.getHeight();\r\n };\r\n\r\n ECharts.prototype.getDevicePixelRatio = function () {\r\n return this._zr.painter.dpr\r\n /* eslint-disable-next-line */\r\n || hasWindow && window.devicePixelRatio || 1;\r\n };\r\n /**\r\n * Get canvas which has all thing rendered\r\n * @deprecated Use renderToCanvas instead.\r\n */\r\n\r\n\r\n ECharts.prototype.getRenderedCanvas = function (opts) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n deprecateReplaceLog('getRenderedCanvas', 'renderToCanvas');\r\n }\r\n\r\n return this.renderToCanvas(opts);\r\n };\r\n\r\n ECharts.prototype.renderToCanvas = function (opts) {\r\n opts = opts || {};\r\n var painter = this._zr.painter;\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (painter.type !== 'canvas') {\r\n throw new Error('renderToCanvas can only be used in the canvas renderer.');\r\n }\r\n }\r\n\r\n return painter.getRenderedCanvas({\r\n backgroundColor: opts.backgroundColor || this._model.get('backgroundColor'),\r\n pixelRatio: opts.pixelRatio || this.getDevicePixelRatio()\r\n });\r\n };\r\n\r\n ECharts.prototype.renderToSVGString = function (opts) {\r\n opts = opts || {};\r\n var painter = this._zr.painter;\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (painter.type !== 'svg') {\r\n throw new Error('renderToSVGString can only be used in the svg renderer.');\r\n }\r\n }\r\n\r\n return painter.renderToString({\r\n useViewBox: opts.useViewBox\r\n });\r\n };\r\n /**\r\n * Get svg data url\r\n */\r\n\r\n\r\n ECharts.prototype.getSvgDataURL = function () {\r\n if (!env.svgSupported) {\r\n return;\r\n }\r\n\r\n var zr = this._zr;\r\n var list = zr.storage.getDisplayList(); // Stop animations\r\n\r\n each(list, function (el) {\r\n el.stopAnimation(null, true);\r\n });\r\n return zr.painter.toDataURL();\r\n };\r\n\r\n ECharts.prototype.getDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n opts = opts || {};\r\n var excludeComponents = opts.excludeComponents;\r\n var ecModel = this._model;\r\n var excludesComponentViews = [];\r\n var self = this;\r\n each(excludeComponents, function (componentType) {\r\n ecModel.eachComponent({\r\n mainType: componentType\r\n }, function (component) {\r\n var view = self._componentsMap[component.__viewId];\r\n\r\n if (!view.group.ignore) {\r\n excludesComponentViews.push(view);\r\n view.group.ignore = true;\r\n }\r\n });\r\n });\r\n var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.renderToCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\r\n each(excludesComponentViews, function (view) {\r\n view.group.ignore = false;\r\n });\r\n return url;\r\n };\r\n\r\n ECharts.prototype.getConnectedDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n var isSvg = opts.type === 'svg';\r\n var groupId = this.group;\r\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var MAX_NUMBER = Infinity;\r\n\r\n if (connectedGroups[groupId]) {\r\n var left_1 = MAX_NUMBER;\r\n var top_1 = MAX_NUMBER;\r\n var right_1 = -MAX_NUMBER;\r\n var bottom_1 = -MAX_NUMBER;\r\n var canvasList_1 = [];\r\n var dpr_1 = opts && opts.pixelRatio || this.getDevicePixelRatio();\r\n each(instances, function (chart, id) {\r\n if (chart.group === groupId) {\r\n var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.renderToCanvas(clone(opts));\r\n var boundingRect = chart.getDom().getBoundingClientRect();\r\n left_1 = mathMin(boundingRect.left, left_1);\r\n top_1 = mathMin(boundingRect.top, top_1);\r\n right_1 = mathMax(boundingRect.right, right_1);\r\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\r\n canvasList_1.push({\r\n dom: canvas,\r\n left: boundingRect.left,\r\n top: boundingRect.top\r\n });\r\n }\r\n });\r\n left_1 *= dpr_1;\r\n top_1 *= dpr_1;\r\n right_1 *= dpr_1;\r\n bottom_1 *= dpr_1;\r\n var width = right_1 - left_1;\r\n var height = bottom_1 - top_1;\r\n var targetCanvas = platformApi.createCanvas();\r\n var zr_1 = zrender.init(targetCanvas, {\r\n renderer: isSvg ? 'svg' : 'canvas'\r\n });\r\n zr_1.resize({\r\n width: width,\r\n height: height\r\n });\r\n\r\n if (isSvg) {\r\n var content_1 = '';\r\n each(canvasList_1, function (item) {\r\n var x = item.left - left_1;\r\n var y = item.top - top_1;\r\n content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\r\n });\r\n zr_1.painter.getSvgRoot().innerHTML = content_1;\r\n\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\r\n }\r\n\r\n zr_1.refreshImmediately();\r\n return zr_1.painter.toDataURL();\r\n } else {\r\n // Background between the charts\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.add(new graphic.Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n },\r\n style: {\r\n fill: opts.connectedBackgroundColor\r\n }\r\n }));\r\n }\r\n\r\n each(canvasList_1, function (item) {\r\n var img = new graphic.Image({\r\n style: {\r\n x: item.left * dpr_1 - left_1,\r\n y: item.top * dpr_1 - top_1,\r\n image: item.dom\r\n }\r\n });\r\n zr_1.add(img);\r\n });\r\n zr_1.refreshImmediately();\r\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\r\n }\r\n } else {\r\n return this.getDataURL(opts);\r\n }\r\n };\r\n\r\n ECharts.prototype.convertToPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertToPixel', finder, value);\r\n };\r\n\r\n ECharts.prototype.convertFromPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertFromPixel', finder, value);\r\n };\r\n /**\r\n * Is the specified coordinate systems or components contain the given pixel point.\r\n * @param {Array|number} value\r\n * @return {boolean} result\r\n */\r\n\r\n\r\n ECharts.prototype.containPixel = function (finder, value) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n var ecModel = this._model;\r\n var result;\r\n var findResult = modelUtil.parseFinder(ecModel, finder);\r\n each(findResult, function (models, key) {\r\n key.indexOf('Models') >= 0 && each(models, function (model) {\r\n var coordSys = model.coordinateSystem;\r\n\r\n if (coordSys && coordSys.containPoint) {\r\n result = result || !!coordSys.containPoint(value);\r\n } else if (key === 'seriesModels') {\r\n var view = this._chartsMap[model.__viewId];\r\n\r\n if (view && view.containPoint) {\r\n result = result || view.containPoint(value, model);\r\n } else {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\r\n }\r\n }\r\n } else {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(key + ': containPoint is not supported');\r\n }\r\n }\r\n }, this);\r\n }, this);\r\n return !!result;\r\n };\r\n /**\r\n * Get visual from series or data.\r\n * @param finder\r\n * If string, e.g., 'series', means {seriesIndex: 0}.\r\n * If Object, could contain some of these properties below:\r\n * {\r\n * seriesIndex / seriesId / seriesName,\r\n * dataIndex / dataIndexInside\r\n * }\r\n * If dataIndex is not specified, series visual will be fetched,\r\n * but not data item visual.\r\n * If all of seriesIndex, seriesId, seriesName are not specified,\r\n * visual will be fetched from first series.\r\n * @param visualType 'color', 'symbol', 'symbolSize'\r\n */\r\n\r\n\r\n ECharts.prototype.getVisual = function (finder, visualType) {\r\n var ecModel = this._model;\r\n var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\r\n defaultMainType: 'series'\r\n });\r\n var seriesModel = parsedFinder.seriesModel;\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!seriesModel) {\r\n console.warn('There is no specified seires model');\r\n }\r\n }\r\n\r\n var data = seriesModel.getData();\r\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\r\n return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\r\n };\r\n /**\r\n * Get view of corresponding component model\r\n */\r\n\r\n\r\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\r\n return this._componentsMap[componentModel.__viewId];\r\n };\r\n /**\r\n * Get view of corresponding series model\r\n */\r\n\r\n\r\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return this._chartsMap[seriesModel.__viewId];\r\n };\r\n\r\n ECharts.prototype._initEvents = function () {\r\n var _this = this;\r\n\r\n each(MOUSE_EVENT_NAMES, function (eveName) {\r\n var handler = function (e) {\r\n var ecModel = _this.getModel();\r\n\r\n var el = e.target;\r\n var params;\r\n var isGlobalOut = eveName === 'globalout'; // no e.target when 'globalout'.\r\n\r\n if (isGlobalOut) {\r\n params = {};\r\n } else {\r\n el && findEventDispatcher(el, function (parent) {\r\n var ecData = getECData(parent);\r\n\r\n if (ecData && ecData.dataIndex != null) {\r\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\r\n return true;\r\n } // If element has custom eventData of components\r\n else if (ecData.eventData) {\r\n params = extend({}, ecData.eventData);\r\n return true;\r\n }\r\n }, true);\r\n } // Contract: if params prepared in mouse event,\r\n // these properties must be specified:\r\n // {\r\n // componentType: string (component main type)\r\n // componentIndex: number\r\n // }\r\n // Otherwise event query can not work.\r\n\r\n\r\n if (params) {\r\n var componentType = params.componentType;\r\n var componentIndex = params.componentIndex; // Special handling for historic reason: when trigger by\r\n // markLine/markPoint/markArea, the componentType is\r\n // 'markLine'/'markPoint'/'markArea', but we should better\r\n // enable them to be queried by seriesIndex, since their\r\n // option is set in each series.\r\n\r\n if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\r\n componentType = 'series';\r\n componentIndex = params.seriesIndex;\r\n }\r\n\r\n var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\r\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n // `event.componentType` and `event[componentTpype + 'Index']` must not\r\n // be missed, otherwise there is no way to distinguish source component.\r\n // See `dataFormat.getDataParams`.\r\n if (!isGlobalOut && !(model && view)) {\r\n console.warn('model or view can not be found by params');\r\n }\r\n }\r\n\r\n params.event = e;\r\n params.type = eveName;\r\n _this._$eventProcessor.eventInfo = {\r\n targetEl: el,\r\n packedEvent: params,\r\n model: model,\r\n view: view\r\n };\r\n\r\n _this.trigger(eveName, params);\r\n }\r\n }; // Consider that some component (like tooltip, brush, ...)\r\n // register zr event handler, but user event handler might\r\n // do anything, such as call `setOption` or `dispatchAction`,\r\n // which probably update any of the content and probably\r\n // cause problem if it is called previous other inner handlers.\r\n\r\n\r\n handler.zrEventfulCallAtLast = true;\r\n\r\n _this._zr.on(eveName, handler, _this);\r\n });\r\n each(eventActionMap, function (actionType, eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n }); // Extra events\r\n // TODO register?\r\n\r\n each(['selectchanged'], function (eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n handleLegacySelectEvents(this._messageCenter, this, this._api);\r\n };\r\n\r\n ECharts.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n\r\n ECharts.prototype.clear = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n this.setOption({\r\n series: []\r\n }, true);\r\n };\r\n\r\n ECharts.prototype.dispose = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n this._disposed = true;\r\n var dom = this.getDom();\r\n\r\n if (dom) {\r\n modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\r\n }\r\n\r\n var chart = this;\r\n var api = chart._api;\r\n var ecModel = chart._model;\r\n each(chart._componentsViews, function (component) {\r\n component.dispose(ecModel, api);\r\n });\r\n each(chart._chartsViews, function (chart) {\r\n chart.dispose(ecModel, api);\r\n }); // Dispose after all views disposed\r\n\r\n chart._zr.dispose(); // Set properties to null.\r\n // To reduce the memory cost in case the top code still holds this instance unexpectedly.\r\n\r\n\r\n chart._dom = chart._model = chart._chartsMap = chart._componentsMap = chart._chartsViews = chart._componentsViews = chart._scheduler = chart._api = chart._zr = chart._throttledZrFlush = chart._theme = chart._coordSysMgr = chart._messageCenter = null;\r\n delete instances[chart.id];\r\n };\r\n /**\r\n * Resize the chart\r\n */\r\n\r\n\r\n ECharts.prototype.resize = function (opts) {\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n error('`resize` should not be called during main process.');\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n this._zr.resize(opts);\r\n\r\n var ecModel = this._model; // Resize loading effect\r\n\r\n this._loadingFX && this._loadingFX.resize();\r\n\r\n if (!ecModel) {\r\n return;\r\n }\r\n\r\n var needPrepare = ecModel.resetOption('media');\r\n var silent = opts && opts.silent; // There is some real cases that:\r\n // chart.setOption(option, { lazyUpdate: true });\r\n // chart.resize();\r\n\r\n if (this[PENDING_UPDATE]) {\r\n if (silent == null) {\r\n silent = this[PENDING_UPDATE].silent;\r\n }\r\n\r\n needPrepare = true;\r\n this[PENDING_UPDATE] = null;\r\n }\r\n\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n\r\n try {\r\n needPrepare && prepare(this);\r\n updateMethods.update.call(this, {\r\n type: 'resize',\r\n animation: extend({\r\n // Disable animation\r\n duration: 0\r\n }, opts && opts.animation)\r\n });\r\n } catch (e) {\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n throw e;\r\n }\r\n\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n\r\n ECharts.prototype.showLoading = function (name, cfg) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n if (isObject(name)) {\r\n cfg = name;\r\n name = '';\r\n }\r\n\r\n name = name || 'default';\r\n this.hideLoading();\r\n\r\n if (!loadingEffects[name]) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn('Loading effects ' + name + ' not exists.');\r\n }\r\n\r\n return;\r\n }\r\n\r\n var el = loadingEffects[name](this._api, cfg);\r\n var zr = this._zr;\r\n this._loadingFX = el;\r\n zr.add(el);\r\n };\r\n /**\r\n * Hide loading effect\r\n */\r\n\r\n\r\n ECharts.prototype.hideLoading = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n this._loadingFX && this._zr.remove(this._loadingFX);\r\n this._loadingFX = null;\r\n };\r\n\r\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\r\n var payload = extend({}, eventObj);\r\n payload.type = eventActionMap[eventObj.type];\r\n return payload;\r\n };\r\n /**\r\n * @param opt If pass boolean, means opt.silent\r\n * @param opt.silent Default `false`. Whether trigger events.\r\n * @param opt.flush Default `undefined`.\r\n * true: Flush immediately, and then pixel in canvas can be fetched\r\n * immediately. Caution: it might affect performance.\r\n * false: Not flush.\r\n * undefined: Auto decide whether perform flush.\r\n */\r\n\r\n\r\n ECharts.prototype.dispatchAction = function (payload, opt) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n if (!isObject(opt)) {\r\n opt = {\r\n silent: !!opt\r\n };\r\n }\r\n\r\n if (!actions[payload.type]) {\r\n return;\r\n } // Avoid dispatch action before setOption. Especially in `connect`.\r\n\r\n\r\n if (!this._model) {\r\n return;\r\n } // May dispatchAction in rendering procedure\r\n\r\n\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n this._pendingActions.push(payload);\r\n\r\n return;\r\n }\r\n\r\n var silent = opt.silent;\r\n doDispatchAction.call(this, payload, silent);\r\n var flush = opt.flush;\r\n\r\n if (flush) {\r\n this._zr.flush();\r\n } else if (flush !== false && env.browser.weChat) {\r\n // In WeChat embeded browser, `requestAnimationFrame` and `setInterval`\r\n // hang when sliding page (on touch event), which cause that zr does not\r\n // refresh util user interaction finished, which is not expected.\r\n // But `dispatchAction` may be called too frequently when pan on touch\r\n // screen, which impacts performance if do not throttle them.\r\n this._throttledZrFlush();\r\n }\r\n\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n\r\n ECharts.prototype.updateLabelLayout = function () {\r\n lifecycle.trigger('series:layoutlabels', this._model, this._api, {\r\n // Not adding series labels.\r\n // TODO\r\n updatedSeries: []\r\n });\r\n };\r\n\r\n ECharts.prototype.appendData = function (params) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n\r\n var seriesIndex = params.seriesIndex;\r\n var ecModel = this.getModel();\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n assert(params.data && seriesModel);\r\n }\r\n\r\n seriesModel.appendData(params); // Note: `appendData` does not support that update extent of coordinate\r\n // system, util some scenario require that. In the expected usage of\r\n // `appendData`, the initial extent of coordinate system should better\r\n // be fixed by axis `min`/`max` setting or initial data, otherwise if\r\n // the extent changed while `appendData`, the location of the painted\r\n // graphic elements have to be changed, which make the usage of\r\n // `appendData` meaningless.\r\n\r\n this._scheduler.unfinished = true;\r\n this.getZr().wakeUp();\r\n }; // A work around for no `internal` modifier in ts yet but\r\n // need to strictly hide private methods to JS users.\r\n\r\n\r\n ECharts.internalField = function () {\r\n prepare = function (ecIns) {\r\n var scheduler = ecIns._scheduler;\r\n scheduler.restorePipelines(ecIns._model);\r\n scheduler.prepareStageTasks();\r\n prepareView(ecIns, true);\r\n prepareView(ecIns, false);\r\n scheduler.plan();\r\n };\r\n /**\r\n * Prepare view instances of charts and components\r\n */\r\n\r\n\r\n prepareView = function (ecIns, isComponent) {\r\n var ecModel = ecIns._model;\r\n var scheduler = ecIns._scheduler;\r\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\r\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\r\n var zr = ecIns._zr;\r\n var api = ecIns._api;\r\n\r\n for (var i = 0; i < viewList.length; i++) {\r\n viewList[i].__alive = false;\r\n }\r\n\r\n isComponent ? ecModel.eachComponent(function (componentType, model) {\r\n componentType !== 'series' && doPrepare(model);\r\n }) : ecModel.eachSeries(doPrepare);\r\n\r\n function doPrepare(model) {\r\n // By defaut view will be reused if possible for the case that `setOption` with \"notMerge\"\r\n // mode and need to enable transition animation. (Usually, when they have the same id, or\r\n // especially no id but have the same type & name & index. See the `model.id` generation\r\n // rule in `makeIdAndName` and `viewId` generation rule here).\r\n // But in `replaceMerge` mode, this feature should be able to disabled when it is clear that\r\n // the new model has nothing to do with the old model.\r\n var requireNewView = model.__requireNewView; // This command should not work twice.\r\n\r\n model.__requireNewView = false; // Consider: id same and type changed.\r\n\r\n var viewId = '_ec_' + model.id + '_' + model.type;\r\n var view = !requireNewView && viewMap[viewId];\r\n\r\n if (!view) {\r\n var classType = parseClassType(model.type);\r\n var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : // FIXME:TS\r\n // (ChartView as ChartViewConstructor).getClass('series', classType.sub)\r\n // For backward compat, still support a chart type declared as only subType\r\n // like \"liquidfill\", but recommend \"series.liquidfill\"\r\n // But need a base class to make a type series.\r\n ChartView.getClass(classType.sub);\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n assert(Clazz, classType.sub + ' does not exist.');\r\n }\r\n\r\n view = new Clazz();\r\n view.init(ecModel, api);\r\n viewMap[viewId] = view;\r\n viewList.push(view);\r\n zr.add(view.group);\r\n }\r\n\r\n model.__viewId = view.__id = viewId;\r\n view.__alive = true;\r\n view.__model = model;\r\n view.group.__ecComponentInfo = {\r\n mainType: model.mainType,\r\n index: model.componentIndex\r\n };\r\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\r\n }\r\n\r\n for (var i = 0; i < viewList.length;) {\r\n var view = viewList[i];\r\n\r\n if (!view.__alive) {\r\n !isComponent && view.renderTask.dispose();\r\n zr.remove(view.group);\r\n view.dispose(ecModel, api);\r\n viewList.splice(i, 1);\r\n\r\n if (viewMap[view.__id] === view) {\r\n delete viewMap[view.__id];\r\n }\r\n\r\n view.__id = view.group.__ecComponentInfo = null;\r\n } else {\r\n i++;\r\n }\r\n }\r\n };\r\n\r\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\r\n var ecModel = ecIns._model;\r\n ecModel.setUpdatePayload(payload); // broadcast\r\n\r\n if (!mainType) {\r\n // FIXME\r\n // Chart will not be update directly here, except set dirty.\r\n // But there is no such scenario now.\r\n each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\r\n return;\r\n }\r\n\r\n var query = {};\r\n query[mainType + 'Id'] = payload[mainType + 'Id'];\r\n query[mainType + 'Index'] = payload[mainType + 'Index'];\r\n query[mainType + 'Name'] = payload[mainType + 'Name'];\r\n var condition = {\r\n mainType: mainType,\r\n query: query\r\n };\r\n subType && (condition.subType = subType); // subType may be '' by parseClassType;\r\n\r\n var excludeSeriesId = payload.excludeSeriesId;\r\n var excludeSeriesIdMap;\r\n\r\n if (excludeSeriesId != null) {\r\n excludeSeriesIdMap = createHashMap();\r\n each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\r\n var modelId = modelUtil.convertOptionIdName(id, null);\r\n\r\n if (modelId != null) {\r\n excludeSeriesIdMap.set(modelId, true);\r\n }\r\n });\r\n } // If dispatchAction before setOption, do nothing.\r\n\r\n\r\n ecModel && ecModel.eachComponent(condition, function (model) {\r\n var isExcluded = excludeSeriesIdMap && excludeSeriesIdMap.get(model.id) !== null;\r\n\r\n if (isExcluded) {\r\n return;\r\n }\r\n\r\n ;\r\n\r\n if (isHighDownPayload(payload)) {\r\n if (model instanceof SeriesModel) {\r\n if (payload.type === HIGHLIGHT_ACTION_TYPE && !payload.notBlur && !model.get(['emphasis', 'disabled'])) {\r\n blurSeriesFromHighlightPayload(model, payload, ecIns._api);\r\n }\r\n } else {\r\n var _a = findComponentHighDownDispatchers(model.mainType, model.componentIndex, payload.name, ecIns._api),\r\n focusSelf = _a.focusSelf,\r\n dispatchers = _a.dispatchers;\r\n\r\n if (payload.type === HIGHLIGHT_ACTION_TYPE && focusSelf && !payload.notBlur) {\r\n blurComponent(model.mainType, model.componentIndex, ecIns._api);\r\n } // PENDING:\r\n // Whether to put this \"enter emphasis\" code in `ComponentView`,\r\n // which will be the same as `ChartView` but might be not necessary\r\n // and will be far from this logic.\r\n\r\n\r\n if (dispatchers) {\r\n each(dispatchers, function (dispatcher) {\r\n payload.type === HIGHLIGHT_ACTION_TYPE ? enterEmphasis(dispatcher) : leaveEmphasis(dispatcher);\r\n });\r\n }\r\n }\r\n } else if (isSelectChangePayload(payload)) {\r\n // TODO geo\r\n if (model instanceof SeriesModel) {\r\n toggleSelectionFromPayload(model, payload, ecIns._api);\r\n updateSeriesElementSelection(model);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }\r\n }, ecIns);\r\n ecModel && ecModel.eachComponent(condition, function (model) {\r\n var isExcluded = excludeSeriesIdMap && excludeSeriesIdMap.get(model.id) !== null;\r\n\r\n if (isExcluded) {\r\n return;\r\n }\r\n\r\n ;\r\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\r\n }, ecIns);\r\n\r\n function callView(view) {\r\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\r\n }\r\n };\r\n\r\n updateMethods = {\r\n prepareAndUpdate: function (payload) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload, {\r\n // Needs to mark option changed if newOption is given.\r\n // It's from MagicType.\r\n // TODO If use a separate flag optionChanged in payload?\r\n optionChanged: payload.newOption != null\r\n });\r\n },\r\n update: function (payload, updateParams) {\r\n var ecModel = this._model;\r\n var api = this._api;\r\n var zr = this._zr;\r\n var coordSysMgr = this._coordSysMgr;\r\n var scheduler = this._scheduler; // update before setOption\r\n\r\n if (!ecModel) {\r\n return;\r\n }\r\n\r\n ecModel.setUpdatePayload(payload);\r\n scheduler.restoreData(ecModel, payload);\r\n scheduler.performSeriesTasks(ecModel); // TODO\r\n // Save total ecModel here for undo/redo (after restoring data and before processing data).\r\n // Undo (restoration of total ecModel) can be carried out in 'action' or outside API call.\r\n // Create new coordinate system each update\r\n // In LineView may save the old coordinate system and use it to get the orignal point\r\n\r\n coordSysMgr.create(ecModel, api);\r\n scheduler.performDataProcessorTasks(ecModel, payload); // Current stream render is not supported in data process. So we can update\r\n // stream modes after data processing, where the filtered data is used to\r\n // deteming whether use progressive rendering.\r\n\r\n updateStreamModes(this, ecModel); // We update stream modes before coordinate system updated, then the modes info\r\n // can be fetched when coord sys updating (consider the barGrid extent fix). But\r\n // the drawback is the full coord info can not be fetched. Fortunately this full\r\n // coord is not requied in stream mode updater currently.\r\n\r\n coordSysMgr.update(ecModel, api);\r\n clearColorPalette(ecModel);\r\n scheduler.performVisualTasks(ecModel, payload);\r\n render(this, ecModel, api, payload, updateParams); // Set background\r\n\r\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\r\n var darkMode = ecModel.get('darkMode');\r\n zr.setBackgroundColor(backgroundColor); // Force set dark mode.\r\n\r\n if (darkMode != null && darkMode !== 'auto') {\r\n zr.setDarkMode(darkMode);\r\n }\r\n\r\n lifecycle.trigger('afterupdate', ecModel, api);\r\n },\r\n updateTransform: function (payload) {\r\n var _this = this;\r\n\r\n var ecModel = this._model;\r\n var api = this._api; // update before setOption\r\n\r\n if (!ecModel) {\r\n return;\r\n }\r\n\r\n ecModel.setUpdatePayload(payload); // ChartView.markUpdateMethod(payload, 'updateTransform');\r\n\r\n var componentDirtyList = [];\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n\r\n if (componentView && componentView.__alive) {\r\n if (componentView.updateTransform) {\r\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\r\n result && result.update && componentDirtyList.push(componentView);\r\n } else {\r\n componentDirtyList.push(componentView);\r\n }\r\n }\r\n });\r\n var seriesDirtyMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n\r\n if (chartView.updateTransform) {\r\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\r\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\r\n } else {\r\n seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n });\r\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\r\n // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true);\r\n\r\n this._scheduler.performVisualTasks(ecModel, payload, {\r\n setDirty: true,\r\n dirtyMap: seriesDirtyMap\r\n }); // Currently, not call render of components. Geo render cost a lot.\r\n // renderComponents(ecIns, ecModel, api, payload, componentDirtyList);\r\n\r\n\r\n renderSeries(this, ecModel, api, payload, {}, seriesDirtyMap);\r\n lifecycle.trigger('afterupdate', ecModel, api);\r\n },\r\n updateView: function (payload) {\r\n var ecModel = this._model; // update before setOption\r\n\r\n if (!ecModel) {\r\n return;\r\n }\r\n\r\n ecModel.setUpdatePayload(payload);\r\n ChartView.markUpdateMethod(payload, 'updateView');\r\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\r\n\r\n this._scheduler.performVisualTasks(ecModel, payload, {\r\n setDirty: true\r\n });\r\n\r\n render(this, ecModel, this._api, payload, {});\r\n lifecycle.trigger('afterupdate', ecModel, this._api);\r\n },\r\n updateVisual: function (payload) {\r\n // updateMethods.update.call(this, payload);\r\n var _this = this;\r\n\r\n var ecModel = this._model; // update before setOption\r\n\r\n if (!ecModel) {\r\n return;\r\n }\r\n\r\n ecModel.setUpdatePayload(payload); // clear all visual\r\n\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.getData().clearAllVisual();\r\n }); // Perform visual\r\n\r\n ChartView.markUpdateMethod(payload, 'updateVisual');\r\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\r\n\r\n this._scheduler.performVisualTasks(ecModel, payload, {\r\n visualType: 'visual',\r\n setDirty: true\r\n });\r\n\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType !== 'series') {\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n\r\n componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\r\n });\r\n lifecycle.trigger('afterupdate', ecModel, this._api);\r\n },\r\n updateLayout: function (payload) {\r\n updateMethods.update.call(this, payload);\r\n }\r\n };\r\n\r\n doConvertPixel = function (ecIns, methodName, finder, value) {\r\n if (ecIns._disposed) {\r\n disposedWarning(ecIns.id);\r\n return;\r\n }\r\n\r\n var ecModel = ecIns._model;\r\n\r\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\r\n\r\n var result;\r\n var parsedFinder = modelUtil.parseFinder(ecModel, finder);\r\n\r\n for (var i = 0; i < coordSysList.length; i++) {\r\n var coordSys = coordSysList[i];\r\n\r\n if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\r\n return result;\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\r\n }\r\n };\r\n\r\n updateStreamModes = function (ecIns, ecModel) {\r\n var chartsMap = ecIns._chartsMap;\r\n var scheduler = ecIns._scheduler;\r\n ecModel.eachSeries(function (seriesModel) {\r\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\r\n });\r\n };\r\n\r\n doDispatchAction = function (payload, silent) {\r\n var _this = this;\r\n\r\n var ecModel = this.getModel();\r\n var payloadType = payload.type;\r\n var escapeConnect = payload.escapeConnect;\r\n var actionWrap = actions[payloadType];\r\n var actionInfo = actionWrap.actionInfo;\r\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\r\n var updateMethod = cptTypeTmp.pop();\r\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n var payloads = [payload];\r\n var batched = false; // Batch action\r\n\r\n if (payload.batch) {\r\n batched = true;\r\n payloads = map(payload.batch, function (item) {\r\n item = defaults(extend({}, item), payload);\r\n item.batch = null;\r\n return item;\r\n });\r\n }\r\n\r\n var eventObjBatch = [];\r\n var eventObj;\r\n var isSelectChange = isSelectChangePayload(payload);\r\n var isHighDown = isHighDownPayload(payload); // Only leave blur once if there are multiple batches.\r\n\r\n if (isHighDown) {\r\n allLeaveBlur(this._api);\r\n }\r\n\r\n each(payloads, function (batchItem) {\r\n // Action can specify the event by return it.\r\n eventObj = actionWrap.action(batchItem, _this._model, _this._api); // Emit event outside\r\n\r\n eventObj = eventObj || extend({}, batchItem); // Convert type to eventType\r\n\r\n eventObj.type = actionInfo.event || eventObj.type;\r\n eventObjBatch.push(eventObj); // light update does not perform data process, layout and visual.\r\n\r\n if (isHighDown) {\r\n var _a = modelUtil.preParseFinder(payload),\r\n queryOptionMap = _a.queryOptionMap,\r\n mainTypeSpecified = _a.mainTypeSpecified;\r\n\r\n var componentMainType = mainTypeSpecified ? queryOptionMap.keys()[0] : 'series';\r\n updateDirectly(_this, updateMethod, batchItem, componentMainType);\r\n markStatusToUpdate(_this);\r\n } else if (isSelectChange) {\r\n // At present `dispatchAction({ type: 'select', ... })` is not supported on components.\r\n // geo still use 'geoselect'.\r\n updateDirectly(_this, updateMethod, batchItem, 'series');\r\n markStatusToUpdate(_this);\r\n } else if (cptType) {\r\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\r\n }\r\n });\r\n\r\n if (updateMethod !== 'none' && !isHighDown && !isSelectChange && !cptType) {\r\n try {\r\n // Still dirty\r\n if (this[PENDING_UPDATE]) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n this[PENDING_UPDATE] = null;\r\n } else {\r\n updateMethods[updateMethod].call(this, payload);\r\n }\r\n } catch (e) {\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n throw e;\r\n }\r\n } // Follow the rule of action batch\r\n\r\n\r\n if (batched) {\r\n eventObj = {\r\n type: actionInfo.event || payloadType,\r\n escapeConnect: escapeConnect,\r\n batch: eventObjBatch\r\n };\r\n } else {\r\n eventObj = eventObjBatch[0];\r\n }\r\n\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n\r\n if (!silent) {\r\n var messageCenter = this._messageCenter;\r\n messageCenter.trigger(eventObj.type, eventObj); // Extra triggered 'selectchanged' event\r\n\r\n if (isSelectChange) {\r\n var newObj = {\r\n type: 'selectchanged',\r\n escapeConnect: escapeConnect,\r\n selected: getAllSelectedIndices(ecModel),\r\n isFromClick: payload.isFromClick || false,\r\n fromAction: payload.type,\r\n fromActionPayload: payload\r\n };\r\n messageCenter.trigger(newObj.type, newObj);\r\n }\r\n }\r\n };\r\n\r\n flushPendingActions = function (silent) {\r\n var pendingActions = this._pendingActions;\r\n\r\n while (pendingActions.length) {\r\n var payload = pendingActions.shift();\r\n doDispatchAction.call(this, payload, silent);\r\n }\r\n };\r\n\r\n triggerUpdatedEvent = function (silent) {\r\n !silent && this.trigger('updated');\r\n };\r\n /**\r\n * Event `rendered` is triggered when zr\r\n * rendered. It is useful for realtime\r\n * snapshot (reflect animation).\r\n *\r\n * Event `finished` is triggered when:\r\n * (1) zrender rendering finished.\r\n * (2) initial animation finished.\r\n * (3) progressive rendering finished.\r\n * (4) no pending action.\r\n * (5) no delayed setOption needs to be processed.\r\n */\r\n\r\n\r\n bindRenderedEvent = function (zr, ecIns) {\r\n zr.on('rendered', function (params) {\r\n ecIns.trigger('rendered', params); // The `finished` event should not be triggered repeatly,\r\n // so it should only be triggered when rendering indeed happend\r\n // in zrender. (Consider the case that dipatchAction is keep\r\n // triggering when mouse move).\r\n\r\n if ( // Although zr is dirty if initial animation is not finished\r\n // and this checking is called on frame, we also check\r\n // animation finished for robustness.\r\n zr.animation.isFinished() && !ecIns[PENDING_UPDATE] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\r\n ecIns.trigger('finished');\r\n }\r\n });\r\n };\r\n\r\n bindMouseEvent = function (zr, ecIns) {\r\n zr.on('mouseover', function (e) {\r\n var el = e.target;\r\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\r\n\r\n if (dispatcher) {\r\n handleGlobalMouseOverForHighDown(dispatcher, e, ecIns._api);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('mouseout', function (e) {\r\n var el = e.target;\r\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\r\n\r\n if (dispatcher) {\r\n handleGlobalMouseOutForHighDown(dispatcher, e, ecIns._api);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('click', function (e) {\r\n var el = e.target;\r\n var dispatcher = findEventDispatcher(el, function (target) {\r\n return getECData(target).dataIndex != null;\r\n }, true);\r\n\r\n if (dispatcher) {\r\n var actionType = dispatcher.selected ? 'unselect' : 'select';\r\n var ecData = getECData(dispatcher);\r\n\r\n ecIns._api.dispatchAction({\r\n type: actionType,\r\n dataType: ecData.dataType,\r\n dataIndexInside: ecData.dataIndex,\r\n seriesIndex: ecData.seriesIndex,\r\n isFromClick: true\r\n });\r\n }\r\n });\r\n };\r\n\r\n function clearColorPalette(ecModel) {\r\n ecModel.clearColorPalette();\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.clearColorPalette();\r\n });\r\n }\r\n\r\n ; // Allocate zlevels for series and components\r\n\r\n function allocateZlevels(ecModel) {\r\n ;\r\n var componentZLevels = [];\r\n var seriesZLevels = [];\r\n var hasSeperateZLevel = false;\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n var zlevel = componentModel.get('zlevel') || 0;\r\n var z = componentModel.get('z') || 0;\r\n var zlevelKey = componentModel.getZLevelKey();\r\n hasSeperateZLevel = hasSeperateZLevel || !!zlevelKey;\r\n (componentType === 'series' ? seriesZLevels : componentZLevels).push({\r\n zlevel: zlevel,\r\n z: z,\r\n idx: componentModel.componentIndex,\r\n type: componentType,\r\n key: zlevelKey\r\n });\r\n });\r\n\r\n if (hasSeperateZLevel) {\r\n // Series after component\r\n var zLevels = componentZLevels.concat(seriesZLevels);\r\n var lastSeriesZLevel_1;\r\n var lastSeriesKey_1;\r\n timsort(zLevels, function (a, b) {\r\n if (a.zlevel === b.zlevel) {\r\n return a.z - b.z;\r\n }\r\n\r\n return a.zlevel - b.zlevel;\r\n });\r\n each(zLevels, function (item) {\r\n var componentModel = ecModel.getComponent(item.type, item.idx);\r\n var zlevel = item.zlevel;\r\n var key = item.key;\r\n\r\n if (lastSeriesZLevel_1 != null) {\r\n zlevel = Math.max(lastSeriesZLevel_1, zlevel);\r\n }\r\n\r\n if (key) {\r\n if (zlevel === lastSeriesZLevel_1 && key !== lastSeriesKey_1) {\r\n zlevel++;\r\n }\r\n\r\n lastSeriesKey_1 = key;\r\n } else if (lastSeriesKey_1) {\r\n if (zlevel === lastSeriesZLevel_1) {\r\n zlevel++;\r\n }\r\n\r\n lastSeriesKey_1 = '';\r\n }\r\n\r\n lastSeriesZLevel_1 = zlevel;\r\n componentModel.setZLevel(zlevel);\r\n });\r\n }\r\n }\r\n\r\n render = function (ecIns, ecModel, api, payload, updateParams) {\r\n allocateZlevels(ecModel);\r\n renderComponents(ecIns, ecModel, api, payload, updateParams);\r\n each(ecIns._chartsViews, function (chart) {\r\n chart.__alive = false;\r\n });\r\n renderSeries(ecIns, ecModel, api, payload, updateParams); // Remove groups of unrendered charts\r\n\r\n each(ecIns._chartsViews, function (chart) {\r\n if (!chart.__alive) {\r\n chart.remove(ecModel, api);\r\n }\r\n });\r\n };\r\n\r\n renderComponents = function (ecIns, ecModel, api, payload, updateParams, dirtyList) {\r\n each(dirtyList || ecIns._componentsViews, function (componentView) {\r\n var componentModel = componentView.__model;\r\n clearStates(componentModel, componentView);\r\n componentView.render(componentModel, ecModel, api, payload);\r\n updateZ(componentModel, componentView);\r\n updateStates(componentModel, componentView);\r\n });\r\n };\r\n /**\r\n * Render each chart and component\r\n */\r\n\r\n\r\n renderSeries = function (ecIns, ecModel, api, payload, updateParams, dirtyMap) {\r\n // Render all charts\r\n var scheduler = ecIns._scheduler;\r\n updateParams = extend(updateParams || {}, {\r\n updatedSeries: ecModel.getSeries()\r\n }); // TODO progressive?\r\n\r\n lifecycle.trigger('series:beforeupdate', ecModel, api, updateParams);\r\n var unfinished = false;\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n chartView.__alive = true;\r\n var renderTask = chartView.renderTask;\r\n scheduler.updatePayload(renderTask, payload); // TODO states on marker.\r\n\r\n clearStates(seriesModel, chartView);\r\n\r\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\r\n renderTask.dirty();\r\n }\r\n\r\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\r\n unfinished = true;\r\n }\r\n\r\n chartView.group.silent = !!seriesModel.get('silent'); // Should not call markRedraw on group, because it will disable zrender\r\n // increamental render (alway render from the __startIndex each frame)\r\n // chartView.group.markRedraw();\r\n\r\n updateBlend(seriesModel, chartView);\r\n updateSeriesElementSelection(seriesModel);\r\n });\r\n scheduler.unfinished = unfinished || scheduler.unfinished;\r\n lifecycle.trigger('series:layoutlabels', ecModel, api, updateParams); // transition after label is layouted.\r\n\r\n lifecycle.trigger('series:transition', ecModel, api, updateParams);\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId]; // Update Z after labels updated. Before applying states.\r\n\r\n updateZ(seriesModel, chartView); // NOTE: Update states after label is updated.\r\n // label should be in normal status when layouting.\r\n\r\n updateStates(seriesModel, chartView);\r\n }); // If use hover layer\r\n\r\n updateHoverLayerStatus(ecIns, ecModel);\r\n lifecycle.trigger('series:afterupdate', ecModel, api, updateParams);\r\n };\r\n\r\n markStatusToUpdate = function (ecIns) {\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true; // Wake up zrender if it's sleep. Let it update states in the next frame.\r\n\r\n ecIns.getZr().wakeUp();\r\n };\r\n\r\n applyChangedStates = function (ecIns) {\r\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\r\n return;\r\n }\r\n\r\n ecIns.getZr().storage.traverse(function (el) {\r\n // Not applied on removed elements, it may still in fading.\r\n if (graphic.isElementRemoved(el)) {\r\n return;\r\n }\r\n\r\n applyElementStates(el);\r\n });\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\r\n };\r\n\r\n function applyElementStates(el) {\r\n var newStates = [];\r\n var oldStates = el.currentStates; // Keep other states.\r\n\r\n for (var i = 0; i < oldStates.length; i++) {\r\n var stateName = oldStates[i];\r\n\r\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\r\n newStates.push(stateName);\r\n }\r\n } // Only use states when it's exists.\r\n\r\n\r\n if (el.selected && el.states.select) {\r\n newStates.push('select');\r\n }\r\n\r\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\r\n newStates.push('emphasis');\r\n } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\r\n newStates.push('blur');\r\n }\r\n\r\n el.useStates(newStates);\r\n }\r\n\r\n function updateHoverLayerStatus(ecIns, ecModel) {\r\n var zr = ecIns._zr;\r\n var storage = zr.storage;\r\n var elCount = 0;\r\n storage.traverse(function (el) {\r\n if (!el.isGroup) {\r\n elCount++;\r\n }\r\n });\r\n\r\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.preventUsingHoverLayer) {\r\n return;\r\n }\r\n\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n\r\n if (chartView.__alive) {\r\n chartView.eachRendered(function (el) {\r\n if (el.states.emphasis) {\r\n el.states.emphasis.hoverLayer = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n ;\r\n /**\r\n * Update chart and blend.\r\n */\r\n\r\n function updateBlend(seriesModel, chartView) {\r\n var blendMode = seriesModel.get('blendMode') || null;\r\n chartView.eachRendered(function (el) {\r\n // FIXME marker and other components\r\n if (!el.isGroup) {\r\n // DONT mark the element dirty. In case element is incremental and don't wan't to rerender.\r\n el.style.blend = blendMode;\r\n }\r\n });\r\n }\r\n\r\n ;\r\n\r\n function updateZ(model, view) {\r\n if (model.preventAutoZ) {\r\n return;\r\n }\r\n\r\n var z = model.get('z') || 0;\r\n var zlevel = model.get('zlevel') || 0; // Set z and zlevel\r\n\r\n view.eachRendered(function (el) {\r\n doUpdateZ(el, z, zlevel, -Infinity); // Don't traverse the children because it has been traversed in _updateZ.\r\n\r\n return true;\r\n });\r\n }\r\n\r\n ;\r\n\r\n function doUpdateZ(el, z, zlevel, maxZ2) {\r\n // Group may also have textContent\r\n var label = el.getTextContent();\r\n var labelLine = el.getTextGuideLine();\r\n var isGroup = el.isGroup;\r\n\r\n if (isGroup) {\r\n // set z & zlevel of children elements of Group\r\n var children = el.childrenRef();\r\n\r\n for (var i = 0; i < children.length; i++) {\r\n maxZ2 = Math.max(doUpdateZ(children[i], z, zlevel, maxZ2), maxZ2);\r\n }\r\n } else {\r\n // not Group\r\n el.z = z;\r\n el.zlevel = zlevel;\r\n maxZ2 = Math.max(el.z2, maxZ2);\r\n } // always set z and zlevel if label/labelLine exists\r\n\r\n\r\n if (label) {\r\n label.z = z;\r\n label.zlevel = zlevel; // lift z2 of text content\r\n // TODO if el.emphasis.z2 is spcefied, what about textContent.\r\n\r\n isFinite(maxZ2) && (label.z2 = maxZ2 + 2);\r\n }\r\n\r\n if (labelLine) {\r\n var textGuideLineConfig = el.textGuideLineConfig;\r\n labelLine.z = z;\r\n labelLine.zlevel = zlevel;\r\n isFinite(maxZ2) && (labelLine.z2 = maxZ2 + (textGuideLineConfig && textGuideLineConfig.showAbove ? 1 : -1));\r\n }\r\n\r\n return maxZ2;\r\n } // Clear states without animation.\r\n // TODO States on component.\r\n\r\n\r\n function clearStates(model, view) {\r\n view.eachRendered(function (el) {\r\n // Not applied on removed elements, it may still in fading.\r\n if (graphic.isElementRemoved(el)) {\r\n return;\r\n }\r\n\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n\r\n if (el.stateTransition) {\r\n el.stateTransition = null;\r\n }\r\n\r\n if (textContent && textContent.stateTransition) {\r\n textContent.stateTransition = null;\r\n }\r\n\r\n if (textGuide && textGuide.stateTransition) {\r\n textGuide.stateTransition = null;\r\n } // TODO If el is incremental.\r\n\r\n\r\n if (el.hasState()) {\r\n el.prevStates = el.currentStates;\r\n el.clearStates();\r\n } else if (el.prevStates) {\r\n el.prevStates = null;\r\n }\r\n });\r\n }\r\n\r\n function updateStates(model, view) {\r\n var stateAnimationModel = model.getModel('stateAnimation');\r\n var enableAnimation = model.isAnimationEnabled();\r\n var duration = stateAnimationModel.get('duration');\r\n var stateTransition = duration > 0 ? {\r\n duration: duration,\r\n delay: stateAnimationModel.get('delay'),\r\n easing: stateAnimationModel.get('easing') // additive: stateAnimationModel.get('additive')\r\n\r\n } : null;\r\n view.eachRendered(function (el) {\r\n if (el.states && el.states.emphasis) {\r\n // Not applied on removed elements, it may still in fading.\r\n if (graphic.isElementRemoved(el)) {\r\n return;\r\n }\r\n\r\n if (el instanceof graphic.Path) {\r\n savePathStates(el);\r\n } // Only updated on changed element. In case element is incremental and don't wan't to rerender.\r\n // TODO, a more proper way?\r\n\r\n\r\n if (el.__dirty) {\r\n var prevStates = el.prevStates; // Restore states without animation\r\n\r\n if (prevStates) {\r\n el.useStates(prevStates);\r\n }\r\n } // Update state transition and enable animation again.\r\n\r\n\r\n if (enableAnimation) {\r\n el.stateTransition = stateTransition;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine(); // TODO Is it necessary to animate label?\r\n\r\n if (textContent) {\r\n textContent.stateTransition = stateTransition;\r\n }\r\n\r\n if (textGuide) {\r\n textGuide.stateTransition = stateTransition;\r\n }\r\n } // The use higlighted and selected flag to toggle states.\r\n\r\n\r\n if (el.__dirty) {\r\n applyElementStates(el);\r\n }\r\n }\r\n });\r\n }\r\n\r\n ;\r\n\r\n createExtensionAPI = function (ecIns) {\r\n return new (\r\n /** @class */\r\n function (_super) {\r\n __extends(class_1, _super);\r\n\r\n function class_1() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n\r\n class_1.prototype.getCoordinateSystems = function () {\r\n return ecIns._coordSysMgr.getCoordinateSystems();\r\n };\r\n\r\n class_1.prototype.getComponentByElement = function (el) {\r\n while (el) {\r\n var modelInfo = el.__ecComponentInfo;\r\n\r\n if (modelInfo != null) {\r\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\r\n }\r\n\r\n el = el.parent;\r\n }\r\n };\r\n\r\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\r\n enterEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n\r\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\r\n leaveEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n\r\n class_1.prototype.enterBlur = function (el) {\r\n enterBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n\r\n class_1.prototype.leaveBlur = function (el) {\r\n leaveBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n\r\n class_1.prototype.enterSelect = function (el) {\r\n enterSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n\r\n class_1.prototype.leaveSelect = function (el) {\r\n leaveSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n\r\n class_1.prototype.getModel = function () {\r\n return ecIns.getModel();\r\n };\r\n\r\n class_1.prototype.getViewOfComponentModel = function (componentModel) {\r\n return ecIns.getViewOfComponentModel(componentModel);\r\n };\r\n\r\n class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return ecIns.getViewOfSeriesModel(seriesModel);\r\n };\r\n\r\n return class_1;\r\n }(ExtensionAPI))(ecIns);\r\n };\r\n\r\n enableConnect = function (chart) {\r\n function updateConnectedChartsStatus(charts, status) {\r\n for (var i = 0; i < charts.length; i++) {\r\n var otherChart = charts[i];\r\n otherChart[CONNECT_STATUS_KEY] = status;\r\n }\r\n }\r\n\r\n each(eventActionMap, function (actionType, eventType) {\r\n chart._messageCenter.on(eventType, function (event) {\r\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\r\n if (event && event.escapeConnect) {\r\n return;\r\n }\r\n\r\n var action_1 = chart.makeActionFromEvent(event);\r\n var otherCharts_1 = [];\r\n each(instances, function (otherChart) {\r\n if (otherChart !== chart && otherChart.group === chart.group) {\r\n otherCharts_1.push(otherChart);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\r\n each(otherCharts_1, function (otherChart) {\r\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\r\n otherChart.dispatchAction(action_1);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\r\n }\r\n });\r\n });\r\n };\r\n }();\r\n\r\n return ECharts;\r\n}(Eventful);\r\n\r\nvar echartsProto = ECharts.prototype;\r\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\r\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\r\n/**\r\n * @deprecated\r\n */\r\n// @ts-ignore\r\n\r\nechartsProto.one = function (eventName, cb, ctx) {\r\n var self = this;\r\n deprecateLog('ECharts#one is deprecated.');\r\n\r\n function wrapped() {\r\n var args2 = [];\r\n\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args2[_i] = arguments[_i];\r\n }\r\n\r\n cb && cb.apply && cb.apply(this, args2); // @ts-ignore\r\n\r\n self.off(eventName, wrapped);\r\n }\r\n\r\n ; // @ts-ignore\r\n\r\n this.on.call(this, eventName, wrapped, ctx);\r\n};\r\n\r\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\r\n\r\nfunction disposedWarning(id) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn('Instance ' + id + ' has been disposed');\r\n }\r\n}\r\n\r\nvar actions = {};\r\n/**\r\n * Map eventType to actionType\r\n */\r\n\r\nvar eventActionMap = {};\r\nvar dataProcessorFuncs = [];\r\nvar optionPreprocessorFuncs = [];\r\nvar visualFuncs = [];\r\nvar themeStorage = {};\r\nvar loadingEffects = {};\r\nvar instances = {};\r\nvar connectedGroups = {};\r\nvar idBase = +new Date() - 0;\r\nvar groupIdBase = +new Date() - 0;\r\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\r\n/**\r\n * @param opts.devicePixelRatio Use window.devicePixelRatio by default\r\n * @param opts.renderer Can choose 'canvas' or 'svg' to render the chart.\r\n * @param opts.width Use clientWidth of the input `dom` by default.\r\n * Can be 'auto' (the same as null/undefined)\r\n * @param opts.height Use clientHeight of the input `dom` by default.\r\n * Can be 'auto' (the same as null/undefined)\r\n * @param opts.locale Specify the locale.\r\n * @param opts.useDirtyRect Enable dirty rectangle rendering or not.\r\n */\r\n\r\nexport function init(dom, theme, opts) {\r\n var isClient = !(opts && opts.ssr);\r\n\r\n if (isClient) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!dom) {\r\n throw new Error('Initialize failed: invalid dom.');\r\n }\r\n }\r\n\r\n var existInstance = getInstanceByDom(dom);\r\n\r\n if (existInstance) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn('There is a chart instance already initialized on the dom.');\r\n }\r\n\r\n return existInstance;\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\r\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.');\r\n }\r\n }\r\n }\r\n\r\n var chart = new ECharts(dom, theme, opts);\r\n chart.id = 'ec_' + idBase++;\r\n instances[chart.id] = chart;\r\n isClient && modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\r\n enableConnect(chart);\r\n lifecycle.trigger('afterinit', chart);\r\n return chart;\r\n}\r\n/**\r\n * @usage\r\n * (A)\r\n * ```js\r\n * let chart1 = echarts.init(dom1);\r\n * let chart2 = echarts.init(dom2);\r\n * chart1.group = 'xxx';\r\n * chart2.group = 'xxx';\r\n * echarts.connect('xxx');\r\n * ```\r\n * (B)\r\n * ```js\r\n * let chart1 = echarts.init(dom1);\r\n * let chart2 = echarts.init(dom2);\r\n * echarts.connect('xxx', [chart1, chart2]);\r\n * ```\r\n */\r\n\r\nexport function connect(groupId) {\r\n // Is array of charts\r\n if (isArray(groupId)) {\r\n var charts = groupId;\r\n groupId = null; // If any chart has group\r\n\r\n each(charts, function (chart) {\r\n if (chart.group != null) {\r\n groupId = chart.group;\r\n }\r\n });\r\n groupId = groupId || 'g_' + groupIdBase++;\r\n each(charts, function (chart) {\r\n chart.group = groupId;\r\n });\r\n }\r\n\r\n connectedGroups[groupId] = true;\r\n return groupId;\r\n}\r\n/**\r\n * @deprecated\r\n */\r\n\r\nexport function disConnect(groupId) {\r\n connectedGroups[groupId] = false;\r\n}\r\n/**\r\n * Alias and backword compat\r\n */\r\n\r\nexport var disconnect = disConnect;\r\n/**\r\n * Dispose a chart instance\r\n */\r\n\r\nexport function dispose(chart) {\r\n if (isString(chart)) {\r\n chart = instances[chart];\r\n } else if (!(chart instanceof ECharts)) {\r\n // Try to treat as dom\r\n chart = getInstanceByDom(chart);\r\n }\r\n\r\n if (chart instanceof ECharts && !chart.isDisposed()) {\r\n chart.dispose();\r\n }\r\n}\r\nexport function getInstanceByDom(dom) {\r\n return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\r\n}\r\nexport function getInstanceById(key) {\r\n return instances[key];\r\n}\r\n/**\r\n * Register theme\r\n */\r\n\r\nexport function registerTheme(name, theme) {\r\n themeStorage[name] = theme;\r\n}\r\n/**\r\n * Register option preprocessor\r\n */\r\n\r\nexport function registerPreprocessor(preprocessorFunc) {\r\n if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\r\n optionPreprocessorFuncs.push(preprocessorFunc);\r\n }\r\n}\r\nexport function registerProcessor(priority, processor) {\r\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\r\n}\r\n/**\r\n * Register postIniter\r\n * @param {Function} postInitFunc\r\n */\r\n\r\nexport function registerPostInit(postInitFunc) {\r\n registerUpdateLifecycle('afterinit', postInitFunc);\r\n}\r\n/**\r\n * Register postUpdater\r\n * @param {Function} postUpdateFunc\r\n */\r\n\r\nexport function registerPostUpdate(postUpdateFunc) {\r\n registerUpdateLifecycle('afterupdate', postUpdateFunc);\r\n}\r\nexport function registerUpdateLifecycle(name, cb) {\r\n lifecycle.on(name, cb);\r\n}\r\nexport function registerAction(actionInfo, eventName, action) {\r\n if (isFunction(eventName)) {\r\n action = eventName;\r\n eventName = '';\r\n }\r\n\r\n var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\r\n event: eventName\r\n }][0]; // Event name is all lowercase\r\n\r\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\r\n eventName = actionInfo.event;\r\n\r\n if (eventActionMap[eventName]) {\r\n // Already registered.\r\n return;\r\n } // Validate action type and event name.\r\n\r\n\r\n assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\r\n\r\n if (!actions[actionType]) {\r\n actions[actionType] = {\r\n action: action,\r\n actionInfo: actionInfo\r\n };\r\n }\r\n\r\n eventActionMap[eventName] = actionType;\r\n}\r\nexport function registerCoordinateSystem(type, coordSysCreator) {\r\n CoordinateSystemManager.register(type, coordSysCreator);\r\n}\r\n/**\r\n * Get dimensions of specified coordinate system.\r\n * @param {string} type\r\n * @return {Array.<string|Object>}\r\n */\r\n\r\nexport function getCoordinateSystemDimensions(type) {\r\n var coordSysCreator = CoordinateSystemManager.get(type);\r\n\r\n if (coordSysCreator) {\r\n return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\r\n }\r\n}\r\nexport { registerLocale } from './locale.js';\r\n\r\nfunction registerLayout(priority, layoutTask) {\r\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\r\n}\r\n\r\nfunction registerVisual(priority, visualTask) {\r\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\r\n}\r\n\r\nexport { registerLayout, registerVisual };\r\nvar registeredTasks = [];\r\n\r\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\r\n if (isFunction(priority) || isObject(priority)) {\r\n fn = priority;\r\n priority = defaultPriority;\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (isNaN(priority) || priority == null) {\r\n throw new Error('Illegal priority');\r\n } // Check duplicate\r\n\r\n\r\n each(targetList, function (wrap) {\r\n assert(wrap.__raw !== fn);\r\n });\r\n } // Already registered\r\n\r\n\r\n if (indexOf(registeredTasks, fn) >= 0) {\r\n return;\r\n }\r\n\r\n registeredTasks.push(fn);\r\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\r\n stageHandler.__prio = priority;\r\n stageHandler.__raw = fn;\r\n targetList.push(stageHandler);\r\n}\r\n\r\nexport function registerLoading(name, loadingFx) {\r\n loadingEffects[name] = loadingFx;\r\n}\r\n/**\r\n * ZRender need a canvas context to do measureText.\r\n * But in node environment canvas may be created by node-canvas.\r\n * So we need to specify how to create a canvas instead of using document.createElement('canvas')\r\n *\r\n *\r\n * @deprecated use setPlatformAPI({ createCanvas }) instead.\r\n *\r\n * @example\r\n * let Canvas = require('canvas');\r\n * let echarts = require('echarts');\r\n * echarts.setCanvasCreator(function () {\r\n * // Small size is enough.\r\n * return new Canvas(32, 32);\r\n * });\r\n */\r\n\r\nexport function setCanvasCreator(creator) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n deprecateLog('setCanvasCreator is deprecated. Use setPlatformAPI({ createCanvas }) instead.');\r\n }\r\n\r\n setPlatformAPI({\r\n createCanvas: creator\r\n });\r\n}\r\n/**\r\n * The parameters and usage: see `geoSourceManager.registerMap`.\r\n * Compatible with previous `echarts.registerMap`.\r\n */\r\n\r\nexport function registerMap(mapName, geoJson, specialAreas) {\r\n var registerMap = getImpl('registerMap');\r\n registerMap && registerMap(mapName, geoJson, specialAreas);\r\n}\r\nexport function getMap(mapName) {\r\n var getMap = getImpl('getMap');\r\n return getMap && getMap(mapName);\r\n}\r\nexport var registerTransform = registerExternalTransform;\r\n/**\r\n * Globa dispatchAction to a specified chart instance.\r\n */\r\n// export function dispatchAction(payload: { chartId: string } & Payload, opt?: Parameters<ECharts['dispatchAction']>[1]) {\r\n// if (!payload || !payload.chartId) {\r\n// // Must have chartId to find chart\r\n// return;\r\n// }\r\n// const chart = instances[payload.chartId];\r\n// if (chart) {\r\n// chart.dispatchAction(payload, opt);\r\n// }\r\n// }\r\n// Buitlin global visual\r\n\r\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\r\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\r\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\r\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\r\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\r\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\r\nregisterPreprocessor(backwardCompat);\r\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\r\nregisterLoading('default', loadingDefault); // Default actions\r\n\r\nregisterAction({\r\n type: HIGHLIGHT_ACTION_TYPE,\r\n event: HIGHLIGHT_ACTION_TYPE,\r\n update: HIGHLIGHT_ACTION_TYPE\r\n}, noop);\r\nregisterAction({\r\n type: DOWNPLAY_ACTION_TYPE,\r\n event: DOWNPLAY_ACTION_TYPE,\r\n update: DOWNPLAY_ACTION_TYPE\r\n}, noop);\r\nregisterAction({\r\n type: SELECT_ACTION_TYPE,\r\n event: SELECT_ACTION_TYPE,\r\n update: SELECT_ACTION_TYPE\r\n}, noop);\r\nregisterAction({\r\n type: UNSELECT_ACTION_TYPE,\r\n event: UNSELECT_ACTION_TYPE,\r\n update: UNSELECT_ACTION_TYPE\r\n}, noop);\r\nregisterAction({\r\n type: TOGGLE_SELECT_ACTION_TYPE,\r\n event: TOGGLE_SELECT_ACTION_TYPE,\r\n update: TOGGLE_SELECT_ACTION_TYPE\r\n}, noop); // Default theme\r\n\r\nregisterTheme('light', lightTheme);\r\nregisterTheme('dark', darkTheme); // For backward compatibility, where the namespace `dataTool` will\r\n// be mounted on `echarts` is the extension `dataTool` is imported.\r\n\r\nexport var dataTool = {};"]},"metadata":{},"sourceType":"module"}