UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

121 lines (120 loc) 4.48 kB
import { __extends } from "../../../tslib/tslib.es6.mjs"; import Scale from "./Scale.mjs"; import OrdinalMeta from "../data/OrdinalMeta.mjs"; import { contain, normalize, scale } from "./helper.mjs"; import { isArray, map, isObject, isString } from "../../../zrender/lib/core/util.mjs"; var OrdinalScale = function(_super) { __extends(OrdinalScale2, _super); function OrdinalScale2(setting) { var _this = _super.call(this, setting) || this; _this.type = "ordinal"; var ordinalMeta = _this.getSetting("ordinalMeta"); if (!ordinalMeta) { ordinalMeta = new OrdinalMeta({}); } if (isArray(ordinalMeta)) { ordinalMeta = new OrdinalMeta({ categories: map(ordinalMeta, function(item) { return isObject(item) ? item.value : item; }) }); } _this._ordinalMeta = ordinalMeta; _this._extent = _this.getSetting("extent") || [0, ordinalMeta.categories.length - 1]; return _this; } OrdinalScale2.prototype.parse = function(val) { if (val == null) { return NaN; } return isString(val) ? this._ordinalMeta.getOrdinal(val) : Math.round(val); }; OrdinalScale2.prototype.contain = function(rank) { rank = this.parse(rank); return contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null; }; OrdinalScale2.prototype.normalize = function(val) { val = this._getTickNumber(this.parse(val)); return normalize(val, this._extent); }; OrdinalScale2.prototype.scale = function(val) { val = Math.round(scale(val, this._extent)); return this.getRawOrdinalNumber(val); }; OrdinalScale2.prototype.getTicks = function() { var ticks = []; var extent = this._extent; var rank = extent[0]; while (rank <= extent[1]) { ticks.push({ value: rank }); rank++; } return ticks; }; OrdinalScale2.prototype.getMinorTicks = function(splitNumber) { return; }; OrdinalScale2.prototype.setSortInfo = function(info) { if (info == null) { this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null; return; } var infoOrdinalNumbers = info.ordinalNumbers; var ordinalsByTick = this._ordinalNumbersByTick = []; var ticksByOrdinal = this._ticksByOrdinalNumber = []; var tickNum = 0; var allCategoryLen = this._ordinalMeta.categories.length; for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) { var ordinalNumber = infoOrdinalNumbers[tickNum]; ordinalsByTick[tickNum] = ordinalNumber; ticksByOrdinal[ordinalNumber] = tickNum; } var unusedOrdinal = 0; for (; tickNum < allCategoryLen; ++tickNum) { while (ticksByOrdinal[unusedOrdinal] != null) { unusedOrdinal++; } ordinalsByTick.push(unusedOrdinal); ticksByOrdinal[unusedOrdinal] = tickNum; } }; OrdinalScale2.prototype._getTickNumber = function(ordinal) { var ticksByOrdinalNumber = this._ticksByOrdinalNumber; return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal; }; OrdinalScale2.prototype.getRawOrdinalNumber = function(tickNumber) { var ordinalNumbersByTick = this._ordinalNumbersByTick; return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber; }; OrdinalScale2.prototype.getLabel = function(tick) { if (!this.isBlank()) { var ordinalNumber = this.getRawOrdinalNumber(tick.value); var cateogry = this._ordinalMeta.categories[ordinalNumber]; return cateogry == null ? "" : cateogry + ""; } }; OrdinalScale2.prototype.count = function() { return this._extent[1] - this._extent[0] + 1; }; OrdinalScale2.prototype.unionExtentFromData = function(data, dim) { this.unionExtent(data.getApproximateExtent(dim)); }; OrdinalScale2.prototype.isInExtentRange = function(value) { value = this._getTickNumber(value); return this._extent[0] <= value && this._extent[1] >= value; }; OrdinalScale2.prototype.getOrdinalMeta = function() { return this._ordinalMeta; }; OrdinalScale2.prototype.calcNiceTicks = function() { }; OrdinalScale2.prototype.calcNiceExtent = function() { }; OrdinalScale2.type = "ordinal"; return OrdinalScale2; }(Scale); Scale.registerClass(OrdinalScale); var OrdinalScale$1 = OrdinalScale; export { OrdinalScale$1 as default };