@antv/g2
Version: 
the Grammar of Graphics in Javascript
34 lines • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MaybeStackY = void 0;
const stackY_1 = require("./stackY");
// Avoid duplicate stackY.
// In most of case only one of stackY and dodgeX is needed.
// So pass statistic with stackY and dodgeX.
function exclude(transform) {
    const { type } = transform;
    const excludes = ['stackY', 'dodgeX', 'groupX'];
    return typeof type === 'string' && excludes.includes(type);
}
/**
 * Add zero constant encode for x channel.
 * This is useful for interval geometry.
 */
const MaybeStackY = (options) => {
    return (I, mark, context) => {
        // Skip some transform.
        const { encode, transform = [] } = mark;
        if (transform.some(exclude))
            return [I, mark];
        // StackY need both x and y channel values.
        const { x, y } = encode;
        if (x === undefined || y === undefined)
            return [I, mark];
        const { series } = options;
        const groupBy = series ? ['x', 'series'] : 'x';
        return (0, stackY_1.StackY)({ groupBy })(I, mark, context);
    };
};
exports.MaybeStackY = MaybeStackY;
exports.MaybeStackY.props = {};
//# sourceMappingURL=maybeStackY.js.map