UNPKG

@adyen/adyen-platform-experience-web

Version:

![Platform Experience header](https://github.com/Adyen/adyen-platform-experience-web/assets/7926613/18094965-9e01-450e-8dc9-ea84e6b22c2b)

62 lines (61 loc) 1.66 kB
import { useRef as f, useMemo as m } from "../../../../external/preact/hooks/dist/hooks.module.js"; import { DEFAULT_PAGE_LIMIT as l } from "../constants.js"; import { getClampedPageLimit as a } from "../utils.js"; import { mid as d } from "../../../../utils/value/number.js"; import { isNumber as p } from "../../../../utils/value/is.js"; const h = (i, o) => { const n = i.length - 1; if (n < 0) return o; if (o <= i[0]) return i[0]; if (o >= i[n]) return i[n]; let r = 0, c = 0, s = n; for (; ; ) { const e = i[r = d(c, s)]; if (c > s || o === e) return e; o > e ? c = r + 1 : s = r - 1; } }, q = ({ preferredLimit: i = l, preferredLimitOptions: o }) => { const n = f(), r = f(), c = m(() => { try { const e = /* @__PURE__ */ new Set(); for (const t of o) { const u = a(t); u > 0 && e.add(u); } return Object.freeze([...e].sort((t, u) => t - u)); } catch { } }, [o]); return { limit: m(() => { let e = a(i) || l; e: try { if (n.current === c) break e; const t = new Set(n.current = c); if (t.size === 0) { n.current = void 0; break e; } if (r.current !== e) t: { if (t.size === t.add(e).size) break t; if (t.delete(e), t.size === t.add(r.current).size) { if (p(r.current)) { e = r.current; break t; } } else t.delete(r.current); e = h(n.current, e); } } catch { } return r.current = e; }, [c, i]), limitOptions: c }; }; export { q as default, h as getNearestFromSortedUniqueNums };