1 |
- {"version":3,"file":"js/chunk-vendors-af2090be.1660d6df.js","mappings":"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","sources":["webpack://app/./node_modules/echarts/lib/coord/Axis.js","webpack://app/./node_modules/echarts/lib/coord/View.js","webpack://app/./node_modules/echarts/lib/coord/axisDefault.js","webpack://app/./node_modules/echarts/lib/coord/axisHelper.js","webpack://app/./node_modules/echarts/lib/coord/axisModelCommonMixin.js","webpack://app/./node_modules/echarts/lib/coord/axisModelCreator.js","webpack://app/./node_modules/echarts/lib/coord/axisTickLabelBuilder.js","webpack://app/./node_modules/echarts/lib/coord/calendar/Calendar.js","webpack://app/./node_modules/echarts/lib/coord/calendar/CalendarModel.js","webpack://app/./node_modules/echarts/lib/coord/calendar/prepareCustom.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 _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar map = _util.map;\n\nvar _number = require(\"../util/number\");\n\nvar linearMap = _number.linearMap;\nvar getPixelPrecision = _number.getPixelPrecision;\nvar round = _number.round;\n\nvar _axisTickLabelBuilder = require(\"./axisTickLabelBuilder\");\n\nvar createAxisTicks = _axisTickLabelBuilder.createAxisTicks;\nvar createAxisLabels = _axisTickLabelBuilder.createAxisLabels;\nvar calculateCategoryInterval = _axisTickLabelBuilder.calculateCategoryInterval;\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 NORMALIZED_EXTENT = [0, 1];\n/**\n * Base class of Axis.\n * @constructor\n */\n\nvar Axis = function (dim, scale, extent) {\n /**\n * Axis dimension. Such as 'x', 'y', 'z', 'angle', 'radius'.\n * @type {string}\n */\n this.dim = dim;\n /**\n * Axis scale\n * @type {module:echarts/coord/scale/*}\n */\n\n this.scale = scale;\n /**\n * @type {Array.<number>}\n * @private\n */\n\n this._extent = extent || [0, 0];\n /**\n * @type {boolean}\n */\n\n this.inverse = false;\n /**\n * Usually true when axis has a ordinal scale\n * @type {boolean}\n */\n\n this.onBand = false;\n};\n\nAxis.prototype = {\n constructor: Axis,\n\n /**\n * If axis extent contain given coord\n * @param {number} coord\n * @return {boolean}\n */\n contain: function (coord) {\n var extent = this._extent;\n var min = Math.min(extent[0], extent[1]);\n var max = Math.max(extent[0], extent[1]);\n return coord >= min && coord <= max;\n },\n\n /**\n * If axis extent contain given data\n * @param {number} data\n * @return {boolean}\n */\n containData: function (data) {\n return this.scale.contain(data);\n },\n\n /**\n * Get coord extent.\n * @return {Array.<number>}\n */\n getExtent: function () {\n return this._extent.slice();\n },\n\n /**\n * Get precision used for formatting\n * @param {Array.<number>} [dataExtent]\n * @return {number}\n */\n getPixelPrecision: function (dataExtent) {\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n },\n\n /**\n * Set coord extent\n * @param {number} start\n * @param {number} end\n */\n setExtent: function (start, end) {\n var extent = this._extent;\n extent[0] = start;\n extent[1] = end;\n },\n\n /**\n * Convert data to coord. Data is the rank if it has an ordinal scale\n * @param {number} data\n * @param {boolean} clamp\n * @return {number}\n */\n dataToCoord: function (data, clamp) {\n var extent = this._extent;\n var scale = this.scale;\n data = scale.normalize(data);\n\n if (this.onBand && scale.type === 'ordinal') {\n extent = extent.slice();\n fixExtentWithBands(extent, scale.count());\n }\n\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n },\n\n /**\n * Convert coord to data. Data is the rank if it has an ordinal scale\n * @param {number} coord\n * @param {boolean} clamp\n * @return {number}\n */\n coordToData: function (coord, clamp) {\n var extent = this._extent;\n var scale = this.scale;\n\n if (this.onBand && scale.type === 'ordinal') {\n extent = extent.slice();\n fixExtentWithBands(extent, scale.count());\n }\n\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n return this.scale.scale(t);\n },\n\n /**\n * Convert pixel point to data in axis\n * @param {Array.<number>} point\n * @param {boolean} clamp\n * @return {number} data\n */\n pointToData: function (point, clamp) {// Should be implemented in derived class if necessary.\n },\n\n /**\n * Different from `zrUtil.map(axis.getTicks(), axis.dataToCoord, axis)`,\n * `axis.getTicksCoords` considers `onBand`, which is used by\n * `boundaryGap:true` of category axis and splitLine and splitArea.\n * @param {Object} [opt]\n * @param {Model} [opt.tickModel=axis.model.getModel('axisTick')]\n * @param {boolean} [opt.clamp] If `true`, the first and the last\n * tick must be at the axis end points. Otherwise, clip ticks\n * that outside the axis extent.\n * @return {Array.<Object>} [{\n * coord: ...,\n * tickValue: ...\n * }, ...]\n */\n getTicksCoords: function (opt) {\n opt = opt || {};\n var tickModel = opt.tickModel || this.getTickModel();\n var result = createAxisTicks(this, tickModel);\n var ticks = result.ticks;\n var ticksCoords = map(ticks, function (tickValue) {\n return {\n coord: this.dataToCoord(tickValue),\n tickValue: tickValue\n };\n }, this);\n var alignWithLabel = tickModel.get('alignWithLabel');\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n return ticksCoords;\n },\n\n /**\n * @return {Array.<Array.<Object>>} [{ coord: ..., tickValue: ...}]\n */\n getMinorTicksCoords: function () {\n if (this.scale.type === 'ordinal') {\n // Category axis doesn't support minor ticks\n return [];\n }\n\n var minorTickModel = this.model.getModel('minorTick');\n var splitNumber = minorTickModel.get('splitNumber'); // Protection.\n\n if (!(splitNumber > 0 && splitNumber < 100)) {\n splitNumber = 5;\n }\n\n var minorTicks = this.scale.getMinorTicks(splitNumber);\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n return map(minorTicksGroup, function (minorTick) {\n return {\n coord: this.dataToCoord(minorTick),\n tickValue: minorTick\n };\n }, this);\n }, this);\n return minorTicksCoords;\n },\n\n /**\n * @return {Array.<Object>} [{\n * formattedLabel: string,\n * rawLabel: axis.scale.getLabel(tickValue)\n * tickValue: number\n * }, ...]\n */\n getViewLabels: function () {\n return createAxisLabels(this).labels;\n },\n\n /**\n * @return {module:echarts/coord/model/Model}\n */\n getLabelModel: function () {\n return this.model.getModel('axisLabel');\n },\n\n /**\n * Notice here we only get the default tick model. For splitLine\n * or splitArea, we should pass the splitLineModel or splitAreaModel\n * manually when calling `getTicksCoords`.\n * In GL, this method may be overrided to:\n * `axisModel.getModel('axisTick', grid3DModel.getModel('axisTick'));`\n * @return {module:echarts/coord/model/Model}\n */\n getTickModel: function () {\n return this.model.getModel('axisTick');\n },\n\n /**\n * Get width of band\n * @return {number}\n */\n getBandWidth: function () {\n var axisExtent = this._extent;\n var dataExtent = this.scale.getExtent();\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0); // Fix #2728, avoid NaN when only one data.\n\n len === 0 && (len = 1);\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\n return Math.abs(size) / len;\n },\n\n /**\n * @abstract\n * @return {boolean} Is horizontal\n */\n isHorizontal: null,\n\n /**\n * @abstract\n * @return {number} Get axis rotate, by degree.\n */\n getRotate: null,\n\n /**\n * Only be called in category axis.\n * Can be overrided, consider other axes like in 3D.\n * @return {number} Auto interval for cateogry axis tick and label\n */\n calculateCategoryInterval: function () {\n return calculateCategoryInterval(this);\n }\n};\n\nfunction fixExtentWithBands(extent, nTick) {\n var size = extent[1] - extent[0];\n var len = nTick;\n var margin = size / len / 2;\n extent[0] += margin;\n extent[1] -= margin;\n} // If axis has labels [1, 2, 3, 4]. Bands on the axis are\n// |---1---|---2---|---3---|---4---|.\n// So the displayed ticks and splitLine/splitArea should between\n// each data item, otherwise cause misleading (e.g., split tow bars\n// of a single data item when there are two bar series).\n// Also consider if tickCategoryInterval > 0 and onBand, ticks and\n// splitLine/spliteArea should layout appropriately corresponding\n// to displayed labels. (So we should not use `getBandWidth` in this\n// case).\n\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n var ticksLen = ticksCoords.length;\n\n if (!axis.onBand || alignWithLabel || !ticksLen) {\n return;\n }\n\n var axisExtent = axis.getExtent();\n var last;\n var diffSize;\n\n if (ticksLen === 1) {\n ticksCoords[0].coord = axisExtent[0];\n last = ticksCoords[1] = {\n coord: axisExtent[0]\n };\n } else {\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n var shift = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n each(ticksCoords, function (ticksItem) {\n ticksItem.coord -= shift / 2;\n });\n var dataExtent = axis.scale.getExtent();\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n last = {\n coord: ticksCoords[ticksLen - 1].coord + shift * diffSize\n };\n ticksCoords.push(last);\n }\n\n var inverse = axisExtent[0] > axisExtent[1]; // Handling clamp.\n\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n }\n\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n ticksCoords.unshift({\n coord: axisExtent[0]\n });\n }\n\n if (littleThan(axisExtent[1], last.coord)) {\n clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n }\n\n if (clamp && littleThan(last.coord, axisExtent[1])) {\n ticksCoords.push({\n coord: axisExtent[1]\n });\n }\n\n function littleThan(a, b) {\n // Avoid rounding error cause calculated tick coord different with extent.\n // It may cause an extra unecessary tick added.\n a = round(a);\n b = round(b);\n return inverse ? a > b : a < b;\n }\n}\n\nvar _default = Axis;\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 vector = require(\"zrender/lib/core/vector\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar Transformable = require(\"zrender/lib/mixin/Transformable\");\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 * Simple view coordinate system\n * Mapping given x, y to transformd view x, y\n */\nvar v2ApplyTransform = vector.applyTransform; // Dummy transform node\n\nfunction TransformDummy() {\n Transformable.call(this);\n}\n\nzrUtil.mixin(TransformDummy, Transformable);\n\nfunction View(name) {\n /**\n * @type {string}\n */\n this.name = name;\n /**\n * @type {Object}\n */\n\n this.zoomLimit;\n Transformable.call(this);\n this._roamTransformable = new TransformDummy();\n this._rawTransformable = new TransformDummy();\n this._center;\n this._zoom;\n}\n\nView.prototype = {\n constructor: View,\n type: 'view',\n\n /**\n * @param {Array.<string>}\n * @readOnly\n */\n dimensions: ['x', 'y'],\n\n /**\n * Set bounding rect\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n */\n // PENDING to getRect\n setBoundingRect: function (x, y, width, height) {\n this._rect = new BoundingRect(x, y, width, height);\n return this._rect;\n },\n\n /**\n * @return {module:zrender/core/BoundingRect}\n */\n // PENDING to getRect\n getBoundingRect: function () {\n return this._rect;\n },\n\n /**\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n */\n setViewRect: function (x, y, width, height) {\n this.transformTo(x, y, width, height);\n this._viewRect = new BoundingRect(x, y, width, height);\n },\n\n /**\n * Transformed to particular position and size\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n */\n transformTo: function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var rawTransform = this._rawTransformable;\n rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n rawTransform.decomposeTransform();\n\n this._updateTransform();\n },\n\n /**\n * Set center of view\n * @param {Array.<number>} [centerCoord]\n */\n setCenter: function (centerCoord) {\n if (!centerCoord) {\n return;\n }\n\n this._center = centerCoord;\n\n this._updateCenterAndZoom();\n },\n\n /**\n * @param {number} zoom\n */\n setZoom: function (zoom) {\n zoom = zoom || 1;\n var zoomLimit = this.zoomLimit;\n\n if (zoomLimit) {\n if (zoomLimit.max != null) {\n zoom = Math.min(zoomLimit.max, zoom);\n }\n\n if (zoomLimit.min != null) {\n zoom = Math.max(zoomLimit.min, zoom);\n }\n }\n\n this._zoom = zoom;\n\n this._updateCenterAndZoom();\n },\n\n /**\n * Get default center without roam\n */\n getDefaultCenter: function () {\n // Rect before any transform\n var rawRect = this.getBoundingRect();\n var cx = rawRect.x + rawRect.width / 2;\n var cy = rawRect.y + rawRect.height / 2;\n return [cx, cy];\n },\n getCenter: function () {\n return this._center || this.getDefaultCenter();\n },\n getZoom: function () {\n return this._zoom || 1;\n },\n\n /**\n * @return {Array.<number}\n */\n getRoamTransform: function () {\n return this._roamTransformable.getLocalTransform();\n },\n\n /**\n * Remove roam\n */\n _updateCenterAndZoom: function () {\n // Must update after view transform updated\n var rawTransformMatrix = this._rawTransformable.getLocalTransform();\n\n var roamTransform = this._roamTransformable;\n var defaultCenter = this.getDefaultCenter();\n var center = this.getCenter();\n var zoom = this.getZoom();\n center = vector.applyTransform([], center, rawTransformMatrix);\n defaultCenter = vector.applyTransform([], defaultCenter, rawTransformMatrix);\n roamTransform.origin = center;\n roamTransform.position = [defaultCenter[0] - center[0], defaultCenter[1] - center[1]];\n roamTransform.scale = [zoom, zoom];\n\n this._updateTransform();\n },\n\n /**\n * Update transform from roam and mapLocation\n * @private\n */\n _updateTransform: function () {\n var roamTransformable = this._roamTransformable;\n var rawTransformable = this._rawTransformable;\n rawTransformable.parent = roamTransformable;\n roamTransformable.updateTransform();\n rawTransformable.updateTransform();\n matrix.copy(this.transform || (this.transform = []), rawTransformable.transform || matrix.create());\n this._rawTransform = rawTransformable.getLocalTransform();\n this.invTransform = this.invTransform || [];\n matrix.invert(this.invTransform, this.transform);\n this.decomposeTransform();\n },\n getTransformInfo: function () {\n var roamTransform = this._roamTransformable.transform;\n var rawTransformable = this._rawTransformable;\n return {\n roamTransform: roamTransform ? zrUtil.slice(roamTransform) : matrix.create(),\n rawScale: zrUtil.slice(rawTransformable.scale),\n rawPosition: zrUtil.slice(rawTransformable.position)\n };\n },\n\n /**\n * @return {module:zrender/core/BoundingRect}\n */\n getViewRect: function () {\n return this._viewRect;\n },\n\n /**\n * Get view rect after roam transform\n * @return {module:zrender/core/BoundingRect}\n */\n getViewRectAfterRoam: function () {\n var rect = this.getBoundingRect().clone();\n rect.applyTransform(this.transform);\n return rect;\n },\n\n /**\n * Convert a single (lon, lat) data item to (x, y) point.\n * @param {Array.<number>} data\n * @param {boolean} noRoam\n * @param {Array.<number>} [out]\n * @return {Array.<number>}\n */\n dataToPoint: function (data, noRoam, out) {\n var transform = noRoam ? this._rawTransform : this.transform;\n out = out || [];\n return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data);\n },\n\n /**\n * Convert a (x, y) point to (lon, lat) data\n * @param {Array.<number>} point\n * @return {Array.<number>}\n */\n pointToData: function (point) {\n var invTransform = this.invTransform;\n return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]];\n },\n\n /**\n * @implements\n * see {module:echarts/CoodinateSystem}\n */\n convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n /**\n * @implements\n * see {module:echarts/CoodinateSystem}\n */\n convertFromPixel: zrUtil.curry(doConvert, 'pointToData'),\n\n /**\n * @implements\n * see {module:echarts/CoodinateSystem}\n */\n containPoint: function (point) {\n return this.getViewRectAfterRoam().contain(point[0], point[1]);\n }\n /**\n * @return {number}\n */\n // getScalarScale: function () {\n // // Use determinant square root of transform to mutiply scalar\n // var m = this.transform;\n // var det = Math.sqrt(Math.abs(m[0] * m[3] - m[2] * m[1]));\n // return det;\n // }\n\n};\nzrUtil.mixin(View, Transformable);\n\nfunction doConvert(methodName, ecModel, finder, value) {\n var seriesModel = finder.seriesModel;\n var coordSys = seriesModel ? seriesModel.coordinateSystem : null; // e.g., graph.\n\n return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nvar _default = View;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar defaultOption = {\n show: true,\n zlevel: 0,\n z: 0,\n // Inverse the axis.\n inverse: false,\n // Axis name displayed.\n name: '',\n // 'start' | 'middle' | 'end'\n nameLocation: 'end',\n // By degree. By defualt auto rotate by nameLocation.\n nameRotate: null,\n nameTruncate: {\n maxWidth: null,\n ellipsis: '...',\n placeholder: '.'\n },\n // Use global text style by default.\n nameTextStyle: {},\n // The gap between axisName and axisLine.\n nameGap: 15,\n // Default `false` to support tooltip.\n silent: false,\n // Default `false` to avoid legacy user event listener fail.\n triggerEvent: false,\n tooltip: {\n show: false\n },\n axisPointer: {},\n axisLine: {\n show: true,\n onZero: true,\n onZeroAxisIndex: null,\n lineStyle: {\n color: '#333',\n width: 1,\n type: 'solid'\n },\n // The arrow at both ends the the axis.\n symbol: ['none', 'none'],\n symbolSize: [10, 15]\n },\n axisTick: {\n show: true,\n // Whether axisTick is inside the grid or outside the grid.\n inside: false,\n // The length of axisTick.\n length: 5,\n lineStyle: {\n width: 1\n }\n },\n axisLabel: {\n show: true,\n // Whether axisLabel is inside the grid or outside the grid.\n inside: false,\n rotate: 0,\n // true | false | null/undefined (auto)\n showMinLabel: null,\n // true | false | null/undefined (auto)\n showMaxLabel: null,\n margin: 8,\n // formatter: null,\n fontSize: 12\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: ['#ccc'],\n width: 1,\n type: 'solid'\n }\n },\n splitArea: {\n show: false,\n areaStyle: {\n color: ['rgba(250,250,250,0.3)', 'rgba(200,200,200,0.3)']\n }\n }\n};\nvar axisDefault = {};\naxisDefault.categoryAxis = zrUtil.merge({\n // The gap at both ends of the axis. For categoryAxis, boolean.\n boundaryGap: true,\n // Set false to faster category collection.\n // Only usefull in the case like: category is\n // ['2012-01-01', '2012-01-02', ...], where the input\n // data has been ensured not duplicate and is large data.\n // null means \"auto\":\n // if axis.data provided, do not deduplication,\n // else do deduplication.\n deduplication: null,\n // splitArea: {\n // show: false\n // },\n splitLine: {\n show: false\n },\n axisTick: {\n // If tick is align with label when boundaryGap is true\n alignWithLabel: false,\n interval: 'auto'\n },\n axisLabel: {\n interval: 'auto'\n }\n}, defaultOption);\naxisDefault.valueAxis = zrUtil.merge({\n // The gap at both ends of the axis. For value axis, [GAP, GAP], where\n // `GAP` can be an absolute pixel number (like `35`), or percent (like `'30%'`)\n boundaryGap: [0, 0],\n // TODO\n // min/max: [30, datamin, 60] or [20, datamin] or [datamin, 60]\n // Min value of the axis. can be:\n // + a number\n // + 'dataMin': use the min value in data.\n // + null/undefined: auto decide min value (consider pretty look and boundaryGap).\n // min: null,\n // Max value of the axis. can be:\n // + a number\n // + 'dataMax': use the max value in data.\n // + null/undefined: auto decide max value (consider pretty look and boundaryGap).\n // max: null,\n // Readonly prop, specifies start value of the range when using data zoom.\n // rangeStart: null\n // Readonly prop, specifies end value of the range when using data zoom.\n // rangeEnd: null\n // Optional value can be:\n // + `false`: always include value 0.\n // + `true`: the extent do not consider value 0.\n // scale: false,\n // AxisTick and axisLabel and splitLine are caculated based on splitNumber.\n splitNumber: 5,\n // Interval specifies the span of the ticks is mandatorily.\n // interval: null\n // Specify min interval when auto calculate tick interval.\n // minInterval: null\n // Specify max interval when auto calculate tick interval.\n // maxInterval: null\n minorTick: {\n // Minor tick, not available for cateogry axis.\n show: false,\n // Split number of minor ticks. The value should be in range of (0, 100)\n splitNumber: 5,\n // Lenght of minor tick\n length: 3,\n // Same inside with axisTick\n // Line style\n lineStyle: {// Default to be same with axisTick\n }\n },\n minorSplitLine: {\n show: false,\n lineStyle: {\n color: '#eee',\n width: 1\n }\n }\n}, defaultOption);\naxisDefault.timeAxis = zrUtil.defaults({\n scale: true,\n min: 'dataMin',\n max: 'dataMax'\n}, axisDefault.valueAxis);\naxisDefault.logAxis = zrUtil.defaults({\n scale: true,\n logBase: 10\n}, axisDefault.valueAxis);\nvar _default = axisDefault;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar OrdinalScale = require(\"../scale/Ordinal\");\n\nvar IntervalScale = require(\"../scale/Interval\");\n\nvar Scale = require(\"../scale/Scale\");\n\nvar numberUtil = require(\"../util/number\");\n\nvar _barGrid = require(\"../layout/barGrid\");\n\nvar prepareLayoutBarSeries = _barGrid.prepareLayoutBarSeries;\nvar makeColumnLayout = _barGrid.makeColumnLayout;\nvar retrieveColumnLayout = _barGrid.retrieveColumnLayout;\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nrequire(\"../scale/Time\");\n\nrequire(\"../scale/Log\");\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 * Get axis scale extent before niced.\n * Item of returned array can only be number (including Infinity and NaN).\n */\nfunction getScaleExtent(scale, model) {\n var scaleType = scale.type;\n var min = model.getMin();\n var max = model.getMax();\n var originalExtent = scale.getExtent();\n var axisDataLen;\n var boundaryGap;\n var span;\n\n if (scaleType === 'ordinal') {\n axisDataLen = model.getCategories().length;\n } else {\n boundaryGap = model.get('boundaryGap');\n\n if (!zrUtil.isArray(boundaryGap)) {\n boundaryGap = [boundaryGap || 0, boundaryGap || 0];\n }\n\n if (typeof boundaryGap[0] === 'boolean') {\n boundaryGap = [0, 0];\n }\n\n boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], 1);\n boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], 1);\n span = originalExtent[1] - originalExtent[0] || Math.abs(originalExtent[0]);\n } // Notice: When min/max is not set (that is, when there are null/undefined,\n // which is the most common case), these cases should be ensured:\n // (1) For 'ordinal', show all axis.data.\n // (2) For others:\n // + `boundaryGap` is applied (if min/max set, boundaryGap is\n // disabled).\n // + If `needCrossZero`, min/max should be zero, otherwise, min/max should\n // be the result that originalExtent enlarged by boundaryGap.\n // (3) If no data, it should be ensured that `scale.setBlank` is set.\n // FIXME\n // (1) When min/max is 'dataMin' or 'dataMax', should boundaryGap be able to used?\n // (2) When `needCrossZero` and all data is positive/negative, should it be ensured\n // that the results processed by boundaryGap are positive/negative?\n\n\n if (min === 'dataMin') {\n min = originalExtent[0];\n } else if (typeof min === 'function') {\n min = min({\n min: originalExtent[0],\n max: originalExtent[1]\n });\n }\n\n if (max === 'dataMax') {\n max = originalExtent[1];\n } else if (typeof max === 'function') {\n max = max({\n min: originalExtent[0],\n max: originalExtent[1]\n });\n }\n\n var fixMin = min != null;\n var fixMax = max != null;\n\n if (min == null) {\n min = scaleType === 'ordinal' ? axisDataLen ? 0 : NaN : originalExtent[0] - boundaryGap[0] * span;\n }\n\n if (max == null) {\n max = scaleType === 'ordinal' ? axisDataLen ? axisDataLen - 1 : NaN : originalExtent[1] + boundaryGap[1] * span;\n }\n\n (min == null || !isFinite(min)) && (min = NaN);\n (max == null || !isFinite(max)) && (max = NaN);\n scale.setBlank(zrUtil.eqNaN(min) || zrUtil.eqNaN(max) || scaleType === 'ordinal' && !scale.getOrdinalMeta().categories.length); // Evaluate if axis needs cross zero\n\n if (model.getNeedCrossZero()) {\n // Axis is over zero and min is not set\n if (min > 0 && max > 0 && !fixMin) {\n min = 0;\n } // Axis is under zero and max is not set\n\n\n if (min < 0 && max < 0 && !fixMax) {\n max = 0;\n }\n } // If bars are placed on a base axis of type time or interval account for axis boundary overflow and current axis\n // is base axis\n // FIXME\n // (1) Consider support value axis, where below zero and axis `onZero` should be handled properly.\n // (2) Refactor the logic with `barGrid`. Is it not need to `makeBarWidthAndOffsetInfo` twice with different extent?\n // Should not depend on series type `bar`?\n // (3) Fix that might overlap when using dataZoom.\n // (4) Consider other chart types using `barGrid`?\n // See #6728, #4862, `test/bar-overflow-time-plot.html`\n\n\n var ecModel = model.ecModel;\n\n if (ecModel && scaleType === 'time'\n /*|| scaleType === 'interval' */\n ) {\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n var isBaseAxisAndHasBarSeries;\n zrUtil.each(barSeriesModels, function (seriesModel) {\n isBaseAxisAndHasBarSeries |= seriesModel.getBaseAxis() === model.axis;\n });\n\n if (isBaseAxisAndHasBarSeries) {\n // Calculate placement of bars on axis\n var barWidthAndOffset = makeColumnLayout(barSeriesModels); // Adjust axis min and max to account for overflow\n\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n min = adjustedScale.min;\n max = adjustedScale.max;\n }\n }\n\n return {\n extent: [min, max],\n // \"fix\" means \"fixed\", the value should not be\n // changed in the subsequent steps.\n fixMin: fixMin,\n fixMax: fixMax\n };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n // Get Axis Length\n var axisExtent = model.axis.getExtent();\n var axisLength = axisExtent[1] - axisExtent[0]; // Get bars on current base axis and calculate min and max overflow\n\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n if (barsOnCurrentAxis === undefined) {\n return {\n min: min,\n max: max\n };\n }\n\n var minOverflow = Infinity;\n zrUtil.each(barsOnCurrentAxis, function (item) {\n minOverflow = Math.min(item.offset, minOverflow);\n });\n var maxOverflow = -Infinity;\n zrUtil.each(barsOnCurrentAxis, function (item) {\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n });\n minOverflow = Math.abs(minOverflow);\n maxOverflow = Math.abs(maxOverflow);\n var totalOverFlow = minOverflow + maxOverflow; // Calulate required buffer based on old range and overflow\n\n var oldRange = max - min;\n var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n max += overflowBuffer * (maxOverflow / totalOverFlow);\n min -= overflowBuffer * (minOverflow / totalOverFlow);\n return {\n min: min,\n max: max\n };\n}\n\nfunction niceScaleExtent(scale, model) {\n var extentInfo = getScaleExtent(scale, model);\n var extent = extentInfo.extent;\n var splitNumber = model.get('splitNumber');\n\n if (scale.type === 'log') {\n scale.base = model.get('logBase');\n }\n\n var scaleType = scale.type;\n scale.setExtent(extent[0], extent[1]);\n scale.niceExtent({\n splitNumber: splitNumber,\n fixMin: extentInfo.fixMin,\n fixMax: extentInfo.fixMax,\n minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n }); // If some one specified the min, max. And the default calculated interval\n // is not good enough. He can specify the interval. It is often appeared\n // in angle axis with angle 0 - 360. Interval calculated in interval scale is hard\n // to be 60.\n // FIXME\n\n var interval = model.get('interval');\n\n if (interval != null) {\n scale.setInterval && scale.setInterval(interval);\n }\n}\n/**\n * @param {module:echarts/model/Model} model\n * @param {string} [axisType] Default retrieve from model.type\n * @return {module:echarts/scale/*}\n */\n\n\nfunction createScaleByModel(model, axisType) {\n axisType = axisType || model.get('type');\n\n if (axisType) {\n switch (axisType) {\n // Buildin scale\n case 'category':\n return new OrdinalScale(model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(), [Infinity, -Infinity]);\n\n case 'value':\n return new IntervalScale();\n // Extended scale, like time and log\n\n default:\n return (Scale.getClass(axisType) || IntervalScale).create(model);\n }\n }\n}\n/**\n * Check if the axis corss 0\n */\n\n\nfunction ifAxisCrossZero(axis) {\n var dataExtent = axis.scale.getExtent();\n var min = dataExtent[0];\n var max = dataExtent[1];\n return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\n/**\n * @param {module:echarts/coord/Axis} axis\n * @return {Function} Label formatter function.\n * param: {number} tickValue,\n * param: {number} idx, the index in all ticks.\n * If category axis, this param is not requied.\n * return: {string} label string.\n */\n\n\nfunction makeLabelFormatter(axis) {\n var labelFormatter = axis.getLabelModel().get('formatter');\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n if (typeof labelFormatter === 'string') {\n labelFormatter = function (tpl) {\n return function (val) {\n // For category axis, get raw value; for numeric axis,\n // get foramtted label like '1,333,444'.\n val = axis.scale.getLabel(val);\n return tpl.replace('{value}', val != null ? val : '');\n };\n }(labelFormatter); // Consider empty array\n\n\n return labelFormatter;\n } else if (typeof labelFormatter === 'function') {\n return function (tickValue, idx) {\n // The original intention of `idx` is \"the index of the tick in all ticks\".\n // But the previous implementation of category axis do not consider the\n // `axisLabel.interval`, which cause that, for example, the `interval` is\n // `1`, then the ticks \"name5\", \"name7\", \"name9\" are displayed, where the\n // corresponding `idx` are `0`, `2`, `4`, but not `0`, `1`, `2`. So we keep\n // the definition here for back compatibility.\n if (categoryTickStart != null) {\n idx = tickValue - categoryTickStart;\n }\n\n return labelFormatter(getAxisRawValue(axis, tickValue), idx);\n };\n } else {\n return function (tick) {\n return axis.scale.getLabel(tick);\n };\n }\n}\n\nfunction getAxisRawValue(axis, value) {\n // In category axis with data zoom, tick is not the original\n // index of axis.data. So tick should not be exposed to user\n // in category axis.\n return axis.type === 'category' ? axis.scale.getLabel(value) : value;\n}\n/**\n * @param {module:echarts/coord/Axis} axis\n * @return {module:zrender/core/BoundingRect} Be null/undefined if no labels.\n */\n\n\nfunction estimateLabelUnionRect(axis) {\n var axisModel = axis.model;\n var scale = axis.scale;\n\n if (!axisModel.get('axisLabel.show') || scale.isBlank()) {\n return;\n }\n\n var isCategory = axis.type === 'category';\n var realNumberScaleTicks;\n var tickCount;\n var categoryScaleExtent = scale.getExtent(); // Optimize for large category data, avoid call `getTicks()`.\n\n if (isCategory) {\n tickCount = scale.count();\n } else {\n realNumberScaleTicks = scale.getTicks();\n tickCount = realNumberScaleTicks.length;\n }\n\n var axisLabelModel = axis.getLabelModel();\n var labelFormatter = makeLabelFormatter(axis);\n var rect;\n var step = 1; // Simple optimization for large amount of labels\n\n if (tickCount > 40) {\n step = Math.ceil(tickCount / 40);\n }\n\n for (var i = 0; i < tickCount; i += step) {\n var tickValue = realNumberScaleTicks ? realNumberScaleTicks[i] : categoryScaleExtent[0] + i;\n var label = labelFormatter(tickValue);\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n rect ? rect.union(singleRect) : rect = singleRect;\n }\n\n return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n var rotateRadians = rotate * Math.PI / 180;\n var boundingBox = textRect.plain();\n var beforeWidth = boundingBox.width;\n var beforeHeight = boundingBox.height;\n var afterWidth = beforeWidth * Math.cos(rotateRadians) + beforeHeight * Math.sin(rotateRadians);\n var afterHeight = beforeWidth * Math.sin(rotateRadians) + beforeHeight * Math.cos(rotateRadians);\n var rotatedRect = new BoundingRect(boundingBox.x, boundingBox.y, afterWidth, afterHeight);\n return rotatedRect;\n}\n/**\n * @param {module:echarts/src/model/Model} model axisLabelModel or axisTickModel\n * @return {number|String} Can be null|'auto'|number|function\n */\n\n\nfunction getOptionCategoryInterval(model) {\n var interval = model.get('interval');\n return interval == null ? 'auto' : interval;\n}\n/**\n * Set `categoryInterval` as 0 implicitly indicates that\n * show all labels reguardless of overlap.\n * @param {Object} axis axisModel.axis\n * @return {boolean}\n */\n\n\nfunction shouldShowAllLabels(axis) {\n return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\n\nexports.getScaleExtent = getScaleExtent;\nexports.niceScaleExtent = niceScaleExtent;\nexports.createScaleByModel = createScaleByModel;\nexports.ifAxisCrossZero = ifAxisCrossZero;\nexports.makeLabelFormatter = makeLabelFormatter;\nexports.getAxisRawValue = getAxisRawValue;\nexports.estimateLabelUnionRect = estimateLabelUnionRect;\nexports.getOptionCategoryInterval = getOptionCategoryInterval;\nexports.shouldShowAllLabels = shouldShowAllLabels;","\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// import * as axisHelper from './axisHelper';\nvar _default = {\n /**\n * @param {boolean} origin\n * @return {number|string} min value or 'dataMin' or null/undefined (means auto) or NaN\n */\n getMin: function (origin) {\n var option = this.option;\n var min = !origin && option.rangeStart != null ? option.rangeStart : option.min;\n\n if (this.axis && min != null && min !== 'dataMin' && typeof min !== 'function' && !zrUtil.eqNaN(min)) {\n min = this.axis.scale.parse(min);\n }\n\n return min;\n },\n\n /**\n * @param {boolean} origin\n * @return {number|string} max value or 'dataMax' or null/undefined (means auto) or NaN\n */\n getMax: function (origin) {\n var option = this.option;\n var max = !origin && option.rangeEnd != null ? option.rangeEnd : option.max;\n\n if (this.axis && max != null && max !== 'dataMax' && typeof max !== 'function' && !zrUtil.eqNaN(max)) {\n max = this.axis.scale.parse(max);\n }\n\n return max;\n },\n\n /**\n * @return {boolean}\n */\n getNeedCrossZero: function () {\n var option = this.option;\n return option.rangeStart != null || option.rangeEnd != null ? false : !option.scale;\n },\n\n /**\n * Should be implemented by each axis model if necessary.\n * @return {module:echarts/model/Component} coordinate system model\n */\n getCoordSysModel: zrUtil.noop,\n\n /**\n * @param {number} rangeStart Can only be finite number or null/undefined or NaN.\n * @param {number} rangeEnd Can only be finite number or null/undefined or NaN.\n */\n setRange: function (rangeStart, rangeEnd) {\n this.option.rangeStart = rangeStart;\n this.option.rangeEnd = rangeEnd;\n },\n\n /**\n * Reset range\n */\n resetRange: function () {\n // rangeStart and rangeEnd is readonly.\n this.option.rangeStart = this.option.rangeEnd = null;\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar axisDefault = require(\"./axisDefault\");\n\nvar ComponentModel = require(\"../model/Component\");\n\nvar _layout = require(\"../util/layout\");\n\nvar getLayoutParams = _layout.getLayoutParams;\nvar mergeLayoutParam = _layout.mergeLayoutParam;\n\nvar OrdinalMeta = require(\"../data/OrdinalMeta\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME axisType is fixed ?\nvar AXIS_TYPES = ['value', 'category', 'time', 'log'];\n/**\n * Generate sub axis model class\n * @param {string} axisName 'x' 'y' 'radius' 'angle' 'parallel'\n * @param {module:echarts/model/Component} BaseAxisModelClass\n * @param {Function} axisTypeDefaulter\n * @param {Object} [extraDefaultOption]\n */\n\nfunction _default(axisName, BaseAxisModelClass, axisTypeDefaulter, extraDefaultOption) {\n zrUtil.each(AXIS_TYPES, function (axisType) {\n BaseAxisModelClass.extend({\n /**\n * @readOnly\n */\n type: axisName + 'Axis.' + axisType,\n mergeDefaultAndTheme: function (option, ecModel) {\n var layoutMode = this.layoutMode;\n var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n var themeModel = ecModel.getTheme();\n zrUtil.merge(option, themeModel.get(axisType + 'Axis'));\n zrUtil.merge(option, this.getDefaultOption());\n option.type = axisTypeDefaulter(axisName, option);\n\n if (layoutMode) {\n mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n },\n\n /**\n * @override\n */\n optionUpdated: function () {\n var thisOption = this.option;\n\n if (thisOption.type === 'category') {\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n }\n },\n\n /**\n * Should not be called before all of 'getInitailData' finished.\n * Because categories are collected during initializing data.\n */\n getCategories: function (rawData) {\n var option = this.option; // FIXME\n // warning if called before all of 'getInitailData' finished.\n\n if (option.type === 'category') {\n if (rawData) {\n return option.data;\n }\n\n return this.__ordinalMeta.categories;\n }\n },\n getOrdinalMeta: function () {\n return this.__ordinalMeta;\n },\n defaultOption: zrUtil.mergeAll([{}, axisDefault[axisType + 'Axis'], extraDefaultOption], true)\n });\n });\n ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', zrUtil.curry(axisTypeDefaulter, axisName));\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar textContain = require(\"zrender/lib/contain/text\");\n\nvar _model = require(\"../util/model\");\n\nvar makeInner = _model.makeInner;\n\nvar _axisHelper = require(\"./axisHelper\");\n\nvar makeLabelFormatter = _axisHelper.makeLabelFormatter;\nvar getOptionCategoryInterval = _axisHelper.getOptionCategoryInterval;\nvar shouldShowAllLabels = _axisHelper.shouldShowAllLabels;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = makeInner();\n/**\n * @param {module:echats/coord/Axis} axis\n * @return {Object} {\n * labels: [{\n * formattedLabel: string,\n * rawLabel: string,\n * tickValue: number\n * }, ...],\n * labelCategoryInterval: number\n * }\n */\n\nfunction createAxisLabels(axis) {\n // Only ordinal scale support tick interval\n return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\n/**\n * @param {module:echats/coord/Axis} axis\n * @param {module:echarts/model/Model} tickModel For example, can be axisTick, splitLine, splitArea.\n * @return {Object} {\n * ticks: Array.<number>\n * tickCategoryInterval: number\n * }\n */\n\n\nfunction createAxisTicks(axis, tickModel) {\n // Only ordinal scale support tick interval\n return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n ticks: axis.scale.getTicks()\n };\n}\n\nfunction makeCategoryLabels(axis) {\n var labelModel = axis.getLabelModel();\n var result = makeCategoryLabelsActually(axis, labelModel);\n return !labelModel.get('show') || axis.scale.isBlank() ? {\n labels: [],\n labelCategoryInterval: result.labelCategoryInterval\n } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n var labelsCache = getListCache(axis, 'labels');\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\n var result = listCacheGet(labelsCache, optionLabelInterval);\n\n if (result) {\n return result;\n }\n\n var labels;\n var numericLabelInterval;\n\n if (zrUtil.isFunction(optionLabelInterval)) {\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n } else {\n numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n } // Cache to avoid calling interval function repeatly.\n\n\n return listCacheSet(labelsCache, optionLabelInterval, {\n labels: labels,\n labelCategoryInterval: numericLabelInterval\n });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n var ticksCache = getListCache(axis, 'ticks');\n var optionTickInterval = getOptionCategoryInterval(tickModel);\n var result = listCacheGet(ticksCache, optionTickInterval);\n\n if (result) {\n return result;\n }\n\n var ticks;\n var tickCategoryInterval; // Optimize for the case that large category data and no label displayed,\n // we should not return all ticks.\n\n if (!tickModel.get('show') || axis.scale.isBlank()) {\n ticks = [];\n }\n\n if (zrUtil.isFunction(optionTickInterval)) {\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n } // Always use label interval by default despite label show. Consider this\n // scenario, Use multiple grid with the xAxis sync, and only one xAxis shows\n // labels. `splitLine` and `axisTick` should be consistent in this case.\n else if (optionTickInterval === 'auto') {\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n tickCategoryInterval = labelsResult.labelCategoryInterval;\n ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n return labelItem.tickValue;\n });\n } else {\n tickCategoryInterval = optionTickInterval;\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n } // Cache to avoid calling interval function repeatly.\n\n\n return listCacheSet(ticksCache, optionTickInterval, {\n ticks: ticks,\n tickCategoryInterval: tickCategoryInterval\n });\n}\n\nfunction makeRealNumberLabels(axis) {\n var ticks = axis.scale.getTicks();\n var labelFormatter = makeLabelFormatter(axis);\n return {\n labels: zrUtil.map(ticks, function (tickValue, idx) {\n return {\n formattedLabel: labelFormatter(tickValue, idx),\n rawLabel: axis.scale.getLabel(tickValue),\n tickValue: tickValue\n };\n })\n };\n} // Large category data calculation is performence sensitive, and ticks and label\n// probably be fetched by multiple times. So we cache the result.\n// axis is created each time during a ec process, so we do not need to clear cache.\n\n\nfunction getListCache(axis, prop) {\n // Because key can be funciton, and cache size always be small, we use array cache.\n return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n for (var i = 0; i < cache.length; i++) {\n if (cache[i].key === key) {\n return cache[i].value;\n }\n }\n}\n\nfunction listCacheSet(cache, key, value) {\n cache.push({\n key: key,\n value: value\n });\n return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n var result = inner(axis).autoInterval;\n return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n/**\n * Calculate interval for category axis ticks and labels.\n * To get precise result, at least one of `getRotate` and `isHorizontal`\n * should be implemented in axis.\n */\n\n\nfunction calculateCategoryInterval(axis) {\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\n var labelFormatter = makeLabelFormatter(axis);\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent(); // Providing this method is for optimization:\n // avoid generating a long array by `getTicks`\n // in large category data case.\n\n var tickCount = ordinalScale.count();\n\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n return 0;\n }\n\n var step = 1; // Simple optimization. Empirical value: tick count should less than 40.\n\n if (tickCount > 40) {\n step = Math.max(1, Math.floor(tickCount / 40));\n }\n\n var tickValue = ordinalExtent[0];\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\n var maxW = 0;\n var maxH = 0; // Caution: Performance sensitive for large category data.\n // Consider dataZoom, we should make appropriate step to avoid O(n) loop.\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n var width = 0;\n var height = 0; // Not precise, do not consider align and vertical align\n // and each distance from axis line yet.\n\n var rect = textContain.getBoundingRect(labelFormatter(tickValue), params.font, 'center', 'top'); // Magic number\n\n width = rect.width * 1.3;\n height = rect.height * 1.3; // Min size, void long loop.\n\n maxW = Math.max(maxW, width, 7);\n maxH = Math.max(maxH, height, 7);\n }\n\n var dw = maxW / unitW;\n var dh = maxH / unitH; // 0/0 is NaN, 1/0 is Infinity.\n\n isNaN(dw) && (dw = Infinity);\n isNaN(dh) && (dh = Infinity);\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n var cache = inner(axis.model);\n var axisExtent = axis.getExtent();\n var lastAutoInterval = cache.lastAutoInterval;\n var lastTickCount = cache.lastTickCount; // Use cache to keep interval stable while moving zoom window,\n // otherwise the calculated interval might jitter when the zoom\n // window size is close to the interval-changing size.\n // For example, if all of the axis labels are `a, b, c, d, e, f, g`.\n // The jitter will cause that sometimes the displayed labels are\n // `a, d, g` (interval: 2) sometimes `a, c, e`(interval: 1).\n\n if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 // Always choose the bigger one, otherwise the critical\n // point is not the same when zooming in or zooming out.\n && lastAutoInterval > interval // If the axis change is caused by chart resize, the cache should not\n // be used. Otherwise some hiden labels might not be shown again.\n && cache.axisExtend0 === axisExtent[0] && cache.axisExtend1 === axisExtent[1]) {\n interval = lastAutoInterval;\n } // Only update cache if cache not used, otherwise the\n // changing of interval is too insensitive.\n else {\n cache.lastTickCount = tickCount;\n cache.lastAutoInterval = interval;\n cache.axisExtend0 = axisExtent[0];\n cache.axisExtend1 = axisExtent[1];\n }\n\n return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n var labelModel = axis.getLabelModel();\n return {\n axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n labelRotate: labelModel.get('rotate') || 0,\n font: labelModel.getFont()\n };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n var labelFormatter = makeLabelFormatter(axis);\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent();\n var labelModel = axis.getLabelModel();\n var result = []; // TODO: axisType: ordinalTime, pick the tick from each month/day/year/...\n\n var step = Math.max((categoryInterval || 0) + 1, 1);\n var startTick = ordinalExtent[0];\n var tickCount = ordinalScale.count(); // Calculate start tick based on zero if possible to keep label consistent\n // while zooming and moving while interval > 0. Otherwise the selection\n // of displayable ticks and symbols probably keep changing.\n // 3 is empirical value.\n\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n startTick = Math.round(Math.ceil(startTick / step) * step);\n } // (1) Only add min max label here but leave overlap checking\n // to render stage, which also ensure the returned list\n // suitable for splitLine and splitArea rendering.\n // (2) Scales except category always contain min max label so\n // do not need to perform this process.\n\n\n var showAllLabel = shouldShowAllLabels(axis);\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\n addItem(ordinalExtent[0]);\n } // Optimize: avoid generating large array by `ordinalScale.getTicks()`.\n\n\n var tickValue = startTick;\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n addItem(tickValue);\n }\n\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n addItem(ordinalExtent[1]);\n }\n\n function addItem(tVal) {\n result.push(onlyTick ? tVal : {\n formattedLabel: labelFormatter(tVal),\n rawLabel: ordinalScale.getLabel(tVal),\n tickValue: tVal\n });\n }\n\n return result;\n} // When interval is function, the result `false` means ignore the tick.\n// It is time consuming for large category data.\n\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n var ordinalScale = axis.scale;\n var labelFormatter = makeLabelFormatter(axis);\n var result = [];\n zrUtil.each(ordinalScale.getTicks(), function (tickValue) {\n var rawLabel = ordinalScale.getLabel(tickValue);\n\n if (categoryInterval(tickValue, rawLabel)) {\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tickValue),\n rawLabel: rawLabel,\n tickValue: tickValue\n });\n }\n });\n return result;\n}\n\nexports.createAxisLabels = createAxisLabels;\nexports.createAxisTicks = createAxisTicks;\nexports.calculateCategoryInterval = calculateCategoryInterval;","\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 layout = require(\"../../util/layout\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\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// (24*60*60*1000)\nvar PROXIMATE_ONE_DAY = 86400000;\n/**\n * Calendar\n *\n * @constructor\n *\n * @param {Object} calendarModel calendarModel\n * @param {Object} ecModel ecModel\n * @param {Object} api api\n */\n\nfunction Calendar(calendarModel, ecModel, api) {\n this._model = calendarModel;\n}\n\nCalendar.prototype = {\n constructor: Calendar,\n type: 'calendar',\n dimensions: ['time', 'value'],\n // Required in createListFromData\n getDimensionsInfo: function () {\n return [{\n name: 'time',\n type: 'time'\n }, 'value'];\n },\n getRangeInfo: function () {\n return this._rangeInfo;\n },\n getModel: function () {\n return this._model;\n },\n getRect: function () {\n return this._rect;\n },\n getCellWidth: function () {\n return this._sw;\n },\n getCellHeight: function () {\n return this._sh;\n },\n getOrient: function () {\n return this._orient;\n },\n\n /**\n * getFirstDayOfWeek\n *\n * @example\n * 0 : start at Sunday\n * 1 : start at Monday\n *\n * @return {number}\n */\n getFirstDayOfWeek: function () {\n return this._firstDayOfWeek;\n },\n\n /**\n * get date info\n *\n * @param {string|number} date date\n * @return {Object}\n * {\n * y: string, local full year, eg., '1940',\n * m: string, local month, from '01' ot '12',\n * d: string, local date, from '01' to '31' (if exists),\n * day: It is not date.getDay(). It is the location of the cell in a week, from 0 to 6,\n * time: timestamp,\n * formatedDate: string, yyyy-MM-dd,\n * date: original date object.\n * }\n */\n getDateInfo: function (date) {\n date = numberUtil.parseDate(date);\n var y = date.getFullYear();\n var m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n var d = date.getDate();\n d = d < 10 ? '0' + d : d;\n var day = date.getDay();\n day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n return {\n y: y,\n m: m,\n d: d,\n day: day,\n time: date.getTime(),\n formatedDate: y + '-' + m + '-' + d,\n date: date\n };\n },\n getNextNDay: function (date, n) {\n n = n || 0;\n\n if (n === 0) {\n return this.getDateInfo(date);\n }\n\n date = new Date(this.getDateInfo(date).time);\n date.setDate(date.getDate() + n);\n return this.getDateInfo(date);\n },\n update: function (ecModel, api) {\n this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n this._orient = this._model.get('orient');\n this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n var weeks = this._rangeInfo.weeks || 1;\n var whNames = ['width', 'height'];\n\n var cellSize = this._model.get('cellSize').slice();\n\n var layoutParams = this._model.getBoxLayoutParams();\n\n var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n zrUtil.each([0, 1], function (idx) {\n if (cellSizeSpecified(cellSize, idx)) {\n layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n }\n });\n var whGlobal = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n zrUtil.each([0, 1], function (idx) {\n if (!cellSizeSpecified(cellSize, idx)) {\n cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n }\n });\n\n function cellSizeSpecified(cellSize, idx) {\n return cellSize[idx] != null && cellSize[idx] !== 'auto';\n }\n\n this._sw = cellSize[0];\n this._sh = cellSize[1];\n },\n\n /**\n * Convert a time data(time, value) item to (x, y) point.\n *\n * @override\n * @param {Array|number} data data\n * @param {boolean} [clamp=true] out of range\n * @return {Array} point\n */\n dataToPoint: function (data, clamp) {\n zrUtil.isArray(data) && (data = data[0]);\n clamp == null && (clamp = true);\n var dayInfo = this.getDateInfo(data);\n var range = this._rangeInfo;\n var date = dayInfo.formatedDate; // if not in range return [NaN, NaN]\n\n if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n return [NaN, NaN];\n }\n\n var week = dayInfo.day;\n\n var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n if (this._orient === 'vertical') {\n return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n }\n\n return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n },\n\n /**\n * Convert a (x, y) point to time data\n *\n * @override\n * @param {string} point point\n * @return {string} data\n */\n pointToData: function (point) {\n var date = this.pointToDate(point);\n return date && date.time;\n },\n\n /**\n * Convert a time date item to (x, y) four point.\n *\n * @param {Array} data date[0] is date\n * @param {boolean} [clamp=true] out of range\n * @return {Object} point\n */\n dataToRect: function (data, clamp) {\n var point = this.dataToPoint(data, clamp);\n return {\n contentShape: {\n x: point[0] - (this._sw - this._lineWidth) / 2,\n y: point[1] - (this._sh - this._lineWidth) / 2,\n width: this._sw - this._lineWidth,\n height: this._sh - this._lineWidth\n },\n center: point,\n tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n };\n },\n\n /**\n * Convert a (x, y) point to time date\n *\n * @param {Array} point point\n * @return {Object} date\n */\n pointToDate: function (point) {\n var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n var range = this._rangeInfo.range;\n\n if (this._orient === 'vertical') {\n return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n }\n\n return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n },\n\n /**\n * @inheritDoc\n */\n convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n /**\n * @inheritDoc\n */\n convertFromPixel: zrUtil.curry(doConvert, 'pointToData'),\n\n /**\n * initRange\n *\n * @private\n * @return {Array} [start, end]\n */\n _initRangeOption: function () {\n var range = this._model.get('range');\n\n var rg = range;\n\n if (zrUtil.isArray(rg) && rg.length === 1) {\n rg = rg[0];\n }\n\n if (/^\\d{4}$/.test(rg)) {\n range = [rg + '-01-01', rg + '-12-31'];\n }\n\n if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rg)) {\n var start = this.getDateInfo(rg);\n var firstDay = start.date;\n firstDay.setMonth(firstDay.getMonth() + 1);\n var end = this.getNextNDay(firstDay, -1);\n range = [start.formatedDate, end.formatedDate];\n }\n\n if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rg)) {\n range = [rg, rg];\n }\n\n var tmp = this._getRangeInfo(range);\n\n if (tmp.start.time > tmp.end.time) {\n range.reverse();\n }\n\n return range;\n },\n\n /**\n * range info\n *\n * @private\n * @param {Array} range range ['2017-01-01', '2017-07-08']\n * If range[0] > range[1], they will not be reversed.\n * @return {Object} obj\n */\n _getRangeInfo: function (range) {\n range = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n var reversed;\n\n if (range[0].time > range[1].time) {\n reversed = true;\n range.reverse();\n }\n\n var allDay = Math.floor(range[1].time / PROXIMATE_ONE_DAY) - Math.floor(range[0].time / PROXIMATE_ONE_DAY) + 1; // Consider case1 (#11677 #10430):\n // Set the system timezone as \"UK\", set the range to `['2016-07-01', '2016-12-31']`\n // Consider case2:\n // Firstly set system timezone as \"Time Zone: America/Toronto\",\n // ```\n // var first = new Date(1478412000000 - 3600 * 1000 * 2.5);\n // var second = new Date(1478412000000);\n // var allDays = Math.floor(second / ONE_DAY) - Math.floor(first / ONE_DAY) + 1;\n // ```\n // will get wrong result because of DST. So we should fix it.\n\n var date = new Date(range[0].time);\n var startDateNum = date.getDate();\n var endDateNum = range[1].date.getDate();\n date.setDate(startDateNum + allDay - 1); // The bias can not over a month, so just compare date.\n\n var dateNum = date.getDate();\n\n if (dateNum !== endDateNum) {\n var sign = date.getTime() - range[1].time > 0 ? 1 : -1;\n\n while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - range[1].time) * sign > 0) {\n allDay -= sign;\n date.setDate(dateNum - sign);\n }\n }\n\n var weeks = Math.floor((allDay + range[0].day + 6) / 7);\n var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n reversed && range.reverse();\n return {\n range: [range[0].formatedDate, range[1].formatedDate],\n start: range[0],\n end: range[1],\n allDay: allDay,\n weeks: weeks,\n // From 0.\n nthWeek: nthWeek,\n fweek: range[0].day,\n lweek: range[1].day\n };\n },\n\n /**\n * get date by nthWeeks and week day in range\n *\n * @private\n * @param {number} nthWeek the week\n * @param {number} day the week day\n * @param {Array} range [d1, d2]\n * @return {Object}\n */\n _getDateByWeeksAndDay: function (nthWeek, day, range) {\n var rangeInfo = this._getRangeInfo(range);\n\n if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n return false;\n }\n\n var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n var date = new Date(rangeInfo.start.time);\n date.setDate(rangeInfo.start.d + nthDay);\n return this.getDateInfo(date);\n }\n};\nCalendar.dimensions = Calendar.prototype.dimensions;\nCalendar.getDimensionsInfo = Calendar.prototype.getDimensionsInfo;\n\nCalendar.create = function (ecModel, api) {\n var calendarList = [];\n ecModel.eachComponent('calendar', function (calendarModel) {\n var calendar = new Calendar(calendarModel, ecModel, api);\n calendarList.push(calendar);\n calendarModel.coordinateSystem = calendar;\n });\n ecModel.eachSeries(function (calendarSeries) {\n if (calendarSeries.get('coordinateSystem') === 'calendar') {\n // Inject coordinate system\n calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n }\n });\n return calendarList;\n};\n\nfunction doConvert(methodName, ecModel, finder, value) {\n var calendarModel = finder.calendarModel;\n var seriesModel = finder.seriesModel;\n var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nCoordinateSystem.register('calendar', Calendar);\nvar _default = Calendar;\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 ComponentModel = require(\"../../model/Component\");\n\nvar _layout = require(\"../../util/layout\");\n\nvar getLayoutParams = _layout.getLayoutParams;\nvar sizeCalculable = _layout.sizeCalculable;\nvar mergeLayoutParam = _layout.mergeLayoutParam;\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 CalendarModel = ComponentModel.extend({\n type: 'calendar',\n\n /**\n * @type {module:echarts/coord/calendar/Calendar}\n */\n coordinateSystem: null,\n defaultOption: {\n zlevel: 0,\n z: 2,\n left: 80,\n top: 60,\n cellSize: 20,\n // horizontal vertical\n orient: 'horizontal',\n // month separate line style\n splitLine: {\n show: true,\n lineStyle: {\n color: '#000',\n width: 1,\n type: 'solid'\n }\n },\n // rect style temporarily unused emphasis\n itemStyle: {\n color: '#fff',\n borderWidth: 1,\n borderColor: '#ccc'\n },\n // week text style\n dayLabel: {\n show: true,\n // a week first day\n firstDay: 0,\n // start end\n position: 'start',\n margin: '50%',\n // 50% of cellSize\n nameMap: 'en',\n color: '#000'\n },\n // month text style\n monthLabel: {\n show: true,\n // start end\n position: 'start',\n margin: 5,\n // center or left\n align: 'center',\n // cn en []\n nameMap: 'en',\n formatter: null,\n color: '#000'\n },\n // year text style\n yearLabel: {\n show: true,\n // top bottom left right\n position: null,\n margin: 30,\n formatter: null,\n color: '#ccc',\n fontFamily: 'sans-serif',\n fontWeight: 'bolder',\n fontSize: 20\n }\n },\n\n /**\n * @override\n */\n init: function (option, parentModel, ecModel, extraOpt) {\n var inputPositionParams = getLayoutParams(option);\n CalendarModel.superApply(this, 'init', arguments);\n mergeAndNormalizeLayoutParams(option, inputPositionParams);\n },\n\n /**\n * @override\n */\n mergeOption: function (option, extraOpt) {\n CalendarModel.superApply(this, 'mergeOption', arguments);\n mergeAndNormalizeLayoutParams(this.option, option);\n }\n});\n\nfunction mergeAndNormalizeLayoutParams(target, raw) {\n // Normalize cellSize\n var cellSize = target.cellSize;\n\n if (!zrUtil.isArray(cellSize)) {\n cellSize = target.cellSize = [cellSize, cellSize];\n } else if (cellSize.length === 1) {\n cellSize[1] = cellSize[0];\n }\n\n var ignoreSize = zrUtil.map([0, 1], function (hvIdx) {\n // If user have set `width` or both `left` and `right`, cellSize\n // will be automatically set to 'auto', otherwise the default\n // setting of cellSize will make `width` setting not work.\n if (sizeCalculable(raw, hvIdx)) {\n cellSize[hvIdx] = 'auto';\n }\n\n return cellSize[hvIdx] != null && cellSize[hvIdx] !== 'auto';\n });\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: ignoreSize\n });\n}\n\nvar _default = CalendarModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(coordSys) {\n var rect = coordSys.getRect();\n var rangeInfo = coordSys.getRangeInfo();\n return {\n coordSys: {\n type: 'calendar',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n cellWidth: coordSys.getCellWidth(),\n cellHeight: coordSys.getCellHeight(),\n rangeInfo: {\n start: rangeInfo.start,\n end: rangeInfo.end,\n weeks: rangeInfo.weeks,\n dayCount: rangeInfo.allDay\n }\n },\n api: {\n coord: function (data, clamp) {\n return coordSys.dataToPoint(data, clamp);\n }\n }\n };\n}\n\nmodule.exports = _default;"],"names":["_util","each","map","_number","linearMap","getPixelPrecision","round","_axisTickLabelBuilder","createAxisTicks","createAxisLabels","calculateCategoryInterval","NORMALIZED_EXTENT","Axis","dim","scale","extent","this","_extent","inverse","onBand","fixExtentWithBands","nTick","size","len","margin","fixOnBandTicksCoords","axis","ticksCoords","alignWithLabel","clamp","ticksLen","length","last","diffSize","axisExtent","getExtent","coord","crossLen","tickValue","shift","ticksItem","dataExtent","push","littleThan","unshift","pop","a","b","prototype","constructor","contain","min","Math","max","containData","data","slice","setExtent","start","end","dataToCoord","normalize","type","count","coordToData","t","pointToData","point","getTicksCoords","opt","tickModel","getTickModel","result","ticks","get","getMinorTicksCoords","minorTickModel","model","getModel","splitNumber","minorTicks","getMinorTicks","minorTicksCoords","minorTicksGroup","minorTick","getViewLabels","labels","getLabelModel","getBandWidth","abs","isHorizontal","getRotate","_default","module","exports","zrUtil","vector","matrix","BoundingRect","Transformable","v2ApplyTransform","applyTransform","TransformDummy","call","View","name","zoomLimit","_roamTransformable","_rawTransformable","_center","_zoom","doConvert","methodName","ecModel","finder","value","seriesModel","coordSys","coordinateSystem","mixin","dimensions","setBoundingRect","x","y","width","height","_rect","getBoundingRect","setViewRect","transformTo","_viewRect","rect","rawTransform","transform","calculateTransform","decomposeTransform","_updateTransform","setCenter","centerCoord","_updateCenterAndZoom","setZoom","zoom","getDefaultCenter","rawRect","cx","cy","getCenter","getZoom","getRoamTransform","getLocalTransform","rawTransformMatrix","roamTransform","defaultCenter","center","origin","position","roamTransformable","rawTransformable","parent","updateTransform","copy","create","_rawTransform","invTransform","invert","getTransformInfo","rawScale","rawPosition","getViewRect","getViewRectAfterRoam","clone","dataToPoint","noRoam","out","convertToPixel","curry","convertFromPixel","containPoint","defaultOption","show","zlevel","z","nameLocation","nameRotate","nameTruncate","maxWidth","ellipsis","placeholder","nameTextStyle","nameGap","silent","triggerEvent","tooltip","axisPointer","axisLine","onZero","onZeroAxisIndex","lineStyle","color","symbol","symbolSize","axisTick","inside","axisLabel","rotate","showMinLabel","showMaxLabel","fontSize","splitLine","splitArea","areaStyle","axisDefault","categoryAxis","merge","boundaryGap","deduplication","interval","valueAxis","minorSplitLine","timeAxis","defaults","logAxis","logBase","_config","__DEV__","OrdinalScale","IntervalScale","Scale","numberUtil","_barGrid","prepareLayoutBarSeries","makeColumnLayout","retrieveColumnLayout","getScaleExtent","axisDataLen","span","scaleType","getMin","getMax","originalExtent","getCategories","isArray","parsePercent","fixMin","fixMax","NaN","isFinite","setBlank","eqNaN","getOrdinalMeta","categories","getNeedCrossZero","isBaseAxisAndHasBarSeries","barSeriesModels","getBaseAxis","barWidthAndOffset","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","undefined","minOverflow","Infinity","item","offset","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","niceScaleExtent","extentInfo","base","niceExtent","minInterval","maxInterval","setInterval","createScaleByModel","axisType","getClass","ifAxisCrossZero","makeLabelFormatter","labelFormatter","categoryTickStart","tpl","val","getLabel","replace","idx","getAxisRawValue","tick","estimateLabelUnionRect","axisModel","isBlank","realNumberScaleTicks","tickCount","isCategory","categoryScaleExtent","getTicks","axisLabelModel","step","ceil","i","label","unrotatedSingleRect","getTextRect","singleRect","rotateTextRect","union","textRect","rotateRadians","PI","boundingBox","plain","beforeWidth","beforeHeight","afterWidth","cos","sin","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","option","rangeStart","parse","rangeEnd","getCoordSysModel","noop","setRange","resetRange","ComponentModel","_layout","getLayoutParams","mergeLayoutParam","OrdinalMeta","AXIS_TYPES","axisName","BaseAxisModelClass","axisTypeDefaulter","extraDefaultOption","extend","mergeDefaultAndTheme","layoutMode","inputPositionParams","themeModel","getTheme","getDefaultOption","optionUpdated","thisOption","__ordinalMeta","createByAxisModel","rawData","mergeAll","registerSubTypeDefaulter","textContain","_model","makeInner","_axisHelper","inner","makeCategoryLabels","makeRealNumberLabels","makeCategoryTicks","labelModel","makeCategoryLabelsActually","labelCategoryInterval","numericLabelInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","isFunction","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","tickCategoryInterval","ticksCache","optionTickInterval","labelsResult","labelItem","formattedLabel","rawLabel","prop","cache","key","autoInterval","params","fetchAutoCategoryIntervalCalculationParams","rotation","axisRotate","labelRotate","ordinalScale","ordinalExtent","floor","unitSpan","unitW","unitH","maxW","maxH","font","dw","dh","isNaN","lastAutoInterval","lastTickCount","axisExtend0","axisExtend1","getFont","categoryInterval","onlyTick","startTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tVal","layout","CoordinateSystem","PROXIMATE_ONE_DAY","Calendar","calendarModel","api","getDimensionsInfo","getRangeInfo","_rangeInfo","getRect","getCellWidth","_sw","getCellHeight","_sh","getOrient","_orient","getFirstDayOfWeek","_firstDayOfWeek","getDateInfo","date","parseDate","getFullYear","m","getMonth","d","getDate","day","getDay","time","getTime","formatedDate","getNextNDay","n","Date","setDate","update","_lineWidth","getItemStyle","lineWidth","_getRangeInfo","_initRangeOption","weeks","whNames","cellSize","layoutParams","getBoxLayoutParams","cellNumbers","cellSizeSpecified","whGlobal","getWidth","getHeight","calendarRect","getLayoutRect","dayInfo","range","week","nthWeek","pointToDate","dataToRect","contentShape","tl","tr","br","bl","nthX","nthY","_getDateByWeeksAndDay","rg","test","firstDay","setMonth","tmp","reverse","reversed","allDay","startDateNum","endDateNum","dateNum","sign","fweek","lweek","rangeInfo","nthDay","calendarList","eachComponent","calendar","eachSeries","calendarSeries","register","sizeCalculable","CalendarModel","left","top","orient","itemStyle","borderWidth","borderColor","dayLabel","nameMap","monthLabel","align","formatter","yearLabel","fontFamily","fontWeight","init","parentModel","extraOpt","superApply","arguments","mergeAndNormalizeLayoutParams","mergeOption","target","raw","ignoreSize","hvIdx","cellWidth","cellHeight","dayCount"],"sourceRoot":""}
|