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'; + } +};