rect.js 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. import { baseGeometryChannels, basePostInference, basePreInference, tooltip1d, } from './utils';
  2. export const Rect = () => {
  3. return (index, scale, value, coordinate) => {
  4. const { x: X, x1: X1, y: Y, y1: Y1 } = value;
  5. const P = Array.from(index, (i) => {
  6. const p1 = [+X[i], +Y[i]];
  7. const p2 = [+X1[i], +Y[i]];
  8. const p3 = [+X1[i], +Y1[i]];
  9. const p4 = [+X[i], +Y1[i]];
  10. return [p1, p2, p3, p4].map((d) => coordinate.map(d));
  11. });
  12. return [index, P];
  13. };
  14. };
  15. const shapes = ['rect', 'hollow'];
  16. Rect.props = {
  17. defaultShape: 'rect',
  18. defaultLabelShape: 'label',
  19. composite: false,
  20. channels: [
  21. ...baseGeometryChannels({ shapes }),
  22. { name: 'x', required: true },
  23. { name: 'y', required: true },
  24. ],
  25. preInference: [...basePreInference(), { type: 'maybeZeroY1' }],
  26. postInference: [...basePostInference(), ...tooltip1d()],
  27. interaction: {
  28. shareTooltip: true,
  29. },
  30. };
  31. //# sourceMappingURL=rect.js.map