UNPKG

@antv/f2

Version:

Charts for mobile visualization.

48 lines (47 loc) 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = calculateCatTicks; var _util = require("@antv/util"); /** * 计算分类 ticks * @param cfg 度量的配置项 * @returns 计算后的 ticks */ function calculateCatTicks(cfg) { var values = cfg.values, tickInterval = cfg.tickInterval, tickCount = cfg.tickCount, showLast = cfg.showLast; if ((0, _util.isNumber)(tickInterval)) { var ticks_1 = (0, _util.filter)(values, function (__, i) { return i % tickInterval === 0; }); var lastValue = (0, _util.last)(values); if (showLast && (0, _util.last)(ticks_1) !== lastValue) { ticks_1.push(lastValue); } return ticks_1; } var len = values.length; var min = cfg.min, max = cfg.max; if ((0, _util.isNil)(min)) { min = 0; } if ((0, _util.isNil)(max)) { max = values.length - 1; } if (!(0, _util.isNumber)(tickCount) || tickCount >= len) return values.slice(min, max + 1); if (tickCount <= 0 || max <= 0) return []; var interval = tickCount === 1 ? len : Math.floor(len / (tickCount - 1)); var ticks = []; var idx = min; for (var i = 0; i < tickCount; i++) { if (idx >= max) break; idx = Math.min(min + i * interval, max); if (i === tickCount - 1 && showLast) ticks.push(values[max]);else ticks.push(values[idx]); } return ticks; }