( shapeType: string, w: number, h: number, adjustments?: Map<string, number> )
| 6572 | } |
| 6573 | |
| 6574 | export function getPresetShapePath( |
| 6575 | shapeType: string, |
| 6576 | w: number, |
| 6577 | h: number, |
| 6578 | adjustments?: Map<string, number> |
| 6579 | ): string { |
| 6580 | // <a:prstGeom prst="textNoShape"> means text-only shape without geometry. |
| 6581 | if (shapeType === 'textNoShape' || shapeType.toLowerCase() === 'textnoshape') return '' |
| 6582 | // OOXML preset names are often camelCase; normalize to lowercase for lookup |
| 6583 | const key = shapeType.toLowerCase() |
| 6584 | const generator = presetShapes.get(key) ?? presetShapes.get(shapeType) |
| 6585 | if (generator) { |
| 6586 | return generator(w, h, adjustments) |
| 6587 | } |
| 6588 | // Fallback: simple rectangle |
| 6589 | logger.warn('Unknown preset shape, falling back to rectangle', { shapeType }) |
| 6590 | return `M0,0 L${w},0 L${w},${h} L0,${h} Z` |
| 6591 | } |
no test coverage detected