@visactor/vchart
Version:
charts lib based @visactor/VGrammar
44 lines (38 loc) • 2.28 kB
JavaScript
import { degreeToRadian, isEmpty, isFunction } from "@visactor/vutils";
export function transformComponentStyle(cfg = {}) {
const newConfig = Object.assign({}, cfg);
if (isFunction(cfg.style) ? newConfig.style = (item, isSelected, index, allItems) => transformToGraphic(cfg.style(item, isSelected, index, allItems)) : isEmpty(cfg.style) || (newConfig.style = transformToGraphic(cfg.style)),
!isEmpty(cfg.state)) {
const newStateStyle = {};
Object.keys(cfg.state).forEach((key => {
isFunction(cfg.state[key]) ? newStateStyle[key] = (item, isSelected, index, allItems) => transformToGraphic(cfg.state[key](item, isSelected, index, allItems)) : isEmpty(cfg.state[key]) || (newStateStyle[key] = transformToGraphic(cfg.state[key]));
})), newConfig.state = newStateStyle;
}
return newConfig;
}
export function transformStateStyle(stateStyle) {
if (isEmpty(stateStyle)) return null;
const newStateStyle = {};
return Object.keys(stateStyle).forEach((key => {
isFunction(stateStyle[key]) ? newStateStyle[key] = (value, index, datum, data) => transformToGraphic(stateStyle[key](value, index, datum, data)) : isEmpty(stateStyle[key]) || (newStateStyle[key] = transformToGraphic(stateStyle[key]));
})), newStateStyle;
}
export function transformAxisLabelStateStyle(stateStyle) {
if (isEmpty(stateStyle)) return null;
const newStateStyle = {};
return Object.keys(stateStyle).forEach((key => {
isFunction(stateStyle[key]) ? newStateStyle[key] = (datum, index, data, layer) => transformToGraphic(stateStyle[key](datum.rawValue, index, datum, data, layer)) : isEmpty(stateStyle[key]) || (newStateStyle[key] = transformToGraphic(stateStyle[key]));
})), newStateStyle;
}
export function transformIndicatorStyle(style, datum) {
if (isEmpty(style)) return null;
const newStateStyle = {};
return Object.keys(style).forEach((key => {
isFunction(style[key]) ? newStateStyle[key] = style[key](datum) : newStateStyle[key] = style[key];
})), transformToGraphic(newStateStyle);
}
export function transformToGraphic(style) {
return (null == style ? void 0 : style.angle) && (style.angle = degreeToRadian(style.angle)),
style;
}
//# sourceMappingURL=style.js.map