@@ -16,7 +16,8 @@ import {
1616 PositionDef ,
1717 PositionFieldDef ,
1818 TypedFieldDef ,
19- vgField
19+ vgField ,
20+ areFieldDefsWithInlineTransformsEquivalent
2021} from './channeldef' ;
2122import { CompositeAggregate } from './compositemark' ;
2223import { channelHasField , Encoding , isAggregate } from './encoding' ;
@@ -181,13 +182,15 @@ export function stack(m: Mark | MarkDef, encoding: Encoding<string>): StackPrope
181182 if ( encoding [ dimensionChannel ] ) {
182183 const dimensionDef = encoding [ dimensionChannel ] ;
183184 const dimensionField = isFieldDef ( dimensionDef ) ? vgField ( dimensionDef , { } ) : undefined ;
184- const hasSameDimensionAndStackedField = dimensionField && dimensionField === stackedField ;
185+ // const hasSameDimensionAndStackedField = dimensionField && dimensionField === stackedField;
186+ const areDefsEquivalent =
187+ isFieldDef ( dimensionDef ) && areFieldDefsWithInlineTransformsEquivalent ( dimensionDef , stackedFieldDef ) ;
185188
186189 // For polar coordinates, do not set a groupBy when working with quantitative fields.
187190 // const isPolar = isPolarPositionChannel(fieldChannel) || isPolarPositionChannel(dimensionChannel);
188191 // const shouldAddPolarGroupBy = !isUnbinnedQuantitative(dimensionDef);
189192
190- if ( ! hasSameDimensionAndStackedField ) {
193+ if ( ! areDefsEquivalent ) {
191194 // if (isPolar ? shouldAddPolarGroupBy : !hasSameDimensionAndStackedField) {
192195 // avoid grouping by the stacked field
193196 groupbyChannels . push ( dimensionChannel ) ;
0 commit comments