UNPKG

mantine-datatable

Version:

The lightweight, dependency-free, dark-theme aware table component for your Mantine UI data-rich applications, featuring asynchronous data loading support, pagination, intuitive Gmail-style additive batch rows selection, column sorting, custom cell data r

1 lines 57.5 kB
"use strict";"use client";var pr=Object.create;var Dt=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var br=Object.getOwnPropertyNames;var gr=Object.getPrototypeOf,Tr=Object.prototype.hasOwnProperty;var hr=(e,t)=>{for(var n in t)Dt(e,n,{get:t[n],enumerable:!0})},Rn=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of br(t))!Tr.call(e,a)&&a!==n&&Dt(e,a,{get:()=>t[a],enumerable:!(o=fr(t,a))||o.enumerable});return e};var q=(e,t,n)=>(n=e!=null?pr(gr(e)):{},Rn(t||!e||!e.__esModule?Dt(n,"default",{value:e,enumerable:!0}):n,e)),Cr=e=>Rn(Dt({},"__esModule",{value:!0}),e);var xr={};hr(xr,{DataTable:()=>ra,DataTableDraggableRow:()=>sa,calculateColSpan:()=>it,differenceBy:()=>an,flattenColumns:()=>Xe,getGroupsAtDepth:()=>vt,getMaxGroupDepth:()=>xt,getRecordId:()=>F,getValueAtPath:()=>Rt,hasStringAccessor:()=>rt,humanize:()=>Ie,needsRightBorder:()=>rn,reorderRecords:()=>yr,sanitizeStoredArray:()=>pe,swapRecords:()=>Pr,uniqBy:()=>lt,useDataTableColumns:()=>ln});module.exports=Cr(xr);var Bt=require("@mantine/core"),Wt=require("@mantine/hooks"),Tn=q(require("clsx")),J=require("react");var xn=require("@mantine/core");function V(e,t,n){return e?(0,xn.parseThemeColor)({color:typeof e=="object"?e[n]:e,theme:t}).value:void 0}function vn({theme:e,c:t,backgroundColor:n,borderColor:o,rowBorderColor:a,stripedColor:r,highlightOnHoverColor:l}){return{"--mantine-datatable-color-light":V(t,e,"light"),"--mantine-datatable-color-dark":V(t,e,"dark"),"--mantine-datatable-background-color-light":V(n,e,"light"),"--mantine-datatable-background-color-dark":V(n,e,"dark"),"--mantine-datatable-border-color-light":V(o,e,"light"),"--mantine-datatable-border-color-dark":V(o,e,"dark"),"--mantine-datatable-row-border-color-light":V(a,e,"light"),"--mantine-datatable-row-border-color-dark":V(a,e,"dark"),"--mantine-datatable-striped-color-light":V(r,e,"light"),"--mantine-datatable-striped-color-dark":V(r,e,"dark"),"--mantine-datatable-highlight-on-hover-color-light":V(l,e,"light"),"--mantine-datatable-highlight-on-hover-color-dark":V(l,e,"dark")}}function wt({theme:e,paginationActiveTextColor:t,paginationActiveBackgroundColor:n}){return{"--mantine-datatable-pagination-active-text-color-light":V(t,e,"light"),"--mantine-datatable-pagination-active-text-color-dark":V(t,e,"dark"),"--mantine-datatable-pagination-active-background-color-light":V(n,e,"light"),"--mantine-datatable-pagination-active-background-color-dark":V(n,e,"dark")}}function Mn({theme:e,color:t,backgroundColor:n}){return{"--mantine-datatable-row-color-light":V(t,e,"light"),"--mantine-datatable-row-color-dark":V(t,e,"dark"),"--mantine-datatable-row-background-color-light":V(n,e,"light"),"--mantine-datatable-row-background-color-dark":V(n,e,"dark")}}var en=require("react");var kn=require("@mantine/core"),[En,$e]=(0,kn.createSafeContext)("useDataTableColumnsContext must be used within DataTableColumnProvider");var Ln=require("react/jsx-runtime"),tn=e=>{let{children:t,columnsOrder:n,setColumnsOrder:o,columnsToggle:a,setColumnsToggle:r,columnsPinning:l,setColumnsPinning:s,resetColumnsOrder:c,resetColumnsToggle:m,resetColumnsPinning:i,setColumnWidth:u,setMultipleColumnWidths:p,resetColumnsWidth:T,beginResize:d,endResize:S,pinnedMap:b}=e,[C,E]=(0,en.useState)(""),[D,L]=(0,en.useState)("");return(0,Ln.jsx)(En,{value:{sourceColumn:C,setSourceColumn:E,targetColumn:D,setTargetColumn:L,columnsToggle:a,setColumnsToggle:r,columnsPinning:l,setColumnsPinning:s,swapColumns:()=>{if(!n||!o||!C||!D)return;let f=b.get(C),h=b.get(D);if(f?.logicalSide!==h?.logicalSide)return;let w=n.indexOf(C),M=n.indexOf(D);if(w!==-1&&M!==-1){let g=[...n],[R]=g.splice(w,1);g.splice(M,0,R),o(g)}},resetColumnsOrder:c,resetColumnsToggle:m,resetColumnsPinning:i,setColumnWidth:u,setMultipleColumnWidths:p,resetColumnsWidth:T,beginResize:d,endResize:S},children:t})};var nn=require("react/jsx-runtime");function In(){return(0,nn.jsx)("tr",{className:"mantine-datatable-empty-row",children:(0,nn.jsx)("td",{})})}var St=require("@mantine/core");var be=require("react/jsx-runtime");function Nn(){return(0,be.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,be.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,be.jsx)("path",{d:"M12.983 8.978c3.955 -.182 7.017 -1.446 7.017 -2.978c0 -1.657 -3.582 -3 -8 -3c-1.661 0 -3.204 .19 -4.483 .515m-2.783 1.228c-.471 .382 -.734 .808 -.734 1.257c0 1.22 1.944 2.271 4.734 2.74"}),(0,be.jsx)("path",{d:"M4 6v6c0 1.657 3.582 3 8 3c.986 0 1.93 -.067 2.802 -.19m3.187 -.82c1.251 -.53 2.011 -1.228 2.011 -1.99v-6"}),(0,be.jsx)("path",{d:"M4 12v6c0 1.657 3.582 3 8 3c3.217 0 5.991 -.712 7.261 -1.74m.739 -3.26v-4"}),(0,be.jsx)("path",{d:"M3 3l18 18"})]})}var me=require("react/jsx-runtime");function Hn({icon:e,text:t,active:n,children:o}){return(0,me.jsx)(St.Center,{className:"mantine-datatable-empty-state","data-active":n||void 0,children:o||(0,me.jsxs)(me.Fragment,{children:[e||(0,me.jsx)("div",{className:"mantine-datatable-empty-state-icon",children:(0,me.jsx)(Nn,{})}),(0,me.jsx)(St.Text,{component:"div",size:"sm",c:"dimmed",children:t})]})})}var It=require("@mantine/core"),bo=q(require("clsx"));var io=require("@mantine/core"),so=q(require("clsx"));var on=require("react");var An=require("@mantine/hooks"),st=require("react");function Ie(e){let t=e.replace(/([a-z\d])([A-Z]+)/g,"$1 $2").replace(/\W|_/g," ").trim().toLowerCase();return`${t.charAt(0).toUpperCase()}${t.slice(1)}`}function pe(e,t,n){return!Array.isArray(e)||n&&!e.every(n)?t:e}function rt(e){return typeof e=="object"&&e!==null&&typeof e.accessor=="string"}function an(e,t,n){return e.filter(o=>!t.map(n).includes(n(o)))}function lt(e,t){return e.filter((n,o,a)=>o===a.findIndex(r=>t(n)===t(r)))}function Rt(e,t){return t?t.match(/([^[.\]])+/g).reduce((o,a)=>o&&o[a],e):void 0}function F(e,t){return typeof t=="string"?Rt(e,t):t(e)}function yr(e,t){let n=structuredClone(t),o=n[e.source.index];return e.destination&&(n.splice(e.source.index,1),n.splice(e.destination.index,0,o)),n}function Pr(e,t){let n=structuredClone(t),o=e.destination;if(!o)return n;let a=n[e.source.index],r=n[o.index];return n.splice(o.index,1,a),n.splice(e.source.index,1,r),n}function xt(e){return!e||e.length===0?0:Math.max(...e.map(t=>t.groups&&t.groups.length>0?1+xt(t.groups):1))}function Xe(e){let t=[];for(let n of e)n.columns&&n.columns.length>0?t.push(...n.columns.filter(o=>o!=null)):n.groups&&n.groups.length>0&&t.push(...Xe(n.groups));return t.filter(n=>n!=null)}function it(e,t){return e.columns&&e.columns.length>0?e.columns.filter((n,o)=>n.hidden?!1:t?t[o]!==!1:!0).length:e.groups&&e.groups.length>0?e.groups.reduce((n,o)=>n+it(o,t),0):0}function vt(e,t,n=0){if(n===t)return[...e];let o=[];for(let a of e)a.groups&&a.groups.length>0&&o.push(...vt(a.groups,t,n+1));return o}function rn(e,t,n){return n?!e||t:!1}function On({key:e,columns:t=[],getInitialValueInEffect:n=!0}){let o=(0,st.useMemo)(()=>t.map(i=>({accessor:i.accessor,defaultPinned:i.pinned,pinnable:!!i.pinnable,pinned:i.pinned})),[t]),[a,r]=(0,An.useLocalStorage)({key:e?`${e}-columns-pinning`:"",defaultValue:e?o:void 0,getInitialValueInEffect:n}),l=pe(a,o,rt);function s(i){e&&r(typeof i=="function"?u=>i(u??o):i)}let c=(0,st.useMemo)(()=>{if(!l)return o;let i=[];return l.forEach(u=>{t.find(p=>p.accessor===u.accessor)&&i.push(u)}),t.forEach(u=>{i.find(p=>p.accessor===u.accessor)||i.push({accessor:u.accessor,defaultPinned:u.pinned,pinnable:!!u.pinnable,pinned:u.pinned})}),i},[l,t,o]);(0,st.useEffect)(()=>{e&&l&&JSON.stringify(c)!==JSON.stringify(l)&&r(c)},[e,c,l,r]);let m=()=>{s(o)};return e?{columnsPinning:c,setColumnsPinning:s,resetColumnsPinning:m}:{columnsPinning:o,setColumnsPinning:s,resetColumnsPinning:m}}var zn=require("@mantine/hooks"),ct=require("react");function _n({key:e,columns:t=[],getInitialValueInEffect:n=!0}){let o=(0,ct.useMemo)(()=>t?t.map(i=>i.accessor):[],[t]),[a,r]=(0,zn.useLocalStorage)({key:e?`${e}-columns-order`:"",defaultValue:e?o:void 0,getInitialValueInEffect:n}),l=pe(a,o,i=>typeof i=="string");function s(i){e&&r(i)}let c=(0,ct.useMemo)(()=>{if(!l)return o;let i=[];return l.forEach(u=>{t.find(p=>p.accessor===u)&&i.push(u)}),t.forEach(u=>{i.includes(u.accessor)||i.push(u.accessor)}),i},[l,t,o]);(0,ct.useEffect)(()=>{e&&l&&JSON.stringify(c)!==JSON.stringify(l)&&r(c)},[e,c,l,r]);let m=()=>{s(o)};return e?{columnsOrder:c,setColumnsOrder:s,resetColumnsOrder:m}:{columnsOrder:l,setColumnsOrder:s,resetColumnsOrder:m}}var Wn=require("@mantine/hooks"),_=require("react");function Bn({key:e,columns:t=[],getInitialValueInEffect:n=!0,headerRef:o}){let a=(0,_.useMemo)(()=>t.some(f=>f.resizable&&!f.hidden&&f.accessor!=="__selection__"),[t]),r=(0,_.useCallback)(()=>t.filter(f=>f.accessor!=="__selection__").map(f=>({[f.accessor]:f.width??"auto"})),[t]),[l,s]=(0,Wn.useLocalStorage)({key:e?`${e}-columns-width`:"",defaultValue:e?r():void 0,getInitialValueInEffect:n}),c=pe(l,[],f=>typeof f=="object"&&f!==null),[m,i]=(0,_.useState)(()=>e&&c.length>0?c:r()),[u,p]=(0,_.useState)(!1),T=(0,_.useRef)(!1);(0,_.useEffect)(()=>{e&&(!c||c.length===0||i(c))},[e,c]),(0,_.useEffect)(()=>{i(f=>{let h=new Set(t.filter(y=>y.accessor!=="__selection__").map(y=>String(y.accessor))),w=f.filter(y=>h.has(Object.keys(y)[0])),M=new Set(w.map(y=>Object.keys(y)[0])),g=!1;for(let y of t){if(y.accessor==="__selection__")continue;let v=String(y.accessor);M.has(v)||(w.push({[v]:y.width??"auto"}),g=!0)}return w.length!==f.length||g?w:f})},[t]);let d=(0,_.useCallback)(f=>{let h=f.filter(w=>w.accessor!=="__selection__");h.length!==0&&(T.current=!0,i(w=>w.map(M=>{let g=Object.keys(M)[0],R=h.find(y=>y.accessor===g);return R?{[g]:R.width}:M})))},[]);(0,_.useEffect)(()=>{!e||!T.current||u||(T.current=!1,s(m))},[e,m,u,s]);let S=(0,_.useCallback)((f,h)=>{d([{accessor:f,width:h}])},[d]),b=(0,_.useCallback)(f=>{d(f)},[d]),C=(0,_.useCallback)(()=>{p(!0);let f=o?.current;if(!f)return;let h=Array.from(f.querySelectorAll("th[data-accessor]"));if(h.length===0)return;let w=[];for(let M of h){let g=M.getAttribute("data-accessor");if(!g||g==="__selection__")continue;let R=Math.round(M.getBoundingClientRect().width);w.push({[g]:`${R}px`})}T.current=!0,i(w)},[o]),E=(0,_.useCallback)(()=>{p(!1)},[]),D=(0,_.useCallback)(()=>{let f=r();T.current=!0,i(f),p(!1)},[r]),L=(0,_.useMemo)(()=>{if(!a)return!1;let f=t.filter(h=>h.resizable&&!h.hidden&&h.accessor!=="__selection__");return m.filter(h=>{let w=Object.keys(h)[0];return f.some(M=>M.accessor===w)}).every(h=>{let w=Object.values(h)[0];return w==="auto"||w==="initial"})},[a,t,m]),N=(0,_.useCallback)(()=>{},[]);return{columnsWidth:m,setColumnsWidth:d,setColumnWidth:S,setMultipleColumnWidths:b,resetColumnsWidth:D,hasResizableColumns:a,allResizableWidthsInitial:L,measureAndSetColumnWidths:N,isResizing:u,beginResize:C,endResize:E}}var Mt=require("react");var Vn=require("@mantine/hooks"),ut=require("react");function Gn({key:e,columns:t=[],getInitialValueInEffect:n=!0}){let o=(0,ut.useMemo)(()=>t?.map(i=>({accessor:i.accessor,defaultToggle:i.defaultToggle||!0,toggleable:i.toggleable,toggled:i.defaultToggle===void 0?!0:i.defaultToggle})),[t]),[a,r]=(0,Vn.useLocalStorage)({key:e?`${e}-columns-toggle`:"",defaultValue:e?o:void 0,getInitialValueInEffect:n}),l=pe(a,o,rt);function s(i){e&&r(i)}let c=(0,ut.useMemo)(()=>{if(!l)return o;let i=[];return l.forEach(u=>{t.find(p=>p.accessor===u.accessor)&&i.push(u)}),t.forEach(u=>{i.find(p=>p.accessor===u.accessor)||i.push({accessor:u.accessor,defaultToggle:u.defaultToggle||!0,toggleable:u.toggleable,toggled:u.defaultToggle===void 0?!0:u.defaultToggle})}),i},[l,t,o]);(0,ut.useEffect)(()=>{e&&l&&JSON.stringify(c)!==JSON.stringify(l)&&r(c)},[e,c,l,r]);let m=()=>{s(o)};return e?{columnsToggle:c,setColumnsToggle:s,resetColumnsToggle:m}:{columnsToggle:l,setColumnsToggle:s,resetColumnsToggle:m}}var ln=({key:e,columns:t=[],getInitialValueInEffect:n=!0,headerRef:o,scrollViewportRef:a})=>{let{columnsOrder:r,setColumnsOrder:l,resetColumnsOrder:s}=_n({key:e,columns:t,getInitialValueInEffect:n}),{columnsToggle:c,setColumnsToggle:m,resetColumnsToggle:i}=Gn({key:e,columns:t,getInitialValueInEffect:n}),{columnsPinning:u,setColumnsPinning:p,resetColumnsPinning:T}=On({key:e,columns:t,getInitialValueInEffect:n}),{columnsWidth:d,setColumnsWidth:S,setColumnWidth:b,setMultipleColumnWidths:C,resetColumnsWidth:E,hasResizableColumns:D,allResizableWidthsInitial:L,measureAndSetColumnWidths:N,isResizing:f,beginResize:h,endResize:w}=Bn({key:e,columns:t,getInitialValueInEffect:n,headerRef:o,scrollViewportRef:a}),M=(0,Mt.useMemo)(()=>{let y;r?y=r.map(P=>t.find(A=>A.accessor===P)).map(P=>{let A=u.find(z=>z.accessor===P?.accessor),B=P?.pinnable?A?.pinned:P?.pinned;return{...P,hidden:P?.hidden||!c.find(z=>z.accessor===P?.accessor)?.toggled,pinned:B}}):y=t;let v=y.filter(P=>P.pinned==="left"),H=y.filter(P=>!P.pinned),k=y.filter(P=>P.pinned==="right");return[...v,...H,...k].map(P=>{if(P?.accessor==="__selection__")return P;let A=P?.accessor,B=d.find(se=>A in se);if(!B)return P;let z=B[A];return z===void 0||z==="auto"||z==="initial"?P:{...P,width:z}})},[t,r,c,u,d]),g=(0,Mt.useMemo)(()=>{let y=M.filter(v=>!v.hidden&&v.accessor!=="__selection__");return y.length===0?!1:y.every(v=>typeof v.width=="string"&&/px$/.test(v.width))},[M]),R=(0,Mt.useMemo)(()=>{if(!g)return null;let y=0;for(let v of M){if(v.hidden||v.accessor==="__selection__")continue;let H=v.width;if(typeof H!="string")continue;let k=parseInt(H,10);Number.isNaN(k)||(y+=k)}return y>0?y:null},[g,M]);return{effectiveColumns:M,setColumnsOrder:l,columnsOrder:r,resetColumnsOrder:s,columnsToggle:c,setColumnsToggle:m,resetColumnsToggle:i,columnsPinning:u,setColumnsPinning:p,resetColumnsPinning:T,columnsWidth:d,setColumnsWidth:S,setColumnWidth:b,setMultipleColumnWidths:C,resetColumnsWidth:E,hasResizableColumns:D,allResizableWidthsInitial:L,measureAndSetColumnWidths:N,isResizing:f,isLocked:g,tableWidth:R,beginResize:h,endResize:w}};var Kn=require("@mantine/core"),K=require("react");var kt=require("react"),Ne=typeof window<"u"?kt.useLayoutEffect:kt.useEffect;var Fn=require("react");function sn(e){let t=(0,Fn.useRef)(e);return t.current=e,t}var $n="--mantine-datatable-header-height",Xn="--mantine-datatable-footer-height",Un="--mantine-datatable-selection-column-width",Qn="--mantine-datatable-last-row-border-bottom";function ne(e,t,n){e?.style.setProperty(t,n)}function un(e){let t=e.borderBoxSize?.[0]||e.contentBoxSize?.[0];return t?{width:t.inlineSize,height:t.blockSize}:{width:e.contentRect.width,height:e.contentRect.height}}function cn(e,t,n){if(e){let o=new ResizeObserver(a=>{let r=a[0];r&&t(un(r))});return o.observe(e),()=>{o.disconnect(),n()}}}function jn({scrollCallbacks:e,withRowBorders:t}){let n={root:(0,K.useRef)(null),table:(0,K.useRef)(null),scrollViewport:(0,K.useRef)(null),header:(0,K.useRef)(null),footer:(0,K.useRef)(null),selectionColumnHeader:(0,K.useRef)(null)},{root:o,table:a,scrollViewport:r,header:l,footer:s,selectionColumnHeader:c}=n,m=sn({withRowBorders:t}),i=sn(e),u=(0,K.useRef)(()=>{}),p=(0,K.useRef)(()=>{}),T=(0,K.useCallback)(d=>{i.current.onScroll?.(d),u.current()},[]);return(0,K.useEffect)(()=>cn(l.current,d=>{ne(o.current,$n,`${d.height}px`)},()=>ne(o.current,$n,"0")),[l.current]),(0,K.useEffect)(()=>cn(s.current,d=>{ne(o.current,Xn,`${d.height}px`)},()=>ne(o.current,Xn,"0")),[s.current]),(0,K.useEffect)(()=>cn(c.current,d=>{ne(o.current,Un,`${d.width}px`)},()=>ne(o.current,Un,"0")),[c.current]),Ne(()=>{if(typeof window>"u")return;let d={top:!0,bottom:!0,left:!0,right:!0},S={width:0,height:0},b={width:0,height:0};function C(f,h){let w=d[f];return d[f]=h,ne(o.current,`--mantine-datatable-${f}-shadow-opacity`,h?"0":"1"),w}function E(){let f=S.height-b.height,h=f<0;ne(o.current,"--mantine-datatable-footer-position",h?"relative":"sticky"),ne(o.current,"--mantine-datatable-footer-bottom",h?`${f}px`:"0")}function D(){m.current.withRowBorders&&S.height<b.height?ne(o.current,Qn,`${(0,Kn.rem)("1px")} solid var(--mantine-datatable-border-color)`):ne(o.current,Qn,"unset")}p.current=D;function L(){let f=i.current,h=r.current,w=h?.scrollTop??0,M=h?.scrollLeft??0,g=w===0,R=S.height-w-b.height<1,y=C("top",g),v=C("bottom",R);g&&g!==y&&f.onScrollToTop?.(),R&&R!==v&&f.onScrollToBottom?.();let H=h?getComputedStyle(h).direction==="rtl":!1,k=(h?.scrollWidth??0)-b.width,x,P;if(H){let z=Math.abs(M);P=z<1,x=k-z<1}else x=M<1,P=S.width-M-b.width<1;let A=C("left",x),B=C("right",P);x&&x!==A&&f.onScrollToLeft?.(),P&&P!==B&&f.onScrollToRight?.()}u.current=L;let N=new ResizeObserver(f=>{for(let h of f)switch(h.target.tagName){case"TABLE":{S=un(h);break}case"DIV":{b=un(h);break}}L(),E(),D()});return N.observe(a.current),N.observe(r.current),()=>{N.disconnect()}},[]),Ne(()=>{p.current()},[t]),{refs:n,onScroll:T}}var Ue=require("react");function Jn({columns:e,theadRef:t,tbodyRef:n,selectionColumnHeaderRef:o,selectionVisible:a,pinFirstColumn:r,pinLastColumn:l}){let[s,c]=(0,Ue.useState)(new Map),m=(0,Ue.useCallback)(()=>{if(!r&&!l&&!e.some(g=>g.pinned))return;let p=t.current??n.current;if(!p)return;let T=!!t.current,d=T?p.querySelector("tr:last-of-type"):p.querySelector("tr:first-of-type");if(!d)return;let S=getComputedStyle(p).direction==="rtl",b=new Map;if(T)d.querySelectorAll("th[data-accessor]").forEach(g=>{let R=g.dataset.accessor;if(R){let y=g.getBoundingClientRect().width;y>0&&b.set(R,y)}});else{let g=e.filter(y=>!y.hidden);d.querySelectorAll("td:not(.mantine-datatable-row-selector-cell):not(.mantine-datatable-row-expansion-cell)").forEach((y,v)=>{if(g[v]){let H=y.getBoundingClientRect().width;H>0&&b.set(String(g[v].accessor),H)}})}let C=0;if(a){let g=o.current??p.querySelector(T?".mantine-datatable-header-selector-cell":".mantine-datatable-row-selector-cell");g&&(C=g.getBoundingClientRect().width)}let E=e.filter(g=>!g.hidden&&b.has(String(g.accessor))).map(g=>String(g.accessor)),D=new Map;for(let g of e){let R=String(g.accessor);E.includes(R)&&(g.pinned?D.set(R,g.pinned):r&&R===E[0]&&!D.has(R)?D.set(R,"left"):l&&R===E[E.length-1]&&!D.has(R)&&D.set(R,"right"))}let L=E.filter(g=>D.get(g)==="left"),N=E.filter(g=>D.get(g)==="right"),f=new Map,h=C;L.forEach((g,R)=>{f.set(g,{position:S?"right":"left",logicalSide:"left",offset:h,isBoundary:R===L.length-1}),h+=b.get(g)||0});let w=-.4,M=[...N].reverse();M.forEach((g,R)=>{f.set(g,{position:S?"left":"right",logicalSide:"right",offset:w,isBoundary:R===M.length-1}),w+=b.get(g)||0}),c(g=>{if(g.size!==f.size)return f;for(let[R,y]of f){let v=g.get(R);if(!v||v.position!==y.position||v.logicalSide!==y.logicalSide||v.offset!==y.offset||v.isBoundary!==y.isBoundary)return f}return g})},[e,a,t,n,o,r,l]);(0,Ue.useEffect)(()=>{if(!r&&!l&&!e.some(b=>b.pinned))return;let p=t.current??n.current;if(!p)return;let T=!!t.current,d=T?p.querySelector("tr:last-of-type"):p.querySelector("tr:first-of-type");if(!d)return;let S=new ResizeObserver(m);return d.querySelectorAll(T?"th":"td").forEach(b=>{S.observe(b)}),()=>S.disconnect()},[t,n,m]),Ne(m,[m]);let i=[...s.values()].some(p=>p.logicalSide==="left"),u=[...s.values()].some(p=>p.logicalSide==="right");return{pinnedMap:s,hasLeftPinned:i,hasRightPinned:u}}var Et=require("react");function qn(e){let[t,n]=(0,Et.useState)(null),o=e?.join(":")||"";return(0,Et.useEffect)(()=>{n(null)},[o]),{lastSelectionChangeIndex:t,setLastSelectionChangeIndex:n}}var Qe=require("react");function Dr(e,t){let n=()=>{t(e.map(a=>a.matches))},o=e.map(a=>{try{return a.addEventListener("change",n),()=>a.removeEventListener("change",n)}catch{return a.addListener(n),()=>a.removeListener(n)}});return()=>{o.forEach(a=>{a()})}}function wr(e,t){return t||(typeof window<"u"&&"matchMedia"in window?e.map(n=>window.matchMedia(n).matches):e.map(()=>!1))}function Zn(e,t,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){let[o,a]=(0,Qe.useState)(n?t:wr(e,t)),r=(0,Qe.useRef)(null);return(0,Qe.useEffect)(()=>{if("matchMedia"in window)return r.current=e.map(l=>window.matchMedia(l)),a(r.current.map(l=>l.matches)),Dr(r.current,l=>{a(l)})},[e]),o}var Yn=require("@mantine/core"),dn=require("react");function eo(e){let t=(0,Yn.useMantineTheme)(),n=(0,dn.useMemo)(()=>e.map(a=>(typeof a=="function"?a(t):a)??""),[e,t]),o=(0,dn.useMemo)(()=>e.map(()=>!0),[e]);return Zn(n,o)}var to=require("@mantine/core"),no=require("@mantine/hooks");function ge(e){let t=(0,to.useMantineTheme)(),n=typeof e=="function"?e(t):e;return(0,no.useMediaQuery)(n||"",!0)}var oo=require("react");function ao({rowExpansion:e,records:t,idAccessor:n}){let o=[];if(e&&t){let{trigger:s,allowMultiple:c,initiallyExpanded:m}=e;t&&s==="always"?o=t.map(i=>F(i,n)):m&&(o=t.filter((i,u)=>m({record:i,index:u})).map(i=>F(i,n)),c||(o=[o[0]]))}let a,r,l=(0,oo.useState)(o);if(e){let{expandable:s,trigger:c,allowMultiple:m,collapseProps:i,content:u}=e;e.expanded?{recordIds:a,onRecordIdsChange:r}=e.expanded:[a,r]=l;let p=T=>r?.(a.filter(d=>d!==F(T,n)));return{expandOnClick:c!=="always"&&c!=="never",isRowExpanded:T=>c==="always"?!0:a.includes(F(T,n)),isExpandable:({record:T,index:d})=>s?s({record:T,index:d}):!0,expandRow:T=>{let d=F(T,n);r?.(m?[...a,d]:[d])},collapseRow:p,collapseProps:i,content:({record:T,index:d})=>()=>u({record:T,index:d,collapse:()=>p(T)})}}}var mn=require("@mantine/hooks"),dt=require("react");function ro(e,t){let[n,o]=(0,dt.useState)(e),[a,r]=(0,dt.useState)(e),l=(0,mn.useTimeout)(()=>o(!0),0),s=(0,mn.useTimeout)(()=>r(!1),t||200);return(0,dt.useEffect)(()=>{e?(s.clear(),r(!0),l.start()):(l.clear(),o(!1),s.start())},[l,s,e]),{expanded:n,visible:a}}var Ke="mantine-datatable-nowrap",je="mantine-datatable-ellipsis",re="mantine-datatable-pointer-cursor",Lt="mantine-datatable-context-menu-cursor",lo="mantine-datatable-text-selection-disabled",Te="mantine-datatable-text-align-left",he="mantine-datatable-text-align-center",Ce="mantine-datatable-text-align-right";var uo=require("react/jsx-runtime");function co({className:e,style:t,pinnedInfo:n,visibleMediaQuery:o,title:a,noWrap:r,ellipsis:l,textAlign:s,width:c}){return ge(o)?(0,uo.jsx)(io.TableTh,{"data-pinned":n?.position,"data-pinned-shadow":n?.isBoundary?n.position:void 0,className:(0,so.default)({[Ke]:r||l,[je]:l,[Te]:s==="left",[he]:s==="center",[Ce]:s==="right"},e),style:[{width:c,minWidth:c,maxWidth:c},t,n&&{position:"sticky",[n.position]:n.offset,overflow:"visible"}],children:a}):null}var mo=require("@mantine/core"),fo=require("react/jsx-runtime");function po({shadowVisible:e}){return(0,fo.jsx)(mo.TableTh,{className:"mantine-datatable-footer-selector-placeholder-cell","data-shadow-visible":e||void 0})}var Je=require("react/jsx-runtime");function go({className:e,style:t,columns:n,defaultColumnProps:o,pinnedMap:a,selectionVisible:r,selectorCellShadowVisible:l,ref:s}){return(0,Je.jsx)(It.TableTfoot,{ref:s,className:(0,bo.default)("mantine-datatable-footer",e),style:t,children:(0,Je.jsxs)(It.TableTr,{children:[r&&(0,Je.jsx)(po,{shadowVisible:l}),n.map(({hidden:c,...m})=>{if(c)return null;let{accessor:i,visibleMediaQuery:u,textAlign:p,width:T,footer:d,footerClassName:S,footerStyle:b,noWrap:C,ellipsis:E}={...o,...m};return(0,Je.jsx)(co,{pinnedInfo:a.get(String(i)),className:S,style:b,visibleMediaQuery:u,textAlign:p,width:T,title:d,noWrap:C,ellipsis:E},i)})]})})}var $=require("@mantine/core"),_o=q(require("clsx")),Wo=require("react");var To=require("@mantine/core"),ho=q(require("clsx")),mt=require("react");var yo=require("react/jsx-runtime");function Co({group:{id:e,columns:t,groups:n,title:o,textAlign:a,className:r,style:l},pinnedInfo:s,maxDepth:c,currentDepth:m,previousGroups:i,isLastGroup:u,withColumnBorders:p=!1,totalTableColumns:T}){let d=(0,mt.useMemo)(()=>t&&t.length>0?t:n&&n.length>0?Xe([{id:e,columns:t,groups:n}]):[],[t,n,e]),S=(0,mt.useMemo)(()=>d.map(({visibleMediaQuery:h})=>h),[d]),b=eo(S),C=(0,mt.useMemo)(()=>it({id:e,columns:t,groups:n},b),[e,t,n,b]),E=(0,mt.useMemo)(()=>i.reduce((h,w)=>h+it(w,b),0),[i,b]),L=n&&n.length>0?1:c-m,N=E+C<T,f=rn(u,N,p);return C>0?(0,yo.jsx)(To.TableTh,{colSpan:C,rowSpan:L>1?L:void 0,"data-pinned":s?.position,"data-pinned-shadow":s?.isBoundary?s.position:void 0,className:(0,ho.default)("mantine-datatable-column-group-header-cell",{[Te]:a==="left",[he]:a==="center",[Ce]:a==="right","mantine-datatable-column-group-header-cell--needs-border":f},r),style:[l,s&&{position:"sticky",[s.position]:s.offset,overflow:"visible"}],children:o??Ie(e)}):null}var U=require("@mantine/core"),bt=q(require("clsx")),At=require("react");var ye=require("@mantine/core"),Nt=require("@mantine/hooks");var pt=require("react/jsx-runtime");function Po(){return(0,pt.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,pt.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,pt.jsx)("path",{d:"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z"})]})}var ft=require("react/jsx-runtime");function Do(){return(0,ft.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ft.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,ft.jsx)("path",{d:"M20 3h-16a1 1 0 0 0 -1 1v2.227l.008 .223a3 3 0 0 0 .772 1.795l4.22 4.641v8.114a1 1 0 0 0 1.316 .949l6 -2l.108 -.043a1 1 0 0 0 .576 -.906v-6.586l4.121 -4.12a3 3 0 0 0 .879 -2.123v-2.171a1 1 0 0 0 -1 -1z",strokeWidth:"0",fill:"currentColor"})]})}var He=require("react/jsx-runtime");function wo({children:e,isActive:t,filterPopoverProps:n,filterPopoverDisableClickOutside:o}){let[a,{close:r,toggle:l}]=(0,Nt.useDisclosure)(!1),s=t?Do:Po,c=(0,Nt.useClickOutside)(r);return o&&(c=void 0),(0,He.jsxs)(ye.Popover,{withArrow:!0,shadow:"md",trapFocus:!0,...n,opened:a,onClose:r,onDismiss:r,children:[(0,He.jsx)(ye.PopoverTarget,{children:(0,He.jsx)(ye.ActionIcon,{className:"mantine-datatable-header-cell-filter-action-icon","data-active":t||void 0,size:"sm",variant:"default",onClick:m=>{m.preventDefault(),l()},onKeyDown:m=>m.stopPropagation(),children:(0,He.jsx)(s,{})})}),(0,He.jsx)(ye.PopoverDropdown,{ref:c,onClick:m=>m.stopPropagation(),onKeyDown:m=>m.stopPropagation(),children:typeof e=="function"?e({close:r}):e})]})}var Y=require("@mantine/core"),fe=require("react");var Ae=require("react/jsx-runtime");function So(){return(0,Ae.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,Ae.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,Ae.jsx)("path",{d:"M5 12l14 0"}),(0,Ae.jsx)("path",{d:"M5 12l6 6"}),(0,Ae.jsx)("path",{d:"M5 12l6 -6"})]})}var Oe=require("react/jsx-runtime");function Ro(){return(0,Oe.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,Oe.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,Oe.jsx)("path",{d:"M5 12l14 0"}),(0,Oe.jsx)("path",{d:"M19 12l-6 6"}),(0,Oe.jsx)("path",{d:"M19 12l-6 -6"})]})}var ze=require("react/jsx-runtime");function xo(){return(0,ze.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ze.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,ze.jsx)("path",{d:"M9 4v6l-2 4v2h10v-2l-2-4v-6"}),(0,ze.jsx)("path",{d:"M12 16v5"}),(0,ze.jsx)("path",{d:"M8 4h8"})]})}var qe=require("react/jsx-runtime");function Ht(){return(0,qe.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,qe.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,qe.jsx)("path",{d:"M18 6l-12 12"}),(0,qe.jsx)("path",{d:"M6 6l12 12"})]})}var j=require("react/jsx-runtime");function vo({currentPinned:e,onPinChange:t}){let[n,o]=(0,fe.useState)(!1),a=(0,fe.useRef)(null),[r,l]=(0,fe.useState)(!1),s=(0,fe.useCallback)(()=>{if(a.current){let p=getComputedStyle(a.current).direction;l(p==="rtl")}},[]);Ne(()=>{s()},[s]),(0,fe.useEffect)(()=>{n&&s()},[n,s]);let c=r?"right":"left",m=r?"left":"right",i=e===c,u=e===m;return(0,j.jsxs)(Y.Popover,{opened:n,onChange:o,position:"bottom",withArrow:!0,shadow:"sm",children:[(0,j.jsx)(Y.Popover.Target,{children:(0,j.jsx)(Y.Center,{ref:a,className:"mantine-datatable-header-cell-pinnable-icon",role:"button","aria-label":"Pin column",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:(0,j.jsx)(Y.ActionIcon,{size:"xs",variant:"light",onClick:p=>p.stopPropagation(),children:(0,j.jsx)(xo,{})})})}),(0,j.jsx)(Y.Popover.Dropdown,{onClick:p=>p.stopPropagation(),onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),className:"mantine-datatable-pinnable-dropdown",children:(0,j.jsxs)(Y.Group,{gap:4,children:[(0,j.jsx)(Y.ActionIcon,{size:"sm",variant:i?"filled":"light",onClick:()=>t(i?void 0:c),"aria-label":"Pin left",children:(0,j.jsx)(So,{})}),(0,j.jsx)(Y.ActionIcon,{size:"sm",variant:u?"filled":"light",onClick:()=>t(u?void 0:m),"aria-label":"Pin right",children:(0,j.jsx)(Ro,{})}),e&&(0,j.jsx)(Y.ActionIcon,{size:"sm",variant:"light",color:"red",onClick:()=>t(void 0),"aria-label":"Unpin",children:(0,j.jsx)(Ht,{})})]})})]})}var ko=require("@mantine/core"),Pe=require("react");var Lo=require("react/jsx-runtime"),Mo=50,Eo=e=>{let{accessor:t,columnRef:n}=e,[o,a]=(0,Pe.useState)(!1),r=(0,Pe.useRef)(0),l=(0,Pe.useRef)({current:0,next:0}),{dir:s}=(0,ko.useDirection)(),c=s==="rtl",{setMultipleColumnWidths:m,beginResize:i,endResize:u}=$e(),p=(0,Pe.useCallback)(d=>{if(d.preventDefault(),d.stopPropagation(),!n.current)return;let S=n.current,b=S.nextElementSibling;for(;b;){let f=b.getAttribute("data-accessor");if(f&&f!=="__selection__")break;b=b.nextElementSibling}if(!b)return;let C=b.getAttribute("data-accessor");if(!C)return;let E=S.offsetWidth,D=b.offsetWidth;i(),a(!0),r.current=d.clientX,l.current={current:E,next:D};let L=f=>{let h=f.clientX-r.current;c&&(h=-h);let w=l.current.current-Mo,M=l.current.next-Mo,g=Math.max(-w,Math.min(h,M)),R=l.current.current+g,y=l.current.next-g;m([{accessor:t,width:`${R}px`},{accessor:C,width:`${y}px`}])},N=()=>{a(!1),document.body.style.cursor="initial",document.body.style.userSelect="initial",u(),document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",N)};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",L),document.addEventListener("mouseup",N)},[t,n,c,m,i,u]),T=(0,Pe.useCallback)(()=>{if(!n.current)return;let S=n.current.nextElementSibling,b=[{accessor:t,width:"auto"}];if(S){let C=S.getAttribute("data-accessor");C&&C!=="__selection__"&&b.push({accessor:C,width:"auto"})}m(b)},[t,n,m]);return(0,Lo.jsx)("div",{className:"mantine-datatable-header-resizable-handle",style:{cursor:o?"col-resize":void 0},onMouseDown:p,onDoubleClick:T,onClick:d=>d.stopPropagation(),title:"Drag to resize column, double-click to reset"})};var _e=require("react/jsx-runtime");function Io(){return(0,_e.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,_e.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,_e.jsx)("path",{d:"M8 7l4 -4l4 4"}),(0,_e.jsx)("path",{d:"M8 17l4 4l4 -4"}),(0,_e.jsx)("path",{d:"M12 3l0 18"})]})}var We=require("react/jsx-runtime");function No(){return(0,We.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,We.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,We.jsx)("path",{d:"M12 5l0 14"}),(0,We.jsx)("path",{d:"M16 9l-4 -4"}),(0,We.jsx)("path",{d:"M8 9l4 -4"})]})}var le=require("react/jsx-runtime");function Ho(){return(0,le.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,le.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,le.jsx)("path",{d:"M9 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"}),(0,le.jsx)("path",{d:"M9 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"}),(0,le.jsx)("path",{d:"M9 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"}),(0,le.jsx)("path",{d:"M15 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"}),(0,le.jsx)("path",{d:"M15 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"}),(0,le.jsx)("path",{d:"M15 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"})]})}var G=require("react/jsx-runtime");function Ao({className:e,style:t,pinnedInfo:n,accessor:o,visibleMediaQuery:a,title:r,sortable:l,draggable:s,toggleable:c,pinnable:m,resizable:i,sortIcons:u,textAlign:p,width:T,sortStatus:d,onSortStatusChange:S,filter:b,filterPopoverProps:C,filterPopoverDisableClickOutside:E,filtering:D,sortKey:L}){let{setSourceColumn:N,setTargetColumn:f,swapColumns:h,columnsToggle:w,setColumnsToggle:M,columnsPinning:g,setColumnsPinning:R}=$e(),[y,v]=(0,At.useState)(!1),H=(0,At.useRef)(null),x=g?.find(O=>O.accessor===o)?.pinned;if(!ge(a))return null;let P=r??Ie(o),A=typeof P=="string"?P:void 0,B=l&&S?O=>{O?.defaultPrevented||S({sortKey:L,columnAccessor:o,direction:d?.columnAccessor===o?d.direction==="asc"?"desc":"asc":d?.direction??"asc"})}:void 0,z=O=>{O.stopPropagation(),N(o),v(!1)},se=O=>{O.preventDefault(),f(o),v(!0)},we=()=>{f(o),v(!1),h()},Se=()=>{v(!0)},Re=()=>{v(!1)},xe=O=>{O.stopPropagation(),M(w.map(te=>te.accessor===o?{...te,toggled:!1}:te))},ve=O=>{R(te=>te.map(ce=>ce.accessor===o?{...ce,pinned:O}:ce))};return(0,G.jsxs)(U.TableTh,{"data-accessor":o,"data-pinned":n?.position,"data-pinned-shadow":n?.isBoundary?n.position:void 0,className:(0,bt.default)({"mantine-datatable-header-cell-sortable":l,"mantine-datatable-header-cell-toggleable":c,"mantine-datatable-header-cell-pinnable":m,"mantine-datatable-header-cell-resizable":i},e),style:[{width:T,...i?{}:{minWidth:T,maxWidth:T}},t,n&&{position:"sticky",[n.position]:n.offset,overflow:"visible"}],role:l?"button":void 0,tabIndex:l?0:void 0,onClick:B,onKeyDown:O=>O.key==="Enter"&&B?.(),ref:H,children:[(0,G.jsxs)(U.Group,{className:"mantine-datatable-header-cell-sortable-group",justify:"space-between",wrap:"nowrap",children:[(0,G.jsxs)(U.Flex,{align:"center",w:"100%",className:(0,bt.default)({"mantine-datatable-header-cell-draggable":s,"mantine-datatable-header-cell-drag-over":y}),draggable:s,onDragStart:s?z:void 0,onDragEnter:s?Se:void 0,onDragOver:s?se:void 0,onDrop:s?we:void 0,onDragLeave:s?Re:void 0,children:[s?(0,G.jsx)(U.Center,{role:"img","aria-label":"Drag column",children:(0,G.jsx)(U.ActionIcon,{className:"mantine-datatable-header-cell-draggable-action-icon",variant:"subtle",size:"xs",onClick:O=>{O.stopPropagation()},children:(0,G.jsx)(Ho,{})})}):null,(0,G.jsx)(U.Box,{className:(0,bt.default)("mantine-datatable-header-cell-sortable-text",{[Te]:p==="left",[he]:p==="center",[Ce]:p==="right"},Ke,je),title:A,children:P})]}),m?(0,G.jsx)(vo,{currentPinned:x,onPinChange:ve}):null,c?(0,G.jsx)(U.Center,{className:"mantine-datatable-header-cell-toggleable-icon",role:"img","aria-label":"Toggle column",children:(0,G.jsx)(U.ActionIcon,{size:"xs",variant:"light",onClick:xe,children:(0,G.jsx)(Ht,{})})}):null,l||d?.columnAccessor===o?d?.columnAccessor===o?(0,G.jsx)(U.Center,{className:(0,bt.default)("mantine-datatable-header-cell-sortable-icon",{"mantine-datatable-header-cell-sortable-icon-reversed":d.direction==="desc"}),role:"img","aria-label":`Sorted ${d.direction==="desc"?"descending":"ascending"}`,children:u?.sorted||(0,G.jsx)(No,{})}):(0,G.jsx)(U.Center,{className:"mantine-datatable-header-cell-sortable-unsorted-icon",role:"img","aria-label":"Not sorted",children:u?.unsorted||(0,G.jsx)(Io,{})}):null,b?(0,G.jsx)(wo,{filterPopoverProps:C,isActive:!!D,filterPopoverDisableClickOutside:E,children:b}):null]}),i&&o!=="__selection__"?(0,G.jsx)(Eo,{accessor:o,columnRef:H}):null]})}var Ot=require("@mantine/core"),Oo=q(require("clsx"));var pn=require("react/jsx-runtime");function zo({className:e,style:t,trigger:n,shadowVisible:o,checked:a,indeterminate:r,checkboxProps:l,onChange:s,rowSpan:c,ref:m}){let i=!l.disabled;return(0,pn.jsx)(Ot.TableTh,{ref:m,className:(0,Oo.default)("mantine-datatable-header-selector-cell",{[re]:n==="cell"&&i},e),style:t,rowSpan:c,"data-shadow-visible":o||void 0,"data-accessor":"__selection__",onClick:n==="cell"&&i?s:void 0,children:(0,pn.jsx)(Ot.Checkbox,{classNames:i?{input:re}:void 0,checked:a,indeterminate:r,onChange:s,...l,disabled:!(s||l.onChange)||l.disabled})})}var Z=require("react/jsx-runtime");function Sr(e,t){let o=(e.columns??[]).filter(u=>!u.hidden).map(u=>String(u.accessor)),a=o.map(u=>t.get(u)).filter(Boolean);if(a.length===0||a.length!==o.length)return;let r=new Set(a.map(u=>u.logicalSide));if(r.size>1)return;let l=[...r][0],s=l==="left"?o[0]:o[o.length-1],c=t.get(s);if(!c)return;let m=l==="left"?o[o.length-1]:o[0],i=t.get(m);return{...c,isBoundary:i?.isBoundary??!1}}function Bo({selectionColumnHeaderRef:e,className:t,style:n,sortStatus:o,sortIcons:a,onSortStatusChange:r,columns:l,defaultColumnProps:s,groups:c,pinnedMap:m,selectionTrigger:i,selectionVisible:u,selectionChecked:p,selectionIndeterminate:T,onSelectionChange:d,selectionCheckboxProps:S,selectorCellShadowVisible:b,selectionColumnClassName:C,selectionColumnStyle:E,withColumnBorders:D=!1,ref:L}){let N=c?xt(c):0,f=N>0?N+1:1,h=u?(0,Z.jsx)(zo,{ref:e,className:C,style:E,trigger:i,shadowVisible:b,checked:p,indeterminate:T,checkboxProps:S,onChange:d,rowSpan:c?f:void 0}):null,{columnsToggle:w,setColumnsToggle:M}=$e(),[g,R]=(0,Wo.useState)(!1),y=l.some(k=>k.toggleable),v=y?Object.fromEntries(l.map(({accessor:k,title:x})=>[k,x??Ie(String(k))])):void 0,H=(0,Z.jsxs)($.TableThead,{className:(0,_o.default)("mantine-datatable-header",t),style:n,ref:L,onContextMenu:y?k=>{k.preventDefault(),R(x=>!x)}:void 0,children:[c&&Array.from({length:N},(k,x)=>{let P=vt(c,x);return(0,Z.jsxs)($.TableTr,{children:[x===0&&h,P.map((A,B)=>(0,Z.jsx)(Co,{group:A,pinnedInfo:Sr(A,m),maxDepth:N,currentDepth:x,previousGroups:P.slice(0,B),isLastGroup:B===P.length-1,withColumnBorders:D,totalTableColumns:l.length},A.id))]},`group-depth-${x}`)}),(0,Z.jsxs)($.TableTr,{children:[!c&&h,l.map(({hidden:k,...x},P)=>{if(k)return null;let{accessor:A,visibleMediaQuery:B,textAlign:z,width:se,title:we,sortable:Se,draggable:Re,toggleable:xe,pinnable:ve,resizable:O,titleClassName:te,titleStyle:ce,filter:ue,filterPopoverProps:Gt,filterPopoverDisableClickOutside:Ft,filtering:$t,sortKey:Xt}={...s,...x};return(0,Z.jsx)(Ao,{accessor:A,pinnedInfo:m.get(String(A)),className:te,style:ce,visibleMediaQuery:B,textAlign:z,width:se,title:we,sortable:Se,draggable:Re,toggleable:xe,pinnable:ve,resizable:O&&P<l.length-1,sortStatus:o,sortIcons:a,sortKey:Xt,onSortStatusChange:r,filter:ue,filterPopoverProps:Gt,filterPopoverDisableClickOutside:Ft,filtering:$t},A)})]})]});return y?(0,Z.jsxs)($.Popover,{position:"bottom",withArrow:!0,shadow:"md",opened:g,onChange:R,children:[(0,Z.jsx)($.PopoverTarget,{children:H}),(0,Z.jsx)($.PopoverDropdown,{children:(0,Z.jsx)($.Stack,{children:w.filter(k=>k.toggleable).map(k=>(0,Z.jsx)($.Group,{children:(0,Z.jsx)($.Checkbox,{classNames:{label:"mantine-datatable-header-column-toggle-checkbox-label"},size:"xs",label:v[k.accessor],checked:k.toggled,onChange:x=>{M(w.map(P=>P.accessor===k.accessor?{...P,toggled:x.currentTarget.checked}:P))}})},k.accessor))})})]}):H}var zt=require("@mantine/core"),Vo=q(require("clsx")),fn=require("react/jsx-runtime");function Go({fetching:e,customContent:t,backgroundBlur:n,size:o,type:a,color:r}){return(0,fn.jsx)(zt.Center,{className:(0,Vo.default)("mantine-datatable-loader",{"mantine-datatable-loader-fetching":e}),style:[{backdropFilter:n?`blur(${n}px)`:void 0}],children:e&&(t||(0,fn.jsx)(zt.Loader,{size:o,type:a,color:r}))})}var De=require("@mantine/core"),bn=q(require("clsx"));var W=require("@mantine/core"),Xo=q(require("clsx"));var Ze=require("react/jsx-runtime");function Fo(){return(0,Ze.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,Ze.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,Ze.jsx)("path",{d:"M8 9l4 -4l4 4"}),(0,Ze.jsx)("path",{d:"M16 15l-4 4l-4 -4"})]})}var oe=require("react/jsx-runtime"),$o={xs:(0,W.rem)(22),sm:(0,W.rem)(26),md:(0,W.rem)(32),lg:(0,W.rem)(38),xl:(0,W.rem)(44)};function Uo({size:e,label:t,values:n,value:o,activeTextColor:a,activeBackgroundColor:r,onChange:l}){return(0,oe.jsxs)(W.Group,{gap:"xs",children:[(0,oe.jsx)(W.Text,{component:"div",size:e,children:t}),(0,oe.jsxs)(W.Menu,{withinPortal:!0,withArrow:!0,offset:2,classNames:{arrow:"mantine-datatable-page-size-selector-menu-arrow"},children:[(0,oe.jsx)(W.MenuTarget,{children:(0,oe.jsx)(W.Button,{size:e,variant:"default",classNames:{section:"mantine-datatable-page-size-selector-button-icon"},rightSection:(0,oe.jsx)(Fo,{}),style:[{fontWeight:"normal"},s=>({height:$o[e],paddingLeft:s.spacing[e],paddingRight:s.spacing[e]})],children:o})}),(0,oe.jsx)(W.MenuDropdown,{children:n.map(s=>{let c=s===o;return(0,oe.jsx)(W.MenuItem,{className:(0,Xo.default)({"mantine-datatable-page-size-selector-active":c}),style:[{height:$o[e]},c&&(a||r)?m=>wt({theme:m,paginationActiveTextColor:a,paginationActiveBackgroundColor:r}):void 0],disabled:c,onClick:()=>l(s),children:(0,oe.jsx)(W.Text,{component:"div",size:e,children:s})},s)})})]})]})}var ee=require("react/jsx-runtime");function Qo({className:e,style:t,fetching:n,page:o,onPageChange:a,paginationWithEdges:r,paginationWithControls:l,paginationActiveTextColor:s,paginationActiveBackgroundColor:c,paginationSize:m,loadingText:i,noRecordsText:u,paginationText:p,totalRecords:T,recordsPerPage:d,onRecordsPerPageChange:S,recordsPerPageLabel:b,recordsPerPageOptions:C,recordsLength:E,horizontalSpacing:D,paginationWrapBreakpoint:L,getPaginationControlProps:N,getPaginationItemProps:f,renderPagination:h}){let w;if(T){let x=(o-1)*d+1,P=x+(E||0)-1;w=p({from:x,to:P,totalRecords:T})}else w=n?i:u;let M=T&&d?Math.max(1,Math.ceil(T/d)):1,g=T?(o-1)*(d??0)+1:void 0,R=T?(g??1)+(E??0)-1:void 0,v=!ge(({breakpoints:x})=>`(min-width: ${typeof L=="number"?`${(0,De.rem)(L)}rem`:x[L]||L})`),H={Text:x=>(0,ee.jsx)(De.Text,{component:"div",className:"mantine-datatable-pagination-text",size:m,...x,children:w}),PageSizeSelector:x=>C?(0,ee.jsx)(Uo,{activeTextColor:s,activeBackgroundColor:c,size:m,label:b,values:C,value:d,onChange:S,...x}):null,Pagination:x=>(0,ee.jsx)(De.Pagination,{classNames:{root:(0,bn.default)("mantine-datatable-pagination-pages",{"mantine-datatable-pagination-pages-fetching":n||!E}),control:"mantine-datatable-pagination-pages-control"},style:s||c?P=>wt({theme:P,paginationActiveTextColor:s,paginationActiveBackgroundColor:c}):void 0,withEdges:r,withControls:l,value:o,onChange:a,size:m,total:M,getControlProps:N,getItemProps:f,...x})},k={state:{paginationSize:m,page:o,totalPages:M,totalRecords:T,recordsPerPage:d,recordsLength:E,fetching:n,from:g,to:R,isWrapped:v},actions:{setPage:x=>a?.(x),setRecordsPerPage:S?x=>S(x):void 0},Controls:H};return(0,ee.jsx)(De.Box,{px:D??"xs",py:"xs",className:(0,bn.default)("mantine-datatable-pagination",e),style:[{flexDirection:v?"column":"row"},t],children:typeof h=="function"?h(k):(0,ee.jsxs)(ee.Fragment,{children:[(0,ee.jsx)(H.Text,{}),(0,ee.jsx)(H.PageSizeSelector,{}),(0,ee.jsx)(H.Pagination,{})]})})}var ta=require("@mantine/core"),na=q(require("clsx"));var Ko=require("@mantine/core"),jo=q(require("clsx"));var qo=require("react/jsx-runtime");function Jo({className:e,style:t,pinnedInfo:n,visibleMediaQuery:o,record:a,index:r,onClick:l,onDoubleClick:s,onContextMenu:c,noWrap:m,ellipsis:i,textAlign:u,width:p,accessor:T,render:d,defaultRender:S,customCellAttributes:b}){return ge(o)?(0,qo.jsx)(Ko.TableTd,{"data-pinned":n?.position,"data-pinned-shadow":n?.isBoundary?n.position:void 0,className:(0,jo.default)({[Ke]:m||i,[je]:i,[re]:l||s,[Lt]:c,[Te]:u==="left",[he]:u==="center",[Ce]:u==="right"},e),style:[{width:p,minWidth:p,maxWidth:p},t,n&&{position:"sticky",[n.position]:n.offset,overflow:"visible"}],onClick:l,onDoubleClick:s,onContextMenu:c,...b?.(a,r),children:d?d(a,r):S?S(a,r,T):Rt(a,T)}):null}var Be=require("@mantine/core");var ie=require("react/jsx-runtime");function Zo({open:e,colSpan:t,content:n,collapseProps:o}){let{expanded:a,visible:r}=ro(e,o?.transitionDuration);return r?(0,ie.jsxs)(ie.Fragment,{children:[(0,ie.jsx)(Be.TableTr,{}),(0,ie.jsx)(Be.TableTr,{children:(0,ie.jsx)(Be.TableTd,{className:"mantine-datatable-row-expansion-cell",colSpan:t,children:(0,ie.jsx)(Be.Collapse,{expanded:a,...o,children:(0,ie.jsx)("div",{className:"mantine-datatable-row-expansion-cell-content",children:n()})})})})]}):null}var _t=require("@mantine/core"),Yo=q(require("clsx"));var gn=require("react/jsx-runtime");function ea({className:e,style:t,record:n,index:o,trigger:a,onChange:r,withRightShadow:l,checkboxProps:s,getCheckboxProps:c,...m}){let i={...s,...c(n,o)},u=!m.disabled&&!i.disabled,p=T=>{T.stopPropagation(),a==="cell"&&u&&r?.(T)};return(0,gn.jsx)(_t.TableTd,{className:(0,Yo.default)("mantine-datatable-row-selector-cell",{[re]:a==="cell"&&u},e),style:t,"data-shadow-visible":l||void 0,onClick:p,children:(0,gn.jsx)(_t.Checkbox,{classNames:u?{input:re}:void 0,onChange:r,...m,...i})})}var ae=require("react/jsx-runtime");function oa({record:e,index:t,columns:n,defaultColumnProps:o,pinnedMap:a,defaultColumnRender:r,selectionTrigger:l,selectionVisible:s,selectionChecked:c,onSelectionChange:m,isRecordSelectable:i,selectionCheckboxProps:u,getSelectionCheckboxProps:p,onClick:T,onDoubleClick:d,onContextMenu:S,onCellClick:b,onCellDoubleClick:C,onCellContextMenu:E,expansion:D,customAttributes:L,color:N,backgroundColor:f,className:h,style:w,selectorCellShadowVisible:M,selectionColumnClassName:g,selectionColumnStyle:R,rowFactory:y}){let v=(0,ae.jsxs)(ae.Fragment,{children:[s&&(0,ae.jsx)(ea,{className:g,style:R,record:e,index:t,trigger:l,withRightShadow:M,checked:c,disabled:!m||(i?!i(e,t):!1),onChange:m,checkboxProps:u,getCheckboxProps:p}),n.map(({hidden:x,hiddenContent:P,...A},B)=>{if(x||P)return null;let{accessor:z,visibleMediaQuery:se,textAlign:we,noWrap:Se,ellipsis:Re,width:xe,render:ve,cellsClassName:O,cellsStyle:te,customCellAttributes:ce}={...o,...A};return(0,ae.jsx)(Jo,{pinnedInfo:a.get(String(z)),className:typeof O=="function"?O(e,t):O,style:te?.(e,t),visibleMediaQuery:se,record:e,index:t,onClick:b?ue=>b({event:ue,record:e,index:t,column:A,columnIndex:B}):void 0,onDoubleClick:C?ue=>C({event:ue,record:e,index:t,column:A,columnIndex:B}):void 0,onContextMenu:E?ue=>E({event:ue,record:e,index:t,column:A,columnIndex:B}):void 0,accessor:z,textAlign:we,noWrap:Se,ellipsis:Re,width:xe,render:ve,defaultRender:r,customCellAttributes:ce},z)})]}),H=D&&(0,ae.jsx)(Zo,{colSpan:n.filter(({hidden:x})=>!x).length+(s?1:0),open:D.isRowExpanded(e),content:D.content({record:e,index:t}),collapseProps:D.collapseProps}),k=Rr({record:e,index:t,selectionChecked:c,onClick:T,onDoubleClick:d,onContextMenu:S,expansion:D,customAttributes:L,color:N,backgroundColor:f,className:h,style:w});return y?y({record:e,index:t,rowProps:k,children:v,expandedElement:H}):(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)(ta.TableTr,{...k,children:v}),H]})}function Rr({record:e,index:t,selectionChecked:n,onClick:o,onDoubleClick:a,onContextMenu:r,expansion:l,customAttributes:s,color:c,backgroundColor:m,className:i,style:u}){return{className:(0,na.default)("mantine-datatable-row",{[re]:o||a||l?.isExpandable({record:e,index:t})&&l?.expandOnClick},{[Lt]:r},typeof i=="function"?i(e,t):i),"data-selected":n||void 0,onClick:p=>{if(l){let{isExpandable:T,isRowExpanded:d,expandOnClick:S,expandRow:b,collapseRow:C}=l;T({record:e,index:t})&&S&&(d(e)?C(e):b(e))}o?.({event:p,record:e,index:t})},onDoubleClick:a?p=>a({event:p,record:e,index:t}):void 0,onContextMenu:r?p=>r({event:p,record:e,index:t}):void 0,style:[c||m?p=>{let T=c?.(e,t),d=m?.(e,t);return Mn({theme:p,color:T,backgroundColor:d})}:void 0,u?.(e,t)],...s?.(e,t)??{}}}var Tt=require("@mantine/core"),gt=q(require("clsx")),Ve=require("react/jsx-runtime");function aa({leftShadowBehind:e,rightShadowBehind:t,onScrollPositionChange:n,children:o,viewportRef:a,scrollAreaProps:r}){return(0,Ve.jsxs)(Tt.ScrollArea,{...r,viewportRef:a,classNames:{root:"mantine-datatable-scroll-area",scrollbar:"mantine-datatable-scroll-area-scrollbar",thumb:"mantine-datatable-scroll-area-thumb",corner:"mantine-datatable-scroll-area-corner"},onScrollPositionChange:n,children:[o,(0,Ve.jsx)(Tt.Box,{className:(0,gt.default)("mantine-datatable-scroll-area-shadow","mantine-datatable-scroll-area-top-shadow")}),(0,Ve.jsx)("div",{className:(0,gt.default)("mantine-datatable-scroll-area-shadow","mantine-datatable-scroll-area-left-shadow",{"mantine-datatable-scroll-area-shadow-behind":e})}),(0,Ve.jsx)("div",{className:(0,gt.default)("mantine-datatable-scroll-area-shadow","mantine-datatable-scroll-area-right-shadow",{"mantine-datatable-scroll-area-shadow-behind":t})}),(0,Ve.jsx)(Tt.Box,{className:(0,gt.default)("mantine-datatable-scroll-area-shadow","mantine-datatable-scroll-area-bottom-shadow")})]})}var Q=require("react/jsx-runtime");function ra({withTableBorder:e,borderRadius:t,textSelectionDisabled:n,height:o="100%",minHeight:a,maxHeight:r,shadow:l,verticalAlign:s="center",fetching:c,columns:m,storeColumnsKey:i,groups:u,pinFirstColumn:p,pinLastColumn:T,defaultColumnProps:d,defaultColumnRender:S,idAccessor:b="id",records:C,selectionTrigger:E="checkbox",selectedRecords:D,onSelectedRecordsChange:L,selectionColumnClassName:N,selectionColumnStyle:f,isRecordSelectable:h,selectionCheckboxProps:w,allRecordsSelectionCheckboxProps:M={"aria-label":"Select all records"},getRecordSelectionCheckboxProps:g=(Me,X)=>({"aria-label":`Select record ${X+1}`}),sortStatus:R,sortIcons:y,onSortStatusChange:v,horizontalSpacing:H,page:k,onPageChange:x,totalRecords:P,recordsPerPage:A,onRecordsPerPageChange:B,recordsPerPageOptions:z,recordsPerPageLabel