1 |
- {"version":3,"file":"js/chunk-vendors-169678f6.4fe3330e.js","mappings":"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","sources":["webpack://app/./node_modules/echarts/lib/echarts.js","webpack://app/./node_modules/echarts/lib/export.js","webpack://app/./node_modules/echarts/lib/helper.js","webpack://app/./node_modules/echarts/lib/lang.js"],"sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"./config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrender = require(\"zrender/lib/zrender\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar colorTool = require(\"zrender/lib/tool/color\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar timsort = require(\"zrender/lib/core/timsort\");\n\nvar Eventful = require(\"zrender/lib/mixin/Eventful\");\n\nvar GlobalModel = require(\"./model/Global\");\n\nvar ExtensionAPI = require(\"./ExtensionAPI\");\n\nvar CoordinateSystemManager = require(\"./CoordinateSystem\");\n\nvar OptionManager = require(\"./model/OptionManager\");\n\nvar backwardCompat = require(\"./preprocessor/backwardCompat\");\n\nvar dataStack = require(\"./processor/dataStack\");\n\nvar ComponentModel = require(\"./model/Component\");\n\nvar SeriesModel = require(\"./model/Series\");\n\nvar ComponentView = require(\"./view/Component\");\n\nvar ChartView = require(\"./view/Chart\");\n\nvar graphic = require(\"./util/graphic\");\n\nvar modelUtil = require(\"./util/model\");\n\nvar _throttle = require(\"./util/throttle\");\n\nvar throttle = _throttle.throttle;\n\nvar seriesColor = require(\"./visual/seriesColor\");\n\nvar aria = require(\"./visual/aria\");\n\nvar loadingDefault = require(\"./loading/default\");\n\nvar Scheduler = require(\"./stream/Scheduler\");\n\nvar lightTheme = require(\"./theme/light\");\n\nvar darkTheme = require(\"./theme/dark\");\n\nrequire(\"./component/dataset\");\n\nvar mapDataStorage = require(\"./coord/geo/mapDataStorage\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar parseClassType = ComponentModel.parseClassType;\nvar version = '4.8.0';\nvar dependencies = {\n zrender: '4.3.1'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\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_POST_CHART_LAYOUT = 3500;\nvar PRIORITY_VISUAL_COMPONENT = 4000; // FIXME\n// necessary?\n\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar 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 }\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 = '__flagInMainProcess';\nvar OPTION_UPDATED = '__optionUpdated';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\n\nfunction createRegisterEventWithLowercaseName(method, ignoreDisposed) {\n return function (eventName, handler, context) {\n if (!ignoreDisposed && this._disposed) {\n disposedWarning(this.id);\n return;\n } // Event name is all lowercase\n\n\n eventName = eventName && eventName.toLowerCase();\n Eventful.prototype[method].call(this, eventName, handler, context);\n };\n}\n/**\n * @module echarts~MessageCenter\n */\n\n\nfunction MessageCenter() {\n Eventful.call(this);\n}\n\nMessageCenter.prototype.on = createRegisterEventWithLowercaseName('on', true);\nMessageCenter.prototype.off = createRegisterEventWithLowercaseName('off', true);\nMessageCenter.prototype.one = createRegisterEventWithLowercaseName('one', true);\nzrUtil.mixin(MessageCenter, Eventful);\n/**\n * @module echarts~ECharts\n */\n\nfunction ECharts(dom, theme, opts) {\n opts = opts || {}; // Get theme by name\n\n if (typeof theme === 'string') {\n theme = themeStorage[theme];\n }\n /**\n * @type {string}\n */\n\n\n this.id;\n /**\n * Group id\n * @type {string}\n */\n\n this.group;\n /**\n * @type {HTMLElement}\n * @private\n */\n\n this._dom = dom;\n var defaultRenderer = 'canvas';\n\n /**\n * @type {module:zrender/ZRender}\n * @private\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 });\n /**\n * Expect 60 fps.\n * @type {Function}\n * @private\n */\n\n this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n var theme = zrUtil.clone(theme);\n theme && backwardCompat(theme, true);\n /**\n * @type {Object}\n * @private\n */\n\n this._theme = theme;\n /**\n * @type {Array.<module:echarts/view/Chart>}\n * @private\n */\n\n this._chartsViews = [];\n /**\n * @type {Object.<string, module:echarts/view/Chart>}\n * @private\n */\n\n this._chartsMap = {};\n /**\n * @type {Array.<module:echarts/view/Component>}\n * @private\n */\n\n this._componentsViews = [];\n /**\n * @type {Object.<string, module:echarts/view/Component>}\n * @private\n */\n\n this._componentsMap = {};\n /**\n * @type {module:echarts/CoordinateSystem}\n * @private\n */\n\n this._coordSysMgr = new CoordinateSystemManager();\n /**\n * @type {module:echarts/ExtensionAPI}\n * @private\n */\n\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 /**\n * @type {module:echarts/stream/Scheduler}\n */\n\n this._scheduler = new Scheduler(this, api, dataProcessorFuncs, visualFuncs);\n Eventful.call(this, this._ecEventProcessor = new EventProcessor());\n /**\n * @type {module:echarts~MessageCenter}\n * @private\n */\n\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 = zrUtil.bind(this.resize, this); // Can't dispatch action during rendering procedure\n\n this._pendingActions = [];\n zr.animation.on('frame', this._onframe, this);\n bindRenderedEvent(zr, this); // ECharts instance can be used as value.\n\n zrUtil.setAsPrimitive(this);\n}\n\nvar echartsProto = ECharts.prototype;\n\nechartsProto._onframe = function () {\n if (this._disposed) {\n return;\n }\n\n var scheduler = this._scheduler; // Lazy update\n\n if (this[OPTION_UPDATED]) {\n var silent = this[OPTION_UPDATED].silent;\n this[IN_MAIN_PROCESS] = true;\n prepare(this);\n updateMethods.update.call(this);\n this[IN_MAIN_PROCESS] = false;\n this[OPTION_UPDATED] = false;\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 * @return {HTMLElement}\n */\n\n\nechartsProto.getDom = function () {\n return this._dom;\n};\n/**\n * @return {module:zrender~ZRender}\n */\n\n\nechartsProto.getZr = function () {\n return this._zr;\n};\n/**\n * Usage:\n * chart.setOption(option, notMerge, lazyUpdate);\n * chart.setOption(option, {\n * notMerge: ...,\n * lazyUpdate: ...,\n * silent: ...\n * });\n *\n * @param {Object} option\n * @param {Object|boolean} [opts] opts or notMerge.\n * @param {boolean} [opts.notMerge=false]\n * @param {boolean} [opts.lazyUpdate=false] Useful when setOption frequently.\n */\n\n\nechartsProto.setOption = function (option, notMerge, lazyUpdate) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var silent;\n\n if (isObject(notMerge)) {\n lazyUpdate = notMerge.lazyUpdate;\n silent = notMerge.silent;\n notMerge = notMerge.notMerge;\n }\n\n this[IN_MAIN_PROCESS] = true;\n\n if (!this._model || notMerge) {\n var optionManager = new OptionManager(this._api);\n var theme = this._theme;\n var ecModel = this._model = new GlobalModel();\n ecModel.scheduler = this._scheduler;\n ecModel.init(null, null, theme, optionManager);\n }\n\n this._model.setOption(option, optionPreprocessorFuncs);\n\n if (lazyUpdate) {\n this[OPTION_UPDATED] = {\n silent: silent\n };\n this[IN_MAIN_PROCESS] = false;\n } else {\n prepare(this);\n updateMethods.update.call(this); // Ensure zr refresh sychronously, and then pixel in canvas can be\n // fetched after `setOption`.\n\n this._zr.flush();\n\n this[OPTION_UPDATED] = false;\n this[IN_MAIN_PROCESS] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n }\n};\n/**\n * @DEPRECATED\n */\n\n\nechartsProto.setTheme = function () {\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n};\n/**\n * @return {module:echarts/model/Global}\n */\n\n\nechartsProto.getModel = function () {\n return this._model;\n};\n/**\n * @return {Object}\n */\n\n\nechartsProto.getOption = function () {\n return this._model && this._model.getOption();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getWidth = function () {\n return this._zr.getWidth();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getHeight = function () {\n return this._zr.getHeight();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getDevicePixelRatio = function () {\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\n};\n/**\n * Get canvas which has all thing rendered\n * @param {Object} opts\n * @param {string} [opts.backgroundColor]\n * @return {string}\n */\n\n\nechartsProto.getRenderedCanvas = function (opts) {\n if (!env.canvasSupported) {\n return;\n }\n\n opts = opts || {};\n opts.pixelRatio = opts.pixelRatio || 1;\n opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n var zr = this._zr; // var list = zr.storage.getDisplayList();\n // Stop animations\n // Never works before in init animation, so remove it.\n // zrUtil.each(list, function (el) {\n // el.stopAnimation(true);\n // });\n\n return zr.painter.getRenderedCanvas(opts);\n};\n/**\n * Get svg data url\n * @return {string}\n */\n\n\nechartsProto.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 zrUtil.each(list, function (el) {\n el.stopAnimation(true);\n });\n return zr.painter.toDataURL();\n};\n/**\n * @return {string}\n * @param {Object} opts\n * @param {string} [opts.type='png']\n * @param {string} [opts.pixelRatio=1]\n * @param {string} [opts.backgroundColor]\n * @param {string} [opts.excludeComponents]\n */\n\n\nechartsProto.getDataURL = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n opts = opts || {};\n var excludeComponents = opts.excludeComponents;\n var ecModel = this._model;\n var excludesComponentViews = [];\n var self = this;\n each(excludeComponents, function (componentType) {\n ecModel.eachComponent({\n mainType: componentType\n }, function (component) {\n var view = self._componentsMap[component.__viewId];\n\n if (!view.group.ignore) {\n excludesComponentViews.push(view);\n view.group.ignore = true;\n }\n });\n });\n var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n each(excludesComponentViews, function (view) {\n view.group.ignore = false;\n });\n return url;\n};\n/**\n * @return {string}\n * @param {Object} opts\n * @param {string} [opts.type='png']\n * @param {string} [opts.pixelRatio=1]\n * @param {string} [opts.backgroundColor]\n */\n\n\nechartsProto.getConnectedDataURL = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (!env.canvasSupported) {\n return;\n }\n\n var isSvg = opts.type === 'svg';\n var groupId = this.group;\n var mathMin = Math.min;\n var mathMax = Math.max;\n var MAX_NUMBER = Infinity;\n\n if (connectedGroups[groupId]) {\n var left = MAX_NUMBER;\n var top = MAX_NUMBER;\n var right = -MAX_NUMBER;\n var bottom = -MAX_NUMBER;\n var canvasList = [];\n var dpr = opts && opts.pixelRatio || 1;\n zrUtil.each(instances, function (chart, id) {\n if (chart.group === groupId) {\n var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n var boundingRect = chart.getDom().getBoundingClientRect();\n left = mathMin(boundingRect.left, left);\n top = mathMin(boundingRect.top, top);\n right = mathMax(boundingRect.right, right);\n bottom = mathMax(boundingRect.bottom, bottom);\n canvasList.push({\n dom: canvas,\n left: boundingRect.left,\n top: boundingRect.top\n });\n }\n });\n left *= dpr;\n top *= dpr;\n right *= dpr;\n bottom *= dpr;\n var width = right - left;\n var height = bottom - top;\n var targetCanvas = zrUtil.createCanvas();\n var zr = zrender.init(targetCanvas, {\n renderer: isSvg ? 'svg' : 'canvas'\n });\n zr.resize({\n width: width,\n height: height\n });\n\n if (isSvg) {\n var content = '';\n each(canvasList, function (item) {\n var x = item.left - left;\n var y = item.top - top;\n content += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n });\n zr.painter.getSvgRoot().innerHTML = content;\n\n if (opts.connectedBackgroundColor) {\n zr.painter.setBackgroundColor(opts.connectedBackgroundColor);\n }\n\n zr.refreshImmediately();\n return zr.painter.toDataURL();\n } else {\n // Background between the charts\n if (opts.connectedBackgroundColor) {\n zr.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, function (item) {\n var img = new graphic.Image({\n style: {\n x: item.left * dpr - left,\n y: item.top * dpr - top,\n image: item.dom\n }\n });\n zr.add(img);\n });\n zr.refreshImmediately();\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n }\n } else {\n return this.getDataURL(opts);\n }\n};\n/**\n * Convert from logical coordinate system to pixel coordinate system.\n * See CoordinateSystem#convertToPixel.\n * @param {string|Object} finder\n * If string, e.g., 'geo', means {geoIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * geoIndex / geoId, geoName,\n * bmapIndex / bmapId / bmapName,\n * xAxisIndex / xAxisId / xAxisName,\n * yAxisIndex / yAxisId / yAxisName,\n * gridIndex / gridId / gridName,\n * ... (can be extended)\n * }\n * @param {Array|number} value\n * @return {Array|number} result\n */\n\n\nechartsProto.convertToPixel = zrUtil.curry(doConvertPixel, 'convertToPixel');\n/**\n * Convert from pixel coordinate system to logical coordinate system.\n * See CoordinateSystem#convertFromPixel.\n * @param {string|Object} finder\n * If string, e.g., 'geo', means {geoIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * geoIndex / geoId / geoName,\n * bmapIndex / bmapId / bmapName,\n * xAxisIndex / xAxisId / xAxisName,\n * yAxisIndex / yAxisId / yAxisName\n * gridIndex / gridId / gridName,\n * ... (can be extended)\n * }\n * @param {Array|number} value\n * @return {Array|number} result\n */\n\nechartsProto.convertFromPixel = zrUtil.curry(doConvertPixel, 'convertFromPixel');\n\nfunction doConvertPixel(methodName, finder, value) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var ecModel = this._model;\n\n var coordSysList = this._coordSysMgr.getCoordinateSystems();\n\n var result;\n finder = 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, finder, value)) != null) {\n return result;\n }\n }\n}\n/**\n * Is the specified coordinate systems or components contain the given pixel point.\n * @param {string|Object} finder\n * If string, e.g., 'geo', means {geoIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * geoIndex / geoId / geoName,\n * bmapIndex / bmapId / bmapName,\n * xAxisIndex / xAxisId / xAxisName,\n * yAxisIndex / yAxisId / yAxisName,\n * gridIndex / gridId / gridName,\n * ... (can be extended)\n * }\n * @param {Array|number} value\n * @return {boolean} result\n */\n\n\nechartsProto.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 finder = modelUtil.parseFinder(ecModel, finder);\n zrUtil.each(finder, function (models, key) {\n key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n var coordSys = model.coordinateSystem;\n\n if (coordSys && coordSys.containPoint) {\n result |= !!coordSys.containPoint(value);\n } else if (key === 'seriesModels') {\n var view = this._chartsMap[model.__viewId];\n\n if (view && view.containPoint) {\n result |= view.containPoint(value, model);\n } else {}\n } else {}\n }, this);\n }, this);\n return !!result;\n};\n/**\n * Get visual from series or data.\n * @param {string|Object} finder\n * If string, e.g., 'series', means {seriesIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * dataIndex / dataIndexInside\n * }\n * If dataIndex is not specified, series visual will be fetched,\n * but not data item visual.\n * If all of seriesIndex, seriesId, seriesName are not specified,\n * visual will be fetched from first series.\n * @param {string} visualType 'color', 'symbol', 'symbolSize'\n */\n\n\nechartsProto.getVisual = function (finder, visualType) {\n var ecModel = this._model;\n finder = modelUtil.parseFinder(ecModel, finder, {\n defaultMainType: 'series'\n });\n var seriesModel = finder.seriesModel;\n var data = seriesModel.getData();\n var dataIndexInside = finder.hasOwnProperty('dataIndexInside') ? finder.dataIndexInside : finder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(finder.dataIndex) : null;\n return dataIndexInside != null ? data.getItemVisual(dataIndexInside, visualType) : data.getVisual(visualType);\n};\n/**\n * Get view of corresponding component model\n * @param {module:echarts/model/Component} componentModel\n * @return {module:echarts/view/Component}\n */\n\n\nechartsProto.getViewOfComponentModel = function (componentModel) {\n return this._componentsMap[componentModel.__viewId];\n};\n/**\n * Get view of corresponding series model\n * @param {module:echarts/model/Series} seriesModel\n * @return {module:echarts/view/Chart}\n */\n\n\nechartsProto.getViewOfSeriesModel = function (seriesModel) {\n return this._chartsMap[seriesModel.__viewId];\n};\n\nvar updateMethods = {\n prepareAndUpdate: function (payload) {\n prepare(this);\n updateMethods.update.call(this, payload);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n update: function (payload) {\n // console.profile && console.profile('update');\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 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); // Set background\n\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent'; // In IE8\n\n if (!env.canvasSupported) {\n var colorArr = colorTool.parse(backgroundColor);\n backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n if (colorArr[3] === 0) {\n backgroundColor = 'transparent';\n }\n } else {\n zr.setBackgroundColor(backgroundColor);\n }\n\n performPostUpdateFuncs(ecModel, api); // console.profile && console.profileEnd('update');\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateTransform: function (payload) {\n var ecModel = this._model;\n var ecIns = this;\n var api = this._api; // update before setOption\n\n if (!ecModel) {\n return;\n } // ChartView.markUpdateMethod(payload, 'updateTransform');\n\n\n var componentDirtyList = [];\n ecModel.eachComponent(function (componentType, componentModel) {\n var componentView = ecIns.getViewOfComponentModel(componentModel);\n\n if (componentView && componentView.__alive) {\n if (componentView.updateTransform) {\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n result && result.update && componentDirtyList.push(componentView);\n } else {\n componentDirtyList.push(componentView);\n }\n }\n });\n var seriesDirtyMap = zrUtil.createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._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(ecIns, ecModel, api, payload, seriesDirtyMap);\n performPostUpdateFuncs(ecModel, this._api);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateView: function (payload) {\n var ecModel = this._model; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\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, this._model, this._api, payload);\n performPostUpdateFuncs(ecModel, this._api);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateVisual: function (payload) {\n updateMethods.update.call(this, payload); // var ecModel = this._model;\n // // update before setOption\n // if (!ecModel) {\n // return;\n // }\n // ChartView.markUpdateMethod(payload, 'updateVisual');\n // clearColorPalette(ecModel);\n // // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n // this._scheduler.performVisualTasks(ecModel, payload, {visualType: 'visual', setDirty: true});\n // render(this, this._model, this._api, payload);\n // performPostUpdateFuncs(ecModel, this._api);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateLayout: function (payload) {\n updateMethods.update.call(this, payload); // var ecModel = this._model;\n // // update before setOption\n // if (!ecModel) {\n // return;\n // }\n // ChartView.markUpdateMethod(payload, 'updateLayout');\n // // 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 // this._scheduler.performVisualTasks(ecModel, payload, {setDirty: true});\n // render(this, this._model, this._api, payload);\n // performPostUpdateFuncs(ecModel, this._api);\n }\n};\n\nfunction prepare(ecIns) {\n var ecModel = ecIns._model;\n var scheduler = ecIns._scheduler;\n scheduler.restorePipelines(ecModel);\n scheduler.prepareStageTasks();\n prepareView(ecIns, 'component', ecModel, scheduler);\n prepareView(ecIns, 'chart', ecModel, scheduler);\n scheduler.plan();\n}\n/**\n * @private\n */\n\n\nfunction updateDirectly(ecIns, method, payload, mainType, subType) {\n var ecModel = ecIns._model; // 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(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\n if (excludeSeriesId != null) {\n excludeSeriesId = zrUtil.createHashMap(modelUtil.normalizeToArray(excludeSeriesId));\n } // If dispatchAction before setOption, do nothing.\n\n\n ecModel && ecModel.eachComponent(condition, function (model) {\n if (!excludeSeriesId || excludeSeriesId.get(model.id) == null) {\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n }\n }, ecIns);\n\n function callView(view) {\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n }\n}\n/**\n * Resize the chart\n * @param {Object} opts\n * @param {number} [opts.width] Can be 'auto' (the same as null/undefined)\n * @param {number} [opts.height] Can be 'auto' (the same as null/undefined)\n * @param {boolean} [opts.silent=false]\n */\n\n\nechartsProto.resize = function (opts) {\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 optionChanged = ecModel.resetOption('media');\n var silent = opts && opts.silent;\n this[IN_MAIN_PROCESS] = true;\n optionChanged && prepare(this);\n updateMethods.update.call(this);\n this[IN_MAIN_PROCESS] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n};\n\nfunction 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 * Show loading effect\n * @param {string} [name='default']\n * @param {Object} [cfg]\n */\n\n\nechartsProto.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 return;\n }\n\n var el = loadingEffects[name](this._api, cfg);\n var zr = this._zr;\n this._loadingFX = el;\n zr.add(el);\n};\n/**\n * Hide loading effect\n */\n\n\nechartsProto.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 * @param {Object} eventObj\n * @return {Object}\n */\n\n\nechartsProto.makeActionFromEvent = function (eventObj) {\n var payload = zrUtil.extend({}, eventObj);\n payload.type = eventActionMap[eventObj.type];\n return payload;\n};\n/**\n * @pubilc\n * @param {Object} payload\n * @param {string} [payload.type] Action type\n * @param {Object|boolean} [opt] If pass boolean, means opt.silent\n * @param {boolean} [opt.silent=false] Whether trigger events.\n * @param {boolean} [opt.flush=undefined]\n * true: Flush immediately, and then pixel in canvas can be fetched\n * immediately. Caution: it might affect performance.\n * false: Not flush.\n * undefined: Auto decide whether perform flush.\n */\n\n\nechartsProto.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]) {\n this._pendingActions.push(payload);\n\n return;\n }\n\n doDispatchAction.call(this, payload, opt.silent);\n\n if (opt.flush) {\n this._zr.flush(true);\n } else if (opt.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, opt.silent);\n triggerUpdatedEvent.call(this, opt.silent);\n};\n\nfunction doDispatchAction(payload, silent) {\n var payloadType = payload.type;\n var escapeConnect = payload.escapeConnect;\n var actionWrap = actions[payloadType];\n var actionInfo = actionWrap.actionInfo;\n var cptType = (actionInfo.update || 'update').split(':');\n var updateMethod = cptType.pop();\n cptType = cptType[0] != null && parseClassType(cptType[0]);\n this[IN_MAIN_PROCESS] = true;\n var payloads = [payload];\n var batched = false; // Batch action\n\n if (payload.batch) {\n batched = true;\n payloads = zrUtil.map(payload.batch, function (item) {\n item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n item.batch = null;\n return item;\n });\n }\n\n var eventObjBatch = [];\n var eventObj;\n var isHighDown = payloadType === 'highlight' || payloadType === 'downplay';\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 || zrUtil.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 // method, payload, mainType, subType\n updateDirectly(this, updateMethod, batchItem, 'series');\n } else if (cptType) {\n updateDirectly(this, updateMethod, batchItem, cptType.main, cptType.sub);\n }\n }, this);\n\n if (updateMethod !== 'none' && !isHighDown && !cptType) {\n // Still dirty\n if (this[OPTION_UPDATED]) {\n // FIXME Pass payload ?\n prepare(this);\n updateMethods.update.call(this, payload);\n this[OPTION_UPDATED] = false;\n } else {\n updateMethods[updateMethod].call(this, payload);\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] = false;\n !silent && this._messageCenter.trigger(eventObj.type, eventObj);\n}\n\nfunction 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\nfunction triggerUpdatedEvent(silent) {\n !silent && this.trigger('updated');\n}\n/**\n * Event `rendered` is triggered when zr\n * rendered. It is useful for realtime\n * snapshot (reflect animation).\n *\n * Event `finished` is triggered when:\n * (1) zrender rendering finished.\n * (2) initial animation finished.\n * (3) progressive rendering finished.\n * (4) no pending action.\n * (5) no delayed setOption needs to be processed.\n */\n\n\nfunction bindRenderedEvent(zr, ecIns) {\n zr.on('rendered', function () {\n ecIns.trigger('rendered'); // 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[OPTION_UPDATED] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n ecIns.trigger('finished');\n }\n });\n}\n/**\n * @param {Object} params\n * @param {number} params.seriesIndex\n * @param {Array|TypedArray} params.data\n */\n\n\nechartsProto.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 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};\n/**\n * Register event\n * @method\n */\n\n\nechartsProto.on = createRegisterEventWithLowercaseName('on', false);\nechartsProto.off = createRegisterEventWithLowercaseName('off', false);\nechartsProto.one = createRegisterEventWithLowercaseName('one', false);\n/**\n * Prepare view instances of charts and components\n * @param {module:echarts/model/Global} ecModel\n * @private\n */\n\nfunction prepareView(ecIns, type, ecModel, scheduler) {\n var isComponent = type === 'component';\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 // Consider: id same and type changed.\n var viewId = '_ec_' + model.id + '_' + model.type;\n var view = viewMap[viewId];\n\n if (!view) {\n var classType = parseClassType(model.type);\n var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n 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 delete viewMap[view.__id];\n view.__id = view.group.__ecComponentInfo = null;\n } else {\n i++;\n }\n }\n} // /**\n// * Encode visual infomation from data after data processing\n// *\n// * @param {module:echarts/model/Global} ecModel\n// * @param {object} layout\n// * @param {boolean} [layoutFilter] `true`: only layout,\n// * `false`: only not layout,\n// * `null`/`undefined`: all.\n// * @param {string} taskBaseTag\n// * @private\n// */\n// function startVisualEncoding(ecIns, ecModel, api, payload, layoutFilter) {\n// each(visualFuncs, function (visual, index) {\n// var isLayout = visual.isLayout;\n// if (layoutFilter == null\n// || (layoutFilter === false && !isLayout)\n// || (layoutFilter === true && isLayout)\n// ) {\n// visual.func(ecModel, api, payload);\n// }\n// });\n// }\n\n\nfunction clearColorPalette(ecModel) {\n ecModel.clearColorPalette();\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.clearColorPalette();\n });\n}\n\nfunction render(ecIns, ecModel, api, payload) {\n renderComponents(ecIns, ecModel, api, payload);\n each(ecIns._chartsViews, function (chart) {\n chart.__alive = false;\n });\n renderSeries(ecIns, ecModel, api, payload); // 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\nfunction renderComponents(ecIns, ecModel, api, payload, dirtyList) {\n each(dirtyList || ecIns._componentsViews, function (componentView) {\n var componentModel = componentView.__model;\n componentView.render(componentModel, ecModel, api, payload);\n updateZ(componentModel, componentView);\n });\n}\n/**\n * Render each chart and component\n * @private\n */\n\n\nfunction renderSeries(ecIns, ecModel, api, payload, dirtyMap) {\n // Render all charts\n var scheduler = ecIns._scheduler;\n var unfinished;\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n chartView.__alive = true;\n var renderTask = chartView.renderTask;\n scheduler.updatePayload(renderTask, payload);\n\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n renderTask.dirty();\n }\n\n unfinished |= renderTask.perform(scheduler.getPerformArgs(renderTask));\n chartView.group.silent = !!seriesModel.get('silent');\n updateZ(seriesModel, chartView);\n updateBlend(seriesModel, chartView);\n });\n scheduler.unfinished |= unfinished; // If use hover layer\n\n updateHoverLayerStatus(ecIns, ecModel); // Add aria\n\n aria(ecIns._zr.dom, ecModel);\n}\n\nfunction performPostUpdateFuncs(ecModel, api) {\n each(postUpdateFuncs, function (func) {\n func(ecModel, api);\n });\n}\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n/**\n * @private\n */\n\nechartsProto._initEvents = function () {\n each(MOUSE_EVENT_NAMES, function (eveName) {\n var handler = function (e) {\n var ecModel = this.getModel();\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 if (el && el.dataIndex != null) {\n var dataModel = el.dataModel || ecModel.getSeriesByIndex(el.seriesIndex);\n params = dataModel && dataModel.getDataParams(el.dataIndex, el.dataType, el) || {};\n } // If element has custom eventData of components\n else if (el && el.eventData) {\n params = zrUtil.extend({}, el.eventData);\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 params.event = e;\n params.type = eveName;\n this._ecEventProcessor.eventInfo = {\n targetEl: el,\n packedEvent: params,\n model: model,\n view: view\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 }, this);\n each(eventActionMap, function (actionType, eventType) {\n this._messageCenter.on(eventType, function (event) {\n this.trigger(eventType, event);\n }, this);\n }, this);\n};\n/**\n * @return {boolean}\n */\n\n\nechartsProto.isDisposed = function () {\n return this._disposed;\n};\n/**\n * Clear\n */\n\n\nechartsProto.clear = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this.setOption({\n series: []\n }, true);\n};\n/**\n * Dispose instance\n */\n\n\nechartsProto.dispose = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._disposed = true;\n modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n var api = this._api;\n var ecModel = this._model;\n each(this._componentsViews, function (component) {\n component.dispose(ecModel, api);\n });\n each(this._chartsViews, function (chart) {\n chart.dispose(ecModel, api);\n }); // Dispose after all views disposed\n\n this._zr.dispose();\n\n delete instances[this.id];\n};\n\nzrUtil.mixin(ECharts, Eventful);\n\nfunction disposedWarning(id) {}\n\nfunction updateHoverLayerStatus(ecIns, ecModel) {\n var zr = ecIns._zr;\n var storage = zr.storage;\n var elCount = 0;\n storage.traverse(function (el) {\n elCount++;\n });\n\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) {\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.preventUsingHoverLayer) {\n return;\n }\n\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n if (chartView.__alive) {\n chartView.group.traverse(function (el) {\n // Don't switch back.\n el.useHoverLayer = true;\n });\n }\n });\n }\n}\n/**\n * Update chart progressive and blend.\n * @param {module:echarts/model/Series|module:echarts/model/Component} model\n * @param {module:echarts/view/Component|module:echarts/view/Chart} view\n */\n\n\nfunction updateBlend(seriesModel, chartView) {\n var blendMode = seriesModel.get('blendMode') || null;\n chartView.group.traverse(function (el) {\n // FIXME marker and other components\n if (!el.isGroup) {\n // Only set if blendMode is changed. In case element is incremental and don't wan't to rerender.\n if (el.style.blend !== blendMode) {\n el.setStyle('blend', blendMode);\n }\n }\n\n if (el.eachPendingDisplayable) {\n el.eachPendingDisplayable(function (displayable) {\n displayable.setStyle('blend', blendMode);\n });\n }\n });\n}\n/**\n * @param {module:echarts/model/Series|module:echarts/model/Component} model\n * @param {module:echarts/view/Component|module:echarts/view/Chart} view\n */\n\n\nfunction updateZ(model, view) {\n var z = model.get('z');\n var zlevel = model.get('zlevel'); // Set z and zlevel\n\n view.group.traverse(function (el) {\n if (el.type !== 'group') {\n z != null && (el.z = z);\n zlevel != null && (el.zlevel = zlevel);\n }\n });\n}\n\nfunction createExtensionAPI(ecInstance) {\n var coordSysMgr = ecInstance._coordSysMgr;\n return zrUtil.extend(new ExtensionAPI(ecInstance), {\n // Inject methods\n getCoordinateSystems: zrUtil.bind(coordSysMgr.getCoordinateSystems, coordSysMgr),\n getComponentByElement: function (el) {\n while (el) {\n var modelInfo = el.__ecComponentInfo;\n\n if (modelInfo != null) {\n return ecInstance._model.getComponent(modelInfo.mainType, modelInfo.index);\n }\n\n el = el.parent;\n }\n }\n });\n}\n/**\n * @class\n * Usage of query:\n * `chart.on('click', query, handler);`\n * The `query` can be:\n * + The component type query string, only `mainType` or `mainType.subType`,\n * like: 'xAxis', 'series', 'xAxis.category' or 'series.line'.\n * + The component query object, like:\n * `{seriesIndex: 2}`, `{seriesName: 'xx'}`, `{seriesId: 'some'}`,\n * `{xAxisIndex: 2}`, `{xAxisName: 'xx'}`, `{xAxisId: 'some'}`.\n * + The data query object, like:\n * `{dataIndex: 123}`, `{dataType: 'link'}`, `{name: 'some'}`.\n * + The other query object (cmponent customized query), like:\n * `{element: 'some'}` (only available in custom series).\n *\n * Caveat: If a prop in the `query` object is `null/undefined`, it is the\n * same as there is no such prop in the `query` object.\n */\n\n\nfunction EventProcessor() {\n // These info required: targetEl, packedEvent, model, view\n this.eventInfo;\n}\n\nEventProcessor.prototype = {\n constructor: EventProcessor,\n normalizeQuery: function (query) {\n var cptQuery = {};\n var dataQuery = {};\n var otherQuery = {}; // `query` is `mainType` or `mainType.subType` of component.\n\n if (zrUtil.isString(query)) {\n var condCptType = parseClassType(query); // `.main` and `.sub` may be ''.\n\n cptQuery.mainType = condCptType.main || null;\n cptQuery.subType = condCptType.sub || null;\n } // `query` is an object, convert to {mainType, index, name, id}.\n else {\n // `xxxIndex`, `xxxName`, `xxxId`, `name`, `dataIndex`, `dataType` is reserved,\n // can not be used in `compomentModel.filterForExposedEvent`.\n var suffixes = ['Index', 'Name', 'Id'];\n var dataKeys = {\n name: 1,\n dataIndex: 1,\n dataType: 1\n };\n zrUtil.each(query, function (val, key) {\n var reserved = false;\n\n for (var i = 0; i < suffixes.length; i++) {\n var propSuffix = suffixes[i];\n var suffixPos = key.lastIndexOf(propSuffix);\n\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n var mainType = key.slice(0, suffixPos); // Consider `dataIndex`.\n\n if (mainType !== 'data') {\n cptQuery.mainType = mainType;\n cptQuery[propSuffix.toLowerCase()] = val;\n reserved = true;\n }\n }\n }\n\n if (dataKeys.hasOwnProperty(key)) {\n dataQuery[key] = val;\n reserved = true;\n }\n\n if (!reserved) {\n otherQuery[key] = val;\n }\n });\n }\n\n return {\n cptQuery: cptQuery,\n dataQuery: dataQuery,\n otherQuery: otherQuery\n };\n },\n filter: function (eventType, query, args) {\n // They should be assigned before each trigger call.\n var eventInfo = this.eventInfo;\n\n if (!eventInfo) {\n return true;\n }\n\n var targetEl = eventInfo.targetEl;\n var packedEvent = eventInfo.packedEvent;\n var model = eventInfo.model;\n var view = eventInfo.view; // For event like 'globalout'.\n\n if (!model || !view) {\n return true;\n }\n\n var cptQuery = query.cptQuery;\n var dataQuery = query.dataQuery;\n return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n function check(query, host, prop, propOnHost) {\n return query[prop] == null || host[propOnHost || prop] === query[prop];\n }\n },\n afterTrigger: function () {\n // Make sure the eventInfo wont be used in next trigger.\n this.eventInfo = null;\n }\n};\n/**\n * @type {Object} key: actionType.\n * @inner\n */\n\nvar actions = {};\n/**\n * Map eventType to actionType\n * @type {Object}\n */\n\nvar eventActionMap = {};\n/**\n * Data processor functions of each stage\n * @type {Array.<Object.<string, Function>>}\n * @inner\n */\n\nvar dataProcessorFuncs = [];\n/**\n * @type {Array.<Function>}\n * @inner\n */\n\nvar optionPreprocessorFuncs = [];\n/**\n * @type {Array.<Function>}\n * @inner\n */\n\nvar postUpdateFuncs = [];\n/**\n * Visual encoding functions of each stage\n * @type {Array.<Object.<string, Function>>}\n */\n\nvar visualFuncs = [];\n/**\n * Theme storage\n * @type {Object.<key, Object>}\n */\n\nvar themeStorage = {};\n/**\n * Loading effects\n */\n\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = new Date() - 0;\nvar groupIdBase = new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\n\nfunction enableConnect(chart) {\n var STATUS_PENDING = 0;\n var STATUS_UPDATING = 1;\n var STATUS_UPDATED = 2;\n var STATUS_KEY = '__connectUpdateStatus';\n\n function updateConnectedChartsStatus(charts, status) {\n for (var i = 0; i < charts.length; i++) {\n var otherChart = charts[i];\n otherChart[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[STATUS_KEY] !== STATUS_PENDING) {\n if (event && event.escapeConnect) {\n return;\n }\n\n var action = chart.makeActionFromEvent(event);\n var otherCharts = [];\n each(instances, function (otherChart) {\n if (otherChart !== chart && otherChart.group === chart.group) {\n otherCharts.push(otherChart);\n }\n });\n updateConnectedChartsStatus(otherCharts, STATUS_PENDING);\n each(otherCharts, function (otherChart) {\n if (otherChart[STATUS_KEY] !== STATUS_UPDATING) {\n otherChart.dispatchAction(action);\n }\n });\n updateConnectedChartsStatus(otherCharts, STATUS_UPDATED);\n }\n });\n });\n}\n/**\n * @param {HTMLElement} dom\n * @param {Object} [theme]\n * @param {Object} opts\n * @param {number} [opts.devicePixelRatio] Use window.devicePixelRatio by default\n * @param {string} [opts.renderer] Can choose 'canvas' or 'svg' to render the chart.\n * @param {number} [opts.width] Use clientWidth of the input `dom` by default.\n * Can be 'auto' (the same as null/undefined)\n * @param {number} [opts.height] Use clientHeight of the input `dom` by default.\n * Can be 'auto' (the same as null/undefined)\n */\n\n\nfunction init(dom, theme, opts) {\n var existInstance = getInstanceByDom(dom);\n\n if (existInstance) {\n return existInstance;\n }\n\n var chart = new ECharts(dom, theme, opts);\n chart.id = 'ec_' + idBase++;\n instances[chart.id] = chart;\n modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n enableConnect(chart);\n return chart;\n}\n/**\n * @return {string|Array.<module:echarts~ECharts>} groupId\n */\n\n\nfunction connect(groupId) {\n // Is array of charts\n if (zrUtil.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/**\n * @DEPRECATED\n * @return {string} groupId\n */\n\n\nfunction disConnect(groupId) {\n connectedGroups[groupId] = false;\n}\n/**\n * @return {string} groupId\n */\n\n\nvar disconnect = disConnect;\n/**\n * Dispose a chart instance\n * @param {module:echarts~ECharts|HTMLDomElement|string} chart\n */\n\nfunction dispose(chart) {\n if (typeof chart === 'string') {\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}\n/**\n * @param {HTMLElement} dom\n * @return {echarts~ECharts}\n */\n\n\nfunction getInstanceByDom(dom) {\n return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\n/**\n * @param {string} key\n * @return {echarts~ECharts}\n */\n\n\nfunction getInstanceById(key) {\n return instances[key];\n}\n/**\n * Register theme\n */\n\n\nfunction registerTheme(name, theme) {\n themeStorage[name] = theme;\n}\n/**\n * Register option preprocessor\n * @param {Function} preprocessorFunc\n */\n\n\nfunction registerPreprocessor(preprocessorFunc) {\n optionPreprocessorFuncs.push(preprocessorFunc);\n}\n/**\n * @param {number} [priority=1000]\n * @param {Object|Function} processor\n */\n\n\nfunction registerProcessor(priority, processor) {\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_FILTER);\n}\n/**\n * Register postUpdater\n * @param {Function} postUpdateFunc\n */\n\n\nfunction registerPostUpdate(postUpdateFunc) {\n postUpdateFuncs.push(postUpdateFunc);\n}\n/**\n * Usage:\n * registerAction('someAction', 'someEvent', function () { ... });\n * registerAction('someAction', function () { ... });\n * registerAction(\n * {type: 'someAction', event: 'someEvent', update: 'updateView'},\n * function () { ... }\n * );\n *\n * @param {(string|Object)} actionInfo\n * @param {string} actionInfo.type\n * @param {string} [actionInfo.event]\n * @param {string} [actionInfo.update]\n * @param {string} [eventName]\n * @param {Function} action\n */\n\n\nfunction registerAction(actionInfo, eventName, action) {\n if (typeof eventName === 'function') {\n action = eventName;\n eventName = '';\n }\n\n var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n event: eventName\n }][0]; // Event name is all lowercase\n\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n eventName = actionInfo.event; // Validate action type and event name.\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}\n/**\n * @param {string} type\n * @param {*} CoordinateSystem\n */\n\n\nfunction registerCoordinateSystem(type, CoordinateSystem) {\n CoordinateSystemManager.register(type, CoordinateSystem);\n}\n/**\n * Get dimensions of specified coordinate system.\n * @param {string} type\n * @return {Array.<string|Object>}\n */\n\n\nfunction getCoordinateSystemDimensions(type) {\n var coordSysCreator = CoordinateSystemManager.get(type);\n\n if (coordSysCreator) {\n return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n }\n}\n/**\n * Layout is a special stage of visual encoding\n * Most visual encoding like color are common for different chart\n * But each chart has it's own layout algorithm\n *\n * @param {number} [priority=1000]\n * @param {Function} layoutTask\n */\n\n\nfunction registerLayout(priority, layoutTask) {\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n/**\n * @param {number} [priority=3000]\n * @param {module:echarts/stream/Task} visualTask\n */\n\n\nfunction registerVisual(priority, visualTask) {\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n/**\n * @param {Object|Function} fn: {seriesType, createOnAllSeries, performRawSeries, reset}\n */\n\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n if (isFunction(priority) || isObject(priority)) {\n fn = priority;\n priority = defaultPriority;\n }\n\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n stageHandler.__prio = priority;\n stageHandler.__raw = fn;\n targetList.push(stageHandler);\n return stageHandler;\n}\n/**\n * @param {string} name\n */\n\n\nfunction registerLoading(name, loadingFx) {\n loadingEffects[name] = loadingFx;\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendComponentModel(opts\n/*, superClass*/\n) {\n // var Clazz = ComponentModel;\n // if (superClass) {\n // var classType = parseClassType(superClass);\n // Clazz = ComponentModel.getClass(classType.main, classType.sub, true);\n // }\n return ComponentModel.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendComponentView(opts\n/*, superClass*/\n) {\n // var Clazz = ComponentView;\n // if (superClass) {\n // var classType = parseClassType(superClass);\n // Clazz = ComponentView.getClass(classType.main, classType.sub, true);\n // }\n return ComponentView.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendSeriesModel(opts\n/*, superClass*/\n) {\n // var Clazz = SeriesModel;\n // if (superClass) {\n // superClass = 'series.' + superClass.replace('series.', '');\n // var classType = parseClassType(superClass);\n // Clazz = ComponentModel.getClass(classType.main, classType.sub, true);\n // }\n return SeriesModel.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendChartView(opts\n/*, superClass*/\n) {\n // var Clazz = ChartView;\n // if (superClass) {\n // superClass = superClass.replace('series.', '');\n // var classType = parseClassType(superClass);\n // Clazz = ChartView.getClass(classType.main, true);\n // }\n return ChartView.extend(opts);\n}\n/**\n * ZRender need a canvas context to do measureText.\n * But in node environment canvas may be created by node-canvas.\n * So we need to specify how to create a canvas instead of using document.createElement('canvas')\n *\n * Be careful of using it in the browser.\n *\n * @param {Function} creator\n * @example\n * var Canvas = require('canvas');\n * var echarts = require('echarts');\n * echarts.setCanvasCreator(function () {\n * // Small size is enough.\n * return new Canvas(32, 32);\n * });\n */\n\n\nfunction setCanvasCreator(creator) {\n zrUtil.$override('createCanvas', creator);\n}\n/**\n * @param {string} mapName\n * @param {Array.<Object>|Object|string} geoJson\n * @param {Object} [specialAreas]\n *\n * @example GeoJSON\n * $.get('USA.json', function (geoJson) {\n * echarts.registerMap('USA', geoJson);\n * // Or\n * echarts.registerMap('USA', {\n * geoJson: geoJson,\n * specialAreas: {}\n * })\n * });\n *\n * $.get('airport.svg', function (svg) {\n * echarts.registerMap('airport', {\n * svg: svg\n * }\n * });\n *\n * echarts.registerMap('eu', [\n * {svg: eu-topographic.svg},\n * {geoJSON: eu.json}\n * ])\n */\n\n\nfunction registerMap(mapName, geoJson, specialAreas) {\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\n/**\n * @param {string} mapName\n * @return {Object}\n */\n\n\nfunction getMap(mapName) {\n // For backward compatibility, only return the first one.\n var records = mapDataStorage.retrieveMap(mapName);\n return records && records[0] && {\n geoJson: records[0].geoJSON,\n specialAreas: records[0].specialAreas\n };\n}\n\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesColor);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault); // Default actions\n\nregisterAction({\n type: 'highlight',\n event: 'highlight',\n update: 'highlight'\n}, zrUtil.noop);\nregisterAction({\n type: 'downplay',\n event: 'downplay',\n update: 'downplay'\n}, zrUtil.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\nvar dataTool = {};\nexports.version = version;\nexports.dependencies = dependencies;\nexports.PRIORITY = PRIORITY;\nexports.init = init;\nexports.connect = connect;\nexports.disConnect = disConnect;\nexports.disconnect = disconnect;\nexports.dispose = dispose;\nexports.getInstanceByDom = getInstanceByDom;\nexports.getInstanceById = getInstanceById;\nexports.registerTheme = registerTheme;\nexports.registerPreprocessor = registerPreprocessor;\nexports.registerProcessor = registerProcessor;\nexports.registerPostUpdate = registerPostUpdate;\nexports.registerAction = registerAction;\nexports.registerCoordinateSystem = registerCoordinateSystem;\nexports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\nexports.registerLayout = registerLayout;\nexports.registerVisual = registerVisual;\nexports.registerLoading = registerLoading;\nexports.extendComponentModel = extendComponentModel;\nexports.extendComponentView = extendComponentView;\nexports.extendSeriesModel = extendSeriesModel;\nexports.extendChartView = extendChartView;\nexports.setCanvasCreator = setCanvasCreator;\nexports.registerMap = registerMap;\nexports.getMap = getMap;\nexports.dataTool = dataTool;\nvar ___ec_export = require(\"./export\");\n(function () {\n for (var key in ___ec_export) {\n if (___ec_export.hasOwnProperty(key)) {\n exports[key] = ___ec_export[key];\n }\n }\n})();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrender = require(\"zrender/lib/zrender\");\n\nexports.zrender = zrender;\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nexports.matrix = matrix;\n\nvar vector = require(\"zrender/lib/core/vector\");\n\nexports.vector = vector;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar colorTool = require(\"zrender/lib/tool/color\");\n\nexports.color = colorTool;\n\nvar graphicUtil = require(\"./util/graphic\");\n\nvar numberUtil = require(\"./util/number\");\n\nexports.number = numberUtil;\n\nvar formatUtil = require(\"./util/format\");\n\nexports.format = formatUtil;\n\nvar _throttle = require(\"./util/throttle\");\n\nvar throttle = _throttle.throttle;\nexports.throttle = _throttle.throttle;\n\nvar ecHelper = require(\"./helper\");\n\nexports.helper = ecHelper;\n\nvar parseGeoJSON = require(\"./coord/geo/parseGeoJson\");\n\nexports.parseGeoJSON = parseGeoJSON;\n\nvar _List = require(\"./data/List\");\n\nexports.List = _List;\n\nvar _Model = require(\"./model/Model\");\n\nexports.Model = _Model;\n\nvar _Axis = require(\"./coord/Axis\");\n\nexports.Axis = _Axis;\n\nvar _env = require(\"zrender/lib/core/env\");\n\nexports.env = _env;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Do not mount those modules on 'src/echarts' for better tree shaking.\n */\nvar parseGeoJson = parseGeoJSON;\nvar ecUtil = {};\nzrUtil.each(['map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter', 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction', 'extend', 'defaults', 'clone', 'merge'], function (name) {\n ecUtil[name] = zrUtil[name];\n});\nvar graphic = {};\nzrUtil.each(['extendShape', 'extendPath', 'makePath', 'makeImage', 'mergePath', 'resizePath', 'createIcon', 'setHoverStyle', 'setLabelStyle', 'setTextStyle', 'setText', 'getFont', 'updateProps', 'initProps', 'getTransform', 'clipPointsByRect', 'clipRectByRect', 'registerShape', 'getShapeClass', 'Group', 'Image', 'Text', 'Circle', 'Sector', 'Ring', 'Polygon', 'Polyline', 'Rect', 'Line', 'BezierCurve', 'Arc', 'IncrementalDisplayable', 'CompoundPath', 'LinearGradient', 'RadialGradient', 'BoundingRect'], function (name) {\n graphic[name] = graphicUtil[name];\n});\nexports.parseGeoJson = parseGeoJson;\nexports.util = ecUtil;\nexports.graphic = graphic;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar createListFromArray = require(\"./chart/helper/createListFromArray\");\n\nvar axisHelper = require(\"./coord/axisHelper\");\n\nvar axisModelCommonMixin = require(\"./coord/axisModelCommonMixin\");\n\nvar Model = require(\"./model/Model\");\n\nvar _layout = require(\"./util/layout\");\n\nvar getLayoutRect = _layout.getLayoutRect;\nexports.getLayoutRect = _layout.getLayoutRect;\n\nvar _dataStackHelper = require(\"./data/helper/dataStackHelper\");\n\nvar enableDataStack = _dataStackHelper.enableDataStack;\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\nvar _completeDimensions = require(\"./data/helper/completeDimensions\");\n\nexports.completeDimensions = _completeDimensions;\n\nvar _createDimensions = require(\"./data/helper/createDimensions\");\n\nexports.createDimensions = _createDimensions;\n\nvar _symbol = require(\"./util/symbol\");\n\nexports.createSymbol = _symbol.createSymbol;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import createGraphFromNodeEdge from './chart/helper/createGraphFromNodeEdge';\n\n/**\n * Create a muti dimension List structure from seriesModel.\n * @param {module:echarts/model/Model} seriesModel\n * @return {module:echarts/data/List} list\n */\nfunction createList(seriesModel) {\n return createListFromArray(seriesModel.getSource(), seriesModel);\n} // export function createGraph(seriesModel) {\n// var nodes = seriesModel.get('data');\n// var links = seriesModel.get('links');\n// return createGraphFromNodeEdge(nodes, links, seriesModel);\n// }\n\n\nvar dataStack = {\n isDimensionStacked: isDimensionStacked,\n enableDataStack: enableDataStack,\n getStackedDimension: getStackedDimension\n};\n/**\n * Create a symbol element with given symbol configuration: shape, x, y, width, height, color\n * @param {string} symbolDesc\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {string} color\n */\n\n/**\n * Create scale\n * @param {Array.<number>} dataExtent\n * @param {Object|module:echarts/Model} option\n */\nfunction createScale(dataExtent, option) {\n var axisModel = option;\n\n if (!Model.isInstance(option)) {\n axisModel = new Model(option);\n zrUtil.mixin(axisModel, axisModelCommonMixin);\n }\n\n var scale = axisHelper.createScaleByModel(axisModel);\n scale.setExtent(dataExtent[0], dataExtent[1]);\n axisHelper.niceScaleExtent(scale, axisModel);\n return scale;\n}\n/**\n * Mixin common methods to axis model,\n *\n * Inlcude methods\n * `getFormattedLabels() => Array.<string>`\n * `getCategories() => Array.<string>`\n * `getMin(origin: boolean) => number`\n * `getMax(origin: boolean) => number`\n * `getNeedCrossZero() => boolean`\n * `setRange(start: number, end: number)`\n * `resetRange()`\n */\n\n\nfunction mixinAxisModelCommonMethods(Model) {\n zrUtil.mixin(Model, axisModelCommonMixin);\n}\n\nexports.createList = createList;\nexports.dataStack = dataStack;\nexports.createScale = createScale;\nexports.mixinAxisModelCommonMethods = mixinAxisModelCommonMethods;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Language: (Simplified) Chinese.\n */\nvar _default = {\n legend: {\n selector: {\n all: '全选',\n inverse: '反选'\n }\n },\n toolbox: {\n brush: {\n title: {\n rect: '矩形选择',\n polygon: '圈选',\n lineX: '横向选择',\n lineY: '纵向选择',\n keep: '保持选择',\n clear: '清除选择'\n }\n },\n dataView: {\n title: '数据视图',\n lang: ['数据视图', '关闭', '刷新']\n },\n dataZoom: {\n title: {\n zoom: '区域缩放',\n back: '区域缩放还原'\n }\n },\n magicType: {\n title: {\n line: '切换为折线图',\n bar: '切换为柱状图',\n stack: '切换为堆叠',\n tiled: '切换为平铺'\n }\n },\n restore: {\n title: '还原'\n },\n saveAsImage: {\n title: '保存为图片',\n lang: ['右键另存为图片']\n }\n },\n series: {\n typeNames: {\n pie: '饼图',\n bar: '柱状图',\n line: '折线图',\n scatter: '散点图',\n effectScatter: '涟漪散点图',\n radar: '雷达图',\n tree: '树图',\n treemap: '矩形树图',\n boxplot: '箱型图',\n candlestick: 'K线图',\n k: 'K线图',\n heatmap: '热力图',\n map: '地图',\n parallel: '平行坐标图',\n lines: '线图',\n graph: '关系图',\n sankey: '桑基图',\n funnel: '漏斗图',\n gauge: '仪表盘图',\n pictorialBar: '象形柱图',\n themeRiver: '主题河流图',\n sunburst: '旭日图'\n }\n },\n aria: {\n general: {\n withTitle: '这是一个关于“{title}”的图表。',\n withoutTitle: '这是一个图表,'\n },\n series: {\n single: {\n prefix: '',\n withName: '图表类型是{seriesType},表示{seriesName}。',\n withoutName: '图表类型是{seriesType}。'\n },\n multiple: {\n prefix: '它由{seriesCount}个图表系列组成。',\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n withoutName: '第{seriesId}个系列是一个{seriesType},',\n separator: {\n middle: ';',\n end: '。'\n }\n }\n },\n data: {\n allData: '其数据是——',\n partialData: '其中,前{displayCnt}项是——',\n withName: '{name}的数据是{value}',\n withoutName: '{value}',\n separator: {\n middle: ',',\n end: ''\n }\n }\n }\n};\nmodule.exports = _default;"],"names":["_config","zrender","__DEV__","zrUtil","colorTool","env","timsort","Eventful","GlobalModel","ExtensionAPI","CoordinateSystemManager","OptionManager","backwardCompat","dataStack","ComponentModel","SeriesModel","ComponentView","ChartView","graphic","modelUtil","_throttle","throttle","seriesColor","aria","loadingDefault","Scheduler","lightTheme","darkTheme","mapDataStorage","assert","each","isFunction","isObject","parseClassType","version","dependencies","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_BRUSH","PRIORITY","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","POST_CHART_LAYOUT","COMPONENT","BRUSH","IN_MAIN_PROCESS","OPTION_UPDATED","ACTION_REG","createRegisterEventWithLowercaseName","method","ignoreDisposed","eventName","handler","context","this","_disposed","toLowerCase","prototype","call","disposedWarning","id","MessageCenter","ECharts","dom","theme","opts","themeStorage","group","_dom","defaultRenderer","zr","_zr","init","renderer","devicePixelRatio","width","height","_throttledZrFlush","bind","flush","clone","_theme","_chartsViews","_chartsMap","_componentsViews","_componentsMap","_coordSysMgr","api","_api","createExtensionAPI","prioritySortFunc","a","b","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_ecEventProcessor","EventProcessor","_messageCenter","_initEvents","resize","_pendingActions","animation","on","_onframe","bindRenderedEvent","setAsPrimitive","off","one","mixin","echartsProto","doConvertPixel","methodName","finder","value","result","ecModel","_model","coordSysList","getCoordinateSystems","parseFinder","i","length","coordSys","scheduler","silent","prepare","updateMethods","update","flushPendingActions","triggerUpdatedEvent","unfinished","remainTime","startTime","Date","performSeriesTasks","performDataProcessorTasks","updateStreamModes","performVisualTasks","renderSeries","getDom","getZr","setOption","option","notMerge","lazyUpdate","optionManager","optionPreprocessorFuncs","setTheme","console","error","getModel","getOption","getWidth","getHeight","getDevicePixelRatio","painter","dpr","window","getRenderedCanvas","canvasSupported","pixelRatio","backgroundColor","get","getSvgDataURL","svgSupported","list","storage","getDisplayList","el","stopAnimation","toDataURL","getDataURL","excludeComponents","excludesComponentViews","self","componentType","eachComponent","mainType","component","view","__viewId","ignore","push","url","getType","type","getConnectedDataURL","isSvg","groupId","mathMin","Math","min","mathMax","max","MAX_NUMBER","Infinity","connectedGroups","left","top","right","bottom","canvasList","instances","chart","canvas","getSvgDom","innerHTML","boundingRect","getBoundingClientRect","targetCanvas","createCanvas","content","item","x","y","getSvgRoot","connectedBackgroundColor","setBackgroundColor","refreshImmediately","add","Rect","shape","style","fill","img","Image","image","convertToPixel","curry","convertFromPixel","containPixel","models","key","indexOf","model","coordinateSystem","containPoint","getVisual","visualType","defaultMainType","seriesModel","data","getData","dataIndexInside","hasOwnProperty","indexOfRawIndex","dataIndex","getItemVisual","getViewOfComponentModel","componentModel","getViewOfSeriesModel","prepareAndUpdate","payload","coordSysMgr","restoreData","create","clearColorPalette","render","colorArr","parse","stringify","performPostUpdateFuncs","updateTransform","ecIns","componentDirtyList","componentView","__alive","seriesDirtyMap","createHashMap","eachSeries","chartView","set","uid","setDirty","dirtyMap","updateView","markUpdateMethod","updateVisual","updateLayout","restorePipelines","prepareStageTasks","prepareView","plan","updateDirectly","subType","query","condition","excludeSeriesId","normalizeToArray","callView","concat","__model","chartsMap","doDispatchAction","payloadType","escapeConnect","actionWrap","actions","actionInfo","cptType","split","updateMethod","pop","payloads","batched","batch","map","defaults","extend","eventObj","eventObjBatch","isHighDown","batchItem","action","event","main","sub","trigger","pendingActions","shift","isFinished","isComponent","viewList","viewMap","doPrepare","viewId","classType","Clazz","getClass","__id","__ecComponentInfo","index","componentIndex","renderTask","dispose","remove","splice","renderComponents","dirtyList","updateZ","updatePayload","dirty","perform","getPerformArgs","updateBlend","updateHoverLayerStatus","postUpdateFuncs","func","_loadingFX","optionChanged","resetOption","showLoading","name","cfg","hideLoading","loadingEffects","makeActionFromEvent","eventActionMap","dispatchAction","opt","browser","weChat","appendData","params","seriesIndex","getSeriesByIndex","MOUSE_EVENT_NAMES","elCount","traverse","node","preventUsingHoverLayer","useHoverLayer","blendMode","isGroup","blend","setStyle","eachPendingDisplayable","displayable","z","zlevel","ecInstance","getComponentByElement","modelInfo","getComponent","parent","eventInfo","eveName","e","target","isGlobalOut","dataModel","getDataParams","dataType","eventData","targetEl","packedEvent","zrEventfulCallAtLast","actionType","eventType","isDisposed","clear","series","setAttribute","DOM_ATTRIBUTE_KEY","constructor","normalizeQuery","cptQuery","dataQuery","otherQuery","isString","condCptType","suffixes","dataKeys","val","reserved","propSuffix","suffixPos","lastIndexOf","slice","filter","args","check","filterForExposedEvent","host","prop","propOnHost","afterTrigger","idBase","groupIdBase","enableConnect","STATUS_PENDING","STATUS_UPDATING","STATUS_UPDATED","STATUS_KEY","updateConnectedChartsStatus","charts","status","otherChart","otherCharts","existInstance","getInstanceByDom","connect","isArray","disConnect","disconnect","getAttribute","getInstanceById","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","priority","processor","normalizeRegister","registerPostUpdate","postUpdateFunc","registerAction","test","registerCoordinateSystem","CoordinateSystem","register","getCoordinateSystemDimensions","coordSysCreator","getDimensionsInfo","dimensions","registerLayout","layoutTask","registerVisual","visualTask","targetList","fn","defaultPriority","stageHandler","wrapStageHandler","__raw","registerLoading","loadingFx","extendComponentModel","extendComponentView","extendSeriesModel","extendChartView","setCanvasCreator","creator","$override","registerMap","mapName","geoJson","specialAreas","getMap","records","retrieveMap","geoJSON","noop","dataTool","exports","___ec_export","matrix","vector","color","graphicUtil","numberUtil","number","formatUtil","format","ecHelper","helper","parseGeoJSON","_List","List","_Model","Model","_Axis","Axis","_env","parseGeoJson","ecUtil","util","createListFromArray","axisHelper","axisModelCommonMixin","_layout","getLayoutRect","_dataStackHelper","enableDataStack","isDimensionStacked","getStackedDimension","_completeDimensions","completeDimensions","_createDimensions","createDimensions","_symbol","createList","getSource","createSymbol","createScale","dataExtent","axisModel","isInstance","scale","createScaleByModel","setExtent","niceScaleExtent","mixinAxisModelCommonMethods","_default","legend","selector","all","inverse","toolbox","brush","title","rect","polygon","lineX","lineY","keep","dataView","lang","dataZoom","zoom","back","magicType","line","bar","stack","tiled","restore","saveAsImage","typeNames","pie","scatter","effectScatter","radar","tree","treemap","boxplot","candlestick","k","heatmap","parallel","lines","graph","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","middle","end","allData","partialData","module"],"sourceRoot":""}
|