_clusterEdges(childNodes, childEdges, clusterNode, clusterEdgeProperties) {
    if (childEdges instanceof Edge) {
      const edge = childEdges;
      const obj = {};
      obj[edge.id] = edge;
      childEdges = obj;
    }

    if (childNodes instanceof Node) {
      const node = childNodes;
      const obj = {};
      obj[node.id] = node;
      childNodes = obj;
    }

    if (clusterNode === undefined || clusterNode === null) {
      throw new Error("_clusterEdges: parameter clusterNode required");
    }

    if (clusterEdgeProperties === undefined) {
      // Take the required properties from the cluster node
      clusterEdgeProperties = clusterNode.clusterEdgeProperties;
    }

    // create the new edges that will connect to the cluster.
    // All self-referencing edges will be added to childEdges here.
    this._createClusterEdges(
      childNodes,
      childEdges,
      clusterNode,
      clusterEdgeProperties
    );

    // disable the childEdges
    for (const edgeId in childEdges) {
      if (Object.prototype.hasOwnProperty.call(childEdges, edgeId)) {
        if (this.body.edges[edgeId] !== undefined) {
          const edge = this.body.edges[edgeId];
          // cache the options before changing
          this._backupEdgeOptions(edge);
          // disable physics and hide the edge
          edge.setOptions({ physics: false });
        }
      }
    }

    // disable the childNodes
    for (const nodeId in childNodes) {
      if (Object.prototype.hasOwnProperty.call(childNodes, nodeId)) {
        this.clusteredNodes[nodeId] = {
          clusterId: clusterNode.id,
          node: this.body.nodes[nodeId],
        };
        this.body.nodes[nodeId].setOptions({ physics: false });
      }
    }
  }
Add the passed child nodes and edges to the given cluster node.
@param {object | Node} childNodes  hash of nodes or single node to add in cluster
@param {object | Edge} childEdges  hash of edges or single edge to take into account when clustering
@param {Node} clusterNode  cluster node to add nodes and edges to
@param {object} [clusterEdgeProperties]
@private