I cannot create new link from target node to source node if source node already has created link with target node: https://youtu.be/gOJs9Ls4XGI.
It seems internal linking validation does not allow me to connect in this way, but I did not find suitable properties to resolve this validation.
This is a piece of layout where portId properties have declared:
$(
Go.Node,
'Auto',
{ defaultAlignment: Go.Spot.Center, },
$(
Go.Panel,
'Vertical',
{
stretch: Go.Stretch.Horizontal,
margin: new Go.Margin(0, STYLES.BORDER_WIDTH / 2, STYLES.BORDER_WIDTH / 2, 0),
},
$create(
Go.Shape,
{
alignment: Go.Spot.Center,
geometryString: 'F M144 80v96H48V80h96zM48 32C21.5 32 0 53.5 0 80v96c0 26.5 21.5 48 48 48H72v96c0 48.6 39.4 88 88 88h96v24c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H304c-26.5 0-48 21.5-48 48v24H160c-22.1 0-40-17.9-40-40V224h24c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zM400 336v96H304V336h96z',
fill: 'white',
width: 12,
height: 12,
strokeWidth: 0,
background: 'transparent',
portId: '',
fromLinkable: true,
toLinkable: false,
}
)
),
// custom rounded rectangle acting as border
$(
Go.Shape,
'CustomRectangle',
{
isPanelMain: true,
strokeWidth: STYLES.BORDER_WIDTH,
stroke: STYLES.COLOR,
fill: null,
spot1: new Go.Spot(0, 0),
spot2: new Go.Spot(1, 1, 0, 0),
parameter1: {
borderRadius: STYLES.BORDER_RADIUS,
},
portId: '',
fromLinkable: true,
toLinkable: true,
},
),