Packages
Alpha: Phoenix LiveView components for interactive Selecto query building and data exploration
Current section
Files
Jump to
Current section
Files
priv/static/selecto_components.min.js
var y={mounted(){let d=this.el.dataset.columnId,u=0,i=0,n=null,e=null,r=t=>{t.preventDefault(),t.stopPropagation(),n=this.el.closest("table"),n&&(e=n.querySelector(`th[data-column-id="${d}"]`)||this.el.closest("th"),e&&(u=t.pageX,i=e.offsetWidth,document.body.style.cursor="col-resize",document.body.style.userSelect="none",this.el.classList.add("bg-blue-500"),document.addEventListener("mousemove",c),document.addEventListener("mouseup",h)))},c=t=>{if(!e)return;let l=t.pageX-u,o=Math.max(50,Math.min(500,i+l));e.style.width=`${o}px`,e.style.minWidth=`${o}px`,e.style.maxWidth=`${o}px`;let m=Array.from(e.parentElement.children).indexOf(e);n.querySelectorAll("tbody tr").forEach(a=>{let s=a.children[m];s&&(s.style.width=`${o}px`,s.style.minWidth=`${o}px`,s.style.maxWidth=`${o}px`)})},h=t=>{if(e){let l=e.offsetWidth;this.pushEvent("column_resized",{column_id:d,width:l})}document.body.style.cursor="",document.body.style.userSelect="",this.el.classList.remove("bg-blue-500"),document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",h),e=null,n=null};this.el.addEventListener("mousedown",r),this.handleMouseDown=r},destroyed(){this.handleMouseDown&&this.el.removeEventListener("mousedown",this.handleMouseDown)}},f={ColumnResize:y};export{y as ColumnResize,f as default};