{ "version": 3, "sources": ["../../../../../src/lib/shapes/line/components/svg.ts"], "sourcesContent": ["import {\n\tCubicBezier2d,\n\tCubicSpline2d,\n\tEdge2d,\n\tPolyline2d,\n\tVec2d,\n\ttoDomPrecision,\n} from '@tldraw/editor'\n\nexport function getSvgPathForEdge(edge: Edge2d, first: boolean) {\n\tconst { start, end } = edge\n\tif (first) {\n\t\treturn `M${toDomPrecision(start.x)},${toDomPrecision(start.y)} L${toDomPrecision(\n\t\t\tend.x\n\t\t)},${toDomPrecision(end.y)} `\n\t}\n\treturn `${toDomPrecision(end.x)},${toDomPrecision(end.y)} `\n}\n\nexport function getSvgPathForBezierCurve(curve: CubicBezier2d, first: boolean) {\n\tconst { a, b, c, d } = curve\n\n\tif (Vec2d.Equals(a, d)) return ''\n\n\treturn `${first ? `M${toDomPrecision(a.x)},${toDomPrecision(a.y)}` : ``}C${toDomPrecision(\n\t\tb.x\n\t)},${toDomPrecision(b.y)} ${toDomPrecision(c.x)},${toDomPrecision(c.y)} ${toDomPrecision(\n\t\td.x\n\t)},${toDomPrecision(d.y)}`\n}\n\nexport function getSvgPathForCubicSpline(spline: CubicSpline2d, isClosed: boolean) {\n\tlet d = spline.segments.reduce((d, segment, i) => {\n\t\treturn d + getSvgPathForBezierCurve(segment, i === 0)\n\t}, '')\n\n\tif (isClosed) {\n\t\td += 'Z'\n\t}\n\n\treturn d\n}\n\nexport function getSvgPathForPolylineSpline(spline: Polyline2d, isClosed: boolean) {\n\tlet d = spline.segments.reduce((d, segment, i) => {\n\t\treturn d + getSvgPathForEdge(segment, i === 0)\n\t}, '')\n\n\tif (isClosed) {\n\t\td += 'Z'\n\t}\n\n\treturn d\n}\n\nexport function getSvgPathForLineGeometry(spline: CubicSpline2d | Polyline2d, isClosed = false) {\n\tif (spline instanceof Polyline2d) {\n\t\treturn getSvgPathForPolylineSpline(spline, isClosed)\n\t} else {\n\t\treturn getSvgPathForCubicSpline(spline, isClosed)\n\t}\n}\n"], "mappings": "AAAA;AAAA,EAIC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEA,SAAS,kBAAkB,MAAc,OAAgB;AAC/D,QAAM,EAAE,OAAO,IAAI,IAAI;AACvB,MAAI,OAAO;AACV,WAAO,IAAI,eAAe,MAAM,CAAC,CAAC,IAAI,eAAe,MAAM,CAAC,CAAC,KAAK;AAAA,MACjE,IAAI;AAAA,IACL,CAAC,IAAI,eAAe,IAAI,CAAC,CAAC;AAAA,EAC3B;AACA,SAAO,GAAG,eAAe,IAAI,CAAC,CAAC,IAAI,eAAe,IAAI,CAAC,CAAC;AACzD;AAEO,SAAS,yBAAyB,OAAsB,OAAgB;AAC9E,QAAM,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI;AAEvB,MAAI,MAAM,OAAO,GAAG,CAAC;AAAG,WAAO;AAE/B,SAAO,GAAG,QAAQ,IAAI,eAAe,EAAE,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI;AAAA,IAC1E,EAAE;AAAA,EACH,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,IAAI;AAAA,IACzE,EAAE;AAAA,EACH,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;AACzB;AAEO,SAAS,yBAAyB,QAAuB,UAAmB;AAClF,MAAI,IAAI,OAAO,SAAS,OAAO,CAACA,IAAG,SAAS,MAAM;AACjD,WAAOA,KAAI,yBAAyB,SAAS,MAAM,CAAC;AAAA,EACrD,GAAG,EAAE;AAEL,MAAI,UAAU;AACb,SAAK;AAAA,EACN;AAEA,SAAO;AACR;AAEO,SAAS,4BAA4B,QAAoB,UAAmB;AAClF,MAAI,IAAI,OAAO,SAAS,OAAO,CAACA,IAAG,SAAS,MAAM;AACjD,WAAOA,KAAI,kBAAkB,SAAS,MAAM,CAAC;AAAA,EAC9C,GAAG,EAAE;AAEL,MAAI,UAAU;AACb,SAAK;AAAA,EACN;AAEA,SAAO;AACR;AAEO,SAAS,0BAA0B,QAAoC,WAAW,OAAO;AAC/F,MAAI,kBAAkB,YAAY;AACjC,WAAO,4BAA4B,QAAQ,QAAQ;AAAA,EACpD,OAAO;AACN,WAAO,yBAAyB,QAAQ,QAAQ;AAAA,EACjD;AACD;", "names": ["d"] }