chunk-vendors-b886e5fb.f2ea3bb7.js.map 102 KB

1
  1. {"version":3,"file":"js/chunk-vendors-b886e5fb.f2ea3bb7.js","mappings":"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","sources":["webpack://app/./node_modules/echarts/lib/component/axis/parallelAxisAction.js","webpack://app/./node_modules/echarts/lib/component/brush.js","webpack://app/./node_modules/echarts/lib/component/brush/BrushModel.js","webpack://app/./node_modules/echarts/lib/component/brush/BrushView.js","webpack://app/./node_modules/echarts/lib/component/brush/brushAction.js","webpack://app/./node_modules/echarts/lib/component/brush/preprocessor.js","webpack://app/./node_modules/echarts/lib/component/brush/selector.js","webpack://app/./node_modules/echarts/lib/component/brush/visualEncoding.js","webpack://app/./node_modules/echarts/lib/component/calendar.js","webpack://app/./node_modules/echarts/lib/component/calendar/CalendarView.js","webpack://app/./node_modules/echarts/lib/component/dataZoomInside.js","webpack://app/./node_modules/echarts/lib/component/dataZoomSelect.js","webpack://app/./node_modules/echarts/lib/component/dataZoomSlider.js","webpack://app/./node_modules/echarts/lib/component/dataZoom/AxisProxy.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 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 * @payload\n * @property {string} parallelAxisId\n * @property {Array.<Array.<number>>} intervals\n */\nvar actionInfo = {\n type: 'axisAreaSelect',\n event: 'axisAreaSelected' // update: 'updateVisual'\n\n};\necharts.registerAction(actionInfo, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'parallelAxis',\n query: payload\n }, function (parallelAxisModel) {\n parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n });\n});\n/**\n * @payload\n */\n\necharts.registerAction('parallelAxisExpand', function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'parallel',\n query: payload\n }, function (parallelModel) {\n parallelModel.setAxisExpand(payload);\n });\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nvar preprocessor = require(\"./brush/preprocessor\");\n\nrequire(\"./brush/visualEncoding\");\n\nrequire(\"./brush/BrushModel\");\n\nrequire(\"./brush/BrushView\");\n\nrequire(\"./brush/brushAction\");\n\nrequire(\"./toolbox/feature/Brush\");\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 * Brush component entry\n */\necharts.registerPreprocessor(preprocessor);","\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 visualSolution = require(\"../../visual/visualSolution\");\n\nvar Model = require(\"../../model/Model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar DEFAULT_OUT_OF_BRUSH_COLOR = ['#ddd'];\nvar BrushModel = echarts.extendComponentModel({\n type: 'brush',\n dependencies: ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'],\n\n /**\n * @protected\n */\n defaultOption: {\n // inBrush: null,\n // outOfBrush: null,\n toolbox: null,\n // Default value see preprocessor.\n brushLink: null,\n // Series indices array, broadcast using dataIndex.\n // or 'all', which means all series. 'none' or null means no series.\n seriesIndex: 'all',\n // seriesIndex array, specify series controlled by this brush component.\n geoIndex: null,\n //\n xAxisIndex: null,\n yAxisIndex: null,\n brushType: 'rect',\n // Default brushType, see BrushController.\n brushMode: 'single',\n // Default brushMode, 'single' or 'multiple'\n transformable: true,\n // Default transformable.\n brushStyle: {\n // Default brushStyle\n borderWidth: 1,\n color: 'rgba(120,140,180,0.3)',\n borderColor: 'rgba(120,140,180,0.8)'\n },\n throttleType: 'fixRate',\n // Throttle in brushSelected event. 'fixRate' or 'debounce'.\n // If null, no throttle. Valid only in the first brush component\n throttleDelay: 0,\n // Unit: ms, 0 means every event will be triggered.\n // FIXME\n // 试验效果\n removeOnClick: true,\n z: 10000\n },\n\n /**\n * @readOnly\n * @type {Array.<Object>}\n */\n areas: [],\n\n /**\n * Current activated brush type.\n * If null, brush is inactived.\n * see module:echarts/component/helper/BrushController\n * @readOnly\n * @type {string}\n */\n brushType: null,\n\n /**\n * Current brush opt.\n * see module:echarts/component/helper/BrushController\n * @readOnly\n * @type {Object}\n */\n brushOption: {},\n\n /**\n * @readOnly\n * @type {Array.<Object>}\n */\n coordInfoList: [],\n optionUpdated: function (newOption, isInit) {\n var thisOption = this.option;\n !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n var inBrush = thisOption.inBrush = thisOption.inBrush || {}; // Always give default visual, consider setOption at the second time.\n\n thisOption.outOfBrush = thisOption.outOfBrush || {\n color: DEFAULT_OUT_OF_BRUSH_COLOR\n };\n\n if (!inBrush.hasOwnProperty('liftZ')) {\n // Bigger than the highlight z lift, otherwise it will\n // be effected by the highlight z when brush.\n inBrush.liftZ = 5;\n }\n },\n\n /**\n * If ranges is null/undefined, range state remain.\n *\n * @param {Array.<Object>} [ranges]\n */\n setAreas: function (areas) {\n // If ranges is null/undefined, range state remain.\n // This helps user to dispatchAction({type: 'brush'}) with no areas\n // set but just want to get the current brush select info from a `brush` event.\n if (!areas) {\n return;\n }\n\n this.areas = zrUtil.map(areas, function (area) {\n return generateBrushOption(this.option, area);\n }, this);\n },\n\n /**\n * see module:echarts/component/helper/BrushController\n * @param {Object} brushOption\n */\n setBrushOption: function (brushOption) {\n this.brushOption = generateBrushOption(this.option, brushOption);\n this.brushType = this.brushOption.brushType;\n }\n});\n\nfunction generateBrushOption(option, brushOption) {\n return zrUtil.merge({\n brushType: option.brushType,\n brushMode: option.brushMode,\n transformable: option.transformable,\n brushStyle: new Model(option.brushStyle).getItemStyle(),\n removeOnClick: option.removeOnClick,\n z: option.z\n }, brushOption, true);\n}\n\nvar _default = BrushModel;\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 _visualEncoding = require(\"./visualEncoding\");\n\nvar layoutCovers = _visualEncoding.layoutCovers;\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: 'brush',\n init: function (ecModel, api) {\n /**\n * @readOnly\n * @type {module:echarts/model/Global}\n */\n this.ecModel = ecModel;\n /**\n * @readOnly\n * @type {module:echarts/ExtensionAPI}\n */\n\n this.api = api;\n /**\n * @readOnly\n * @type {module:echarts/component/brush/BrushModel}\n */\n\n this.model;\n /**\n * @private\n * @type {module:echarts/component/helper/BrushController}\n */\n\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n },\n\n /**\n * @override\n */\n render: function (brushModel) {\n this.model = brushModel;\n return updateController.apply(this, arguments);\n },\n\n /**\n * @override\n */\n updateTransform: function (brushModel, ecModel) {\n // PENDING: `updateTransform` is a little tricky, whose layout need\n // to be calculate mandatorily and other stages will not be performed.\n // Take care the correctness of the logic. See #11754 .\n layoutCovers(ecModel);\n return updateController.apply(this, arguments);\n },\n\n /**\n * @override\n */\n updateView: updateController,\n // /**\n // * @override\n // */\n // updateLayout: updateController,\n // /**\n // * @override\n // */\n // updateVisual: updateController,\n\n /**\n * @override\n */\n dispose: function () {\n this._brushController.dispose();\n },\n\n /**\n * @private\n */\n _onBrush: function (areas, opt) {\n var modelId = this.model.id;\n this.model.brushTargetManager.setOutputRanges(areas, this.ecModel); // Action is not dispatched on drag end, because the drag end\n // emits the same params with the last drag move event, and\n // may have some delay when using touch pad, which makes\n // animation not smooth (when using debounce).\n\n (!opt.isEnd || opt.removeOnClick) && this.api.dispatchAction({\n type: 'brush',\n brushId: modelId,\n areas: zrUtil.clone(areas),\n $from: modelId\n });\n opt.isEnd && this.api.dispatchAction({\n type: 'brushEnd',\n brushId: modelId,\n areas: zrUtil.clone(areas),\n $from: modelId\n });\n }\n});\n\nfunction updateController(brushModel, ecModel, api, payload) {\n // Do not update controller when drawing.\n (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice());\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 * payload: {\n * brushIndex: number, or,\n * brushId: string, or,\n * brushName: string,\n * globalRanges: Array\n * }\n */\necharts.registerAction({\n type: 'brush',\n event: 'brush'\n /*, update: 'updateView' */\n\n}, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'brush',\n query: payload\n }, function (brushModel) {\n brushModel.setAreas(payload.areas);\n });\n});\n/**\n * payload: {\n * brushComponents: [\n * {\n * brushId,\n * brushIndex,\n * brushName,\n * series: [\n * {\n * seriesId,\n * seriesIndex,\n * seriesName,\n * rawIndices: [21, 34, ...]\n * },\n * ...\n * ]\n * },\n * ...\n * ]\n * }\n */\n\necharts.registerAction({\n type: 'brushSelect',\n event: 'brushSelected',\n update: 'none'\n}, function () {});\necharts.registerAction({\n type: 'brushEnd',\n event: 'brushEnd',\n update: 'none'\n}, function () {});","\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*/\nvar DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\n\nfunction _default(option, isNew) {\n var brushComponents = option && option.brush;\n\n if (!zrUtil.isArray(brushComponents)) {\n brushComponents = brushComponents ? [brushComponents] : [];\n }\n\n if (!brushComponents.length) {\n return;\n }\n\n var brushComponentSpecifiedBtns = [];\n zrUtil.each(brushComponents, function (brushOpt) {\n var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : [];\n\n if (tbs instanceof Array) {\n brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\n }\n });\n var toolbox = option && option.toolbox;\n\n if (zrUtil.isArray(toolbox)) {\n toolbox = toolbox[0];\n }\n\n if (!toolbox) {\n toolbox = {\n feature: {}\n };\n option.toolbox = [toolbox];\n }\n\n var toolboxFeature = toolbox.feature || (toolbox.feature = {});\n var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {});\n var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\n brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\n removeDuplicate(brushTypes);\n\n if (isNew && !brushTypes.length) {\n brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\n }\n}\n\nfunction removeDuplicate(arr) {\n var map = {};\n zrUtil.each(arr, function (val) {\n map[val] = 1;\n });\n arr.length = 0;\n zrUtil.each(map, function (flag, val) {\n arr.push(val);\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 polygonContain = require(\"zrender/lib/contain/polygon\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar _graphic = require(\"../../util/graphic\");\n\nvar linePolygonIntersect = _graphic.linePolygonIntersect;\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// Key of the first level is brushType: `line`, `rect`, `polygon`.\n// Key of the second level is chart element type: `point`, `rect`.\n// See moudule:echarts/component/helper/BrushController\n// function param:\n// {Object} itemLayout fetch from data.getItemLayout(dataIndex)\n// {Object} selectors {point: selector, rect: selector, ...}\n// {Object} area {range: [[], [], ..], boudingRect}\n// function return:\n// {boolean} Whether in the given brush.\nvar selector = {\n lineX: getLineSelectors(0),\n lineY: getLineSelectors(1),\n rect: {\n point: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\n },\n rect: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.intersect(itemLayout);\n }\n },\n polygon: {\n point: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]);\n },\n rect: function (itemLayout, selectors, area) {\n var points = area.range;\n\n if (!itemLayout || points.length <= 1) {\n return false;\n }\n\n var x = itemLayout.x;\n var y = itemLayout.y;\n var width = itemLayout.width;\n var height = itemLayout.height;\n var p = points[0];\n\n if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || linePolygonIntersect(x, y, x + width, y, points) || linePolygonIntersect(x, y, x, y + height, points) || linePolygonIntersect(x + width, y, x + width, y + height, points) || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\n return true;\n }\n }\n }\n};\n\nfunction getLineSelectors(xyIndex) {\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n return {\n point: function (itemLayout, selectors, area) {\n if (itemLayout) {\n var range = area.range;\n var p = itemLayout[xyIndex];\n return inLineRange(p, range);\n }\n },\n rect: function (itemLayout, selectors, area) {\n if (itemLayout) {\n var range = area.range;\n var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]];\n layoutRange[1] < layoutRange[0] && layoutRange.reverse();\n return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange);\n }\n }\n };\n}\n\nfunction inLineRange(p, range) {\n return range[0] <= p && p <= range[1];\n}\n\nvar _default = selector;\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 BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar visualSolution = require(\"../../visual/visualSolution\");\n\nvar selector = require(\"./selector\");\n\nvar throttleUtil = require(\"../../util/throttle\");\n\nvar BrushTargetManager = require(\"../helper/BrushTargetManager\");\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 STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\nvar PRIORITY_BRUSH = echarts.PRIORITY.VISUAL.BRUSH;\n/**\n * Layout for visual, the priority higher than other layout, and before brush visual.\n */\n\necharts.registerLayout(PRIORITY_BRUSH, function (ecModel, api, payload) {\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n brushType: false\n });\n });\n layoutCovers(ecModel);\n});\n\nfunction layoutCovers(ecModel) {\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n });\n}\n/**\n * Register the visual encoding if this modules required.\n */\n\n\necharts.registerVisual(PRIORITY_BRUSH, function (ecModel, api, payload) {\n var brushSelected = [];\n var throttleType;\n var throttleDelay;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel, brushIndex) {\n var thisBrushSelected = {\n brushId: brushModel.id,\n brushIndex: brushIndex,\n brushName: brushModel.name,\n areas: zrUtil.clone(brushModel.areas),\n selected: []\n }; // Every brush component exists in event params, convenient\n // for user to find by index.\n\n brushSelected.push(thisBrushSelected);\n var brushOption = brushModel.option;\n var brushLink = brushOption.brushLink;\n var linkedSeriesMap = [];\n var selectedDataIndexForLink = [];\n var rangeInfoBySeries = [];\n var hasBrushExists = 0;\n\n if (!brushIndex) {\n // Only the first throttle setting works.\n throttleType = brushOption.throttleType;\n throttleDelay = brushOption.throttleDelay;\n } // Add boundingRect and selectors to range.\n\n\n var areas = zrUtil.map(brushModel.areas, function (area) {\n return bindSelector(zrUtil.defaults({\n boundingRect: boundingRectBuilders[area.brushType](area)\n }, area));\n });\n var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n mappingOption.mappingMethod = 'fixed';\n });\n zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n linkedSeriesMap[seriesIndex] = 1;\n });\n\n function linkOthers(seriesIndex) {\n return brushLink === 'all' || linkedSeriesMap[seriesIndex];\n } // If no supported brush or no brush on the series,\n // all visuals should be in original state.\n\n\n function brushed(rangeInfoList) {\n return !!rangeInfoList.length;\n }\n /**\n * Logic for each series: (If the logic has to be modified one day, do it carefully!)\n *\n * ( brushed ┬ && ┬hasBrushExist ┬ && linkOthers ) => StepA: ┬record, ┬ StepB: ┬visualByRecord.\n * !brushed┘ ├hasBrushExist ┤ └nothing,┘ ├visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( !brushed && ┬hasBrushExist ┬ && linkOthers ) => StepA: nothing, StepB: ┬visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( brushed ┬ && !linkOthers ) => StepA: nothing, StepB: ┬visualByCheck.\n * !brushed┘ └nothing.\n * ( !brushed && !linkOthers ) => StepA: nothing, StepB: nothing.\n */\n // Step A\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex, rangeInfoList) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n });\n\n function stepAParallel(seriesModel, seriesIndex) {\n var coordSys = seriesModel.coordinateSystem;\n hasBrushExists |= coordSys.hasAxisBrushed();\n linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n });\n }\n\n function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n\n if (!selectorsByBrushType || brushModelNotControll(brushModel, seriesIndex)) {\n return;\n }\n\n zrUtil.each(areas, function (area) {\n selectorsByBrushType[area.brushType] && brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel) && rangeInfoList.push(area);\n hasBrushExists |= brushed(rangeInfoList);\n });\n\n if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n var data = seriesModel.getData();\n data.each(function (dataIndex) {\n if (checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex)) {\n selectedDataIndexForLink[dataIndex] = 1;\n }\n });\n }\n } // Step B\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var seriesBrushSelected = {\n seriesId: seriesModel.id,\n seriesIndex: seriesIndex,\n seriesName: seriesModel.name,\n dataIndex: []\n }; // Every series exists in event params, convenient\n // for user to find series by seriesIndex.\n\n thisBrushSelected.selected.push(seriesBrushSelected);\n var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n var rangeInfoList = rangeInfoBySeries[seriesIndex];\n var data = seriesModel.getData();\n var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n } : function (dataIndex) {\n return checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n }; // If no supported brush or no brush, all visuals are in original state.\n\n (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n });\n });\n dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n});\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n // This event will not be triggered when `setOpion`, otherwise dead lock may\n // triggered when do `setOption` in event listener, which we do not find\n // satisfactory way to solve yet. Some considered resolutions:\n // (a) Diff with prevoius selected data ant only trigger event when changed.\n // But store previous data and diff precisely (i.e., not only by dataIndex, but\n // also detect value changes in selected data) might bring complexity or fragility.\n // (b) Use spectial param like `silent` to suppress event triggering.\n // But such kind of volatile param may be weird in `setOption`.\n if (!payload) {\n return;\n }\n\n var zr = api.getZr();\n\n if (zr[DISPATCH_FLAG]) {\n return;\n }\n\n if (!zr[DISPATCH_METHOD]) {\n zr[DISPATCH_METHOD] = doDispatch;\n }\n\n var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n if (!api.isDisposed()) {\n var zr = api.getZr();\n zr[DISPATCH_FLAG] = true;\n api.dispatchAction({\n type: 'brushSelect',\n batch: brushSelected\n });\n zr[DISPATCH_FLAG] = false;\n }\n}\n\nfunction checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) {\n for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n var area = rangeInfoList[i];\n\n if (selectorsByBrushType[area.brushType](dataIndex, data, area.selectors, area)) {\n return true;\n }\n }\n}\n\nfunction getSelectorsByBrushType(seriesModel) {\n var brushSelector = seriesModel.brushSelector;\n\n if (zrUtil.isString(brushSelector)) {\n var sels = [];\n zrUtil.each(selector, function (selectorsByElementType, brushType) {\n sels[brushType] = function (dataIndex, data, selectors, area) {\n var itemLayout = data.getItemLayout(dataIndex);\n return selectorsByElementType[brushSelector](itemLayout, selectors, area);\n };\n });\n return sels;\n } else if (zrUtil.isFunction(brushSelector)) {\n var bSelector = {};\n zrUtil.each(selector, function (sel, brushType) {\n bSelector[brushType] = brushSelector;\n });\n return bSelector;\n }\n\n return brushSelector;\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n var seriesIndices = brushModel.option.seriesIndex;\n return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nfunction bindSelector(area) {\n var selectors = area.selectors = {};\n zrUtil.each(selector[area.brushType], function (selFn, elType) {\n // Do not use function binding or curry for performance.\n selectors[elType] = function (itemLayout) {\n return selFn(itemLayout, selectors, area);\n };\n });\n return area;\n}\n\nvar boundingRectBuilders = {\n lineX: zrUtil.noop,\n lineY: zrUtil.noop,\n rect: function (area) {\n return getBoundingRectFromMinMax(area.range);\n },\n polygon: function (area) {\n var minMax;\n var range = area.range;\n\n for (var i = 0, len = range.length; i < len; i++) {\n minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n var rg = range[i];\n rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n }\n\n return minMax && getBoundingRectFromMinMax(minMax);\n }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}\n\nexports.layoutCovers = layoutCovers;","\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(\"../coord/calendar/Calendar\");\n\nrequire(\"../coord/calendar/CalendarModel\");\n\nrequire(\"./calendar/CalendarView\");","\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 graphic = require(\"../../util/graphic\");\n\nvar formatUtil = require(\"../../util/format\");\n\nvar numberUtil = require(\"../../util/number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar MONTH_TEXT = {\n EN: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n CN: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar WEEK_TEXT = {\n EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n CN: ['日', '一', '二', '三', '四', '五', '六']\n};\n\nvar _default = echarts.extendComponentView({\n type: 'calendar',\n\n /**\n * top/left line points\n * @private\n */\n _tlpoints: null,\n\n /**\n * bottom/right line points\n * @private\n */\n _blpoints: null,\n\n /**\n * first day of month\n * @private\n */\n _firstDayOfMonth: null,\n\n /**\n * first day point of month\n * @private\n */\n _firstDayPoints: null,\n render: function (calendarModel, ecModel, api) {\n var group = this.group;\n group.removeAll();\n var coordSys = calendarModel.coordinateSystem; // range info\n\n var rangeData = coordSys.getRangeInfo();\n var orient = coordSys.getOrient();\n\n this._renderDayRect(calendarModel, rangeData, group); // _renderLines must be called prior to following function\n\n\n this._renderLines(calendarModel, rangeData, orient, group);\n\n this._renderYearText(calendarModel, rangeData, orient, group);\n\n this._renderMonthText(calendarModel, orient, group);\n\n this._renderWeekText(calendarModel, rangeData, orient, group);\n },\n // render day rect\n _renderDayRect: function (calendarModel, rangeData, group) {\n var coordSys = calendarModel.coordinateSystem;\n var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n var sw = coordSys.getCellWidth();\n var sh = coordSys.getCellHeight();\n\n for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n var point = coordSys.dataToRect([i], false).tl; // every rect\n\n var rect = new graphic.Rect({\n shape: {\n x: point[0],\n y: point[1],\n width: sw,\n height: sh\n },\n cursor: 'default',\n style: itemRectStyleModel\n });\n group.add(rect);\n }\n },\n // render separate line\n _renderLines: function (calendarModel, rangeData, orient, group) {\n var self = this;\n var coordSys = calendarModel.coordinateSystem;\n var lineStyleModel = calendarModel.getModel('splitLine.lineStyle').getLineStyle();\n var show = calendarModel.get('splitLine.show');\n var lineWidth = lineStyleModel.lineWidth;\n this._tlpoints = [];\n this._blpoints = [];\n this._firstDayOfMonth = [];\n this._firstDayPoints = [];\n var firstDay = rangeData.start;\n\n for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n addPoints(firstDay.formatedDate);\n\n if (i === 0) {\n firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n }\n\n var date = firstDay.date;\n date.setMonth(date.getMonth() + 1);\n firstDay = coordSys.getDateInfo(date);\n }\n\n addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n function addPoints(date) {\n self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n self._tlpoints.push(points[0]);\n\n self._blpoints.push(points[points.length - 1]);\n\n show && self._drawSplitline(points, lineStyleModel, group);\n } // render top/left line\n\n\n show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group); // render bottom/right line\n\n show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n },\n // get points at both ends\n _getEdgesPoints: function (points, lineWidth, orient) {\n var rs = [points[0].slice(), points[points.length - 1].slice()];\n var idx = orient === 'horizontal' ? 0 : 1; // both ends of the line are extend half lineWidth\n\n rs[0][idx] = rs[0][idx] - lineWidth / 2;\n rs[1][idx] = rs[1][idx] + lineWidth / 2;\n return rs;\n },\n // render split line\n _drawSplitline: function (points, lineStyleModel, group) {\n var poyline = new graphic.Polyline({\n z2: 20,\n shape: {\n points: points\n },\n style: lineStyleModel\n });\n group.add(poyline);\n },\n // render month line of one week points\n _getLinePointsOfOneWeek: function (calendarModel, date, orient) {\n var coordSys = calendarModel.coordinateSystem;\n date = coordSys.getDateInfo(date);\n var points = [];\n\n for (var i = 0; i < 7; i++) {\n var tmpD = coordSys.getNextNDay(date.time, i);\n var point = coordSys.dataToRect([tmpD.time], false);\n points[2 * tmpD.day] = point.tl;\n points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n }\n\n return points;\n },\n _formatterLabel: function (formatter, params) {\n if (typeof formatter === 'string' && formatter) {\n return formatUtil.formatTplSimple(formatter, params);\n }\n\n if (typeof formatter === 'function') {\n return formatter(params);\n }\n\n return params.nameMap;\n },\n _yearTextPositionControl: function (textEl, point, orient, position, margin) {\n point = point.slice();\n var aligns = ['center', 'bottom'];\n\n if (position === 'bottom') {\n point[1] += margin;\n aligns = ['center', 'top'];\n } else if (position === 'left') {\n point[0] -= margin;\n } else if (position === 'right') {\n point[0] += margin;\n aligns = ['center', 'top'];\n } else {\n // top\n point[1] -= margin;\n }\n\n var rotate = 0;\n\n if (position === 'left' || position === 'right') {\n rotate = Math.PI / 2;\n }\n\n return {\n rotation: rotate,\n position: point,\n style: {\n textAlign: aligns[0],\n textVerticalAlign: aligns[1]\n }\n };\n },\n // render year\n _renderYearText: function (calendarModel, rangeData, orient, group) {\n var yearLabel = calendarModel.getModel('yearLabel');\n\n if (!yearLabel.get('show')) {\n return;\n }\n\n var margin = yearLabel.get('margin');\n var pos = yearLabel.get('position');\n\n if (!pos) {\n pos = orient !== 'horizontal' ? 'top' : 'left';\n }\n\n var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n var xc = (points[0][0] + points[1][0]) / 2;\n var yc = (points[0][1] + points[1][1]) / 2;\n var idx = orient === 'horizontal' ? 0 : 1;\n var posPoints = {\n top: [xc, points[idx][1]],\n bottom: [xc, points[1 - idx][1]],\n left: [points[1 - idx][0], yc],\n right: [points[idx][0], yc]\n };\n var name = rangeData.start.y;\n\n if (+rangeData.end.y > +rangeData.start.y) {\n name = name + '-' + rangeData.end.y;\n }\n\n var formatter = yearLabel.get('formatter');\n var params = {\n start: rangeData.start.y,\n end: rangeData.end.y,\n nameMap: name\n };\n\n var content = this._formatterLabel(formatter, params);\n\n var yearText = new graphic.Text({\n z2: 30\n });\n graphic.setTextStyle(yearText.style, yearLabel, {\n text: content\n }), yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n group.add(yearText);\n },\n _monthTextPositionControl: function (point, isCenter, orient, position, margin) {\n var align = 'left';\n var vAlign = 'top';\n var x = point[0];\n var y = point[1];\n\n if (orient === 'horizontal') {\n y = y + margin;\n\n if (isCenter) {\n align = 'center';\n }\n\n if (position === 'start') {\n vAlign = 'bottom';\n }\n } else {\n x = x + margin;\n\n if (isCenter) {\n vAlign = 'middle';\n }\n\n if (position === 'start') {\n align = 'right';\n }\n }\n\n return {\n x: x,\n y: y,\n textAlign: align,\n textVerticalAlign: vAlign\n };\n },\n // render month and year text\n _renderMonthText: function (calendarModel, orient, group) {\n var monthLabel = calendarModel.getModel('monthLabel');\n\n if (!monthLabel.get('show')) {\n return;\n }\n\n var nameMap = monthLabel.get('nameMap');\n var margin = monthLabel.get('margin');\n var pos = monthLabel.get('position');\n var align = monthLabel.get('align');\n var termPoints = [this._tlpoints, this._blpoints];\n\n if (zrUtil.isString(nameMap)) {\n nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\n }\n\n var idx = pos === 'start' ? 0 : 1;\n var axis = orient === 'horizontal' ? 0 : 1;\n margin = pos === 'start' ? -margin : margin;\n var isCenter = align === 'center';\n\n for (var i = 0; i < termPoints[idx].length - 1; i++) {\n var tmp = termPoints[idx][i].slice();\n var firstDay = this._firstDayOfMonth[i];\n\n if (isCenter) {\n var firstDayPoints = this._firstDayPoints[i];\n tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n }\n\n var formatter = monthLabel.get('formatter');\n var name = nameMap[+firstDay.m - 1];\n var params = {\n yyyy: firstDay.y,\n yy: (firstDay.y + '').slice(2),\n MM: firstDay.m,\n M: +firstDay.m,\n nameMap: name\n };\n\n var content = this._formatterLabel(formatter, params);\n\n var monthText = new graphic.Text({\n z2: 30\n });\n zrUtil.extend(graphic.setTextStyle(monthText.style, monthLabel, {\n text: content\n }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin));\n group.add(monthText);\n }\n },\n _weekTextPositionControl: function (point, orient, position, margin, cellSize) {\n var align = 'center';\n var vAlign = 'middle';\n var x = point[0];\n var y = point[1];\n var isStart = position === 'start';\n\n if (orient === 'horizontal') {\n x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n align = isStart ? 'right' : 'left';\n } else {\n y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n vAlign = isStart ? 'bottom' : 'top';\n }\n\n return {\n x: x,\n y: y,\n textAlign: align,\n textVerticalAlign: vAlign\n };\n },\n // render weeks\n _renderWeekText: function (calendarModel, rangeData, orient, group) {\n var dayLabel = calendarModel.getModel('dayLabel');\n\n if (!dayLabel.get('show')) {\n return;\n }\n\n var coordSys = calendarModel.coordinateSystem;\n var pos = dayLabel.get('position');\n var nameMap = dayLabel.get('nameMap');\n var margin = dayLabel.get('margin');\n var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n if (zrUtil.isString(nameMap)) {\n nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\n }\n\n var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n margin = numberUtil.parsePercent(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\n\n if (pos === 'start') {\n start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n margin = -margin;\n }\n\n for (var i = 0; i < 7; i++) {\n var tmpD = coordSys.getNextNDay(start, i);\n var point = coordSys.dataToRect([tmpD.time], false).center;\n var day = i;\n day = Math.abs((i + firstDayOfWeek) % 7);\n var weekText = new graphic.Text({\n z2: 30\n });\n zrUtil.extend(graphic.setTextStyle(weekText.style, dayLabel, {\n text: nameMap[day]\n }), this._weekTextPositionControl(point, orient, pos, margin, cellSize));\n group.add(weekText);\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\nrequire(\"./dataZoom/typeDefaulter\");\n\nrequire(\"./dataZoom/DataZoomModel\");\n\nrequire(\"./dataZoom/DataZoomView\");\n\nrequire(\"./dataZoom/InsideZoomModel\");\n\nrequire(\"./dataZoom/InsideZoomView\");\n\nrequire(\"./dataZoom/dataZoomProcessor\");\n\nrequire(\"./dataZoom/dataZoomAction\");","\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(\"./dataZoom/typeDefaulter\");\n\nrequire(\"./dataZoom/DataZoomModel\");\n\nrequire(\"./dataZoom/DataZoomView\");\n\nrequire(\"./dataZoom/SelectZoomModel\");\n\nrequire(\"./dataZoom/SelectZoomView\");\n\nrequire(\"./dataZoom/dataZoomProcessor\");\n\nrequire(\"./dataZoom/dataZoomAction\");","\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(\"./dataZoom/typeDefaulter\");\n\nrequire(\"./dataZoom/DataZoomModel\");\n\nrequire(\"./dataZoom/DataZoomView\");\n\nrequire(\"./dataZoom/SliderZoomModel\");\n\nrequire(\"./dataZoom/SliderZoomView\");\n\nrequire(\"./dataZoom/dataZoomProcessor\");\n\nrequire(\"./dataZoom/dataZoomAction\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar helper = require(\"./helper\");\n\nvar sliderMove = require(\"../helper/sliderMove\");\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 asc = numberUtil.asc;\n/**\n * Operate single axis.\n * One axis can only operated by one axis operator.\n * Different dataZoomModels may be defined to operate the same axis.\n * (i.e. 'inside' data zoom and 'slider' data zoom components)\n * So dataZoomModels share one axisProxy in that case.\n *\n * @class\n */\n\nvar AxisProxy = function (dimName, axisIndex, dataZoomModel, ecModel) {\n /**\n * @private\n * @type {string}\n */\n this._dimName = dimName;\n /**\n * @private\n */\n\n this._axisIndex = axisIndex;\n /**\n * @private\n * @type {Array.<number>}\n */\n\n this._valueWindow;\n /**\n * @private\n * @type {Array.<number>}\n */\n\n this._percentWindow;\n /**\n * @private\n * @type {Array.<number>}\n */\n\n this._dataExtent;\n /**\n * {minSpan, maxSpan, minValueSpan, maxValueSpan}\n * @private\n * @type {Object}\n */\n\n this._minMaxSpan;\n /**\n * @readOnly\n * @type {module: echarts/model/Global}\n */\n\n this.ecModel = ecModel;\n /**\n * @private\n * @type {module: echarts/component/dataZoom/DataZoomModel}\n */\n\n this._dataZoomModel = dataZoomModel; // /**\n // * @readOnly\n // * @private\n // */\n // this.hasSeriesStacked;\n};\n\nAxisProxy.prototype = {\n constructor: AxisProxy,\n\n /**\n * Whether the axisProxy is hosted by dataZoomModel.\n *\n * @public\n * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n * @return {boolean}\n */\n hostedBy: function (dataZoomModel) {\n return this._dataZoomModel === dataZoomModel;\n },\n\n /**\n * @return {Array.<number>} Value can only be NaN or finite value.\n */\n getDataValueWindow: function () {\n return this._valueWindow.slice();\n },\n\n /**\n * @return {Array.<number>}\n */\n getDataPercentWindow: function () {\n return this._percentWindow.slice();\n },\n\n /**\n * @public\n * @param {number} axisIndex\n * @return {Array} seriesModels\n */\n getTargetSeriesModels: function () {\n var seriesModels = [];\n var ecModel = this.ecModel;\n ecModel.eachSeries(function (seriesModel) {\n if (helper.isCoordSupported(seriesModel.get('coordinateSystem'))) {\n var dimName = this._dimName;\n var axisModel = ecModel.queryComponents({\n mainType: dimName + 'Axis',\n index: seriesModel.get(dimName + 'AxisIndex'),\n id: seriesModel.get(dimName + 'AxisId')\n })[0];\n\n if (this._axisIndex === (axisModel && axisModel.componentIndex)) {\n seriesModels.push(seriesModel);\n }\n }\n }, this);\n return seriesModels;\n },\n getAxisModel: function () {\n return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n },\n getOtherAxisModel: function () {\n var axisDim = this._dimName;\n var ecModel = this.ecModel;\n var axisModel = this.getAxisModel();\n var isCartesian = axisDim === 'x' || axisDim === 'y';\n var otherAxisDim;\n var coordSysIndexName;\n\n if (isCartesian) {\n coordSysIndexName = 'gridIndex';\n otherAxisDim = axisDim === 'x' ? 'y' : 'x';\n } else {\n coordSysIndexName = 'polarIndex';\n otherAxisDim = axisDim === 'angle' ? 'radius' : 'angle';\n }\n\n var foundOtherAxisModel;\n ecModel.eachComponent(otherAxisDim + 'Axis', function (otherAxisModel) {\n if ((otherAxisModel.get(coordSysIndexName) || 0) === (axisModel.get(coordSysIndexName) || 0)) {\n foundOtherAxisModel = otherAxisModel;\n }\n });\n return foundOtherAxisModel;\n },\n getMinMaxSpan: function () {\n return zrUtil.clone(this._minMaxSpan);\n },\n\n /**\n * Only calculate by given range and this._dataExtent, do not change anything.\n *\n * @param {Object} opt\n * @param {number} [opt.start]\n * @param {number} [opt.end]\n * @param {number} [opt.startValue]\n * @param {number} [opt.endValue]\n */\n calculateDataWindow: function (opt) {\n var dataExtent = this._dataExtent;\n var axisModel = this.getAxisModel();\n var scale = axisModel.axis.scale;\n\n var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n var percentExtent = [0, 100];\n var percentWindow = [];\n var valueWindow = [];\n var hasPropModeValue;\n each(['start', 'end'], function (prop, idx) {\n var boundPercent = opt[prop];\n var boundValue = opt[prop + 'Value']; // Notice: dataZoom is based either on `percentProp` ('start', 'end') or\n // on `valueProp` ('startValue', 'endValue'). (They are based on the data extent\n // but not min/max of axis, which will be calculated by data window then).\n // The former one is suitable for cases that a dataZoom component controls multiple\n // axes with different unit or extent, and the latter one is suitable for accurate\n // zoom by pixel (e.g., in dataZoomSelect).\n // we use `getRangePropMode()` to mark which prop is used. `rangePropMode` is updated\n // only when setOption or dispatchAction, otherwise it remains its original value.\n // (Why not only record `percentProp` and always map to `valueProp`? Because\n // the map `valueProp` -> `percentProp` -> `valueProp` probably not the original\n // `valueProp`. consider two axes constrolled by one dataZoom. They have different\n // data extent. All of values that are overflow the `dataExtent` will be calculated\n // to percent '100%').\n\n if (rangePropMode[idx] === 'percent') {\n boundPercent == null && (boundPercent = percentExtent[idx]); // Use scale.parse to math round for category or time axis.\n\n boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent));\n } else {\n hasPropModeValue = true;\n boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue); // Calculating `percent` from `value` may be not accurate, because\n // This calculation can not be inversed, because all of values that\n // are overflow the `dataExtent` will be calculated to percent '100%'\n\n boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent);\n } // valueWindow[idx] = round(boundValue);\n // percentWindow[idx] = round(boundPercent);\n\n\n valueWindow[idx] = boundValue;\n percentWindow[idx] = boundPercent;\n });\n asc(valueWindow);\n asc(percentWindow); // The windows from user calling of `dispatchAction` might be out of the extent,\n // or do not obey the `min/maxSpan`, `min/maxValueSpan`. But we dont restrict window\n // by `zoomLock` here, because we see `zoomLock` just as a interaction constraint,\n // where API is able to initialize/modify the window size even though `zoomLock`\n // specified.\n\n var spans = this._minMaxSpan;\n hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\n\n function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\n var suffix = toValue ? 'Span' : 'ValueSpan';\n sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\n\n for (var i = 0; i < 2; i++) {\n toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true);\n toValue && (toWindow[i] = scale.parse(toWindow[i]));\n }\n }\n\n return {\n valueWindow: valueWindow,\n percentWindow: percentWindow\n };\n },\n\n /**\n * Notice: reset should not be called before series.restoreData() called,\n * so it is recommanded to be called in \"process stage\" but not \"model init\n * stage\".\n *\n * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n */\n reset: function (dataZoomModel) {\n if (dataZoomModel !== this._dataZoomModel) {\n return;\n }\n\n var targetSeries = this.getTargetSeriesModels(); // Culculate data window and data extent, and record them.\n\n this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries); // this.hasSeriesStacked = false;\n // each(targetSeries, function (series) {\n // var data = series.getData();\n // var dataDim = data.mapDimension(this._dimName);\n // var stackedDimension = data.getCalculationInfo('stackedDimension');\n // if (stackedDimension && stackedDimension === dataDim) {\n // this.hasSeriesStacked = true;\n // }\n // }, this);\n // `calculateDataWindow` uses min/maxSpan.\n\n setMinMaxSpan(this);\n var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\n this._valueWindow = dataWindow.valueWindow;\n this._percentWindow = dataWindow.percentWindow; // Update axis setting then.\n\n setAxisModel(this);\n },\n\n /**\n * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n */\n restore: function (dataZoomModel) {\n if (dataZoomModel !== this._dataZoomModel) {\n return;\n }\n\n this._valueWindow = this._percentWindow = null;\n setAxisModel(this, true);\n },\n\n /**\n * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n */\n filterData: function (dataZoomModel, api) {\n if (dataZoomModel !== this._dataZoomModel) {\n return;\n }\n\n var axisDim = this._dimName;\n var seriesModels = this.getTargetSeriesModels();\n var filterMode = dataZoomModel.get('filterMode');\n var valueWindow = this._valueWindow;\n\n if (filterMode === 'none') {\n return;\n } // FIXME\n // Toolbox may has dataZoom injected. And if there are stacked bar chart\n // with NaN data, NaN will be filtered and stack will be wrong.\n // So we need to force the mode to be set empty.\n // In fect, it is not a big deal that do not support filterMode-'filter'\n // when using toolbox#dataZoom, utill tooltip#dataZoom support \"single axis\n // selection\" some day, which might need \"adapt to data extent on the\n // otherAxis\", which is disabled by filterMode-'empty'.\n // But currently, stack has been fixed to based on value but not index,\n // so this is not an issue any more.\n // var otherAxisModel = this.getOtherAxisModel();\n // if (dataZoomModel.get('$fromToolbox')\n // && otherAxisModel\n // && otherAxisModel.hasSeriesStacked\n // ) {\n // filterMode = 'empty';\n // }\n // TODO\n // filterMode 'weakFilter' and 'empty' is not optimized for huge data yet.\n\n\n each(seriesModels, function (seriesModel) {\n var seriesData = seriesModel.getData();\n var dataDims = seriesData.mapDimension(axisDim, true);\n\n if (!dataDims.length) {\n return;\n }\n\n if (filterMode === 'weakFilter') {\n seriesData.filterSelf(function (dataIndex) {\n var leftOut;\n var rightOut;\n var hasValue;\n\n for (var i = 0; i < dataDims.length; i++) {\n var value = seriesData.get(dataDims[i], dataIndex);\n var thisHasValue = !isNaN(value);\n var thisLeftOut = value < valueWindow[0];\n var thisRightOut = value > valueWindow[1];\n\n if (thisHasValue && !thisLeftOut && !thisRightOut) {\n return true;\n }\n\n thisHasValue && (hasValue = true);\n thisLeftOut && (leftOut = true);\n thisRightOut && (rightOut = true);\n } // If both left out and right out, do not filter.\n\n\n return hasValue && leftOut && rightOut;\n });\n } else {\n each(dataDims, function (dim) {\n if (filterMode === 'empty') {\n seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\n return !isInWindow(value) ? NaN : value;\n }));\n } else {\n var range = {};\n range[dim] = valueWindow; // console.time('select');\n\n seriesData.selectRange(range); // console.timeEnd('select');\n }\n });\n }\n\n each(dataDims, function (dim) {\n seriesData.setApproximateExtent(valueWindow, dim);\n });\n });\n\n function isInWindow(value) {\n return value >= valueWindow[0] && value <= valueWindow[1];\n }\n }\n};\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n var dataExtent = [Infinity, -Infinity];\n each(seriesModels, function (seriesModel) {\n var seriesData = seriesModel.getData();\n\n if (seriesData) {\n each(seriesData.mapDimension(axisDim, true), function (dim) {\n var seriesExtent = seriesData.getApproximateExtent(dim);\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n });\n }\n });\n\n if (dataExtent[1] < dataExtent[0]) {\n dataExtent = [NaN, NaN];\n } // It is important to get \"consistent\" extent when more then one axes is\n // controlled by a `dataZoom`, otherwise those axes will not be synchronized\n // when zooming. But it is difficult to know what is \"consistent\", considering\n // axes have different type or even different meanings (For example, two\n // time axes are used to compare data of the same date in different years).\n // So basically dataZoom just obtains extent by series.data (in category axis\n // extent can be obtained from axis.data).\n // Nevertheless, user can set min/max/scale on axes to make extent of axes\n // consistent.\n\n\n fixExtentByAxis(axisProxy, dataExtent);\n return dataExtent;\n}\n\nfunction fixExtentByAxis(axisProxy, dataExtent) {\n var axisModel = axisProxy.getAxisModel();\n var min = axisModel.getMin(true); // For category axis, if min/max/scale are not set, extent is determined\n // by axis.data by default.\n\n var isCategoryAxis = axisModel.get('type') === 'category';\n var axisDataLen = isCategoryAxis && axisModel.getCategories().length;\n\n if (min != null && min !== 'dataMin' && typeof min !== 'function') {\n dataExtent[0] = min;\n } else if (isCategoryAxis) {\n dataExtent[0] = axisDataLen > 0 ? 0 : NaN;\n }\n\n var max = axisModel.getMax(true);\n\n if (max != null && max !== 'dataMax' && typeof max !== 'function') {\n dataExtent[1] = max;\n } else if (isCategoryAxis) {\n dataExtent[1] = axisDataLen > 0 ? axisDataLen - 1 : NaN;\n }\n\n if (!axisModel.get('scale', true)) {\n dataExtent[0] > 0 && (dataExtent[0] = 0);\n dataExtent[1] < 0 && (dataExtent[1] = 0);\n } // For value axis, if min/max/scale are not set, we just use the extent obtained\n // by series data, which may be a little different from the extent calculated by\n // `axisHelper.getScaleExtent`. But the different just affects the experience a\n // little when zooming. So it will not be fixed until some users require it strongly.\n\n\n return dataExtent;\n}\n\nfunction setAxisModel(axisProxy, isRestore) {\n var axisModel = axisProxy.getAxisModel();\n var percentWindow = axisProxy._percentWindow;\n var valueWindow = axisProxy._valueWindow;\n\n if (!percentWindow) {\n return;\n } // [0, 500]: arbitrary value, guess axis extent.\n\n\n var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n precision = Math.min(precision, 20); // isRestore or isFull\n\n var useOrigin = isRestore || percentWindow[0] === 0 && percentWindow[1] === 100;\n axisModel.setRange(useOrigin ? null : +valueWindow[0].toFixed(precision), useOrigin ? null : +valueWindow[1].toFixed(precision));\n}\n\nfunction setMinMaxSpan(axisProxy) {\n var minMaxSpan = axisProxy._minMaxSpan = {};\n var dataZoomModel = axisProxy._dataZoomModel;\n var dataExtent = axisProxy._dataExtent;\n each(['min', 'max'], function (minMax) {\n var percentSpan = dataZoomModel.get(minMax + 'Span');\n var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n valueSpan != null && (valueSpan = axisProxy.getAxisModel().axis.scale.parse(valueSpan)); // minValueSpan and maxValueSpan has higher priority than minSpan and maxSpan\n\n if (valueSpan != null) {\n percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n } else if (percentSpan != null) {\n valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\n }\n\n minMaxSpan[minMax + 'Span'] = percentSpan;\n minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n });\n}\n\nvar _default = AxisProxy;\nmodule.exports = _default;"],"names":["echarts","actionInfo","type","event","registerAction","payload","ecModel","eachComponent","mainType","query","parallelAxisModel","axis","model","setActiveIntervals","intervals","parallelModel","setAxisExpand","preprocessor","registerPreprocessor","_config","__DEV__","zrUtil","visualSolution","Model","DEFAULT_OUT_OF_BRUSH_COLOR","BrushModel","extendComponentModel","dependencies","defaultOption","toolbox","brushLink","seriesIndex","geoIndex","xAxisIndex","yAxisIndex","brushType","brushMode","transformable","brushStyle","borderWidth","color","borderColor","throttleType","throttleDelay","removeOnClick","z","areas","brushOption","coordInfoList","optionUpdated","newOption","isInit","thisOption","this","option","replaceVisualOption","inBrush","outOfBrush","hasOwnProperty","liftZ","setAreas","map","area","generateBrushOption","setBrushOption","merge","getItemStyle","_default","module","exports","BrushController","_visualEncoding","layoutCovers","extendComponentView","init","api","_brushController","getZr","on","bind","_onBrush","mount","render","brushModel","updateController","apply","arguments","updateTransform","updateView","dispose","opt","modelId","id","brushTargetManager","setOutputRanges","isEnd","dispatchAction","brushId","clone","$from","setPanels","makePanelOpts","enableBrush","updateCovers","slice","update","DEFAULT_TOOLBOX_BTNS","isNew","brushComponents","brush","isArray","length","brushComponentSpecifiedBtns","each","brushOpt","tbs","Array","concat","feature","toolboxFeature","toolboxBrush","brushTypes","push","removeDuplicate","arr","val","flag","polygonContain","BoundingRect","_graphic","linePolygonIntersect","selector","lineX","getLineSelectors","lineY","rect","point","itemLayout","selectors","boundingRect","contain","intersect","polygon","range","points","x","y","width","height","p","create","xyIndex","xy","wh","inLineRange","layoutRange","reverse","throttleUtil","BrushTargetManager","STATE_LIST","DISPATCH_METHOD","DISPATCH_FLAG","PRIORITY_BRUSH","PRIORITY","VISUAL","BRUSH","setInputRanges","brushSelected","zr","doDispatch","fn","createOrUpdate","isDisposed","batch","checkInRange","selectorsByBrushType","rangeInfoList","data","dataIndex","i","len","getSelectorsByBrushType","seriesModel","brushSelector","isString","sels","selectorsByElementType","getItemLayout","isFunction","bSelector","sel","brushModelNotControll","seriesIndices","indexOf","bindSelector","selFn","elType","registerLayout","key","registerVisual","brushIndex","thisBrushSelected","brushName","name","selected","linkedSeriesMap","selectedDataIndexForLink","rangeInfoBySeries","hasBrushExists","defaults","boundingRectBuilders","visualMappings","createVisualMappings","mappingOption","mappingMethod","linkOthers","brushed","stepAParallel","coordSys","coordinateSystem","hasAxisBrushed","eachActiveState","getData","activeState","stepAOthers","controlSeries","eachSeries","subType","seriesBrushSelected","seriesId","seriesName","getValueState","getRawIndex","applyVisual","noop","getBoundingRectFromMinMax","minMax","Infinity","rg","graphic","formatUtil","numberUtil","MONTH_TEXT","EN","CN","WEEK_TEXT","_tlpoints","_blpoints","_firstDayOfMonth","_firstDayPoints","calendarModel","group","removeAll","rangeData","getRangeInfo","orient","getOrient","_renderDayRect","_renderLines","_renderYearText","_renderMonthText","_renderWeekText","itemRectStyleModel","getModel","sw","getCellWidth","sh","getCellHeight","start","time","end","getNextNDay","dataToRect","tl","Rect","shape","cursor","style","add","self","lineStyleModel","getLineStyle","show","get","lineWidth","firstDay","addPoints","formatedDate","getDateInfo","m","date","setMonth","getMonth","_getLinePointsOfOneWeek","_drawSplitline","_getEdgesPoints","rs","idx","poyline","Polyline","z2","tmpD","day","_formatterLabel","formatter","params","formatTplSimple","nameMap","_yearTextPositionControl","textEl","position","margin","aligns","rotate","Math","PI","rotation","textAlign","textVerticalAlign","yearLabel","pos","xc","yc","posPoints","top","bottom","left","right","content","yearText","Text","setTextStyle","text","attr","_monthTextPositionControl","isCenter","align","vAlign","monthLabel","termPoints","toUpperCase","tmp","firstDayPoints","yyyy","yy","MM","M","monthText","extend","_weekTextPositionControl","cellSize","isStart","dayLabel","firstDayOfWeek","getFirstDayOfWeek","lweek","parsePercent","fweek","center","abs","weekText","helper","sliderMove","asc","AxisProxy","dimName","axisIndex","dataZoomModel","_dimName","_axisIndex","_valueWindow","_percentWindow","_dataExtent","_minMaxSpan","_dataZoomModel","calculateDataExtent","axisProxy","axisDim","seriesModels","dataExtent","seriesData","mapDimension","dim","seriesExtent","getApproximateExtent","NaN","fixExtentByAxis","axisModel","getAxisModel","min","getMin","isCategoryAxis","axisDataLen","getCategories","max","getMax","setAxisModel","isRestore","percentWindow","valueWindow","precision","getPixelPrecision","useOrigin","setRange","toFixed","setMinMaxSpan","minMaxSpan","percentSpan","valueSpan","scale","parse","linearMap","prototype","constructor","hostedBy","getDataValueWindow","getDataPercentWindow","getTargetSeriesModels","isCoordSupported","queryComponents","index","componentIndex","getComponent","getOtherAxisModel","otherAxisDim","coordSysIndexName","foundOtherAxisModel","isCartesian","otherAxisModel","getMinMaxSpan","calculateDataWindow","hasPropModeValue","rangePropMode","getRangePropMode","percentExtent","prop","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","suffix","reset","targetSeries","dataWindow","settledOption","restore","filterData","filterMode","dataDims","filterSelf","leftOut","rightOut","hasValue","value","thisHasValue","isNaN","thisLeftOut","thisRightOut","setData","isInWindow","selectRange","setApproximateExtent"],"sourceRoot":""}