@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
110 lines (109 loc) • 4.3 kB
JavaScript
;
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getColor = exports.filterBuiltInFields = exports.getSplitterRangeColor = void 0;
var lodash_1 = require("lodash");
var table_style_1 = require("../../../constants/table-style");
var color_splitter_1 = require("../transforms/color-splitter");
function getSplitterRangeColor(defaultColor, colorSplitter, value) {
if (!colorSplitter) {
return defaultColor;
}
var colorPalette = colorSplitter.colorPalette, _a = colorSplitter.scale, scale = _a === void 0 ? [] : _a;
var colors = colorPalette.value;
if (!lodash_1.isNil(value) &&
typeof value !== 'boolean' &&
lodash_1.isNumber(lodash_1.toNumber(value)) &&
!isNaN(lodash_1.toNumber(value)) &&
lodash_1.size(scale) &&
lodash_1.size(colors)) {
var min = lodash_1.first(scale);
var max = lodash_1.last(scale);
if (lodash_1.isNumber(min) && lodash_1.toNumber(value) <= min) {
return defaultColor;
}
var index = scale.findIndex(function (item) { return lodash_1.isNumber(item) && lodash_1.toNumber(item) >= lodash_1.toNumber(value); });
if (index >= 1) {
return colors[index - 1];
}
if (!lodash_1.isNumber(max)) {
return lodash_1.last(colors);
}
}
return defaultColor;
}
exports.getSplitterRangeColor = getSplitterRangeColor;
var BuiltInFields = ['_span', '_spandays'];
// 去掉数组指定的数据,但保持源数组本身不变,生成新的数组
function spliceNoMutate(myArray, indexToRemove) {
return myArray
.slice(0, indexToRemove)
.concat(myArray.slice(indexToRemove + 1));
}
function filterBuiltInFields(dataset) {
var fields = dataset.fields, rows = dataset.rows;
BuiltInFields.forEach(function (builtInField) {
var index = lodash_1.findIndex(fields, function (field) { return field.key === builtInField; });
if (index !== -1) {
fields = spliceNoMutate(fields, index);
rows = rows.map(function (row) {
return spliceNoMutate(row, index);
});
}
});
return {
fields: fields,
rows: rows
};
}
exports.filterBuiltInFields = filterBuiltInFields;
function getColor(type, defaultColor, isNumeric, splitter, value) {
var e_1, _a;
if (!splitter || !splitter.colorPalette) {
return defaultColor;
}
if (isNumeric) {
if (type === table_style_1.ThresholdType.Range) {
return getSplitterRangeColor(defaultColor, splitter, value);
}
if (type === table_style_1.ThresholdType.Constant) {
if (!lodash_1.isNil(value)) {
var colorPaletteValue = splitter.colorPalette.value || {};
try {
for (var _b = __values(Object.keys(colorPaletteValue)), _c = _b.next(); !_c.done; _c = _b.next()) {
var key = _c.value;
var newValue = value === 0 ? '0' : value ? value : '';
if ((key || '').toString() === newValue.toString()) {
return lodash_1.get(colorPaletteValue, key);
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
return defaultColor;
}
}
}
else {
if (!lodash_1.isNil(value)) {
return color_splitter_1.getRuleColor(defaultColor, splitter, value);
}
}
return defaultColor;
}
exports.getColor = getColor;