siegel
Version:
Web application development ecosystem
1 lines • 1.41 kB
JavaScript
import e from"react";import t from"../styles.sass";let n={passive:!0};function r(e){let{width:t,minWidth:n,paddingLeft:r,paddingRight:i,borderLeftWidth:l,borderRightWidth:s}=getComputedStyle(e);return{width:parseInt(t),minWidth:parseInt(n)+parseInt(r)+parseInt(i)+parseInt(l)+parseInt(s)}}export default function(i,l,s,a,o){let u,{columnsConfig:m,resizable:p,theme:v,postProcessHeadRow:d,postProcessHeadCell:c}=i,{toggledColumns:f}=l,h=t.table_resizer;v.table_resizer&&(h+=` ${v.table_resizer}`),(c||d)&&(u={from:a,to:o,allPagesIDs:s});let E=[];m.forEach(t=>{let{label:i,ID:l}=t;if(!f.has(l)){let l={value:i};if(c?.(l,t,u),p){let t=function(){let e,t,i,l,s,a,o,u;function m(){e=i=l=a=o=t=s=u=null,removeEventListener("mousemove",p),removeEventListener("mouseup",m)}function p(n){let r=n.x-e;t&&(r=-r);let m=parseInt(l)+r,p=parseInt(o)-r;(!u||p>=u)&&(!s||m>=s)&&(a.style.width=p+"px",i.style.width=m+"px")}return v=>{v.preventDefault(),v.stopPropagation();let d=v.currentTarget;e=v.nativeEvent.x,i=d.parentElement,t=d.nextSibling,(a=d.nextSibling?i.previousSibling:i.nextSibling)&&({width:l,minWidth:s}=r(i),{width:o,minWidth:u}=r(a),addEventListener("mousemove",p,n),addEventListener("mouseup",m,n))}}();l.value=e.createElement(e.Fragment,null,e.createElement("div",{className:h,onMouseDown:t}),l.value,e.createElement("div",{className:h,onMouseDown:t}))}E.push(l)}});let g=[{children:E}];return d?.(g,u),g}