Need to Add Custom Icon in Node

Hi Team,
I need to add custom sprite Image icon in my node can you please tell me how could i implement this on my this bpmn node code given below

I need to show then look like this
and need any Implementation for select icon only to remove it. Because I am using contextMenu: $(go.Adornment), so i need specific selection for this icon item.

var activityNodeTemplate =

            $(go.Node, "Spot",
                    locationObjectName: "SHAPE", locationSpot: go.Spot.Center,
                    resizable: false, resizeObjectName: "PANEL",
                    toolTip: tooltiptemplate,
                    selectionAdorned: true,  // use a Binding on the Shape.stroke to show selection
                    contextMenu: $(go.Adornment),
                    itemTemplate: boundaryEventItemTemplate
                new go.Binding("itemArray", "boundaryEventArray"),
                new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
                // move a selected part into the Foreground layer, so it isn"t obscured by any non-selected parts

                new go.Binding("layerName", "isSelected", function (s) { return s ? "Foreground" : ""; }).ofObject(),
                $(go.Panel, "Auto",
                        name: "PANEL",
                        minSize: new go.Size(ActivityNodeWidth, ActivityNodeHeight),
                        desiredSize: new go.Size(ActivityNodeWidth, ActivityNodeHeight)
                    new go.Binding("desiredSize", "size", go.Size.parse).makeTwoWay(go.Size.stringify),
                    $(go.Panel, "Spot",
                        $(go.Shape, "RoundedRectangle",  // the outside rounded rectangle
                                name: "SHAPE",
                                fill: ActivityNodeFill, stroke: ActivityNodeStroke,
                                parameter1: 10, // corner size
                                portId: "", fromLinkable: true, toLinkable: true, cursor: "pointer",
                                fromSpot: go.Spot.AllSides, toSpot: go.Spot.AllSides,
                                fromLinkableDuplicates: false, toLinkableDuplicates: false,
                                fromLinkableSelfNode: false, toLinkableSelfNode: false, toMaxLinks: 1, fromMaxLinks: 1,
                            new go.Binding("fill", "color"),
                            new go.Binding("strokeWidth", "isCall",
                                function (s) { return s ? ActivityNodeStrokeWidthIsCall : ActivityNodeStrokeWidth; })
                        //        $(go.Shape, "RoundedRectangle",  // the inner "Transaction" rounded rectangle
                        //          { margin: 3,
                        //            stretch: go.GraphObject.Fill,
                        //            stroke: ActivityNodeStroke,
                        //            parameter1: 8, fill: null, visible: false
                        //          },
                        //          new go.Binding("visible", "isTransaction")
                        //         ),
                        // task icon
                        $(go.Shape, "BpmnTaskScript",    // will be None, Script, Manual, Service, etc via converter
                                alignment: new go.Spot(0, 0, 5, 5), alignmentFocus: go.Spot.TopLeft,
                                width: 22, height: 22
                            new go.Binding("fill", "taskType", nodeActivityTaskTypeColorConverter),
                            new go.Binding("figure", "taskType", nodeActivityTaskTypeConverter)
                        // end Task Icon
                        makeMarkerPanel(false, 1) // sub-process,  loop, parallel, sequential, ad doc and compensation markers
                    ),  // end main body rectangles spot panel
                    $(go.TextBlock,  // the center text
                            alignment: go.Spot.Center, textAlign: "center", margin: 12,
                            editable: true
                        new go.Binding("text").makeTwoWay()),
                    { // show the Adornment when a mouseHover event occurs
                        mouseHover: function (e, obj) {
                            var node = obj.part;
                            var shape = obj.findObject("LINK");
                            nodeHoverAdornment.adornedObject = node;
                            node.addAdornment("mouseHover", nodeHoverAdornment);
                ),  // end Auto Panel
                { dragComputation: stayInGroup } // limit dragging of Nodes to stay within the containing Group, defined above  
            );  // end go.Node, which is a Spot Panel with bound itemArray

Are you just asking how to change the appearance when the Task node is selected?

The activityNodeTemplate sets Part.selectionAdorned to false, which is why in when the user selects a “Task” node, there is no solid blue rectangle around the node. So you will want to remove that setting.

But also that node template sets Part.resizable to true, which is why you see the 8 resizing handles. If you don’t set that to true, the node won’t be resizable so the user won’t see that resizing handles.

No i need to add custom icon image in the node as Escalation Event icon shown in this node how can i add my custom icon using font-awesome or sprite image