UNPKG

@tldraw/utils

Version:

tldraw infinite canvas SDK (private utilities).

57 lines (56 loc) 1.44 kB
import { generateJitteredKeyBetween, generateNJitteredKeysBetween, generateNKeysBetween } from "fractional-indexing-jittered"; const generateKeysFn = process.env.NODE_ENV === "test" ? generateNKeysBetween : generateNJitteredKeysBetween; const ZERO_INDEX_KEY = "a0"; function validateIndexKey(index) { try { generateJitteredKeyBetween(index, null); } catch { throw new Error("invalid index: " + index); } } function getIndicesBetween(below, above, n) { return generateKeysFn(below ?? null, above ?? null, n); } function getIndicesAbove(below, n) { return generateKeysFn(below ?? null, null, n); } function getIndicesBelow(above, n) { return generateKeysFn(null, above ?? null, n); } function getIndexBetween(below, above) { return generateKeysFn(below ?? null, above ?? null, 1)[0]; } function getIndexAbove(below = null) { return generateKeysFn(below, null, 1)[0]; } function getIndexBelow(above = null) { return generateKeysFn(null, above, 1)[0]; } function getIndices(n, start = "a1") { return [start, ...generateKeysFn(start, null, n)]; } function sortByIndex(a, b) { if (a.index < b.index) { return -1; } else if (a.index > b.index) { return 1; } return 0; } export { ZERO_INDEX_KEY, getIndexAbove, getIndexBelow, getIndexBetween, getIndices, getIndicesAbove, getIndicesBelow, getIndicesBetween, sortByIndex, validateIndexKey }; //# sourceMappingURL=reordering.mjs.map