UNPKG

@shakibdshy/react-tablegrid

Version:

A modern, flexible, headless and advanced table component for React with grid layout

1 lines 1.81 kB
'use strict';function l(i,e,r){return [...i].sort((n,o)=>{let t=String(n[e.accessorKey]),s=String(o[e.accessorKey]);return r==="asc"?t.localeCompare(s):s.localeCompare(t)})}function u(i,e,r){if(!r)return i;let n=r.toLowerCase();return i.filter(o=>e.some(t=>{let s=o[t.accessorKey];return s!=null&&String(s).toLowerCase().includes(n)}))}function c(i,e){return i.map(r=>{let n=e==null?void 0:e.columnSizes[String(r.id)];return n?`${n}px`:r.width?r.width==="1fr"||r.width.toString().includes("fr")||r.width.toString().includes("px")?r.width.toString():`${r.width}px`:"1fr"}).join(" ")}function d(i,e){let r=i.filter(t=>e.left.includes(t.accessorKey)),n=i.filter(t=>e.right.includes(t.accessorKey)),o=i.filter(t=>!e.left.includes(t.accessorKey)&&!e.right.includes(t.accessorKey));return [...r,...o,...n]}function f(i){return i.reduce((e,r)=>{let n=r.group||"ungrouped";return {...e,[n]:[...e[n]||[],r]}},{})}function T(i,e,r=50){let n=String(i.header).length*8,o=Math.max(...e.map(t=>String(t[i.accessorKey]).length*8));return Math.max(r,n,o)}function p(i,e){var n,o;let r=e.reduce((t,s)=>{if(s.width){let a=parseInt(s.width.toString().replace("px",""),10);isNaN(a)||(t[String(s.id)]=a);}return t},{});return {data:i,sortColumn:(o=(n=e[0])==null?void 0:n.id)!=null?o:"",sortDirection:"asc",filterValue:"",visibleColumns:e.map(t=>t.id),pinnedColumns:{left:e.filter(t=>t.pinned==="left").map(t=>t.id),right:e.filter(t=>t.pinned==="right").map(t=>t.id)},columnSizing:{columnSizes:r},columnResizeMode:"onChange"}}function g(i,e){return i.filter(r=>e.includes(r.id))}function h(i,e,r){let n=[...i];e.filterValue&&(n=u(n,r,e.filterValue));let o=r.find(t=>t.id===e.sortColumn);return o&&(n=l(n,o,e.sortDirection)),n}exports.a=l;exports.b=u;exports.c=c;exports.d=d;exports.e=f;exports.f=T;exports.g=p;exports.h=g;exports.i=h;