UNPKG

@razorpay/blade

Version:

The Design System that powers Razorpay

62 lines (48 loc) 1.52 kB
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