diff --git a/docs/network/index.html b/docs/network/index.html
index 0f8ef8ff..60d0dd47 100644
--- a/docs/network/index.html
+++ b/docs/network/index.html
@@ -1237,7 +1237,13 @@ var options = {
node
any way you want. This is also the style object that is provided in the processProperties function
for
- fine tuning. If undefined, default node options will be used.
+ fine tuning. If undefined, default node options will be used.
+ Default functionality only allows clustering if the cluster will contain 2 or more nodes. To allow clustering of single nodes you can use the allowSingleNodeCluster : true property.
+
+ Clusters can contain other clusters, but clusters of a single node is only possible by adding
+
allowSingleNodeCluster: true
+to clusterNodeProperties
+In this example repeatedly clicking on the node with open the Clusters.
+
+
+
+
+
+
diff --git a/lib/network/modules/Clustering.js b/lib/network/modules/Clustering.js
index cb4d503e..f67d0da1 100644
--- a/lib/network/modules/Clustering.js
+++ b/lib/network/modules/Clustering.js
@@ -348,8 +348,11 @@ class ClusterEngine {
* @private
*/
_cluster(childNodesObj, childEdgesObj, options, refreshData = true) {
- // kill condition: no children so can't cluster or only one node in the cluster, don't bother
- if (Object.keys(childNodesObj).length < 2) {return;}
+ // kill condition: no nodes don't bother
+ if (Object.keys(childNodesObj).length == 0) {return;}
+
+ // allow clusters of 1 if options allow
+ if (Object.keys(childNodesObj).length == 1 && options.clusterNodeProperties.allowSingleNodeCluster != true) {return;}
// check if this cluster call is not trying to cluster anything that is in another cluster.
for (let nodeId in childNodesObj) {