x;
              // walk up the chain of panels
              while (o !== null && o.portId === null) o = o.panel;
              return o;
            },
            (p) => {
              // a "port" Panel
              // the parent Node must not be in the dragged collection, and
              // this port P must be compatible with the NODE's PORT
              if (coll.has(p.part)) return false;
              const ppt = p.getDocumentPoint(go.Spot.Center);
              if (portPt.distanceSquaredPoint(pp