Drag-and-drop is fundamentally a rather complicated protocol between several bits of code, primarily the DraggingTool of the source Diagram and the DraggingTool of the target Diagram.
One possibility is to override an undocumented method on the target DraggingTool. Here’s an example using an old-fashioned JavaScript “override”; if you have defined your own subclass
of DraggingTool, you can override the method in the usual ES6 manner.
$(go.Diagram, "myDiagramDiv",
{
"draggingTool.doSimulatedDragOver": function() {
// do normal behavior first, to make sure copiedParts exist
go.DraggingTool.prototype.doSimulatedDragOver.call(this);
// change the appearance of those temporary Parts that appear when dragged in
if (this.copiedParts) {
this.copiedParts.each(kvp => {
const node = kvp.key;
if (node instanceof go.Node) {
node.elt(0).stroke = "red"; // this depends on your node template!
node.elt(0).strokeWidth = 4;
}
})
}
},
. . .