Skip to content

Commit 22fff12

Browse files
committed
input order
1 parent 13e0c8f commit 22fff12

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

src/marks/bar.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -166,20 +166,26 @@ export function barY(data, {x = indexOf, y, y1, y2, ...options} = {}) {
166166
return new BarY(data, {...options, x, y1, y2});
167167
}
168168

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) {
173175
case true: case "descending": return descendingDefined;
174176
case "ascending": return ascendingDefined;
177+
case "input": return inputOrder;
175178
}
176-
throw new Error("invalid sort");
179+
throw new Error("invalid sort order");
177180
}
178181

179182
function inferSortedDomain(order, channels, nameX, nameY) {
180183
const [, x] = channels.find(([name]) => name === nameX);
181-
const [, y] = channels.find(([name]) => name === nameY);
182184
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+
}
185191
}

0 commit comments

Comments
 (0)