chunk-vendors-02ec2db9.f60e3c5f.js.map 95 KB

1
  1. {"version":3,"file":"js/chunk-vendors-02ec2db9.f60e3c5f.js","mappings":"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","sources":["webpack://app/./node_modules/echarts/lib/component/helper/selectableMixin.js","webpack://app/./node_modules/echarts/lib/component/helper/sliderMove.js","webpack://app/./node_modules/echarts/lib/component/legend.js","webpack://app/./node_modules/echarts/lib/component/legendScroll.js","webpack://app/./node_modules/echarts/lib/component/legend/LegendModel.js","webpack://app/./node_modules/echarts/lib/component/legend/LegendView.js","webpack://app/./node_modules/echarts/lib/component/legend/ScrollableLegendModel.js","webpack://app/./node_modules/echarts/lib/component/legend/ScrollableLegendView.js","webpack://app/./node_modules/echarts/lib/component/legend/legendAction.js","webpack://app/./node_modules/echarts/lib/component/legend/legendFilter.js","webpack://app/./node_modules/echarts/lib/component/legend/scrollableLegendAction.js"],"sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\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 * Data selectable mixin for chart series.\n * To eanble data select, option of series must have `selectedMode`.\n * And each data item will use `selected` to toggle itself selected status\n */\nvar _default = {\n /**\n * @param {Array.<Object>} targetList [{name, value, selected}, ...]\n * If targetList is an array, it should like [{name: ..., value: ...}, ...].\n * If targetList is a \"List\", it must have coordDim: 'value' dimension and name.\n */\n updateSelectedMap: function (targetList) {\n this._targetList = zrUtil.isArray(targetList) ? targetList.slice() : [];\n this._selectTargetMap = zrUtil.reduce(targetList || [], function (targetMap, target) {\n targetMap.set(target.name, target);\n return targetMap;\n }, zrUtil.createHashMap());\n },\n\n /**\n * Either name or id should be passed as input here.\n * If both of them are defined, id is used.\n *\n * @param {string|undefined} name name of data\n * @param {number|undefined} id dataIndex of data\n */\n // PENGING If selectedMode is null ?\n select: function (name, id) {\n var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name);\n var selectedMode = this.get('selectedMode');\n\n if (selectedMode === 'single') {\n this._selectTargetMap.each(function (target) {\n target.selected = false;\n });\n }\n\n target && (target.selected = true);\n },\n\n /**\n * Either name or id should be passed as input here.\n * If both of them are defined, id is used.\n *\n * @param {string|undefined} name name of data\n * @param {number|undefined} id dataIndex of data\n */\n unSelect: function (name, id) {\n var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name); // var selectedMode = this.get('selectedMode');\n // selectedMode !== 'single' && target && (target.selected = false);\n\n target && (target.selected = false);\n },\n\n /**\n * Either name or id should be passed as input here.\n * If both of them are defined, id is used.\n *\n * @param {string|undefined} name name of data\n * @param {number|undefined} id dataIndex of data\n */\n toggleSelected: function (name, id) {\n var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name);\n\n if (target != null) {\n this[target.selected ? 'unSelect' : 'select'](name, id);\n return target.selected;\n }\n },\n\n /**\n * Either name or id should be passed as input here.\n * If both of them are defined, id is used.\n *\n * @param {string|undefined} name name of data\n * @param {number|undefined} id dataIndex of data\n */\n isSelected: function (name, id) {\n var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name);\n return target && target.selected;\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*/\n\n/**\n * Calculate slider move result.\n * Usage:\n * (1) If both handle0 and handle1 are needed to be moved, set minSpan the same as\n * maxSpan and the same as `Math.abs(handleEnd[1] - handleEnds[0])`.\n * (2) If handle0 is forbidden to cross handle1, set minSpan as `0`.\n *\n * @param {number} delta Move length.\n * @param {Array.<number>} handleEnds handleEnds[0] can be bigger then handleEnds[1].\n * handleEnds will be modified in this method.\n * @param {Array.<number>} extent handleEnds is restricted by extent.\n * extent[0] should less or equals than extent[1].\n * @param {number|string} handleIndex Can be 'all', means that both move the two handleEnds.\n * @param {number} [minSpan] The range of dataZoom can not be smaller than that.\n * If not set, handle0 and cross handle1. If set as a non-negative\n * number (including `0`), handles will push each other when reaching\n * the minSpan.\n * @param {number} [maxSpan] The range of dataZoom can not be larger than that.\n * @return {Array.<number>} The input handleEnds.\n */\nfunction _default(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n delta = delta || 0;\n var extentSpan = extent[1] - extent[0]; // Notice maxSpan and minSpan can be null/undefined.\n\n if (minSpan != null) {\n minSpan = restrict(minSpan, [0, extentSpan]);\n }\n\n if (maxSpan != null) {\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n }\n\n if (handleIndex === 'all') {\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n handleSpan = restrict(handleSpan, [0, extentSpan]);\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n handleIndex = 0;\n }\n\n handleEnds[0] = restrict(handleEnds[0], extent);\n handleEnds[1] = restrict(handleEnds[1], extent);\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\n handleEnds[handleIndex] += delta; // Restrict in extent.\n\n var extentMinSpan = minSpan || 0;\n var realExtent = extent.slice();\n originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent); // Expand span.\n\n var currDistSign = getSpanSign(handleEnds, handleIndex);\n\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n // If minSpan exists, 'cross' is forbidden.\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n } // Shrink span.\n\n\n var currDistSign = getSpanSign(handleEnds, handleIndex);\n\n if (maxSpan != null && currDistSign.span > maxSpan) {\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n }\n\n return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex]; // If `handleEnds[0] === handleEnds[1]`, always believe that handleEnd[0]\n // is at left of handleEnds[1] for non-cross case.\n\n return {\n span: Math.abs(dist),\n sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n };\n}\n\nfunction restrict(value, extend) {\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\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 echarts = require(\"../echarts\");\n\nrequire(\"./legend/LegendModel\");\n\nrequire(\"./legend/legendAction\");\n\nrequire(\"./legend/LegendView\");\n\nvar legendFilter = require(\"./legend/legendFilter\");\n\nvar Component = require(\"../model/Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Do not contain scrollable legend, for sake of file size.\n// Series Filter\necharts.registerProcessor(echarts.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\nComponent.registerSubTypeDefaulter('legend', function () {\n // Default 'plain' when no type specified.\n return 'plain';\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\nrequire(\"./legend\");\n\nrequire(\"./legend/ScrollableLegendModel\");\n\nrequire(\"./legend/ScrollableLegendView\");\n\nrequire(\"./legend/scrollableLegendAction\");","\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 Model = require(\"../../model/Model\");\n\nvar _model = require(\"../../util/model\");\n\nvar isNameSpecified = _model.isNameSpecified;\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 langSelector = lang.legend.selector;\nvar defaultSelectorOption = {\n all: {\n type: 'all',\n title: zrUtil.clone(langSelector.all)\n },\n inverse: {\n type: 'inverse',\n title: zrUtil.clone(langSelector.inverse)\n }\n};\nvar LegendModel = echarts.extendComponentModel({\n type: 'legend.plain',\n dependencies: ['series'],\n layoutMode: {\n type: 'box',\n // legend.width/height are maxWidth/maxHeight actually,\n // whereas realy width/height is calculated by its content.\n // (Setting {left: 10, right: 10} does not make sense).\n // So consider the case:\n // `setOption({legend: {left: 10});`\n // then `setOption({legend: {right: 10});`\n // The previous `left` should be cleared by setting `ignoreSize`.\n ignoreSize: true\n },\n init: function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n option.selected = option.selected || {};\n\n this._updateSelector(option);\n },\n mergeOption: function (option) {\n LegendModel.superCall(this, 'mergeOption', option);\n\n this._updateSelector(option);\n },\n _updateSelector: function (option) {\n var selector = option.selector;\n\n if (selector === true) {\n selector = option.selector = ['all', 'inverse'];\n }\n\n if (zrUtil.isArray(selector)) {\n zrUtil.each(selector, function (item, index) {\n zrUtil.isString(item) && (item = {\n type: item\n });\n selector[index] = zrUtil.merge(item, defaultSelectorOption[item.type]);\n });\n }\n },\n optionUpdated: function () {\n this._updateData(this.ecModel);\n\n var legendData = this._data; // If selectedMode is single, try to select one\n\n if (legendData[0] && this.get('selectedMode') === 'single') {\n var hasSelected = false; // If has any selected in option.selected\n\n for (var i = 0; i < legendData.length; i++) {\n var name = legendData[i].get('name');\n\n if (this.isSelected(name)) {\n // Force to unselect others\n this.select(name);\n hasSelected = true;\n break;\n }\n } // Try select the first if selectedMode is single\n\n\n !hasSelected && this.select(legendData[0].get('name'));\n }\n },\n _updateData: function (ecModel) {\n var potentialData = [];\n var availableNames = [];\n ecModel.eachRawSeries(function (seriesModel) {\n var seriesName = seriesModel.name;\n availableNames.push(seriesName);\n var isPotential;\n\n if (seriesModel.legendVisualProvider) {\n var provider = seriesModel.legendVisualProvider;\n var names = provider.getAllNames();\n\n if (!ecModel.isSeriesFiltered(seriesModel)) {\n availableNames = availableNames.concat(names);\n }\n\n if (names.length) {\n potentialData = potentialData.concat(names);\n } else {\n isPotential = true;\n }\n } else {\n isPotential = true;\n }\n\n if (isPotential && isNameSpecified(seriesModel)) {\n potentialData.push(seriesModel.name);\n }\n });\n /**\n * @type {Array.<string>}\n * @private\n */\n\n this._availableNames = availableNames; // If legend.data not specified in option, use availableNames as data,\n // which is convinient for user preparing option.\n\n var rawData = this.get('data') || potentialData;\n var legendData = zrUtil.map(rawData, function (dataItem) {\n // Can be string or number\n if (typeof dataItem === 'string' || typeof dataItem === 'number') {\n dataItem = {\n name: dataItem\n };\n }\n\n return new Model(dataItem, this, this.ecModel);\n }, this);\n /**\n * @type {Array.<module:echarts/model/Model>}\n * @private\n */\n\n this._data = legendData;\n },\n\n /**\n * @return {Array.<module:echarts/model/Model>}\n */\n getData: function () {\n return this._data;\n },\n\n /**\n * @param {string} name\n */\n select: function (name) {\n var selected = this.option.selected;\n var selectedMode = this.get('selectedMode');\n\n if (selectedMode === 'single') {\n var data = this._data;\n zrUtil.each(data, function (dataItem) {\n selected[dataItem.get('name')] = false;\n });\n }\n\n selected[name] = true;\n },\n\n /**\n * @param {string} name\n */\n unSelect: function (name) {\n if (this.get('selectedMode') !== 'single') {\n this.option.selected[name] = false;\n }\n },\n\n /**\n * @param {string} name\n */\n toggleSelected: function (name) {\n var selected = this.option.selected; // Default is true\n\n if (!selected.hasOwnProperty(name)) {\n selected[name] = true;\n }\n\n this[selected[name] ? 'unSelect' : 'select'](name);\n },\n allSelect: function () {\n var data = this._data;\n var selected = this.option.selected;\n zrUtil.each(data, function (dataItem) {\n selected[dataItem.get('name', true)] = true;\n });\n },\n inverseSelect: function () {\n var data = this._data;\n var selected = this.option.selected;\n zrUtil.each(data, function (dataItem) {\n var name = dataItem.get('name', true); // Initially, default value is true\n\n if (!selected.hasOwnProperty(name)) {\n selected[name] = true;\n }\n\n selected[name] = !selected[name];\n });\n },\n\n /**\n * @param {string} name\n */\n isSelected: function (name) {\n var selected = this.option.selected;\n return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n },\n getOrient: function () {\n return this.get('orient') === 'vertical' ? {\n index: 1,\n name: 'vertical'\n } : {\n index: 0,\n name: 'horizontal'\n };\n },\n defaultOption: {\n // 一级层叠\n zlevel: 0,\n // 二级层叠\n z: 4,\n show: true,\n // 布局方式,默认为水平布局,可选为:\n // 'horizontal' | 'vertical'\n orient: 'horizontal',\n left: 'center',\n // right: 'center',\n top: 0,\n // bottom: null,\n // 水平对齐\n // 'auto' | 'left' | 'right'\n // 默认为 'auto', 根据 x 的位置判断是左对齐还是右对齐\n align: 'auto',\n backgroundColor: 'rgba(0,0,0,0)',\n // 图例边框颜色\n borderColor: '#ccc',\n borderRadius: 0,\n // 图例边框线宽,单位px,默认为0(无边框)\n borderWidth: 0,\n // 图例内边距,单位px,默认各方向内边距为5,\n // 接受数组分别设定上右下左边距,同css\n padding: 5,\n // 各个item之间的间隔,单位px,默认为10,\n // 横向布局时为水平间隔,纵向布局时为纵向间隔\n itemGap: 10,\n // the width of legend symbol\n itemWidth: 25,\n // the height of legend symbol\n itemHeight: 14,\n // the color of unselected legend symbol\n inactiveColor: '#ccc',\n // the borderColor of unselected legend symbol\n inactiveBorderColor: '#ccc',\n itemStyle: {\n // the default borderWidth of legend symbol\n borderWidth: 0\n },\n textStyle: {\n // 图例文字颜色\n color: '#333'\n },\n // formatter: '',\n // 选择模式,默认开启图例开关\n selectedMode: true,\n // 配置默认选中状态,可配合LEGEND.SELECTED事件做动态数据载入\n // selected: null,\n // 图例内容(详见legend.data,数组中每一项代表一个item\n // data: [],\n // Usage:\n // selector: [{type: 'all or inverse', title: xxx}]\n // or\n // selector: true\n // or\n // selector: ['all', 'inverse']\n selector: false,\n selectorLabel: {\n show: true,\n borderRadius: 10,\n padding: [3, 5, 3, 5],\n fontSize: 12,\n fontFamily: ' sans-serif',\n color: '#666',\n borderWidth: 1,\n borderColor: '#666'\n },\n emphasis: {\n selectorLabel: {\n show: true,\n color: '#eee',\n backgroundColor: '#666'\n }\n },\n // Value can be 'start' or 'end'\n selectorPosition: 'auto',\n selectorItemGap: 7,\n selectorButtonGap: 10,\n // Tooltip 相关配置\n tooltip: {\n show: false\n }\n }\n});\nvar _default = LegendModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _listComponent = require(\"../helper/listComponent\");\n\nvar makeBackground = _listComponent.makeBackground;\n\nvar layoutUtil = require(\"../../util/layout\");\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 curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar _default = echarts.extendComponentView({\n type: 'legend.plain',\n newlineDisabled: false,\n\n /**\n * @override\n */\n init: function () {\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n this.group.add(this._contentGroup = new Group());\n /**\n * @private\n * @type {module:zrender/Element}\n */\n\n this._backgroundEl;\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n this.group.add(this._selectorGroup = new Group());\n /**\n * If first rendering, `contentGroup.position` is [0, 0], which\n * does not make sense and may cause unexepcted animation if adopted.\n * @private\n * @type {boolean}\n */\n\n this._isFirstRender = true;\n },\n\n /**\n * @protected\n */\n getContentGroup: function () {\n return this._contentGroup;\n },\n\n /**\n * @protected\n */\n getSelectorGroup: function () {\n return this._selectorGroup;\n },\n\n /**\n * @override\n */\n render: function (legendModel, ecModel, api) {\n var isFirstRender = this._isFirstRender;\n this._isFirstRender = false;\n this.resetInner();\n\n if (!legendModel.get('show', true)) {\n return;\n }\n\n var itemAlign = legendModel.get('align');\n var orient = legendModel.get('orient');\n\n if (!itemAlign || itemAlign === 'auto') {\n itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n }\n\n var selector = legendModel.get('selector', true);\n var selectorPosition = legendModel.get('selectorPosition', true);\n\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n }\n\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition); // Perform layout.\n\n var positionInfo = legendModel.getBoxLayoutParams();\n var viewportSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var padding = legendModel.get('padding');\n var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition); // Place mainGroup, based on the calculated `mainRect`.\n\n var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n width: mainRect.width,\n height: mainRect.height\n }, positionInfo), viewportSize, padding);\n this.group.attr('position', [layoutRect.x - mainRect.x, layoutRect.y - mainRect.y]); // Render background after group is layout.\n\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n },\n\n /**\n * @protected\n */\n resetInner: function () {\n this.getContentGroup().removeAll();\n this._backgroundEl && this.group.remove(this._backgroundEl);\n this.getSelectorGroup().removeAll();\n },\n\n /**\n * @protected\n */\n renderInner: function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var contentGroup = this.getContentGroup();\n var legendDrawnMap = zrUtil.createHashMap();\n var selectMode = legendModel.get('selectedMode');\n var excludeSeriesId = [];\n ecModel.eachRawSeries(function (seriesModel) {\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n });\n each(legendModel.getData(), function (itemModel, dataIndex) {\n var name = itemModel.get('name'); // Use empty string or \\n as a newline string\n\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n contentGroup.add(new Group({\n newline: true\n }));\n return;\n } // Representitive series.\n\n\n var seriesModel = ecModel.getSeriesByName(name)[0];\n\n if (legendDrawnMap.get(name)) {\n // Have been drawed\n return;\n } // Legend to control series.\n\n\n if (seriesModel) {\n var data = seriesModel.getData();\n var color = data.getVisual('color');\n var borderColor = data.getVisual('borderColor'); // If color is a callback function\n\n if (typeof color === 'function') {\n // Use the first data\n color = color(seriesModel.getDataParams(0));\n } // If borderColor is a callback function\n\n\n if (typeof borderColor === 'function') {\n // Use the first data\n borderColor = borderColor(seriesModel.getDataParams(0));\n } // Using rect symbol defaultly\n\n\n var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\n var symbolType = data.getVisual('symbol');\n\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode);\n\n itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n legendDrawnMap.set(name, true);\n } else {\n // Legend to control data. In pie and funnel.\n ecModel.eachRawSeries(function (seriesModel) {\n // In case multiple series has same data name\n if (legendDrawnMap.get(name)) {\n return;\n }\n\n if (seriesModel.legendVisualProvider) {\n var provider = seriesModel.legendVisualProvider;\n\n if (!provider.containName(name)) {\n return;\n }\n\n var idx = provider.indexOfName(name);\n var color = provider.getItemVisual(idx, 'color');\n var borderColor = provider.getItemVisual(idx, 'borderColor');\n var legendSymbolType = 'roundRect';\n\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, selectMode); // FIXME: consider different series has items with the same name.\n\n\n itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)) // Should not specify the series name, consider legend controls\n // more than one pie series.\n .on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n legendDrawnMap.set(name, true);\n }\n }, this);\n }\n }, this);\n\n if (selector) {\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\n }\n },\n _createSelector: function (selector, legendModel, api, orient, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n each(selector, function (selectorItem) {\n createSelectorButton(selectorItem);\n });\n\n function createSelectorButton(selectorItem) {\n var type = selectorItem.type;\n var labelText = new graphic.Text({\n style: {\n x: 0,\n y: 0,\n align: 'center',\n verticalAlign: 'middle'\n },\n onclick: function () {\n api.dispatchAction({\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n });\n }\n });\n selectorGroup.add(labelText);\n var labelModel = legendModel.getModel('selectorLabel');\n var emphasisLabelModel = legendModel.getModel('emphasis.selectorLabel');\n graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, emphasisLabelModel, {\n defaultText: selectorItem.title,\n isRectText: false\n });\n graphic.setHoverStyle(labelText);\n }\n },\n _createItem: function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode) {\n var itemWidth = legendModel.get('itemWidth');\n var itemHeight = legendModel.get('itemHeight');\n var inactiveColor = legendModel.get('inactiveColor');\n var inactiveBorderColor = legendModel.get('inactiveBorderColor');\n var symbolKeepAspect = legendModel.get('symbolKeepAspect');\n var legendModelItemStyle = legendModel.getModel('itemStyle');\n var isSelected = legendModel.isSelected(name);\n var itemGroup = new Group();\n var textStyleModel = itemModel.getModel('textStyle');\n var itemIcon = itemModel.get('icon');\n var tooltipModel = itemModel.getModel('tooltip');\n var legendGlobalTooltipModel = tooltipModel.parentModel; // Use user given icon first\n\n legendSymbolType = itemIcon || legendSymbolType;\n var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, // symbolKeepAspect default true for legend\n symbolKeepAspect == null ? true : symbolKeepAspect);\n itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected)); // Compose symbols\n // PENDING\n\n if (!itemIcon && symbolType // At least show one symbol, can't be all none\n && (symbolType !== legendSymbolType || symbolType === 'none')) {\n var size = itemHeight * 0.8;\n\n if (symbolType === 'none') {\n symbolType = 'circle';\n }\n\n var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, // symbolKeepAspect default true for legend\n symbolKeepAspect == null ? true : symbolKeepAspect); // Put symbol in the center\n\n itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected));\n }\n\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n var textAlign = itemAlign;\n var formatter = legendModel.get('formatter');\n var content = name;\n\n if (typeof formatter === 'string' && formatter) {\n content = formatter.replace('{name}', name != null ? name : '');\n } else if (typeof formatter === 'function') {\n content = formatter(name);\n }\n\n itemGroup.add(new graphic.Text({\n style: graphic.setTextStyle({}, textStyleModel, {\n text: content,\n x: textX,\n y: itemHeight / 2,\n textFill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n textAlign: textAlign,\n textVerticalAlign: 'middle'\n })\n })); // Add a invisible rect to increase the area of mouse hover\n\n var hitRect = new graphic.Rect({\n shape: itemGroup.getBoundingRect(),\n invisible: true,\n tooltip: tooltipModel.get('show') ? zrUtil.extend({\n content: name,\n // Defaul formatter\n formatter: legendGlobalTooltipModel.get('formatter', true) || function () {\n return name;\n },\n formatterParams: {\n componentType: 'legend',\n legendIndex: legendModel.componentIndex,\n name: name,\n $vars: ['name']\n }\n }, tooltipModel.option) : null\n });\n itemGroup.add(hitRect);\n itemGroup.eachChild(function (child) {\n child.silent = true;\n });\n hitRect.silent = !selectMode;\n this.getContentGroup().add(itemGroup);\n graphic.setHoverStyle(itemGroup);\n itemGroup.__legendDataIndex = dataIndex;\n return itemGroup;\n },\n\n /**\n * @protected\n */\n layoutInner: function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var contentGroup = this.getContentGroup();\n var selectorGroup = this.getSelectorGroup(); // Place items in contentGroup.\n\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n var contentRect = contentGroup.getBoundingRect();\n var contentPos = [-contentRect.x, -contentRect.y];\n\n if (selector) {\n // Place buttons in selectorGroup\n layoutUtil.box( // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var orientIdx = legendModel.getOrient().index;\n var wh = orientIdx === 0 ? 'width' : 'height';\n var hw = orientIdx === 0 ? 'height' : 'width';\n var yx = orientIdx === 0 ? 'y' : 'x';\n\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n } else {\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n } //Always align selector to content as 'middle'\n\n\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n selectorGroup.attr('position', selectorPos);\n contentGroup.attr('position', contentPos);\n var mainRect = {\n x: 0,\n y: 0\n };\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n return mainRect;\n } else {\n contentGroup.attr('position', contentPos);\n return this.group.getBoundingRect();\n }\n },\n\n /**\n * @protected\n */\n remove: function () {\n this.getContentGroup().removeAll();\n this._isFirstRender = true;\n }\n});\n\nfunction setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected) {\n var itemStyle;\n\n if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\n itemStyle = legendModelItemStyle.getItemStyle();\n symbol.style.stroke = borderColor;\n\n if (!isSelected) {\n itemStyle.stroke = inactiveBorderColor;\n }\n } else {\n itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\n }\n\n return symbol.setStyle(itemStyle);\n}\n\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n // downplay before unselect\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n api.dispatchAction({\n type: 'legendToggleSelect',\n name: seriesName != null ? seriesName : dataName\n }); // highlight after select\n\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\n\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n // If element hover will move to a hoverLayer.\n var el = api.getZr().storage.getDisplayList()[0];\n\n if (!(el && el.useHoverLayer)) {\n api.dispatchAction({\n type: 'highlight',\n seriesName: seriesName,\n name: dataName,\n excludeSeriesId: excludeSeriesId\n });\n }\n}\n\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n // If element hover will move to a hoverLayer.\n var el = api.getZr().storage.getDisplayList()[0];\n\n if (!(el && el.useHoverLayer)) {\n api.dispatchAction({\n type: 'downplay',\n seriesName: seriesName,\n name: dataName,\n excludeSeriesId: excludeSeriesId\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 LegendModel = require(\"./LegendModel\");\n\nvar _layout = require(\"../../util/layout\");\n\nvar mergeLayoutParam = _layout.mergeLayoutParam;\nvar getLayoutParams = _layout.getLayoutParams;\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 ScrollableLegendModel = LegendModel.extend({\n type: 'legend.scroll',\n\n /**\n * @param {number} scrollDataIndex\n */\n setScrollDataIndex: function (scrollDataIndex) {\n this.option.scrollDataIndex = scrollDataIndex;\n },\n defaultOption: {\n scrollDataIndex: 0,\n pageButtonItemGap: 5,\n pageButtonGap: null,\n pageButtonPosition: 'end',\n // 'start' or 'end'\n pageFormatter: '{current}/{total}',\n // If null/undefined, do not show page.\n pageIcons: {\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n },\n pageIconColor: '#2f4554',\n pageIconInactiveColor: '#aaa',\n pageIconSize: 15,\n // Can be [10, 3], which represents [width, height]\n pageTextStyle: {\n color: '#333'\n },\n animationDurationUpdate: 800\n },\n\n /**\n * @override\n */\n init: function (option, parentModel, ecModel, extraOpt) {\n var inputPositionParams = getLayoutParams(option);\n ScrollableLegendModel.superCall(this, 'init', option, parentModel, ecModel, extraOpt);\n mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n },\n\n /**\n * @override\n */\n mergeOption: function (option, extraOpt) {\n ScrollableLegendModel.superCall(this, 'mergeOption', option, extraOpt);\n mergeAndNormalizeLayoutParams(this, this.option, option);\n }\n}); // Do not `ignoreSize` to enable setting {left: 10, right: 10}.\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n var orient = legendModel.getOrient();\n var ignoreSize = [1, 1];\n ignoreSize[orient.index] = 0;\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: ignoreSize\n });\n}\n\nvar _default = ScrollableLegendModel;\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 graphic = require(\"../../util/graphic\");\n\nvar layoutUtil = require(\"../../util/layout\");\n\nvar LegendView = require(\"./LegendView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Separate legend and scrollable legend to reduce package size.\n */\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\nvar ScrollableLegendView = LegendView.extend({\n type: 'legend.scroll',\n newlineDisabled: true,\n init: function () {\n ScrollableLegendView.superCall(this, 'init');\n /**\n * @private\n * @type {number} For `scroll`.\n */\n\n this._currentIndex = 0;\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n this.group.add(this._containerGroup = new Group());\n\n this._containerGroup.add(this.getContentGroup());\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n\n this.group.add(this._controllerGroup = new Group());\n /**\n *\n * @private\n */\n\n this._showController;\n },\n\n /**\n * @override\n */\n resetInner: function () {\n ScrollableLegendView.superCall(this, 'resetInner');\n\n this._controllerGroup.removeAll();\n\n this._containerGroup.removeClipPath();\n\n this._containerGroup.__rectSize = null;\n },\n\n /**\n * @override\n */\n renderInner: function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var me = this; // Render content items.\n\n ScrollableLegendView.superCall(this, 'renderInner', itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n var controllerGroup = this._controllerGroup; // FIXME: support be 'auto' adapt to size number text length,\n // e.g., '3/12345' should not overlap with the control arrow button.\n\n var pageIconSize = legendModel.get('pageIconSize', true);\n\n if (!zrUtil.isArray(pageIconSize)) {\n pageIconSize = [pageIconSize, pageIconSize];\n }\n\n createPageButton('pagePrev', 0);\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n controllerGroup.add(new graphic.Text({\n name: 'pageText',\n style: {\n textFill: pageTextStyleModel.getTextColor(),\n font: pageTextStyleModel.getFont(),\n textVerticalAlign: 'middle',\n textAlign: 'center'\n },\n silent: true\n }));\n createPageButton('pageNext', 1);\n\n function createPageButton(name, iconIdx) {\n var pageDataIndexName = name + 'DataIndex';\n var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n // Buttons will be created in each render, so we do not need\n // to worry about avoiding using legendModel kept in scope.\n onclick: zrUtil.bind(me._pageGo, me, pageDataIndexName, legendModel, api)\n }, {\n x: -pageIconSize[0] / 2,\n y: -pageIconSize[1] / 2,\n width: pageIconSize[0],\n height: pageIconSize[1]\n });\n icon.name = name;\n controllerGroup.add(icon);\n }\n },\n\n /**\n * @override\n */\n layoutInner: function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n var hw = WH[1 - orientIdx];\n var yx = XY[1 - orientIdx];\n selector && layoutUtil.box( // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var processMaxSize = zrUtil.clone(maxSize);\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx);\n\n if (selector) {\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n } else {\n var offset = selectorRect[wh] + selectorButtonGap;\n selectorPos[orientIdx] -= offset;\n mainRect[xy] -= offset;\n }\n\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n selectorGroup.attr('position', selectorPos);\n }\n\n return mainRect;\n },\n _layoutContentAndController: function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx) {\n var contentGroup = this.getContentGroup();\n var containerGroup = this._containerGroup;\n var controllerGroup = this._controllerGroup; // Place items in contentGroup.\n\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n layoutUtil.box( // Buttons in controller are layout always horizontally.\n 'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n var contentRect = contentGroup.getBoundingRect();\n var controllerRect = controllerGroup.getBoundingRect();\n var showController = this._showController = contentRect[wh] > maxSize[wh];\n var contentPos = [-contentRect.x, -contentRect.y]; // Remain contentPos when scroll animation perfroming.\n // If first rendering, `contentGroup.position` is [0, 0], which\n // does not make sense and may cause unexepcted animation if adopted.\n\n if (!isFirstRender) {\n contentPos[orientIdx] = contentGroup.position[orientIdx];\n } // Layout container group based on 0.\n\n\n var containerPos = [0, 0];\n var controllerPos = [-controllerRect.x, -controllerRect.y];\n var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true)); // Place containerGroup and controllerGroup and contentGroup.\n\n if (showController) {\n var pageButtonPosition = legendModel.get('pageButtonPosition', true); // controller is on the right / bottom.\n\n if (pageButtonPosition === 'end') {\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n } // controller is on the left / top.\n else {\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n }\n } // Always align controller to content as 'middle'.\n\n\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n contentGroup.attr('position', contentPos);\n containerGroup.attr('position', containerPos);\n controllerGroup.attr('position', controllerPos); // Calculate `mainRect` and set `clipPath`.\n // mainRect should not be calculated by `this.group.getBoundingRect()`\n // for sake of the overflow.\n\n var mainRect = {\n x: 0,\n y: 0\n }; // Consider content may be overflow (should be clipped).\n\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n containerGroup.__rectSize = maxSize[wh];\n\n if (showController) {\n var clipShape = {\n x: 0,\n y: 0\n };\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n clipShape[hw] = mainRect[hw];\n containerGroup.setClipPath(new graphic.Rect({\n shape: clipShape\n })); // Consider content may be larger than container, container rect\n // can not be obtained from `containerGroup.getBoundingRect()`.\n\n containerGroup.__rectSize = clipShape[wh];\n } else {\n // Do not remove or ignore controller. Keep them set as placeholders.\n controllerGroup.eachChild(function (child) {\n child.attr({\n invisible: true,\n silent: true\n });\n });\n } // Content translate animation.\n\n\n var pageInfo = this._getPageInfo(legendModel);\n\n pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n position: pageInfo.contentPosition\n }, // When switch from \"show controller\" to \"not show controller\", view should be\n // updated immediately without animation, otherwise causes weird effect.\n showController ? legendModel : false);\n\n this._updatePageInfoView(legendModel, pageInfo);\n\n return mainRect;\n },\n _pageGo: function (to, legendModel, api) {\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n scrollDataIndex != null && api.dispatchAction({\n type: 'legendScroll',\n scrollDataIndex: scrollDataIndex,\n legendId: legendModel.id\n });\n },\n _updatePageInfoView: function (legendModel, pageInfo) {\n var controllerGroup = this._controllerGroup;\n zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n var canJump = pageInfo[name + 'DataIndex'] != null;\n var icon = controllerGroup.childOfName(name);\n\n if (icon) {\n icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n icon.cursor = canJump ? 'pointer' : 'default';\n }\n });\n var pageText = controllerGroup.childOfName('pageText');\n var pageFormatter = legendModel.get('pageFormatter');\n var pageIndex = pageInfo.pageIndex;\n var current = pageIndex != null ? pageIndex + 1 : 0;\n var total = pageInfo.pageCount;\n pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current).replace('{total}', total) : pageFormatter({\n current: current,\n total: total\n }));\n },\n\n /**\n * @param {module:echarts/model/Model} legendModel\n * @return {Object} {\n * contentPosition: Array.<number>, null when data item not found.\n * pageIndex: number, null when data item not found.\n * pageCount: number, always be a number, can be 0.\n * pagePrevDataIndex: number, null when no previous page.\n * pageNextDataIndex: number, null when no next page.\n * }\n */\n _getPageInfo: function (legendModel) {\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n var contentGroup = this.getContentGroup();\n var containerRectSize = this._containerGroup.__rectSize;\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n var children = contentGroup.children();\n var targetItem = children[targetItemIndex];\n var itemCount = children.length;\n var pCount = !itemCount ? 0 : 1;\n var result = {\n contentPosition: contentGroup.position.slice(),\n pageCount: pCount,\n pageIndex: pCount - 1,\n pagePrevDataIndex: null,\n pageNextDataIndex: null\n };\n\n if (!targetItem) {\n return result;\n }\n\n var targetItemInfo = getItemInfo(targetItem);\n result.contentPosition[orientIdx] = -targetItemInfo.s; // Strategy:\n // (1) Always align based on the left/top most item.\n // (2) It is user-friendly that the last item shown in the\n // current window is shown at the begining of next window.\n // Otherwise if half of the last item is cut by the window,\n // it will have no chance to display entirely.\n // (3) Consider that item size probably be different, we\n // have calculate pageIndex by size rather than item index,\n // and we can not get page index directly by division.\n // (4) The window is to narrow to contain more than\n // one item, we should make sure that the page can be fliped.\n\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // Half of the last item is out of the window.\n !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || // If the current item does not intersect with the window, the new page\n // can be started at the current item or the last item.\n currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n if (winEndItemInfo.i > winStartItemInfo.i) {\n winStartItemInfo = winEndItemInfo;\n } else {\n // e.g., when page size is smaller than item size.\n winStartItemInfo = currItemInfo;\n }\n\n if (winStartItemInfo) {\n if (result.pageNextDataIndex == null) {\n result.pageNextDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n }\n }\n\n winEndItemInfo = currItemInfo;\n }\n\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // If the the end item does not intersect with the window started\n // from the current item, a page can be settled.\n (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && // e.g., when page size is smaller than item size.\n winStartItemInfo.i < winEndItemInfo.i) {\n winEndItemInfo = winStartItemInfo;\n\n if (result.pagePrevDataIndex == null) {\n result.pagePrevDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n ++result.pageIndex;\n }\n\n winStartItemInfo = currItemInfo;\n }\n\n return result;\n\n function getItemInfo(el) {\n if (el) {\n var itemRect = el.getBoundingRect();\n var start = itemRect[xy] + el.position[orientIdx];\n return {\n s: start,\n e: start + itemRect[wh],\n i: el.__legendDataIndex\n };\n }\n }\n\n function intersect(itemInfo, winStart) {\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n }\n },\n _findTargetItemIndex: function (targetDataIndex) {\n if (!this._showController) {\n return 0;\n }\n\n var index;\n var contentGroup = this.getContentGroup();\n var defaultIndex;\n contentGroup.eachChild(function (child, idx) {\n var legendDataIdx = child.__legendDataIndex; // FIXME\n // If the given targetDataIndex (from model) is illegal,\n // we use defualtIndex. But the index on the legend model and\n // action payload is still illegal. That case will not be\n // changed until some scenario requires.\n\n if (defaultIndex == null && legendDataIdx != null) {\n defaultIndex = idx;\n }\n\n if (legendDataIdx === targetDataIndex) {\n index = idx;\n }\n });\n return index != null ? index : defaultIndex;\n }\n});\nvar _default = ScrollableLegendView;\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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n var selectedMap = {};\n var isToggleSelect = methodName === 'toggleSelected';\n var isSelected; // Update all legend components\n\n ecModel.eachComponent('legend', function (legendModel) {\n if (isToggleSelect && isSelected != null) {\n // Force other legend has same selected status\n // Or the first is toggled to true and other are toggled to false\n // In the case one legend has some item unSelected in option. And if other legend\n // doesn't has the item, they will assume it is selected.\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n legendModel[methodName]();\n } else {\n legendModel[methodName](payload.name);\n isSelected = legendModel.isSelected(payload.name);\n }\n\n var legendData = legendModel.getData();\n zrUtil.each(legendData, function (model) {\n var name = model.get('name'); // Wrap element\n\n if (name === '\\n' || name === '') {\n return;\n }\n\n var isItemSelected = legendModel.isSelected(name);\n\n if (selectedMap.hasOwnProperty(name)) {\n // Unselected if any legend is unselected\n selectedMap[name] = selectedMap[name] && isItemSelected;\n } else {\n selectedMap[name] = isItemSelected;\n }\n });\n }); // Return the event explicitly\n\n return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n selected: selectedMap\n } : {\n name: payload.name,\n selected: selectedMap\n };\n}\n/**\n * @event legendToggleSelect\n * @type {Object}\n * @property {string} type 'legendToggleSelect'\n * @property {string} [from]\n * @property {string} name Series name or data item name\n */\n\n\necharts.registerAction('legendToggleSelect', 'legendselectchanged', zrUtil.curry(legendSelectActionHandler, 'toggleSelected'));\necharts.registerAction('legendAllSelect', 'legendselectall', zrUtil.curry(legendSelectActionHandler, 'allSelect'));\necharts.registerAction('legendInverseSelect', 'legendinverseselect', zrUtil.curry(legendSelectActionHandler, 'inverseSelect'));\n/**\n * @event legendSelect\n * @type {Object}\n * @property {string} type 'legendSelect'\n * @property {string} name Series name or data item name\n */\n\necharts.registerAction('legendSelect', 'legendselected', zrUtil.curry(legendSelectActionHandler, 'select'));\n/**\n * @event legendUnSelect\n * @type {Object}\n * @property {string} type 'legendUnSelect'\n * @property {string} name Series name or data item name\n */\n\necharts.registerAction('legendUnSelect', 'legendunselected', zrUtil.curry(legendSelectActionHandler, 'unSelect'));","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (legendModels && legendModels.length) {\n ecModel.filterSeries(function (series) {\n // If in any legend component the status is not selected.\n // Because in legend series is assumed selected when it is not in the legend data.\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(series.name)) {\n return false;\n }\n }\n\n return true;\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 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*/\n\n/**\n * @event legendScroll\n * @type {Object}\n * @property {string} type 'legendScroll'\n * @property {string} scrollDataIndex\n */\necharts.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n var scrollDataIndex = payload.scrollDataIndex;\n scrollDataIndex != null && ecModel.eachComponent({\n mainType: 'legend',\n subType: 'scroll',\n query: payload\n }, function (legendModel) {\n legendModel.setScrollDataIndex(scrollDataIndex);\n });\n});"],"names":["zrUtil","_default","updateSelectedMap","targetList","this","_targetList","isArray","slice","_selectTargetMap","reduce","targetMap","target","set","name","createHashMap","select","id","get","selectedMode","each","selected","unSelect","toggleSelected","isSelected","module","exports","delta","handleEnds","extent","handleIndex","minSpan","maxSpan","extentSpan","restrict","Math","max","handleSpan","abs","originalDistSign","getSpanSign","extentMinSpan","realExtent","sign","currDistSign","span","dist","value","extend","min","Infinity","echarts","legendFilter","Component","registerProcessor","PRIORITY","PROCESSOR","SERIES_FILTER","registerSubTypeDefaulter","Model","_model","isNameSpecified","lang","langSelector","legend","selector","defaultSelectorOption","all","type","title","clone","inverse","LegendModel","extendComponentModel","dependencies","layoutMode","ignoreSize","init","option","parentModel","ecModel","mergeDefaultAndTheme","_updateSelector","mergeOption","superCall","item","index","isString","merge","optionUpdated","_updateData","legendData","_data","hasSelected","i","length","potentialData","availableNames","eachRawSeries","seriesModel","isPotential","seriesName","push","legendVisualProvider","provider","names","getAllNames","isSeriesFiltered","concat","_availableNames","rawData","map","dataItem","getData","data","hasOwnProperty","allSelect","inverseSelect","indexOf","getOrient","defaultOption","zlevel","z","show","orient","left","top","align","backgroundColor","borderColor","borderRadius","borderWidth","padding","itemGap","itemWidth","itemHeight","inactiveColor","inactiveBorderColor","itemStyle","textStyle","color","selectorLabel","fontSize","fontFamily","emphasis","selectorPosition","selectorItemGap","selectorButtonGap","tooltip","_config","__DEV__","_symbol","createSymbol","graphic","_listComponent","makeBackground","layoutUtil","curry","Group","extendComponentView","newlineDisabled","group","add","_contentGroup","_backgroundEl","_selectorGroup","_isFirstRender","getContentGroup","getSelectorGroup","render","legendModel","api","isFirstRender","resetInner","itemAlign","renderInner","positionInfo","getBoxLayoutParams","viewportSize","width","getWidth","height","getHeight","maxSize","getLayoutRect","mainRect","layoutInner","layoutRect","defaults","attr","x","y","removeAll","remove","contentGroup","legendDrawnMap","selectMode","excludeSeriesId","itemModel","dataIndex","getSeriesByName","getVisual","getDataParams","legendSymbolType","symbolType","itemGroup","_createItem","on","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","containName","idx","indexOfName","getItemVisual","newline","_createSelector","selectorGroup","createSelectorButton","selectorItem","labelText","Text","style","verticalAlign","onclick","dispatchAction","labelModel","getModel","emphasisLabelModel","setLabelStyle","hoverStyle","defaultText","isRectText","setHoverStyle","symbolKeepAspect","legendModelItemStyle","textStyleModel","itemIcon","tooltipModel","legendGlobalTooltipModel","legendSymbol","setSymbolStyle","size","legendSymbolCenter","textX","textAlign","formatter","content","replace","setTextStyle","text","textFill","getTextColor","textVerticalAlign","hitRect","Rect","shape","getBoundingRect","invisible","formatterParams","componentType","legendIndex","componentIndex","$vars","eachChild","child","silent","__legendDataIndex","box","contentRect","contentPos","selectorRect","selectorPos","orientIdx","wh","hw","yx","symbol","getItemStyle","stroke","setStyle","dataName","el","getZr","storage","getDisplayList","useHoverLayer","_layout","mergeLayoutParam","getLayoutParams","ScrollableLegendModel","setScrollDataIndex","scrollDataIndex","pageButtonItemGap","pageButtonGap","pageButtonPosition","pageFormatter","pageIcons","horizontal","vertical","pageIconColor","pageIconInactiveColor","pageIconSize","pageTextStyle","animationDurationUpdate","extraOpt","inputPositionParams","mergeAndNormalizeLayoutParams","raw","LegendView","WH","XY","ScrollableLegendView","_currentIndex","_containerGroup","_controllerGroup","_showController","removeClipPath","__rectSize","me","controllerGroup","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","icon","createIcon","bind","_pageGo","font","getFont","xy","processMaxSize","_layoutContentAndController","offset","containerGroup","controllerRect","showController","position","containerPos","controllerPos","retrieve2","clipShape","setClipPath","pageInfo","_getPageInfo","pageIndex","updateProps","contentPosition","_updatePageInfoView","to","legendId","canJump","childOfName","cursor","pageText","current","total","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","children","targetItem","itemCount","pCount","result","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","s","winStartItemInfo","winEndItemInfo","currItemInfo","e","intersect","itemRect","start","itemInfo","winStart","targetDataIndex","defaultIndex","legendDataIdx","legendSelectActionHandler","methodName","payload","selectedMap","isToggleSelect","eachComponent","model","isItemSelected","registerAction","legendModels","findComponents","mainType","filterSeries","series","subType","query"],"sourceRoot":""}