Skip to content

Commit f739408

Browse files
Merge pull request #560 from plotly/more-transform-traces
add transforms for histogram, box, violin
2 parents f624fb8 + f94c9ff commit f739408

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

src/EditorControls.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -232,10 +232,14 @@ class EditorControls extends Component {
232232
isNumeric(payload.transformIndex) &&
233233
payload.traceIndex < graphDiv.data.length
234234
) {
235-
graphDiv.data[payload.traceIndex].transforms.splice(
236-
payload.transformIndex,
237-
1
238-
);
235+
if (graphDiv.data[payload.traceIndex].transforms.length === 1) {
236+
delete graphDiv.data[payload.traceIndex].transforms;
237+
} else {
238+
graphDiv.data[payload.traceIndex].transforms.splice(
239+
payload.transformIndex,
240+
1
241+
);
242+
}
239243
if (this.props.onUpdate) {
240244
this.props.onUpdate(
241245
graphDiv.data.slice(),

src/components/containers/TransformAccordion.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,15 @@ class TransformAccordion extends Component {
2626
{label: _('Aggregate'), type: 'aggregate'},
2727
];
2828

29-
const transformableCharts = ['scatter', 'bar', 'scattergl'];
29+
const transformableCharts = [
30+
'scatter',
31+
'bar',
32+
'scattergl',
33+
'histogram',
34+
'histogram2d',
35+
'box',
36+
'violin',
37+
];
3038

3139
if (!transformableCharts.includes(fullContainer.type)) {
3240
return (
@@ -68,7 +76,7 @@ class TransformAccordion extends Component {
6876
transformIndex={i}
6977
name={`${
7078
transformTypes.filter(({type}) => type === tr.type)[0].label
71-
}${transformBy[i]}`}
79+
}${transformBy && transformBy[i]}`}
7280
canDelete={true}
7381
>
7482
{children}

src/default_panels/GraphTransformsPanel.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ export class Aggregations extends Component {
2525
}
2626

2727
return aggregations
28-
.filter(aggr => aggr.target.match(/transforms\[\d*\]\./gi) === null)
28+
.filter(
29+
aggr =>
30+
aggr.target && aggr.target.match(/transforms\[\d*\]\./gi) === null
31+
)
2932
.map(({target}, i) => (
3033
<AggregationSection show key={i} aggregationIndex={i}>
3134
<Dropdown

0 commit comments

Comments
 (0)