D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
dateitor
/
www
/
vendor
/
rappasoft
/
laravel-livewire-tables
/
resources
/
js
/
partials
/
Filename :
reorder.min.js
back
Copy
function tableReorder(){Alpine.data("reorderFunction",(e,t,r)=>({dragging:!1,reorderEnabled:!1,sourceID:"",targetID:"",evenRowClasses:"",oddRowClasses:"",currentlyHighlightedElement:"",evenRowClassArray:{},oddRowClassArray:{},evenNotInOdd:{},oddNotInEven:{},orderedRows:[],defaultReorderColumn:e.get("defaultReorderColumn"),reorderStatus:e.get("reorderStatus"),currentlyReorderingStatus:e.entangle("currentlyReorderingStatus"),hideReorderColumnUnlessReorderingStatus:e.entangle("hideReorderColumnUnlessReorderingStatus"),reorderDisplayColumn:e.entangle("reorderDisplayColumn"),dragStart(e){this.sourceID=e.target.id,e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",e.target.id),e.target.classList.add("laravel-livewire-tables-dragging")},dragOverEvent(e){"object"==typeof this.currentlyHighlightedElement&&this.currentlyHighlightedElement.classList.remove("laravel-livewire-tables-highlight-bottom","laravel-livewire-tables-highlight-top");let t=e.target.closest("tr");this.currentlyHighlightedElement=t,e.offsetY<t.getBoundingClientRect().height/2?(t.classList.add("laravel-livewire-tables-highlight-top"),t.classList.remove("laravel-livewire-tables-highlight-bottom")):(t.classList.remove("laravel-livewire-tables-highlight-top"),t.classList.add("laravel-livewire-tables-highlight-bottom"))},dragLeaveEvent(e){e.target.closest("tr").classList.remove("laravel-livewire-tables-highlight-bottom","laravel-livewire-tables-highlight-top")},dropEvent(e){"object"==typeof this.currentlyHighlightedElement&&this.currentlyHighlightedElement.classList.remove("laravel-livewire-tables-highlight-bottom","laravel-livewire-tables-highlight-top");let r=e.target.closest("tr"),l=e.target.closest("tr").parentNode,s=document.getElementById(this.sourceID).closest("tr");s.classList.remove("laravel-livewire-table-dragging");let i=s.rowIndex,o=r.rowIndex,a=document.getElementById(t),d=i;e.offsetY>r.getBoundingClientRect().height/2?l.insertBefore(s,r.nextSibling):l.insertBefore(s,r),o<i&&(d=o);let n="even";for(let g=1,h;h=a.rows[g];g++)h.classList.contains("hidden")||h.classList.contains("md:hidden")||("even"===n?(h.classList.remove(...this.oddNotInEven),h.classList.add(...this.evenNotInOdd),n="odd"):(h.classList.remove(...this.evenNotInOdd),h.classList.add(...this.oddNotInEven),n="even"))},reorderToggle(){this.currentlyReorderingStatus?e.disableReordering():(this.hideReorderColumnUnlessReorderingStatus&&(this.reorderDisplayColumn=!0),e.enableReordering())},cancelReorder(){this.hideReorderColumnUnlessReorderingStatus&&(this.reorderDisplayColumn=!1),e.disableReordering()},updateOrderedItems(){let l=document.getElementById(t),s=[];for(let i=1,o;o=l.rows[i];i++)s.push({[r]:o.getAttribute("rowpk"),[this.defaultReorderColumn]:i});e.storeReorder(s)},setupEvenOddClasses(){if(!0===this.currentlyReorderingStatus){let e=document.getElementById(t).getElementsByTagName("tbody")[0],r=[],l=[];void 0!==e.rows[0]&&void 0!==e.rows[1]&&(r=Array.from(e.rows[0].classList),l=Array.from(e.rows[1].classList),this.evenNotInOdd=r.filter(e=>!l.includes(e)),this.oddNotInEven=l.filter(e=>!r.includes(e)),r=[],l=[])}},init(){this.$watch("currentlyReorderingStatus",e=>this.setupEvenOddClasses())}}))}export default tableReorder;