{ "version": 3, "sources": ["../../../../../src/lib/shapes/geo/components/DashStyleOval.tsx"], "sourcesContent": ["import { TLDefaultColorTheme, TLGeoShape, TLShapeId, toDomPrecision } from '@tldraw/editor'\nimport * as React from 'react'\nimport {\n\tShapeFill,\n\tgetShapeFillSvg,\n\tgetSvgWithShapeFill,\n\tuseDefaultColorTheme,\n} from '../../shared/ShapeFill'\nimport { getPerfectDashProps } from '../../shared/getPerfectDashProps'\nimport { getOvalPerimeter, getOvalSolidPath } from '../helpers'\n\nexport const DashStyleOval = React.memo(function DashStyleOval({\n\tw,\n\th,\n\tstrokeWidth: sw,\n\tdash,\n\tcolor,\n\tfill,\n}: Pick & {\n\tstrokeWidth: number\n\tid: TLShapeId\n}) {\n\tconst theme = useDefaultColorTheme()\n\tconst d = getOvalSolidPath(w, h)\n\tconst perimeter = getOvalPerimeter(w, h)\n\n\tconst { strokeDasharray, strokeDashoffset } = getPerfectDashProps(\n\t\tperimeter < 64 ? perimeter * 2 : perimeter,\n\t\tsw,\n\t\t{\n\t\t\tstyle: dash,\n\t\t\tsnap: 4,\n\t\t\tstart: 'outset',\n\t\t\tend: 'outset',\n\t\t\tclosed: true,\n\t\t}\n\t)\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\n\t)\n})\n\nexport function DashStyleOvalSvg({\n\tw,\n\th,\n\tstrokeWidth: sw,\n\tdash,\n\tcolor,\n\ttheme,\n\tfill,\n}: Pick & {\n\tstrokeWidth: number\n\tid: TLShapeId\n\ttheme: TLDefaultColorTheme\n}) {\n\tconst d = getOvalSolidPath(w, h)\n\tconst perimeter = getOvalPerimeter(w, h)\n\n\tconst { strokeDasharray, strokeDashoffset } = getPerfectDashProps(\n\t\tperimeter < 64 ? perimeter * 2 : perimeter,\n\t\tsw,\n\t\t{\n\t\t\tstyle: dash,\n\t\t\tsnap: 4,\n\t\t\tclosed: true,\n\t\t}\n\t)\n\n\tconst strokeElement = document.createElementNS('http://www.w3.org/2000/svg', 'path')\n\tstrokeElement.setAttribute('d', d)\n\tstrokeElement.setAttribute('stroke-width', sw.toString())\n\tstrokeElement.setAttribute('width', w.toString())\n\tstrokeElement.setAttribute('height', h.toString())\n\tstrokeElement.setAttribute('fill', 'none')\n\tstrokeElement.setAttribute('stroke', theme[color].solid)\n\tstrokeElement.setAttribute('stroke-dasharray', strokeDasharray)\n\tstrokeElement.setAttribute('stroke-dashoffset', strokeDashoffset)\n\n\t// Get the fill element, if any\n\tconst fillElement = getShapeFillSvg({\n\t\td,\n\t\tfill,\n\t\tcolor,\n\t\ttheme,\n\t})\n\n\treturn getSvgWithShapeFill(strokeElement, fillElement)\n}\n"], "mappings": "AAuCE,mBACC,KADD;AAvCF,SAAqD,sBAAsB;AAC3E,YAAY,WAAW;AACvB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,2BAA2B;AACpC,SAAS,kBAAkB,wBAAwB;AAE5C,MAAM,gBAAgB,MAAM,KAAK,SAASA,eAAc;AAAA,EAC9D;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AACD,GAGG;AACF,QAAM,QAAQ,qBAAqB;AACnC,QAAM,IAAI,iBAAiB,GAAG,CAAC;AAC/B,QAAM,YAAY,iBAAiB,GAAG,CAAC;AAEvC,QAAM,EAAE,iBAAiB,iBAAiB,IAAI;AAAA,IAC7C,YAAY,KAAK,YAAY,IAAI;AAAA,IACjC;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,MACL,QAAQ;AAAA,IACT;AAAA,EACD;AAEA,SACC,iCACC;AAAA,wBAAC,aAAU,OAAc,GAAM,OAAc,MAAY;AAAA,IACzD;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA,aAAa;AAAA,QACb,OAAO,eAAe,CAAC;AAAA,QACvB,QAAQ,eAAe,CAAC;AAAA,QACxB,MAAK;AAAA,QACL,QAAQ,MAAM,KAAK,EAAE;AAAA,QACrB;AAAA,QACA;AAAA,QACA,eAAc;AAAA;AAAA,IACf;AAAA,KACD;AAEF,CAAC;AAEM,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAIG;AACF,QAAM,IAAI,iBAAiB,GAAG,CAAC;AAC/B,QAAM,YAAY,iBAAiB,GAAG,CAAC;AAEvC,QAAM,EAAE,iBAAiB,iBAAiB,IAAI;AAAA,IAC7C,YAAY,KAAK,YAAY,IAAI;AAAA,IACjC;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,IACT;AAAA,EACD;AAEA,QAAM,gBAAgB,SAAS,gBAAgB,8BAA8B,MAAM;AACnF,gBAAc,aAAa,KAAK,CAAC;AACjC,gBAAc,aAAa,gBAAgB,GAAG,SAAS,CAAC;AACxD,gBAAc,aAAa,SAAS,EAAE,SAAS,CAAC;AAChD,gBAAc,aAAa,UAAU,EAAE,SAAS,CAAC;AACjD,gBAAc,aAAa,QAAQ,MAAM;AACzC,gBAAc,aAAa,UAAU,MAAM,KAAK,EAAE,KAAK;AACvD,gBAAc,aAAa,oBAAoB,eAAe;AAC9D,gBAAc,aAAa,qBAAqB,gBAAgB;AAGhE,QAAM,cAAc,gBAAgB;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAED,SAAO,oBAAoB,eAAe,WAAW;AACtD;", "names": ["DashStyleOval"] }