diff --git a/package.json b/package.json
index 158736073..78e05bfc0 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "react-chart-editor",
"description": "plotly.js chart editor react component UI",
- "version": "0.32.0",
+ "version": "0.32.1",
"author": "Plotly, Inc.",
"bugs": {
"url": "https://github.com/plotly/react-chart-editor/issues"
diff --git a/src/EditorControls.js b/src/EditorControls.js
index 8ddad4e5a..97e3dcc66 100644
--- a/src/EditorControls.js
+++ b/src/EditorControls.js
@@ -10,6 +10,7 @@ import {
shamefullyCreateSplitStyleProps,
shamefullyAdjustSplitStyleTargetContainers,
shamefullyDeleteRelatedAnalysisTransforms,
+ shamefullyAdjustSizeref,
} from './shame';
import {EDITOR_ACTIONS} from './lib/constants';
import isNumeric from 'fast-isnumeric';
@@ -70,6 +71,7 @@ class EditorControls extends Component {
this.props.beforeUpdateTraces(payload);
}
+ shamefullyAdjustSizeref(graphDiv, payload);
shamefullyClearAxisTypes(graphDiv, payload);
shamefullyAdjustAxisRef(graphDiv, payload);
shamefullyAddTableColumns(graphDiv, payload);
diff --git a/src/default_panels/StyleTracesPanel.js b/src/default_panels/StyleTracesPanel.js
index f0a670f2f..f1ff4f740 100644
--- a/src/default_panels/StyleTracesPanel.js
+++ b/src/default_panels/StyleTracesPanel.js
@@ -246,7 +246,7 @@ const StyleTracesPanel = (props, {localize: _}) => (
diff --git a/src/shame.js b/src/shame.js
index e12e55795..14b6fcecd 100644
--- a/src/shame.js
+++ b/src/shame.js
@@ -202,3 +202,13 @@ export const shamefullyDeleteRelatedAnalysisTransforms = (graphDiv, payload) =>
}
}
};
+
+export const shamefullyAdjustSizeref = (gd, {update}) => {
+ const {'marker.size': size = null, 'marker.sizesrc': src = null} = update;
+ if (size && src) {
+ const DEFAULT_MAX_AREA_PX = 45;
+ const scaleFactor = DEFAULT_MAX_AREA_PX * DEFAULT_MAX_AREA_PX;
+ update['marker.sizeref'] = size.reduce((a, b) => Math.max(a, b)) / scaleFactor;
+ update['marker.sizemode'] = 'area';
+ }
+};