From 8b814286939ee3120406e1447a986c028006e367 Mon Sep 17 00:00:00 2001 From: Gavin Nishizawa Date: Wed, 28 Dec 2022 23:15:16 -0800 Subject: [PATCH] use header width for sql_tables if larger than row width --- d2graph/d2graph.go | 4 +++- d2renderers/d2svg/table.go | 4 ++-- d2target/sqltable.go | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index 7bc38cfa7..7bd59ec6a 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -805,7 +805,9 @@ func (obj *Object) GetDefaultSize(mtexts []*d2target.MText, ruler *textmeasure.R // The rows get padded a little due to header font being larger than row font dims.Height = labelDims.Height * (len(obj.SQLTable.Columns) + 1) - dims.Width = d2target.NamePadding + maxNameWidth + d2target.TypePadding + maxTypeWidth + d2target.TypePadding + constraintWidth + headerWidth := d2target.HeaderPadding + labelDims.Width + d2target.HeaderPadding + rowsWidth := d2target.NamePadding + maxNameWidth + d2target.TypePadding + maxTypeWidth + d2target.TypePadding + constraintWidth + dims.Width = go2.Max(headerWidth, rowsWidth) } return &dims, nil diff --git a/d2renderers/d2svg/table.go b/d2renderers/d2svg/table.go index 9ec48e0a9..46bdef37c 100644 --- a/d2renderers/d2svg/table.go +++ b/d2renderers/d2svg/table.go @@ -19,8 +19,8 @@ func tableHeader(shape d2target.Shape, box *geo.Box, text string, textWidth, tex if text != "" { tl := label.InsideMiddleLeft.GetPointOnBox( box, - 20, - textWidth, + float64(d2target.HeaderPadding), + float64(shape.Width), textHeight, ) diff --git a/d2target/sqltable.go b/d2target/sqltable.go index f19f2a94b..8332a34c8 100644 --- a/d2target/sqltable.go +++ b/d2target/sqltable.go @@ -3,8 +3,9 @@ package d2target import "oss.terrastruct.com/d2/d2renderers/d2fonts" const ( - NamePadding = 10 - TypePadding = 20 + NamePadding = 10 + TypePadding = 20 + HeaderPadding = 20 ) type SQLTable struct {