UNPKG

dgz-ui-shared

Version:

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

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