dgz-ui-shared
Version:
Custom ui library using React.js, Shadcn/ui, TailwindCSS, Typescript, dgz-ui library
2 lines (1 loc) • 2.03 kB
JavaScript
;const u=require("react"),d=require("./MyInput-3qarivly.cjs"),m=require("./useColumnsStore-C3poJ3hB.cjs"),E=require("./SortOrder-81BrXp3i.cjs"),O=({key:e,columns:n=[]})=>{const{storedColumns:t,setColumns:a}=m.useColumnsStore();u.useEffect(()=>{if(d.lodashExports.isEmpty(d.lodashExports.get(t,e))){const o=d.lodashExports.get(t,e,{});n.forEach(s=>{d.lodashExports.set(o,s.key,!!s.hidden)}),a({...t,[e]:o})}},[e,n,t,a]);const h=u.useMemo(()=>{const o=d.lodashExports.get(t,e,{});return n.map(s=>{const{hidden:l,...c}=s;return{...c,hidden:d.lodashExports.get(o,s.key,!!l)}})},[e,t,n]),C=u.useCallback((o,s)=>{const l=d.lodashExports.get(t,e,{});d.lodashExports.set(l,o.key,s),a({...t,[e]:l})},[e,a,t]),r=u.useCallback(()=>{const o={};n.forEach(s=>{d.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 i=e.map(b=>b[s])||[],f=c.filter(b=>!i.includes(b));return l?[...f,...i]:f})},[e]);u.useEffect(()=>{n&&a(s=>d.lodashExports.isEqual(s,n)?s:n)},[n]);const C=u.useCallback((s,l)=>{a(c=>l?[...c,s]:c.filter(i=>i!==s))},[]),r=u.useCallback(s=>t.includes(s),[t]),o=u.useCallback(s=>{const l=e.map(i=>i[s])||[];let c=0;for(const i of l)t.includes(i)&&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)===E.SortOrder.ASC?E.SortOrder.DESC:void 0:E.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;