{"version":3,"file":"js/chunk-vendors-8b27237c-legacy.b2af3df5.js","mappings":"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","sources":["webpack://i4proportal/./node_modules/echarts/lib/component/toolbox.js","webpack://i4proportal/./node_modules/echarts/lib/component/toolbox/ToolboxModel.js","webpack://i4proportal/./node_modules/echarts/lib/component/toolbox/ToolboxView.js","webpack://i4proportal/./node_modules/echarts/lib/component/toolbox/featureManager.js","webpack://i4proportal/./node_modules/echarts/lib/component/toolbox/feature/Brush.js","webpack://i4proportal/./node_modules/echarts/lib/component/toolbox/feature/DataView.js","webpack://i4proportal/./node_modules/echarts/lib/component/toolbox/feature/DataZoom.js","webpack://i4proportal/./node_modules/echarts/lib/component/toolbox/feature/MagicType.js","webpack://i4proportal/./node_modules/echarts/lib/component/toolbox/feature/Restore.js","webpack://i4proportal/./node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js","webpack://i4proportal/./node_modules/echarts/lib/component/tooltip.js","webpack://i4proportal/./node_modules/echarts/lib/component/tooltip/TooltipContent.js","webpack://i4proportal/./node_modules/echarts/lib/component/tooltip/TooltipModel.js","webpack://i4proportal/./node_modules/echarts/lib/component/tooltip/TooltipRichContent.js","webpack://i4proportal/./node_modules/echarts/lib/component/tooltip/TooltipView.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\nrequire(\"./toolbox/ToolboxModel\");\n\nrequire(\"./toolbox/ToolboxView\");\n\nrequire(\"./toolbox/feature/SaveAsImage\");\n\nrequire(\"./toolbox/feature/MagicType\");\n\nrequire(\"./toolbox/feature/DataView\");\n\nrequire(\"./toolbox/feature/DataZoom\");\n\nrequire(\"./toolbox/feature/Restore\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar featureManager = require(\"./featureManager\");\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 ToolboxModel = echarts.extendComponentModel({\n type: 'toolbox',\n layoutMode: {\n type: 'box',\n ignoreSize: true\n },\n optionUpdated: function () {\n ToolboxModel.superApply(this, 'optionUpdated', arguments);\n zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n var Feature = featureManager.get(featureName);\n Feature && zrUtil.merge(featureOpt, Feature.defaultOption);\n });\n },\n defaultOption: {\n show: true,\n z: 6,\n zlevel: 0,\n orient: 'horizontal',\n left: 'right',\n top: 'top',\n // right\n // bottom\n backgroundColor: 'transparent',\n borderColor: '#ccc',\n borderRadius: 0,\n borderWidth: 0,\n padding: 5,\n itemSize: 15,\n itemGap: 8,\n showTitle: true,\n iconStyle: {\n borderColor: '#666',\n color: 'none'\n },\n emphasis: {\n iconStyle: {\n borderColor: '#3E98C5'\n }\n },\n // textStyle: {},\n // feature\n tooltip: {\n show: false\n }\n }\n});\nvar _default = ToolboxModel;\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 echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar textContain = require(\"zrender/lib/contain/text\");\n\nvar featureManager = require(\"./featureManager\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Model = require(\"../../model/Model\");\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\nvar listComponentHelper = require(\"../helper/listComponent\");\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 = echarts.extendComponentView({\n type: 'toolbox',\n render: function (toolboxModel, ecModel, api, payload) {\n var group = this.group;\n group.removeAll();\n\n if (!toolboxModel.get('show')) {\n return;\n }\n\n var itemSize = +toolboxModel.get('itemSize');\n var featureOpts = toolboxModel.get('feature') || {};\n var features = this._features || (this._features = {});\n var featureNames = [];\n zrUtil.each(featureOpts, function (opt, name) {\n featureNames.push(name);\n });\n new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute(); // Keep for diff.\n\n this._featureNames = featureNames;\n\n function processFeature(newIndex, oldIndex) {\n var featureName = featureNames[newIndex];\n var oldName = featureNames[oldIndex];\n var featureOpt = featureOpts[featureName];\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n var feature; // FIX#11236, merge feature title from MagicType newOption. TODO: consider seriesIndex ?\n\n if (payload && payload.newTitle != null && payload.featureName === featureName) {\n featureOpt.title = payload.newTitle;\n }\n\n if (featureName && !oldName) {\n // Create\n if (isUserFeatureName(featureName)) {\n feature = {\n model: featureModel,\n onclick: featureModel.option.onclick,\n featureName: featureName\n };\n } else {\n var Feature = featureManager.get(featureName);\n\n if (!Feature) {\n return;\n }\n\n feature = new Feature(featureModel, ecModel, api);\n }\n\n features[featureName] = feature;\n } else {\n feature = features[oldName]; // If feature does not exsit.\n\n if (!feature) {\n return;\n }\n\n feature.model = featureModel;\n feature.ecModel = ecModel;\n feature.api = api;\n }\n\n if (!featureName && oldName) {\n feature.dispose && feature.dispose(ecModel, api);\n return;\n }\n\n if (!featureModel.get('show') || feature.unusable) {\n feature.remove && feature.remove(ecModel, api);\n return;\n }\n\n createIconPaths(featureModel, feature, featureName);\n\n featureModel.setIconStatus = function (iconName, status) {\n var option = this.option;\n var iconPaths = this.iconPaths;\n option.iconStatus = option.iconStatus || {};\n option.iconStatus[iconName] = status; // FIXME\n\n iconPaths[iconName] && iconPaths[iconName].trigger(status);\n };\n\n if (feature.render) {\n feature.render(featureModel, ecModel, api, payload);\n }\n }\n\n function createIconPaths(featureModel, feature, featureName) {\n var iconStyleModel = featureModel.getModel('iconStyle');\n var iconStyleEmphasisModel = featureModel.getModel('emphasis.iconStyle'); // If one feature has mutiple icon. they are orginaized as\n // {\n // icon: {\n // foo: '',\n // bar: ''\n // },\n // title: {\n // foo: '',\n // bar: ''\n // }\n // }\n\n var icons = feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n var titles = featureModel.get('title') || {};\n\n if (typeof icons === 'string') {\n var icon = icons;\n var title = titles;\n icons = {};\n titles = {};\n icons[featureName] = icon;\n titles[featureName] = title;\n }\n\n var iconPaths = featureModel.iconPaths = {};\n zrUtil.each(icons, function (iconStr, iconName) {\n var path = graphic.createIcon(iconStr, {}, {\n x: -itemSize / 2,\n y: -itemSize / 2,\n width: itemSize,\n height: itemSize\n });\n path.setStyle(iconStyleModel.getItemStyle());\n path.hoverStyle = iconStyleEmphasisModel.getItemStyle(); // Text position calculation\n\n path.setStyle({\n text: titles[iconName],\n textAlign: iconStyleEmphasisModel.get('textAlign'),\n textBorderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n textPadding: iconStyleEmphasisModel.get('textPadding'),\n textFill: null\n });\n var tooltipModel = toolboxModel.getModel('tooltip');\n\n if (tooltipModel && tooltipModel.get('show')) {\n path.attr('tooltip', zrUtil.extend({\n content: titles[iconName],\n formatter: tooltipModel.get('formatter', true) || function () {\n return titles[iconName];\n },\n formatterParams: {\n componentType: 'toolbox',\n name: iconName,\n title: titles[iconName],\n $vars: ['name', 'title']\n },\n position: tooltipModel.get('position', true) || 'bottom'\n }, tooltipModel.option));\n }\n\n graphic.setHoverStyle(path);\n\n if (toolboxModel.get('showTitle')) {\n path.__title = titles[iconName];\n path.on('mouseover', function () {\n // Should not reuse above hoverStyle, which might be modified.\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n var defaultTextPosition = toolboxModel.get('orient') === 'vertical' ? toolboxModel.get('right') == null ? 'right' : 'left' : toolboxModel.get('bottom') == null ? 'bottom' : 'top';\n path.setStyle({\n textFill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n textBackgroundColor: iconStyleEmphasisModel.get('textBackgroundColor'),\n textPosition: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n });\n }).on('mouseout', function () {\n path.setStyle({\n textFill: null,\n textBackgroundColor: null\n });\n });\n }\n\n path.trigger(featureModel.get('iconStatus.' + iconName) || 'normal');\n group.add(path);\n path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n iconPaths[iconName] = path;\n });\n }\n\n listComponentHelper.layout(group, toolboxModel, api); // Render background after group is layout\n // FIXME\n\n group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel)); // Adjust icon title positions to avoid them out of screen\n\n group.eachChild(function (icon) {\n var titleText = icon.__title;\n var hoverStyle = icon.hoverStyle; // May be background element\n\n if (hoverStyle && titleText) {\n var rect = textContain.getBoundingRect(titleText, textContain.makeFont(hoverStyle));\n var offsetX = icon.position[0] + group.position[0];\n var offsetY = icon.position[1] + group.position[1] + itemSize;\n var needPutOnTop = false;\n\n if (offsetY + rect.height > api.getHeight()) {\n hoverStyle.textPosition = 'top';\n needPutOnTop = true;\n }\n\n var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n if (offsetX + rect.width / 2 > api.getWidth()) {\n hoverStyle.textPosition = ['100%', topOffset];\n hoverStyle.textAlign = 'right';\n } else if (offsetX - rect.width / 2 < 0) {\n hoverStyle.textPosition = [0, topOffset];\n hoverStyle.textAlign = 'left';\n }\n }\n });\n },\n updateView: function (toolboxModel, ecModel, api, payload) {\n zrUtil.each(this._features, function (feature) {\n feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n });\n },\n // updateLayout: function (toolboxModel, ecModel, api, payload) {\n // zrUtil.each(this._features, function (feature) {\n // feature.updateLayout && feature.updateLayout(feature.model, ecModel, api, payload);\n // });\n // },\n remove: function (ecModel, api) {\n zrUtil.each(this._features, function (feature) {\n feature.remove && feature.remove(ecModel, api);\n });\n this.group.removeAll();\n },\n dispose: function (ecModel, api) {\n zrUtil.each(this._features, function (feature) {\n feature.dispose && feature.dispose(ecModel, api);\n });\n }\n});\n\nfunction isUserFeatureName(featureName) {\n return featureName.indexOf('my') === 0;\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 features = {};\n\nfunction register(name, ctor) {\n features[name] = ctor;\n}\n\nfunction get(name) {\n return features[name];\n}\n\nexports.register = register;\nexports.get = get;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 featureManager = require(\"../featureManager\");\n\nvar lang = require(\"../../../lang\");\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 brushLang = lang.toolbox.brush;\n\nfunction Brush(model, ecModel, api) {\n this.model = model;\n this.ecModel = ecModel;\n this.api = api;\n /**\n * @private\n * @type {string}\n */\n\n this._brushType;\n /**\n * @private\n * @type {string}\n */\n\n this._brushMode;\n}\n\nBrush.defaultOption = {\n show: true,\n type: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'],\n icon: {\n /* eslint-disable */\n rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',\n // jshint ignore:line\n polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',\n // jshint ignore:line\n lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',\n // jshint ignore:line\n lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',\n // jshint ignore:line\n keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',\n // jshint ignore:line\n clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2' // jshint ignore:line\n\n /* eslint-enable */\n\n },\n // `rect`, `polygon`, `lineX`, `lineY`, `keep`, `clear`\n title: zrUtil.clone(brushLang.title)\n};\nvar proto = Brush.prototype; // proto.updateLayout = function (featureModel, ecModel, api) {\n\n/* eslint-disable */\n\nproto.render =\n/* eslint-enable */\nproto.updateView = function (featureModel, ecModel, api) {\n var brushType;\n var brushMode;\n var isBrushed;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n brushType = brushModel.brushType;\n brushMode = brushModel.brushOption.brushMode || 'single';\n isBrushed |= brushModel.areas.length;\n });\n this._brushType = brushType;\n this._brushMode = brushMode;\n zrUtil.each(featureModel.get('type', true), function (type) {\n featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n });\n};\n\nproto.getIcons = function () {\n var model = this.model;\n var availableIcons = model.get('icon', true);\n var icons = {};\n zrUtil.each(model.get('type', true), function (type) {\n if (availableIcons[type]) {\n icons[type] = availableIcons[type];\n }\n });\n return icons;\n};\n\nproto.onclick = function (ecModel, api, type) {\n var brushType = this._brushType;\n var brushMode = this._brushMode;\n\n if (type === 'clear') {\n // Trigger parallel action firstly\n api.dispatchAction({\n type: 'axisAreaSelect',\n intervals: []\n });\n api.dispatchAction({\n type: 'brush',\n command: 'clear',\n // Clear all areas of all brush components.\n areas: []\n });\n } else {\n api.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'brush',\n brushOption: {\n brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n }\n });\n }\n};\n\nfeatureManager.register('brush', Brush);\nvar _default = Brush;\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 echarts = require(\"../../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar eventTool = require(\"zrender/lib/core/event\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\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 dataViewLang = lang.toolbox.dataView;\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n/**\n * Group series into two types\n * 1. on category axis, like line, bar\n * 2. others, like scatter, pie\n * @param {module:echarts/model/Global} ecModel\n * @return {Object}\n * @inner\n */\n\nfunction groupSeries(ecModel) {\n var seriesGroupByCategoryAxis = {};\n var otherSeries = [];\n var meta = [];\n ecModel.eachRawSeries(function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n var baseAxis = coordSys.getBaseAxis();\n\n if (baseAxis.type === 'category') {\n var key = baseAxis.dim + '_' + baseAxis.index;\n\n if (!seriesGroupByCategoryAxis[key]) {\n seriesGroupByCategoryAxis[key] = {\n categoryAxis: baseAxis,\n valueAxis: coordSys.getOtherAxis(baseAxis),\n series: []\n };\n meta.push({\n axisDim: baseAxis.dim,\n axisIndex: baseAxis.index\n });\n }\n\n seriesGroupByCategoryAxis[key].series.push(seriesModel);\n } else {\n otherSeries.push(seriesModel);\n }\n } else {\n otherSeries.push(seriesModel);\n }\n });\n return {\n seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n other: otherSeries,\n meta: meta\n };\n}\n/**\n * Assemble content of series on cateogory axis\n * @param {Array.} series\n * @return {string}\n * @inner\n */\n\n\nfunction assembleSeriesWithCategoryAxis(series) {\n var tables = [];\n zrUtil.each(series, function (group, key) {\n var categoryAxis = group.categoryAxis;\n var valueAxis = group.valueAxis;\n var valueAxisDim = valueAxis.dim;\n var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n return series.name;\n }));\n var columns = [categoryAxis.model.getCategories()];\n zrUtil.each(group.series, function (series) {\n var rawData = series.getRawData();\n columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\n return val;\n }));\n }); // Assemble table content\n\n var lines = [headers.join(ITEM_SPLITER)];\n\n for (var i = 0; i < columns[0].length; i++) {\n var items = [];\n\n for (var j = 0; j < columns.length; j++) {\n items.push(columns[j][i]);\n }\n\n lines.push(items.join(ITEM_SPLITER));\n }\n\n tables.push(lines.join('\\n'));\n });\n return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n/**\n * Assemble content of other series\n * @param {Array.} series\n * @return {string}\n * @inner\n */\n\n\nfunction assembleOtherSeries(series) {\n return zrUtil.map(series, function (series) {\n var data = series.getRawData();\n var lines = [series.name];\n var vals = [];\n data.each(data.dimensions, function () {\n var argLen = arguments.length;\n var dataIndex = arguments[argLen - 1];\n var name = data.getName(dataIndex);\n\n for (var i = 0; i < argLen - 1; i++) {\n vals[i] = arguments[i];\n }\n\n lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n });\n return lines.join('\\n');\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n/**\n * @param {module:echarts/model/Global}\n * @return {Object}\n * @inner\n */\n\n\nfunction getContentFromModel(ecModel) {\n var result = groupSeries(ecModel);\n return {\n value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n return str.replace(/[\\n\\t\\s]/g, '');\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n meta: result.meta\n };\n}\n\nfunction trim(str) {\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n/**\n * If a block is tsv format\n */\n\n\nfunction isTSVFormat(block) {\n // Simple method to find out if a block is tsv format\n var firstLine = block.slice(0, block.indexOf('\\n'));\n\n if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n return true;\n }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n/**\n * @param {string} tsv\n * @return {Object}\n */\n\nfunction parseTSVContents(tsv) {\n var tsvLines = tsv.split(/\\n+/g);\n var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n var categories = [];\n var series = zrUtil.map(headers, function (header) {\n return {\n name: header,\n data: []\n };\n });\n\n for (var i = 0; i < tsvLines.length; i++) {\n var items = trim(tsvLines[i]).split(itemSplitRegex);\n categories.push(items.shift());\n\n for (var j = 0; j < items.length; j++) {\n series[j] && (series[j].data[i] = items[j]);\n }\n }\n\n return {\n series: series,\n categories: categories\n };\n}\n/**\n * @param {string} str\n * @return {Array.}\n * @inner\n */\n\n\nfunction parseListContents(str) {\n var lines = str.split(/\\n+/g);\n var seriesName = trim(lines.shift());\n var data = [];\n\n for (var i = 0; i < lines.length; i++) {\n // if line is empty, ignore it.\n // there is a case that a user forgot to delete `\\n`.\n var line = trim(lines[i]);\n\n if (!line) {\n continue;\n }\n\n var items = line.split(itemSplitRegex);\n var name = '';\n var value;\n var hasName = false;\n\n if (isNaN(items[0])) {\n // First item is name\n hasName = true;\n name = items[0];\n items = items.slice(1);\n data[i] = {\n name: name,\n value: []\n };\n value = data[i].value;\n } else {\n value = data[i] = [];\n }\n\n for (var j = 0; j < items.length; j++) {\n value.push(+items[j]);\n }\n\n if (value.length === 1) {\n hasName ? data[i].value = value[0] : data[i] = value[0];\n }\n }\n\n return {\n name: seriesName,\n data: data\n };\n}\n/**\n * @param {string} str\n * @param {Array.} blockMetaList\n * @return {Object}\n * @inner\n */\n\n\nfunction parseContents(str, blockMetaList) {\n var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n var newOption = {\n series: []\n };\n zrUtil.each(blocks, function (block, idx) {\n if (isTSVFormat(block)) {\n var result = parseTSVContents(block);\n var blockMeta = blockMetaList[idx];\n var axisKey = blockMeta.axisDim + 'Axis';\n\n if (blockMeta) {\n newOption[axisKey] = newOption[axisKey] || [];\n newOption[axisKey][blockMeta.axisIndex] = {\n data: result.categories\n };\n newOption.series = newOption.series.concat(result.series);\n }\n } else {\n var result = parseListContents(block);\n newOption.series.push(result);\n }\n });\n return newOption;\n}\n/**\n * @alias {module:echarts/component/toolbox/feature/DataView}\n * @constructor\n * @param {module:echarts/model/Model} model\n */\n\n\nfunction DataView(model) {\n this._dom = null;\n this.model = model;\n}\n\nDataView.defaultOption = {\n show: true,\n readOnly: false,\n optionToContent: null,\n contentToOption: null,\n icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n title: zrUtil.clone(dataViewLang.title),\n lang: zrUtil.clone(dataViewLang.lang),\n backgroundColor: '#fff',\n textColor: '#000',\n textareaColor: '#fff',\n textareaBorderColor: '#333',\n buttonColor: '#c23531',\n buttonTextColor: '#fff'\n};\n\nDataView.prototype.onclick = function (ecModel, api) {\n var container = api.getDom();\n var model = this.model;\n\n if (this._dom) {\n container.removeChild(this._dom);\n }\n\n var root = document.createElement('div');\n root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\n root.style.backgroundColor = model.get('backgroundColor') || '#fff'; // Create elements\n\n var header = document.createElement('h4');\n var lang = model.get('lang') || [];\n header.innerHTML = lang[0] || model.get('title');\n header.style.cssText = 'margin: 10px 20px;';\n header.style.color = model.get('textColor');\n var viewMain = document.createElement('div');\n var textarea = document.createElement('textarea');\n viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\n var optionToContent = model.get('optionToContent');\n var contentToOption = model.get('contentToOption');\n var result = getContentFromModel(ecModel);\n\n if (typeof optionToContent === 'function') {\n var htmlOrDom = optionToContent(api.getOption());\n\n if (typeof htmlOrDom === 'string') {\n viewMain.innerHTML = htmlOrDom;\n } else if (zrUtil.isDom(htmlOrDom)) {\n viewMain.appendChild(htmlOrDom);\n }\n } else {\n // Use default textarea\n viewMain.appendChild(textarea);\n textarea.readOnly = model.get('readOnly');\n textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\n textarea.style.color = model.get('textColor');\n textarea.style.borderColor = model.get('textareaBorderColor');\n textarea.style.backgroundColor = model.get('textareaColor');\n textarea.value = result.value;\n }\n\n var blockMetaList = result.meta;\n var buttonContainer = document.createElement('div');\n buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\n var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n var closeButton = document.createElement('div');\n var refreshButton = document.createElement('div');\n buttonStyle += ';background-color:' + model.get('buttonColor');\n buttonStyle += ';color:' + model.get('buttonTextColor');\n var self = this;\n\n function close() {\n container.removeChild(root);\n self._dom = null;\n }\n\n eventTool.addEventListener(closeButton, 'click', close);\n eventTool.addEventListener(refreshButton, 'click', function () {\n var newOption;\n\n try {\n if (typeof contentToOption === 'function') {\n newOption = contentToOption(viewMain, api.getOption());\n } else {\n newOption = parseContents(textarea.value, blockMetaList);\n }\n } catch (e) {\n close();\n throw new Error('Data view format error ' + e);\n }\n\n if (newOption) {\n api.dispatchAction({\n type: 'changeDataView',\n newOption: newOption\n });\n }\n\n close();\n });\n closeButton.innerHTML = lang[1];\n refreshButton.innerHTML = lang[2];\n refreshButton.style.cssText = buttonStyle;\n closeButton.style.cssText = buttonStyle;\n !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n buttonContainer.appendChild(closeButton);\n root.appendChild(header);\n root.appendChild(viewMain);\n root.appendChild(buttonContainer);\n viewMain.style.height = container.clientHeight - 80 + 'px';\n container.appendChild(root);\n this._dom = root;\n};\n\nDataView.prototype.remove = function (ecModel, api) {\n this._dom && api.getDom().removeChild(this._dom);\n};\n\nDataView.prototype.dispose = function (ecModel, api) {\n this.remove(ecModel, api);\n};\n/**\n * @inner\n */\n\n\nfunction tryMergeDataOption(newData, originalData) {\n return zrUtil.map(newData, function (newVal, idx) {\n var original = originalData && originalData[idx];\n\n if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal);\n\n if (!newValIsObject) {\n newVal = {\n value: newVal\n };\n } // original data has name but new data has no name\n\n\n var shouldDeleteName = original.name != null && newVal.name == null; // Original data has option\n\n newVal = zrUtil.defaults(newVal, original);\n shouldDeleteName && delete newVal.name;\n return newVal;\n } else {\n return newVal;\n }\n });\n}\n\nfeatureManager.register('dataView', DataView);\necharts.registerAction({\n type: 'changeDataView',\n event: 'dataViewChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n var newSeriesOptList = [];\n zrUtil.each(payload.newOption.series, function (seriesOpt) {\n var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n if (!seriesModel) {\n // New created series\n // Geuss the series type\n newSeriesOptList.push(zrUtil.extend({\n // Default is scatter\n type: 'scatter'\n }, seriesOpt));\n } else {\n var originalData = seriesModel.get('data');\n newSeriesOptList.push({\n name: seriesOpt.name,\n data: tryMergeDataOption(seriesOpt.data, originalData)\n });\n }\n });\n ecModel.mergeOption(zrUtil.defaults({\n series: newSeriesOptList\n }, payload.newOption));\n});\nvar _default = DataView;\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 echarts = require(\"../../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BrushController = require(\"../../helper/BrushController\");\n\nvar BrushTargetManager = require(\"../../helper/BrushTargetManager\");\n\nvar history = require(\"../../dataZoom/history\");\n\nvar sliderMove = require(\"../../helper/sliderMove\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\n\nrequire(\"../../dataZoomSelect\");\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// Use dataZoomSelect\nvar dataZoomLang = lang.toolbox.dataZoom;\nvar each = zrUtil.each; // Spectial component id start with \\0ec\\0, see echarts/model/Global.js~hasInnerId\n\nvar DATA_ZOOM_ID_BASE = '\\0_ec_\\0toolbox-dataZoom_';\n\nfunction DataZoom(model, ecModel, api) {\n /**\n * @private\n * @type {module:echarts/component/helper/BrushController}\n */\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n /**\n * @private\n * @type {boolean}\n */\n\n this._isZoomActive;\n}\n\nDataZoom.defaultOption = {\n show: true,\n filterMode: 'filter',\n // Icon group\n icon: {\n zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n },\n // `zoom`, `back`\n title: zrUtil.clone(dataZoomLang.title),\n brushStyle: {\n borderWidth: 0,\n color: 'rgba(0,0,0,0.2)'\n }\n};\nvar proto = DataZoom.prototype;\n\nproto.render = function (featureModel, ecModel, api, payload) {\n this.model = featureModel;\n this.ecModel = ecModel;\n this.api = api;\n updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n updateBackBtnStatus(featureModel, ecModel);\n};\n\nproto.onclick = function (ecModel, api, type) {\n handlers[type].call(this);\n};\n\nproto.remove = function (ecModel, api) {\n this._brushController.unmount();\n};\n\nproto.dispose = function (ecModel, api) {\n this._brushController.dispose();\n};\n/**\n * @private\n */\n\n\nvar handlers = {\n zoom: function () {\n var nextActive = !this._isZoomActive;\n this.api.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: nextActive\n });\n },\n back: function () {\n this._dispatchZoomAction(history.pop(this.ecModel));\n }\n};\n/**\n * @private\n */\n\nproto._onBrush = function (areas, opt) {\n if (!opt.isEnd || !areas.length) {\n return;\n }\n\n var snapshot = {};\n var ecModel = this.ecModel;\n\n this._brushController.updateCovers([]); // remove cover\n\n\n var brushTargetManager = new BrushTargetManager(retrieveAxisSetting(this.model.option), ecModel, {\n include: ['grid']\n });\n brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n if (coordSys.type !== 'cartesian2d') {\n return;\n }\n\n var brushType = area.brushType;\n\n if (brushType === 'rect') {\n setBatch('x', coordSys, coordRange[0]);\n setBatch('y', coordSys, coordRange[1]);\n } else {\n setBatch({\n lineX: 'x',\n lineY: 'y'\n }[brushType], coordSys, coordRange);\n }\n });\n history.push(ecModel, snapshot);\n\n this._dispatchZoomAction(snapshot);\n\n function setBatch(dimName, coordSys, minMax) {\n var axis = coordSys.getAxis(dimName);\n var axisModel = axis.model;\n var dataZoomModel = findDataZoom(dimName, axisModel, ecModel); // Restrict range.\n\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n }\n\n dataZoomModel && (snapshot[dataZoomModel.id] = {\n dataZoomId: dataZoomModel.id,\n startValue: minMax[0],\n endValue: minMax[1]\n });\n }\n\n function findDataZoom(dimName, axisModel, ecModel) {\n var found;\n ecModel.eachComponent({\n mainType: 'dataZoom',\n subType: 'select'\n }, function (dzModel) {\n var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n has && (found = dzModel);\n });\n return found;\n }\n};\n/**\n * @private\n */\n\n\nproto._dispatchZoomAction = function (snapshot) {\n var batch = []; // Convert from hash map to array.\n\n each(snapshot, function (batchItem, dataZoomId) {\n batch.push(zrUtil.clone(batchItem));\n });\n batch.length && this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n batch: batch\n });\n};\n\nfunction retrieveAxisSetting(option) {\n var setting = {}; // Compatible with previous setting: null => all axis, false => no axis.\n\n zrUtil.each(['xAxisIndex', 'yAxisIndex'], function (name) {\n setting[name] = option[name];\n setting[name] == null && (setting[name] = 'all');\n (setting[name] === false || setting[name] === 'none') && (setting[name] = []);\n });\n return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n var zoomActive = view._isZoomActive;\n\n if (payload && payload.type === 'takeGlobalCursor') {\n zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n }\n\n view._isZoomActive = zoomActive;\n featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n var brushTargetManager = new BrushTargetManager(retrieveAxisSetting(featureModel.option), ecModel, {\n include: ['grid']\n });\n\n view._brushController.setPanels(brushTargetManager.makePanelOpts(api, function (targetInfo) {\n return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n })).enableBrush(zoomActive ? {\n brushType: 'auto',\n brushStyle: featureModel.getModel('brushStyle').getItemStyle()\n } : false);\n}\n\nfeatureManager.register('dataZoom', DataZoom); // Create special dataZoom option for select\n// FIXME consider the case of merge option, where axes options are not exists.\n\necharts.registerPreprocessor(function (option) {\n if (!option) {\n return;\n }\n\n var dataZoomOpts = option.dataZoom || (option.dataZoom = []);\n\n if (!zrUtil.isArray(dataZoomOpts)) {\n option.dataZoom = dataZoomOpts = [dataZoomOpts];\n }\n\n var toolboxOpt = option.toolbox;\n\n if (toolboxOpt) {\n // Assume there is only one toolbox\n if (zrUtil.isArray(toolboxOpt)) {\n toolboxOpt = toolboxOpt[0];\n }\n\n if (toolboxOpt && toolboxOpt.feature) {\n var dataZoomOpt = toolboxOpt.feature.dataZoom; // FIXME: If add dataZoom when setOption in merge mode,\n // no axis info to be added. See `test/dataZoom-extreme.html`\n\n addForAxis('xAxis', dataZoomOpt);\n addForAxis('yAxis', dataZoomOpt);\n }\n }\n\n function addForAxis(axisName, dataZoomOpt) {\n if (!dataZoomOpt) {\n return;\n } // Try not to modify model, because it is not merged yet.\n\n\n var axisIndicesName = axisName + 'Index';\n var givenAxisIndices = dataZoomOpt[axisIndicesName];\n\n if (givenAxisIndices != null && givenAxisIndices !== 'all' && !zrUtil.isArray(givenAxisIndices)) {\n givenAxisIndices = givenAxisIndices === false || givenAxisIndices === 'none' ? [] : [givenAxisIndices];\n }\n\n forEachComponent(axisName, function (axisOpt, axisIndex) {\n if (givenAxisIndices != null && givenAxisIndices !== 'all' && zrUtil.indexOf(givenAxisIndices, axisIndex) === -1) {\n return;\n }\n\n var newOpt = {\n type: 'select',\n $fromToolbox: true,\n // Default to be filter\n filterMode: dataZoomOpt.filterMode || 'filter',\n // Id for merge mapping.\n id: DATA_ZOOM_ID_BASE + axisName + axisIndex\n }; // FIXME\n // Only support one axis now.\n\n newOpt[axisIndicesName] = axisIndex;\n dataZoomOpts.push(newOpt);\n });\n }\n\n function forEachComponent(mainType, cb) {\n var opts = option[mainType];\n\n if (!zrUtil.isArray(opts)) {\n opts = opts ? [opts] : [];\n }\n\n each(opts, cb);\n }\n});\nvar _default = DataZoom;\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 echarts = require(\"../../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\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 magicTypeLang = lang.toolbox.magicType;\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\n\nfunction MagicType(model) {\n this.model = model;\n}\n\nMagicType.defaultOption = {\n show: true,\n type: [],\n // Icon group\n icon: {\n /* eslint-disable */\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z' // jshint ignore:line\n\n /* eslint-enable */\n\n },\n // `line`, `bar`, `stack`, `tiled`\n title: zrUtil.clone(magicTypeLang.title),\n option: {},\n seriesIndex: {}\n};\nvar proto = MagicType.prototype;\n\nproto.getIcons = function () {\n var model = this.model;\n var availableIcons = model.get('icon');\n var icons = {};\n zrUtil.each(model.get('type'), function (type) {\n if (availableIcons[type]) {\n icons[type] = availableIcons[type];\n }\n });\n return icons;\n};\n\nvar seriesOptGenreator = {\n 'line': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'bar') {\n return zrUtil.merge({\n id: seriesId,\n type: 'line',\n // Preserve data related option\n data: seriesModel.get('data'),\n stack: seriesModel.get('stack'),\n markPoint: seriesModel.get('markPoint'),\n markLine: seriesModel.get('markLine')\n }, model.get('option.line') || {}, true);\n }\n },\n 'bar': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'line') {\n return zrUtil.merge({\n id: seriesId,\n type: 'bar',\n // Preserve data related option\n data: seriesModel.get('data'),\n stack: seriesModel.get('stack'),\n markPoint: seriesModel.get('markPoint'),\n markLine: seriesModel.get('markLine')\n }, model.get('option.bar') || {}, true);\n }\n },\n 'stack': function (seriesType, seriesId, seriesModel, model) {\n var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n if (seriesType === 'line' || seriesType === 'bar') {\n model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n return zrUtil.merge({\n id: seriesId,\n stack: isStack ? '' : INNER_STACK_KEYWORD\n }, model.get('option.stack') || {}, true);\n }\n }\n};\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nproto.onclick = function (ecModel, api, type) {\n var model = this.model;\n var seriesIndex = model.get('seriesIndex.' + type); // Not supported magicType\n\n if (!seriesOptGenreator[type]) {\n return;\n }\n\n var newOption = {\n series: []\n };\n\n var generateNewSeriesTypes = function (seriesModel) {\n var seriesType = seriesModel.subType;\n var seriesId = seriesModel.id;\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n if (newSeriesOpt) {\n // PENDING If merge original option?\n zrUtil.defaults(newSeriesOpt, seriesModel.option);\n newOption.series.push(newSeriesOpt);\n } // Modify boundaryGap\n\n\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n if (categoryAxis) {\n var axisDim = categoryAxis.dim;\n var axisType = axisDim + 'Axis';\n var axisModel = ecModel.queryComponents({\n mainType: axisType,\n index: seriesModel.get(name + 'Index'),\n id: seriesModel.get(name + 'Id')\n })[0];\n var axisIndex = axisModel.componentIndex;\n newOption[axisType] = newOption[axisType] || [];\n\n for (var i = 0; i <= axisIndex; i++) {\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n }\n\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n }\n }\n };\n\n zrUtil.each(radioTypes, function (radio) {\n if (zrUtil.indexOf(radio, type) >= 0) {\n zrUtil.each(radio, function (item) {\n model.setIconStatus(item, 'normal');\n });\n }\n });\n model.setIconStatus(type, 'emphasis');\n ecModel.eachComponent({\n mainType: 'series',\n query: seriesIndex == null ? null : {\n seriesIndex: seriesIndex\n }\n }, generateNewSeriesTypes);\n var newTitle; // Change title of stack\n\n if (type === 'stack') {\n var isStack = newOption.series && newOption.series[0] && newOption.series[0].stack === INNER_STACK_KEYWORD;\n newTitle = isStack ? zrUtil.merge({\n stack: magicTypeLang.title.tiled\n }, magicTypeLang.title) : zrUtil.clone(magicTypeLang.title);\n }\n\n api.dispatchAction({\n type: 'changeMagicType',\n currentType: type,\n newOption: newOption,\n newTitle: newTitle,\n featureName: 'magicType'\n });\n};\n\necharts.registerAction({\n type: 'changeMagicType',\n event: 'magicTypeChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n ecModel.mergeOption(payload.newOption);\n});\nfeatureManager.register('magicType', MagicType);\nvar _default = MagicType;\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 echarts = require(\"../../../echarts\");\n\nvar history = require(\"../../dataZoom/history\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\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 restoreLang = lang.toolbox.restore;\n\nfunction Restore(model) {\n this.model = model;\n}\n\nRestore.defaultOption = {\n show: true,\n\n /* eslint-disable */\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n\n /* eslint-enable */\n title: restoreLang.title\n};\nvar proto = Restore.prototype;\n\nproto.onclick = function (ecModel, api, type) {\n history.clear(ecModel);\n api.dispatchAction({\n type: 'restore',\n from: this.uid\n });\n};\n\nfeatureManager.register('restore', Restore);\necharts.registerAction({\n type: 'restore',\n event: 'restore',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n ecModel.resetOption('recreate');\n});\nvar _default = Restore;\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 env = require(\"zrender/lib/core/env\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\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/* global Uint8Array */\nvar saveAsImageLang = lang.toolbox.saveAsImage;\n\nfunction SaveAsImage(model) {\n this.model = model;\n}\n\nSaveAsImage.defaultOption = {\n show: true,\n icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n title: saveAsImageLang.title,\n type: 'png',\n // Default use option.backgroundColor\n // backgroundColor: '#fff',\n connectedBackgroundColor: '#fff',\n name: '',\n excludeComponents: ['toolbox'],\n pixelRatio: 1,\n lang: saveAsImageLang.lang.slice()\n};\nSaveAsImage.prototype.unusable = !env.canvasSupported;\nvar proto = SaveAsImage.prototype;\n\nproto.onclick = function (ecModel, api) {\n var model = this.model;\n var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n var isSvg = api.getZr().painter.getType() === 'svg';\n var type = isSvg ? 'svg' : model.get('type', true) || 'png';\n var url = api.getConnectedDataURL({\n type: type,\n backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n connectedBackgroundColor: model.get('connectedBackgroundColor'),\n excludeComponents: model.get('excludeComponents'),\n pixelRatio: model.get('pixelRatio')\n }); // Chrome and Firefox\n\n if (typeof MouseEvent === 'function' && !env.browser.ie && !env.browser.edge) {\n var $a = document.createElement('a');\n $a.download = title + '.' + type;\n $a.target = '_blank';\n $a.href = url;\n var evt = new MouseEvent('click', {\n // some micro front-end framework, window maybe is a Proxy\n view: document.defaultView,\n bubbles: true,\n cancelable: false\n });\n $a.dispatchEvent(evt);\n } // IE\n else {\n if (window.navigator.msSaveOrOpenBlob) {\n var bstr = atob(url.split(',')[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n var blob = new Blob([u8arr]);\n window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);\n } else {\n var lang = model.get('lang');\n var html = '' + '' + '' + '';\n var tab = window.open();\n tab.document.write(html);\n }\n }\n};\n\nfeatureManager.register('saveAsImage', SaveAsImage);\nvar _default = SaveAsImage;\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 echarts = require(\"../echarts\");\n\nrequire(\"./axisPointer\");\n\nrequire(\"./tooltip/TooltipModel\");\n\nrequire(\"./tooltip/TooltipView\");\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// FIXME Better way to pack data in graphic element\n\n/**\n * @action\n * @property {string} type\n * @property {number} seriesIndex\n * @property {number} dataIndex\n * @property {number} [x]\n * @property {number} [y]\n */\necharts.registerAction({\n type: 'showTip',\n event: 'showTip',\n update: 'tooltip:manuallyShowTip'\n}, // noop\nfunction () {});\necharts.registerAction({\n type: 'hideTip',\n event: 'hideTip',\n update: 'tooltip:manuallyHideTip'\n}, // noop\nfunction () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 zrColor = require(\"zrender/lib/tool/color\");\n\nvar eventUtil = require(\"zrender/lib/core/event\");\n\nvar domUtil = require(\"zrender/lib/core/dom\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar formatUtil = require(\"../../util/format\");\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 toCamelCase = formatUtil.toCamelCase;\nvar vendors = ['', '-webkit-', '-moz-', '-o-'];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n/**\n * @param {number} duration\n * @return {string}\n * @inner\n */\n\nfunction assembleTransition(duration) {\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n var transitionText = 'left ' + duration + 's ' + transitionCurve + ',' + 'top ' + duration + 's ' + transitionCurve;\n return zrUtil.map(vendors, function (vendorPrefix) {\n return vendorPrefix + 'transition:' + transitionText;\n }).join(';');\n}\n/**\n * @param {Object} textStyle\n * @return {string}\n * @inner\n */\n\n\nfunction assembleFont(textStyleModel) {\n var cssText = [];\n var fontSize = textStyleModel.get('fontSize');\n var color = textStyleModel.getTextColor();\n color && cssText.push('color:' + color);\n cssText.push('font:' + textStyleModel.getFont());\n var lineHeight = textStyleModel.get('lineHeight');\n\n if (lineHeight == null) {\n lineHeight = Math.round(fontSize * 3 / 2);\n }\n\n fontSize && cssText.push('line-height:' + lineHeight + 'px');\n var shadowColor = textStyleModel.get('textShadowColor');\n var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n each(['decoration', 'align'], function (name) {\n var val = textStyleModel.get(name);\n val && cssText.push('text-' + name + ':' + val);\n });\n return cssText.join(';');\n}\n/**\n * @param {Object} tooltipModel\n * @return {string}\n * @inner\n */\n\n\nfunction assembleCssText(tooltipModel) {\n var cssText = [];\n var transitionDuration = tooltipModel.get('transitionDuration');\n var backgroundColor = tooltipModel.get('backgroundColor');\n var textStyleModel = tooltipModel.getModel('textStyle');\n var padding = tooltipModel.get('padding'); // Animation transition. Do not animate when transitionDuration is 0.\n\n transitionDuration && cssText.push(assembleTransition(transitionDuration));\n\n if (backgroundColor) {\n if (env.canvasSupported) {\n cssText.push('background-Color:' + backgroundColor);\n } else {\n // for ie\n cssText.push('background-Color:#' + zrColor.toHex(backgroundColor));\n cssText.push('filter:alpha(opacity=70)');\n }\n } // Border style\n\n\n each(['width', 'color', 'radius'], function (name) {\n var borderName = 'border-' + name;\n var camelCase = toCamelCase(borderName);\n var val = tooltipModel.get(camelCase);\n val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n }); // Text style\n\n cssText.push(assembleFont(textStyleModel)); // Padding\n\n if (padding != null) {\n cssText.push('padding:' + formatUtil.normalizeCssArray(padding).join('px ') + 'px');\n }\n\n return cssText.join(';') + ';';\n} // If not able to make, do not modify the input `out`.\n\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n var zrPainter = zr && zr.painter;\n\n if (appendToBody) {\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n if (zrViewportRoot) {\n // Some APPs might use scale on body, so we support CSS transform here.\n domUtil.transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n }\n } else {\n out[0] = zrX;\n out[1] = zrY; // xy should be based on canvas root. But tooltipContent is\n // the sibling of canvas root. So padding of ec container\n // should be considered here.\n\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n if (viewportRootOffset) {\n out[0] += viewportRootOffset.offsetLeft;\n out[1] += viewportRootOffset.offsetTop;\n }\n }\n\n out[2] = out[0] / zr.getWidth(); // The ratio of left to width\n\n out[3] = out[1] / zr.getHeight(); // The ratio of top to height\n}\n/**\n * @alias module:echarts/component/tooltip/TooltipContent\n * @param {HTMLElement} container\n * @param {ExtensionAPI} api\n * @param {Object} [opt]\n * @param {boolean} [opt.appendToBody]\n * `false`: the DOM element will be inside the container. Default value.\n * `true`: the DOM element will be appended to HTML body, which avoid\n * some overflow clip but intrude outside of the container.\n * @constructor\n */\n\n\nfunction TooltipContent(container, api, opt) {\n if (env.wxa) {\n return null;\n }\n\n var el = document.createElement('div');\n el.domBelongToZr = true;\n this.el = el;\n var zr = this._zr = api.getZr();\n var appendToBody = this._appendToBody = opt && opt.appendToBody;\n this._styleCoord = [0, 0, 0, 0]; // [left, top, left/width, top/height]\n\n makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n if (appendToBody) {\n document.body.appendChild(el);\n } else {\n container.appendChild(el);\n }\n\n this._container = container;\n this._show = false;\n /**\n * @private\n */\n\n this._hideTimeout; // FIXME\n // Is it needed to trigger zr event manually if\n // the browser do not support `pointer-events: none`.\n\n var self = this;\n\n el.onmouseenter = function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n\n self._inContent = true;\n };\n\n el.onmousemove = function (e) {\n e = e || window.event;\n\n if (!self._enterable) {\n // `pointer-events: none` is set to tooltip content div\n // if `enterable` is set as `false`, and `el.onmousemove`\n // can not be triggered. But in browser that do not\n // support `pointer-events`, we need to do this:\n // Try trigger zrender event to avoid mouse\n // in and out shape too frequently\n var handler = zr.handler;\n var zrViewportRoot = zr.painter.getViewportRoot();\n eventUtil.normalizeEvent(zrViewportRoot, e, true);\n handler.dispatch('mousemove', e);\n }\n };\n\n el.onmouseleave = function () {\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n\n self._inContent = false;\n };\n}\n\nTooltipContent.prototype = {\n constructor: TooltipContent,\n\n /**\n * @private\n * @type {boolean}\n */\n _enterable: true,\n\n /**\n * Update when tooltip is rendered\n */\n update: function (tooltipModel) {\n // FIXME\n // Move this logic to ec main?\n var container = this._container;\n var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n var domStyle = container.style;\n\n if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n domStyle.position = 'relative';\n }\n\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n alwaysShowContent && this._moveTooltipIfResized(); // Hide the tooltip\n // PENDING\n // this.hide();\n },\n\n /**\n * when `alwaysShowContent` is true,\n * we should move the tooltip after chart resized\n */\n _moveTooltipIfResized: function () {\n var ratioX = this._styleCoord[2]; // The ratio of left to width\n\n var ratioY = this._styleCoord[3]; // The ratio of top to height\n\n var realX = ratioX * this._zr.getWidth();\n\n var realY = ratioY * this._zr.getHeight();\n\n this.moveTo(realX, realY);\n },\n show: function (tooltipModel) {\n clearTimeout(this._hideTimeout);\n var el = this.el;\n var styleCoord = this._styleCoord;\n el.style.cssText = gCssText + assembleCssText(tooltipModel) // Because of the reason described in:\n // http://stackoverflow.com/questions/21125587/css3-transition-not-working-in-chrome-anymore\n // we should set initial value to `left` and `top`.\n + ';left:' + styleCoord[0] + 'px;top:' + styleCoord[1] + 'px;' + (tooltipModel.get('extraCssText') || '');\n el.style.display = el.innerHTML ? 'block' : 'none'; // If mouse occasionally move over the tooltip, a mouseout event will be\n // triggered by canvas, and cause some unexpectable result like dragging\n // stop, \"unfocusAdjacency\". Here `pointer-events: none` is used to solve\n // it. Although it is not supported by IE8~IE10, fortunately it is a rare\n // scenario.\n\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n this._show = true;\n },\n setContent: function (content) {\n this.el.innerHTML = content == null ? '' : content;\n },\n setEnterable: function (enterable) {\n this._enterable = enterable;\n },\n getSize: function () {\n var el = this.el;\n return [el.clientWidth, el.clientHeight];\n },\n moveTo: function (zrX, zrY) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n var style = this.el.style;\n style.left = styleCoord[0] + 'px';\n style.top = styleCoord[1] + 'px';\n },\n hide: function () {\n this.el.style.display = 'none';\n this._show = false;\n },\n hideLater: function (time) {\n if (this._show && !(this._inContent && this._enterable)) {\n if (time) {\n this._hideDelay = time; // Set show false to avoid invoke hideLater multiple times\n\n this._show = false;\n this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n },\n isShow: function () {\n return this._show;\n },\n dispose: function () {\n this.el.parentNode.removeChild(this.el);\n },\n getOuterSize: function () {\n var width = this.el.clientWidth;\n var height = this.el.clientHeight; // Consider browser compatibility.\n // IE8 does not support getComputedStyle.\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n var stl = document.defaultView.getComputedStyle(this.el);\n\n if (stl) {\n width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n }\n }\n\n return {\n width: width,\n height: height\n };\n }\n};\nvar _default = TooltipContent;\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 echarts = require(\"../../echarts\");\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 = echarts.extendComponentModel({\n type: 'tooltip',\n dependencies: ['axisPointer'],\n defaultOption: {\n zlevel: 0,\n z: 60,\n show: true,\n // tooltip主体内容\n showContent: true,\n // 'trigger' only works on coordinate system.\n // 'item' | 'axis' | 'none'\n trigger: 'item',\n // 'click' | 'mousemove' | 'none'\n triggerOn: 'mousemove|click',\n alwaysShowContent: false,\n displayMode: 'single',\n // 'single' | 'multipleByCoordSys'\n renderMode: 'auto',\n // 'auto' | 'html' | 'richText'\n // 'auto': use html by default, and use non-html if `document` is not defined\n // 'html': use html for tooltip\n // 'richText': use canvas, svg, and etc. for tooltip\n // 位置 {Array} | {Function}\n // position: null\n // Consider triggered from axisPointer handle, verticalAlign should be 'middle'\n // align: null,\n // verticalAlign: null,\n // 是否约束 content 在 viewRect 中。默认 false 是为了兼容以前版本。\n confine: false,\n // 内容格式器:{string}(Template) ¦ {Function}\n // formatter: null\n showDelay: 0,\n // 隐藏延迟,单位ms\n hideDelay: 100,\n // 动画变换时间,单位s\n transitionDuration: 0.4,\n enterable: false,\n // 提示背景颜色,默认为透明度为0.7的黑色\n backgroundColor: 'rgba(50,50,50,0.7)',\n // 提示边框颜色\n borderColor: '#333',\n // 提示边框圆角,单位px,默认为4\n borderRadius: 4,\n // 提示边框线宽,单位px,默认为0(无边框)\n borderWidth: 0,\n // 提示内边距,单位px,默认各方向内边距为5,\n // 接受数组分别设定上右下左边距,同css\n padding: 5,\n // Extra css text\n extraCssText: '',\n // 坐标轴指示器,坐标轴触发有效\n axisPointer: {\n // 默认为直线\n // 可选为:'line' | 'shadow' | 'cross'\n type: 'line',\n // type 为 line 的时候有效,指定 tooltip line 所在的轴,可选\n // 可选 'x' | 'y' | 'angle' | 'radius' | 'auto'\n // 默认 'auto',会选择类型为 category 的轴,对于双数值轴,笛卡尔坐标系会默认选择 x 轴\n // 极坐标系会默认选择 angle 轴\n axis: 'auto',\n animation: 'auto',\n animationDurationUpdate: 200,\n animationEasingUpdate: 'exponentialOut',\n crossStyle: {\n color: '#999',\n width: 1,\n type: 'dashed',\n // TODO formatter\n textStyle: {} // lineStyle and shadowStyle should not be specified here,\n // otherwise it will always override those styles on option.axisPointer.\n\n }\n },\n textStyle: {\n color: '#fff',\n fontSize: 14\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 Text = require(\"zrender/lib/graphic/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*/\n// import Group from 'zrender/src/container/Group';\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n out[0] = zrX;\n out[1] = zrY;\n out[2] = out[0] / zr.getWidth(); // The ratio of left to width\n\n out[3] = out[1] / zr.getHeight(); // The ratio of top to height\n}\n/**\n * @alias module:echarts/component/tooltip/TooltipRichContent\n * @constructor\n */\n\n\nfunction TooltipRichContent(api) {\n var zr = this._zr = api.getZr();\n this._styleCoord = [0, 0, 0, 0]; // [left, top, left/width, top/height]\n\n makeStyleCoord(this._styleCoord, zr, api.getWidth() / 2, api.getHeight() / 2);\n this._show = false;\n /**\n * @private\n */\n\n this._hideTimeout;\n}\n\nTooltipRichContent.prototype = {\n constructor: TooltipRichContent,\n\n /**\n * @private\n * @type {boolean}\n */\n _enterable: true,\n\n /**\n * Update when tooltip is rendered\n */\n update: function (tooltipModel) {\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n alwaysShowContent && this._moveTooltipIfResized();\n },\n\n /**\n * when `alwaysShowContent` is true,\n * we should move the tooltip after chart resized\n */\n _moveTooltipIfResized: function () {\n var ratioX = this._styleCoord[2]; // The ratio of left to width\n\n var ratioY = this._styleCoord[3]; // The ratio of top to height\n\n var realX = ratioX * this._zr.getWidth();\n\n var realY = ratioY * this._zr.getHeight();\n\n this.moveTo(realX, realY);\n },\n show: function (tooltipModel) {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n }\n\n this.el.attr('show', true);\n this._show = true;\n },\n\n /**\n * Set tooltip content\n *\n * @param {string} content rich text string of content\n * @param {Object} markerRich rich text style\n * @param {Object} tooltipModel tooltip model\n */\n setContent: function (content, markerRich, tooltipModel) {\n if (this.el) {\n this._zr.remove(this.el);\n }\n\n var markers = {};\n var text = content;\n var prefix = '{marker';\n var suffix = '|}';\n var startId = text.indexOf(prefix);\n\n while (startId >= 0) {\n var endId = text.indexOf(suffix);\n var name = text.substr(startId + prefix.length, endId - startId - prefix.length);\n\n if (name.indexOf('sub') > -1) {\n markers['marker' + name] = {\n textWidth: 4,\n textHeight: 4,\n textBorderRadius: 2,\n textBackgroundColor: markerRich[name],\n // TODO: textOffset is not implemented for rich text\n textOffset: [3, 0]\n };\n } else {\n markers['marker' + name] = {\n textWidth: 10,\n textHeight: 10,\n textBorderRadius: 5,\n textBackgroundColor: markerRich[name]\n };\n }\n\n text = text.substr(endId + 1);\n startId = text.indexOf('{marker');\n }\n\n var textStyleModel = tooltipModel.getModel('textStyle');\n var fontSize = textStyleModel.get('fontSize');\n var lineHeight = tooltipModel.get('textLineHeight');\n\n if (lineHeight == null) {\n lineHeight = Math.round(fontSize * 3 / 2);\n }\n\n this.el = new Text({\n style: graphicUtil.setTextStyle({}, textStyleModel, {\n rich: markers,\n text: content,\n textBackgroundColor: tooltipModel.get('backgroundColor'),\n textBorderRadius: tooltipModel.get('borderRadius'),\n textFill: tooltipModel.get('textStyle.color'),\n textPadding: tooltipModel.get('padding'),\n textLineHeight: lineHeight\n }),\n z: tooltipModel.get('z')\n });\n\n this._zr.add(this.el);\n\n var self = this;\n this.el.on('mouseover', function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n\n self._inContent = true;\n });\n this.el.on('mouseout', function () {\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n\n self._inContent = false;\n });\n },\n setEnterable: function (enterable) {\n this._enterable = enterable;\n },\n getSize: function () {\n var bounding = this.el.getBoundingRect();\n return [bounding.width, bounding.height];\n },\n moveTo: function (x, y) {\n if (this.el) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, x, y);\n this.el.attr('position', [styleCoord[0], styleCoord[1]]);\n }\n },\n hide: function () {\n if (this.el) {\n this.el.hide();\n }\n\n this._show = false;\n },\n hideLater: function (time) {\n if (this._show && !(this._inContent && this._enterable)) {\n if (time) {\n this._hideDelay = time; // Set show false to avoid invoke hideLater multiple times\n\n this._show = false;\n this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n },\n isShow: function () {\n return this._show;\n },\n dispose: function () {\n clearTimeout(this._hideTimeout);\n\n if (this.el) {\n this._zr.remove(this.el);\n }\n },\n getOuterSize: function () {\n var size = this.getSize();\n return {\n width: size[0],\n height: size[1]\n };\n }\n};\nvar _default = TooltipRichContent;\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 echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar TooltipContent = require(\"./TooltipContent\");\n\nvar TooltipRichContent = require(\"./TooltipRichContent\");\n\nvar formatUtil = require(\"../../util/format\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar findPointFromSeries = require(\"../axisPointer/findPointFromSeries\");\n\nvar layoutUtil = require(\"../../util/layout\");\n\nvar Model = require(\"../../model/Model\");\n\nvar globalListener = require(\"../axisPointer/globalListener\");\n\nvar axisHelper = require(\"../../coord/axisHelper\");\n\nvar axisPointerViewHelper = require(\"../axisPointer/viewHelper\");\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 bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar parsePercent = numberUtil.parsePercent;\nvar proxyRect = new graphic.Rect({\n shape: {\n x: -1,\n y: -1,\n width: 2,\n height: 2\n }\n});\n\nvar _default = echarts.extendComponentView({\n type: 'tooltip',\n init: function (ecModel, api) {\n if (env.node) {\n return;\n }\n\n var tooltipModel = ecModel.getComponent('tooltip');\n var renderMode = tooltipModel.get('renderMode');\n this._renderMode = getTooltipRenderMode(renderMode);\n var tooltipContent;\n\n if (this._renderMode === 'html') {\n tooltipContent = new TooltipContent(api.getDom(), api, {\n appendToBody: tooltipModel.get('appendToBody', true)\n });\n this._newLine = '
';\n } else {\n tooltipContent = new TooltipRichContent(api);\n this._newLine = '\\n';\n }\n\n this._tooltipContent = tooltipContent;\n },\n render: function (tooltipModel, ecModel, api) {\n if (env.node) {\n return;\n } // Reset\n\n\n this.group.removeAll();\n /**\n * @private\n * @type {module:echarts/component/tooltip/TooltipModel}\n */\n\n this._tooltipModel = tooltipModel;\n /**\n * @private\n * @type {module:echarts/model/Global}\n */\n\n this._ecModel = ecModel;\n /**\n * @private\n * @type {module:echarts/ExtensionAPI}\n */\n\n this._api = api;\n /**\n * Should be cleaned when render.\n * @private\n * @type {Array.>}\n */\n\n this._lastDataByCoordSys = null;\n /**\n * @private\n * @type {boolean}\n */\n\n this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n var tooltipContent = this._tooltipContent;\n tooltipContent.update(tooltipModel);\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n this._initGlobalListener();\n\n this._keepShow();\n },\n _initGlobalListener: function () {\n var tooltipModel = this._tooltipModel;\n var triggerOn = tooltipModel.get('triggerOn');\n globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n // If 'none', it is not controlled by mouse totally.\n if (triggerOn !== 'none') {\n if (triggerOn.indexOf(currTrigger) >= 0) {\n this._tryShow(e, dispatchAction);\n } else if (currTrigger === 'leave') {\n this._hide(dispatchAction);\n }\n }\n }, this));\n },\n _keepShow: function () {\n var tooltipModel = this._tooltipModel;\n var ecModel = this._ecModel;\n var api = this._api; // Try to keep the tooltip show when refreshing\n\n if (this._lastX != null && this._lastY != null // When user is willing to control tooltip totally using API,\n // self.manuallyShowTip({x, y}) might cause tooltip hide,\n // which is not expected.\n && tooltipModel.get('triggerOn') !== 'none') {\n var self = this;\n clearTimeout(this._refreshUpdateTimeout);\n this._refreshUpdateTimeout = setTimeout(function () {\n // Show tip next tick after other charts are rendered\n // In case highlight action has wrong result\n // FIXME\n !api.isDisposed() && self.manuallyShowTip(tooltipModel, ecModel, api, {\n x: self._lastX,\n y: self._lastY\n });\n });\n }\n },\n\n /**\n * Show tip manually by\n * dispatchAction({\n * type: 'showTip',\n * x: 10,\n * y: 10\n * });\n * Or\n * dispatchAction({\n * type: 'showTip',\n * seriesIndex: 0,\n * dataIndex or dataIndexInside or name\n * });\n *\n * TODO Batch\n */\n manuallyShowTip: function (tooltipModel, ecModel, api, payload) {\n if (payload.from === this.uid || env.node) {\n return;\n }\n\n var dispatchAction = makeDispatchAction(payload, api); // Reset ticket\n\n this._ticket = ''; // When triggered from axisPointer.\n\n var dataByCoordSys = payload.dataByCoordSys;\n\n if (payload.tooltip && payload.x != null && payload.y != null) {\n var el = proxyRect;\n el.position = [payload.x, payload.y];\n el.update();\n el.tooltip = payload.tooltip; // Manually show tooltip while view is not using zrender elements.\n\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n target: el\n }, dispatchAction);\n } else if (dataByCoordSys) {\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n dataByCoordSys: payload.dataByCoordSys,\n tooltipOption: payload.tooltipOption\n }, dispatchAction);\n } else if (payload.seriesIndex != null) {\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n return;\n }\n\n var pointInfo = findPointFromSeries(payload, ecModel);\n var cx = pointInfo.point[0];\n var cy = pointInfo.point[1];\n\n if (cx != null && cy != null) {\n this._tryShow({\n offsetX: cx,\n offsetY: cy,\n position: payload.position,\n target: pointInfo.el\n }, dispatchAction);\n }\n } else if (payload.x != null && payload.y != null) {\n // FIXME\n // should wrap dispatchAction like `axisPointer/globalListener` ?\n api.dispatchAction({\n type: 'updateAxisPointer',\n x: payload.x,\n y: payload.y\n });\n\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n target: api.getZr().findHover(payload.x, payload.y).target\n }, dispatchAction);\n }\n },\n manuallyHideTip: function (tooltipModel, ecModel, api, payload) {\n var tooltipContent = this._tooltipContent;\n\n if (!this._alwaysShowContent && this._tooltipModel) {\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n }\n\n this._lastX = this._lastY = null;\n\n if (payload.from !== this.uid) {\n this._hide(makeDispatchAction(payload, api));\n }\n },\n // Be compatible with previous design, that is, when tooltip.type is 'axis' and\n // dispatchAction 'showTip' with seriesIndex and dataIndex will trigger axis pointer\n // and tooltip.\n _manuallyAxisShowTip: function (tooltipModel, ecModel, api, payload) {\n var seriesIndex = payload.seriesIndex;\n var dataIndex = payload.dataIndex;\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n return;\n }\n\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n if (!seriesModel) {\n return;\n }\n\n var data = seriesModel.getData();\n var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]);\n\n if (tooltipModel.get('trigger') !== 'axis') {\n return;\n }\n\n api.dispatchAction({\n type: 'updateAxisPointer',\n seriesIndex: seriesIndex,\n dataIndex: dataIndex,\n position: payload.position\n });\n return true;\n },\n _tryShow: function (e, dispatchAction) {\n var el = e.target;\n var tooltipModel = this._tooltipModel;\n\n if (!tooltipModel) {\n return;\n } // Save mouse x, mouse y. So we can try to keep showing the tip if chart is refreshed\n\n\n this._lastX = e.offsetX;\n this._lastY = e.offsetY;\n var dataByCoordSys = e.dataByCoordSys;\n\n if (dataByCoordSys && dataByCoordSys.length) {\n this._showAxisTooltip(dataByCoordSys, e);\n } // Always show item tooltip if mouse is on the element with dataIndex\n else if (el && el.dataIndex != null) {\n this._lastDataByCoordSys = null;\n\n this._showSeriesItemTooltip(e, el, dispatchAction);\n } // Tooltip provided directly. Like legend.\n else if (el && el.tooltip) {\n this._lastDataByCoordSys = null;\n\n this._showComponentItemTooltip(e, el, dispatchAction);\n } else {\n this._lastDataByCoordSys = null;\n\n this._hide(dispatchAction);\n }\n },\n _showOrMove: function (tooltipModel, cb) {\n // showDelay is used in this case: tooltip.enterable is set\n // as true. User intent to move mouse into tooltip and click\n // something. `showDelay` makes it easier to enter the content\n // but tooltip do not move immediately.\n var delay = tooltipModel.get('showDelay');\n cb = zrUtil.bind(cb, this);\n clearTimeout(this._showTimout);\n delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n },\n _showAxisTooltip: function (dataByCoordSys, e) {\n var ecModel = this._ecModel;\n var globalTooltipModel = this._tooltipModel;\n var point = [e.offsetX, e.offsetY];\n var singleDefaultHTML = [];\n var singleParamsList = [];\n var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]);\n var renderMode = this._renderMode;\n var newLine = this._newLine;\n var markers = {};\n each(dataByCoordSys, function (itemCoordSys) {\n // var coordParamList = [];\n // var coordDefaultHTML = [];\n // var coordTooltipModel = buildTooltipModel([\n // e.tooltipOption,\n // itemCoordSys.tooltipOption,\n // ecModel.getComponent(itemCoordSys.coordSysMainType, itemCoordSys.coordSysIndex),\n // globalTooltipModel\n // ]);\n // var displayMode = coordTooltipModel.get('displayMode');\n // var paramsList = displayMode === 'single' ? singleParamsList : [];\n each(itemCoordSys.dataByAxis, function (item) {\n var axisModel = ecModel.getComponent(item.axisDim + 'Axis', item.axisIndex);\n var axisValue = item.value;\n var seriesDefaultHTML = [];\n\n if (!axisModel || axisValue == null) {\n return;\n }\n\n var valueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, item.seriesDataIndices, item.valueLabelOpt);\n zrUtil.each(item.seriesDataIndices, function (idxItem) {\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n var dataIndex = idxItem.dataIndexInside;\n var dataParams = series && series.getDataParams(dataIndex);\n dataParams.axisDim = item.axisDim;\n dataParams.axisIndex = item.axisIndex;\n dataParams.axisType = item.axisType;\n dataParams.axisId = item.axisId;\n dataParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, axisValue);\n dataParams.axisValueLabel = valueLabel;\n\n if (dataParams) {\n singleParamsList.push(dataParams);\n var seriesTooltip = series.formatTooltip(dataIndex, true, null, renderMode);\n var html;\n\n if (zrUtil.isObject(seriesTooltip)) {\n html = seriesTooltip.html;\n var newMarkers = seriesTooltip.markers;\n zrUtil.merge(markers, newMarkers);\n } else {\n html = seriesTooltip;\n }\n\n seriesDefaultHTML.push(html);\n }\n }); // Default tooltip content\n // FIXME\n // (1) should be the first data which has name?\n // (2) themeRiver, firstDataIndex is array, and first line is unnecessary.\n\n var firstLine = valueLabel;\n\n if (renderMode !== 'html') {\n singleDefaultHTML.push(seriesDefaultHTML.join(newLine));\n } else {\n singleDefaultHTML.push((firstLine ? formatUtil.encodeHTML(firstLine) + newLine : '') + seriesDefaultHTML.join(newLine));\n }\n });\n }, this); // In most case, the second axis is shown upper than the first one.\n\n singleDefaultHTML.reverse();\n singleDefaultHTML = singleDefaultHTML.join(this._newLine + this._newLine);\n var positionExpr = e.position;\n\n this._showOrMove(singleTooltipModel, function () {\n if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, singleParamsList);\n } else {\n this._showTooltipContent(singleTooltipModel, singleDefaultHTML, singleParamsList, Math.random(), point[0], point[1], positionExpr, undefined, markers);\n }\n }); // Do not trigger events here, because this branch only be entered\n // from dispatchAction.\n\n },\n _showSeriesItemTooltip: function (e, el, dispatchAction) {\n var ecModel = this._ecModel; // Use dataModel in element if possible\n // Used when mouseover on a element like markPoint or edge\n // In which case, the data is not main data in series.\n\n var seriesIndex = el.seriesIndex;\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex); // For example, graph link.\n\n var dataModel = el.dataModel || seriesModel;\n var dataIndex = el.dataIndex;\n var dataType = el.dataType;\n var data = dataModel.getData(dataType);\n var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]);\n var tooltipTrigger = tooltipModel.get('trigger');\n\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n return;\n }\n\n var params = dataModel.getDataParams(dataIndex, dataType);\n var seriesTooltip = dataModel.formatTooltip(dataIndex, false, dataType, this._renderMode);\n var defaultHtml;\n var markers;\n\n if (zrUtil.isObject(seriesTooltip)) {\n defaultHtml = seriesTooltip.html;\n markers = seriesTooltip.markers;\n } else {\n defaultHtml = seriesTooltip;\n markers = null;\n }\n\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n this._showOrMove(tooltipModel, function () {\n this._showTooltipContent(tooltipModel, defaultHtml, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markers);\n }); // FIXME\n // duplicated showtip if manuallyShowTip is called from dispatchAction.\n\n\n dispatchAction({\n type: 'showTip',\n dataIndexInside: dataIndex,\n dataIndex: data.getRawIndex(dataIndex),\n seriesIndex: seriesIndex,\n from: this.uid\n });\n },\n _showComponentItemTooltip: function (e, el, dispatchAction) {\n var tooltipOpt = el.tooltip;\n\n if (typeof tooltipOpt === 'string') {\n var content = tooltipOpt;\n tooltipOpt = {\n content: content,\n // Fixed formatter\n formatter: content\n };\n }\n\n var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\n var defaultHtml = subTooltipModel.get('content');\n var asyncTicket = Math.random(); // Do not check whether `trigger` is 'none' here, because `trigger`\n // only works on coordinate system. In fact, we have not found case\n // that requires setting `trigger` nothing on component yet.\n\n this._showOrMove(subTooltipModel, function () {\n this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el);\n }); // If not dispatch showTip, tip may be hide triggered by axis.\n\n\n dispatchAction({\n type: 'showTip',\n from: this.uid\n });\n },\n _showTooltipContent: function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markers) {\n // Reset ticket\n this._ticket = '';\n\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n return;\n }\n\n var tooltipContent = this._tooltipContent;\n var formatter = tooltipModel.get('formatter');\n positionExpr = positionExpr || tooltipModel.get('position');\n var html = defaultHtml;\n\n if (formatter && typeof formatter === 'string') {\n html = formatUtil.formatTpl(formatter, params, true);\n } else if (typeof formatter === 'function') {\n var callback = bind(function (cbTicket, html) {\n if (cbTicket === this._ticket) {\n tooltipContent.setContent(html, markers, tooltipModel);\n\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n }\n }, this);\n this._ticket = asyncTicket;\n html = formatter(params, asyncTicket, callback);\n }\n\n tooltipContent.setContent(html, markers, tooltipModel);\n tooltipContent.show(tooltipModel);\n\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n },\n\n /**\n * @param {string|Function|Array.|Object} positionExpr\n * @param {number} x Mouse x\n * @param {number} y Mouse y\n * @param {boolean} confine Whether confine tooltip content in view rect.\n * @param {Object|} params\n * @param {module:zrender/Element} el target element\n * @param {module:echarts/ExtensionAPI} api\n * @return {Array.}\n */\n _updatePosition: function (tooltipModel, positionExpr, x, y, content, params, el) {\n var viewWidth = this._api.getWidth();\n\n var viewHeight = this._api.getHeight();\n\n positionExpr = positionExpr || tooltipModel.get('position');\n var contentSize = content.getSize();\n var align = tooltipModel.get('align');\n var vAlign = tooltipModel.get('verticalAlign');\n var rect = el && el.getBoundingRect().clone();\n el && rect.applyTransform(el.transform);\n\n if (typeof positionExpr === 'function') {\n // Callback of position can be an array or a string specify the position\n positionExpr = positionExpr([x, y], params, content.el, rect, {\n viewSize: [viewWidth, viewHeight],\n contentSize: contentSize.slice()\n });\n }\n\n if (zrUtil.isArray(positionExpr)) {\n x = parsePercent(positionExpr[0], viewWidth);\n y = parsePercent(positionExpr[1], viewHeight);\n } else if (zrUtil.isObject(positionExpr)) {\n positionExpr.width = contentSize[0];\n positionExpr.height = contentSize[1];\n var layoutRect = layoutUtil.getLayoutRect(positionExpr, {\n width: viewWidth,\n height: viewHeight\n });\n x = layoutRect.x;\n y = layoutRect.y;\n align = null; // When positionExpr is left/top/right/bottom,\n // align and verticalAlign will not work.\n\n vAlign = null;\n } // Specify tooltip position by string 'top' 'bottom' 'left' 'right' around graphic element\n else if (typeof positionExpr === 'string' && el) {\n var pos = calcTooltipPosition(positionExpr, rect, contentSize);\n x = pos[0];\n y = pos[1];\n } else {\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n x = pos[0];\n y = pos[1];\n }\n\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n if (tooltipModel.get('confine')) {\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n x = pos[0];\n y = pos[1];\n }\n\n content.moveTo(x, y);\n },\n // FIXME\n // Should we remove this but leave this to user?\n _updateContentNotChangedOnAxis: function (dataByCoordSys) {\n var lastCoordSys = this._lastDataByCoordSys;\n var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n var lastDataByAxis = lastItemCoordSys.dataByAxis || {};\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n contentNotChanged &= lastDataByAxis.length === thisDataByAxis.length;\n contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n var thisItem = thisDataByAxis[indexAxis] || {};\n var lastIndices = lastItem.seriesDataIndices || [];\n var newIndices = thisItem.seriesDataIndices || [];\n contentNotChanged &= lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n var newIdxItem = newIndices[j];\n contentNotChanged &= lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n });\n });\n });\n this._lastDataByCoordSys = dataByCoordSys;\n return !!contentNotChanged;\n },\n _hide: function (dispatchAction) {\n // Do not directly hideLater here, because this behavior may be prevented\n // in dispatchAction when showTip is dispatched.\n // FIXME\n // duplicated hideTip if manuallyHideTip is called from dispatchAction.\n this._lastDataByCoordSys = null;\n dispatchAction({\n type: 'hideTip',\n from: this.uid\n });\n },\n dispose: function (ecModel, api) {\n if (env.node) {\n return;\n }\n\n this._tooltipContent.dispose();\n\n globalListener.unregister('itemTooltip', api);\n }\n});\n/**\n * @param {Array.} modelCascade\n * From top to bottom. (the last one should be globalTooltipModel);\n */\n\n\nfunction buildTooltipModel(modelCascade) {\n var resultModel = modelCascade.pop();\n\n while (modelCascade.length) {\n var tooltipOpt = modelCascade.pop();\n\n if (tooltipOpt) {\n if (Model.isInstance(tooltipOpt)) {\n tooltipOpt = tooltipOpt.get('tooltip', true);\n } // In each data item tooltip can be simply write:\n // {\n // value: 10,\n // tooltip: 'Something you need to know'\n // }\n\n\n if (typeof tooltipOpt === 'string') {\n tooltipOpt = {\n formatter: tooltipOpt\n };\n }\n\n resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\n }\n }\n\n return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n var size = content.getOuterSize();\n var width = size.width;\n var height = size.height;\n\n if (gapH != null) {\n if (x + width + gapH > viewWidth) {\n x -= width + gapH;\n } else {\n x += gapH;\n }\n }\n\n if (gapV != null) {\n if (y + height + gapV > viewHeight) {\n y -= height + gapV;\n } else {\n y += gapV;\n }\n }\n\n return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n var size = content.getOuterSize();\n var width = size.width;\n var height = size.height;\n x = Math.min(x + width, viewWidth) - width;\n y = Math.min(y + height, viewHeight) - height;\n x = Math.max(x, 0);\n y = Math.max(y, 0);\n return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize) {\n var domWidth = contentSize[0];\n var domHeight = contentSize[1];\n var gap = 5;\n var x = 0;\n var y = 0;\n var rectWidth = rect.width;\n var rectHeight = rect.height;\n\n switch (position) {\n case 'inside':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n\n case 'top':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y - domHeight - gap;\n break;\n\n case 'bottom':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight + gap;\n break;\n\n case 'left':\n x = rect.x - domWidth - gap;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n\n case 'right':\n x = rect.x + rectWidth + gap;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n }\n\n return [x, y];\n}\n\nfunction isCenterAlign(align) {\n return align === 'center' || align === 'middle';\n}\n\nmodule.exports = _default;"],"names":["echarts","zrUtil","featureManager","ToolboxModel","extendComponentModel","type","layoutMode","ignoreSize","optionUpdated","superApply","this","arguments","each","option","feature","featureOpt","featureName","Feature","get","merge","defaultOption","show","z","zlevel","orient","left","top","backgroundColor","borderColor","borderRadius","borderWidth","padding","itemSize","itemGap","showTitle","iconStyle","color","emphasis","tooltip","_default","module","exports","textContain","graphic","Model","DataDiffer","listComponentHelper","extendComponentView","render","toolboxModel","ecModel","api","payload","group","removeAll","featureOpts","features","_features","featureNames","opt","name","push","_featureNames","add","processFeature","update","remove","curry","execute","layout","makeBackground","getBoundingRect","eachChild","icon","titleText","__title","hoverStyle","rect","makeFont","offsetX","position","offsetY","needPutOnTop","height","getHeight","textPosition","topOffset","width","getWidth","textAlign","newIndex","oldIndex","oldName","featureModel","newTitle","title","isUserFeatureName","model","onclick","unusable","createIconPaths","setIconStatus","iconName","status","iconPaths","iconStatus","trigger","dispose","iconStyleModel","getModel","iconStyleEmphasisModel","icons","getIcons","titles","iconStr","path","createIcon","x","y","setStyle","getItemStyle","text","textBorderRadius","textPadding","textFill","tooltipModel","attr","extend","content","formatter","formatterParams","componentType","$vars","setHoverStyle","on","defaultTextPosition","fill","stroke","textBackgroundColor","bind","updateView","indexOf","register","ctor","lang","brushLang","toolbox","brush","Brush","_brushType","_brushMode","polygon","lineX","lineY","keep","clear","clone","proto","prototype","brushType","brushMode","isBrushed","eachComponent","mainType","brushModel","brushOption","areas","length","availableIcons","dispatchAction","intervals","command","key","eventTool","dataViewLang","dataView","BLOCK_SPLITER","Array","join","ITEM_SPLITER","groupSeries","seriesGroupByCategoryAxis","otherSeries","meta","eachRawSeries","seriesModel","coordSys","coordinateSystem","baseAxis","getBaseAxis","dim","index","categoryAxis","valueAxis","getOtherAxis","series","axisDim","axisIndex","other","assembleSeriesWithCategoryAxis","tables","valueAxisDim","headers","concat","map","columns","getCategories","rawData","getRawData","mapArray","mapDimension","val","lines","i","items","j","assembleOtherSeries","data","vals","dimensions","argLen","dataIndex","getName","getContentFromModel","result","value","filter","str","replace","trim","isTSVFormat","block","firstLine","slice","itemSplitRegex","RegExp","parseTSVContents","tsv","tsvLines","split","shift","categories","header","parseListContents","seriesName","line","hasName","isNaN","parseContents","blockMetaList","blocks","newOption","idx","blockMeta","axisKey","DataView","_dom","tryMergeDataOption","newData","originalData","newVal","original","isObject","isArray","newValIsObject","shouldDeleteName","defaults","readOnly","optionToContent","contentToOption","textColor","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","container","getDom","removeChild","root","document","createElement","style","cssText","innerHTML","viewMain","textarea","htmlOrDom","getOption","isDom","appendChild","buttonContainer","buttonStyle","closeButton","refreshButton","self","close","addEventListener","e","Error","clientHeight","registerAction","event","newSeriesOptList","seriesOpt","getSeriesByName","mergeOption","BrushController","BrushTargetManager","history","sliderMove","dataZoomLang","dataZoom","DATA_ZOOM_ID_BASE","DataZoom","_brushController","getZr","_onBrush","mount","_isZoomActive","filterMode","zoom","back","brushStyle","updateZoomBtnStatus","updateBackBtnStatus","handlers","call","unmount","nextActive","dataZoomSelectActive","_dispatchZoomAction","pop","retrieveAxisSetting","setting","count","view","zoomActive","brushTargetManager","include","setPanels","makePanelOpts","targetInfo","xAxisDeclared","yAxisDeclared","enableBrush","isEnd","snapshot","updateCovers","matchOutputRanges","area","coordRange","setBatch","dimName","minMax","axis","getAxis","axisModel","dataZoomModel","findDataZoom","minMaxSpan","findRepresentativeAxisProxy","getMinMaxSpan","minValueSpan","maxValueSpan","scale","getExtent","id","dataZoomId","startValue","endValue","found","subType","dzModel","has","getAxisModel","componentIndex","batch","batchItem","from","uid","registerPreprocessor","dataZoomOpts","toolboxOpt","dataZoomOpt","addForAxis","axisName","axisIndicesName","givenAxisIndices","forEachComponent","axisOpt","newOpt","$fromToolbox","cb","opts","magicTypeLang","magicType","INNER_STACK_KEYWORD","MagicType","bar","stack","seriesIndex","seriesOptGenreator","seriesType","seriesId","markPoint","markLine","isStack","radioTypes","generateNewSeriesTypes","newSeriesOpt","getAxesByScale","axisType","queryComponents","boundaryGap","radio","item","query","tiled","currentType","restoreLang","restore","Restore","resetOption","env","saveAsImageLang","saveAsImage","SaveAsImage","connectedBackgroundColor","excludeComponents","pixelRatio","canvasSupported","isSvg","painter","getType","url","getConnectedDataURL","MouseEvent","browser","ie","edge","window","navigator","msSaveOrOpenBlob","bstr","atob","n","u8arr","Uint8Array","charCodeAt","blob","Blob","html","tab","open","write","$a","download","target","href","evt","defaultView","bubbles","cancelable","dispatchEvent","zrColor","eventUtil","domUtil","formatUtil","toCamelCase","vendors","gCssText","assembleTransition","duration","transitionCurve","transitionText","vendorPrefix","assembleFont","textStyleModel","fontSize","getTextColor","getFont","lineHeight","Math","round","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","assembleCssText","transitionDuration","toHex","borderName","camelCase","normalizeCssArray","makeStyleCoord","out","zr","appendToBody","zrX","zrY","zrPainter","zrViewportRoot","getViewportRoot","transformLocalCoord","body","viewportRootOffset","getViewportRootOffset","offsetLeft","offsetTop","TooltipContent","wxa","el","domBelongToZr","_zr","_appendToBody","_styleCoord","_container","_show","_hideTimeout","onmouseenter","_enterable","clearTimeout","_inContent","onmousemove","handler","normalizeEvent","dispatch","onmouseleave","hideLater","_hideDelay","constructor","stl","currentStyle","getComputedStyle","domStyle","alwaysShowContent","_moveTooltipIfResized","ratioX","ratioY","realX","realY","moveTo","styleCoord","display","pointerEvents","setContent","setEnterable","enterable","getSize","clientWidth","hide","time","setTimeout","isShow","parentNode","getOuterSize","parseInt","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","dependencies","showContent","triggerOn","displayMode","renderMode","confine","showDelay","hideDelay","extraCssText","axisPointer","animation","animationDurationUpdate","animationEasingUpdate","crossStyle","textStyle","Text","graphicUtil","TooltipRichContent","markerRich","markers","prefix","suffix","startId","endId","substr","textWidth","textHeight","textOffset","setTextStyle","rich","textLineHeight","bounding","size","numberUtil","findPointFromSeries","layoutUtil","globalListener","axisHelper","axisPointerViewHelper","_model","getTooltipRenderMode","parsePercent","proxyRect","Rect","shape","init","node","tooltipContent","getComponent","_renderMode","_newLine","_tooltipContent","_tooltipModel","_ecModel","_api","_lastDataByCoordSys","_alwaysShowContent","_initGlobalListener","_keepShow","currTrigger","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","isDisposed","manuallyShowTip","makeDispatchAction","_ticket","dataByCoordSys","tooltipOption","_manuallyAxisShowTip","pointInfo","cx","point","cy","findHover","manuallyHideTip","coordSysAxesInfo","getSeriesByIndex","getData","buildTooltipModel","getItemModel","_showAxisTooltip","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","delay","_showTimout","globalTooltipModel","singleDefaultHTML","singleParamsList","singleTooltipModel","newLine","itemCoordSys","dataByAxis","axisValue","seriesDefaultHTML","valueLabel","getValueLabel","seriesDataIndices","valueLabelOpt","idxItem","dataIndexInside","dataParams","getDataParams","axisId","getAxisRawValue","axisValueLabel","seriesTooltip","formatTooltip","newMarkers","encodeHTML","reverse","positionExpr","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","random","undefined","dataModel","dataType","tooltipTrigger","defaultHtml","params","asyncTicket","getRawIndex","tooltipOpt","subTooltipModel","formatTpl","callback","cbTicket","viewWidth","viewHeight","contentSize","align","vAlign","applyTransform","transform","viewSize","layoutRect","getLayoutRect","pos","calcTooltipPosition","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisItemCoordSys","thisDataByAxis","lastItem","indexAxis","thisItem","lastIndices","newIndices","lastIdxItem","newIdxItem","unregister","modelCascade","resultModel","isInstance","gapH","gapV","min","max","domWidth","domHeight","gap","rectWidth","rectHeight"],"sourceRoot":""}