@@ -166,20 +166,26 @@ export function barY(data, {x = indexOf, y, y1, y2, ...options} = {}) {
166
166
return new BarY ( data , { ...options , x, y1, y2} ) ;
167
167
}
168
168
169
- function maybeSort ( sort ) {
170
- if ( ! sort ) return ;
171
- if ( typeof sort === "function" ) return sort ;
172
- switch ( sort ) {
169
+ const inputOrder = Symbol ( "input" ) ;
170
+
171
+ function maybeSort ( order ) {
172
+ if ( ! order ) return ;
173
+ if ( typeof order === "function" ) return order ;
174
+ switch ( order ) {
173
175
case true : case "descending" : return descendingDefined ;
174
176
case "ascending" : return ascendingDefined ;
177
+ case "input" : return inputOrder ;
175
178
}
176
- throw new Error ( "invalid sort" ) ;
179
+ throw new Error ( "invalid sort order " ) ;
177
180
}
178
181
179
182
function inferSortedDomain ( order , channels , nameX , nameY ) {
180
183
const [ , x ] = channels . find ( ( [ name ] ) => name === nameX ) ;
181
- const [ , y ] = channels . find ( ( [ name ] ) => name === nameY ) ;
182
184
const { value : X } = x ;
183
- const { value : Y } = y ;
184
- x . domain = take ( X , sort ( range ( X ) , ( i , j ) => order ( Y [ i ] , Y [ j ] ) ) ) ;
185
+ if ( order === inputOrder ) {
186
+ x . domain = X ;
187
+ } else {
188
+ const [ , { value : Y } ] = channels . find ( ( [ name ] ) => name === nameY ) ;
189
+ x . domain = take ( X , sort ( range ( X ) , ( i , j ) => order ( Y [ i ] , Y [ j ] ) ) ) ;
190
+ }
185
191
}
0 commit comments