UNPKG

@uva-glass/component-library

Version:

React components UvA

93 lines (92 loc) 2.19 kB
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