@visactor/vchart
Version:
charts lib based @visactor/VGrammar
25 lines (21 loc) • 1.45 kB
JavaScript
import { isValidScaleType } from "@visactor/vscale";
import { isFunction, isNil } from "@visactor/vutils";
import { BaseMark } from "./base-mark";
export class BaseLineMark extends BaseMark {
setStyle(style, state = "normal", level = 0, stateStyle = this.stateStyle) {
if (isNil(style)) return;
void 0 === stateStyle[state] && (stateStyle[state] = {});
const ignoreAttributes = this._getIgnoreAttributes(), segmentAttributes = [ "strokeWidth", "lineWidth", "lineDash", "strokeDash", "lineJoin", "stroke", "strokeOpacity", "opacity", "fill", "fillOpacity", "texture", "texturePadding", "textureSize", "textureColor" ], isUserLevel = this.isUserLevel(level);
let enableSegments = !1;
Object.keys(style).forEach((attr => {
const attrStyle = style[attr];
if (isNil(attrStyle) || ignoreAttributes.includes(attr)) return;
isUserLevel && segmentAttributes.includes(attr) && (isValidScaleType(null == attrStyle ? void 0 : attrStyle.type) || (null == attrStyle ? void 0 : attrStyle.scale) || isFunction(attrStyle)) && (enableSegments = !0);
const styleConverter = this._filterAttribute(attr, attrStyle, state, level, isUserLevel, stateStyle);
this.setAttribute(attr, styleConverter, state, level, stateStyle);
})), enableSegments && this.setMarkConfig({
enableSegments: !0
});
}
}
//# sourceMappingURL=base-line.js.map