UNPKG

dgz-ui-shared

Version:

Custom ui library using React.js, Shadcn/ui, TailwindCSS, Typescript, dgz-ui library

134 lines (133 loc) 2.77 kB
import { useEffect as C, useMemo as j, useCallback as a, useState as O } from "react"; import { a as l } from "./MyInput-qse97Dxt.js"; import { u as E } from "./useColumnsStore-CUWnqxpS.js"; import { S as b } from "./SortOrder-CwuehjY1.js"; const F = ({ key: n, columns: e = [] }) => { const { storedColumns: t, setColumns: u } = E(); C(() => { if (l.isEmpty(l.get(t, n))) { const o = l.get(t, n, {}); e.forEach((s) => { l.set(o, s.key, !!s.hidden); }), u({ ...t, [n]: o }); } }, [n, e, t, u]); const m = j(() => { const o = l.get(t, n, {}); return e.map((s) => { const { hidden: r, ...i } = s; return { ...i, hidden: l.get(o, s.key, !!r) }; }); }, [n, t, e]), f = a( (o, s) => { const r = l.get(t, n, {}); l.set(r, o.key, s), u({ ...t, [n]: r }); }, [n, u, t] ), c = a(() => { const o = {}; e.forEach((s) => { l.set(o, s.key, !!s.hidden); }), u({ ...t, [n]: o }); }, [n, u, t, e]); return { formattedColumns: m, handleColumnsChange: f, resetColumns: c }; }, S = ({ rows: n = [], defaultSelectedRows: e = [] }) => { const [t, u] = O([]), m = a( (s, r) => { u((i) => { const d = n.map((h) => h[s]) || [], g = i.filter( (h) => !d.includes(h) ); return r ? [...g, ...d] : g; }); }, [n] ); C(() => { e && u( (s) => l.isEqual(s, e) ? s : e ); }, [e]); const f = a( (s, r) => { u((i) => r ? [...i, s] : i.filter((d) => d !== s)); }, [] ), c = a( (s) => t.includes(s), [t] ), o = a( (s) => { const r = n.map((d) => d[s]) || []; let i = 0; for (const d of r) t.includes(d) && i++; return r.length === i ? !0 : i ? "indeterminate" : !1; }, [t, n] ); return { selectedRows: t, isRowSelected: c, isAllRowsSelected: o, handleSelectAllRows: m, handleSelectRow: f }; }, x = ({ sortField: n, sortOrder: e, onSortOrderChange: t }) => { const [u, m] = O(); C(() => { n && m( (c) => (c == null ? void 0 : c.sortField) === e && (c == null ? void 0 : c.sortOrder) === e ? c : { sortField: n, sortOrder: e || void 0 } ); }, [n, e]); const f = a( (c) => { m((o) => { const r = (o == null ? void 0 : o.sortField) === c ? (o == null ? void 0 : o.sortOrder) === b.ASC ? b.DESC : void 0 : b.ASC, i = { sortField: r ? c : void 0, sortOrder: r }; return t && t(i), i; }); }, [t] ); return { sortObject: u, handleSort: f }; }; export { S as a, F as b, x as u };