@uva-glass/component-library
Version:
React components UvA
93 lines (92 loc) • 2.19 kB
JavaScript
import { jsx as o } from "react/jsx-runtime";
import { CLEAR_DRAGGING_SOURCE as u, CLEAR_DRAGGING_TARGET as s, MOVE_TO_POSITION as c, SET_DRAGGING_SOURCE as l, SET_DRAGGING_TARGET as t, DROP as S, RESET as f, DRAG_END as p, DRAG_START as T, SET_CLONE as R } from "./constants.js";
const m = {
clone: void 0,
draggingSource: void 0,
draggingTarget: void 0,
indices: [],
itemsBeforeDrag: [],
maxIndex: 0,
sortableItems: []
}, n = (e, r, ...g) => (e === r || g.splice(r, 0, ...g.splice(e, 1)), g);
function G(e, r, ...g) {
return g.splice(e, 1), [...g.splice(r, 0, /* @__PURE__ */ o("span", {})), ...g];
}
const D = (e = m, r) => {
const g = e;
switch (r.type) {
case R:
return {
...e,
clone: r.payload
};
case T:
return {
...e,
draggingSource: r.payload,
itemsBeforeDrag: e.sortableItems
};
case p:
return {
...e,
draggingSource: void 0,
draggingTarget: void 0
};
case f:
return {
...e,
draggingTarget: void 0,
sortableItems: e.itemsBeforeDrag
};
case S: {
const d = n(g.draggingSource, r.payload, ...e.itemsBeforeDrag), i = d.map(({ props: a }) => a.index);
return {
...e,
clone: void 0,
draggingSource: void 0,
draggingTarget: void 0,
indices: i,
sortableItems: d
};
}
case t:
return {
...e,
draggingTarget: r.payload,
sortableItems: G(
g.draggingSource,
r.payload,
...e.itemsBeforeDrag
)
};
case l:
return {
...e,
draggingSource: r.payload
};
case c:
return {
...e,
draggingTarget: r.payload,
draggingSource: r.payload,
sortableItems: n(g.draggingSource, r.payload, ...e.sortableItems)
};
case s:
return {
...e,
draggingTarget: void 0
};
case u:
return {
...e,
draggingSource: void 0
};
default:
return e;
}
};
export {
m as initialState,
D as sortableReducer
};
//# sourceMappingURL=sortableReducer.js.map