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