Different hover effects

Another query i have panel and tree expander button need to show hover on both differently any idea how to achieve it

Presumably you have implemented different GraphObject.mouseHover event handlers for those different objects, haven’t you? Could you please describe what the problem is?

return this.goObj(
selectionChanged: selectionCallBack,
mouseEnter: this.mouseEnter,
mouseLeave: this.mouseLeave,
this.goObj(go.Panel, PANEL.vertical,

      go.Panel, 'Auto',
      {name: 'PANEL'} ,
          desiredSize: new go.Size(299, 99),
          name: 'SHAPE',
        go.Panel, PANEL.horizontal,
        { alignment: go.Spot.Left },


On mouse over to shape rounded rectangle i want separate mouse hover and for arrow expander i want separate mouse hover to change shadow.
As far document i could find only part or node can be added shadow ? Is there any way to add shadow at shape or panel and treeexpander button ?

OK, so you are implementing the GraphObject.mouseEnter and mouseLeave events rather than GraphObject.mouseHover. You have implemented the event handlers on the Node, so that the events occur when the mouse enters and leaves the whole Node. But you could implement them on the Shape one way and a different way on some other object. It isn’t clear to me what you mean by the “arrow expander”, but if you mean the “TreeExpanderButton”, please be aware that all “Buttons” already implement their own mouseEnter and mouseLeave event handlers, so your handlers will want to do that work too. See how the buttons are defined at https://gojs.net/latest/extensions/Buttons.js.

Part.isShadowed and various shadow defining properties are indeed defined at the Node or Link level, but you can control whether individual objects have a shadow when Part.isShadowed is true by setting https://gojs.net/latest/api/symbols/GraphObject.html#shadowVisible.