@razorpay/blade
Version:
The Design System that powers Razorpay
62 lines (48 loc) • 1.52 kB
JavaScript
import array from './array.js';
import constant from './constant.js';
import stackOffsetNone from './offset/none.js';
import stackOrderNone from './order/none.js';
function stackValue(d, key) {
return d[key];
}
function stackSeries(key) {
const series = [];
series.key = key;
return series;
}
function shapeStack() {
var keys = constant([]),
order = stackOrderNone,
offset = stackOffsetNone,
value = stackValue;
function stack(data) {
var sz = Array.from(keys.apply(this, arguments), stackSeries),
i, n = sz.length, j = -1,
oz;
for (const d of data) {
for (i = 0, ++j; i < n; ++i) {
(sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;
}
}
for (i = 0, oz = array(order(sz)); i < n; ++i) {
sz[oz[i]].index = i;
}
offset(sz, oz);
return sz;
}
stack.keys = function(_) {
return arguments.length ? (keys = typeof _ === "function" ? _ : constant(Array.from(_)), stack) : keys;
};
stack.value = function(_) {
return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), stack) : value;
};
stack.order = function(_) {
return arguments.length ? (order = _ == null ? stackOrderNone : typeof _ === "function" ? _ : constant(Array.from(_)), stack) : order;
};
stack.offset = function(_) {
return arguments.length ? (offset = _ == null ? stackOffsetNone : _, stack) : offset;
};
return stack;
}
export { shapeStack as default };
//# sourceMappingURL=stack.js.map