@zombie-mermaid/svg-renderer 4.2.2 → 4.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +13 -5
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/src/index.ts +34 -1
- package/src/__tests__/c4-label-clearance-1290.test.ts +0 -112
- package/src/__tests__/c4-line-ends-1208.test.ts +0 -52
- package/src/__tests__/c4-mermaid-reference.test.ts +0 -124
- package/src/__tests__/c4-svg.test.ts +0 -337
- package/src/__tests__/c4-text-width-1210.test.ts +0 -43
- package/src/__tests__/class-component-order-1249.test.ts +0 -40
- package/src/__tests__/class-diamond-markers-1232.test.ts +0 -59
- package/src/__tests__/class-member-right-padding-1238.test.ts +0 -43
- package/src/__tests__/class-namespace-1196.test.ts +0 -165
- package/src/__tests__/class-namespace-sparse-elk-1196.test.ts +0 -96
- package/src/__tests__/class-visibility-markers-1237.test.ts +0 -27
- package/src/__tests__/edge-jog-straightening-1388.test.ts +0 -57
- package/src/__tests__/elk-adapter-utils.test.ts +0 -166
- package/src/__tests__/er-attribute-right-padding-1262.test.ts +0 -47
- package/src/__tests__/er-cardinality-markers-1233.test.ts +0 -35
- package/src/__tests__/er-default-direction-1250.test.ts +0 -69
- package/src/__tests__/er-edge-label-contrast-1244.test.ts +0 -58
- package/src/__tests__/fixtures/c4-mermaid-reference.json +0 -626
- package/src/__tests__/flowchart-parallel-edge-lanes-1308.test.ts +0 -168
- package/src/__tests__/pie-layout.test.ts +0 -215
- package/src/__tests__/pie-svg.test.ts +0 -194
- package/src/__tests__/render-mermaid-svg.test.ts +0 -64
- package/src/__tests__/sequence-label-clearance-1242.test.ts +0 -162
- package/src/__tests__/sequence-nested-activation-1241.test.ts +0 -37
- package/src/__tests__/svg-edge-to-own-cluster-1310.test.ts +0 -32
- package/src/__tests__/xychart-smooth-curve.test.ts +0 -42
- package/src/__tests__/xychart-x-label-overlap-1243.test.ts +0 -62
package/dist/index.cjs
CHANGED
|
@@ -85,5 +85,5 @@ ${o.join(`
|
|
|
85
85
|
`)}function io(e){let t=ja(e),{x:n,y:r,width:i,height:a}=e,o=n+i/2,s=Ta(e.nameLines.length,e.descriptionLines.length),l=[];l.push(c.f`<g class="c4-element" data-id="${(0,c.escapeAttr)(e.alias)}" data-kind="${e.kind}" data-shape="${e.shape}" `+c.f`data-external="${e.external}" data-label="${(0,c.escapeAttr)(e.label)}">`);let d,f=o;if(e.kind===`person`)l.push(...ao(e,t)),d=r+wa(i).pillTop+$.shapePadding;else if(e.shape===`db`){l.push(...oo(e,t));let{ry:n}=Da(i);d=r+(2*n+a)/2-s/2}else if(e.shape===`queue`){l.push(...so(e,t));let{rx:n}=Oa(a);f=o-n,d=r+a/2-s/2}else l.push(c.f` <rect x="${n}" y="${r}" width="${i}" height="${a}" rx="${$.cornerRadius}" ry="${$.cornerRadius}" `+c.f`fill="${t.fill}" stroke="${t.stroke}" stroke-width="${$.strokeWidth}" />`),d=r+$.shapePadding;let p=d;for(let n of e.nameLines)l.push(no(n,f,p+$.nameLine/2,$.nameSize,c.f`font-weight="700" fill="${t.text}"`)),p+=$.nameLine;return l.push(no((0,u.c4TypeLine)(e),f,p+$.typeLine/2,$.typeSize,c.f`fill="${t.text}"`)),p+=$.typeLine,e.descriptionLines.forEach((e,n)=>{l.push(no(e,f,p+$.descrLine/2+n*$.descrExtraLine,$.descrSize,c.f`fill="${t.text}"`))}),p+=Ea(e.descriptionLines.length),l.push(`</g>`),l.join(`
|
|
86
86
|
`)}function ao(e,t){let{x:n,width:r}=e,{rx:i,headRadius:a,pillTop:o}=wa(r,e.height),s=e.y,l=n+r/2,u=s+o,d=e.y+e.height-u,f=c.f`fill="${t.fill}" stroke="${t.stroke}" stroke-width="${$.strokeWidth}"`;return[c.f` <rect x="${n}" y="${u}" width="${r}" height="${d}" rx="${i}" ry="${i}" ${f} />`,c.f` <circle cx="${l}" cy="${s+a}" r="${a}" ${f} />`]}function oo(e,t){let{x:n,y:r,width:i,height:a}=e,{rx:o,ry:s}=Da(i),l=c.f`fill="${t.fill}" stroke="${t.stroke}" stroke-width="${$.strokeWidth}"`;return[c.f` <path d="M ${n} ${r+s} L ${n} ${r+a-s} A ${o} ${s} 0 0 0 ${n+i} ${r+a-s} L ${n+i} ${r+s} Z" ${l} />`,c.f` <ellipse cx="${n+o}" cy="${r+s}" rx="${o}" ry="${s}" ${l} />`]}function so(e,t){let{x:n,y:r,width:i,height:a}=e,{rx:o,ry:s}=Oa(a),l=c.f`fill="${t.fill}" stroke="${t.stroke}" stroke-width="${$.strokeWidth}"`;return[c.f` <path d="M ${n+i-o} ${r} H ${n+o} A ${o} ${s} 0 0 0 ${n+o} ${r+a} H ${n+i-o} Z" ${l} />`,c.f` <ellipse cx="${n+i-o}" cy="${r+s}" rx="${o}" ry="${s}" ${l} />`]}function co(e,t){let n=e.x-t.x,r=e.y-t.y,i=Math.hypot(n,r);if(i===0)return``;let a=n/i,o=r/i,s=e.x-a*10,l=e.y-o*10;return c.f`<polygon class="c4-arrowhead" points="${e.x},${e.y} ${s-o*5},${l+a*5} ${s+o*5},${l-a*5}" `+`fill="var(--_text)" />`}function lo(e){let[t,n]=[e.points[0],e.points[e.points.length-1]];if(!t||!n||t===n)return``;let r=[`class="c4-relationship"`,c.f`data-from="${(0,c.escapeAttr)(e.from)}"`,c.f`data-to="${(0,c.escapeAttr)(e.to)}"`];e.label&&r.push(c.f`data-label="${(0,c.escapeAttr)(e.label)}"`),e.technology&&r.push(c.f`data-technology="${(0,c.escapeAttr)(e.technology)}"`);let i=e.curve?c.f`M ${t.x},${t.y} Q ${e.curve.x},${e.curve.y} ${n.x},${n.y}`:c.f`M ${t.x},${t.y} L ${n.x},${n.y}`,a=c.f`<path ${r.join(` `)} d="${i}" fill="none" stroke="var(--_text)" stroke-width="1" />`,o=e.curve??t,s=e.curve??n,l=co(n,o),u=co(t,s);return[a,...e.bidirectional?[l,u]:[e.reversed?u:l]].filter(Boolean).join(`
|
|
87
87
|
`)}function uo(e){let t=(0,u.c4RelLabelLines)(e);if(t.length===0||!e.labelPosition)return``;let{x:n,y:r}=e.labelPosition,i=[c.f`<g class="c4-relationship-label" data-from="${(0,c.escapeAttr)(e.from)}" data-to="${(0,c.escapeAttr)(e.to)}">`];return t.forEach((a,o)=>{let s=e.technology!==void 0&&o===t.length-1,c=r+(o===0?0:$.messageSize+5);i.push(no(a,s&&e.technologyX!==void 0?e.technologyX:n,c,$.messageSize,s?`font-style="italic" fill="var(--_text)"`:`fill="var(--_text)"`))}),i.push(`</g>`),i.join(`
|
|
88
|
-
`)}var fo={type:`xychart`,parse:u.parseXYChart,layoutForSvg:Hi,renderSvg(e,t,n){let r=n.interactivity===void 0?n.interactive??!1:n.interactivity===`full`;return na(e,t.colors,t.font,t.transparent,r,t.embedSource,t.title,t.decorative,t.emit)}},po={type:`sequence`,parse:u.parseSequenceDiagram,layoutForSvg:yi,renderSvg(e,t){return bi(e,t.colors,t.font,t.transparent,t.fontSizes,t.embedSource,t.title,t.decorative,t.emit)}};function mo(e){return(e.interactivity??`static`)!==`none`}function ho(e){return(e.interactivity??`static`)===`full`}var go={type:`class`,parse:u.parseClassDiagram,layoutForSvg:Nr,renderSvg(e,t,n){return Lr(e,t.colors,t.font,t.transparent,t.fontSizes,t.embedSource,t.title,t.decorative,mo(n),t.emit)}},_o={type:`er`,parse:u.parseErDiagram,layoutForSvg(e,t){return ni((0,c.withDirectionOverride)(e,t.direction),t)},renderSvg(e,t){return ii(e,t.colors,t.font,t.transparent,t.fontSizes,t.embedSource,t.title,t.decorative,t.emit)}},vo={type:`flowchart`,parse:(e,t)=>(0,u.parseMermaid)(t),layoutForSvg(e,t){return{graph:rn((0,c.withDirectionOverride)(e,t.direction),t),curve:t.curve??e.initConfig?.curve??`linear`}},renderSvg(e,t,n){return hn(e.graph,t.colors,t.font,t.transparent,t.fontSizes,e.curve,t.embedSource,ho(n),mo(n),t.title,t.decorative,t.emit)}},yo={type:`c4`,parse:u.parseC4Diagram,layoutForSvg(e,t){return eo(e,t)},renderSvg(e,t){return to(e,t.colors,t.font,t.transparent,t.fontSizes,t.embedSource,t.title,t.decorative,t.emit)}},bo={xychart:fo,er:_o,sequence:po,class:go,flowchart:vo,architecture:{type:`architecture`,parse:u.parseArchitecture,layoutForSvg(e,t){return{graph:tn((0,c.withDirectionOverride)((0,u.architectureToGraph)(e),t.direction),t),curve:t.curve??`linear`}},renderSvg:vo.renderSvg},c4:yo,pie:{type:`pie`,parse:(e,t)=>(0,u.parsePieChart)(t),layoutForSvg:ma,renderSvg(e,t){return _a(e,t.colors,t.font,t.transparent,t.embedSource,t.title,t.decorative,t.emit)}}};function xo(e){return{bg:e.bg??c.DEFAULTS.bg,fg:e.fg??c.DEFAULTS.fg,line:e.line,accent:e.accent,muted:e.muted,surface:e.surface,border:e.border}}function So(e={}){return(0,c.themeStyleDeclarations)(xo(e),e.transparent)}function Co(e){return{nonce:e.nonce,styleAttribute:e.styleAttribute}}function wo(e,t={}){let n=To(e,t);return t.resolveColors?Er(n,xo(t)):n}function To(e,t){let n=(0,d.decodeXML)(e),r=xo(t),i=t.font??`Inter`;(0,c.setMonospaceMetrics)((0,c.isMonospaceFont)(i));let a=t.transparent??!1,o=M(t.fontSizes),s=(0,c.detectDiagramType)(n),l=t.embedSource?e:void 0,u=t.title,f=t.decorative,p=Co(t),m=(0,c.splitStatements)(n),h=bo[s],g=h.parse(m,n),_=h.layoutForSvg(g,t),v={colors:r,font:i,transparent:a,fontSizes:o,embedSource:l,title:u,decorative:f,emit:p};return h.renderSvg(_,v,t)}async function
|
|
88
|
+
`)}var fo={type:`xychart`,parse:u.parseXYChart,layoutForSvg:Hi,renderSvg(e,t,n){let r=n.interactivity===void 0?n.interactive??!1:n.interactivity===`full`;return na(e,t.colors,t.font,t.transparent,r,t.embedSource,t.title,t.decorative,t.emit)}},po={type:`sequence`,parse:u.parseSequenceDiagram,layoutForSvg:yi,renderSvg(e,t){return bi(e,t.colors,t.font,t.transparent,t.fontSizes,t.embedSource,t.title,t.decorative,t.emit)}};function mo(e){return(e.interactivity??`static`)!==`none`}function ho(e){return(e.interactivity??`static`)===`full`}var go={type:`class`,parse:u.parseClassDiagram,layoutForSvg:Nr,renderSvg(e,t,n){return Lr(e,t.colors,t.font,t.transparent,t.fontSizes,t.embedSource,t.title,t.decorative,mo(n),t.emit)}},_o={type:`er`,parse:u.parseErDiagram,layoutForSvg(e,t){return ni((0,c.withDirectionOverride)(e,t.direction),t)},renderSvg(e,t){return ii(e,t.colors,t.font,t.transparent,t.fontSizes,t.embedSource,t.title,t.decorative,t.emit)}},vo={type:`flowchart`,parse:(e,t)=>(0,u.parseMermaid)(t),layoutForSvg(e,t){return{graph:rn((0,c.withDirectionOverride)(e,t.direction),t),curve:t.curve??e.initConfig?.curve??`linear`}},renderSvg(e,t,n){return hn(e.graph,t.colors,t.font,t.transparent,t.fontSizes,e.curve,t.embedSource,ho(n),mo(n),t.title,t.decorative,t.emit)}},yo={type:`c4`,parse:u.parseC4Diagram,layoutForSvg(e,t){return eo(e,t)},renderSvg(e,t){return to(e,t.colors,t.font,t.transparent,t.fontSizes,t.embedSource,t.title,t.decorative,t.emit)}},bo={xychart:fo,er:_o,sequence:po,class:go,flowchart:vo,architecture:{type:`architecture`,parse:u.parseArchitecture,layoutForSvg(e,t){return{graph:tn((0,c.withDirectionOverride)((0,u.architectureToGraph)(e),t.direction),t),curve:t.curve??`linear`}},renderSvg:vo.renderSvg},c4:yo,pie:{type:`pie`,parse:(e,t)=>(0,u.parsePieChart)(t),layoutForSvg:ma,renderSvg(e,t){return _a(e,t.colors,t.font,t.transparent,t.embedSource,t.title,t.decorative,t.emit)}}};function xo(e){return{bg:e.bg??c.DEFAULTS.bg,fg:e.fg??c.DEFAULTS.fg,line:e.line,accent:e.accent,muted:e.muted,surface:e.surface,border:e.border}}function So(e={}){return(0,c.themeStyleDeclarations)(xo(e),e.transparent)}function Co(e){return{nonce:e.nonce,styleAttribute:e.styleAttribute}}function wo(e,t={}){let n=To(Eo(e,t));return t.resolveColors?Er(n,xo(t)):n}function To(e){let t=new Set(Array.from(e.matchAll(/\sid="([^"]+)"/g),e=>e[1]??``));if(t.size===0)return e;let n=2166136261;for(let t=0;t<e.length;t++)n=Math.imul(n^e.charCodeAt(t),16777619);let r=`zm${(n>>>0).toString(36)}-`,i=e=>t.has(e)&&!e.startsWith(`zm-`)?r+e:e;return e.replace(/(\sid=")([^"]+)"/g,(e,t,n)=>`${t}${i(n)}"`).replace(/url\(#([^)]+)\)/g,(e,t)=>`url(#${i(t)})`).replace(/(href=")#([^"]+)"/g,(e,t,n)=>`${t}#${i(n)}"`)}function Eo(e,t){let n=(0,d.decodeXML)(e),r=xo(t),i=t.font??`Inter`;(0,c.setMonospaceMetrics)((0,c.isMonospaceFont)(i));let a=t.transparent??!1,o=M(t.fontSizes),s=(0,c.detectDiagramType)(n),l=t.embedSource?e:void 0,u=t.title,f=t.decorative,p=Co(t),m=(0,c.splitStatements)(n),h=bo[s],g=h.parse(m,n),_=h.layoutForSvg(g,t),v={colors:r,font:i,transparent:a,fontSizes:o,embedSource:l,title:u,decorative:f,emit:p};return h.renderSvg(_,v,t)}async function Do(e,t={}){return wo(e,t)}var Oo=wo,ko=Do;exports.ACTOR_LABEL_OFFSET=hi,exports.ARROW_HEAD=L,exports.CLS=H,exports.ELK_DIRECTION_FALLBACK=re,exports.FONT_SIZES=j,exports.FONT_WEIGHTS=N,exports.GROUP_HEADER_CONTENT_PAD=ee,exports.INLINE_CENTERED_EDGE_LABEL=ce,exports.MONO_FONT=k,exports.MONO_FONT_STACK=A,exports.NODE_PADDING=P,exports.PIE=X,exports.STROKE_WIDTHS=F,exports.TEXT_BASELINE_SHIFT=I,exports.baseElkLayoutOptions=oe,exports.boxLabelHeight=mi,exports.buildElkEdge=z,exports.buildElkEdgeLabel=le,exports.buildElkLeafNode=se,exports.buildSvgStyleBlock=te,exports.classNoteId=Dr,exports.clipEdgeToShape=je,exports.convertToElkFormat=an,exports.createLayoutCache=x,exports.directionToElk=ie,exports.elkLayoutSync=w,exports.elkPadding=ae,exports.estimateMonoTextWidth=O,exports.estimateTextWidth=D,exports.evaluateCssColorValue=br,exports.extractEdgeLabelPosition=qe,exports.extractEdgePoints=Ke,exports.formatTickLabels=$i,exports.layoutClassDiagramSync=Nr,exports.layoutErDiagramSync=ni,exports.layoutFlowchartSync=rn,exports.layoutGraphSync=tn,exports.layoutPieChart=ma,exports.layoutSequenceDiagram=yi,exports.layoutXYChart=Hi,exports.niceTickValues=Qi,exports.pieColorValue=ha,exports.pointsToPath=_,exports.renderClassSvg=Lr,exports.renderErSvg=ii,exports.renderMermaid=ko,exports.renderMermaidSVG=wo,exports.renderMermaidSVGAsync=Do,exports.renderMermaidSync=Oo,exports.renderPieSvg=_a,exports.renderSequenceSvg=bi,exports.renderSvg=hn,exports.renderXYChartSvg=na,exports.resolveCssColors=Er,exports.resolveFontSizes=M,exports.smoothCurvePath=oa,exports.themeCssVariables=So,exports.withDataSrc=dr,exports.xLabelStep=Ji;
|
|
89
89
|
//# sourceMappingURL=index.cjs.map
|