@serenity-is/sleekgrid
Version:
A modern Data Grid / Spreadsheet component
4 lines (3 loc) • 3 kB
JavaScript
var Slick=Slick||{};Slick._=(()=>{var g=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var b=(r,e)=>{for(var t in e)g(r,t,{get:e[t],enumerable:!0})},M=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of f(e))!m.call(r,i)&&i!==t&&g(r,i,{get:()=>e[i],enumerable:!(o=w(e,i))||o.enumerable});return r};var D=r=>M(g({},"__esModule",{value:!0}),r);var E={};b(E,{RowMoveManager:()=>h});var{EventEmitter:c,EventSubscriber:v,H:d}=Slick;var a=class a{constructor(e){this.handler=new v;this.onBeforeMoveRows=new c;this.onMoveRows=new c;this.options=Object.assign({},a.defaults,e)}init(e){this.grid=e,this.handler.subscribe(e.onDragInit,this.handleDragInit.bind(this)).subscribe(e.onDragStart,this.handleDragStart.bind(this)).subscribe(e.onDrag,this.handleDrag.bind(this)).subscribe(e.onDragEnd,this.handleDragEnd.bind(this))}destroy(){var e;(e=this.handler)==null||e.unsubscribeAll()}handleDragInit(e){e.stopImmediatePropagation()}handleDragStart(e,t){let o=this.grid.getCellFromEvent(e);if(this.options.cancelEditOnDrag&&this.grid.getEditorLock().isActive()&&this.grid.getEditorLock().cancelCurrentEdit(),this.grid.getEditorLock().isActive()||!/move|selectAndMove/.test(this.grid.getColumns()[o.cell].behavior))return!1;this.dragging=!0,e.stopImmediatePropagation();let i=this.grid.getSelectedRows();(i.length==0||i.indexOf(o.row)==-1)&&(i=[o.row],this.grid.setSelectedRows(i));let l=this.grid.getOptions().rowHeight;t.selectedRows=i;let n=this.grid.getCanvasNode();t.selectionProxy=n.appendChild(d("div",{class:"slick-reorder-proxy",style:`position: absolute; z-index: 9999; width: ${n.clientWidth}px; height: ${l*i.length}px`})),t.guide=n.appendChild(d("div",{class:"slick-reorder-guide",style:`position: absolute; z-index: 99998; width: ${n.clientWidth}px; top: -1000`})),t.insertBefore=-1}handleDrag(e,t){if(!this.dragging)return;e.stopImmediatePropagation();let i=this.grid.getCanvasNode().getBoundingClientRect(),l=document.documentElement,n=i.top+window.scrollY-l.clientTop,p=e.pageY-n;t.selectionProxy.style.top=p-5+"px";let s=Math.max(0,Math.min(Math.round(p/this.grid.getOptions().rowHeight),this.grid.getDataLength()));if(s!==t.insertBefore){let u={rows:t.selectedRows,insertBefore:s};this.onBeforeMoveRows.notify(u)===!1?(t.guide.style.top="-1000",t.canMove=!1):(t.guide.style.top=s*this.grid.getOptions().rowHeight+"px",t.canMove=!0),t.insertBefore=s}}handleDragEnd(e,t){if(this.dragging&&(this.dragging=!1,e.stopImmediatePropagation(),t.guide.remove(),t.selectionProxy.remove(),t.canMove)){let o={rows:t.selectedRows,insertBefore:t.insertBefore};this.onMoveRows.notify(o)}}};a.defaults={cancelEditOnDrag:!1};var h=a;return D(E);})();
["Data", "Editors", "Formatters", "Plugins"].forEach(ns => Slick._[ns] && (Slick[ns] = Object.assign(Slick[ns] || {}, Slick._[ns])) && delete Slick._[ns]); Object.assign(Slick, Slick._); delete Slick._;
//# sourceMappingURL=slick.rowmovemanager.min.js.map