react-table-dnd 2.0.5 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Components/RowCell.d.ts +0 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +125 -115
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`react`);c=s(c);let l=require(`react/jsx-runtime`),u=require(`react-dom`),d=require(`classnames`);d=s(d);var f=({children:e,className:t})=>(0,l.jsx)(`div`,{"data-flexitable-root":``,className:t??``,children:e}),p=(0,c.createContext)(null),m=e=>{let t=(0,c.useContext)(p);if(!t)throw Error(`useTableStore must be used within TableProvider`);return(0,c.useSyncExternalStore)(t.subscribe,()=>e(t.getState()))},h=()=>{let e=(0,c.useContext)(p);if(!e)throw Error(`useTableDispatch must be used within TableProvider`);return e.dispatch},g=()=>{let e=(0,c.useContext)(p);if(!e)throw Error(`useTable must be used within a TableProvider`);return{state:(0,c.useSyncExternalStore)(e.subscribe,e.getState),dispatch:e.dispatch}};function _(e,t){let n=t,r=new Set;return{getState:()=>n,dispatch(t){n=e(n,t),r.forEach(e=>e())},subscribe(e){return r.add(e),()=>{r.delete(e)}}}}var v=30,y=e=>{let{headerRef:t,bodyRef:n}=e,r=(0,c.useRef)(null),i=(0,c.useRef)(t),a=(0,c.useRef)(!1),o=(0,c.useRef)(!1),s=(0,c.useRef)(0),l=(0,c.useRef)(null),u=(0,c.useRef)({x:0,y:0}),d=(0,c.useRef)(null),f=(0,c.useCallback)(e=>{d.current=e},[]),p=(0,c.useCallback)(()=>{o.current=!1,a.current=!1,l.current!==null&&(cancelAnimationFrame(l.current),l.current=null)},[]),m=(0,c.useCallback)((e,t,n)=>{let c=n===`vertical`,f=c?o:a;if(!f.current)return;let p=d.current;if(p){let e=u.current;if(c){let t=e.y<p.top+v,n=e.y>p.bottom-v;if(!t&&!n){f.current=!1;return}}else{let t=e.x<p.left+v,n=e.x>p.right-v;if(!t&&!n){f.current=!1;return}}}let m=c?t.scrollHeight-t.clientHeight:t.scrollWidth-t.clientWidth;if(c)t.scrollTop+=e;else{t.scrollLeft+=e;let n=i.current;n?.current&&(n.current.scrollLeft=t.scrollLeft)}let h=c?t.scrollTop:t.scrollLeft;if(h>=m||h<=0){f.current=!1;return}s.current+=e/1e3,l.current=requestAnimationFrame(()=>r.current?.(e+s.current,t,n))},[]);return(0,c.useEffect)(()=>{r.current=m},[m]),{startAutoScroll:(0,c.useCallback)((e,t,n)=>{let r=n===`vertical`?o:a;r.current||(r.current=!0,s.current=0,l.current=requestAnimationFrame(()=>m(e,t,n)))},[m]),stopAutoScroll:p,setContainerRect:f,isAutoScrollingVertical:o,isAutoScrollingHorizontal:a,pointerRef:u,BodyScrollHandle:(0,c.useCallback)(e=>{t?.current&&e.currentTarget&&(t.current.scrollLeft=e.currentTarget.scrollLeft)},[t]),HeaderScrollHandle:(0,c.useCallback)(e=>{n?.current&&e.currentTarget&&(n.current.scrollLeft=e.currentTarget.scrollLeft)},[n])}},b=300,x=8,S=.92,C=.5;function w(e,t,n,r){let i=(0,c.useRef)(null),a=(0,c.useRef)({x:0,y:0}),o=(0,c.useRef)(null),s=(0,c.useRef)(!1),l=(0,c.useRef)(null),u=(0,c.useRef)(null),d=(0,c.useCallback)(()=>{u.current!==null&&(cancelAnimationFrame(u.current),u.current=null)},[]),f=(0,c.useCallback)(()=>{i.current&&=(clearTimeout(i.current),null),o.current=null,l.current&&=(l.current(),null)},[]);return{touchStart:(0,c.useCallback)(c=>{if(c.target===c.currentTarget)return;let p=c.target,m=!1;for(;p&&!(p.dataset?.contextid||p.dataset?.disabled===`true`);){if(p.dataset?.id){m=!0;break}p=p.parentNode}if(!m)return;d(),f(),s.current=!0,window.getSelection()?.removeAllRanges();let h=c.touches[0];a.current={x:h.clientX,y:h.clientY},o.current=c;let g=e.tableRef?.current;if(!g)return;let _=!1,v=!1,y=h.clientY,w=h.clientX,T=0,E=0,D=Date.now(),O=e=>e.preventDefault();document.addEventListener(`selectstart`,O);let k=(t=>{let n=e.bodyRef?.current,r=t;for(;r&&r!==n;){let e=window.getComputedStyle(r),t=e.overflowY,n=e.overflowX,i=(t===`auto`||t===`scroll`)&&r.scrollHeight>r.clientHeight,a=(n===`auto`||n===`scroll`)&&r.scrollWidth>r.clientWidth;if(i||a)return r;r=r.parentElement}return n??document.body})(c.target),A=t=>{t.preventDefault();let n=t.touches[0],s=Date.now(),c=Math.max(s-D,1);if(D=s,v){let t=n.clientY-y,r=n.clientX-w;if(k){let n=e.bodyRef?.current,i=t>0&&k.scrollTop<=0,a=t<0&&k.scrollTop+k.clientHeight>=k.scrollHeight-1,o=r>0&&k.scrollLeft<=0,s=r<0&&k.scrollLeft+k.clientWidth>=k.scrollWidth-1,c=i||a,l=o||s;k===n?(k.scrollTop-=t,k.scrollLeft-=r):(l||(k.scrollLeft-=r),c||(k.scrollTop-=t),n&&(c&&(n.scrollTop-=t),l&&(n.scrollLeft-=r)))}T=-t/c*16,E=-r/c*16,y=n.clientY,w=n.clientX}else if(_)r(n.clientX,n.clientY);else{let e=n.clientX-a.current.x,t=n.clientY-a.current.y;(Math.abs(e)>x||Math.abs(t)>x)&&(i.current&&=(clearTimeout(i.current),null),o.current=null,v=!0,y=n.clientY,w=n.clientX,T=0,E=0,D=Date.now())}},j=()=>{if(_)M(),n();else{if(f(),v&&k&&(Math.abs(T)>C||Math.abs(E)>C)){let e=k,t=()=>{T*=S,E*=S,e.scrollTop+=T,e.scrollLeft+=E,Math.abs(T)>C||Math.abs(E)>C?u.current=requestAnimationFrame(t):u.current=null};u.current=requestAnimationFrame(t)}setTimeout(()=>{s.current=!1},400)}},M=()=>{g.removeEventListener(`touchmove`,A),g.removeEventListener(`touchend`,j),g.removeEventListener(`touchcancel`,j),document.removeEventListener(`selectstart`,O),l.current=null};g.addEventListener(`touchmove`,A,{passive:!1}),g.addEventListener(`touchend`,j,!1),g.addEventListener(`touchcancel`,j,!1),l.current=M,i.current=setTimeout(()=>{i.current=null,_=!0;let e=o.current;o.current=null,e&&t(e,h.clientX,h.clientY)},b)},[t,n,r,f,d,e.tableRef?.current,e.bodyRef?.current]),cancelLongPress:f,isTouchActiveRef:s}}var T=`transform 450ms cubic-bezier(0.2, 0, 0, 1)`,E=(e,t,n,r)=>{let i=(0,c.useRef)({width:0,height:0}),a=(0,c.useRef)(null),o=(0,c.useRef)(new Set),s=(0,c.useRef)(new Set),l=(0,c.useRef)(new Map),u=(0,c.useCallback)((t,n,r,a)=>{let o=e.placeholderRef?.current;if(!o||!t){o&&(o.style.display=`none`);return}let s=i.current,c=t.getBoundingClientRect(),l=e.tableRef?.current?.getBoundingClientRect(),u=(n??0)<(r??0);o.style.display=`block`,a===`row`?(o.style.top=`${u?c.top+c.height-s.height:c.top}px`,o.style.left=`${l?.left??c.left}px`,o.style.width=`${l?.width??c.width}px`,o.style.height=`${s.height}px`):(o.style.top=`${l?.top??c.top}px`,o.style.left=`${u?c.left+c.width-s.width:c.left}px`,o.style.width=`${s.width}px`,o.style.height=`${l?.height??c.height}px`)},[e.placeholderRef,e.tableRef]);return{applyShiftTransforms:(0,c.useCallback)((e,c,d)=>{if(e===null||c===null)return;let f=i.current,p=a.current,m=p===null,h=m?-1/0:Math.min(p,c,e)-1,g=m?1/0:Math.max(p,c,e)+1,_=null,v=(d===`row`?t.current:n.current).get(c);v&&(_=v.outer),u(_,e,c,d);let y=(t,n,r)=>{let i=(t,i,a)=>{let s=``;t>e&&t<=c?s=`translate${n}(-${r}px)`:t<e&&t>=c&&(s=`translate${n}(${r}px)`),a.style.transform=s,a.style.transition=t===e?`none`:T,s&&o.current.add(a),t===c?i.setAttribute(`data-drop-target`,`true`):i.removeAttribute(`data-drop-target`)};if(m)for(let[e,{outer:n,inner:r}]of t)i(e,n,r);else for(let e=h;e<=g;e++){let n=t.get(e);n&&i(e,n.outer,n.inner)}};if(d===`row`)y(t.current,`Y`,f.height);else if(d===`column`){y(n.current,`X`,f.width);let t=r.current,i=l.current,a=(t,n,r)=>{let a=``;t>e&&t<=c?a=`translateX(-${f.width}px)`:t<e&&t>=c&&(a=`translateX(${f.width}px)`);for(let e of n)i.get(e)!==a&&(e.style.transform=a,r&&(e.style.transition=T),i.set(e,a),a&&s.current.add(e))};if(m)for(let[e,n]of t)a(e,n,!0);else for(let e=h;e<=g;e++){let n=t.get(e);n&&a(e,n,!1)}}a.current=c},[u,t,n,r]),clearShiftTransforms:(0,c.useCallback)(()=>{let t=e.placeholderRef?.current;t&&(t.style.display=`none`);for(let e of o.current){e.style.transition=`none`,e.style.transform=``;let t=e.parentElement;t&&t.removeAttribute(`data-drop-target`)}o.current.clear();for(let e of s.current)e.style.transition=`none`,e.style.transform=``;s.current.clear(),l.current.clear(),a.current=null},[e.placeholderRef]),prevTargetIndexRef:a,draggedSizeRef:i}},D=e=>{let t=(0,c.useRef)(new Map),n=(0,c.useRef)(new Map),r=(0,c.useRef)(new Map),i=(0,c.useRef)(!1),a=(0,c.useCallback)(()=>{t.current.clear(),n.current.clear(),r.current.clear()},[]),o=(0,c.useCallback)(e=>{t.current.clear();let n=e.querySelectorAll(`.draggable[data-type="row"]`);for(let e=0;e<n.length;e++){let r=n[e],i=r.dataset.index;if(i===void 0)continue;let a=r.firstElementChild;a&&t.current.set(+i,{outer:r,inner:a})}},[]),s=(0,c.useCallback)(e=>{n.current.clear();let t=e.querySelectorAll(`.draggable[data-type="column"]`);for(let e=0;e<t.length;e++){let r=t[e],i=r.dataset.index;if(i===void 0)continue;let a=r.firstElementChild;a&&n.current.set(+i,{outer:r,inner:a})}},[]),l=(0,c.useCallback)(e=>{r.current.clear();let t=e.querySelectorAll(`.td[data-col-index]`);for(let e=0;e<t.length;e++){let n=t[e],i=+n.dataset.colIndex;r.current.has(i)||r.current.set(i,[]),r.current.get(i).push(n)}},[]);return{rowIndexMapRef:t,colIndexMapRef:n,cellIndexMapRef:r,mapStaleRef:i,buildMaps:(0,c.useCallback)((t,n)=>{if(a(),n){if(t===`row`)o(n);else if(t===`column`){let t=e.headerRef?.current;t&&s(t),l(n)}}},[e.headerRef,a,o,s,l]),rebuildRowMap:(0,c.useCallback)(e=>{i.current=!1,o(e)},[o]),rebuildColumnMaps:(0,c.useCallback)((e,t)=>{i.current=!1,t&&s(t),l(e)},[s,l]),checkStaleness:(0,c.useCallback)(()=>{if(!i.current){if(t.current.size>0){let e=t.current.values().next().value;if(e&&!e.outer.isConnected){i.current=!0;return}}if(n.current.size>0){let e=n.current.values().next().value;e&&!e.outer.isConnected&&(i.current=!0)}}},[]),clearMaps:a}},O=(e,t)=>{let n=e,r=0,i=t.length-1;for(;r<i;){let e=Math.floor((r+i)/2),a=t[e];if(a.itemTop<=n&&n<=a.itemBottom)return n<a.itemTop+a.height/2?+a.index:+a.index+1;n<a.itemTop?i=e-1:r=e+1}return+t[r].index},k=(e,t)=>{let n=e,r=0,i=t.length-1;for(;r<i;){let e=Math.floor((r+i)/2),a=t[e];if(a.itemLeft<=n&&n<=a.itemRight)return n<a.itemLeft+a.width/2?+a.index:+a.index+1;n<a.itemLeft?i=e-1:r=e+1}return+t[r].index};function A(e,t,n){let r=n.getBoundingClientRect();return e>r.left+n.clientWidth||t>r.top+n.clientHeight}var j=(e,t,n)=>{let r=Number(e);return t!==void 0&&r<t||n!==void 0&&r>n},M=(e,t)=>{let n=(0,c.useRef)(null),r=(0,c.useRef)(null),i=(0,c.useCallback)(()=>{let n=e.bodyRef?.current;if(!n)return null;let r=n.scrollTop,i=n.getBoundingClientRect().top,a=n.querySelectorAll(`.draggable[data-type="row"]`),o=[];for(let e=0;e<a.length;e++){let t=a[e];if(t.dataset.index===void 0)continue;let n=t.getBoundingClientRect(),s=n.top-i+r;o.push({height:n.height,itemTop:s,itemBottom:s+n.height,index:t.dataset.index})}let{start:s,end:c}=t.rowDragRange;return(s||c)&&(o=o.filter(e=>(!s||+e.index>=s)&&(!c||+e.index<=c))),o},[e.bodyRef,t.rowDragRange]),a=(0,c.useCallback)(()=>{let n=e.headerRef?.current;if(!n||!n.children[0])return null;let r=Array.from(n.children[0].children).map(e=>{let t=e.getBoundingClientRect();return{left:t.left,width:t.width,itemLeft:t.left,itemRight:t.left+t.width,index:e.dataset.index}}).filter(e=>e.index!==void 0),{start:i,end:a}=t.columnDragRange??{};return(i!==void 0||a!==void 0)&&(r=r.filter(e=>{let t=+e.index;return(i===void 0||t>=i)&&(a===void 0||t<=a)})),r},[e.headerRef,t.columnDragRange]);return{computeRowItems:i,computeColumnItems:a,resolveDropIndex:(0,c.useCallback)((e,t,r,o,s,c,l)=>{let u;if(r===`row`){if(u=n.current,u||(u=i(),n.current=u),u&&u.length>0)return O(t-c.y+l.height/2-o.top+s,u)}else if(u=n.current,u||(u=a(),n.current=u),u&&u.length>0)return k(e-c.x+l.width/2,u);return 0},[i,a]),cachedItemsRef:n,cachedContainerRef:r}},N=200,P=30,F=5;function ee(e){let t=e,n=!1;for(;t;){if(t.dataset?.dragHandle===`true`&&(n=!0),t.dataset?.contextid||t.dataset?.disabled===`true`)return null;if(t.dataset?.id)return{element:t,foundHandle:n};t=t.parentNode}return null}var I=(e,t,n,r,i,a)=>{let{startAutoScroll:o,stopAutoScroll:s,setContainerRect:l,pointerRef:d,isAutoScrollingVertical:f,isAutoScrollingHorizontal:p}=y(e),m=D(e),{rowIndexMapRef:h,colIndexMapRef:g,cellIndexMapRef:_,mapStaleRef:v}=m,{applyShiftTransforms:b,clearShiftTransforms:x,prevTargetIndexRef:S,draggedSizeRef:C}=E(e,h,g,_),T=M(e,i),{resolveDropIndex:O,cachedItemsRef:k,cachedContainerRef:j}=T,I=(0,c.useRef)(null),L=(0,c.useRef)({x:0,y:0}),R=(0,c.useRef)(null),z=(0,c.useRef)(null),B=(0,c.useRef)(!1),V=(0,c.useRef)(!1),H=(0,c.useRef)(null),U=(0,c.useRef)(null),W=(0,c.useRef)([]),G=(0,c.useCallback)((t,r,i)=>{let a=ee(t.target);if(!a)return;let{element:o,foundHandle:s}=a;if(!s&&o.querySelector(`[data-drag-handle]`))return;let c=o.dataset.id,u=+o.dataset.index,f=o.dataset.type;I.current=f??null,R.current=u,z.current=null,H.current=null,W.current=[],S.current=null,B.current=!1;let p=f===`row`?e.bodyRef?.current?.scrollLeft??0:0,h=o.getBoundingClientRect();C.current={width:h.width,height:h.height};let g={x:r-h.left-p,y:i-h.top};L.current=g,d.current={x:r,y:i};let _={x:h.left+p,y:h.top};k.current=f===`row`?T.computeRowItems():T.computeColumnItems();let v=e.bodyRef?.current;v&&(j.current=v.getBoundingClientRect(),l(j.current)),m.buildMaps(f,v??null);let y=e.tableRef?.current;y&&(y.style.touchAction=`none`);let b=o.firstElementChild;b&&(b.style.opacity=`0`,b.style.pointerEvents=`none`,b.style.zIndex=`2`,b.style.cursor=`-webkit-grabbing`),U.current=b;let x=e.cloneRef?.current;if(x){if(x.innerHTML=``,x.style.transform=`translate(${_.x}px, ${_.y}px)`,V.current=(v?.querySelector(`[data-type="row"]`))?.style.position===`absolute`,f===`row`){let e=o.firstElementChild?.firstElementChild;e&&x.appendChild(e.cloneNode(!0))}else if(f===`column`&&v){let e=String(u),t=o.querySelector(`.th`);if(t){let e=document.createElement(`div`);e.style.flexShrink=`0`,e.style.order=`-1`,e.appendChild(t.cloneNode(!0)),x.appendChild(e)}let n=document.createElement(`div`);n.style.flex=`1`;let r=document.createElement(`div`);r.className=`rbody`,r.style.height=`${v.scrollHeight}px`,r.style.position=`relative`,v.querySelectorAll(`[data-type="row"]`).forEach(t=>{let n=t.cloneNode(!0);if(V.current){let t=n.querySelector(`.tr`);if(t){let n=t.querySelector(`[data-col-index="${e}"]`);for(;t.firstChild;)t.removeChild(t.firstChild);n&&t.appendChild(n)}}else n.querySelectorAll(`[data-col-index]`).forEach(t=>{t.getAttribute(`data-col-index`)!==e&&t.remove()});r.appendChild(n)}),n.appendChild(r),V.current?(n.style.overflow=`auto`,n.style.scrollbarWidth=`none`,n.className=`clone-body-strip`):n.style.overflow=`hidden`,x.appendChild(n),H.current=n,W.current=[],v.querySelectorAll(`[data-col-index="${e}"]`).forEach(e=>{e.style.opacity=`0`,W.current.push(e)})}}n({type:`dragStart`,value:{rect:{draggedItemHeight:h.height,draggedItemWidth:h.width},dragged:{initial:g,translate:_,draggedID:c??null,isDragging:!0,sourceIndex:u},dragType:f??null,tableDimensions:{height:(e.tableRef?.current?.offsetHeight??0)-(v?v.offsetHeight-v.clientHeight:0),width:(e.tableRef?.current?.offsetWidth??0)-(v?v.offsetWidth-v.clientWidth:0)}}});let w=v?.scrollLeft??0,E=v?.scrollTop??0;requestAnimationFrame(()=>{let t=e.cloneRef?.current;t&&(f===`row`?t.scrollLeft=w:H.current&&(H.current.scrollTop=E))})},[n,e,d,l,T,m,k,j,C,S]),K=(0,c.useCallback)((t,r,i,o,s)=>{let c=e.cloneRef?.current;c&&(c.style.visibility=`hidden`),U.current&&=(U.current.style.opacity=``,U.current.style.pointerEvents=``,U.current.style.zIndex=``,U.current.style.cursor=``,null),W.current.forEach(e=>{e.style.opacity=``}),W.current=[];let l=e.tableRef?.current;l&&(l.style.touchAction=``),(0,u.flushSync)(()=>{a&&t!==null&&r!==null&&(i===`row`||i===`column`)&&a({sourceIndex:t,targetIndex:r,dragType:i}),n({type:`dragEnd`,value:{targetIndex:r,sourceIndex:t}})}),x();let d=e.bodyRef?.current;d&&(d.scrollTop=o,d.scrollLeft=s,requestAnimationFrame(()=>{d.scrollTop=o,d.scrollLeft=s}))},[n,e.bodyRef,e.cloneRef,e.tableRef,x,a]),q=(0,c.useCallback)(()=>{if(B.current)return;B.current=!0,X(),setTimeout(()=>{Z.current=!1},400);let t=z.current,n=R.current,r=I.current,i=e.bodyRef?.current,a=i?.scrollTop??0,o=i?.scrollLeft??0;k.current=null,j.current=null,s(),I.current=null,R.current=null,z.current=null;let c=e.cloneRef?.current,l=e.placeholderRef?.current;if(c&&l&&l.style.display!==`none`){let e=parseFloat(l.style.left)||0,i=parseFloat(l.style.top)||0;c.style.transition=`transform ${N}ms cubic-bezier(0.2, 0, 0, 1)`,c.style.transform=`translate(${e}px, ${i}px)`,setTimeout(()=>K(n,t,r,a,o),N)}else K(n,t,r,a,o)},[s,e.bodyRef,e.placeholderRef,e.cloneRef,K]),J=(0,c.useRef)(()=>{}),{touchStart:Y,cancelLongPress:X,isTouchActiveRef:Z}=w(e,G,q,(e,t)=>J.current(e,t)),te=(0,c.useCallback)(e=>{e.button===0&&e.target!==e.currentTarget&&(Z.current||A(e.clientX,e.clientY,e.target)||G(e,e.clientX,e.clientY))},[G,Z]),Q=(0,c.useCallback)((t,n)=>{if(B.current)return;let i=L.current;d.current.x=t,d.current.y=n;let a=e.bodyRef?.current;if(!a)return;let c=j.current;(!c||v.current)&&(c=a.getBoundingClientRect(),j.current=c);let l=a.scrollLeft,u=a.scrollTop,h=e.cloneRef?.current;h&&(h.style.transform=`translate(${t-i.x}px, ${n-i.y}px)`,I.current===`row`?h.scrollLeft=l:H.current&&(H.current.scrollTop=u));let g=I.current||r;if(V.current&&m.checkStaleness(),v.current&&(k.current=null,z.current=null,S.current=null,V.current?g===`row`?m.rebuildRowMap(a):m.rebuildColumnMaps(a,e.headerRef?.current??null):v.current=!1),g===`row`)if(n<c.top+P)o(-F,a,`vertical`),v.current=!0;else if(n>c.bottom-P)o(F,a,`vertical`),v.current=!0;else{let t=f.current;s(),t&&requestAnimationFrame(()=>{let t=e.bodyRef?.current;if(!t)return;V.current&&m.rebuildRowMap(t),k.current=null;let n=t.getBoundingClientRect();j.current=n;let r=O(d.current.x,d.current.y,`row`,n,t.scrollTop,L.current,C.current);z.current=r,S.current=null,b(R.current,r,`row`)})}else if(t<c.left+P)o(-F,a,`horizontal`),v.current=!0;else if(t>c.right-P)o(F,a,`horizontal`),v.current=!0;else{let t=p.current;s(),t&&requestAnimationFrame(()=>{let t=e.bodyRef?.current;if(!t)return;V.current&&m.rebuildColumnMaps(t,e.headerRef?.current??null),k.current=null;let n=t.getBoundingClientRect();j.current=n;let r=O(d.current.x,d.current.y,`column`,n,t.scrollTop,L.current,C.current);z.current=r,S.current=null,b(R.current,r,`column`)})}let _=O(t,n,g,c,u,i,C.current);_!==z.current&&(z.current=_,requestAnimationFrame(()=>b(R.current,_,g)))},[d,e.bodyRef,e.cloneRef,e.headerRef,r,o,s,f,p,m,O,b,k,j,v,S,C]);J.current=Q;let $=(0,c.useCallback)(()=>{X(),k.current=null,j.current=null;let t=e.cloneRef?.current;t&&(t.style.visibility=`hidden`);let r=e.tableRef?.current;r&&(r.style.touchAction=``),n({type:`dragEnd`,value:{targetIndex:null,sourceIndex:null}}),s(),x(),I.current=null,R.current=null,z.current=null},[X,k,j,e.cloneRef,e.tableRef,n,s,x]);return(0,c.useLayoutEffect)(()=>{if(!t.isDragging){x();let t=e.cloneRef?.current;t&&(t.style.transition=``,t.style.transform=`translate(0px, 0px)`,t.style.visibility=``,t.scrollLeft=0,t.innerHTML=``)}},[t.isDragging,x,e.cloneRef]),(0,c.useEffect)(()=>{if(!t.isDragging)return;let e=0,n=0,r=!1,i=t=>{e=t.clientX,n=t.clientY,r||(r=!0,requestAnimationFrame(()=>{r=!1,Q(e,n)}))},a=()=>q(),o=e=>{e.key===`Escape`&&$()};return window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,a),window.addEventListener(`pointercancel`,a),window.addEventListener(`keydown`,o),()=>{window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,a),window.removeEventListener(`pointercancel`,a),window.removeEventListener(`keydown`,o)}},[t.isDragging,Q,q,$]),{dragStart:te,touchStart:Y}},L={columnDragRange:{start:void 0,end:void 0},rowDragRange:{start:void 0,end:void 0},defaultSizing:50};function R(e,t){switch(t.type){case`setDragged`:return{...e,dragged:{...e.dragged,...t.value}};case`setDragType`:return{...e,dragType:t.value};case`setTableDimensions`:return{...e,tableDimensions:t.value};case`setRef`:return{...e,refs:{...e.refs,[t.refName]:t.value}};case`setBodyScrollBarWidth`:return{...e,bodyScrollBarWidth:t.value};case`setWidths`:return{...e,widths:t.value};case`setColumnIds`:return{...e,columnIds:t.value};case`setOptions`:return{...e,options:{...e.options,...t.value}};case`dragStart`:return{...e,rect:t.value.rect,dragged:{...e.dragged,...t.value.dragged},dragType:t.value.dragType,tableDimensions:t.value.tableDimensions};case`dragEnd`:return{...e,dragged:{initial:{x:0,y:0},translate:{x:0,y:0},isDragging:!1,draggedID:null,targetIndex:t.value?.targetIndex??null,sourceIndex:t.value?.sourceIndex??null},dragType:null,rect:{draggedItemWidth:0,draggedItemHeight:0}};default:throw Error(`Unhandled action`)}}var z={dragged:{initial:{x:0,y:0},translate:{x:0,y:0},isDragging:!1,draggedID:null,targetIndex:null,sourceIndex:null},dragType:null,rect:{draggedItemWidth:0,draggedItemHeight:0},tableDimensions:{height:0,width:0},refs:{tableRef:{current:null},bodyRef:{current:null},headerRef:{current:null},cloneRef:{current:null},placeholderRef:{current:null}},bodyScrollBarWidth:0,options:L,widths:[],columnIds:[]},B={position:`relative`,display:`flex`,flexFlow:`column`},V={position:`fixed`,pointerEvents:`none`,zIndex:3,top:0,left:0,display:`none`},H=(0,c.forwardRef)(({children:e,className:t,style:n,options:r,onDragEnd:i,renderPlaceholder:a},o)=>{let s=(0,c.useRef)(null),u=(0,c.useRef)(null),d=(0,c.useRef)(null);(0,c.useImperativeHandle)(o,()=>s.current,[]);let[m]=(0,c.useState)(()=>_(R,z)),h=(0,c.useSyncExternalStore)(m.subscribe,m.getState),g=m.dispatch;(0,c.useEffect)(()=>{g({type:`setRef`,refName:`tableRef`,value:s}),g({type:`setRef`,refName:`cloneRef`,value:u}),g({type:`setRef`,refName:`placeholderRef`,value:d})},[s,g]),(0,c.useEffect)(()=>{let e=()=>{s.current&&g({type:`setTableDimensions`,value:{height:s.current.offsetHeight,width:s.current.offsetWidth}})};return e(),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[s,g]),(0,c.useEffect)(()=>{r&&g({type:`setOptions`,value:r})},[r,g]);let{dragStart:v,touchStart:y}=I(h.refs,h.dragged,g,h.dragType,h.options,i),b=(0,c.useMemo)(()=>({position:`fixed`,zIndex:`5`,pointerEvents:`none`,top:0,left:0,display:`flex`,flexDirection:`column`,height:h.dragType===`row`?h.rect.draggedItemHeight:`${h.tableDimensions.height}px`,width:h.dragType===`column`?`${h.rect.draggedItemWidth}px`:`${h.tableDimensions.width}px`,overflow:`scroll`,scrollbarWidth:`none`,boxShadow:h.dragged.isDragging?`0 0 10px 0 rgba(0, 0, 0, 0.1)`:`none`}),[h.dragType,h.dragged.isDragging,h.rect.draggedItemHeight,h.rect.draggedItemWidth,h.tableDimensions.height,h.tableDimensions.width]);return(0,l.jsx)(p.Provider,{value:m,children:(0,l.jsxs)(f,{className:h.dragged.isDragging?`is-dragging`:``,children:[(0,l.jsx)(`div`,{id:`portalroot`,style:{...b,visibility:h.dragged.isDragging?`visible`:`hidden`},ref:u}),(0,l.jsx)(`div`,{ref:d,style:V,children:a?a():(0,l.jsx)(`div`,{style:{width:`100%`,height:`100%`}})}),(0,l.jsx)(`div`,{"data-contextid":`context`,ref:s,onMouseDown:v,onTouchStart:y,style:{...B,...n},className:`table ${t??``}`,children:e})]})})});H.displayName=`TableProvider`;var U=(0,c.forwardRef)(({children:e,style:t,className:n},r)=>{let i=(0,c.useRef)(null),a=r||i,o=m(e=>e.bodyScrollBarWidth),s=m(e=>e.dragged.isDragging),u=m(e=>e.refs),d=h(),f=(0,c.useCallback)(e=>`current`in e?e.current:null,[]);(0,c.useEffect)(()=>{i.current&&d({type:`setRef`,refName:`headerRef`,value:i})},[d]);let{HeaderScrollHandle:p}=y(u),g={display:`flex`,flex:`1 0 auto`},_=(0,c.useMemo)(()=>({overflowX:`scroll`,overflowY:`clip`,scrollbarWidth:`none`,display:`flex`,paddingRight:`${o}px`,userSelect:s?`none`:`auto`,...t}),[o,s,t]);return(0,c.useLayoutEffect)(()=>{let e=f(a);e&&d({type:`setWidths`,value:Array.from(e.querySelectorAll(`.th`)).map(e=>{let t=e.getAttribute(`data-width`);return t?parseInt(t,10):0})})},[e,d,f,a]),(0,c.useLayoutEffect)(()=>{let e=f(a);e&&d({type:`setColumnIds`,value:Array.from(e.querySelectorAll(`.draggable`)).map(e=>e.getAttribute(`data-id`)||``)})},[e,d,f,a]),(0,l.jsx)(`div`,{className:`header ${n??``}`,children:(0,l.jsx)(`div`,{className:`thead`,style:_,"data-droppableid":`header`,onScroll:p,ref:a,children:(0,l.jsx)(`div`,{style:g,className:`tr`,children:e})})})});U.displayName=`TableHeader`;var W=(0,c.memo)(({children:e,id:t,index:n,type:r,styles:i={}})=>{let a=m(e=>e.options.rowDragRange),o=m(e=>e.options.columnDragRange),s=(0,c.useMemo)(()=>r===`row`?j(n,a.start,a.end):j(n,o.start,o.end),[n,o.end,o.start,a.end,a.start,r]),u=(0,c.useRef)(null),d=(0,c.useMemo)(()=>({cursor:s?`auto`:`-webkit-grab`,display:`flex`}),[s]);return(0,c.useEffect)(()=>{u.current&&u.current.querySelector(`[data-drag-handle]`)&&(u.current.style.cursor=`auto`)},[e,s]),(0,l.jsx)(`div`,{className:`draggable`,"data-id":t,"data-index":n,"data-type":r,"data-disabled":s?`true`:`false`,style:i,children:(0,l.jsx)(`div`,{ref:u,style:d,children:e})})});W.displayName=`Draggable`;var G=(0,c.memo)(({children:e,style:t,className:n,...r})=>{let i=m(e=>e.options.defaultSizing),{width:a,flex:o,...s}=t??{},u=(0,c.useMemo)(()=>a===void 0?i:typeof a==`number`?a:parseFloat(String(a))||i,[a,i]),d=(0,c.useMemo)(()=>({width:`${u}px`,flex:o===void 0?`${u} 0 auto`:o,boxSizing:`border-box`}),[u,o]);return(0,l.jsx)(W,{...r,styles:d,type:`column`,children:(0,l.jsx)(`div`,{className:`th ${n??``}`,"data-width":u,style:{width:`100%`,...s},children:e})})});G.displayName=`ColumnCell`;var K={display:`flex`,overflow:`hidden`,flex:1},q=(0,c.forwardRef)(({children:e,style:t,className:n},r)=>{let i=(0,c.useRef)(null);(0,c.useImperativeHandle)(r,()=>i.current,[]);let a=m(e=>e.dragged.isDragging),o=m(e=>e.refs),s=h();(0,c.useEffect)(()=>{s({type:`setRef`,refName:`bodyRef`,value:i})},[s,i]);let{BodyScrollHandle:u}=y(o),d=(0,c.useMemo)(()=>({overflowX:`auto`,overflowY:`auto`,flex:1,userSelect:a?`none`:`auto`,...t}),[a,t]);return(0,c.useEffect)(()=>{if(i.current){let e=i.current.clientWidth;s({type:`setBodyScrollBarWidth`,value:i.current.offsetWidth-e})}},[s,i]),(0,l.jsx)(`div`,{className:`body ${n??``}`,style:K,children:(0,l.jsx)(`div`,{className:`ibody`,style:d,"data-droppableid":`body`,onScroll:u,ref:i,children:e})})}),J={display:`flex`,flex:`1 0 auto`,minHeight:`24px`},Y=(0,c.memo)(({children:e,style:t,className:n,...r})=>{let i=(0,c.useMemo)(()=>t?{...J,...t}:J,[t]),a=(0,d.default)(`tr`,n);return(0,l.jsx)(W,{...r,type:`row`,children:(0,l.jsx)(`div`,{className:a,style:i,children:e})})});Y.displayName=`BodyRow`;var X=(0,c.memo)(({children:e,style:t,className:n,...r})=>{let{index:i}=r,a=m(e=>e.widths),o=m(e=>e.options.defaultSizing),s=(0,c.useMemo)(()=>a[i]??o,[a,i,o]),u=(0,c.useMemo)(()=>({display:`inline-flex`,width:`${s}px`,flex:`${s} 0 auto`,...t,boxSizing:`border-box`}),[s,t]);return(0,l.jsx)(`div`,{className:`td ${n??``}`,style:u,"data-col-index":i,children:e})});X.displayName=`RowCell`;var Z=(0,c.memo)(({children:e,className:t,style:n})=>(0,l.jsx)(`div`,{"data-drag-handle":`true`,className:t,style:{cursor:`-webkit-grab`,display:`inline-flex`,alignItems:`center`,...n},children:e}));Z.displayName=`DragHandle`,exports.BodyRow=Y,exports.ColumnCell=G,exports.DragHandle=Z,exports.RowCell=X,exports.TableBody=q,exports.TableContainer=H,exports.TableHeader=U,exports.useTable=g,exports.useTableDispatch=h,exports.useTableStore=m;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`react`);c=s(c);let l=require(`react/jsx-runtime`),u=require(`react-dom`),d=require(`classnames`);d=s(d);var f=({children:e,className:t})=>(0,l.jsx)(`div`,{"data-flexitable-root":``,className:t??``,children:e}),p=(0,c.createContext)(null),m=e=>{let t=(0,c.useContext)(p);if(!t)throw Error(`useTableStore must be used within TableProvider`);return(0,c.useSyncExternalStore)(t.subscribe,()=>e(t.getState()))},h=()=>{let e=(0,c.useContext)(p);if(!e)throw Error(`useTableDispatch must be used within TableProvider`);return e.dispatch},g=()=>{let e=(0,c.useContext)(p);if(!e)throw Error(`useTable must be used within a TableProvider`);return{state:(0,c.useSyncExternalStore)(e.subscribe,e.getState),dispatch:e.dispatch}};function _(e,t){let n=t,r=new Set;return{getState:()=>n,dispatch(t){n=e(n,t),r.forEach(e=>e())},subscribe(e){return r.add(e),()=>{r.delete(e)}}}}var v=30,y=e=>{let{headerRef:t,bodyRef:n}=e,r=(0,c.useRef)(null),i=(0,c.useRef)(t),a=(0,c.useRef)(!1),o=(0,c.useRef)(!1),s=(0,c.useRef)(0),l=(0,c.useRef)(null),u=(0,c.useRef)({x:0,y:0}),d=(0,c.useRef)(null),f=(0,c.useCallback)(e=>{d.current=e},[]),p=(0,c.useCallback)(()=>{o.current=!1,a.current=!1,l.current!==null&&(cancelAnimationFrame(l.current),l.current=null)},[]),m=(0,c.useCallback)((e,t,n)=>{let c=n===`vertical`,f=c?o:a;if(!f.current)return;let p=d.current;if(p){let e=u.current;if(c){let t=e.y<p.top+v,n=e.y>p.bottom-v;if(!t&&!n){f.current=!1;return}}else{let t=e.x<p.left+v,n=e.x>p.right-v;if(!t&&!n){f.current=!1;return}}}let m=c?t.scrollHeight-t.clientHeight:t.scrollWidth-t.clientWidth;if(c)t.scrollTop+=e;else{t.scrollLeft+=e;let n=i.current;n?.current&&(n.current.scrollLeft=t.scrollLeft)}let h=c?t.scrollTop:t.scrollLeft;if(h>=m||h<=0){f.current=!1;return}s.current+=e/1e3,l.current=requestAnimationFrame(()=>r.current?.(e+s.current,t,n))},[]);return(0,c.useEffect)(()=>{r.current=m},[m]),{startAutoScroll:(0,c.useCallback)((e,t,n)=>{let r=n===`vertical`?o:a;r.current||(r.current=!0,s.current=0,l.current=requestAnimationFrame(()=>m(e,t,n)))},[m]),stopAutoScroll:p,setContainerRect:f,isAutoScrollingVertical:o,isAutoScrollingHorizontal:a,pointerRef:u,BodyScrollHandle:(0,c.useCallback)(e=>{t?.current&&e.currentTarget&&(t.current.scrollLeft=e.currentTarget.scrollLeft)},[t]),HeaderScrollHandle:(0,c.useCallback)(e=>{n?.current&&e.currentTarget&&(n.current.scrollLeft=e.currentTarget.scrollLeft)},[n])}},b=300,x=8,S=.92,C=.5;function w(e,t,n,r){let i=(0,c.useRef)(null),a=(0,c.useRef)({x:0,y:0}),o=(0,c.useRef)(null),s=(0,c.useRef)(!1),l=(0,c.useRef)(null),u=(0,c.useRef)(null),d=(0,c.useCallback)(()=>{u.current!==null&&(cancelAnimationFrame(u.current),u.current=null)},[]),f=(0,c.useCallback)(()=>{i.current&&=(clearTimeout(i.current),null),o.current=null,l.current&&=(l.current(),null)},[]);return{touchStart:(0,c.useCallback)(c=>{if(c.target===c.currentTarget)return;let p=c.target,m=!1;for(;p&&!(p.dataset?.contextid||p.dataset?.disabled===`true`);){if(p.dataset?.id){m=!0;break}p=p.parentNode}if(!m)return;d(),f(),s.current=!0,window.getSelection()?.removeAllRanges();let h=c.touches[0];a.current={x:h.clientX,y:h.clientY},o.current=c;let g=e.tableRef?.current;if(!g)return;let _=!1,v=!1,y=h.clientY,w=h.clientX,T=0,E=0,D=Date.now(),O=e=>e.preventDefault();document.addEventListener(`selectstart`,O);let k=(t=>{let n=e.bodyRef?.current,r=t;for(;r&&r!==n;){let e=window.getComputedStyle(r),t=e.overflowY,n=e.overflowX,i=(t===`auto`||t===`scroll`)&&r.scrollHeight>r.clientHeight,a=(n===`auto`||n===`scroll`)&&r.scrollWidth>r.clientWidth;if(i||a)return r;r=r.parentElement}return n??document.body})(c.target),A=t=>{t.preventDefault();let n=t.touches[0],s=Date.now(),c=Math.max(s-D,1);if(D=s,v){let t=n.clientY-y,r=n.clientX-w;if(k){let n=e.bodyRef?.current,i=t>0&&k.scrollTop<=0,a=t<0&&k.scrollTop+k.clientHeight>=k.scrollHeight-1,o=r>0&&k.scrollLeft<=0,s=r<0&&k.scrollLeft+k.clientWidth>=k.scrollWidth-1,c=i||a,l=o||s;k===n?(k.scrollTop-=t,k.scrollLeft-=r):(l||(k.scrollLeft-=r),c||(k.scrollTop-=t),n&&(c&&(n.scrollTop-=t),l&&(n.scrollLeft-=r)))}T=-t/c*16,E=-r/c*16,y=n.clientY,w=n.clientX}else if(_)r(n.clientX,n.clientY);else{let e=n.clientX-a.current.x,t=n.clientY-a.current.y;(Math.abs(e)>x||Math.abs(t)>x)&&(i.current&&=(clearTimeout(i.current),null),o.current=null,v=!0,y=n.clientY,w=n.clientX,T=0,E=0,D=Date.now())}},j=()=>{if(_)M(),n();else{if(f(),v&&k&&(Math.abs(T)>C||Math.abs(E)>C)){let e=k,t=()=>{T*=S,E*=S,e.scrollTop+=T,e.scrollLeft+=E,Math.abs(T)>C||Math.abs(E)>C?u.current=requestAnimationFrame(t):u.current=null};u.current=requestAnimationFrame(t)}setTimeout(()=>{s.current=!1},400)}},M=()=>{g.removeEventListener(`touchmove`,A),g.removeEventListener(`touchend`,j),g.removeEventListener(`touchcancel`,j),document.removeEventListener(`selectstart`,O),l.current=null};g.addEventListener(`touchmove`,A,{passive:!1}),g.addEventListener(`touchend`,j,!1),g.addEventListener(`touchcancel`,j,!1),l.current=M,i.current=setTimeout(()=>{i.current=null,_=!0;let e=o.current;o.current=null,e&&t(e,h.clientX,h.clientY)},b)},[t,n,r,f,d,e.tableRef?.current,e.bodyRef?.current]),cancelLongPress:f,isTouchActiveRef:s}}var T=`transform 450ms cubic-bezier(0.2, 0, 0, 1)`,E=`transform 150ms cubic-bezier(0.2, 0, 0, 1)`,D=()=>typeof window<`u`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,O=(e,t,n,r)=>{let i=(0,c.useRef)({width:0,height:0}),a=(0,c.useRef)(null),o=(0,c.useRef)(new Set),s=(0,c.useRef)(new Set),l=(0,c.useRef)(new Map),u=(0,c.useCallback)((t,n,r,a)=>{let o=e.placeholderRef?.current;if(!o||!t){o&&(o.style.display=`none`);return}let s=i.current,c=t.getBoundingClientRect(),l=e.tableRef?.current?.getBoundingClientRect(),u=e.bodyRef?.current,d=u?u.offsetWidth-u.clientWidth:0,f=u?u.offsetHeight-u.clientHeight:0,p=(n??0)<(r??0),m=o.style.display===`none`,h=parseFloat(o.style.top)||0,g=parseFloat(o.style.left)||0;if(o.style.transition=``,o.style.transform=``,o.style.display=`block`,a===`row`?(o.style.top=`${p?c.top+c.height-s.height:c.top}px`,o.style.left=`${l?.left??c.left}px`,o.style.width=`${(l?.width??c.width)-d}px`,o.style.height=`${s.height}px`):(o.style.top=`${l?.top??c.top}px`,o.style.left=`${p?c.left+c.width-s.width:c.left}px`,o.style.width=`${s.width}px`,o.style.height=`${(l?.height??c.height)-f}px`),!m&&!D()){let e=g-(parseFloat(o.style.left)||0),t=h-(parseFloat(o.style.top)||0);(e!==0||t!==0)&&(o.style.transform=`translate(${e}px, ${t}px)`,o.offsetHeight,o.style.transition=E,o.style.transform=`translate(0, 0)`)}},[e.placeholderRef,e.tableRef,e.bodyRef]);return{applyShiftTransforms:(0,c.useCallback)((e,c,d)=>{if(e===null||c===null)return;let f=i.current,p=a.current,m=p===null,h=m?-1/0:Math.min(p,c,e)-1,g=m?1/0:Math.max(p,c,e)+1,_=null,v=(d===`row`?t.current:n.current).get(c);v&&(_=v.outer),u(_,e,c,d);let y=(t,n,r)=>{let i=(t,i,a)=>{let s=``;t>e&&t<=c?s=`translate${n}(-${r}px)`:t<e&&t>=c&&(s=`translate${n}(${r}px)`),a.style.transform=s,a.style.transition=t===e||D()?`none`:T,s&&o.current.add(a),t===c?i.setAttribute(`data-drop-target`,`true`):i.removeAttribute(`data-drop-target`)};if(m)for(let[e,{outer:n,inner:r}]of t)i(e,n,r);else for(let e=h;e<=g;e++){let n=t.get(e);n&&i(e,n.outer,n.inner)}};if(d===`row`)y(t.current,`Y`,f.height);else if(d===`column`){y(n.current,`X`,f.width);let t=r.current,i=l.current,a=(t,n,r)=>{let a=``;t>e&&t<=c?a=`translateX(-${f.width}px)`:t<e&&t>=c&&(a=`translateX(${f.width}px)`);for(let e of n)i.get(e)!==a&&(e.style.transform=a,r&&(e.style.transition=D()?`none`:T),i.set(e,a),a&&s.current.add(e))};if(m)for(let[e,n]of t)a(e,n,!0);else for(let e=h;e<=g;e++){let n=t.get(e);n&&a(e,n,!1)}}a.current=c},[u,t,n,r]),clearShiftTransforms:(0,c.useCallback)(()=>{let t=e.placeholderRef?.current;t&&(t.style.display=`none`);for(let e of o.current){e.style.transition=`none`,e.style.transform=``;let t=e.parentElement;t&&t.removeAttribute(`data-drop-target`)}o.current.clear();for(let e of s.current)e.style.transition=`none`,e.style.transform=``;s.current.clear(),l.current.clear(),a.current=null},[e.placeholderRef]),prevTargetIndexRef:a,draggedSizeRef:i}},k=e=>{let t=(0,c.useRef)(new Map),n=(0,c.useRef)(new Map),r=(0,c.useRef)(new Map),i=(0,c.useRef)(!1),a=(0,c.useCallback)(()=>{t.current.clear(),n.current.clear(),r.current.clear()},[]),o=(0,c.useCallback)(e=>{t.current.clear();let n=e.querySelectorAll(`.draggable[data-type="row"]`);for(let e=0;e<n.length;e++){let r=n[e],i=r.dataset.index;if(i===void 0)continue;let a=r.firstElementChild;a&&t.current.set(+i,{outer:r,inner:a})}},[]),s=(0,c.useCallback)(e=>{n.current.clear();let t=e.querySelectorAll(`.draggable[data-type="column"]`);for(let e=0;e<t.length;e++){let r=t[e],i=r.dataset.index;if(i===void 0)continue;let a=r.firstElementChild;a&&n.current.set(+i,{outer:r,inner:a})}},[]),l=(0,c.useCallback)(e=>{r.current.clear();let t=e.querySelectorAll(`.td[data-col-index]`);for(let e=0;e<t.length;e++){let n=t[e],i=+n.dataset.colIndex;r.current.has(i)||r.current.set(i,[]),r.current.get(i).push(n)}},[]);return{rowIndexMapRef:t,colIndexMapRef:n,cellIndexMapRef:r,mapStaleRef:i,buildMaps:(0,c.useCallback)((t,n)=>{if(a(),n){if(t===`row`)o(n);else if(t===`column`){let t=e.headerRef?.current;t&&s(t),l(n)}}},[e.headerRef,a,o,s,l]),rebuildRowMap:(0,c.useCallback)(e=>{i.current=!1,o(e)},[o]),rebuildColumnMaps:(0,c.useCallback)((e,t)=>{i.current=!1,t&&s(t),l(e)},[s,l]),checkStaleness:(0,c.useCallback)(()=>{if(!i.current){if(t.current.size>0){let e=t.current.values().next().value;if(e&&!e.outer.isConnected){i.current=!0;return}}if(n.current.size>0){let e=n.current.values().next().value;e&&!e.outer.isConnected&&(i.current=!0)}}},[]),clearMaps:a}},A=(e,t)=>{let n=e,r=0,i=t.length-1;for(;r<i;){let e=Math.floor((r+i)/2),a=t[e];if(a.itemTop<=n&&n<=a.itemBottom)return n<a.itemTop+a.height/2?+a.index:+a.index+1;n<a.itemTop?i=e-1:r=e+1}return+t[r].index},j=(e,t)=>{let n=e,r=0,i=t.length-1;for(;r<i;){let e=Math.floor((r+i)/2),a=t[e];if(a.itemLeft<=n&&n<=a.itemRight)return n<a.itemLeft+a.width/2?+a.index:+a.index+1;n<a.itemLeft?i=e-1:r=e+1}return+t[r].index};function M(e,t,n){let r=n.getBoundingClientRect();return e>r.left+n.clientWidth||t>r.top+n.clientHeight}var N=(e,t,n)=>{let r=Number(e);return t!==void 0&&r<t||n!==void 0&&r>n},ee=(e,t)=>{let n=(0,c.useRef)(null),r=(0,c.useRef)(null),i=(0,c.useCallback)(()=>{let n=e.bodyRef?.current;if(!n)return null;let r=n.scrollTop,i=n.getBoundingClientRect().top,a=n.querySelectorAll(`.draggable[data-type="row"]`),o=[];for(let e=0;e<a.length;e++){let t=a[e];if(t.dataset.index===void 0)continue;let n=t.getBoundingClientRect(),s=n.top-i+r;o.push({height:n.height,itemTop:s,itemBottom:s+n.height,index:t.dataset.index})}let{start:s,end:c}=t.rowDragRange;return(s||c)&&(o=o.filter(e=>(!s||+e.index>=s)&&(!c||+e.index<=c))),o},[e.bodyRef,t.rowDragRange]),a=(0,c.useCallback)(()=>{let n=e.headerRef?.current;if(!n||!n.children[0])return null;let r=Array.from(n.children[0].children).map(e=>{let t=e.getBoundingClientRect();return{left:t.left,width:t.width,itemLeft:t.left,itemRight:t.left+t.width,index:e.dataset.index}}).filter(e=>e.index!==void 0),{start:i,end:a}=t.columnDragRange??{};return(i!==void 0||a!==void 0)&&(r=r.filter(e=>{let t=+e.index;return(i===void 0||t>=i)&&(a===void 0||t<=a)})),r},[e.headerRef,t.columnDragRange]);return{computeRowItems:i,computeColumnItems:a,resolveDropIndex:(0,c.useCallback)((e,t,r,o,s,c,l)=>{let u;if(r===`row`){if(u=n.current,u||(u=i(),n.current=u),u&&u.length>0)return A(t-c.y+l.height/2-o.top+s,u)}else if(u=n.current,u||(u=a(),n.current=u),u&&u.length>0)return j(e-c.x+l.width/2,u);return 0},[i,a]),cachedItemsRef:n,cachedContainerRef:r}},P=200,F=30,I=5;function te(e){let t=e,n=!1;for(;t;){if(t.dataset?.dragHandle===`true`&&(n=!0),t.dataset?.contextid||t.dataset?.disabled===`true`)return null;if(t.dataset?.id)return{element:t,foundHandle:n};t=t.parentNode}return null}var L=(e,t,n,r,i,a)=>{let{startAutoScroll:o,stopAutoScroll:s,setContainerRect:l,pointerRef:d,isAutoScrollingVertical:f,isAutoScrollingHorizontal:p}=y(e),m=k(e),{rowIndexMapRef:h,colIndexMapRef:g,cellIndexMapRef:_,mapStaleRef:v}=m,{applyShiftTransforms:b,clearShiftTransforms:x,prevTargetIndexRef:S,draggedSizeRef:C}=O(e,h,g,_),T=ee(e,i),{resolveDropIndex:E,cachedItemsRef:D,cachedContainerRef:A}=T,j=(0,c.useRef)(null),N=(0,c.useRef)({x:0,y:0}),L=(0,c.useRef)(null),R=(0,c.useRef)(null),z=(0,c.useRef)(!1),B=(0,c.useRef)(!1),V=(0,c.useRef)(null),H=(0,c.useRef)(null),U=(0,c.useRef)([]),W=(0,c.useCallback)((t,r,i)=>{let a=te(t.target);if(!a)return;let{element:o,foundHandle:s}=a;if(!s&&o.querySelector(`[data-drag-handle]`))return;let c=o.dataset.id,u=+o.dataset.index,f=o.dataset.type;j.current=f??null,L.current=u,R.current=null,V.current=null,U.current=[],S.current=null,z.current=!1;let p=f===`row`?e.bodyRef?.current?.scrollLeft??0:0,h=o.getBoundingClientRect();C.current={width:h.width,height:h.height};let g={x:r-h.left-p,y:i-h.top};N.current=g,d.current={x:r,y:i};let _={x:h.left+p,y:h.top};D.current=f===`row`?T.computeRowItems():T.computeColumnItems();let v=e.bodyRef?.current;v&&(A.current=v.getBoundingClientRect(),l(A.current)),m.buildMaps(f,v??null);let y=e.tableRef?.current;y&&(y.style.touchAction=`none`);let b=o.firstElementChild;b&&(b.style.opacity=`0`,b.style.pointerEvents=`none`,b.style.zIndex=`2`,b.style.cursor=`-webkit-grabbing`),H.current=b;let x=e.cloneRef?.current;if(x){if(x.innerHTML=``,x.style.transform=`translate(${_.x}px, ${_.y}px)`,B.current=(v?.querySelector(`[data-type="row"]`))?.style.position===`absolute`,f===`row`){let e=o.firstElementChild?.firstElementChild;e&&x.appendChild(e.cloneNode(!0))}else if(f===`column`&&v){let e=String(u),t=o.querySelector(`.th`);if(t){let e=document.createElement(`div`);e.style.flexShrink=`0`,e.style.order=`-1`,e.appendChild(t.cloneNode(!0)),x.appendChild(e)}let n=document.createElement(`div`);n.style.flex=`1`;let r=document.createElement(`div`);r.className=`rbody`,r.style.height=`${v.scrollHeight}px`,r.style.position=`relative`,v.querySelectorAll(`[data-type="row"]`).forEach(t=>{let n=t.cloneNode(!0);if(B.current){let t=n.querySelector(`.tr`);if(t){let n=t.querySelector(`[data-col-index="${e}"]`);for(;t.firstChild;)t.removeChild(t.firstChild);n&&t.appendChild(n)}}else n.querySelectorAll(`[data-col-index]`).forEach(t=>{t.getAttribute(`data-col-index`)!==e&&t.remove()});r.appendChild(n)}),n.appendChild(r),B.current?(n.style.overflow=`auto`,n.style.scrollbarWidth=`none`,n.className=`clone-body-strip`):n.style.overflow=`hidden`,x.appendChild(n),V.current=n,U.current=[],v.querySelectorAll(`[data-col-index="${e}"]`).forEach(e=>{e.style.opacity=`0`,U.current.push(e)})}}n({type:`dragStart`,value:{rect:{draggedItemHeight:h.height,draggedItemWidth:h.width},dragged:{initial:g,translate:_,draggedID:c??null,isDragging:!0,sourceIndex:u},dragType:f??null,tableDimensions:{height:(e.tableRef?.current?.offsetHeight??0)-(v?v.offsetHeight-v.clientHeight:0),width:(e.tableRef?.current?.offsetWidth??0)-(v?v.offsetWidth-v.clientWidth:0)}}});let w=v?.scrollLeft??0,E=v?.scrollTop??0;requestAnimationFrame(()=>{let t=e.cloneRef?.current;t&&(f===`row`?t.scrollLeft=w:V.current&&(V.current.scrollTop=E))})},[n,e,d,l,T,m,D,A,C,S]),G=(0,c.useCallback)((t,r,i,o,s)=>{let c=e.cloneRef?.current;c&&(c.style.visibility=`hidden`),H.current&&=(H.current.style.opacity=``,H.current.style.pointerEvents=``,H.current.style.zIndex=``,H.current.style.cursor=``,null),U.current.forEach(e=>{e.style.opacity=``}),U.current=[];let l=e.tableRef?.current;l&&(l.style.touchAction=``),(0,u.flushSync)(()=>{a&&t!==null&&r!==null&&(i===`row`||i===`column`)&&a({sourceIndex:t,targetIndex:r,dragType:i}),n({type:`dragEnd`,value:{targetIndex:r,sourceIndex:t}})}),x();let d=e.bodyRef?.current;d&&(d.scrollTop=o,d.scrollLeft=s,requestAnimationFrame(()=>{d.scrollTop=o,d.scrollLeft=s}))},[n,e.bodyRef,e.cloneRef,e.tableRef,x,a]),K=(0,c.useCallback)(()=>{if(z.current)return;z.current=!0,Y(),setTimeout(()=>{X.current=!1},400);let t=R.current,n=L.current,r=j.current,i=e.bodyRef?.current,a=i?.scrollTop??0,o=i?.scrollLeft??0;D.current=null,A.current=null,s(),j.current=null,L.current=null,R.current=null;let c=e.cloneRef?.current,l=e.placeholderRef?.current;if(c&&l&&l.style.display!==`none`){let e=parseFloat(l.style.left)||0,i=parseFloat(l.style.top)||0;c.style.transition=`transform ${P}ms cubic-bezier(0.2, 0, 0, 1)`,c.style.transform=`translate(${e}px, ${i}px)`,setTimeout(()=>G(n,t,r,a,o),P)}else G(n,t,r,a,o)},[s,e.bodyRef,e.placeholderRef,e.cloneRef,G]),q=(0,c.useRef)(()=>{}),{touchStart:J,cancelLongPress:Y,isTouchActiveRef:X}=w(e,W,K,(e,t)=>q.current(e,t)),Z=(0,c.useCallback)(e=>{e.button===0&&e.target!==e.currentTarget&&(X.current||M(e.clientX,e.clientY,e.target)||W(e,e.clientX,e.clientY))},[W,X]),Q=(0,c.useCallback)((t,n)=>{if(z.current)return;let i=N.current;d.current.x=t,d.current.y=n;let a=e.bodyRef?.current;if(!a)return;let c=A.current;(!c||v.current)&&(c=a.getBoundingClientRect(),A.current=c);let l=a.scrollLeft,u=a.scrollTop,h=e.cloneRef?.current;h&&(h.style.transform=`translate(${t-i.x}px, ${n-i.y}px)`,j.current===`row`?h.scrollLeft=l:V.current&&(V.current.scrollTop=u));let g=j.current||r;if(B.current&&m.checkStaleness(),v.current&&(D.current=null,R.current=null,S.current=null,B.current?g===`row`?m.rebuildRowMap(a):m.rebuildColumnMaps(a,e.headerRef?.current??null):v.current=!1),g===`row`)if(n<c.top+F)o(-I,a,`vertical`),v.current=!0;else if(n>c.bottom-F)o(I,a,`vertical`),v.current=!0;else{let t=f.current;s(),t&&requestAnimationFrame(()=>{let t=e.bodyRef?.current;if(!t)return;B.current&&m.rebuildRowMap(t),D.current=null;let n=t.getBoundingClientRect();A.current=n;let r=E(d.current.x,d.current.y,`row`,n,t.scrollTop,N.current,C.current);R.current=r,S.current=null,b(L.current,r,`row`)})}else if(t<c.left+F)o(-I,a,`horizontal`),v.current=!0;else if(t>c.right-F)o(I,a,`horizontal`),v.current=!0;else{let t=p.current;s(),t&&requestAnimationFrame(()=>{let t=e.bodyRef?.current;if(!t)return;B.current&&m.rebuildColumnMaps(t,e.headerRef?.current??null),D.current=null;let n=t.getBoundingClientRect();A.current=n;let r=E(d.current.x,d.current.y,`column`,n,t.scrollTop,N.current,C.current);R.current=r,S.current=null,b(L.current,r,`column`)})}let _=E(t,n,g,c,u,i,C.current);_!==R.current&&(R.current=_,requestAnimationFrame(()=>b(L.current,_,g)))},[d,e.bodyRef,e.cloneRef,e.headerRef,r,o,s,f,p,m,E,b,D,A,v,S,C]);q.current=Q;let $=(0,c.useCallback)(()=>{Y(),D.current=null,A.current=null;let t=e.cloneRef?.current;t&&(t.style.visibility=`hidden`);let r=e.tableRef?.current;r&&(r.style.touchAction=``),n({type:`dragEnd`,value:{targetIndex:null,sourceIndex:null}}),s(),x(),j.current=null,L.current=null,R.current=null},[Y,D,A,e.cloneRef,e.tableRef,n,s,x]);return(0,c.useLayoutEffect)(()=>{if(!t.isDragging){x();let t=e.cloneRef?.current;t&&(t.style.transition=``,t.style.transform=`translate(0px, 0px)`,t.style.visibility=``,t.scrollLeft=0,t.innerHTML=``)}},[t.isDragging,x,e.cloneRef]),(0,c.useEffect)(()=>{if(!t.isDragging)return;let e=0,n=0,r=!1,i=t=>{e=t.clientX,n=t.clientY,r||(r=!0,requestAnimationFrame(()=>{r=!1,Q(e,n)}))},a=()=>K(),o=e=>{e.key===`Escape`&&$()};return window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,a),window.addEventListener(`pointercancel`,a),window.addEventListener(`keydown`,o),()=>{window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,a),window.removeEventListener(`pointercancel`,a),window.removeEventListener(`keydown`,o)}},[t.isDragging,Q,K,$]),{dragStart:Z,touchStart:J}},R={columnDragRange:{start:void 0,end:void 0},rowDragRange:{start:void 0,end:void 0},defaultSizing:50};function z(e,t){switch(t.type){case`setDragged`:return{...e,dragged:{...e.dragged,...t.value}};case`setDragType`:return{...e,dragType:t.value};case`setTableDimensions`:return{...e,tableDimensions:t.value};case`setRef`:return{...e,refs:{...e.refs,[t.refName]:t.value}};case`setBodyScrollBarWidth`:return{...e,bodyScrollBarWidth:t.value};case`setWidths`:return{...e,widths:t.value};case`setColumnIds`:return{...e,columnIds:t.value};case`setOptions`:return{...e,options:{...e.options,...t.value}};case`dragStart`:return{...e,rect:t.value.rect,dragged:{...e.dragged,...t.value.dragged},dragType:t.value.dragType,tableDimensions:t.value.tableDimensions};case`dragEnd`:return{...e,dragged:{initial:{x:0,y:0},translate:{x:0,y:0},isDragging:!1,draggedID:null,targetIndex:t.value?.targetIndex??null,sourceIndex:t.value?.sourceIndex??null},dragType:null,rect:{draggedItemWidth:0,draggedItemHeight:0}};default:throw Error(`Unhandled action`)}}var B={dragged:{initial:{x:0,y:0},translate:{x:0,y:0},isDragging:!1,draggedID:null,targetIndex:null,sourceIndex:null},dragType:null,rect:{draggedItemWidth:0,draggedItemHeight:0},tableDimensions:{height:0,width:0},refs:{tableRef:{current:null},bodyRef:{current:null},headerRef:{current:null},cloneRef:{current:null},placeholderRef:{current:null}},bodyScrollBarWidth:0,options:R,widths:[],columnIds:[]},V={position:`relative`,display:`flex`,flexFlow:`column`},H={position:`fixed`,pointerEvents:`none`,zIndex:3,top:0,left:0,display:`none`},U=(0,c.forwardRef)(({children:e,className:t,style:n,options:r,onDragEnd:i,renderPlaceholder:a},o)=>{let s=(0,c.useRef)(null),u=(0,c.useRef)(null),d=(0,c.useRef)(null);(0,c.useImperativeHandle)(o,()=>s.current,[]);let[m]=(0,c.useState)(()=>_(z,B)),h=(0,c.useSyncExternalStore)(m.subscribe,m.getState),g=m.dispatch;(0,c.useEffect)(()=>{g({type:`setRef`,refName:`tableRef`,value:s}),g({type:`setRef`,refName:`cloneRef`,value:u}),g({type:`setRef`,refName:`placeholderRef`,value:d})},[s,g]),(0,c.useEffect)(()=>{let e=()=>{s.current&&g({type:`setTableDimensions`,value:{height:s.current.offsetHeight,width:s.current.offsetWidth}})};return e(),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[s,g]),(0,c.useEffect)(()=>{r&&g({type:`setOptions`,value:r})},[r,g]);let{dragStart:v,touchStart:y}=L(h.refs,h.dragged,g,h.dragType,h.options,i),b=(0,c.useMemo)(()=>({position:`fixed`,zIndex:`5`,pointerEvents:`none`,top:0,left:0,display:`flex`,flexDirection:`column`,height:h.dragType===`row`?h.rect.draggedItemHeight:`${h.tableDimensions.height}px`,width:h.dragType===`column`?`${h.rect.draggedItemWidth}px`:`${h.tableDimensions.width}px`,overflow:`scroll`,scrollbarWidth:`none`,boxShadow:h.dragged.isDragging?`0 0 10px 0 rgba(0, 0, 0, 0.1)`:`none`}),[h.dragType,h.dragged.isDragging,h.rect.draggedItemHeight,h.rect.draggedItemWidth,h.tableDimensions.height,h.tableDimensions.width]);return(0,l.jsx)(p.Provider,{value:m,children:(0,l.jsxs)(f,{className:h.dragged.isDragging?`is-dragging`:``,children:[(0,l.jsx)(`div`,{id:`portalroot`,style:{...b,visibility:h.dragged.isDragging?`visible`:`hidden`},ref:u}),(0,l.jsx)(`div`,{ref:d,style:H,children:a?a():(0,l.jsx)(`div`,{style:{width:`100%`,height:`100%`}})}),(0,l.jsx)(`div`,{"data-contextid":`context`,ref:s,onMouseDown:v,onTouchStart:y,style:{...V,...n},className:`table ${t??``}`,children:e})]})})});U.displayName=`TableProvider`;var W=(0,c.forwardRef)(({children:e,style:t,className:n},r)=>{let i=(0,c.useRef)(null),a=r||i,o=m(e=>e.bodyScrollBarWidth),s=m(e=>e.dragged.isDragging),u=m(e=>e.refs),d=h(),f=(0,c.useCallback)(e=>`current`in e?e.current:null,[]);(0,c.useEffect)(()=>{i.current&&d({type:`setRef`,refName:`headerRef`,value:i})},[d]);let{HeaderScrollHandle:p}=y(u),g={display:`flex`,flex:`1 0 auto`},_=(0,c.useMemo)(()=>({overflowX:`scroll`,overflowY:`clip`,scrollbarWidth:`none`,display:`flex`,paddingRight:`${o}px`,userSelect:s?`none`:`auto`,...t}),[o,s,t]);return(0,c.useLayoutEffect)(()=>{let e=f(a);e&&d({type:`setWidths`,value:Array.from(e.querySelectorAll(`.th`)).map(e=>{let t=e.getAttribute(`data-width`);return t?parseInt(t,10):0})})},[e,d,f,a]),(0,c.useLayoutEffect)(()=>{let e=f(a);e&&d({type:`setColumnIds`,value:Array.from(e.querySelectorAll(`.draggable`)).map(e=>e.getAttribute(`data-id`)||``)})},[e,d,f,a]),(0,l.jsx)(`div`,{className:`header ${n??``}`,children:(0,l.jsx)(`div`,{className:`thead`,style:_,"data-droppableid":`header`,onScroll:p,ref:a,children:(0,l.jsx)(`div`,{style:g,className:`tr`,children:e})})})});W.displayName=`TableHeader`;var G=(0,c.memo)(({children:e,id:t,index:n,type:r,styles:i={}})=>{let a=m(e=>e.options.rowDragRange),o=m(e=>e.options.columnDragRange),s=(0,c.useMemo)(()=>r===`row`?N(n,a.start,a.end):N(n,o.start,o.end),[n,o.end,o.start,a.end,a.start,r]),u=(0,c.useRef)(null),d=(0,c.useRef)(null),f=(0,c.useMemo)(()=>({cursor:s?`auto`:`-webkit-grab`,display:`flex`}),[s]);return(0,c.useEffect)(()=>{!d.current||!u.current||(d.current.querySelector(`[data-drag-handle]`)?d.current.style.cursor=`auto`:s||(u.current.style.touchAction=`none`))},[e,s]),(0,l.jsx)(`div`,{ref:u,className:`draggable`,"data-id":t,"data-index":n,"data-type":r,"data-disabled":s?`true`:`false`,style:i,children:(0,l.jsx)(`div`,{ref:d,style:f,children:e})})});G.displayName=`Draggable`;var K=(0,c.memo)(({children:e,style:t,className:n,...r})=>{let i=m(e=>e.options.defaultSizing),{width:a,flex:o,...s}=t??{},u=(0,c.useMemo)(()=>a===void 0?i:typeof a==`number`?a:parseFloat(String(a))||i,[a,i]),d=(0,c.useMemo)(()=>({width:`${u}px`,flex:o===void 0?`${u} 0 auto`:o,boxSizing:`border-box`}),[u,o]);return(0,l.jsx)(G,{...r,styles:d,type:`column`,children:(0,l.jsx)(`div`,{className:`th ${n??``}`,"data-width":u,style:{width:`100%`,...s,boxSizing:`border-box`},children:e})})});K.displayName=`ColumnCell`;var q={display:`flex`,overflow:`hidden`,flex:1},J=(0,c.forwardRef)(({children:e,style:t,className:n},r)=>{let i=(0,c.useRef)(null);(0,c.useImperativeHandle)(r,()=>i.current,[]);let a=m(e=>e.dragged.isDragging),o=m(e=>e.refs),s=h();(0,c.useEffect)(()=>{s({type:`setRef`,refName:`bodyRef`,value:i})},[s,i]);let{BodyScrollHandle:u}=y(o),d=(0,c.useMemo)(()=>({overflowX:`auto`,overflowY:`auto`,flex:1,userSelect:a?`none`:`auto`,...t}),[a,t]);return(0,c.useLayoutEffect)(()=>{if(i.current){let e=i.current.clientWidth;s({type:`setBodyScrollBarWidth`,value:i.current.offsetWidth-e})}},[s,i]),(0,l.jsx)(`div`,{className:`body ${n??``}`,style:q,children:(0,l.jsx)(`div`,{className:`ibody`,style:d,"data-droppableid":`body`,onScroll:u,ref:i,children:e})})}),Y={display:`flex`,flex:`1 0 auto`,minHeight:`24px`},X=(0,c.memo)(({children:e,style:t,className:n,...r})=>{let i=(0,c.useMemo)(()=>t?{...Y,...t}:Y,[t]),a=(0,d.default)(`tr`,n);return(0,l.jsx)(G,{...r,type:`row`,children:(0,l.jsx)(`div`,{className:a,style:i,children:e})})});X.displayName=`BodyRow`;var Z=(0,c.memo)(({children:e,style:t,className:n,...r})=>{let{index:i}=r,a=m(e=>e.widths),o=m(e=>e.options.defaultSizing),s=(0,c.useMemo)(()=>a[i]??o,[a,i,o]),u=(0,c.useMemo)(()=>({display:`inline-flex`,width:`${s}px`,flex:`${s} 0 auto`,...t,boxSizing:`border-box`}),[s,t]);return(0,l.jsx)(`div`,{className:`td ${n??``}`,style:u,"data-col-index":i,children:e})});Z.displayName=`RowCell`;var Q=(0,c.memo)(({children:e,className:t,style:n})=>(0,l.jsx)(`div`,{"data-drag-handle":`true`,className:t,style:{cursor:`-webkit-grab`,touchAction:`none`,display:`inline-flex`,alignItems:`center`,...n},children:e}));Q.displayName=`DragHandle`,exports.BodyRow=X,exports.ColumnCell=K,exports.DragHandle=Q,exports.RowCell=Z,exports.TableBody=J,exports.TableContainer=U,exports.TableHeader=W,exports.useTable=g,exports.useTableDispatch=h,exports.useTableStore=m;
|
package/dist/index.es.js
CHANGED
|
@@ -193,7 +193,7 @@ function O(e, t, n, i) {
|
|
|
193
193
|
}
|
|
194
194
|
//#endregion
|
|
195
195
|
//#region src/hooks/useShiftTransforms.ts
|
|
196
|
-
var k = "transform 450ms cubic-bezier(0.2, 0, 0, 1)", A = (e, t, n, i) => {
|
|
196
|
+
var k = "transform 450ms cubic-bezier(0.2, 0, 0, 1)", A = "transform 150ms cubic-bezier(0.2, 0, 0, 1)", j = () => typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches, M = (e, t, n, i) => {
|
|
197
197
|
let a = l({
|
|
198
198
|
width: 0,
|
|
199
199
|
height: 0
|
|
@@ -203,9 +203,16 @@ var k = "transform 450ms cubic-bezier(0.2, 0, 0, 1)", A = (e, t, n, i) => {
|
|
|
203
203
|
o && (o.style.display = "none");
|
|
204
204
|
return;
|
|
205
205
|
}
|
|
206
|
-
let s = a.current, c = t.getBoundingClientRect(), l = e.tableRef?.current?.getBoundingClientRect(), u = (n ?? 0) < (r ?? 0);
|
|
207
|
-
o.style.display = "block", i === "row" ? (o.style.top = `${
|
|
208
|
-
|
|
206
|
+
let s = a.current, c = t.getBoundingClientRect(), l = e.tableRef?.current?.getBoundingClientRect(), u = e.bodyRef?.current, d = u ? u.offsetWidth - u.clientWidth : 0, f = u ? u.offsetHeight - u.clientHeight : 0, p = (n ?? 0) < (r ?? 0), m = o.style.display === "none", h = parseFloat(o.style.top) || 0, g = parseFloat(o.style.left) || 0;
|
|
207
|
+
if (o.style.transition = "", o.style.transform = "", o.style.display = "block", i === "row" ? (o.style.top = `${p ? c.top + c.height - s.height : c.top}px`, o.style.left = `${l?.left ?? c.left}px`, o.style.width = `${(l?.width ?? c.width) - d}px`, o.style.height = `${s.height}px`) : (o.style.top = `${l?.top ?? c.top}px`, o.style.left = `${p ? c.left + c.width - s.width : c.left}px`, o.style.width = `${s.width}px`, o.style.height = `${(l?.height ?? c.height) - f}px`), !m && !j()) {
|
|
208
|
+
let e = g - (parseFloat(o.style.left) || 0), t = h - (parseFloat(o.style.top) || 0);
|
|
209
|
+
(e !== 0 || t !== 0) && (o.style.transform = `translate(${e}px, ${t}px)`, o.offsetHeight, o.style.transition = A, o.style.transform = "translate(0, 0)");
|
|
210
|
+
}
|
|
211
|
+
}, [
|
|
212
|
+
e.placeholderRef,
|
|
213
|
+
e.tableRef,
|
|
214
|
+
e.bodyRef
|
|
215
|
+
]);
|
|
209
216
|
return {
|
|
210
217
|
applyShiftTransforms: r((e, r, l) => {
|
|
211
218
|
if (e === null || r === null) return;
|
|
@@ -214,7 +221,7 @@ var k = "transform 450ms cubic-bezier(0.2, 0, 0, 1)", A = (e, t, n, i) => {
|
|
|
214
221
|
let y = (t, n, i) => {
|
|
215
222
|
let a = (t, a, o) => {
|
|
216
223
|
let c = "";
|
|
217
|
-
t > e && t <= r ? c = `translate${n}(-${i}px)` : t < e && t >= r && (c = `translate${n}(${i}px)`), o.style.transform = c, o.style.transition = t === e ? "none" : k, c && s.current.add(o), t === r ? a.setAttribute("data-drop-target", "true") : a.removeAttribute("data-drop-target");
|
|
224
|
+
t > e && t <= r ? c = `translate${n}(-${i}px)` : t < e && t >= r && (c = `translate${n}(${i}px)`), o.style.transform = c, o.style.transition = t === e || j() ? "none" : k, c && s.current.add(o), t === r ? a.setAttribute("data-drop-target", "true") : a.removeAttribute("data-drop-target");
|
|
218
225
|
};
|
|
219
226
|
if (m) for (let [e, { outer: n, inner: r }] of t) a(e, n, r);
|
|
220
227
|
else for (let e = h; e <= g; e++) {
|
|
@@ -228,7 +235,7 @@ var k = "transform 450ms cubic-bezier(0.2, 0, 0, 1)", A = (e, t, n, i) => {
|
|
|
228
235
|
let t = i.current, a = u.current, o = (t, n, i) => {
|
|
229
236
|
let o = "";
|
|
230
237
|
t > e && t <= r ? o = `translateX(-${f.width}px)` : t < e && t >= r && (o = `translateX(${f.width}px)`);
|
|
231
|
-
for (let e of n) a.get(e) !== o && (e.style.transform = o, i && (e.style.transition = k), a.set(e, o), o && c.current.add(e));
|
|
238
|
+
for (let e of n) a.get(e) !== o && (e.style.transform = o, i && (e.style.transition = j() ? "none" : k), a.set(e, o), o && c.current.add(e));
|
|
232
239
|
};
|
|
233
240
|
if (m) for (let [e, n] of t) o(e, n, !0);
|
|
234
241
|
else for (let e = h; e <= g; e++) {
|
|
@@ -258,7 +265,7 @@ var k = "transform 450ms cubic-bezier(0.2, 0, 0, 1)", A = (e, t, n, i) => {
|
|
|
258
265
|
prevTargetIndexRef: o,
|
|
259
266
|
draggedSizeRef: a
|
|
260
267
|
};
|
|
261
|
-
},
|
|
268
|
+
}, ee = (e) => {
|
|
262
269
|
let t = l(/* @__PURE__ */ new Map()), n = l(/* @__PURE__ */ new Map()), i = l(/* @__PURE__ */ new Map()), a = l(!1), o = r(() => {
|
|
263
270
|
t.current.clear(), n.current.clear(), i.current.clear();
|
|
264
271
|
}, []), s = r((e) => {
|
|
@@ -336,7 +343,7 @@ var k = "transform 450ms cubic-bezier(0.2, 0, 0, 1)", A = (e, t, n, i) => {
|
|
|
336
343
|
}, []),
|
|
337
344
|
clearMaps: o
|
|
338
345
|
};
|
|
339
|
-
},
|
|
346
|
+
}, N = (e, t) => {
|
|
340
347
|
let n = e, r = 0, i = t.length - 1;
|
|
341
348
|
for (; r < i;) {
|
|
342
349
|
let e = Math.floor((r + i) / 2), a = t[e];
|
|
@@ -344,7 +351,7 @@ var k = "transform 450ms cubic-bezier(0.2, 0, 0, 1)", A = (e, t, n, i) => {
|
|
|
344
351
|
n < a.itemTop ? i = e - 1 : r = e + 1;
|
|
345
352
|
}
|
|
346
353
|
return +t[r].index;
|
|
347
|
-
},
|
|
354
|
+
}, P = (e, t) => {
|
|
348
355
|
let n = e, r = 0, i = t.length - 1;
|
|
349
356
|
for (; r < i;) {
|
|
350
357
|
let e = Math.floor((r + i) / 2), a = t[e];
|
|
@@ -353,14 +360,14 @@ var k = "transform 450ms cubic-bezier(0.2, 0, 0, 1)", A = (e, t, n, i) => {
|
|
|
353
360
|
}
|
|
354
361
|
return +t[r].index;
|
|
355
362
|
};
|
|
356
|
-
function
|
|
363
|
+
function te(e, t, n) {
|
|
357
364
|
let r = n.getBoundingClientRect();
|
|
358
365
|
return e > r.left + n.clientWidth || t > r.top + n.clientHeight;
|
|
359
366
|
}
|
|
360
|
-
var
|
|
367
|
+
var F = (e, t, n) => {
|
|
361
368
|
let r = Number(e);
|
|
362
369
|
return t !== void 0 && r < t || n !== void 0 && r > n;
|
|
363
|
-
},
|
|
370
|
+
}, ne = (e, t) => {
|
|
364
371
|
let n = l(null), i = l(null), a = r(() => {
|
|
365
372
|
let n = e.bodyRef?.current;
|
|
366
373
|
if (!n) return null;
|
|
@@ -402,14 +409,14 @@ var P = (e, t, n) => {
|
|
|
402
409
|
resolveDropIndex: r((e, t, r, i, s, c, l) => {
|
|
403
410
|
let u;
|
|
404
411
|
if (r === "row") {
|
|
405
|
-
if (u = n.current, u || (u = a(), n.current = u), u && u.length > 0) return
|
|
406
|
-
} else if (u = n.current, u || (u = o(), n.current = u), u && u.length > 0) return
|
|
412
|
+
if (u = n.current, u || (u = a(), n.current = u), u && u.length > 0) return N(t - c.y + l.height / 2 - i.top + s, u);
|
|
413
|
+
} else if (u = n.current, u || (u = o(), n.current = u), u && u.length > 0) return P(e - c.x + l.width / 2, u);
|
|
407
414
|
return 0;
|
|
408
415
|
}, [a, o]),
|
|
409
416
|
cachedItemsRef: n,
|
|
410
417
|
cachedContainerRef: i
|
|
411
418
|
};
|
|
412
|
-
},
|
|
419
|
+
}, I = 200, L = 30, R = 5;
|
|
413
420
|
function re(e) {
|
|
414
421
|
let t = e, n = !1;
|
|
415
422
|
for (; t;) {
|
|
@@ -422,17 +429,17 @@ function re(e) {
|
|
|
422
429
|
}
|
|
423
430
|
return null;
|
|
424
431
|
}
|
|
425
|
-
var
|
|
426
|
-
let { startAutoScroll: u, stopAutoScroll: d, setContainerRect: f, pointerRef: p, isAutoScrollingVertical: h, isAutoScrollingHorizontal: g } = C(e), _ =
|
|
432
|
+
var z = (e, t, n, i, o, c) => {
|
|
433
|
+
let { startAutoScroll: u, stopAutoScroll: d, setContainerRect: f, pointerRef: p, isAutoScrollingVertical: h, isAutoScrollingHorizontal: g } = C(e), _ = ee(e), { rowIndexMapRef: v, colIndexMapRef: y, cellIndexMapRef: b, mapStaleRef: x } = _, { applyShiftTransforms: S, clearShiftTransforms: w, prevTargetIndexRef: T, draggedSizeRef: E } = M(e, v, y, b), D = ne(e, o), { resolveDropIndex: k, cachedItemsRef: A, cachedContainerRef: j } = D, N = l(null), P = l({
|
|
427
434
|
x: 0,
|
|
428
435
|
y: 0
|
|
429
|
-
}),
|
|
436
|
+
}), F = l(null), z = l(null), B = l(!1), V = l(!1), H = l(null), U = l(null), W = l([]), G = r((t, r, i) => {
|
|
430
437
|
let a = re(t.target);
|
|
431
438
|
if (!a) return;
|
|
432
439
|
let { element: o, foundHandle: s } = a;
|
|
433
440
|
if (!s && o.querySelector("[data-drag-handle]")) return;
|
|
434
441
|
let c = o.dataset.id, l = +o.dataset.index, u = o.dataset.type;
|
|
435
|
-
|
|
442
|
+
N.current = u ?? null, F.current = l, z.current = null, H.current = null, W.current = [], T.current = null, B.current = !1;
|
|
436
443
|
let d = u === "row" ? e.bodyRef?.current?.scrollLeft ?? 0 : 0, m = o.getBoundingClientRect();
|
|
437
444
|
E.current = {
|
|
438
445
|
width: m.width,
|
|
@@ -442,7 +449,7 @@ var L = (e, t, n, i, o, c) => {
|
|
|
442
449
|
x: r - m.left - d,
|
|
443
450
|
y: i - m.top
|
|
444
451
|
};
|
|
445
|
-
|
|
452
|
+
P.current = h, p.current = {
|
|
446
453
|
x: r,
|
|
447
454
|
y: i
|
|
448
455
|
};
|
|
@@ -450,9 +457,9 @@ var L = (e, t, n, i, o, c) => {
|
|
|
450
457
|
x: m.left + d,
|
|
451
458
|
y: m.top
|
|
452
459
|
};
|
|
453
|
-
|
|
460
|
+
A.current = u === "row" ? D.computeRowItems() : D.computeColumnItems();
|
|
454
461
|
let v = e.bodyRef?.current;
|
|
455
|
-
v && (
|
|
462
|
+
v && (j.current = v.getBoundingClientRect(), f(j.current)), _.buildMaps(u, v ?? null);
|
|
456
463
|
let y = e.tableRef?.current;
|
|
457
464
|
y && (y.style.touchAction = "none");
|
|
458
465
|
let b = o.firstElementChild;
|
|
@@ -522,8 +529,8 @@ var L = (e, t, n, i, o, c) => {
|
|
|
522
529
|
f,
|
|
523
530
|
D,
|
|
524
531
|
_,
|
|
525
|
-
|
|
526
|
-
|
|
532
|
+
A,
|
|
533
|
+
j,
|
|
527
534
|
E,
|
|
528
535
|
T
|
|
529
536
|
]), K = r((t, r, i, a, o) => {
|
|
@@ -558,15 +565,15 @@ var L = (e, t, n, i, o, c) => {
|
|
|
558
565
|
c
|
|
559
566
|
]), q = r(() => {
|
|
560
567
|
if (B.current) return;
|
|
561
|
-
B.current = !0,
|
|
562
|
-
|
|
568
|
+
B.current = !0, Y(), setTimeout(() => {
|
|
569
|
+
X.current = !1;
|
|
563
570
|
}, 400);
|
|
564
|
-
let t = z.current, n =
|
|
565
|
-
|
|
571
|
+
let t = z.current, n = F.current, r = N.current, i = e.bodyRef?.current, a = i?.scrollTop ?? 0, o = i?.scrollLeft ?? 0;
|
|
572
|
+
A.current = null, j.current = null, d(), N.current = null, F.current = null, z.current = null;
|
|
566
573
|
let s = e.cloneRef?.current, c = e.placeholderRef?.current;
|
|
567
574
|
if (s && c && c.style.display !== "none") {
|
|
568
575
|
let e = parseFloat(c.style.left) || 0, i = parseFloat(c.style.top) || 0;
|
|
569
|
-
s.style.transition = `transform ${
|
|
576
|
+
s.style.transition = `transform ${I}ms cubic-bezier(0.2, 0, 0, 1)`, s.style.transform = `translate(${e}px, ${i}px)`, setTimeout(() => K(n, t, r, a, o), I);
|
|
570
577
|
} else K(n, t, r, a, o);
|
|
571
578
|
}, [
|
|
572
579
|
d,
|
|
@@ -574,49 +581,49 @@ var L = (e, t, n, i, o, c) => {
|
|
|
574
581
|
e.placeholderRef,
|
|
575
582
|
e.cloneRef,
|
|
576
583
|
K
|
|
577
|
-
]), J = l(() => {}), { touchStart:
|
|
578
|
-
e.button === 0 && e.target !== e.currentTarget && (
|
|
579
|
-
}, [G,
|
|
584
|
+
]), J = l(() => {}), { touchStart: ie, cancelLongPress: Y, isTouchActiveRef: X } = O(e, G, q, (e, t) => J.current(e, t)), Z = r((e) => {
|
|
585
|
+
e.button === 0 && e.target !== e.currentTarget && (X.current || te(e.clientX, e.clientY, e.target) || G(e, e.clientX, e.clientY));
|
|
586
|
+
}, [G, X]), Q = r((t, n) => {
|
|
580
587
|
if (B.current) return;
|
|
581
|
-
let r =
|
|
588
|
+
let r = P.current;
|
|
582
589
|
p.current.x = t, p.current.y = n;
|
|
583
590
|
let a = e.bodyRef?.current;
|
|
584
591
|
if (!a) return;
|
|
585
|
-
let o =
|
|
586
|
-
(!o || x.current) && (o = a.getBoundingClientRect(),
|
|
592
|
+
let o = j.current;
|
|
593
|
+
(!o || x.current) && (o = a.getBoundingClientRect(), j.current = o);
|
|
587
594
|
let s = a.scrollLeft, c = a.scrollTop, l = e.cloneRef?.current;
|
|
588
|
-
l && (l.style.transform = `translate(${t - r.x}px, ${n - r.y}px)`,
|
|
589
|
-
let f =
|
|
590
|
-
if (V.current && _.checkStaleness(), x.current && (
|
|
591
|
-
else if (n > o.bottom -
|
|
595
|
+
l && (l.style.transform = `translate(${t - r.x}px, ${n - r.y}px)`, N.current === "row" ? l.scrollLeft = s : H.current && (H.current.scrollTop = c));
|
|
596
|
+
let f = N.current || i;
|
|
597
|
+
if (V.current && _.checkStaleness(), x.current && (A.current = null, z.current = null, T.current = null, V.current ? f === "row" ? _.rebuildRowMap(a) : _.rebuildColumnMaps(a, e.headerRef?.current ?? null) : x.current = !1), f === "row") if (n < o.top + L) u(-R, a, "vertical"), x.current = !0;
|
|
598
|
+
else if (n > o.bottom - L) u(R, a, "vertical"), x.current = !0;
|
|
592
599
|
else {
|
|
593
600
|
let t = h.current;
|
|
594
601
|
d(), t && requestAnimationFrame(() => {
|
|
595
602
|
let t = e.bodyRef?.current;
|
|
596
603
|
if (!t) return;
|
|
597
|
-
V.current && _.rebuildRowMap(t),
|
|
604
|
+
V.current && _.rebuildRowMap(t), A.current = null;
|
|
598
605
|
let n = t.getBoundingClientRect();
|
|
599
|
-
|
|
600
|
-
let r = k(p.current.x, p.current.y, "row", n, t.scrollTop,
|
|
601
|
-
z.current = r, T.current = null, S(
|
|
606
|
+
j.current = n;
|
|
607
|
+
let r = k(p.current.x, p.current.y, "row", n, t.scrollTop, P.current, E.current);
|
|
608
|
+
z.current = r, T.current = null, S(F.current, r, "row");
|
|
602
609
|
});
|
|
603
610
|
}
|
|
604
|
-
else if (t < o.left +
|
|
605
|
-
else if (t > o.right -
|
|
611
|
+
else if (t < o.left + L) u(-R, a, "horizontal"), x.current = !0;
|
|
612
|
+
else if (t > o.right - L) u(R, a, "horizontal"), x.current = !0;
|
|
606
613
|
else {
|
|
607
614
|
let t = g.current;
|
|
608
615
|
d(), t && requestAnimationFrame(() => {
|
|
609
616
|
let t = e.bodyRef?.current;
|
|
610
617
|
if (!t) return;
|
|
611
|
-
V.current && _.rebuildColumnMaps(t, e.headerRef?.current ?? null),
|
|
618
|
+
V.current && _.rebuildColumnMaps(t, e.headerRef?.current ?? null), A.current = null;
|
|
612
619
|
let n = t.getBoundingClientRect();
|
|
613
|
-
|
|
614
|
-
let r = k(p.current.x, p.current.y, "column", n, t.scrollTop,
|
|
615
|
-
z.current = r, T.current = null, S(
|
|
620
|
+
j.current = n;
|
|
621
|
+
let r = k(p.current.x, p.current.y, "column", n, t.scrollTop, P.current, E.current);
|
|
622
|
+
z.current = r, T.current = null, S(F.current, r, "column");
|
|
616
623
|
});
|
|
617
624
|
}
|
|
618
625
|
let m = k(t, n, f, o, c, r, E.current);
|
|
619
|
-
m !== z.current && (z.current = m, requestAnimationFrame(() => S(
|
|
626
|
+
m !== z.current && (z.current = m, requestAnimationFrame(() => S(F.current, m, f)));
|
|
620
627
|
}, [
|
|
621
628
|
p,
|
|
622
629
|
e.bodyRef,
|
|
@@ -630,15 +637,15 @@ var L = (e, t, n, i, o, c) => {
|
|
|
630
637
|
_,
|
|
631
638
|
k,
|
|
632
639
|
S,
|
|
633
|
-
|
|
634
|
-
|
|
640
|
+
A,
|
|
641
|
+
j,
|
|
635
642
|
x,
|
|
636
643
|
T,
|
|
637
644
|
E
|
|
638
645
|
]);
|
|
639
|
-
J.current =
|
|
640
|
-
let
|
|
641
|
-
|
|
646
|
+
J.current = Q;
|
|
647
|
+
let $ = r(() => {
|
|
648
|
+
Y(), A.current = null, j.current = null;
|
|
642
649
|
let t = e.cloneRef?.current;
|
|
643
650
|
t && (t.style.visibility = "hidden");
|
|
644
651
|
let r = e.tableRef?.current;
|
|
@@ -648,11 +655,11 @@ var L = (e, t, n, i, o, c) => {
|
|
|
648
655
|
targetIndex: null,
|
|
649
656
|
sourceIndex: null
|
|
650
657
|
}
|
|
651
|
-
}), d(), w(),
|
|
658
|
+
}), d(), w(), N.current = null, F.current = null, z.current = null;
|
|
652
659
|
}, [
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
660
|
+
Y,
|
|
661
|
+
A,
|
|
662
|
+
j,
|
|
656
663
|
e.cloneRef,
|
|
657
664
|
e.tableRef,
|
|
658
665
|
n,
|
|
@@ -673,24 +680,24 @@ var L = (e, t, n, i, o, c) => {
|
|
|
673
680
|
if (!t.isDragging) return;
|
|
674
681
|
let e = 0, n = 0, r = !1, i = (t) => {
|
|
675
682
|
e = t.clientX, n = t.clientY, r || (r = !0, requestAnimationFrame(() => {
|
|
676
|
-
r = !1,
|
|
683
|
+
r = !1, Q(e, n);
|
|
677
684
|
}));
|
|
678
685
|
}, a = () => q(), o = (e) => {
|
|
679
|
-
e.key === "Escape" &&
|
|
686
|
+
e.key === "Escape" && $();
|
|
680
687
|
};
|
|
681
688
|
return window.addEventListener("pointermove", i), window.addEventListener("pointerup", a), window.addEventListener("pointercancel", a), window.addEventListener("keydown", o), () => {
|
|
682
689
|
window.removeEventListener("pointermove", i), window.removeEventListener("pointerup", a), window.removeEventListener("pointercancel", a), window.removeEventListener("keydown", o);
|
|
683
690
|
};
|
|
684
691
|
}, [
|
|
685
692
|
t.isDragging,
|
|
686
|
-
|
|
693
|
+
Q,
|
|
687
694
|
q,
|
|
688
|
-
|
|
695
|
+
$
|
|
689
696
|
]), {
|
|
690
|
-
dragStart:
|
|
691
|
-
touchStart:
|
|
697
|
+
dragStart: Z,
|
|
698
|
+
touchStart: ie
|
|
692
699
|
};
|
|
693
|
-
},
|
|
700
|
+
}, B = {
|
|
694
701
|
columnDragRange: {
|
|
695
702
|
start: void 0,
|
|
696
703
|
end: void 0
|
|
@@ -701,7 +708,7 @@ var L = (e, t, n, i, o, c) => {
|
|
|
701
708
|
},
|
|
702
709
|
defaultSizing: 50
|
|
703
710
|
};
|
|
704
|
-
function
|
|
711
|
+
function V(e, t) {
|
|
705
712
|
switch (t.type) {
|
|
706
713
|
case "setDragged": return {
|
|
707
714
|
...e,
|
|
@@ -779,7 +786,7 @@ function z(e, t) {
|
|
|
779
786
|
default: throw Error("Unhandled action");
|
|
780
787
|
}
|
|
781
788
|
}
|
|
782
|
-
var
|
|
789
|
+
var H = {
|
|
783
790
|
dragged: {
|
|
784
791
|
initial: {
|
|
785
792
|
x: 0,
|
|
@@ -811,24 +818,24 @@ var B = {
|
|
|
811
818
|
placeholderRef: { current: null }
|
|
812
819
|
},
|
|
813
820
|
bodyScrollBarWidth: 0,
|
|
814
|
-
options:
|
|
821
|
+
options: B,
|
|
815
822
|
widths: [],
|
|
816
823
|
columnIds: []
|
|
817
|
-
},
|
|
824
|
+
}, U = {
|
|
818
825
|
position: "relative",
|
|
819
826
|
display: "flex",
|
|
820
827
|
flexFlow: "column"
|
|
821
|
-
},
|
|
828
|
+
}, W = {
|
|
822
829
|
position: "fixed",
|
|
823
830
|
pointerEvents: "none",
|
|
824
831
|
zIndex: 3,
|
|
825
832
|
top: 0,
|
|
826
833
|
left: 0,
|
|
827
834
|
display: "none"
|
|
828
|
-
},
|
|
835
|
+
}, G = t(({ children: e, className: t, style: n, options: r, onDragEnd: i, renderPlaceholder: s }, m) => {
|
|
829
836
|
let h = l(null), v = l(null), y = l(null);
|
|
830
837
|
o(m, () => h.current, []);
|
|
831
|
-
let [b] = u(() => x(
|
|
838
|
+
let [b] = u(() => x(V, H)), S = d(b.subscribe, b.getState), C = b.dispatch;
|
|
832
839
|
a(() => {
|
|
833
840
|
C({
|
|
834
841
|
type: "setRef",
|
|
@@ -862,7 +869,7 @@ var B = {
|
|
|
862
869
|
value: r
|
|
863
870
|
});
|
|
864
871
|
}, [r, C]);
|
|
865
|
-
let { dragStart: w, touchStart: T } =
|
|
872
|
+
let { dragStart: w, touchStart: T } = z(S.refs, S.dragged, C, S.dragType, S.options, i), E = c(() => ({
|
|
866
873
|
position: "fixed",
|
|
867
874
|
zIndex: "5",
|
|
868
875
|
pointerEvents: "none",
|
|
@@ -898,7 +905,7 @@ var B = {
|
|
|
898
905
|
}),
|
|
899
906
|
/* @__PURE__ */ f("div", {
|
|
900
907
|
ref: y,
|
|
901
|
-
style:
|
|
908
|
+
style: W,
|
|
902
909
|
children: s ? s() : /* @__PURE__ */ f("div", { style: {
|
|
903
910
|
width: "100%",
|
|
904
911
|
height: "100%"
|
|
@@ -910,7 +917,7 @@ var B = {
|
|
|
910
917
|
onMouseDown: w,
|
|
911
918
|
onTouchStart: T,
|
|
912
919
|
style: {
|
|
913
|
-
...
|
|
920
|
+
...U,
|
|
914
921
|
...n
|
|
915
922
|
},
|
|
916
923
|
className: `table ${t ?? ""}`,
|
|
@@ -920,10 +927,10 @@ var B = {
|
|
|
920
927
|
})
|
|
921
928
|
});
|
|
922
929
|
});
|
|
923
|
-
|
|
930
|
+
G.displayName = "TableProvider";
|
|
924
931
|
//#endregion
|
|
925
932
|
//#region src/Components/TableHeader.tsx
|
|
926
|
-
var
|
|
933
|
+
var K = t(({ children: e, style: t, className: n }, i) => {
|
|
927
934
|
let o = l(null), u = i || o, d = v((e) => e.bodyScrollBarWidth), p = v((e) => e.dragged.isDragging), m = v((e) => e.refs), h = y(), g = r((e) => "current" in e ? e.current : null, []);
|
|
928
935
|
a(() => {
|
|
929
936
|
o.current && h({
|
|
@@ -989,24 +996,25 @@ var W = t(({ children: e, style: t, className: n }, i) => {
|
|
|
989
996
|
})
|
|
990
997
|
});
|
|
991
998
|
});
|
|
992
|
-
|
|
999
|
+
K.displayName = "TableHeader";
|
|
993
1000
|
//#endregion
|
|
994
1001
|
//#region src/Components/Draggable.tsx
|
|
995
|
-
var
|
|
996
|
-
let o = v((e) => e.options.rowDragRange), s = v((e) => e.options.columnDragRange), u = c(() => r === "row" ?
|
|
1002
|
+
var q = n(({ children: e, id: t, index: n, type: r, styles: i = {} }) => {
|
|
1003
|
+
let o = v((e) => e.options.rowDragRange), s = v((e) => e.options.columnDragRange), u = c(() => r === "row" ? F(n, o.start, o.end) : F(n, s.start, s.end), [
|
|
997
1004
|
n,
|
|
998
1005
|
s.end,
|
|
999
1006
|
s.start,
|
|
1000
1007
|
o.end,
|
|
1001
1008
|
o.start,
|
|
1002
1009
|
r
|
|
1003
|
-
]), d = l(null), p = c(() => ({
|
|
1010
|
+
]), d = l(null), p = l(null), m = c(() => ({
|
|
1004
1011
|
cursor: u ? "auto" : "-webkit-grab",
|
|
1005
1012
|
display: "flex"
|
|
1006
1013
|
}), [u]);
|
|
1007
1014
|
return a(() => {
|
|
1008
|
-
|
|
1015
|
+
!p.current || !d.current || (p.current.querySelector("[data-drag-handle]") ? p.current.style.cursor = "auto" : u || (d.current.style.touchAction = "none"));
|
|
1009
1016
|
}, [e, u]), /* @__PURE__ */ f("div", {
|
|
1017
|
+
ref: d,
|
|
1010
1018
|
className: "draggable",
|
|
1011
1019
|
"data-id": t,
|
|
1012
1020
|
"data-index": n,
|
|
@@ -1014,22 +1022,22 @@ var G = n(({ children: e, id: t, index: n, type: r, styles: i = {} }) => {
|
|
|
1014
1022
|
"data-disabled": u ? "true" : "false",
|
|
1015
1023
|
style: i,
|
|
1016
1024
|
children: /* @__PURE__ */ f("div", {
|
|
1017
|
-
ref:
|
|
1018
|
-
style:
|
|
1025
|
+
ref: p,
|
|
1026
|
+
style: m,
|
|
1019
1027
|
children: e
|
|
1020
1028
|
})
|
|
1021
1029
|
});
|
|
1022
1030
|
});
|
|
1023
|
-
|
|
1031
|
+
q.displayName = "Draggable";
|
|
1024
1032
|
//#endregion
|
|
1025
1033
|
//#region src/Components/ColumnCell.tsx
|
|
1026
|
-
var
|
|
1034
|
+
var J = n(({ children: e, style: t, className: n, ...r }) => {
|
|
1027
1035
|
let i = v((e) => e.options.defaultSizing), { width: a, flex: o, ...s } = t ?? {}, l = c(() => a === void 0 ? i : typeof a == "number" ? a : parseFloat(String(a)) || i, [a, i]), u = c(() => ({
|
|
1028
1036
|
width: `${l}px`,
|
|
1029
1037
|
flex: o === void 0 ? `${l} 0 auto` : o,
|
|
1030
1038
|
boxSizing: "border-box"
|
|
1031
1039
|
}), [l, o]);
|
|
1032
|
-
return /* @__PURE__ */ f(
|
|
1040
|
+
return /* @__PURE__ */ f(q, {
|
|
1033
1041
|
...r,
|
|
1034
1042
|
styles: u,
|
|
1035
1043
|
type: "column",
|
|
@@ -1038,67 +1046,68 @@ var K = n(({ children: e, style: t, className: n, ...r }) => {
|
|
|
1038
1046
|
"data-width": l,
|
|
1039
1047
|
style: {
|
|
1040
1048
|
width: "100%",
|
|
1041
|
-
...s
|
|
1049
|
+
...s,
|
|
1050
|
+
boxSizing: "border-box"
|
|
1042
1051
|
},
|
|
1043
1052
|
children: e
|
|
1044
1053
|
})
|
|
1045
1054
|
});
|
|
1046
1055
|
});
|
|
1047
|
-
|
|
1056
|
+
J.displayName = "ColumnCell";
|
|
1048
1057
|
//#endregion
|
|
1049
1058
|
//#region src/Components/TableBody.tsx
|
|
1050
|
-
var
|
|
1059
|
+
var ie = {
|
|
1051
1060
|
display: "flex",
|
|
1052
1061
|
overflow: "hidden",
|
|
1053
1062
|
flex: 1
|
|
1054
|
-
},
|
|
1063
|
+
}, Y = t(({ children: e, style: t, className: n }, r) => {
|
|
1055
1064
|
let i = l(null);
|
|
1056
1065
|
o(r, () => i.current, []);
|
|
1057
|
-
let
|
|
1066
|
+
let u = v((e) => e.dragged.isDragging), d = v((e) => e.refs), p = y();
|
|
1058
1067
|
a(() => {
|
|
1059
|
-
|
|
1068
|
+
p({
|
|
1060
1069
|
type: "setRef",
|
|
1061
1070
|
refName: "bodyRef",
|
|
1062
1071
|
value: i
|
|
1063
1072
|
});
|
|
1064
|
-
}, [
|
|
1065
|
-
let { BodyScrollHandle:
|
|
1073
|
+
}, [p, i]);
|
|
1074
|
+
let { BodyScrollHandle: m } = C(d), h = c(() => ({
|
|
1066
1075
|
overflowX: "auto",
|
|
1067
1076
|
overflowY: "auto",
|
|
1068
1077
|
flex: 1,
|
|
1069
|
-
userSelect:
|
|
1078
|
+
userSelect: u ? "none" : "auto",
|
|
1070
1079
|
...t
|
|
1071
|
-
}), [
|
|
1072
|
-
return
|
|
1080
|
+
}), [u, t]);
|
|
1081
|
+
return s(() => {
|
|
1073
1082
|
if (i.current) {
|
|
1074
1083
|
let e = i.current.clientWidth;
|
|
1075
|
-
|
|
1084
|
+
p({
|
|
1076
1085
|
type: "setBodyScrollBarWidth",
|
|
1077
1086
|
value: i.current.offsetWidth - e
|
|
1078
1087
|
});
|
|
1079
1088
|
}
|
|
1080
|
-
}, [
|
|
1089
|
+
}, [p, i]), /* @__PURE__ */ f("div", {
|
|
1081
1090
|
className: `body ${n ?? ""}`,
|
|
1082
|
-
style:
|
|
1091
|
+
style: ie,
|
|
1083
1092
|
children: /* @__PURE__ */ f("div", {
|
|
1084
1093
|
className: "ibody",
|
|
1085
|
-
style:
|
|
1094
|
+
style: h,
|
|
1086
1095
|
"data-droppableid": "body",
|
|
1087
|
-
onScroll:
|
|
1096
|
+
onScroll: m,
|
|
1088
1097
|
ref: i,
|
|
1089
1098
|
children: e
|
|
1090
1099
|
})
|
|
1091
1100
|
});
|
|
1092
|
-
}),
|
|
1101
|
+
}), X = {
|
|
1093
1102
|
display: "flex",
|
|
1094
1103
|
flex: "1 0 auto",
|
|
1095
1104
|
minHeight: "24px"
|
|
1096
|
-
},
|
|
1105
|
+
}, Z = n(({ children: e, style: t, className: n, ...r }) => {
|
|
1097
1106
|
let i = c(() => t ? {
|
|
1098
|
-
...
|
|
1107
|
+
...X,
|
|
1099
1108
|
...t
|
|
1100
|
-
} :
|
|
1101
|
-
return /* @__PURE__ */ f(
|
|
1109
|
+
} : X, [t]), a = h("tr", n);
|
|
1110
|
+
return /* @__PURE__ */ f(q, {
|
|
1102
1111
|
...r,
|
|
1103
1112
|
type: "row",
|
|
1104
1113
|
children: /* @__PURE__ */ f("div", {
|
|
@@ -1108,10 +1117,10 @@ var q = {
|
|
|
1108
1117
|
})
|
|
1109
1118
|
});
|
|
1110
1119
|
});
|
|
1111
|
-
|
|
1120
|
+
Z.displayName = "BodyRow";
|
|
1112
1121
|
//#endregion
|
|
1113
1122
|
//#region src/Components/RowCell.tsx
|
|
1114
|
-
var
|
|
1123
|
+
var Q = n(({ children: e, style: t, className: n, ...r }) => {
|
|
1115
1124
|
let { index: i } = r, a = v((e) => e.widths), o = v((e) => e.options.defaultSizing), s = c(() => a[i] ?? o, [
|
|
1116
1125
|
a,
|
|
1117
1126
|
i,
|
|
@@ -1130,20 +1139,21 @@ var Z = n(({ children: e, style: t, className: n, ...r }) => {
|
|
|
1130
1139
|
children: e
|
|
1131
1140
|
});
|
|
1132
1141
|
});
|
|
1133
|
-
|
|
1142
|
+
Q.displayName = "RowCell";
|
|
1134
1143
|
//#endregion
|
|
1135
1144
|
//#region src/Components/DragHandle.tsx
|
|
1136
|
-
var
|
|
1145
|
+
var $ = n(({ children: e, className: t, style: n }) => /* @__PURE__ */ f("div", {
|
|
1137
1146
|
"data-drag-handle": "true",
|
|
1138
1147
|
className: t,
|
|
1139
1148
|
style: {
|
|
1140
1149
|
cursor: "-webkit-grab",
|
|
1150
|
+
touchAction: "none",
|
|
1141
1151
|
display: "inline-flex",
|
|
1142
1152
|
alignItems: "center",
|
|
1143
1153
|
...n
|
|
1144
1154
|
},
|
|
1145
1155
|
children: e
|
|
1146
1156
|
}));
|
|
1147
|
-
|
|
1157
|
+
$.displayName = "DragHandle";
|
|
1148
1158
|
//#endregion
|
|
1149
|
-
export {
|
|
1159
|
+
export { Z as BodyRow, J as ColumnCell, $ as DragHandle, Q as RowCell, Y as TableBody, G as TableContainer, K as TableHeader, b as useTable, y as useTableDispatch, v as useTableStore };
|