From 477d2a088c44aaa80cfe6ecab64d74df09e342ae Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi Date: Fri, 14 Oct 2022 15:05:38 -0400 Subject: [PATCH] smart dflt for cluster.enabled --- src/traces/scattermapbox/attributes.js | 1 - src/traces/scattermapbox/defaults.js | 26 ++++++++++++++------- test/image/mocks/mapbox_scattercluster.json | 4 ---- test/plot-schema.json | 1 - 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/traces/scattermapbox/attributes.js b/src/traces/scattermapbox/attributes.js index 722abbb61ab..3404f2f9c35 100644 --- a/src/traces/scattermapbox/attributes.js +++ b/src/traces/scattermapbox/attributes.js @@ -22,7 +22,6 @@ module.exports = overrideAll({ cluster: { enabled: { valType: 'boolean', - dflt: false, description: 'Determines whether clustering is enabled or disabled.' }, maxzoom: extendFlat({}, mapboxLayoutAtributes.layers.maxzoom, { diff --git a/src/traces/scattermapbox/defaults.js b/src/traces/scattermapbox/defaults.js index f6923d526de..93010cca922 100644 --- a/src/traces/scattermapbox/defaults.js +++ b/src/traces/scattermapbox/defaults.js @@ -14,6 +14,10 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout return Lib.coerce(traceIn, traceOut, attributes, attr, dflt); } + function coerce2(attr, dflt) { + return Lib.coerce2(traceIn, traceOut, attributes, attr, dflt); + } + var len = handleLonLatDefaults(traceIn, traceOut, coerce); if(!len) { traceOut.visible = false; @@ -46,14 +50,20 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout } } - var hasCluster = coerce('cluster.enabled'); - if(hasCluster) { - coerce('cluster.maxzoom'); - coerce('cluster.step'); - coerce('cluster.color', traceOut.marker.color || defaultColor); - coerce('cluster.size'); - coerce('cluster.opacity'); - } + var clusterMaxzoom = coerce2('cluster.maxzoom'); + var clusterStep = coerce2('cluster.step'); + var clusterColor = coerce2('cluster.color', (traceOut.marker && traceOut.marker.color) || defaultColor); + var clusterSize = coerce2('cluster.size'); + var clusterOpacity = coerce2('cluster.opacity'); + + var clusterEnabledDflt = + clusterMaxzoom !== false || + clusterStep !== false || + clusterColor !== false || + clusterSize !== false || + clusterOpacity !== false; + + coerce('cluster.enabled', clusterEnabledDflt); if(subTypes.hasText(traceOut)) { handleTextDefaults(traceIn, traceOut, layout, coerce, {noSelect: true}); diff --git a/test/image/mocks/mapbox_scattercluster.json b/test/image/mocks/mapbox_scattercluster.json index dd14056118b..43cae72ece7 100644 --- a/test/image/mocks/mapbox_scattercluster.json +++ b/test/image/mocks/mapbox_scattercluster.json @@ -11,7 +11,6 @@ "opacity": 0.5 }, "cluster": { - "enabled": true, "size": 20, "color": "yellow" }, @@ -61,7 +60,6 @@ "size": 20 }, "cluster": { - "enabled": true, "size": 10 }, "lon": [ @@ -110,7 +108,6 @@ "size": 10 }, "cluster": { - "enabled": true, "size": 20 }, "lon": [ @@ -159,7 +156,6 @@ "size": 10 }, "cluster": { - "enabled": true, "size": 10 }, "lon": [ diff --git a/test/plot-schema.json b/test/plot-schema.json index 0b5cd8a3a8d..c32d24547c3 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -53461,7 +53461,6 @@ "editType": "calc", "enabled": { "description": "Determines whether clustering is enabled or disabled.", - "dflt": false, "editType": "calc", "valType": "boolean" },