// When SHIFTing, must disconnect all links that connect with nodes not being dragged.
    // Without SHIFT, move all nodes that are snapped to selected nodes, even indirectly.
    computeEffectiveCollection(parts) {
      if (this.diagram.lastInput.shift) {
        const links = new go.Set(/*go.Link*/);
        const coll = super.computeEffectiveCollection(parts);
        coll.iteratorKeys.each((node) => {
          // disconnect all links of this node that connect with stationary node
          if (!(node