UNPKG

@uva-glass/component-library

Version:

React components UvA

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