fix: border-radius for only class and table header
This commit is contained in:
parent
4dd974c6c1
commit
efcebb3552
2 changed files with 19 additions and 3 deletions
|
|
@ -119,8 +119,15 @@ func drawClass(writer io.Writer, targetShape d2target.Shape) {
|
||||||
}
|
}
|
||||||
|
|
||||||
lineEl := d2themes.NewThemableElement("line")
|
lineEl := d2themes.NewThemableElement("line")
|
||||||
lineEl.X1, lineEl.Y1 = rowBox.TopLeft.X, rowBox.TopLeft.Y
|
|
||||||
lineEl.X2, lineEl.Y2 = rowBox.TopLeft.X+rowBox.Width, rowBox.TopLeft.Y
|
if targetShape.BorderRadius != 0 && len(targetShape.Methods) == 0 {
|
||||||
|
lineEl.X1, lineEl.Y1 = rowBox.TopLeft.X+float64(targetShape.BorderRadius), rowBox.TopLeft.Y
|
||||||
|
lineEl.X2, lineEl.Y2 = rowBox.TopLeft.X+rowBox.Width-float64(targetShape.BorderRadius), rowBox.TopLeft.Y
|
||||||
|
} else {
|
||||||
|
lineEl.X1, lineEl.Y1 = rowBox.TopLeft.X, rowBox.TopLeft.Y
|
||||||
|
lineEl.X2, lineEl.Y2 = rowBox.TopLeft.X+rowBox.Width, rowBox.TopLeft.Y
|
||||||
|
}
|
||||||
|
|
||||||
lineEl.Stroke = targetShape.Fill
|
lineEl.Stroke = targetShape.Fill
|
||||||
lineEl.Style = "stroke-width:1"
|
lineEl.Style = "stroke-width:1"
|
||||||
fmt.Fprint(writer, lineEl.Render())
|
fmt.Fprint(writer, lineEl.Render())
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,16 @@ func tableHeaderBorderRadius(shape d2target.Shape) string {
|
||||||
out += fmt.Sprintf(`L %f %f L %f %f `, box.TopLeft.X+box.Width-float64(shape.BorderRadius), box.TopLeft.Y, topX-float64(shape.BorderRadius), topY)
|
out += fmt.Sprintf(`L %f %f L %f %f `, box.TopLeft.X+box.Width-float64(shape.BorderRadius), box.TopLeft.Y, topX-float64(shape.BorderRadius), topY)
|
||||||
|
|
||||||
out += fmt.Sprintf(`S %f %f %f %f `, topX, topY, topX, topY+float64(shape.BorderRadius))
|
out += fmt.Sprintf(`S %f %f %f %f `, topX, topY, topX, topY+float64(shape.BorderRadius))
|
||||||
out += fmt.Sprintf(`L %f %f L %f %f `, topX, topY+box.Height, box.TopLeft.X, box.TopLeft.Y+box.Height)
|
out += fmt.Sprintf(`L %f %f `, topX, topY+box.Height-float64(shape.BorderRadius))
|
||||||
|
|
||||||
|
if len(shape.Columns) != 0 {
|
||||||
|
out += fmt.Sprintf(`L %f %f L %f %f`, topX, topY+box.Height, box.TopLeft.X, box.TopLeft.Y+box.Height)
|
||||||
|
} else {
|
||||||
|
out += fmt.Sprintf(`S %f % f %f %f `, topX, topY+box.Height, topX-float64(shape.BorderRadius), topY+box.Height)
|
||||||
|
out += fmt.Sprintf(`L %f %f `, box.TopLeft.X+float64(shape.BorderRadius), box.TopLeft.Y+box.Height)
|
||||||
|
out += fmt.Sprintf(`S %f %f %f %f`, box.TopLeft.X, box.TopLeft.Y+box.Height, box.TopLeft.X, box.TopLeft.Y+box.Height-float64(shape.BorderRadius))
|
||||||
|
out += fmt.Sprintf(`L %f %f`, box.TopLeft.X, box.TopLeft.Y+float64(shape.BorderRadius))
|
||||||
|
}
|
||||||
out += fmt.Sprintf(`Z %f %f" `, box.TopLeft.X, box.TopLeft.Y)
|
out += fmt.Sprintf(`Z %f %f" `, box.TopLeft.X, box.TopLeft.Y)
|
||||||
return out + `fill="none" /> </clipPath>`
|
return out + `fill="none" /> </clipPath>`
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue