code: function addDescendantsToDrag(node, opts) {
      if (!node.cy().hasCompoundNodes()) {
        return;
      }
  
      if (opts.inDragLayer == null && opts.addToList == null) {
        return;
      } // nothing to do
  
  
      var innerNodes = node.descendants();
  
      if (opts.inDragLayer) {
        innerNodes.forEach(setInDragLayer);
        innerNodes.connectedEdges().forEach(setInDragLayer);
      }
  
      if (opts.addToList) {
        opts.addToList.unmerge(innerNodes);
      }
    }
docs: helper function to determine which child nodes and inner edges of a compound node to be dragged as well as the grabbed and selected nodes