@visactor/vchart
Version:
charts lib based @visactor/VGrammar
89 lines (76 loc) • 4.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.getColorSchemeBySeries = exports.transformColorSchemeToStandardStruct = exports.isProgressiveDataColorScheme = exports.isColorKey = exports.getActualColor = exports.queryColorFromColorScheme = exports.computeActualDataScheme = exports.getDataScheme = void 0;
const vutils_1 = require("@visactor/vutils"), spec_1 = require("../../series/util/spec"), legacy_1 = require("./legacy");
function getDataScheme(colorScheme, seriesSpec) {
var _a;
if (!colorScheme) return [];
const scheme = getColorSchemeBySeries(colorScheme, seriesSpec);
if (!scheme || (0, vutils_1.isArray)(scheme)) return null !== (_a = scheme) && void 0 !== _a ? _a : [];
if ((0, vutils_1.isObject)(scheme)) {
const {dataScheme: dataScheme} = scheme;
return dataScheme ? isProgressiveDataColorScheme(dataScheme) ? dataScheme.map((item => Object.assign(Object.assign({}, item), {
scheme: item.scheme.map((color => isColorKey(color) ? queryColorFromColorScheme(colorScheme, color, seriesSpec) : color)).filter(vutils_1.isValid)
}))) : dataScheme.map((color => isColorKey(color) ? queryColorFromColorScheme(colorScheme, color, seriesSpec) : color)).filter(vutils_1.isValid) : [];
}
return [];
}
function computeActualDataScheme(dataScheme, colorDomain) {
var _a, _b;
return isProgressiveDataColorScheme(dataScheme) ? null !== (_b = null === (_a = dataScheme.find((item => (0,
vutils_1.isValid)(item.isAvailable) ? (0, vutils_1.isFunction)(item.isAvailable) ? item.isAvailable(colorDomain) : !!item.isAvailable : !(0,
vutils_1.isValid)(item.maxDomainLength) || (null == colorDomain ? void 0 : colorDomain.length) <= item.maxDomainLength))) || void 0 === _a ? void 0 : _a.scheme) && void 0 !== _b ? _b : dataScheme[dataScheme.length - 1].scheme : dataScheme;
}
function queryColorFromColorScheme(colorScheme, colorKey, seriesSpec) {
var _a;
const scheme = getColorSchemeBySeries(colorScheme, seriesSpec);
if (!scheme) return;
let color;
const {palette: palette} = scheme;
if ((0, vutils_1.isObject)(palette) && (color = null !== (_a = (0, legacy_1.getUpgradedTokenValue)(palette, colorKey.key)) && void 0 !== _a ? _a : colorKey.default),
!color) return;
if ((0, vutils_1.isNil)(colorKey.a) && (0, vutils_1.isNil)(colorKey.l) || !(0, vutils_1.isString)(color)) return color;
let c = new vutils_1.Color(color);
if ((0, vutils_1.isValid)(colorKey.l)) {
const {r: r, g: g, b: b} = c.color, {h: h, s: s} = (0, vutils_1.rgbToHsl)(r, g, b), rgb = (0,
vutils_1.hslToRgb)(h, s, colorKey.l), newColor = new vutils_1.Color(`rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`);
newColor.setOpacity(c.color.opacity), c = newColor;
}
return (0, vutils_1.isValid)(colorKey.a) && c.setOpacity(colorKey.a), c.toRGBA();
}
exports.getDataScheme = getDataScheme, exports.computeActualDataScheme = computeActualDataScheme,
exports.queryColorFromColorScheme = queryColorFromColorScheme;
const getActualColor = (value, colorScheme) => {
if (colorScheme && isColorKey(value)) {
const color = queryColorFromColorScheme(colorScheme, value);
if (color) return color;
}
return value;
};
function isColorKey(obj) {
return obj && "palette" === obj.type && !!obj.key;
}
function isProgressiveDataColorScheme(obj) {
return !(!(0, vutils_1.isArray)(obj) || 0 === obj.length) && obj.every((item => (0,
vutils_1.isValid)(item.scheme)));
}
function transformColorSchemeToStandardStruct(colorScheme) {
return (0, vutils_1.isArray)(colorScheme) ? {
dataScheme: colorScheme
} : colorScheme;
}
function getColorSchemeBySeries(colorScheme, seriesSpec) {
var _a, _b;
const {type: seriesType} = null != seriesSpec ? seriesSpec : {};
let scheme;
if (!seriesSpec || (0, vutils_1.isNil)(seriesType)) scheme = null == colorScheme ? void 0 : colorScheme.default; else {
const direction = (0, spec_1.getDirectionFromSeriesSpec)(seriesSpec);
scheme = null !== (_b = null !== (_a = null == colorScheme ? void 0 : colorScheme[`${seriesType}_${direction}`]) && void 0 !== _a ? _a : null == colorScheme ? void 0 : colorScheme[seriesType]) && void 0 !== _b ? _b : null == colorScheme ? void 0 : colorScheme.default;
}
return scheme;
}
exports.getActualColor = getActualColor, exports.isColorKey = isColorKey, exports.isProgressiveDataColorScheme = isProgressiveDataColorScheme,
exports.transformColorSchemeToStandardStruct = transformColorSchemeToStandardStruct,
exports.getColorSchemeBySeries = getColorSchemeBySeries;
//# sourceMappingURL=util.js.map