UNPKG

dgz-ui-shared

Version:

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

2 lines (1 loc) 2.07 kB
"use strict";const u=require("react"),i=require("./lodash-C5w_OPmE.cjs"),m=require("./useColumnsStore-Dst5uD23.cjs"),b=require("./SortOrder-81BrXp3i.cjs"),O=({key:e,columns:n=[]})=>{const{storedColumns:t,setColumns:a}=m.useColumnsStore();u.useEffect(()=>{if(i.lodashExports.isEmpty(i.lodashExports.get(t,e))&&!i.lodashExports.isEmpty(n)){const o={};n.forEach(s=>{i.lodashExports.set(o,s.key,!!s.hidden)}),a({...t,[e]:o})}},[e,n,t,a]);const h=u.useMemo(()=>{const o=i.lodashExports.get(t,e,{});return n.filter(s=>s.type!=="action").map(s=>{const{hidden:l,...c}=s;return{...c,hidden:i.lodashExports.get(o,s.key,!!l)}})},[e,t,n]),C=u.useCallback((o,s)=>{const l=i.lodashExports.get(t,e,{});i.lodashExports.set(l,o.key,s),a({...t,[e]:l})},[e,a,t]),r=u.useCallback(()=>{const o={};n.forEach(s=>{i.lodashExports.set(o,s.key,!!s.hidden)}),a({...t,[e]:o})},[e,a,t,n]);return{formattedColumns:h,handleColumnsChange:C,resetColumns:r}},x=({rows:e=[],defaultSelectedRows:n=[]})=>{const[t,a]=u.useState([]),h=u.useCallback((s,l)=>{a(c=>{const d=e.map(E=>E[s])||[],f=c.filter(E=>!d.includes(E));return l?[...f,...d]:f})},[e]);u.useEffect(()=>{n&&a(s=>i.lodashExports.isEqual(s,n)?s:n)},[n]);const C=u.useCallback((s,l)=>{a(c=>l?[...c,s]:c.filter(d=>d!==s))},[]),r=u.useCallback(s=>t.includes(s),[t]),o=u.useCallback(s=>{const l=e.map(d=>d[s])||[];let c=0;for(const d of l)t.includes(d)&&c++;return l.length===c?!0:c?"indeterminate":!1},[t,e]);return{selectedRows:t,isRowSelected:r,isAllRowsSelected:o,handleSelectAllRows:h,handleSelectRow:C}},g=({sortField:e,sortOrder:n,onSortOrderChange:t})=>{const[a,h]=u.useState();u.useEffect(()=>{e&&h(r=>(r==null?void 0:r.sortField)===n&&(r==null?void 0:r.sortOrder)===n?r:{sortField:e,sortOrder:n||void 0})},[e,n]);const C=u.useCallback(r=>{h(o=>{const l=(o==null?void 0:o.sortField)===r?(o==null?void 0:o.sortOrder)===b.SortOrder.ASC?b.SortOrder.DESC:void 0:b.SortOrder.ASC,c={sortField:l?r:void 0,sortOrder:l};return t&&t(c),c})},[t]);return{sortObject:a,handleSort:C}};exports.useColumns=O;exports.useDataTable=x;exports.useSortable=g;