chunk-vendors-8b27237c.ba07e88c.js.map 160 KB

1
  1. {"version":3,"file":"js/chunk-vendors-8b27237c.ba07e88c.js","mappings":"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","sources":["webpack://app/./node_modules/echarts/lib/component/toolbox.js","webpack://app/./node_modules/echarts/lib/component/toolbox/ToolboxModel.js","webpack://app/./node_modules/echarts/lib/component/toolbox/ToolboxView.js","webpack://app/./node_modules/echarts/lib/component/toolbox/featureManager.js","webpack://app/./node_modules/echarts/lib/component/toolbox/feature/Brush.js","webpack://app/./node_modules/echarts/lib/component/toolbox/feature/DataView.js","webpack://app/./node_modules/echarts/lib/component/toolbox/feature/DataZoom.js","webpack://app/./node_modules/echarts/lib/component/toolbox/feature/MagicType.js","webpack://app/./node_modules/echarts/lib/component/toolbox/feature/Restore.js","webpack://app/./node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js","webpack://app/./node_modules/echarts/lib/component/tooltip.js","webpack://app/./node_modules/echarts/lib/component/tooltip/TooltipContent.js","webpack://app/./node_modules/echarts/lib/component/tooltip/TooltipModel.js","webpack://app/./node_modules/echarts/lib/component/tooltip/TooltipRichContent.js","webpack://app/./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.<module:echarts/model/Series>} 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 columns.push(series.getRawData().mapArray(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.<module:echarts/model/Series>} 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.<Object>}\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 var items = trim(lines[i]).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.<Object>} 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 if (zrUtil.isObject(newVal) && !zrUtil.isArray(newVal)) {\n newVal = newVal.value;\n } // Original data has option\n\n\n return zrUtil.defaults({\n value: newVal\n }, original);\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};\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: {\n // FIXME user customized?\n lineWidth: 0,\n fill: 'rgba(0,0,0,0.2)'\n }\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 view: window,\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 = '' + '<body style=\"margin:0;\">' + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + (lang && lang[0] || '') + '\" />' + '</body>';\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 fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\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/**\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];\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 () {\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 } // Hide the tooltip\n // PENDING\n // this.hide();\n\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 occsionally move over the tooltip, a mouseout event will be\n // triggered by canvas, and cuase some unexpectable result like dragging\n // stop, \"unfocusAdjacency\". Here `pointer-events: none` is used to solve\n // it. Although it is not suppored 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 mutiple 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\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';\n\n/**\n * @alias module:echarts/component/tooltip/TooltipRichContent\n * @constructor\n */\nfunction TooltipRichContent(api) {\n this._zr = api.getZr();\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 () {// noop\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 this.el = new Text({\n style: {\n rich: markers,\n text: content,\n textLineHeight: 20,\n textBackgroundColor: tooltipModel.get('backgroundColor'),\n textBorderRadius: tooltipModel.get('borderRadius'),\n textFill: tooltipModel.get('textStyle.color'),\n textPadding: tooltipModel.get('padding')\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 this.el.attr('position', [x, y]);\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 mutiple 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 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 = '<br/>';\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.<Array.<Object>>}\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();\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 easyer 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) shold 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 cooridinate 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.<number>|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|<Array.<Object>} params\n * @param {module:zrender/Element} el target element\n * @param {module:echarts/ExtensionAPI} api\n * @return {Array.<number>}\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.<Object|module:echarts/model/Model>} 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","getRawData","mapArray","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","hasName","isNaN","parseContents","blockMetaList","blocks","newOption","idx","blockMeta","axisKey","DataView","_dom","tryMergeDataOption","newData","originalData","newVal","original","isObject","isArray","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","updateZoomBtnStatus","updateBackBtnStatus","handlers","call","unmount","nextActive","dataZoomSelectActive","_dispatchZoomAction","pop","retrieveAxisSetting","setting","count","view","zoomActive","brushTargetManager","include","setPanels","makePanelOpts","targetInfo","xAxisDeclared","yAxisDeclared","enableBrush","brushStyle","lineWidth","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","line","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","bubbles","cancelable","dispatchEvent","zrColor","eventUtil","domUtil","formatUtil","toCamelCase","vendors","gCssText","assembleTransition","duration","transitionCurve","transitionText","vendorPrefix","assembleFont","textStyleModel","fontSize","getTextColor","getFont","Math","round","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","defaultView","getComputedStyle","domStyle","styleCoord","display","pointerEvents","setContent","setEnterable","enterable","getSize","clientWidth","moveTo","hide","time","setTimeout","isShow","parentNode","getOuterSize","parseInt","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","dependencies","showContent","triggerOn","alwaysShowContent","displayMode","renderMode","confine","showDelay","hideDelay","extraCssText","axisPointer","animation","animationDurationUpdate","animationEasingUpdate","crossStyle","textStyle","Text","TooltipRichContent","markerRich","markers","prefix","suffix","startId","endId","substr","textWidth","textHeight","textOffset","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":""}