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.67 kB
import { useRef as f, useMemo as l } from "../../../../external/.pnpm/preact@10.28.2/node_modules/preact/hooks/dist/hooks.module.js"; import { DEFAULT_PAGE_LIMIT as m } 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 = (r, o) => { const n = r.length - 1; if (n < 0) return o; if (o <= r[0]) return r[0]; if (o >= r[n]) return r[n]; let i = 0, c = 0, s = n; for (; ; ) { const e = r[i = d(c, s)]; if (c > s || o === e) return e; o > e ? c = i + 1 : s = i - 1; } }, q = ({ preferredLimit: r = m, preferredLimitOptions: o }) => { const n = f(), i = f(), c = l(() => { 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: l(() => { let e = a(r) || m; t: try { const t = new Set(n.current = c); if (t.size === 0) { n.current = void 0; break t; } if (i.current !== e) e: { if (t.size === t.add(e).size) break e; if (t.delete(e), t.size === t.add(i.current).size) { if (p(i.current)) { e = i.current; break e; } } else t.delete(i.current); e = h(n.current, e); } } catch { } return i.current = e; }, [c, r]), limitOptions: c }; }; export { q as default, h as getNearestFromSortedUniqueNums };