qauMaWeb/node_modules/.cache/babel-loader/5926e56ffcc1e7c2ea9dd8a212a...

1 line
37 KiB
JSON

{"ast":null,"code":"/*\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 * AUTO-GENERATED FILE. DO NOT MODIFY.\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*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as textContain from 'zrender/lib/contain/text.js';\nimport { makeInner } from '../util/model.js';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper.js';\nvar inner = makeInner();\nexport function 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\nexport function createAxisTicks(axis, tickModel) {\n // Only ordinal scale support tick interval\n return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n return tick.value;\n })\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 repeatedly.\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 repeatedly.\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 (tick, idx) {\n return {\n level: tick.level,\n formattedLabel: labelFormatter(tick, idx),\n rawLabel: axis.scale.getLabel(tick),\n tickValue: tick.value\n };\n })\n };\n}\n\nfunction getListCache(axis, prop) {\n // Because key can be a function, and cache size always is 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\nexport function 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({\n value: tickValue\n }), 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 hidden labels might not be shown again.\n && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === 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.axisExtent0 = axisExtent[0];\n cache.axisExtent1 = 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(tickValue) {\n var tickObj = {\n value: tickValue\n };\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tickObj),\n rawLabel: ordinalScale.getLabel(tickObj),\n tickValue: tickValue\n });\n }\n\n return result;\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 (tick) {\n var rawLabel = ordinalScale.getLabel(tick);\n var tickValue = tick.value;\n\n if (categoryInterval(tick.value, rawLabel)) {\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tick),\n rawLabel: rawLabel,\n tickValue: tickValue\n });\n }\n });\n return result;\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src啊/ElectronicMallVue/node_modules/echarts/lib/coord/axisTickLabelBuilder.js"],"names":["zrUtil","textContain","makeInner","makeLabelFormatter","getOptionCategoryInterval","shouldShowAllLabels","inner","createAxisLabels","axis","type","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","tickModel","makeCategoryTicks","ticks","map","scale","getTicks","tick","value","labelModel","getLabelModel","result","makeCategoryLabelsActually","get","isBlank","labels","labelCategoryInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","numericLabelInterval","isFunction","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","ticksCache","optionTickInterval","tickCategoryInterval","labelsResult","labelItem","tickValue","labelFormatter","idx","level","formattedLabel","rawLabel","getLabel","prop","cache","key","i","length","push","autoInterval","calculateCategoryInterval","params","fetchAutoCategoryIntervalCalculationParams","rotation","axisRotate","labelRotate","Math","PI","ordinalScale","ordinalExtent","getExtent","tickCount","count","step","max","floor","unitSpan","dataToCoord","unitW","abs","cos","unitH","sin","maxW","maxH","width","height","rect","getBoundingRect","font","dw","dh","isNaN","Infinity","interval","min","model","axisExtent","lastAutoInterval","lastTickCount","axisExtent0","axisExtent1","getRotate","isHorizontal","getFont","categoryInterval","onlyTick","startTick","round","ceil","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tickObj","each"],"mappings":"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","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\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\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*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as textContain from 'zrender/lib/contain/text.js';\nimport { makeInner } from '../util/model.js';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper.js';\nvar inner = makeInner();\nexport function 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\nexport function createAxisTicks(axis, tickModel) {\n // Only ordinal scale support tick interval\n return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n return tick.value;\n })\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 repeatedly.\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 repeatedly.\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 (tick, idx) {\n return {\n level: tick.level,\n formattedLabel: labelFormatter(tick, idx),\n rawLabel: axis.scale.getLabel(tick),\n tickValue: tick.value\n };\n })\n };\n}\n\nfunction getListCache(axis, prop) {\n // Because key can be a function, and cache size always is 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\nexport function 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({\n value: tickValue\n }), 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 hidden labels might not be shown again.\n && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === 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.axisExtent0 = axisExtent[0];\n cache.axisExtent1 = 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(tickValue) {\n var tickObj = {\n value: tickValue\n };\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tickObj),\n rawLabel: ordinalScale.getLabel(tickObj),\n tickValue: tickValue\n });\n }\n\n return result;\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 (tick) {\n var rawLabel = ordinalScale.getLabel(tick);\n var tickValue = tick.value;\n\n if (categoryInterval(tick.value, rawLabel)) {\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tick),\n rawLabel: rawLabel,\n tickValue: tickValue\n });\n }\n });\n return result;\n}"]},"metadata":{},"sourceType":"module"}