@frontify/fondue
Version:
Design system of Frontify
28 lines (27 loc) • 907 B
JavaScript
const r = (t, o) => t === 0 && o === null, c = (t, o, e) => t < o && e === null, a = (t, o) => t === o, f = (t, o, e, l) => t > o && e !== null && l !== null && e <= l, h = (t, o) => {
const e = [], l = [];
for (const [s, i] of t.entries()) {
const n = e[s - 1];
let u = { ...i };
if (r(s, i.sort) || c(s, o, i.sort) || a(s, o) || f(
s,
o,
i.sort,
(n == null ? void 0 : n.sort) ?? null
)) {
const d = n && n.sort !== null ? n.sort + 1 : null;
u = { ...i, sort: s === 0 ? 0 : d }, l.push(u);
}
e.push(u);
}
return l;
}, S = (t, o, e, l) => {
const s = [...l], i = s.findIndex((u) => u.id === o.id);
i !== -1 && s.splice(i, 1);
let n = s.findIndex((u) => u.id === (t == null ? void 0 : t.id));
return n = e === "after" ? n + 1 : n, s.splice(n, 0, o), h(s, n);
};
export {
S as moveItems
};
//# sourceMappingURL=moveItems.es.js.map