I have a link with label. When I set the label position to be the beginning or end of the link (link have arrowheads), the arrowheads appear on top of the the label. Is there a way I can make the label on top of arrowheads?
The z-ordering of the elements of any Panel, including a Link, is determined by the order in which they are added. (Unless you call Panel | GoJS API .)
So the order in which you write them in your template is their z-ordering within that panel.
That is also why there is a GraphObject.isPanelMain property.