laif-ds
Version:
Design System di Laif con componenti React basati su principi di Atomic Design
63 lines (62 loc) • 1.54 kB
JavaScript
"use client";
var f = /* @__PURE__ */ ((n) => (n.AND = "AND", n.OR = "OR", n))(f || {});
function d(n, o, t, r, c) {
const i = n.getValue(o), u = r?.find((e) => e.column === o)?.innerFiltersMode ?? "OR";
if (c) return !0;
if (Array.isArray(i))
return u === "AND" ? t.every((e) => i.includes(e)) : t.some((e) => i.includes(e));
switch (u) {
case "AND":
return t.every((e) => String(i) === e);
case "OR":
default:
return t.some((e) => String(i) === e);
}
}
function m(n, o) {
return n.reduce(
(t, r) => (r.filterFn && (t[r.column] = (c, i, a) => {
if (o) return !0;
const u = c.getValue(i);
switch (r.innerFiltersMode ?? "OR") {
case "AND":
return a.every(
(s) => r.filterFn(u, [s])
);
case "OR":
default:
return a.some(
(s) => r.filterFn(u, [s])
);
}
}), t),
{}
) || {};
}
function h(n, o) {
const {
rowHeight: t = 1,
headerHeight: r = 1,
containerHeight: c = 1,
onPageChange: i,
setPagination: a
} = o, u = n?.offsetHeight || c, e = Math.floor(
(u - r) / t
), s = e > 1 ? e : 1;
a((g) => g.pageSize !== s ? (i && i(0, s), { ...g, pageSize: s }) : g);
}
function l(n, o) {
let t;
return function(...r) {
clearTimeout(t), t = setTimeout(() => {
n(...r);
}, o);
};
}
export {
f as ELogicalFilterOperator,
m as createCustomFilterFns,
d as createMultiValueFilterFn,
l as debounce,
h as updatePageSizeFromContainer
};