UNPKG

@primer/react-brand

Version:

Primer Brand is a GitHub's design system for creating React-based marketing websites and digital experiences.

66 lines (65 loc) 1.4 kB
//#region src/Pagination/model.ts function e(e, t, n, r, i) { let a = []; if (n) { let n = [], o = (t) => { t >= 1 && t <= e && n.push(t); }, s = t - i, c = t + i; if (s < 1 && c > e) s = 1, c = e; else if (s < 1) for (; s < 1;) s++, c++; else if (c > e) for (; c > e;) s--, c--; for (let t = 1; t <= r; t++) { let n = t, r = e - (t - 1); n >= s ? c++ : o(n), r <= c ? s-- : o(r); } for (let e = s; e <= c; e++) o(e); let l = n.slice().sort((e, t) => e - t).filter((e, t, n) => !t || e !== n[t - 1]); for (let e = 0; e < l.length; e++) { let n = l[e], r = n === t, i = l[e - 1], o = l[e + 1], s = n - i, c = n - o !== -1; e === 0 ? (n !== 1 && a.push({ type: "BREAK", num: 1 }), a.push({ type: "NUM", num: n, selected: r, precedesBreak: c })) : s === 1 ? a.push({ type: "NUM", num: n, selected: r, precedesBreak: c }) : (a.push({ type: "BREAK", num: n - 1 }), a.push({ type: "NUM", num: n, selected: r, precedesBreak: !1 })); } let u = a[a.length - 1]; u.type === "NUM" && u.num !== e && a.push({ type: "BREAK", num: e }); } let o = { type: "PREV", num: t - 1, disabled: t === 1 }, s = { type: "NEXT", num: t + 1, disabled: t === e }; return [ o, ...a, s ]; } //#endregion export { e as buildPaginationModel }; //# sourceMappingURL=model.js.map