Increasing Table Group's size when placeholder size increases

My Group is a Table, which contains 3 columns of Panels: A table panel of ports, an auto panel for the body, and another table panel of ports.

The auto panel is as follows:

$(go.Panel, "Auto", {
    column: 1,
    stretch: go.GraphObject.Fill,
    contextMenu: nodeContextMenu
  },
  $(go.Shape, "RoundedRectangle", {
    //geometryStretch: go.GraphObject.Fill,
    fill: "white"
  }),
  $(go.Panel, "Horizontal", {},
    $(go.TextBlock, new go.Binding("text", "name"))
  ),
  $(go.Placeholder)
)

The behavior I see now is that the auto panel expands to be either larger than the Placeholder, OR the table panels of ports, but not both.

Without any modifier properties, the default behavior will be for the Auto panel to expand to be larger than the placeholder.

Putting a { stretch: go.GraphObject.Fill } on the panel, or a { geometryStretch: go.GraphObject.Fill } on the shape will cause the Auto panel/shape to expand to encompass the placeholder, but not expand to the height of the neighboring columns.

The behavior I want is for the Auto panel to expand to be larger than the size of the placeholder && size of the table panels of ports.

What can I do to get my desired behavior?

One option would be to set a minimum size on the auto panel. You could base this minimum size on the number of ports that you have by making a binding like:

$(go.Panel, "Auto", {
    row: 0,
    column: 1,
    //stretch: go.GraphObject.Fill,
    contextMenu: nodeContextMenu
  },
  new go.Binding("minSize", "", function(d) {
    var mostports = Math.max(d.inPort, d.outPort);
    return new go.Size(1, mostports*11)}
  ),

Of course, if/when you change the size of the ports you’d want to update the size given in this binding too.

I’m using 11 as the port size because ports are 8 tall +1 for the stroke +2 for the margin (top and bottom) = 11, as defined here:

  $(go.Shape, {
    desiredSize: new go.Size(8, 8),
    margin: new go.Margin(1, 0),
    figure: "Rectangle",
  })

Using stretch its not so easy to do what you want. We don’t have a concept of minimum stretch in GoJS.