UNPKG

@qn-pandora/pandora-visualization

Version:

Pandora 通用可视化库

110 lines (109 loc) 4.3 kB
"use strict"; 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;