{"version":3,"file":"js/chunk-vendors-69403744.a9eb4e0e.js","mappings":"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","sources":["webpack://i4proportal/./node_modules/echarts/lib/loading/default.js","webpack://i4proportal/./node_modules/echarts/lib/model/Component.js","webpack://i4proportal/./node_modules/echarts/lib/model/Global.js","webpack://i4proportal/./node_modules/echarts/lib/model/Model.js","webpack://i4proportal/./node_modules/echarts/lib/model/OptionManager.js","webpack://i4proportal/./node_modules/echarts/lib/model/Series.js","webpack://i4proportal/./node_modules/echarts/lib/model/globalDefault.js","webpack://i4proportal/./node_modules/echarts/lib/model/mixin/areaStyle.js","webpack://i4proportal/./node_modules/echarts/lib/model/mixin/boxLayout.js","webpack://i4proportal/./node_modules/echarts/lib/model/mixin/colorPalette.js","webpack://i4proportal/./node_modules/echarts/lib/model/mixin/dataFormat.js","webpack://i4proportal/./node_modules/echarts/lib/model/mixin/itemStyle.js","webpack://i4proportal/./node_modules/echarts/lib/model/mixin/lineStyle.js","webpack://i4proportal/./node_modules/echarts/lib/model/mixin/makeStyleMapper.js","webpack://i4proportal/./node_modules/echarts/lib/model/mixin/textStyle.js","webpack://i4proportal/./node_modules/echarts/lib/model/referHelper.js","webpack://i4proportal/./node_modules/echarts/lib/preprocessor/backwardCompat.js","webpack://i4proportal/./node_modules/echarts/lib/preprocessor/helper/compatStyle.js","webpack://i4proportal/./node_modules/echarts/lib/processor/dataFilter.js","webpack://i4proportal/./node_modules/echarts/lib/processor/dataSample.js","webpack://i4proportal/./node_modules/echarts/lib/processor/dataStack.js","webpack://i4proportal/./node_modules/echarts/lib/scale/Interval.js","webpack://i4proportal/./node_modules/echarts/lib/scale/Log.js","webpack://i4proportal/./node_modules/echarts/lib/scale/Ordinal.js","webpack://i4proportal/./node_modules/echarts/lib/scale/Scale.js","webpack://i4proportal/./node_modules/echarts/lib/scale/Time.js","webpack://i4proportal/./node_modules/echarts/lib/scale/helper.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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../util/graphic\");\n\nvar textContain = require(\"zrender/lib/contain/text\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 PI = Math.PI;\n/**\n * @param {module:echarts/ExtensionAPI} api\n * @param {Object} [opts]\n * @param {string} [opts.text]\n * @param {string} [opts.color]\n * @param {string} [opts.textColor]\n * @return {module:zrender/Element}\n */\n\nfunction _default(api, opts) {\n opts = opts || {};\n zrUtil.defaults(opts, {\n text: 'loading',\n textColor: '#000',\n fontSize: '12px',\n maskColor: 'rgba(255, 255, 255, 0.8)',\n showSpinner: true,\n color: '#c23531',\n spinnerRadius: 10,\n lineWidth: 5,\n zlevel: 0\n });\n var group = new graphic.Group();\n var mask = new graphic.Rect({\n style: {\n fill: opts.maskColor\n },\n zlevel: opts.zlevel,\n z: 10000\n });\n group.add(mask);\n var font = opts.fontSize + ' sans-serif';\n var labelRect = new graphic.Rect({\n style: {\n fill: 'none',\n text: opts.text,\n font: font,\n textPosition: 'right',\n textDistance: 10,\n textFill: opts.textColor\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n group.add(labelRect);\n\n if (opts.showSpinner) {\n var arc = new graphic.Arc({\n shape: {\n startAngle: -PI / 2,\n endAngle: -PI / 2 + 0.1,\n r: opts.spinnerRadius\n },\n style: {\n stroke: opts.color,\n lineCap: 'round',\n lineWidth: opts.lineWidth\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n arc.animateShape(true).when(1000, {\n endAngle: PI * 3 / 2\n }).start('circularInOut');\n arc.animateShape(true).when(1000, {\n startAngle: PI * 3 / 2\n }).delay(300).start('circularInOut');\n group.add(arc);\n } // Inject resize\n\n\n group.resize = function () {\n var textWidth = textContain.getWidth(opts.text, font);\n var r = opts.showSpinner ? opts.spinnerRadius : 0; // cx = (containerWidth - arcDiameter - textDistance - textWidth) / 2\n // textDistance needs to be calculated when both animation and text exist\n\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 // only show the text\n - (opts.showSpinner ? 0 : textWidth / 2);\n var cy = api.getHeight() / 2;\n opts.showSpinner && arc.setShape({\n cx: cx,\n cy: cy\n });\n labelRect.setShape({\n x: cx - r,\n y: cy - r,\n width: r * 2,\n height: r * 2\n });\n mask.setShape({\n x: 0,\n y: 0,\n width: api.getWidth(),\n height: api.getHeight()\n });\n };\n\n group.resize();\n return group;\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 Model = require(\"./Model\");\n\nvar componentUtil = require(\"../util/component\");\n\nvar _clazz = require(\"../util/clazz\");\n\nvar enableClassManagement = _clazz.enableClassManagement;\nvar parseClassType = _clazz.parseClassType;\n\nvar _model = require(\"../util/model\");\n\nvar makeInner = _model.makeInner;\n\nvar layout = require(\"../util/layout\");\n\nvar boxLayoutMixin = require(\"./mixin/boxLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Component model\n *\n * @module echarts/model/Component\n */\nvar inner = makeInner();\n/**\n * @alias module:echarts/model/Component\n * @constructor\n * @param {Object} option\n * @param {module:echarts/model/Model} parentModel\n * @param {module:echarts/model/Model} ecModel\n */\n\nvar ComponentModel = Model.extend({\n type: 'component',\n\n /**\n * @readOnly\n * @type {string}\n */\n id: '',\n\n /**\n * Because simplified concept is probably better, series.name (or component.name)\n * has been having too many resposibilities:\n * (1) Generating id (which requires name in option should not be modified).\n * (2) As an index to mapping series when merging option or calling API (a name\n * can refer to more then one components, which is convinient is some case).\n * (3) Display.\n * @readOnly\n */\n name: '',\n\n /**\n * @readOnly\n * @type {string}\n */\n mainType: '',\n\n /**\n * @readOnly\n * @type {string}\n */\n subType: '',\n\n /**\n * @readOnly\n * @type {number}\n */\n componentIndex: 0,\n\n /**\n * @type {Object}\n * @protected\n */\n defaultOption: null,\n\n /**\n * @type {module:echarts/model/Global}\n * @readOnly\n */\n ecModel: null,\n\n /**\n * key: componentType\n * value: Component model list, can not be null.\n * @type {Object.>}\n * @readOnly\n */\n dependentModels: [],\n\n /**\n * @type {string}\n * @readOnly\n */\n uid: null,\n\n /**\n * Support merge layout params.\n * Only support 'box' now (left/right/top/bottom/width/height).\n * @type {string|Object} Object can be {ignoreSize: true}\n * @readOnly\n */\n layoutMode: null,\n $constructor: function (option, parentModel, ecModel, extraOpt) {\n Model.call(this, option, parentModel, ecModel, extraOpt);\n this.uid = componentUtil.getUID('ec_cpt_model');\n },\n init: function (option, parentModel, ecModel, extraOpt) {\n this.mergeDefaultAndTheme(option, ecModel);\n },\n mergeDefaultAndTheme: function (option, ecModel) {\n var layoutMode = this.layoutMode;\n var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n var themeModel = ecModel.getTheme();\n zrUtil.merge(option, themeModel.get(this.mainType));\n zrUtil.merge(option, this.getDefaultOption());\n\n if (layoutMode) {\n layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n },\n mergeOption: function (option, extraOpt) {\n zrUtil.merge(this.option, option, true);\n var layoutMode = this.layoutMode;\n\n if (layoutMode) {\n layout.mergeLayoutParam(this.option, option, layoutMode);\n }\n },\n // Hooker after init or mergeOption\n optionUpdated: function (newCptOption, isInit) {},\n getDefaultOption: function () {\n var fields = inner(this);\n\n if (!fields.defaultOption) {\n var optList = [];\n var Class = this.constructor;\n\n while (Class) {\n var opt = Class.prototype.defaultOption;\n opt && optList.push(opt);\n Class = Class.superClass;\n }\n\n var defaultOption = {};\n\n for (var i = optList.length - 1; i >= 0; i--) {\n defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n }\n\n fields.defaultOption = defaultOption;\n }\n\n return fields.defaultOption;\n },\n getReferringComponents: function (mainType) {\n return this.ecModel.queryComponents({\n mainType: mainType,\n index: this.get(mainType + 'Index', true),\n id: this.get(mainType + 'Id', true)\n });\n }\n}); // Reset ComponentModel.extend, add preConstruct.\n// clazzUtil.enableClassExtend(\n// ComponentModel,\n// function (option, parentModel, ecModel, extraOpt) {\n// // Set dependentModels, componentIndex, name, id, mainType, subType.\n// zrUtil.extend(this, extraOpt);\n// this.uid = componentUtil.getUID('componentModel');\n// // this.setReadOnly([\n// // 'type', 'id', 'uid', 'name', 'mainType', 'subType',\n// // 'dependentModels', 'componentIndex'\n// // ]);\n// }\n// );\n// Add capability of registerClass, getClass, hasClass, registerSubTypeDefaulter and so on.\n\nenableClassManagement(ComponentModel, {\n registerWhenExtend: true\n});\ncomponentUtil.enableSubTypeDefaulter(ComponentModel); // Add capability of ComponentModel.topologicalTravel.\n\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n var deps = [];\n zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (Clazz) {\n deps = deps.concat(Clazz.prototype.dependencies || []);\n }); // Ensure main type.\n\n deps = zrUtil.map(deps, function (type) {\n return parseClassType(type).main;\n }); // Hack dataset for convenience.\n\n if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n deps.unshift('dataset');\n }\n\n return deps;\n}\n\nzrUtil.mixin(ComponentModel, boxLayoutMixin);\nvar _default = ComponentModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar filter = _util.filter;\nvar map = _util.map;\nvar isArray = _util.isArray;\nvar indexOf = _util.indexOf;\nvar isObject = _util.isObject;\nvar isString = _util.isString;\nvar createHashMap = _util.createHashMap;\nvar assert = _util.assert;\nvar clone = _util.clone;\nvar merge = _util.merge;\nvar extend = _util.extend;\nvar mixin = _util.mixin;\n\nvar modelUtil = require(\"../util/model\");\n\nvar Model = require(\"./Model\");\n\nvar ComponentModel = require(\"./Component\");\n\nvar globalDefault = require(\"./globalDefault\");\n\nvar colorPaletteMixin = require(\"./mixin/colorPalette\");\n\nvar _sourceHelper = require(\"../data/helper/sourceHelper\");\n\nvar resetSourceDefaulter = _sourceHelper.resetSourceDefaulter;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * ECharts global model\n *\n * @module {echarts/model/Global}\n */\n\n/**\n * Caution: If the mechanism should be changed some day, these cases\n * should be considered:\n *\n * (1) In `merge option` mode, if using the same option to call `setOption`\n * many times, the result should be the same (try our best to ensure that).\n * (2) In `merge option` mode, if a component has no id/name specified, it\n * will be merged by index, and the result sequence of the components is\n * consistent to the original sequence.\n * (3) `reset` feature (in toolbox). Find detailed info in comments about\n * `mergeOption` in module:echarts/model/OptionManager.\n */\nvar OPTION_INNER_KEY = '\\0_ec_inner';\n/**\n * @alias module:echarts/model/Global\n *\n * @param {Object} option\n * @param {module:echarts/model/Model} parentModel\n * @param {Object} theme\n */\n\nvar GlobalModel = Model.extend({\n init: function (option, parentModel, theme, optionManager) {\n theme = theme || {};\n this.option = null; // Mark as not initialized.\n\n /**\n * @type {module:echarts/model/Model}\n * @private\n */\n\n this._theme = new Model(theme);\n /**\n * @type {module:echarts/model/OptionManager}\n */\n\n this._optionManager = optionManager;\n },\n setOption: function (option, optionPreprocessorFuncs) {\n assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()');\n\n this._optionManager.setOption(option, optionPreprocessorFuncs);\n\n this.resetOption(null);\n },\n\n /**\n * @param {string} type null/undefined: reset all.\n * 'recreate': force recreate all.\n * 'timeline': only reset timeline option\n * 'media': only reset media query option\n * @return {boolean} Whether option changed.\n */\n resetOption: function (type) {\n var optionChanged = false;\n var optionManager = this._optionManager;\n\n if (!type || type === 'recreate') {\n var baseOption = optionManager.mountOption(type === 'recreate');\n\n if (!this.option || type === 'recreate') {\n initBase.call(this, baseOption);\n } else {\n this.restoreData();\n this.mergeOption(baseOption);\n }\n\n optionChanged = true;\n }\n\n if (type === 'timeline' || type === 'media') {\n this.restoreData();\n }\n\n if (!type || type === 'recreate' || type === 'timeline') {\n var timelineOption = optionManager.getTimelineOption(this);\n timelineOption && (this.mergeOption(timelineOption), optionChanged = true);\n }\n\n if (!type || type === 'recreate' || type === 'media') {\n var mediaOptions = optionManager.getMediaOption(this, this._api);\n\n if (mediaOptions.length) {\n each(mediaOptions, function (mediaOption) {\n this.mergeOption(mediaOption, optionChanged = true);\n }, this);\n }\n }\n\n return optionChanged;\n },\n\n /**\n * @protected\n */\n mergeOption: function (newOption) {\n var option = this.option;\n var componentsMap = this._componentsMap;\n var newCptTypes = [];\n resetSourceDefaulter(this); // If no component class, merge directly.\n // For example: color, animaiton options, etc.\n\n each(newOption, function (componentOption, mainType) {\n if (componentOption == null) {\n return;\n }\n\n if (!ComponentModel.hasClass(mainType)) {\n // globalSettingTask.dirty();\n option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n } else if (mainType) {\n newCptTypes.push(mainType);\n }\n });\n ComponentModel.topologicalTravel(newCptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n function visitComponent(mainType, dependencies) {\n var newCptOptionList = modelUtil.normalizeToArray(newOption[mainType]);\n var mapResult = modelUtil.mappingToExists(componentsMap.get(mainType), newCptOptionList);\n modelUtil.makeIdAndName(mapResult); // Set mainType and complete subType.\n\n each(mapResult, function (item, index) {\n var opt = item.option;\n\n if (isObject(opt)) {\n item.keyInfo.mainType = mainType;\n item.keyInfo.subType = determineSubType(mainType, opt, item.exist);\n }\n });\n var dependentModels = getComponentsByTypes(componentsMap, dependencies);\n option[mainType] = [];\n componentsMap.set(mainType, []);\n each(mapResult, function (resultItem, index) {\n var componentModel = resultItem.exist;\n var newCptOption = resultItem.option;\n assert(isObject(newCptOption) || componentModel, 'Empty component definition'); // Consider where is no new option and should be merged using {},\n // see removeEdgeAndAdd in topologicalTravel and\n // ComponentModel.getAllClassMainTypes.\n\n if (!newCptOption) {\n componentModel.mergeOption({}, this);\n componentModel.optionUpdated({}, false);\n } else {\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n if (componentModel && componentModel.constructor === ComponentModelClass) {\n componentModel.name = resultItem.keyInfo.name; // componentModel.settingTask && componentModel.settingTask.dirty();\n\n componentModel.mergeOption(newCptOption, this);\n componentModel.optionUpdated(newCptOption, false);\n } else {\n // PENDING Global as parent ?\n var extraOpt = extend({\n dependentModels: dependentModels,\n componentIndex: index\n }, resultItem.keyInfo);\n componentModel = new ComponentModelClass(newCptOption, this, this, extraOpt);\n extend(componentModel, extraOpt);\n componentModel.init(newCptOption, this, this, extraOpt); // Call optionUpdated after init.\n // newCptOption has been used as componentModel.option\n // and may be merged with theme and default, so pass null\n // to avoid confusion.\n\n componentModel.optionUpdated(null, true);\n }\n }\n\n componentsMap.get(mainType)[index] = componentModel;\n option[mainType][index] = componentModel.option;\n }, this); // Backup series for filtering.\n\n if (mainType === 'series') {\n createSeriesIndices(this, componentsMap.get('series'));\n }\n }\n\n this._seriesIndicesMap = createHashMap(this._seriesIndices = this._seriesIndices || []);\n },\n\n /**\n * Get option for output (cloned option and inner info removed)\n * @public\n * @return {Object}\n */\n getOption: function () {\n var option = clone(this.option);\n each(option, function (opts, mainType) {\n if (ComponentModel.hasClass(mainType)) {\n var opts = modelUtil.normalizeToArray(opts);\n\n for (var i = opts.length - 1; i >= 0; i--) {\n // Remove options with inner id.\n if (modelUtil.isIdInner(opts[i])) {\n opts.splice(i, 1);\n }\n }\n\n option[mainType] = opts;\n }\n });\n delete option[OPTION_INNER_KEY];\n return option;\n },\n\n /**\n * @return {module:echarts/model/Model}\n */\n getTheme: function () {\n return this._theme;\n },\n\n /**\n * @param {string} mainType\n * @param {number} [idx=0]\n * @return {module:echarts/model/Component}\n */\n getComponent: function (mainType, idx) {\n var list = this._componentsMap.get(mainType);\n\n if (list) {\n return list[idx || 0];\n }\n },\n\n /**\n * If none of index and id and name used, return all components with mainType.\n * @param {Object} condition\n * @param {string} condition.mainType\n * @param {string} [condition.subType] If ignore, only query by mainType\n * @param {number|Array.} [condition.index] Either input index or id or name.\n * @param {string|Array.} [condition.id] Either input index or id or name.\n * @param {string|Array.} [condition.name] Either input index or id or name.\n * @return {Array.}\n */\n queryComponents: function (condition) {\n var mainType = condition.mainType;\n\n if (!mainType) {\n return [];\n }\n\n var index = condition.index;\n var id = condition.id;\n var name = condition.name;\n\n var cpts = this._componentsMap.get(mainType);\n\n if (!cpts || !cpts.length) {\n return [];\n }\n\n var result;\n\n if (index != null) {\n if (!isArray(index)) {\n index = [index];\n }\n\n result = filter(map(index, function (idx) {\n return cpts[idx];\n }), function (val) {\n return !!val;\n });\n } else if (id != null) {\n var isIdArray = isArray(id);\n result = filter(cpts, function (cpt) {\n return isIdArray && indexOf(id, cpt.id) >= 0 || !isIdArray && cpt.id === id;\n });\n } else if (name != null) {\n var isNameArray = isArray(name);\n result = filter(cpts, function (cpt) {\n return isNameArray && indexOf(name, cpt.name) >= 0 || !isNameArray && cpt.name === name;\n });\n } else {\n // Return all components with mainType\n result = cpts.slice();\n }\n\n return filterBySubType(result, condition);\n },\n\n /**\n * The interface is different from queryComponents,\n * which is convenient for inner usage.\n *\n * @usage\n * var result = findComponents(\n * {mainType: 'dataZoom', query: {dataZoomId: 'abc'}}\n * );\n * var result = findComponents(\n * {mainType: 'series', subType: 'pie', query: {seriesName: 'uio'}}\n * );\n * var result = findComponents(\n * {mainType: 'series',\n * filter: function (model, index) {...}}\n * );\n * // result like [component0, componnet1, ...]\n *\n * @param {Object} condition\n * @param {string} condition.mainType Mandatory.\n * @param {string} [condition.subType] Optional.\n * @param {Object} [condition.query] like {xxxIndex, xxxId, xxxName},\n * where xxx is mainType.\n * If query attribute is null/undefined or has no index/id/name,\n * do not filtering by query conditions, which is convenient for\n * no-payload situations or when target of action is global.\n * @param {Function} [condition.filter] parameter: component, return boolean.\n * @return {Array.}\n */\n findComponents: function (condition) {\n var query = condition.query;\n var mainType = condition.mainType;\n var queryCond = getQueryCond(query);\n var result = queryCond ? this.queryComponents(queryCond) : this._componentsMap.get(mainType);\n return doFilter(filterBySubType(result, condition));\n\n function getQueryCond(q) {\n var indexAttr = mainType + 'Index';\n var idAttr = mainType + 'Id';\n var nameAttr = mainType + 'Name';\n return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n mainType: mainType,\n // subType will be filtered finally.\n index: q[indexAttr],\n id: q[idAttr],\n name: q[nameAttr]\n } : null;\n }\n\n function doFilter(res) {\n return condition.filter ? filter(res, condition.filter) : res;\n }\n },\n\n /**\n * @usage\n * eachComponent('legend', function (legendModel, index) {\n * ...\n * });\n * eachComponent(function (componentType, model, index) {\n * // componentType does not include subType\n * // (componentType is 'xxx' but not 'xxx.aa')\n * });\n * eachComponent(\n * {mainType: 'dataZoom', query: {dataZoomId: 'abc'}},\n * function (model, index) {...}\n * );\n * eachComponent(\n * {mainType: 'series', subType: 'pie', query: {seriesName: 'uio'}},\n * function (model, index) {...}\n * );\n *\n * @param {string|Object=} mainType When mainType is object, the definition\n * is the same as the method 'findComponents'.\n * @param {Function} cb\n * @param {*} context\n */\n eachComponent: function (mainType, cb, context) {\n var componentsMap = this._componentsMap;\n\n if (typeof mainType === 'function') {\n context = cb;\n cb = mainType;\n componentsMap.each(function (components, componentType) {\n each(components, function (component, index) {\n cb.call(context, componentType, component, index);\n });\n });\n } else if (isString(mainType)) {\n each(componentsMap.get(mainType), cb, context);\n } else if (isObject(mainType)) {\n var queryResult = this.findComponents(mainType);\n each(queryResult, cb, context);\n }\n },\n\n /**\n * @param {string} name\n * @return {Array.}\n */\n getSeriesByName: function (name) {\n var series = this._componentsMap.get('series');\n\n return filter(series, function (oneSeries) {\n return oneSeries.name === name;\n });\n },\n\n /**\n * @param {number} seriesIndex\n * @return {module:echarts/model/Series}\n */\n getSeriesByIndex: function (seriesIndex) {\n return this._componentsMap.get('series')[seriesIndex];\n },\n\n /**\n * Get series list before filtered by type.\n * FIXME: rename to getRawSeriesByType?\n *\n * @param {string} subType\n * @return {Array.}\n */\n getSeriesByType: function (subType) {\n var series = this._componentsMap.get('series');\n\n return filter(series, function (oneSeries) {\n return oneSeries.subType === subType;\n });\n },\n\n /**\n * @return {Array.}\n */\n getSeries: function () {\n return this._componentsMap.get('series').slice();\n },\n\n /**\n * @return {number}\n */\n getSeriesCount: function () {\n return this._componentsMap.get('series').length;\n },\n\n /**\n * After filtering, series may be different\n * frome raw series.\n *\n * @param {Function} cb\n * @param {*} context\n */\n eachSeries: function (cb, context) {\n assertSeriesInitialized(this);\n each(this._seriesIndices, function (rawSeriesIndex) {\n var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n cb.call(context, series, rawSeriesIndex);\n }, this);\n },\n\n /**\n * Iterate raw series before filtered.\n *\n * @param {Function} cb\n * @param {*} context\n */\n eachRawSeries: function (cb, context) {\n each(this._componentsMap.get('series'), cb, context);\n },\n\n /**\n * After filtering, series may be different.\n * frome raw series.\n *\n * @param {string} subType.\n * @param {Function} cb\n * @param {*} context\n */\n eachSeriesByType: function (subType, cb, context) {\n assertSeriesInitialized(this);\n each(this._seriesIndices, function (rawSeriesIndex) {\n var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n if (series.subType === subType) {\n cb.call(context, series, rawSeriesIndex);\n }\n }, this);\n },\n\n /**\n * Iterate raw series before filtered of given type.\n *\n * @parma {string} subType\n * @param {Function} cb\n * @param {*} context\n */\n eachRawSeriesByType: function (subType, cb, context) {\n return each(this.getSeriesByType(subType), cb, context);\n },\n\n /**\n * @param {module:echarts/model/Series} seriesModel\n */\n isSeriesFiltered: function (seriesModel) {\n assertSeriesInitialized(this);\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n },\n\n /**\n * @return {Array.}\n */\n getCurrentSeriesIndices: function () {\n return (this._seriesIndices || []).slice();\n },\n\n /**\n * @param {Function} cb\n * @param {*} context\n */\n filterSeries: function (cb, context) {\n assertSeriesInitialized(this);\n var filteredSeries = filter(this._componentsMap.get('series'), cb, context);\n createSeriesIndices(this, filteredSeries);\n },\n restoreData: function (payload) {\n var componentsMap = this._componentsMap;\n createSeriesIndices(this, componentsMap.get('series'));\n var componentTypes = [];\n componentsMap.each(function (components, componentType) {\n componentTypes.push(componentType);\n });\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType, dependencies) {\n each(componentsMap.get(componentType), function (component) {\n (componentType !== 'series' || !isNotTargetSeries(component, payload)) && component.restoreData();\n });\n });\n }\n});\n\nfunction isNotTargetSeries(seriesModel, payload) {\n if (payload) {\n var index = payload.seiresIndex;\n var id = payload.seriesId;\n var name = payload.seriesName;\n return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name != null && seriesModel.name !== name;\n }\n}\n/**\n * @inner\n */\n\n\nfunction mergeTheme(option, theme) {\n // PENDING\n // NOT use `colorLayer` in theme if option has `color`\n var notMergeColorLayer = option.color && !option.colorLayer;\n each(theme, function (themeItem, name) {\n if (name === 'colorLayer' && notMergeColorLayer) {\n return;\n } // 如果有 component model 则把具体的 merge 逻辑交给该 model 处理\n\n\n if (!ComponentModel.hasClass(name)) {\n if (typeof themeItem === 'object') {\n option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n } else {\n if (option[name] == null) {\n option[name] = themeItem;\n }\n }\n }\n });\n}\n\nfunction initBase(baseOption) {\n baseOption = baseOption; // Using OPTION_INNER_KEY to mark that this option can not be used outside,\n // i.e. `chart.setOption(chart.getModel().option);` is forbiden.\n\n this.option = {};\n this.option[OPTION_INNER_KEY] = 1;\n /**\n * Init with series: [], in case of calling findSeries method\n * before series initialized.\n * @type {Object.>}\n * @private\n */\n\n this._componentsMap = createHashMap({\n series: []\n });\n /**\n * Mapping between filtered series list and raw series list.\n * key: filtered series indices, value: raw series indices.\n * @type {Array.}\n * @private\n */\n\n this._seriesIndices;\n this._seriesIndicesMap;\n mergeTheme(baseOption, this._theme.option); // TODO Needs clone when merging to the unexisted property\n\n merge(baseOption, globalDefault, false);\n this.mergeOption(baseOption);\n}\n/**\n * @inner\n * @param {Array.|string} types model types\n * @return {Object} key: {string} type, value: {Array.} models\n */\n\n\nfunction getComponentsByTypes(componentsMap, types) {\n if (!isArray(types)) {\n types = types ? [types] : [];\n }\n\n var ret = {};\n each(types, function (type) {\n ret[type] = (componentsMap.get(type) || []).slice();\n });\n return ret;\n}\n/**\n * @inner\n */\n\n\nfunction determineSubType(mainType, newCptOption, existComponent) {\n var subType = newCptOption.type ? newCptOption.type : existComponent ? existComponent.subType // Use determineSubType only when there is no existComponent.\n : ComponentModel.determineSubType(mainType, newCptOption); // tooltip, markline, markpoint may always has no subType\n\n return subType;\n}\n/**\n * @inner\n */\n\n\nfunction createSeriesIndices(ecModel, seriesModels) {\n ecModel._seriesIndicesMap = createHashMap(ecModel._seriesIndices = map(seriesModels, function (series) {\n return series.componentIndex;\n }) || []);\n}\n/**\n * @inner\n */\n\n\nfunction filterBySubType(components, condition) {\n // Using hasOwnProperty for restrict. Consider\n // subType is undefined in user payload.\n return condition.hasOwnProperty('subType') ? filter(components, function (cpt) {\n return cpt.subType === condition.subType;\n }) : components;\n}\n/**\n * @inner\n */\n\n\nfunction assertSeriesInitialized(ecModel) {}\n\nmixin(GlobalModel, colorPaletteMixin);\nvar _default = GlobalModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 env = require(\"zrender/lib/core/env\");\n\nvar _model = require(\"../util/model\");\n\nvar makeInner = _model.makeInner;\n\nvar _clazz = require(\"../util/clazz\");\n\nvar enableClassExtend = _clazz.enableClassExtend;\nvar enableClassCheck = _clazz.enableClassCheck;\n\nvar lineStyleMixin = require(\"./mixin/lineStyle\");\n\nvar areaStyleMixin = require(\"./mixin/areaStyle\");\n\nvar textStyleMixin = require(\"./mixin/textStyle\");\n\nvar itemStyleMixin = require(\"./mixin/itemStyle\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/model/Model\n */\nvar mixin = zrUtil.mixin;\nvar inner = makeInner();\n/**\n * @alias module:echarts/model/Model\n * @constructor\n * @param {Object} [option]\n * @param {module:echarts/model/Model} [parentModel]\n * @param {module:echarts/model/Global} [ecModel]\n */\n\nfunction Model(option, parentModel, ecModel) {\n /**\n * @type {module:echarts/model/Model}\n * @readOnly\n */\n this.parentModel = parentModel;\n /**\n * @type {module:echarts/model/Global}\n * @readOnly\n */\n\n this.ecModel = ecModel;\n /**\n * @type {Object}\n * @protected\n */\n\n this.option = option; // Simple optimization\n // if (this.init) {\n // if (arguments.length <= 4) {\n // this.init(option, parentModel, ecModel, extraOpt);\n // }\n // else {\n // this.init.apply(this, arguments);\n // }\n // }\n}\n\nModel.prototype = {\n constructor: Model,\n\n /**\n * Model 的初始化函数\n * @param {Object} option\n */\n init: null,\n\n /**\n * 从新的 Option merge\n */\n mergeOption: function (option) {\n zrUtil.merge(this.option, option, true);\n },\n\n /**\n * @param {string|Array.} path\n * @param {boolean} [ignoreParent=false]\n * @return {*}\n */\n get: function (path, ignoreParent) {\n if (path == null) {\n return this.option;\n }\n\n return doGet(this.option, this.parsePath(path), !ignoreParent && getParent(this, path));\n },\n\n /**\n * @param {string} key\n * @param {boolean} [ignoreParent=false]\n * @return {*}\n */\n getShallow: function (key, ignoreParent) {\n var option = this.option;\n var val = option == null ? option : option[key];\n var parentModel = !ignoreParent && getParent(this, key);\n\n if (val == null && parentModel) {\n val = parentModel.getShallow(key);\n }\n\n return val;\n },\n\n /**\n * @param {string|Array.} [path]\n * @param {module:echarts/model/Model} [parentModel]\n * @return {module:echarts/model/Model}\n */\n getModel: function (path, parentModel) {\n var obj = path == null ? this.option : doGet(this.option, path = this.parsePath(path));\n var thisParentModel;\n parentModel = parentModel || (thisParentModel = getParent(this, path)) && thisParentModel.getModel(path);\n return new Model(obj, parentModel, this.ecModel);\n },\n\n /**\n * If model has option\n */\n isEmpty: function () {\n return this.option == null;\n },\n restoreData: function () {},\n // Pending\n clone: function () {\n var Ctor = this.constructor;\n return new Ctor(zrUtil.clone(this.option));\n },\n setReadOnly: function (properties) {// clazzUtil.setReadOnly(this, properties);\n },\n // If path is null/undefined, return null/undefined.\n parsePath: function (path) {\n if (typeof path === 'string') {\n path = path.split('.');\n }\n\n return path;\n },\n\n /**\n * @param {Function} getParentMethod\n * param {Array.|string} path\n * return {module:echarts/model/Model}\n */\n customizeGetParent: function (getParentMethod) {\n inner(this).getParent = getParentMethod;\n },\n isAnimationEnabled: function () {\n if (!env.node) {\n if (this.option.animation != null) {\n return !!this.option.animation;\n } else if (this.parentModel) {\n return this.parentModel.isAnimationEnabled();\n }\n }\n }\n};\n\nfunction doGet(obj, pathArr, parentModel) {\n for (var i = 0; i < pathArr.length; i++) {\n // Ignore empty\n if (!pathArr[i]) {\n continue;\n } // obj could be number/string/... (like 0)\n\n\n obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n if (obj == null) {\n break;\n }\n }\n\n if (obj == null && parentModel) {\n obj = parentModel.get(pathArr);\n }\n\n return obj;\n} // `path` can be null/undefined\n\n\nfunction getParent(model, path) {\n var getParentMethod = inner(model).getParent;\n return getParentMethod ? getParentMethod.call(model, path) : model.parentModel;\n} // Enable Model.extend.\n\n\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, lineStyleMixin);\nmixin(Model, areaStyleMixin);\nmixin(Model, textStyleMixin);\nmixin(Model, itemStyleMixin);\nvar _default = Model;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 modelUtil = require(\"../util/model\");\n\nvar ComponentModel = require(\"./Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * ECharts option manager\n *\n * @module {echarts/model/OptionManager}\n */\nvar each = zrUtil.each;\nvar clone = zrUtil.clone;\nvar map = zrUtil.map;\nvar merge = zrUtil.merge;\nvar QUERY_REG = /^(min|max)?(.+)$/;\n/**\n * TERM EXPLANATIONS:\n *\n * [option]:\n *\n * An object that contains definitions of components. For example:\n * var option = {\n * title: {...},\n * legend: {...},\n * visualMap: {...},\n * series: [\n * {data: [...]},\n * {data: [...]},\n * ...\n * ]\n * };\n *\n * [rawOption]:\n *\n * An object input to echarts.setOption. 'rawOption' may be an\n * 'option', or may be an object contains multi-options. For example:\n * var option = {\n * baseOption: {\n * title: {...},\n * legend: {...},\n * series: [\n * {data: [...]},\n * {data: [...]},\n * ...\n * ]\n * },\n * timeline: {...},\n * options: [\n * {title: {...}, series: {data: [...]}},\n * {title: {...}, series: {data: [...]}},\n * ...\n * ],\n * media: [\n * {\n * query: {maxWidth: 320},\n * option: {series: {x: 20}, visualMap: {show: false}}\n * },\n * {\n * query: {minWidth: 320, maxWidth: 720},\n * option: {series: {x: 500}, visualMap: {show: true}}\n * },\n * {\n * option: {series: {x: 1200}, visualMap: {show: true}}\n * }\n * ]\n * };\n *\n * @alias module:echarts/model/OptionManager\n * @param {module:echarts/ExtensionAPI} api\n */\n\nfunction OptionManager(api) {\n /**\n * @private\n * @type {module:echarts/ExtensionAPI}\n */\n this._api = api;\n /**\n * @private\n * @type {Array.}\n */\n\n this._timelineOptions = [];\n /**\n * @private\n * @type {Array.}\n */\n\n this._mediaList = [];\n /**\n * @private\n * @type {Object}\n */\n\n this._mediaDefault;\n /**\n * -1, means default.\n * empty means no media.\n * @private\n * @type {Array.}\n */\n\n this._currentMediaIndices = [];\n /**\n * @private\n * @type {Object}\n */\n\n this._optionBackup;\n /**\n * @private\n * @type {Object}\n */\n\n this._newBaseOption;\n} // timeline.notMerge is not supported in ec3. Firstly there is rearly\n// case that notMerge is needed. Secondly supporting 'notMerge' requires\n// rawOption cloned and backuped when timeline changed, which does no\n// good to performance. What's more, that both timeline and setOption\n// method supply 'notMerge' brings complex and some problems.\n// Consider this case:\n// (step1) chart.setOption({timeline: {notMerge: false}, ...}, false);\n// (step2) chart.setOption({timeline: {notMerge: true}, ...}, false);\n\n\nOptionManager.prototype = {\n constructor: OptionManager,\n\n /**\n * @public\n * @param {Object} rawOption Raw option.\n * @param {module:echarts/model/Global} ecModel\n * @param {Array.} optionPreprocessorFuncs\n * @return {Object} Init option\n */\n setOption: function (rawOption, optionPreprocessorFuncs) {\n if (rawOption) {\n // That set dat primitive is dangerous if user reuse the data when setOption again.\n zrUtil.each(modelUtil.normalizeToArray(rawOption.series), function (series) {\n series && series.data && zrUtil.isTypedArray(series.data) && zrUtil.setAsPrimitive(series.data);\n });\n } // Caution: some series modify option data, if do not clone,\n // it should ensure that the repeat modify correctly\n // (create a new object when modify itself).\n\n\n rawOption = clone(rawOption); // FIXME\n // 如果 timeline options 或者 media 中设置了某个属性,而baseOption中没有设置,则进行警告。\n\n var oldOptionBackup = this._optionBackup;\n var newParsedOption = parseRawOption.call(this, rawOption, optionPreprocessorFuncs, !oldOptionBackup);\n this._newBaseOption = newParsedOption.baseOption; // For setOption at second time (using merge mode);\n\n if (oldOptionBackup) {\n // Only baseOption can be merged.\n mergeOption(oldOptionBackup.baseOption, newParsedOption.baseOption); // For simplicity, timeline options and media options do not support merge,\n // that is, if you `setOption` twice and both has timeline options, the latter\n // timeline opitons will not be merged to the formers, but just substitude them.\n\n if (newParsedOption.timelineOptions.length) {\n oldOptionBackup.timelineOptions = newParsedOption.timelineOptions;\n }\n\n if (newParsedOption.mediaList.length) {\n oldOptionBackup.mediaList = newParsedOption.mediaList;\n }\n\n if (newParsedOption.mediaDefault) {\n oldOptionBackup.mediaDefault = newParsedOption.mediaDefault;\n }\n } else {\n this._optionBackup = newParsedOption;\n }\n },\n\n /**\n * @param {boolean} isRecreate\n * @return {Object}\n */\n mountOption: function (isRecreate) {\n var optionBackup = this._optionBackup; // TODO\n // 如果没有reset功能则不clone。\n\n this._timelineOptions = map(optionBackup.timelineOptions, clone);\n this._mediaList = map(optionBackup.mediaList, clone);\n this._mediaDefault = clone(optionBackup.mediaDefault);\n this._currentMediaIndices = [];\n return clone(isRecreate // this._optionBackup.baseOption, which is created at the first `setOption`\n // called, and is merged into every new option by inner method `mergeOption`\n // each time `setOption` called, can be only used in `isRecreate`, because\n // its reliability is under suspicion. In other cases option merge is\n // performed by `model.mergeOption`.\n ? optionBackup.baseOption : this._newBaseOption);\n },\n\n /**\n * @param {module:echarts/model/Global} ecModel\n * @return {Object}\n */\n getTimelineOption: function (ecModel) {\n var option;\n var timelineOptions = this._timelineOptions;\n\n if (timelineOptions.length) {\n // getTimelineOption can only be called after ecModel inited,\n // so we can get currentIndex from timelineModel.\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel) {\n option = clone(timelineOptions[timelineModel.getCurrentIndex()], true);\n }\n }\n\n return option;\n },\n\n /**\n * @param {module:echarts/model/Global} ecModel\n * @return {Array.}\n */\n getMediaOption: function (ecModel) {\n var ecWidth = this._api.getWidth();\n\n var ecHeight = this._api.getHeight();\n\n var mediaList = this._mediaList;\n var mediaDefault = this._mediaDefault;\n var indices = [];\n var result = []; // No media defined.\n\n if (!mediaList.length && !mediaDefault) {\n return result;\n } // Multi media may be applied, the latter defined media has higher priority.\n\n\n for (var i = 0, len = mediaList.length; i < len; i++) {\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n indices.push(i);\n }\n } // FIXME\n // 是否mediaDefault应该强制用户设置,否则可能修改不能回归。\n\n\n if (!indices.length && mediaDefault) {\n indices = [-1];\n }\n\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n result = map(indices, function (index) {\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n });\n } // Otherwise return nothing.\n\n\n this._currentMediaIndices = indices;\n return result;\n }\n};\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n var timelineOptions = [];\n var mediaList = [];\n var mediaDefault;\n var baseOption; // Compatible with ec2.\n\n var timelineOpt = rawOption.timeline;\n\n if (rawOption.baseOption) {\n baseOption = rawOption.baseOption;\n } // For timeline\n\n\n if (timelineOpt || rawOption.options) {\n baseOption = baseOption || {};\n timelineOptions = (rawOption.options || []).slice();\n } // For media query\n\n\n if (rawOption.media) {\n baseOption = baseOption || {};\n var media = rawOption.media;\n each(media, function (singleMedia) {\n if (singleMedia && singleMedia.option) {\n if (singleMedia.query) {\n mediaList.push(singleMedia);\n } else if (!mediaDefault) {\n // Use the first media default.\n mediaDefault = singleMedia;\n }\n }\n });\n } // For normal option\n\n\n if (!baseOption) {\n baseOption = rawOption;\n } // Set timelineOpt to baseOption in ec3,\n // which is convenient for merge option.\n\n\n if (!baseOption.timeline) {\n baseOption.timeline = timelineOpt;\n } // Preprocess.\n\n\n each([baseOption].concat(timelineOptions).concat(zrUtil.map(mediaList, function (media) {\n return media.option;\n })), function (option) {\n each(optionPreprocessorFuncs, function (preProcess) {\n preProcess(option, isNew);\n });\n });\n return {\n baseOption: baseOption,\n timelineOptions: timelineOptions,\n mediaDefault: mediaDefault,\n mediaList: mediaList\n };\n}\n/**\n * @see \n * Support: width, height, aspectRatio\n * Can use max or min as prefix.\n */\n\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n var realMap = {\n width: ecWidth,\n height: ecHeight,\n aspectratio: ecWidth / ecHeight // lowser case for convenientce.\n\n };\n var applicatable = true;\n zrUtil.each(query, function (value, attr) {\n var matched = attr.match(QUERY_REG);\n\n if (!matched || !matched[1] || !matched[2]) {\n return;\n }\n\n var operator = matched[1];\n var realAttr = matched[2].toLowerCase();\n\n if (!compare(realMap[realAttr], value, operator)) {\n applicatable = false;\n }\n });\n return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n if (operator === 'min') {\n return real >= expect;\n } else if (operator === 'max') {\n return real <= expect;\n } else {\n // Equals\n return real === expect;\n }\n}\n\nfunction indicesEquals(indices1, indices2) {\n // indices is always order by asc and has only finite number.\n return indices1.join(',') === indices2.join(',');\n}\n/**\n * Consider case:\n * `chart.setOption(opt1);`\n * Then user do some interaction like dataZoom, dataView changing.\n * `chart.setOption(opt2);`\n * Then user press 'reset button' in toolbox.\n *\n * After doing that all of the interaction effects should be reset, the\n * chart should be the same as the result of invoke\n * `chart.setOption(opt1); chart.setOption(opt2);`.\n *\n * Although it is not able ensure that\n * `chart.setOption(opt1); chart.setOption(opt2);` is equivalents to\n * `chart.setOption(merge(opt1, opt2));` exactly,\n * this might be the only simple way to implement that feature.\n *\n * MEMO: We've considered some other approaches:\n * 1. Each model handle its self restoration but not uniform treatment.\n * (Too complex in logic and error-prone)\n * 2. Use a shadow ecModel. (Performace expensive)\n */\n\n\nfunction mergeOption(oldOption, newOption) {\n newOption = newOption || {};\n each(newOption, function (newCptOpt, mainType) {\n if (newCptOpt == null) {\n return;\n }\n\n var oldCptOpt = oldOption[mainType];\n\n if (!ComponentModel.hasClass(mainType)) {\n oldOption[mainType] = merge(oldCptOpt, newCptOpt, true);\n } else {\n newCptOpt = modelUtil.normalizeToArray(newCptOpt);\n oldCptOpt = modelUtil.normalizeToArray(oldCptOpt);\n var mapResult = modelUtil.mappingToExists(oldCptOpt, newCptOpt);\n oldOption[mainType] = map(mapResult, function (item) {\n return item.option && item.exist ? merge(item.exist, item.option, true) : item.exist || item.option;\n });\n }\n });\n}\n\nvar _default = OptionManager;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar _format = require(\"../util/format\");\n\nvar formatTime = _format.formatTime;\nvar encodeHTML = _format.encodeHTML;\nvar addCommas = _format.addCommas;\nvar getTooltipMarker = _format.getTooltipMarker;\n\nvar modelUtil = require(\"../util/model\");\n\nvar ComponentModel = require(\"./Component\");\n\nvar colorPaletteMixin = require(\"./mixin/colorPalette\");\n\nvar dataFormatMixin = require(\"../model/mixin/dataFormat\");\n\nvar _layout = require(\"../util/layout\");\n\nvar getLayoutParams = _layout.getLayoutParams;\nvar mergeLayoutParam = _layout.mergeLayoutParam;\n\nvar _task = require(\"../stream/task\");\n\nvar createTask = _task.createTask;\n\nvar _sourceHelper = require(\"../data/helper/sourceHelper\");\n\nvar prepareSource = _sourceHelper.prepareSource;\nvar getSource = _sourceHelper.getSource;\n\nvar _dataProvider = require(\"../data/helper/dataProvider\");\n\nvar retrieveRawValue = _dataProvider.retrieveRawValue;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 inner = modelUtil.makeInner();\nvar SeriesModel = ComponentModel.extend({\n type: 'series.__base__',\n\n /**\n * @readOnly\n */\n seriesIndex: 0,\n // coodinateSystem will be injected in the echarts/CoordinateSystem\n coordinateSystem: null,\n\n /**\n * @type {Object}\n * @protected\n */\n defaultOption: null,\n\n /**\n * legend visual provider to the legend component\n * @type {Object}\n */\n // PENDING\n legendVisualProvider: null,\n\n /**\n * Access path of color for visual\n */\n visualColorAccessPath: 'itemStyle.color',\n\n /**\n * Access path of borderColor for visual\n */\n visualBorderColorAccessPath: 'itemStyle.borderColor',\n\n /**\n * Support merge layout params.\n * Only support 'box' now (left/right/top/bottom/width/height).\n * @type {string|Object} Object can be {ignoreSize: true}\n * @readOnly\n */\n layoutMode: null,\n init: function (option, parentModel, ecModel, extraOpt) {\n /**\n * @type {number}\n * @readOnly\n */\n this.seriesIndex = this.componentIndex;\n this.dataTask = createTask({\n count: dataTaskCount,\n reset: dataTaskReset\n });\n this.dataTask.context = {\n model: this\n };\n this.mergeDefaultAndTheme(option, ecModel);\n prepareSource(this);\n var data = this.getInitialData(option, ecModel);\n wrapData(data, this);\n this.dataTask.context.data = data;\n\n /**\n * @type {module:echarts/data/List|module:echarts/data/Tree|module:echarts/data/Graph}\n * @private\n */\n inner(this).dataBeforeProcessed = data; // If we reverse the order (make data firstly, and then make\n // dataBeforeProcessed by cloneShallow), cloneShallow will\n // cause data.graph.data !== data when using\n // module:echarts/data/Graph or module:echarts/data/Tree.\n // See module:echarts/data/helper/linkList\n // Theoretically, it is unreasonable to call `seriesModel.getData()` in the model\n // init or merge stage, because the data can be restored. So we do not `restoreData`\n // and `setData` here, which forbids calling `seriesModel.getData()` in this stage.\n // Call `seriesModel.getRawData()` instead.\n // this.restoreData();\n\n autoSeriesName(this);\n },\n\n /**\n * Util for merge default and theme to option\n * @param {Object} option\n * @param {module:echarts/model/Global} ecModel\n */\n mergeDefaultAndTheme: function (option, ecModel) {\n var layoutMode = this.layoutMode;\n var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; // Backward compat: using subType on theme.\n // But if name duplicate between series subType\n // (for example: parallel) add component mainType,\n // add suffix 'Series'.\n\n var themeSubType = this.subType;\n\n if (ComponentModel.hasClass(themeSubType)) {\n themeSubType += 'Series';\n }\n\n zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n zrUtil.merge(option, this.getDefaultOption()); // Default label emphasis `show`\n\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n this.fillDataTextStyle(option.data);\n\n if (layoutMode) {\n mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n },\n mergeOption: function (newSeriesOption, ecModel) {\n // this.settingTask.dirty();\n newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n this.fillDataTextStyle(newSeriesOption.data);\n var layoutMode = this.layoutMode;\n\n if (layoutMode) {\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n }\n\n prepareSource(this);\n var data = this.getInitialData(newSeriesOption, ecModel);\n wrapData(data, this);\n this.dataTask.dirty();\n this.dataTask.context.data = data;\n inner(this).dataBeforeProcessed = data;\n autoSeriesName(this);\n },\n fillDataTextStyle: function (data) {\n // Default data label emphasis `show`\n // FIXME Tree structure data ?\n // FIXME Performance ?\n if (data && !zrUtil.isTypedArray(data)) {\n var props = ['show'];\n\n for (var i = 0; i < data.length; i++) {\n if (data[i] && data[i].label) {\n modelUtil.defaultEmphasis(data[i], 'label', props);\n }\n }\n }\n },\n\n /**\n * Init a data structure from data related option in series\n * Must be overwritten\n */\n getInitialData: function () {},\n\n /**\n * Append data to list\n * @param {Object} params\n * @param {Array|TypedArray} params.data\n */\n appendData: function (params) {\n // FIXME ???\n // (1) If data from dataset, forbidden append.\n // (2) support append data of dataset.\n var data = this.getRawData();\n data.appendData(params.data);\n },\n\n /**\n * Consider some method like `filter`, `map` need make new data,\n * We should make sure that `seriesModel.getData()` get correct\n * data in the stream procedure. So we fetch data from upstream\n * each time `task.perform` called.\n * @param {string} [dataType]\n * @return {module:echarts/data/List}\n */\n getData: function (dataType) {\n var task = getCurrentTask(this);\n\n if (task) {\n var data = task.context.data;\n return dataType == null ? data : data.getLinkedData(dataType);\n } else {\n // When series is not alive (that may happen when click toolbox\n // restore or setOption with not merge mode), series data may\n // be still need to judge animation or something when graphic\n // elements want to know whether fade out.\n return inner(this).data;\n }\n },\n\n /**\n * @param {module:echarts/data/List} data\n */\n setData: function (data) {\n var task = getCurrentTask(this);\n\n if (task) {\n var context = task.context; // Consider case: filter, data sample.\n\n if (context.data !== data && task.modifyOutputEnd) {\n task.setOutputEnd(data.count());\n }\n\n context.outputData = data; // Caution: setData should update context.data,\n // Because getData may be called multiply in a\n // single stage and expect to get the data just\n // set. (For example, AxisProxy, x y both call\n // getData and setDate sequentially).\n // So the context.data should be fetched from\n // upstream each time when a stage starts to be\n // performed.\n\n if (task !== this.dataTask) {\n context.data = data;\n }\n }\n\n inner(this).data = data;\n },\n\n /**\n * @see {module:echarts/data/helper/sourceHelper#getSource}\n * @return {module:echarts/data/Source} source\n */\n getSource: function () {\n return getSource(this);\n },\n\n /**\n * Get data before processed\n * @return {module:echarts/data/List}\n */\n getRawData: function () {\n return inner(this).dataBeforeProcessed;\n },\n\n /**\n * Get base axis if has coordinate system and has axis.\n * By default use coordSys.getBaseAxis();\n * Can be overrided for some chart.\n * @return {type} description\n */\n getBaseAxis: function () {\n var coordSys = this.coordinateSystem;\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n },\n // FIXME\n\n /**\n * Default tooltip formatter\n *\n * @param {number} dataIndex\n * @param {boolean} [multipleSeries=false]\n * @param {number} [dataType]\n * @param {string} [renderMode='html'] valid values: 'html' and 'richText'.\n * 'html' is used for rendering tooltip in extra DOM form, and the result\n * string is used as DOM HTML content.\n * 'richText' is used for rendering tooltip in rich text form, for those where\n * DOM operation is not supported.\n * @return {Object} formatted tooltip with `html` and `markers`\n */\n formatTooltip: function (dataIndex, multipleSeries, dataType, renderMode) {\n var series = this;\n renderMode = renderMode || 'html';\n var newLine = renderMode === 'html' ? '
' : '\\n';\n var isRichText = renderMode === 'richText';\n var markers = {};\n var markerId = 0;\n\n function formatArrayValue(value) {\n // ??? TODO refactor these logic.\n // check: category-no-encode-has-axis-data in dataset.html\n var vertially = zrUtil.reduce(value, function (vertially, val, idx) {\n var dimItem = data.getDimensionInfo(idx);\n return vertially |= dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n }, 0);\n var result = [];\n tooltipDims.length ? zrUtil.each(tooltipDims, function (dim) {\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n }) // By default, all dims is used on tooltip.\n : zrUtil.each(value, setEachItem);\n\n function setEachItem(val, dim) {\n var dimInfo = data.getDimensionInfo(dim); // If `dimInfo.tooltip` is not set, show tooltip.\n\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n return;\n }\n\n var dimType = dimInfo.type;\n var markName = 'sub' + series.seriesIndex + 'at' + markerId;\n var dimHead = getTooltipMarker({\n color: color,\n type: 'subItem',\n renderMode: renderMode,\n markerId: markName\n });\n var dimHeadStr = typeof dimHead === 'string' ? dimHead : dimHead.content;\n var valStr = (vertially ? dimHeadStr + encodeHTML(dimInfo.displayName || '-') + ': ' : '') + // FIXME should not format time for raw data?\n encodeHTML(dimType === 'ordinal' ? val + '' : dimType === 'time' ? multipleSeries ? '' : formatTime('yyyy/MM/dd hh:mm:ss', val) : addCommas(val));\n valStr && result.push(valStr);\n\n if (isRichText) {\n markers[markName] = color;\n ++markerId;\n }\n }\n\n var newLine = vertially ? isRichText ? '\\n' : '
' : '';\n var content = newLine + result.join(newLine || ', ');\n return {\n renderMode: renderMode,\n content: content,\n style: markers\n };\n }\n\n function formatSingleValue(val) {\n // return encodeHTML(addCommas(val));\n return {\n renderMode: renderMode,\n content: encodeHTML(addCommas(val)),\n style: markers\n };\n }\n\n var data = this.getData();\n var tooltipDims = data.mapDimension('defaultedTooltip', true);\n var tooltipDimLen = tooltipDims.length;\n var value = this.getRawValue(dataIndex);\n var isValueArr = zrUtil.isArray(value);\n var color = data.getItemVisual(dataIndex, 'color');\n\n if (zrUtil.isObject(color) && color.colorStops) {\n color = (color.colorStops[0] || {}).color;\n }\n\n color = color || 'transparent'; // Complicated rule for pretty tooltip.\n\n var formattedValue = tooltipDimLen > 1 || isValueArr && !tooltipDimLen ? formatArrayValue(value) : tooltipDimLen ? formatSingleValue(retrieveRawValue(data, dataIndex, tooltipDims[0])) : formatSingleValue(isValueArr ? value[0] : value);\n var content = formattedValue.content;\n var markName = series.seriesIndex + 'at' + markerId;\n var colorEl = getTooltipMarker({\n color: color,\n type: 'item',\n renderMode: renderMode,\n markerId: markName\n });\n markers[markName] = color;\n ++markerId;\n var name = data.getName(dataIndex);\n var seriesName = this.name;\n\n if (!modelUtil.isNameSpecified(this)) {\n seriesName = '';\n }\n\n seriesName = seriesName ? encodeHTML(seriesName) + (!multipleSeries ? newLine : ': ') : '';\n var colorStr = typeof colorEl === 'string' ? colorEl : colorEl.content;\n var html = !multipleSeries ? seriesName + colorStr + (name ? encodeHTML(name) + ': ' + content : content) : colorStr + seriesName + content;\n return {\n html: html,\n markers: markers\n };\n },\n\n /**\n * @return {boolean}\n */\n isAnimationEnabled: function () {\n if (env.node) {\n return false;\n }\n\n var animationEnabled = this.getShallow('animation');\n\n if (animationEnabled) {\n if (this.getData().count() > this.getShallow('animationThreshold')) {\n animationEnabled = false;\n }\n }\n\n return animationEnabled;\n },\n restoreData: function () {\n this.dataTask.dirty();\n },\n getColorFromPalette: function (name, scope, requestColorNum) {\n var ecModel = this.ecModel; // PENDING\n\n var color = colorPaletteMixin.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n if (!color) {\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n }\n\n return color;\n },\n\n /**\n * Use `data.mapDimension(coordDim, true)` instead.\n * @deprecated\n */\n coordDimToDataDim: function (coordDim) {\n return this.getRawData().mapDimension(coordDim, true);\n },\n\n /**\n * Get progressive rendering count each step\n * @return {number}\n */\n getProgressive: function () {\n return this.get('progressive');\n },\n\n /**\n * Get progressive rendering count each step\n * @return {number}\n */\n getProgressiveThreshold: function () {\n return this.get('progressiveThreshold');\n },\n\n /**\n * Get data indices for show tooltip content. See tooltip.\n * @abstract\n * @param {Array.|string} dim\n * @param {Array.} value\n * @param {module:echarts/coord/single/SingleAxis} baseAxis\n * @return {Object} {dataIndices, nestestValue}.\n */\n getAxisTooltipData: null,\n\n /**\n * See tooltip.\n * @abstract\n * @param {number} dataIndex\n * @return {Array.} Point of tooltip. null/undefined can be returned.\n */\n getTooltipPosition: null,\n\n /**\n * @see {module:echarts/stream/Scheduler}\n */\n pipeTask: null,\n\n /**\n * Convinient for override in extended class.\n * @protected\n * @type {Function}\n */\n preventIncremental: null,\n\n /**\n * @public\n * @readOnly\n * @type {Object}\n */\n pipelineContext: null\n});\nzrUtil.mixin(SeriesModel, dataFormatMixin);\nzrUtil.mixin(SeriesModel, colorPaletteMixin);\n/**\n * MUST be called after `prepareSource` called\n * Here we need to make auto series, especially for auto legend. But we\n * do not modify series.name in option to avoid side effects.\n */\n\nfunction autoSeriesName(seriesModel) {\n // User specified name has higher priority, otherwise it may cause\n // series can not be queried unexpectedly.\n var name = seriesModel.name;\n\n if (!modelUtil.isNameSpecified(seriesModel)) {\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\n }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n var data = seriesModel.getRawData();\n var dataDims = data.mapDimension('seriesName', true);\n var nameArr = [];\n zrUtil.each(dataDims, function (dataDim) {\n var dimInfo = data.getDimensionInfo(dataDim);\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\n });\n return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n var seriesModel = context.model;\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\n return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n // Avoid repead cloneShallow when data just created in reset.\n if (context.outputData && param.end > context.outputData.count()) {\n context.model.getRawData().cloneShallow(context.outputData);\n }\n} // TODO refactor\n\n\nfunction wrapData(data, seriesModel) {\n zrUtil.each(data.CHANGABLE_METHODS, function (methodName) {\n data.wrapMethod(methodName, zrUtil.curry(onDataSelfChange, seriesModel));\n });\n}\n\nfunction onDataSelfChange(seriesModel) {\n var task = getCurrentTask(seriesModel);\n\n if (task) {\n // Consider case: filter, selectRange\n task.setOutputEnd(this.count());\n }\n}\n\nfunction getCurrentTask(seriesModel) {\n var scheduler = (seriesModel.ecModel || {}).scheduler;\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n if (pipeline) {\n // When pipline finished, the currrentTask keep the last\n // task (renderTask).\n var task = pipeline.currentTask;\n\n if (task) {\n var agentStubMap = task.agentStubMap;\n\n if (agentStubMap) {\n task = agentStubMap.get(seriesModel.uid);\n }\n }\n\n return task;\n }\n}\n\nvar _default = SeriesModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, 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*/\nvar platform = ''; // Navigator not exists in node\n\nif (typeof navigator !== 'undefined') {\n platform = navigator.platform || '';\n}\n\nvar _default = {\n // backgroundColor: 'rgba(0,0,0,0)',\n // https://dribbble.com/shots/1065960-Infographic-Pie-chart-visualization\n // color: ['#5793f3', '#d14a61', '#fd9c35', '#675bba', '#fec42c', '#dd4444', '#d4df5a', '#cd4870'],\n // Light colors:\n // color: ['#bcd3bb', '#e88f70', '#edc1a5', '#9dc5c8', '#e1e8c8', '#7b7c68', '#e5b5b5', '#f0b489', '#928ea8', '#bda29a'],\n // color: ['#cc5664', '#9bd6ec', '#ea946e', '#8acaaa', '#f1ec64', '#ee8686', '#a48dc1', '#5da6bc', '#b9dcae'],\n // Dark colors:\n color: ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622', '#bda29a', '#6e7074', '#546570', '#c4ccd3'],\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n // If xAxis and yAxis declared, grid is created by default.\n // grid: {},\n textStyle: {\n // color: '#000',\n // decoration: 'none',\n // PENDING\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n // fontFamily: 'Arial, Verdana, sans-serif',\n fontSize: 12,\n fontStyle: 'normal',\n fontWeight: 'normal'\n },\n // http://blogs.adobe.com/webplatform/2014/02/24/using-blend-modes-in-html-canvas/\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n // Default is source-over\n blendMode: null,\n animation: 'auto',\n animationDuration: 1000,\n animationDurationUpdate: 300,\n animationEasing: 'exponentialOut',\n animationEasingUpdate: 'cubicOut',\n animationThreshold: 2000,\n // Configuration for progressive/incremental rendering\n progressiveThreshold: 3000,\n progressive: 400,\n // Threshold of if use single hover layer to optimize.\n // It is recommended that `hoverLayerThreshold` is equivalent to or less than\n // `progressiveThreshold`, otherwise hover will cause restart of progressive,\n // which is unexpected.\n // see example .\n hoverLayerThreshold: 3000,\n // See: module:echarts/scale/Time\n useUTC: false\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 makeStyleMapper = require(\"./makeStyleMapper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 getAreaStyle = makeStyleMapper([['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']]);\nvar _default = {\n getAreaStyle: function (excludes, includes) {\n return getAreaStyle(this, excludes, includes);\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, 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*/\nvar _default = {\n getBoxLayoutParams: function () {\n return {\n left: this.get('left'),\n top: this.get('top'),\n right: this.get('right'),\n bottom: this.get('bottom'),\n width: this.get('width'),\n height: this.get('height')\n };\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\nvar normalizeToArray = _model.normalizeToArray;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 inner = makeInner();\n\nfunction getNearestColorPalette(colors, requestColorNum) {\n var paletteNum = colors.length; // TODO colors must be in order\n\n for (var i = 0; i < paletteNum; i++) {\n if (colors[i].length > requestColorNum) {\n return colors[i];\n }\n }\n\n return colors[paletteNum - 1];\n}\n\nvar _default = {\n clearColorPalette: function () {\n inner(this).colorIdx = 0;\n inner(this).colorNameMap = {};\n },\n\n /**\n * @param {string} name MUST NOT be null/undefined. Otherwise call this function\n * twise with the same parameters will get different result.\n * @param {Object} [scope=this]\n * @param {Object} [requestColorNum]\n * @return {string} color string.\n */\n getColorFromPalette: function (name, scope, requestColorNum) {\n scope = scope || this;\n var scopeFields = inner(scope);\n var colorIdx = scopeFields.colorIdx || 0;\n var colorNameMap = scopeFields.colorNameMap = scopeFields.colorNameMap || {}; // Use `hasOwnProperty` to avoid conflict with Object.prototype.\n\n if (colorNameMap.hasOwnProperty(name)) {\n return colorNameMap[name];\n }\n\n var defaultColorPalette = normalizeToArray(this.get('color', true));\n var layeredColorPalette = this.get('colorLayer', true);\n var colorPalette = requestColorNum == null || !layeredColorPalette ? defaultColorPalette : getNearestColorPalette(layeredColorPalette, requestColorNum); // In case can't find in layered color palette.\n\n colorPalette = colorPalette || defaultColorPalette;\n\n if (!colorPalette || !colorPalette.length) {\n return;\n }\n\n var color = colorPalette[colorIdx];\n\n if (name) {\n colorNameMap[name] = color;\n }\n\n scopeFields.colorIdx = (colorIdx + 1) % colorPalette.length;\n return color;\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 _dataProvider = require(\"../../data/helper/dataProvider\");\n\nvar retrieveRawValue = _dataProvider.retrieveRawValue;\n\nvar _format = require(\"../../util/format\");\n\nvar getTooltipMarker = _format.getTooltipMarker;\nvar formatTpl = _format.formatTpl;\n\nvar _model = require(\"../../util/model\");\n\nvar getTooltipRenderMode = _model.getTooltipRenderMode;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g; // PENDING A little ugly\n\nvar _default = {\n /**\n * Get params for formatter\n * @param {number} dataIndex\n * @param {string} [dataType]\n * @return {Object}\n */\n getDataParams: function (dataIndex, dataType) {\n var data = this.getData(dataType);\n var rawValue = this.getRawValue(dataIndex, dataType);\n var rawDataIndex = data.getRawIndex(dataIndex);\n var name = data.getName(dataIndex);\n var itemOpt = data.getRawDataItem(dataIndex);\n var color = data.getItemVisual(dataIndex, 'color');\n var borderColor = data.getItemVisual(dataIndex, 'borderColor');\n var tooltipModel = this.ecModel.getComponent('tooltip');\n var renderModeOption = tooltipModel && tooltipModel.get('renderMode');\n var renderMode = getTooltipRenderMode(renderModeOption);\n var mainType = this.mainType;\n var isSeries = mainType === 'series';\n var userOutput = data.userOutput;\n return {\n componentType: mainType,\n componentSubType: this.subType,\n componentIndex: this.componentIndex,\n seriesType: isSeries ? this.subType : null,\n seriesIndex: this.seriesIndex,\n seriesId: isSeries ? this.id : null,\n seriesName: isSeries ? this.name : null,\n name: name,\n dataIndex: rawDataIndex,\n data: itemOpt,\n dataType: dataType,\n value: rawValue,\n color: color,\n borderColor: borderColor,\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\n encode: userOutput ? userOutput.encode : null,\n marker: getTooltipMarker({\n color: color,\n renderMode: renderMode\n }),\n // Param name list for mapping `a`, `b`, `c`, `d`, `e`\n $vars: ['seriesName', 'name', 'value']\n };\n },\n\n /**\n * Format label\n * @param {number} dataIndex\n * @param {string} [status='normal'] 'normal' or 'emphasis'\n * @param {string} [dataType]\n * @param {number} [dimIndex] Only used in some chart that\n * use formatter in different dimensions, like radar.\n * @param {string} [labelProp='label']\n * @return {string} If not formatter, return null/undefined\n */\n getFormattedLabel: function (dataIndex, status, dataType, dimIndex, labelProp) {\n status = status || 'normal';\n var data = this.getData(dataType);\n var itemModel = data.getItemModel(dataIndex);\n var params = this.getDataParams(dataIndex, dataType);\n\n if (dimIndex != null && params.value instanceof Array) {\n params.value = params.value[dimIndex];\n }\n\n var formatter = itemModel.get(status === 'normal' ? [labelProp || 'label', 'formatter'] : [status, labelProp || 'label', 'formatter']);\n\n if (typeof formatter === 'function') {\n params.status = status;\n params.dimensionIndex = dimIndex;\n return formatter(params);\n } else if (typeof formatter === 'string') {\n var str = formatTpl(formatter, params); // Support 'aaa{@[3]}bbb{@product}ccc'.\n // Do not support '}' in dim name util have to.\n\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\n var len = dim.length;\n\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\n dim = +dim.slice(1, len - 1); // Also: '[]' => 0\n }\n\n return retrieveRawValue(data, dataIndex, dim);\n });\n }\n },\n\n /**\n * Get raw value in option\n * @param {number} idx\n * @param {string} [dataType]\n * @return {Array|number|string}\n */\n getRawValue: function (idx, dataType) {\n return retrieveRawValue(this.getData(dataType), idx);\n },\n\n /**\n * Should be implemented.\n * @param {number} dataIndex\n * @param {boolean} [multipleSeries=false]\n * @param {number} [dataType]\n * @return {string} tooltip string\n */\n formatTooltip: function () {// Empty function\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 makeStyleMapper = require(\"./makeStyleMapper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 getItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['textPosition'], ['textAlign']]);\nvar _default = {\n getItemStyle: function (excludes, includes) {\n var style = getItemStyle(this, excludes, includes);\n var lineDash = this.getBorderLineDash();\n lineDash && (style.lineDash = lineDash);\n return style;\n },\n getBorderLineDash: function () {\n var lineType = this.get('borderType');\n return lineType === 'solid' || lineType == null ? null : lineType === 'dashed' ? [5, 5] : [1, 1];\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 makeStyleMapper = require(\"./makeStyleMapper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 getLineStyle = makeStyleMapper([['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\nvar _default = {\n getLineStyle: function (excludes) {\n var style = getLineStyle(this, excludes); // Always set lineDash whether dashed, otherwise we can not\n // erase the previous style when assigning to el.style.\n\n style.lineDash = this.getLineDash(style.lineWidth);\n return style;\n },\n getLineDash: function (lineWidth) {\n if (lineWidth == null) {\n lineWidth = 1;\n }\n\n var lineType = this.get('type');\n var dotSize = Math.max(lineWidth, 2);\n var dashSize = lineWidth * 4;\n return lineType === 'solid' || lineType == null ? // Use `false` but not `null` for the solid line here, because `null` might be\n // ignored when assigning to `el.style`. e.g., when setting `lineStyle.type` as\n // `'dashed'` and `emphasis.lineStyle.type` as `'solid'` in graph series, the\n // `lineDash` gotten form the latter one is not able to erase that from the former\n // one if using `null` here according to the emhpsis strategy in `util/graphic.js`.\n false : lineType === 'dashed' ? [dashSize, dashSize] : [dotSize, dotSize];\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Parse shadow style\n// TODO Only shallow path support\nfunction _default(properties) {\n // Normalize\n for (var i = 0; i < properties.length; i++) {\n if (!properties[i][1]) {\n properties[i][1] = properties[i][0];\n }\n }\n\n return function (model, excludes, includes) {\n var style = {};\n\n for (var i = 0; i < properties.length; i++) {\n var propName = properties[i][1];\n\n if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n continue;\n }\n\n var val = model.getShallow(propName);\n\n if (val != null) {\n style[properties[i][0]] = val;\n }\n }\n\n return style;\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 textContain = require(\"zrender/lib/contain/text\");\n\nvar graphicUtil = require(\"../../util/graphic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 PATH_COLOR = ['textStyle', 'color'];\nvar _default = {\n /**\n * Get color property or get color from option.textStyle.color\n * @param {boolean} [isEmphasis]\n * @return {string}\n */\n getTextColor: function (isEmphasis) {\n var ecModel = this.ecModel;\n return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n },\n\n /**\n * Create font string from fontStyle, fontWeight, fontSize, fontFamily\n * @return {string}\n */\n getFont: function () {\n return graphicUtil.getFont({\n fontStyle: this.getShallow('fontStyle'),\n fontWeight: this.getShallow('fontWeight'),\n fontSize: this.getShallow('fontSize'),\n fontFamily: this.getShallow('fontFamily')\n }, this.ecModel);\n },\n getTextRect: function (text) {\n return textContain.getBoundingRect(text, this.getFont(), this.getShallow('align'), this.getShallow('verticalAlign') || this.getShallow('baseline'), this.getShallow('padding'), this.getShallow('lineHeight'), this.getShallow('rich'), this.getShallow('truncateText'));\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar retrieve = _util.retrieve;\nvar each = _util.each;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Helper for model references.\n * There are many manners to refer axis/coordSys.\n */\n// TODO\n// merge relevant logic to this file?\n// check: \"modelHelper\" of tooltip and \"BrushTargetManager\".\n\n/**\n * @class\n * For example:\n * {\n * coordSysName: 'cartesian2d',\n * coordSysDims: ['x', 'y', ...],\n * axisMap: HashMap({\n * x: xAxisModel,\n * y: yAxisModel\n * }),\n * categoryAxisMap: HashMap({\n * x: xAxisModel,\n * y: undefined\n * }),\n * // The index of the first category axis in `coordSysDims`.\n * // `null/undefined` means no category axis exists.\n * firstCategoryDimIndex: 1,\n * // To replace user specified encode.\n * }\n */\nfunction CoordSysInfo(coordSysName) {\n /**\n * @type {string}\n */\n this.coordSysName = coordSysName;\n /**\n * @type {Array.}\n */\n\n this.coordSysDims = [];\n /**\n * @type {module:zrender/core/util#HashMap}\n */\n\n this.axisMap = createHashMap();\n /**\n * @type {module:zrender/core/util#HashMap}\n */\n\n this.categoryAxisMap = createHashMap();\n /**\n * @type {number}\n */\n\n this.firstCategoryDimIndex = null;\n}\n/**\n * @return {module:model/referHelper#CoordSysInfo}\n */\n\n\nfunction getCoordSysInfoBySeries(seriesModel) {\n var coordSysName = seriesModel.get('coordinateSystem');\n var result = new CoordSysInfo(coordSysName);\n var fetch = fetchers[coordSysName];\n\n if (fetch) {\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n return result;\n }\n}\n\nvar fetchers = {\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n var xAxisModel = seriesModel.getReferringComponents('xAxis')[0];\n var yAxisModel = seriesModel.getReferringComponents('yAxis')[0];\n result.coordSysDims = ['x', 'y'];\n axisMap.set('x', xAxisModel);\n axisMap.set('y', yAxisModel);\n\n if (isCategory(xAxisModel)) {\n categoryAxisMap.set('x', xAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n\n if (isCategory(yAxisModel)) {\n categoryAxisMap.set('y', yAxisModel);\n result.firstCategoryDimIndex == null & (result.firstCategoryDimIndex = 1);\n }\n },\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis')[0];\n result.coordSysDims = ['single'];\n axisMap.set('single', singleAxisModel);\n\n if (isCategory(singleAxisModel)) {\n categoryAxisMap.set('single', singleAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n },\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n var polarModel = seriesModel.getReferringComponents('polar')[0];\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\n result.coordSysDims = ['radius', 'angle'];\n axisMap.set('radius', radiusAxisModel);\n axisMap.set('angle', angleAxisModel);\n\n if (isCategory(radiusAxisModel)) {\n categoryAxisMap.set('radius', radiusAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n\n if (isCategory(angleAxisModel)) {\n categoryAxisMap.set('angle', angleAxisModel);\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n }\n },\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n result.coordSysDims = ['lng', 'lat'];\n },\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n var ecModel = seriesModel.ecModel;\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n var axisDim = coordSysDims[index];\n axisMap.set(axisDim, axisModel);\n\n if (isCategory(axisModel) && result.firstCategoryDimIndex == null) {\n categoryAxisMap.set(axisDim, axisModel);\n result.firstCategoryDimIndex = index;\n }\n });\n }\n};\n\nfunction isCategory(axisModel) {\n return axisModel.get('type') === 'category';\n}\n\nexports.getCoordSysInfoBySeries = getCoordSysInfoBySeries;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar isArray = _util.isArray;\nvar isObject = _util.isObject;\n\nvar compatStyle = require(\"./helper/compatStyle\");\n\nvar _model = require(\"../util/model\");\n\nvar normalizeToArray = _model.normalizeToArray;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Compatitable with 2.0\nfunction get(opt, path) {\n path = path.split(',');\n var obj = opt;\n\n for (var i = 0; i < path.length; i++) {\n obj = obj && obj[path[i]];\n\n if (obj == null) {\n break;\n }\n }\n\n return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n path = path.split(',');\n var obj = opt;\n var key;\n\n for (var i = 0; i < path.length - 1; i++) {\n key = path[i];\n\n if (obj[key] == null) {\n obj[key] = {};\n }\n\n obj = obj[key];\n }\n\n if (overwrite || obj[path[i]] == null) {\n obj[path[i]] = val;\n }\n}\n\nfunction compatLayoutProperties(option) {\n each(LAYOUT_PROPERTIES, function (prop) {\n if (prop[0] in option && !(prop[1] in option)) {\n option[prop[1]] = option[prop[0]];\n }\n });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\n\nfunction _default(option, isTheme) {\n compatStyle(option, isTheme); // Make sure series array for model initialization.\n\n option.series = normalizeToArray(option.series);\n each(option.series, function (seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n var seriesType = seriesOpt.type;\n\n if (seriesType === 'line') {\n if (seriesOpt.clipOverflow != null) {\n seriesOpt.clip = seriesOpt.clipOverflow;\n }\n } else if (seriesType === 'pie' || seriesType === 'gauge') {\n if (seriesOpt.clockWise != null) {\n seriesOpt.clockwise = seriesOpt.clockWise;\n }\n } else if (seriesType === 'gauge') {\n var pointerColor = get(seriesOpt, 'pointer.color');\n pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n }\n\n compatLayoutProperties(seriesOpt);\n }); // dataRange has changed to visualMap\n\n if (option.dataRange) {\n option.visualMap = option.dataRange;\n }\n\n each(COMPATITABLE_COMPONENTS, function (componentName) {\n var options = option[componentName];\n\n if (options) {\n if (!isArray(options)) {\n options = [options];\n }\n\n each(options, function (option) {\n compatLayoutProperties(option);\n });\n }\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 modelUtil = require(\"../../util/model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n var itemStyleOpt = opt && opt.itemStyle;\n\n if (!itemStyleOpt) {\n return;\n }\n\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n var styleName = POSSIBLE_STYLES[i];\n var normalItemStyleOpt = itemStyleOpt.normal;\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].normal) {\n opt[styleName].normal = normalItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n }\n\n normalItemStyleOpt[styleName] = null;\n }\n\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].emphasis) {\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n }\n\n emphasisItemStyleOpt[styleName] = null;\n }\n }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n var normalOpt = opt[optType].normal;\n var emphasisOpt = opt[optType].emphasis;\n\n if (normalOpt) {\n // Timeline controlStyle has other properties besides normal and emphasis\n if (useExtend) {\n opt[optType].normal = opt[optType].emphasis = null;\n zrUtil.defaults(opt[optType], normalOpt);\n } else {\n opt[optType] = normalOpt;\n }\n }\n\n if (emphasisOpt) {\n opt.emphasis = opt.emphasis || {};\n opt.emphasis[optType] = emphasisOpt;\n }\n }\n}\n\nfunction removeEC3NormalStatus(opt) {\n convertNormalEmphasis(opt, 'itemStyle');\n convertNormalEmphasis(opt, 'lineStyle');\n convertNormalEmphasis(opt, 'areaStyle');\n convertNormalEmphasis(opt, 'label');\n convertNormalEmphasis(opt, 'labelLine'); // treemap\n\n convertNormalEmphasis(opt, 'upperLabel'); // graph\n\n convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n // Check whether is not object (string\\null\\undefined ...)\n var labelOptSingle = isObject(opt) && opt[propName];\n var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n if (textStyle) {\n for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n var propName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n if (textStyle.hasOwnProperty(propName)) {\n labelOptSingle[propName] = textStyle[propName];\n }\n }\n }\n}\n\nfunction compatEC3CommonStyles(opt) {\n if (opt) {\n removeEC3NormalStatus(opt);\n compatTextStyle(opt, 'label');\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n }\n}\n\nfunction processSeries(seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n compatEC2ItemStyle(seriesOpt);\n removeEC3NormalStatus(seriesOpt);\n compatTextStyle(seriesOpt, 'label'); // treemap\n\n compatTextStyle(seriesOpt, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt, 'edgeLabel');\n\n if (seriesOpt.emphasis) {\n compatTextStyle(seriesOpt.emphasis, 'label'); // treemap\n\n compatTextStyle(seriesOpt.emphasis, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n }\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint) {\n compatEC2ItemStyle(markPoint);\n compatEC3CommonStyles(markPoint);\n }\n\n var markLine = seriesOpt.markLine;\n\n if (markLine) {\n compatEC2ItemStyle(markLine);\n compatEC3CommonStyles(markLine);\n }\n\n var markArea = seriesOpt.markArea;\n\n if (markArea) {\n compatEC3CommonStyles(markArea);\n }\n\n var data = seriesOpt.data; // Break with ec3: if `setOption` again, there may be no `type` in option,\n // then the backward compat based on option type will not be performed.\n\n if (seriesOpt.type === 'graph') {\n data = data || seriesOpt.nodes;\n var edgeData = seriesOpt.links || seriesOpt.edges;\n\n if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n for (var i = 0; i < edgeData.length; i++) {\n compatEC3CommonStyles(edgeData[i]);\n }\n }\n\n zrUtil.each(seriesOpt.categories, function (opt) {\n removeEC3NormalStatus(opt);\n });\n }\n\n if (data && !zrUtil.isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n compatEC3CommonStyles(data[i]);\n }\n } // mark point data\n\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint && markPoint.data) {\n var mpData = markPoint.data;\n\n for (var i = 0; i < mpData.length; i++) {\n compatEC3CommonStyles(mpData[i]);\n }\n } // mark line data\n\n\n var markLine = seriesOpt.markLine;\n\n if (markLine && markLine.data) {\n var mlData = markLine.data;\n\n for (var i = 0; i < mlData.length; i++) {\n if (zrUtil.isArray(mlData[i])) {\n compatEC3CommonStyles(mlData[i][0]);\n compatEC3CommonStyles(mlData[i][1]);\n } else {\n compatEC3CommonStyles(mlData[i]);\n }\n }\n } // Series\n\n\n if (seriesOpt.type === 'gauge') {\n compatTextStyle(seriesOpt, 'axisLabel');\n compatTextStyle(seriesOpt, 'title');\n compatTextStyle(seriesOpt, 'detail');\n } else if (seriesOpt.type === 'treemap') {\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n zrUtil.each(seriesOpt.levels, function (opt) {\n removeEC3NormalStatus(opt);\n });\n } else if (seriesOpt.type === 'tree') {\n removeEC3NormalStatus(seriesOpt.leaves);\n } // sunburst starts from ec4, so it does not need to compat levels.\n\n}\n\nfunction toArr(o) {\n return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nfunction _default(option, isTheme) {\n each(toArr(option.series), function (seriesOpt) {\n isObject(seriesOpt) && processSeries(seriesOpt);\n });\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n each(axes, function (axisName) {\n each(toArr(option[axisName]), function (axisOpt) {\n if (axisOpt) {\n compatTextStyle(axisOpt, 'axisLabel');\n compatTextStyle(axisOpt.axisPointer, 'label');\n }\n });\n });\n each(toArr(option.parallel), function (parallelOpt) {\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n compatTextStyle(parallelAxisDefault, 'axisLabel');\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n });\n each(toArr(option.calendar), function (calendarOpt) {\n convertNormalEmphasis(calendarOpt, 'itemStyle');\n compatTextStyle(calendarOpt, 'dayLabel');\n compatTextStyle(calendarOpt, 'monthLabel');\n compatTextStyle(calendarOpt, 'yearLabel');\n }); // radar.name.textStyle\n\n each(toArr(option.radar), function (radarOpt) {\n compatTextStyle(radarOpt, 'name');\n });\n each(toArr(option.geo), function (geoOpt) {\n if (isObject(geoOpt)) {\n compatEC3CommonStyles(geoOpt);\n each(toArr(geoOpt.regions), function (regionObj) {\n compatEC3CommonStyles(regionObj);\n });\n }\n });\n each(toArr(option.timeline), function (timelineOpt) {\n compatEC3CommonStyles(timelineOpt);\n convertNormalEmphasis(timelineOpt, 'label');\n convertNormalEmphasis(timelineOpt, 'itemStyle');\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n var data = timelineOpt.data;\n zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n if (zrUtil.isObject(item)) {\n convertNormalEmphasis(item, 'label');\n convertNormalEmphasis(item, 'itemStyle');\n }\n });\n });\n each(toArr(option.toolbox), function (toolboxOpt) {\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\n each(toolboxOpt.feature, function (featureOpt) {\n convertNormalEmphasis(featureOpt, 'iconStyle');\n });\n });\n compatTextStyle(toObj(option.axisPointer), 'label');\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, 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*/\nfunction _default(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (!legendModels || !legendModels.length) {\n return;\n }\n\n var data = seriesModel.getData();\n data.filterSelf(function (idx) {\n var name = data.getName(idx); // If in any legend component the status is not selected.\n\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(name)) {\n return false;\n }\n }\n\n return true;\n });\n }\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, 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*/\nvar samplers = {\n average: function (frame) {\n var sum = 0;\n var count = 0;\n\n for (var i = 0; i < frame.length; i++) {\n if (!isNaN(frame[i])) {\n sum += frame[i];\n count++;\n }\n } // Return NaN if count is 0\n\n\n return count === 0 ? NaN : sum / count;\n },\n sum: function (frame) {\n var sum = 0;\n\n for (var i = 0; i < frame.length; i++) {\n // Ignore NaN\n sum += frame[i] || 0;\n }\n\n return sum;\n },\n max: function (frame) {\n var max = -Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] > max && (max = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(max) ? max : NaN;\n },\n min: function (frame) {\n var min = Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] < min && (min = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(min) ? min : NaN;\n },\n // TODO\n // Median\n nearest: function (frame) {\n return frame[0];\n }\n};\n\nvar indexSampler = function (frame, value) {\n return Math.round(frame.length / 2);\n};\n\nfunction _default(seriesType) {\n return {\n seriesType: seriesType,\n modifyOutputEnd: true,\n reset: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var sampling = seriesModel.get('sampling');\n var coordSys = seriesModel.coordinateSystem; // Only cartesian2d support down sampling\n\n if (coordSys.type === 'cartesian2d' && sampling) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var extent = baseAxis.getExtent(); // Coordinste system has been resized\n\n var size = Math.abs(extent[1] - extent[0]);\n var rate = Math.round(data.count() / size);\n\n if (rate > 1) {\n var sampler;\n\n if (typeof sampling === 'string') {\n sampler = samplers[sampling];\n } else if (typeof sampling === 'function') {\n sampler = sampling;\n }\n\n if (sampler) {\n // Only support sample the first dim mapped from value axis.\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n }\n }\n }\n }\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// (1) [Caution]: the logic is correct based on the premises:\n// data processing stage is blocked in stream.\n// See \n// (2) Only register once when import repeatly.\n// Should be executed after series filtered and before stack calculation.\nfunction _default(ecModel) {\n var stackInfoMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var stack = seriesModel.get('stack'); // Compatibal: when `stack` is set as '', do not stack.\n\n if (stack) {\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n var data = seriesModel.getData();\n var stackInfo = {\n // Used for calculate axis extent automatically.\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n stackedDimension: data.getCalculationInfo('stackedDimension'),\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n data: data,\n seriesModel: seriesModel\n }; // If stacked on axis that do not support data stack.\n\n if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n return;\n }\n\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n stackInfoList.push(stackInfo);\n }\n });\n stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n each(stackInfoList, function (targetStackInfo, idxInStack) {\n var resultVal = [];\n var resultNaN = [NaN, NaN];\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n var targetData = targetStackInfo.data;\n var isStackedByIndex = targetStackInfo.isStackedByIndex; // Should not write on raw data, because stack series model list changes\n // depending on legend selection.\n\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex); // Consider `connectNulls` of line area, if value is NaN, stackedOver\n // should also be NaN, to draw a appropriate belt area.\n\n if (isNaN(sum)) {\n return resultNaN;\n }\n\n var byValue;\n var stackedDataRawIndex;\n\n if (isStackedByIndex) {\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n } else {\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n } // If stackOver is NaN, chart view will render point on value start.\n\n\n var stackedOver = NaN;\n\n for (var j = idxInStack - 1; j >= 0; j--) {\n var stackInfo = stackInfoList[j]; // Has been optimized by inverted indices on `stackedByDimension`.\n\n if (!isStackedByIndex) {\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n }\n\n if (stackedDataRawIndex >= 0) {\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex); // Considering positive stack, negative stack and empty data\n\n if (sum >= 0 && val > 0 || // Positive stack\n sum <= 0 && val < 0 // Negative stack\n ) {\n sum += val;\n stackedOver = val;\n break;\n }\n }\n }\n\n resultVal[0] = sum;\n resultVal[1] = stackedOver;\n return resultVal;\n });\n targetData.hostModel.setData(newData); // Update for consequent calculation\n\n targetStackInfo.data = newData;\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 numberUtil = require(\"../util/number\");\n\nvar formatUtil = require(\"../util/format\");\n\nvar Scale = require(\"./Scale\");\n\nvar helper = require(\"./helper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Interval scale\n * @module echarts/scale/Interval\n */\nvar roundNumber = numberUtil.round;\n/**\n * @alias module:echarts/coord/scale/Interval\n * @constructor\n */\n\nvar IntervalScale = Scale.extend({\n type: 'interval',\n _interval: 0,\n _intervalPrecision: 2,\n setExtent: function (start, end) {\n var thisExtent = this._extent; //start,end may be a Number like '25',so...\n\n if (!isNaN(start)) {\n thisExtent[0] = parseFloat(start);\n }\n\n if (!isNaN(end)) {\n thisExtent[1] = parseFloat(end);\n }\n },\n unionExtent: function (other) {\n var extent = this._extent;\n other[0] < extent[0] && (extent[0] = other[0]);\n other[1] > extent[1] && (extent[1] = other[1]); // unionExtent may called by it's sub classes\n\n IntervalScale.prototype.setExtent.call(this, extent[0], extent[1]);\n },\n\n /**\n * Get interval\n */\n getInterval: function () {\n return this._interval;\n },\n\n /**\n * Set interval\n */\n setInterval: function (interval) {\n this._interval = interval; // Dropped auto calculated niceExtent and use user setted extent\n // We assume user wan't to set both interval, min, max to get a better result\n\n this._niceExtent = this._extent.slice();\n this._intervalPrecision = helper.getIntervalPrecision(interval);\n },\n\n /**\n * @param {boolean} [expandToNicedExtent=false] If expand the ticks to niced extent.\n * @return {Array.}\n */\n getTicks: function (expandToNicedExtent) {\n var interval = this._interval;\n var extent = this._extent;\n var niceTickExtent = this._niceExtent;\n var intervalPrecision = this._intervalPrecision;\n var ticks = []; // If interval is 0, return [];\n\n if (!interval) {\n return ticks;\n } // Consider this case: using dataZoom toolbox, zoom and zoom.\n\n\n var safeLimit = 10000;\n\n if (extent[0] < niceTickExtent[0]) {\n if (expandToNicedExtent) {\n ticks.push(roundNumber(niceTickExtent[0] - interval, intervalPrecision));\n } else {\n ticks.push(extent[0]);\n }\n }\n\n var tick = niceTickExtent[0];\n\n while (tick <= niceTickExtent[1]) {\n ticks.push(tick); // Avoid rounding error\n\n tick = roundNumber(tick + interval, intervalPrecision);\n\n if (tick === ticks[ticks.length - 1]) {\n // Consider out of safe float point, e.g.,\n // -3711126.9907707 + 2e-10 === -3711126.9907707\n break;\n }\n\n if (ticks.length > safeLimit) {\n return [];\n }\n } // Consider this case: the last item of ticks is smaller\n // than niceTickExtent[1] and niceTickExtent[1] === extent[1].\n\n\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1] : niceTickExtent[1];\n\n if (extent[1] > lastNiceTick) {\n if (expandToNicedExtent) {\n ticks.push(roundNumber(lastNiceTick + interval, intervalPrecision));\n } else {\n ticks.push(extent[1]);\n }\n }\n\n return ticks;\n },\n\n /**\n * @param {number} [splitNumber=5]\n * @return {Array.>}\n */\n getMinorTicks: function (splitNumber) {\n var ticks = this.getTicks(true);\n var minorTicks = [];\n var extent = this.getExtent();\n\n for (var i = 1; i < ticks.length; i++) {\n var nextTick = ticks[i];\n var prevTick = ticks[i - 1];\n var count = 0;\n var minorTicksGroup = [];\n var interval = nextTick - prevTick;\n var minorInterval = interval / splitNumber;\n\n while (count < splitNumber - 1) {\n var minorTick = numberUtil.round(prevTick + (count + 1) * minorInterval); // For the first and last interval. The count may be less than splitNumber.\n\n if (minorTick > extent[0] && minorTick < extent[1]) {\n minorTicksGroup.push(minorTick);\n }\n\n count++;\n }\n\n minorTicks.push(minorTicksGroup);\n }\n\n return minorTicks;\n },\n\n /**\n * @param {number} data\n * @param {Object} [opt]\n * @param {number|string} [opt.precision] If 'auto', use nice presision.\n * @param {boolean} [opt.pad] returns 1.50 but not 1.5 if precision is 2.\n * @return {string}\n */\n getLabel: function (data, opt) {\n if (data == null) {\n return '';\n }\n\n var precision = opt && opt.precision;\n\n if (precision == null) {\n precision = numberUtil.getPrecisionSafe(data) || 0;\n } else if (precision === 'auto') {\n // Should be more precise then tick.\n precision = this._intervalPrecision;\n } // (1) If `precision` is set, 12.005 should be display as '12.00500'.\n // (2) Use roundNumber (toFixed) to avoid scientific notation like '3.5e-7'.\n\n\n data = roundNumber(data, precision, true);\n return formatUtil.addCommas(data);\n },\n\n /**\n * Update interval and extent of intervals for nice ticks\n *\n * @param {number} [splitNumber = 5] Desired number of ticks\n * @param {number} [minInterval]\n * @param {number} [maxInterval]\n */\n niceTicks: function (splitNumber, minInterval, maxInterval) {\n splitNumber = splitNumber || 5;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (!isFinite(span)) {\n return;\n } // User may set axis min 0 and data are all negative\n // FIXME If it needs to reverse ?\n\n\n if (span < 0) {\n span = -span;\n extent.reverse();\n }\n\n var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n this._intervalPrecision = result.intervalPrecision;\n this._interval = result.interval;\n this._niceExtent = result.niceTickExtent;\n },\n\n /**\n * Nice extent.\n * @param {Object} opt\n * @param {number} [opt.splitNumber = 5] Given approx tick number\n * @param {boolean} [opt.fixMin=false]\n * @param {boolean} [opt.fixMax=false]\n * @param {boolean} [opt.minInterval]\n * @param {boolean} [opt.maxInterval]\n */\n niceExtent: function (opt) {\n var extent = this._extent; // If extent start and end are same, expand them\n\n if (extent[0] === extent[1]) {\n if (extent[0] !== 0) {\n // Expand extent\n var expandSize = extent[0]; // In the fowllowing case\n // Axis has been fixed max 100\n // Plus data are all 100 and axis extent are [100, 100].\n // Extend to the both side will cause expanded max is larger than fixed max.\n // So only expand to the smaller side.\n\n if (!opt.fixMax) {\n extent[1] += expandSize / 2;\n extent[0] -= expandSize / 2;\n } else {\n extent[0] -= expandSize / 2;\n }\n } else {\n extent[1] = 1;\n }\n }\n\n var span = extent[1] - extent[0]; // If there are no data and extent are [Infinity, -Infinity]\n\n if (!isFinite(span)) {\n extent[0] = 0;\n extent[1] = 1;\n }\n\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // var extent = this._extent;\n\n var interval = this._interval;\n\n if (!opt.fixMin) {\n extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n }\n\n if (!opt.fixMax) {\n extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n }\n }\n});\n/**\n * @return {module:echarts/scale/Time}\n */\n\nIntervalScale.create = function () {\n return new IntervalScale();\n};\n\nvar _default = IntervalScale;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 Scale = require(\"./Scale\");\n\nvar numberUtil = require(\"../util/number\");\n\nvar IntervalScale = require(\"./Interval\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Log scale\n * @module echarts/scale/Log\n */\n// Use some method of IntervalScale\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\nvar LogScale = Scale.extend({\n type: 'log',\n base: 10,\n $constructor: function () {\n Scale.apply(this, arguments);\n this._originalScale = new IntervalScale();\n },\n\n /**\n * @param {boolean} [expandToNicedExtent=false] If expand the ticks to niced extent.\n * @return {Array.}\n */\n getTicks: function (expandToNicedExtent) {\n var originalScale = this._originalScale;\n var extent = this._extent;\n var originalExtent = originalScale.getExtent();\n return zrUtil.map(intervalScaleProto.getTicks.call(this, expandToNicedExtent), function (val) {\n var powVal = numberUtil.round(mathPow(this.base, val)); // Fix #4158\n\n powVal = val === extent[0] && originalScale.__fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n powVal = val === extent[1] && originalScale.__fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n return powVal;\n }, this);\n },\n\n /**\n * @param {number} splitNumber\n * @return {Array.>}\n */\n getMinorTicks: intervalScaleProto.getMinorTicks,\n\n /**\n * @param {number} val\n * @return {string}\n */\n getLabel: intervalScaleProto.getLabel,\n\n /**\n * @param {number} val\n * @return {number}\n */\n scale: function (val) {\n val = scaleProto.scale.call(this, val);\n return mathPow(this.base, val);\n },\n\n /**\n * @param {number} start\n * @param {number} end\n */\n setExtent: function (start, end) {\n var base = this.base;\n start = mathLog(start) / mathLog(base);\n end = mathLog(end) / mathLog(base);\n intervalScaleProto.setExtent.call(this, start, end);\n },\n\n /**\n * @return {number} end\n */\n getExtent: function () {\n var base = this.base;\n var extent = scaleProto.getExtent.call(this);\n extent[0] = mathPow(base, extent[0]);\n extent[1] = mathPow(base, extent[1]); // Fix #4158\n\n var originalScale = this._originalScale;\n var originalExtent = originalScale.getExtent();\n originalScale.__fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n originalScale.__fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n return extent;\n },\n\n /**\n * @param {Array.} extent\n */\n unionExtent: function (extent) {\n this._originalScale.unionExtent(extent);\n\n var base = this.base;\n extent[0] = mathLog(extent[0]) / mathLog(base);\n extent[1] = mathLog(extent[1]) / mathLog(base);\n scaleProto.unionExtent.call(this, extent);\n },\n\n /**\n * @override\n */\n unionExtentFromData: function (data, dim) {\n // TODO\n // filter value that <= 0\n this.unionExtent(data.getApproximateExtent(dim));\n },\n\n /**\n * Update interval and extent of intervals for nice ticks\n * @param {number} [approxTickNum = 10] Given approx tick number\n */\n niceTicks: function (approxTickNum) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (span === Infinity || span <= 0) {\n return;\n }\n\n var interval = numberUtil.quantity(span);\n var err = approxTickNum / span * interval; // Filter ticks to get closer to the desired count.\n\n if (err <= 0.5) {\n interval *= 10;\n } // Interval should be integer\n\n\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n interval *= 10;\n }\n\n var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n this._interval = interval;\n this._niceExtent = niceExtent;\n },\n\n /**\n * Nice extent.\n * @override\n */\n niceExtent: function (opt) {\n intervalScaleProto.niceExtent.call(this, opt);\n var originalScale = this._originalScale;\n originalScale.__fixMin = opt.fixMin;\n originalScale.__fixMax = opt.fixMax;\n }\n});\nzrUtil.each(['contain', 'normalize'], function (methodName) {\n LogScale.prototype[methodName] = function (val) {\n val = mathLog(val) / mathLog(this.base);\n return scaleProto[methodName].call(this, val);\n };\n});\n\nLogScale.create = function () {\n return new LogScale();\n};\n\nfunction fixRoundingError(val, originalVal) {\n return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nvar _default = LogScale;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 Scale = require(\"./Scale\");\n\nvar OrdinalMeta = require(\"../data/OrdinalMeta\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Linear continuous scale\n * @module echarts/coord/scale/Ordinal\n *\n * http://en.wikipedia.org/wiki/Level_of_measurement\n */\n// FIXME only one data\nvar scaleProto = Scale.prototype;\nvar OrdinalScale = Scale.extend({\n type: 'ordinal',\n\n /**\n * @param {module:echarts/data/OrdianlMeta|Array.} ordinalMeta\n */\n init: function (ordinalMeta, extent) {\n // Caution: Should not use instanceof, consider ec-extensions using\n // import approach to get OrdinalMeta class.\n if (!ordinalMeta || zrUtil.isArray(ordinalMeta)) {\n ordinalMeta = new OrdinalMeta({\n categories: ordinalMeta\n });\n }\n\n this._ordinalMeta = ordinalMeta;\n this._extent = extent || [0, ordinalMeta.categories.length - 1];\n },\n parse: function (val) {\n return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) // val might be float.\n : Math.round(val);\n },\n contain: function (rank) {\n rank = this.parse(rank);\n return scaleProto.contain.call(this, rank) && this._ordinalMeta.categories[rank] != null;\n },\n\n /**\n * Normalize given rank or name to linear [0, 1]\n * @param {number|string} [val]\n * @return {number}\n */\n normalize: function (val) {\n return scaleProto.normalize.call(this, this.parse(val));\n },\n scale: function (val) {\n return Math.round(scaleProto.scale.call(this, val));\n },\n\n /**\n * @return {Array}\n */\n getTicks: function () {\n var ticks = [];\n var extent = this._extent;\n var rank = extent[0];\n\n while (rank <= extent[1]) {\n ticks.push(rank);\n rank++;\n }\n\n return ticks;\n },\n\n /**\n * Get item on rank n\n * @param {number} n\n * @return {string}\n */\n getLabel: function (n) {\n if (!this.isBlank()) {\n // Note that if no data, ordinalMeta.categories is an empty array.\n return this._ordinalMeta.categories[n];\n }\n },\n\n /**\n * @return {number}\n */\n count: function () {\n return this._extent[1] - this._extent[0] + 1;\n },\n\n /**\n * @override\n */\n unionExtentFromData: function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n },\n getOrdinalMeta: function () {\n return this._ordinalMeta;\n },\n niceTicks: zrUtil.noop,\n niceExtent: zrUtil.noop\n});\n/**\n * @return {module:echarts/scale/Time}\n */\n\nOrdinalScale.create = function () {\n return new OrdinalScale();\n};\n\nvar _default = OrdinalScale;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 clazzUtil = require(\"../util/clazz\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * // Scale class management\n * @module echarts/scale/Scale\n */\n\n/**\n * @param {Object} [setting]\n */\nfunction Scale(setting) {\n this._setting = setting || {};\n /**\n * Extent\n * @type {Array.}\n * @protected\n */\n\n this._extent = [Infinity, -Infinity];\n /**\n * Step is calculated in adjustExtent\n * @type {Array.}\n * @protected\n */\n\n this._interval = 0;\n this.init && this.init.apply(this, arguments);\n}\n/**\n * Parse input val to valid inner number.\n * @param {*} val\n * @return {number}\n */\n\n\nScale.prototype.parse = function (val) {\n // Notice: This would be a trap here, If the implementation\n // of this method depends on extent, and this method is used\n // before extent set (like in dataZoom), it would be wrong.\n // Nevertheless, parse does not depend on extent generally.\n return val;\n};\n\nScale.prototype.getSetting = function (name) {\n return this._setting[name];\n};\n\nScale.prototype.contain = function (val) {\n var extent = this._extent;\n return val >= extent[0] && val <= extent[1];\n};\n/**\n * Normalize value to linear [0, 1], return 0.5 if extent span is 0\n * @param {number} val\n * @return {number}\n */\n\n\nScale.prototype.normalize = function (val) {\n var extent = this._extent;\n\n if (extent[1] === extent[0]) {\n return 0.5;\n }\n\n return (val - extent[0]) / (extent[1] - extent[0]);\n};\n/**\n * Scale normalized value\n * @param {number} val\n * @return {number}\n */\n\n\nScale.prototype.scale = function (val) {\n var extent = this._extent;\n return val * (extent[1] - extent[0]) + extent[0];\n};\n/**\n * Set extent from data\n * @param {Array.} other\n */\n\n\nScale.prototype.unionExtent = function (other) {\n var extent = this._extent;\n other[0] < extent[0] && (extent[0] = other[0]);\n other[1] > extent[1] && (extent[1] = other[1]); // not setExtent because in log axis it may transformed to power\n // this.setExtent(extent[0], extent[1]);\n};\n/**\n * Set extent from data\n * @param {module:echarts/data/List} data\n * @param {string} dim\n */\n\n\nScale.prototype.unionExtentFromData = function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n};\n/**\n * Get extent\n * @return {Array.}\n */\n\n\nScale.prototype.getExtent = function () {\n return this._extent.slice();\n};\n/**\n * Set extent\n * @param {number} start\n * @param {number} end\n */\n\n\nScale.prototype.setExtent = function (start, end) {\n var thisExtent = this._extent;\n\n if (!isNaN(start)) {\n thisExtent[0] = start;\n }\n\n if (!isNaN(end)) {\n thisExtent[1] = end;\n }\n};\n/**\n * When axis extent depends on data and no data exists,\n * axis ticks should not be drawn, which is named 'blank'.\n */\n\n\nScale.prototype.isBlank = function () {\n return this._isBlank;\n},\n/**\n * When axis extent depends on data and no data exists,\n * axis ticks should not be drawn, which is named 'blank'.\n */\nScale.prototype.setBlank = function (isBlank) {\n this._isBlank = isBlank;\n};\n/**\n * @abstract\n * @param {*} tick\n * @return {string} label of the tick.\n */\n\nScale.prototype.getLabel = null;\nclazzUtil.enableClassExtend(Scale);\nclazzUtil.enableClassManagement(Scale, {\n registerWhenExtend: true\n});\nvar _default = Scale;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 numberUtil = require(\"../util/number\");\n\nvar formatUtil = require(\"../util/format\");\n\nvar scaleHelper = require(\"./helper\");\n\nvar IntervalScale = require(\"./Interval\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* The \"scaleLevels\" was originally copied from \"d3.js\" with some\n* modifications made for this project.\n* (See more details in the comment on the definition of \"scaleLevels\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\n// [About UTC and local time zone]:\n// In most cases, `number.parseDate` will treat input data string as local time\n// (except time zone is specified in time string). And `format.formateTime` returns\n// local time by default. option.useUTC is false by default. This design have\n// concidered these common case:\n// (1) Time that is persistent in server is in UTC, but it is needed to be diplayed\n// in local time by default.\n// (2) By default, the input data string (e.g., '2011-01-02') should be displayed\n// as its original time, without any time difference.\nvar intervalScaleProto = IntervalScale.prototype;\nvar mathCeil = Math.ceil;\nvar mathFloor = Math.floor;\nvar ONE_SECOND = 1000;\nvar ONE_MINUTE = ONE_SECOND * 60;\nvar ONE_HOUR = ONE_MINUTE * 60;\nvar ONE_DAY = ONE_HOUR * 24; // FIXME 公用?\n\nvar bisect = function (a, x, lo, hi) {\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n\n if (a[mid][1] < x) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n\n return lo;\n};\n/**\n * @alias module:echarts/coord/scale/Time\n * @constructor\n */\n\n\nvar TimeScale = IntervalScale.extend({\n type: 'time',\n\n /**\n * @override\n */\n getLabel: function (val) {\n var stepLvl = this._stepLvl;\n var date = new Date(val);\n return formatUtil.formatTime(stepLvl[0], date, this.getSetting('useUTC'));\n },\n\n /**\n * @override\n */\n niceExtent: function (opt) {\n var extent = this._extent; // If extent start and end are same, expand them\n\n if (extent[0] === extent[1]) {\n // Expand extent\n extent[0] -= ONE_DAY;\n extent[1] += ONE_DAY;\n } // If there are no data and extent are [Infinity, -Infinity]\n\n\n if (extent[1] === -Infinity && extent[0] === Infinity) {\n var d = new Date();\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n extent[0] = extent[1] - ONE_DAY;\n }\n\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // var extent = this._extent;\n\n var interval = this._interval;\n\n if (!opt.fixMin) {\n extent[0] = numberUtil.round(mathFloor(extent[0] / interval) * interval);\n }\n\n if (!opt.fixMax) {\n extent[1] = numberUtil.round(mathCeil(extent[1] / interval) * interval);\n }\n },\n\n /**\n * @override\n */\n niceTicks: function (approxTickNum, minInterval, maxInterval) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n var approxInterval = span / approxTickNum;\n\n if (minInterval != null && approxInterval < minInterval) {\n approxInterval = minInterval;\n }\n\n if (maxInterval != null && approxInterval > maxInterval) {\n approxInterval = maxInterval;\n }\n\n var scaleLevelsLen = scaleLevels.length;\n var idx = bisect(scaleLevels, approxInterval, 0, scaleLevelsLen);\n var level = scaleLevels[Math.min(idx, scaleLevelsLen - 1)];\n var interval = level[1]; // Same with interval scale if span is much larger than 1 year\n\n if (level[0] === 'year') {\n var yearSpan = span / interval; // From \"Nice Numbers for Graph Labels\" of Graphic Gems\n // var niceYearSpan = numberUtil.nice(yearSpan, false);\n\n var yearStep = numberUtil.nice(yearSpan / approxTickNum, true);\n interval *= yearStep;\n }\n\n var timezoneOffset = this.getSetting('useUTC') ? 0 : new Date(+extent[0] || +extent[1]).getTimezoneOffset() * 60 * 1000;\n var niceExtent = [Math.round(mathCeil((extent[0] - timezoneOffset) / interval) * interval + timezoneOffset), Math.round(mathFloor((extent[1] - timezoneOffset) / interval) * interval + timezoneOffset)];\n scaleHelper.fixExtent(niceExtent, extent);\n this._stepLvl = level; // Interval will be used in getTicks\n\n this._interval = interval;\n this._niceExtent = niceExtent;\n },\n parse: function (val) {\n // val might be float.\n return +numberUtil.parseDate(val);\n }\n});\nzrUtil.each(['contain', 'normalize'], function (methodName) {\n TimeScale.prototype[methodName] = function (val) {\n return intervalScaleProto[methodName].call(this, this.parse(val));\n };\n});\n/**\n * This implementation was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\nvar scaleLevels = [// Format interval\n['hh:mm:ss', ONE_SECOND], // 1s\n['hh:mm:ss', ONE_SECOND * 5], // 5s\n['hh:mm:ss', ONE_SECOND * 10], // 10s\n['hh:mm:ss', ONE_SECOND * 15], // 15s\n['hh:mm:ss', ONE_SECOND * 30], // 30s\n['hh:mm\\nMM-dd', ONE_MINUTE], // 1m\n['hh:mm\\nMM-dd', ONE_MINUTE * 5], // 5m\n['hh:mm\\nMM-dd', ONE_MINUTE * 10], // 10m\n['hh:mm\\nMM-dd', ONE_MINUTE * 15], // 15m\n['hh:mm\\nMM-dd', ONE_MINUTE * 30], // 30m\n['hh:mm\\nMM-dd', ONE_HOUR], // 1h\n['hh:mm\\nMM-dd', ONE_HOUR * 2], // 2h\n['hh:mm\\nMM-dd', ONE_HOUR * 6], // 6h\n['hh:mm\\nMM-dd', ONE_HOUR * 12], // 12h\n['MM-dd\\nyyyy', ONE_DAY], // 1d\n['MM-dd\\nyyyy', ONE_DAY * 2], // 2d\n['MM-dd\\nyyyy', ONE_DAY * 3], // 3d\n['MM-dd\\nyyyy', ONE_DAY * 4], // 4d\n['MM-dd\\nyyyy', ONE_DAY * 5], // 5d\n['MM-dd\\nyyyy', ONE_DAY * 6], // 6d\n['week', ONE_DAY * 7], // 7d\n['MM-dd\\nyyyy', ONE_DAY * 10], // 10d\n['week', ONE_DAY * 14], // 2w\n['week', ONE_DAY * 21], // 3w\n['month', ONE_DAY * 31], // 1M\n['week', ONE_DAY * 42], // 6w\n['month', ONE_DAY * 62], // 2M\n['week', ONE_DAY * 70], // 10w\n['quarter', ONE_DAY * 95], // 3M\n['month', ONE_DAY * 31 * 4], // 4M\n['month', ONE_DAY * 31 * 5], // 5M\n['half-year', ONE_DAY * 380 / 2], // 6M\n['month', ONE_DAY * 31 * 8], // 8M\n['month', ONE_DAY * 31 * 10], // 10M\n['year', ONE_DAY * 380] // 1Y\n];\n/**\n * @param {module:echarts/model/Model}\n * @return {module:echarts/scale/Time}\n */\n\nTimeScale.create = function (model) {\n return new TimeScale({\n useUTC: model.ecModel.get('useUTC')\n });\n};\n\nvar _default = TimeScale;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 numberUtil = require(\"../util/number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * For testable.\n */\nvar roundNumber = numberUtil.round;\n/**\n * @param {Array.} extent Both extent[0] and extent[1] should be valid number.\n * Should be extent[0] < extent[1].\n * @param {number} splitNumber splitNumber should be >= 1.\n * @param {number} [minInterval]\n * @param {number} [maxInterval]\n * @return {Object} {interval, intervalPrecision, niceTickExtent}\n */\n\nfunction intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n var result = {};\n var span = extent[1] - extent[0];\n var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n if (minInterval != null && interval < minInterval) {\n interval = result.interval = minInterval;\n }\n\n if (maxInterval != null && interval > maxInterval) {\n interval = result.interval = maxInterval;\n } // Tow more digital for tick.\n\n\n var precision = result.intervalPrecision = getIntervalPrecision(interval); // Niced extent inside original extent\n\n var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n fixExtent(niceTickExtent, extent);\n return result;\n}\n/**\n * @param {number} interval\n * @return {number} interval precision\n */\n\n\nfunction getIntervalPrecision(interval) {\n // Tow more digital for tick.\n return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n} // In some cases (e.g., splitNumber is 1), niceTickExtent may be out of extent.\n\n\nfunction fixExtent(niceTickExtent, extent) {\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n clamp(niceTickExtent, 0, extent);\n clamp(niceTickExtent, 1, extent);\n\n if (niceTickExtent[0] > niceTickExtent[1]) {\n niceTickExtent[0] = niceTickExtent[1];\n }\n}\n\nexports.intervalScaleNiceTicks = intervalScaleNiceTicks;\nexports.getIntervalPrecision = getIntervalPrecision;\nexports.fixExtent = fixExtent;"],"names":["zrUtil","graphic","textContain","PI","Math","_default","api","opts","defaults","text","textColor","fontSize","maskColor","showSpinner","color","spinnerRadius","lineWidth","zlevel","group","Group","mask","Rect","style","fill","z","add","font","labelRect","textPosition","textDistance","textFill","arc","Arc","shape","startAngle","endAngle","r","stroke","lineCap","animateShape","when","start","delay","resize","textWidth","getWidth","cx","cy","getHeight","setShape","x","y","width","height","module","exports","Model","componentUtil","_clazz","enableClassManagement","parseClassType","_model","makeInner","layout","boxLayoutMixin","inner","ComponentModel","extend","type","id","name","mainType","subType","componentIndex","defaultOption","ecModel","dependentModels","uid","layoutMode","$constructor","option","parentModel","extraOpt","call","this","getUID","init","mergeDefaultAndTheme","inputPositionParams","getLayoutParams","themeModel","getTheme","merge","get","getDefaultOption","mergeLayoutParam","mergeOption","optionUpdated","newCptOption","isInit","fields","optList","Class","constructor","opt","prototype","push","superClass","i","length","getReferringComponents","queryComponents","index","getDependencies","componentType","deps","each","getClassesByMainType","Clazz","concat","dependencies","map","main","indexOf","unshift","registerWhenExtend","enableSubTypeDefaulter","enableTopologicalTravel","mixin","_config","_util","__DEV__","filter","isArray","isObject","isString","createHashMap","assert","clone","modelUtil","globalDefault","colorPaletteMixin","_sourceHelper","resetSourceDefaulter","OPTION_INNER_KEY","GlobalModel","theme","optionManager","_theme","_optionManager","setOption","optionPreprocessorFuncs","resetOption","optionChanged","baseOption","mountOption","restoreData","initBase","timelineOption","getTimelineOption","mediaOptions","getMediaOption","_api","mediaOption","newOption","componentsMap","_componentsMap","newCptTypes","visitComponent","newCptOptionList","normalizeToArray","mapResult","mappingToExists","makeIdAndName","item","keyInfo","determineSubType","exist","getComponentsByTypes","set","resultItem","componentModel","ComponentModelClass","getClass","createSeriesIndices","componentOption","hasClass","topologicalTravel","getAllClassMainTypes","_seriesIndicesMap","_seriesIndices","getOption","isIdInner","splice","getComponent","idx","list","condition","result","cpts","val","isIdArray","cpt","isNameArray","slice","filterBySubType","findComponents","query","queryCond","getQueryCond","doFilter","q","indexAttr","idAttr","nameAttr","res","eachComponent","cb","context","components","component","queryResult","getSeriesByName","series","oneSeries","getSeriesByIndex","seriesIndex","getSeriesByType","getSeries","getSeriesCount","eachSeries","assertSeriesInitialized","rawSeriesIndex","eachRawSeries","eachSeriesByType","eachRawSeriesByType","isSeriesFiltered","seriesModel","getCurrentSeriesIndices","filterSeries","filteredSeries","payload","componentTypes","isNotTargetSeries","seiresIndex","seriesId","seriesName","mergeTheme","notMergeColorLayer","colorLayer","themeItem","types","ret","existComponent","seriesModels","hasOwnProperty","env","enableClassExtend","enableClassCheck","lineStyleMixin","areaStyleMixin","textStyleMixin","itemStyleMixin","doGet","obj","pathArr","getParent","model","path","getParentMethod","ignoreParent","parsePath","getShallow","key","getModel","thisParentModel","isEmpty","Ctor","setReadOnly","properties","split","customizeGetParent","isAnimationEnabled","node","animation","QUERY_REG","OptionManager","_timelineOptions","_mediaList","_mediaDefault","_currentMediaIndices","_optionBackup","_newBaseOption","parseRawOption","rawOption","isNew","mediaDefault","timelineOptions","mediaList","timelineOpt","timeline","options","media","singleMedia","preProcess","applyMediaQuery","ecWidth","ecHeight","realMap","aspectratio","applicatable","value","attr","matched","match","operator","realAttr","toLowerCase","compare","real","expect","indicesEquals","indices1","indices2","join","oldOption","newCptOpt","oldCptOpt","data","isTypedArray","setAsPrimitive","oldOptionBackup","newParsedOption","isRecreate","optionBackup","timelineModel","getCurrentIndex","indices","len","_format","formatTime","encodeHTML","addCommas","getTooltipMarker","dataFormatMixin","_layout","_task","createTask","prepareSource","getSource","_dataProvider","retrieveRawValue","SeriesModel","coordinateSystem","legendVisualProvider","visualColorAccessPath","visualBorderColorAccessPath","dataTask","count","dataTaskCount","reset","dataTaskReset","getInitialData","wrapData","dataBeforeProcessed","autoSeriesName","themeSubType","defaultEmphasis","fillDataTextStyle","newSeriesOption","dirty","props","label","appendData","params","getRawData","getData","dataType","task","getCurrentTask","getLinkedData","setData","modifyOutputEnd","setOutputEnd","outputData","getBaseAxis","coordSys","formatTooltip","dataIndex","multipleSeries","renderMode","newLine","isRichText","markers","markerId","formatArrayValue","vertially","reduce","dimItem","getDimensionInfo","tooltip","displayName","setEachItem","dim","dimInfo","otherDims","dimType","markName","dimHead","dimHeadStr","content","valStr","tooltipDims","formatSingleValue","mapDimension","tooltipDimLen","getRawValue","isValueArr","getItemVisual","colorStops","formattedValue","colorEl","getName","isNameSpecified","colorStr","html","animationEnabled","getColorFromPalette","scope","requestColorNum","coordDimToDataDim","coordDim","getProgressive","getProgressiveThreshold","getAxisTooltipData","getTooltipPosition","pipeTask","preventIncremental","pipelineContext","getSeriesAutoName","dataDims","nameArr","dataDim","cloneShallow","dataTaskProgress","param","end","CHANGABLE_METHODS","methodName","wrapMethod","curry","onDataSelfChange","scheduler","pipeline","getPipeline","currentTask","agentStubMap","platform","navigator","gradientColor","textStyle","fontFamily","fontStyle","fontWeight","blendMode","animationDuration","animationDurationUpdate","animationEasing","animationEasingUpdate","animationThreshold","progressiveThreshold","progressive","hoverLayerThreshold","useUTC","makeStyleMapper","getAreaStyle","excludes","includes","getBoxLayoutParams","left","top","right","bottom","getNearestColorPalette","colors","paletteNum","clearColorPalette","colorIdx","colorNameMap","scopeFields","defaultColorPalette","layeredColorPalette","colorPalette","formatTpl","getTooltipRenderMode","DIMENSION_LABEL_REG","getDataParams","rawValue","rawDataIndex","getRawIndex","itemOpt","getRawDataItem","borderColor","tooltipModel","renderModeOption","isSeries","userOutput","componentSubType","seriesType","dimensionNames","encode","marker","$vars","getFormattedLabel","status","dimIndex","labelProp","itemModel","getItemModel","Array","formatter","dimensionIndex","str","replace","origin","charAt","getItemStyle","lineDash","getBorderLineDash","lineType","getLineStyle","getLineDash","dotSize","max","dashSize","propName","graphicUtil","PATH_COLOR","getTextColor","isEmphasis","getFont","getTextRect","getBoundingRect","retrieve","CoordSysInfo","coordSysName","coordSysDims","axisMap","categoryAxisMap","firstCategoryDimIndex","getCoordSysInfoBySeries","fetch","fetchers","cartesian2d","xAxisModel","yAxisModel","isCategory","singleAxis","singleAxisModel","polar","polarModel","radiusAxisModel","findAxisModel","angleAxisModel","geo","parallel","parallelModel","dimensions","parallelAxisIndex","axisIndex","axisModel","axisDim","compatStyle","overwrite","compatLayoutProperties","LAYOUT_PROPERTIES","prop","COMPATITABLE_COMPONENTS","isTheme","seriesOpt","clipOverflow","clip","clockWise","clockwise","pointerColor","dataRange","visualMap","componentName","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","itemStyle","styleName","normalItemStyleOpt","normal","emphasisItemStyleOpt","emphasis","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","TEXT_STYLE_OPTIONS","compatEC3CommonStyles","processSeries","markPoint","markLine","markArea","nodes","edgeData","links","edges","categories","mpData","mlData","breadcrumb","levels","leaves","toArr","o","toObj","axes","axisName","axisOpt","axisPointer","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radar","radarOpt","geoOpt","regions","regionObj","toolbox","toolboxOpt","feature","featureOpt","legendModels","filterSelf","isSelected","samplers","average","frame","sum","isNaN","NaN","Infinity","isFinite","min","nearest","indexSampler","round","sampling","sampler","baseAxis","valueAxis","getOtherAxis","extent","getExtent","size","abs","rate","downSample","stackInfoMap","stack","stackInfoList","stackInfo","stackResultDimension","getCalculationInfo","stackedOverDimension","stackedDimension","stackedByDimension","isStackedByIndex","setCalculationInfo","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","dims","targetData","newData","v0","v1","byValue","stackedDataRawIndex","stackedOver","j","rawIndexOf","getByRawIndex","hostModel","numberUtil","formatUtil","Scale","helper","roundNumber","IntervalScale","_interval","_intervalPrecision","setExtent","thisExtent","_extent","parseFloat","unionExtent","other","getInterval","setInterval","interval","_niceExtent","getIntervalPrecision","getTicks","expandToNicedExtent","niceTickExtent","intervalPrecision","ticks","safeLimit","tick","lastNiceTick","getMinorTicks","splitNumber","minorTicks","nextTick","prevTick","minorTicksGroup","minorInterval","minorTick","getLabel","precision","getPrecisionSafe","niceTicks","minInterval","maxInterval","span","reverse","intervalScaleNiceTicks","niceExtent","expandSize","fixMax","fixMin","floor","ceil","create","scaleProto","intervalScaleProto","roundingErrorFix","mathFloor","mathCeil","mathPow","pow","mathLog","log","LogScale","base","apply","arguments","_originalScale","originalScale","originalExtent","powVal","__fixMin","fixRoundingError","__fixMax","scale","unionExtentFromData","getApproximateExtent","approxTickNum","quantity","err","originalVal","OrdinalMeta","OrdinalScale","ordinalMeta","_ordinalMeta","parse","getOrdinal","contain","rank","normalize","n","isBlank","getOrdinalMeta","noop","clazzUtil","setting","_setting","getSetting","_isBlank","setBlank","scaleHelper","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","bisect","a","lo","hi","mid","TimeScale","stepLvl","_stepLvl","date","Date","d","getFullYear","getMonth","getDate","approxInterval","scaleLevelsLen","scaleLevels","level","yearSpan","yearStep","nice","timezoneOffset","getTimezoneOffset","fixExtent","parseDate","clamp"],"sourceRoot":""}