/*! ColReorder 2.0.2
 * © SpryMedia Ltd - datatables.net/license
 */
import jQuery from"jquery";import DataTable from"datatables.net";let $=jQuery;function arrayMove(e,t,r,o){var n=e.splice(t,r);n.unshift(0),n.unshift(o<t?o:o-r+1),e.splice.apply(e,n)}function finalise(e){e.rows().invalidate("data"),e.column(0).visible(e.column(0).visible()),e.columns.adjust();var t=e.colReorder.order();e.trigger("columns-reordered",[{order:t,mapping:invertKeyValues(t)}])}function getOrder(e){return e.settings()[0].aoColumns.map(function(e){return e._crOriginalIdx})}function headerUpdate(e,t,r,o){for(var n=[],s=0;s<e.length;s++){var i=e[s];arrayMove(i,r[0],r.length,o);for(var a=0;a<i.length;a++){var l,d=i[a].cell;n.includes(d)||(l=d.getAttribute("data-dt-column").split(",").map(function(e){return t[e]}).join(","),d.setAttribute("data-dt-column",l),n.push(d))}}}function init(e){e.columns().iterator("column",function(e,t){e=e.aoColumns;void 0===e[t]._crOriginalIdx&&(e[t]._crOriginalIdx=t)})}function invertKeyValues(e){for(var t=[],r=0;r<e.length;r++)t[e[r]]=r;return t}function move(e,t,r){var o,n=e.settings()[0],s=n.aoColumns,i=s.map(function(e,t){return t});if(!t.includes(r)){arrayMove(i,t[0],t.length,r);var a=invertKeyValues(i);for(arrayMove(s,t[0],t.length,r),o=0;o<n.aoData.length;o++){var l=n.aoData[o];if(l){var d=l.anCells;if(d)for(arrayMove(d,t[0],t.length,r),c=0;c<d.length;c++)l.nTr&&d[c]&&s[c].bVisible&&l.nTr.appendChild(d[c]),d[c]&&d[c]._DT_CellIndex&&(d[c]._DT_CellIndex.column=c)}}for(o=0;o<s.length;o++){for(var u=s[o],c=0;c<u.aDataSort.length;c++)u.aDataSort[c]=a[u.aDataSort[c]];u.idx=a[u.idx],u.bVisible&&n.colgroup.append(u.colEl)}headerUpdate(n.aoHeader,a,t,r),headerUpdate(n.aoFooter,a,t,r),arrayMove(n.aoPreSearchCols,t[0],t.length,r),orderingIndexes(a,n.aaSorting),Array.isArray(n.aaSortingFixed)?orderingIndexes(a,n.aaSortingFixed):(n.aaSortingFixed.pre||n.aaSortingFixed.post)&&orderingIndexes(a,n.aaSortingFixed.pre),n.aLastSort.forEach(function(e){e.src=a[e.src]}),e.trigger("column-reorder",[e.settings()[0],{from:t,to:r,mapping:a}])}}function orderingIndexes(e,t){for(var r=0;r<t.length;r++){var o=t[r];"number"==typeof o?t[r]=e[o]:$.isPlainObject(o)&&void 0!==o.idx?o.idx=e[o.idx]:Array.isArray(o)&&"number"==typeof o[0]&&(o[0]=e[o[0]])}}function setOrder(e,t,r){var o=!1;if(t.length!==e.columns().count())e.error("ColReorder - column count mismatch");else{for(var n=invertKeyValues(t=r?transpose(e,t,"toCurrent"):t),s=0;s<n.length;s++){var i=n.indexOf(s);s!==i&&(arrayMove(n,i,1,s),move(e,[i],s),o=!0)}o&&finalise(e)}}function structureFill(e){for(var t=[],r=0;r<e.length;r++){t.push([]);for(var o=0;o<e[r].length;o++){var n=e[r][o];if(n)for(var s=0;s<n.rowspan;s++){t[r+s]||(t[r+s]=[]);for(var i=0;i<n.colspan;i++)t[r+s][o+i]=n.cell}}}return t}function transpose(e,t,r){var o=e.colReorder.order(),n=e.settings()[0].aoColumns;return"toCurrent"===r||"fromOriginal"===r?Array.isArray(t)?t.map(function(e){return o.indexOf(e)}):o.indexOf(t):Array.isArray(t)?t.map(function(e){return n[e]._crOriginalIdx}):n[t]._crOriginalIdx}function validateMove(e,t,r){var o=e.columns().count();return!(t[0]<r&&r<t[t.length]||t[0]<0&&t[t.length-1]>o||r<0&&o<r||!t.includes(r)&&(!validateStructureMove(e.table().header.structure(),t,r)||!validateStructureMove(e.table().footer.structure(),t,r)))}function validateStructureMove(e,t,r){for(var o=structureFill(e),n=0;n<o.length;n++)arrayMove(o[n],t[0],t.length,r);for(n=0;n<o.length;n++)for(var s=[],i=0;i<o[n].length;i++){var a=o[n][i];if(s.includes(a)){if(s[s.length-1]!==a)return!1}else s.push(a)}return!0}var ColReorder=function(){function n(o,e){this.dom={drag:null},this.c={columns:null,enable:null,order:null},this.s={dropZones:[],mouse:{absLeft:-1,offset:{x:-1,y:-1},start:{x:-1,y:-1},target:null,targets:[]},scrollInterval:null};var t,r=this;o.settings()[0]._colReorder||((o.settings()[0]._colReorder=this).dt=o,$.extend(this.c,n.defaults,e),init(o),o.on("stateSaveParams",function(e,t,r){r.colReorder=getOrder(o)}),o.on("destroy",function(){o.off(".colReorder"),o.colReorder.reset()}),e=o.state.loaded(),t=this.c.order,(t=e&&e.colReorder?e.colReorder:t)&&o.ready(function(){setOrder(o,t,!0)}),o.table().header.structure().forEach(function(e){for(var t=0;t<e.length;t++)e[t]&&e[t].cell&&r._addListener(e[t].cell)}))}return n.prototype.disable=function(){return this.c.enable=!1,this},n.prototype.enable=function(e){return!1===(e=void 0===e?!0:e)?this.disable():(this.c.enable=!0,this)},n.prototype._addListener=function(e){var t=this;$(e).on("selectstart.colReorder",function(){return!1}).on("mousedown.colReorder touchstart.colReorder",function(e){"mousedown"===e.type&&1!==e.which||t.c.enable&&t._mouseDown(e,this)})},n.prototype._createDragNode=function(){var e=this.s.mouse.target,t=e.parent(),r=t.parent(),o=r.parent(),n=e.clone();this.dom.drag=$(o[0].cloneNode(!1)).addClass("dtcr-cloned").append($(r[0].cloneNode(!1)).append($(t[0].cloneNode(!1)).append(n[0]))).css({position:"absolute",top:0,left:0,width:$(e).outerWidth(),height:$(e).outerHeight()}).appendTo("body")},n.prototype._cursorPosition=function(e,t){return(-1!==e.type.indexOf("touch")?e.originalEvent.touches[0]:e)[t]},n.prototype._mouseDown=function(e,t){for(var r=this,o=$(e.target).closest("th, td"),n=o.offset(),s=this.dt.columns(this.c.columns).indexes().toArray(),i=$(t).attr("data-dt-column").split(",").map(function(e){return parseInt(e,10)}),a=0;a<i.length;a++)if(!s.includes(i[a]))return!1;this.s.mouse.start.x=this._cursorPosition(e,"pageX"),this.s.mouse.start.y=this._cursorPosition(e,"pageY"),this.s.mouse.offset.x=this._cursorPosition(e,"pageX")-n.left,this.s.mouse.offset.y=this._cursorPosition(e,"pageY")-n.top,this.s.mouse.target=o,this.s.mouse.targets=i;for(var l=0;l<i.length;l++){var d=this.dt.cells(null,i[l],{page:"current"}).nodes().to$(),u="dtcr-moving";0===l&&(u+=" dtcr-moving-first"),l===i.length-1&&(u+=" dtcr-moving-last"),d.addClass(u)}this._regions(i),this._scrollRegions(),$(document).on("mousemove.colReorder touchmove.colReorder",function(e){r._mouseMove(e)}).on("mouseup.colReorder touchend.colReorder",function(e){r._mouseUp(e)})},n.prototype._mouseMove=function(e){if(null===this.dom.drag){if(Math.pow(Math.pow(this._cursorPosition(e,"pageX")-this.s.mouse.start.x,2)+Math.pow(this._cursorPosition(e,"pageY")-this.s.mouse.start.y,2),.5)<5)return;$(document.body).addClass("dtcr-dragging"),this._createDragNode()}this.dom.drag.css({left:this._cursorPosition(e,"pageX")-this.s.mouse.offset.x,top:this._cursorPosition(e,"pageY")-this.s.mouse.offset.y});var t=$(this.dt.table().node()).offset().left,r=this._cursorPosition(e,"pageX")-t,t=this.s.dropZones.find(function(e){return e.left<=r&&r<=e.left+e.width});this.s.mouse.absLeft=this._cursorPosition(e,"pageX"),t&&!t.self&&this._move(t,r)},n.prototype._mouseUp=function(e){$(document).off(".colReorder"),$(document.body).removeClass("dtcr-dragging"),this.dom.drag&&(this.dom.drag.remove(),this.dom.drag=null),this.s.scrollInterval&&clearInterval(this.s.scrollInterval),this.dt.cells(".dtcr-moving").nodes().to$().removeClass("dtcr-moving dtcr-moving-first dtcr-moving-last")},n.prototype._move=function(e,t){var r,o,n=this,e=(this.dt.colReorder.move(this.s.mouse.targets,e.colIdx),this.s.mouse.targets=$(this.s.mouse.target).attr("data-dt-column").split(",").map(function(e){return parseInt(e,10)}),this._regions(this.s.mouse.targets),this.s.dropZones.find(function(e){return e.colIdx===n.s.mouse.targets[0]})),s=this.s.dropZones.indexOf(e);e.left>t&&(o=e.left-t,r=this.s.dropZones[s-1],e.left-=o,e.width+=o,r)&&(r.width-=o),(e=this.s.dropZones.find(function(e){return e.colIdx===n.s.mouse.targets[n.s.mouse.targets.length-1]})).left+e.width<t&&(r=t-(e.left+e.width),o=this.s.dropZones[s+1],e.width+=r,o)&&(o.left+=r,o.width-=r)},n.prototype._regions=function(n){var s=this,i=[],a=0,l=0,d=this.dt.columns(this.c.columns).indexes().toArray(),u=this.dt.columns().widths();this.dt.columns().every(function(e,t,r){var o;this.visible()&&(o=u[e],d.includes(e)&&(validateMove(s.dt,n,e)?i.push({colIdx:e,left:a-l,self:n[0]<=e&&e<=n[n.length-1],width:o+l}):e<n[0]?i.length&&(i[i.length-1].width+=o):e>n[n.length-1]&&(l+=o)),a+=o)}),this.s.dropZones=i},n.prototype._isScrolling=function(){return this.dt.table().body().parentNode!==this.dt.table().header().parentNode},n.prototype._scrollRegions=function(){var t,r,o,n;this._isScrolling()&&(t=this,r=$(this.dt.table().container()).position().left,o=$(this.dt.table().container()).outerWidth(),n=this.dt.table().body().parentElement.parentElement,this.s.scrollInterval=setInterval(function(){var e=t.s.mouse.absLeft;e<r+75&&n.scrollLeft?n.scrollLeft-=5:r+o-75<e&&n.scrollLeft<n.scrollWidth&&(n.scrollLeft+=5)},25))},n.defaults={columns:"",enable:!0,order:null},n.version="2.0.2",n}();
/*! ColReorder 2.0.2
 * © SpryMedia Ltd - datatables.net/license
 */DataTable.Api.register("colReorder.enable()",function(t){return this.iterator("table",function(e){e._colReorder&&e._colReorder.enable(t)})}),DataTable.Api.register("colReorder.disable()",function(){return this.iterator("table",function(e){e._colReorder&&e._colReorder.disable()})}),DataTable.Api.register("colReorder.move()",function(e,t){return init(this),validateMove(this,e=Array.isArray(e)?e:[e],t)?this.tables().every(function(){move(this,e,t),finalise(this)}):(this.error("ColReorder - invalid move"),this)}),DataTable.Api.register("colReorder.order()",function(e,t){return init(this),e?this.tables().every(function(){setOrder(this,e,t)}):this.context.length?getOrder(this):null}),DataTable.Api.register("colReorder.reset()",function(){return init(this),this.tables().every(function(){var e=this.columns().every(function(e){return e}).flatten().toArray();setOrder(this,e,!0)})}),DataTable.Api.register("colReorder.transpose()",function(e,t){return init(this),transpose(this,e,t=t||"toCurrent")}),DataTable.ColReorder=ColReorder,$(document).on("stateLoadInit.dt",function(e,t,r){if("dt"===e.namespace){e=new DataTable.Api(t);if(r.colReorder)if(e.ready())setOrder(e,r.colReorder,!0);else{orderingIndexes(invertKeyValues(r.colReorder),r.order);for(var o=0;o<r.columns.length;o++)r.columns[o]._cr_sort=r.colReorder[o];r.columns.sort(function(e,t){return e._cr_sort-t._cr_sort})}}}),$(document).on("preInit.dt",function(e,t){var r,o;"dt"===e.namespace&&(e=t.oInit.colReorder,o=DataTable.defaults.colReorder,e||o)&&(r=$.extend({},o,e),!1!==e)&&(o=new DataTable.Api(t),new ColReorder(o,r))});export default DataTable;