"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Shape = void 0; const utils_1 = require("./utils"); /** * @todo Unify with text, image and point. */ const Shape = (options) => { const { cartesian } = options; if (cartesian) return utils_1.visualMark; return (index, scale, value, coordinate) => { const { x: X, y: Y } = value; const offset = (0, utils_1.createBandOffset)(scale, value, options); const P = Array.from(index, (i) => { const p = [+X[i], +Y[i]]; return [coordinate.map(offset(p, i))]; }); return [index, P]; }; }; exports.Shape = Shape; exports.Shape.props = { defaultShape: 'shape', defaultLabelShape: 'label', composite: false, channels: [ { name: 'x', required: true }, { name: 'y', required: true }, ], preInference: [ ...(0, utils_1.basePreInference)(), { type: 'maybeTuple' }, { type: 'maybeVisualPosition' }, { type: 'maybeFunctionAttribute' }, ], }; //# sourceMappingURL=shape.js.map