UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

27 lines (26 loc) 1.57 kB
export class VerticalBarSplitStrategy { constructor() { this.name = "verticalBarSplit"; } shouldApply(mark, graphic) { var _a, _b; const isRectMark = "rect" === mark.type, isVertical = "vertical" === (null === (_a = mark.model) || void 0 === _a ? void 0 : _a.direction), diffAttrs = (null === (_b = graphic.context) || void 0 === _b ? void 0 : _b.diffAttrs) || {}; return isRectMark && isVertical && ("x" in diffAttrs || "width" in diffAttrs || "x1" in diffAttrs) && ("y" in diffAttrs || "height" in diffAttrs || "y1" in diffAttrs); } split(mark, graphic) { var _a; const diffAttrs = (null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.diffAttrs) || {}, dimensionAttrs = {}, valueAttrs = {}; Object.entries(diffAttrs).forEach((([key, value]) => { "x" === key || "width" === key || "x1" === key ? dimensionAttrs[key] = value : "y" === key || "height" === key || "y1" === key ? valueAttrs[key] = value : dimensionAttrs[key] = value; })); const context = graphic.context, fieldX = context.fieldX, originalFieldX = context.originalFieldX, isGrouped = Array.isArray(fieldX) && fieldX.length > 1, stack2group = (originalFieldX ? !(Array.isArray(originalFieldX) && originalFieldX.length > 1) : !isGrouped) && isGrouped; return [ { attrs: dimensionAttrs, order: stack2group ? 1 : 2 }, { attrs: valueAttrs, order: stack2group ? 2 : 1 } ]; } } //# sourceMappingURL=vertical-bar-split.js.map