-
Notifications
You must be signed in to change notification settings - Fork 77
/
Copy pathui-grid.moveColumns.min.js
2 lines (2 loc) · 6.12 KB
/
ui-grid.moveColumns.min.js
1
2
/*! For license information please see ui-grid.moveColumns.min.js.LICENSE.txt */
(()=>{var e={656:()=>{!function(){"use strict";var e=angular.module("ui.grid.moveColumns",["ui.grid"]);e.service("uiGridMoveColumnService",["$q","$rootScope","$log","ScrollEvent","uiGridConstants","gridUtil",function(e,i,n,o,r,t){var l={initializeGrid:function(e){this.registerPublicApi(e),this.defaultGridOptions(e.options),e.moveColumns={orderCache:[]},e.registerColumnBuilder(this.movableColumnBuilder),e.registerDataChangeCallback(this.verifyColumnOrder,[r.dataChange.COLUMN])},registerPublicApi:function(e){var i=this,n={events:{colMovable:{columnPositionChanged:function(e,i,n){}}},methods:{colMovable:{moveColumn:function(n,o){var r=e.columns;if(angular.isNumber(n)&&angular.isNumber(o)){for(var l=0,a=0;a<r.length;a++)(angular.isDefined(r[a].colDef.visible)&&!1===r[a].colDef.visible||!0===r[a].isRowHeader)&&l++;if(n>=r.length-l||o>=r.length-l)t.logError("MoveColumn: Invalid values for originalPosition, finalPosition");else{var u=function(e){for(var i=e,n=0;n<=i;n++)angular.isDefined(r[n])&&(angular.isDefined(r[n].colDef.visible)&&!1===r[n].colDef.visible||!0===r[n].isRowHeader)&&i++;return i};i.redrawColumnAtPosition(e,u(n),u(o))}}else t.logError("MoveColumn: Please provide valid values for originalPosition and finalPosition")}}}};e.api.registerEventsFromObject(n.events),e.api.registerMethodsFromObject(n.methods)},defaultGridOptions:function(e){e.enableColumnMoving=!1!==e.enableColumnMoving},movableColumnBuilder:function(i,n,o){return i.enableColumnMoving=void 0===i.enableColumnMoving?o.enableColumnMoving:i.enableColumnMoving,e.all([])},updateColumnCache:function(e){e.moveColumns.orderCache=e.getOnlyDataColumns()},verifyColumnOrder:function(e){var i,n=e.rowHeaderColumns.length;angular.forEach(e.moveColumns.orderCache,(function(o,r){if(-1!==(i=e.columns.indexOf(o))&&i-n!==r){var t=e.columns.splice(i,1)[0];e.columns.splice(r+n,0,t)}}))},redrawColumnAtPosition:function(e,n,o){var t=e.columns;if(n!==o){for(var a=n<o?n+1:n-1,u=Math.min(a,o);u<=Math.max(a,o)&&!t[u].visible;u++);if(!(u>Math.max(a,o))){var d=t[n];if(d.colDef.enableColumnMoving){if(n>o)for(var s=n;s>o;s--)t[s]=t[s-1];else if(o>n)for(var f=n;f<o;f++)t[f]=t[f+1];t[o]=d,l.updateColumnCache(e),e.queueGridRefresh(),i.$applyAsync((function(){e.api.core.notifyDataChange(r.dataChange.COLUMN),e.api.colMovable.raise.columnPositionChanged(d.colDef,n,o)}))}}}}};return l}]),e.directive("uiGridMoveColumns",["uiGridMoveColumnService",function(e){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(i,n,o,r){e.initializeGrid(r.grid)},post:function(e,i,n,o){}}}}}]),e.directive("uiGridHeaderCell",["$q","gridUtil","uiGridMoveColumnService","$document","$log","uiGridConstants","ScrollEvent",function(e,i,n,o,r,t,l){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(e,i,r,t){if(e.col.colDef.enableColumnMoving){var a,u,d,s,f,c,g=angular.element(i[0].querySelectorAll(".ui-grid-cell-contents")),v=!1,m=!1,h=function(i){a=e.grid.element[0].getBoundingClientRect().left,e.grid.hasLeftContainer()&&(a+=e.grid.renderContainers.left.header[0].getBoundingClientRect().width),u=i.pageX||(i.originalEvent?i.originalEvent.pageX:0),d=0,s=a+e.grid.getViewportWidth(),"mousedown"===i.type?(o.on("mousemove",C),o.on("mouseup",b)):"touchstart"===i.type&&(o.on("touchmove",C),o.on("touchend",b))},C=function(e){var i=e.pageX||(e.originalEvent?e.originalEvent.pageX:0),n=i-u;0!==n&&(document.onselectstart=function(){return!1},m=!0,v?v&&(M(n),u=i):D())},b=function(i){if(document.onselectstart=null,f&&(f.remove(),v=!1),w(),p(),m){for(var o,r=e.grid.columns,t=0,l=0;l<r.length&&r[l].colDef.name!==e.col.colDef.name;l++)t++;if(d<0){var a,u=0;if(e.grid.isRTL()){for(a=t+1;a<r.length;a++)if((angular.isUndefined(r[a].colDef.visible)||!0===r[a].colDef.visible)&&(u+=r[a].drawnWidth||r[a].width||r[a].colDef.width)>Math.abs(d)){n.redrawColumnAtPosition(e.grid,t,a-1);break}}else for(a=t-1;a>=0;a--)if((angular.isUndefined(r[a].colDef.visible)||!0===r[a].colDef.visible)&&(u+=r[a].drawnWidth||r[a].width||r[a].colDef.width)>Math.abs(d)){n.redrawColumnAtPosition(e.grid,t,a+1);break}u<Math.abs(d)&&(o=0,e.grid.isRTL()&&(o=r.length-1),n.redrawColumnAtPosition(e.grid,t,o))}else if(d>0){var s,c=0;if(e.grid.isRTL()){for(s=t-1;s>0;s--)if((angular.isUndefined(r[s].colDef.visible)||!0===r[s].colDef.visible)&&(c+=r[s].drawnWidth||r[s].width||r[s].colDef.width)>d){n.redrawColumnAtPosition(e.grid,t,s);break}}else for(s=t+1;s<r.length;s++)if((angular.isUndefined(r[s].colDef.visible)||!0===r[s].colDef.visible)&&(c+=r[s].drawnWidth||r[s].width||r[s].colDef.width)>d){n.redrawColumnAtPosition(e.grid,t,s-1);break}c<d&&(o=r.length-1,e.grid.isRTL()&&(o=0),n.redrawColumnAtPosition(e.grid,t,o))}}},p=function(){g.on("touchstart",h),g.on("mousedown",h)},w=function(){g.off("touchstart",h),g.off("mousedown",h),o.off("mousemove",C),o.off("touchmove",C),o.off("mouseup",b),o.off("touchend",b)};p();var D=function(){v=!0,f=i.clone(),i.parent().append(f),f.addClass("movingColumn");var n={};n.left=i[0].offsetLeft+"px";var o=e.grid.element[0].getBoundingClientRect().right,r=i[0].getBoundingClientRect().right;r>o&&(c=e.col.drawnWidth+(o-r),n.width=c+"px"),f.css(n)},M=function(i){for(var n=e.grid.columns,o=0,r=0;r<n.length;r++)(angular.isUndefined(n[r].colDef.visible)||!0===n[r].colDef.visible)&&(o+=n[r].drawnWidth||n[r].width||n[r].colDef.width);var u,g=f[0].getBoundingClientRect().left-1,v=f[0].getBoundingClientRect().right;if(u=(u=g-a+i)<s?u:s,(g>=a||i>0)&&(v<=s||i<0))f.css({visibility:"visible",left:f[0].offsetLeft+(u<s?i:s-g)+"px"});else if(o>Math.ceil(t.grid.gridWidth)){i*=8;var m=new l(e.col.grid,null,null,"uiGridHeaderCell.moveElement");m.x={pixels:i},m.grid.scrollContainers("",m)}for(var h=0,C=0;C<n.length;C++)if(angular.isUndefined(n[C].colDef.visible)||!0===n[C].colDef.visible){if(n[C].colDef.name===e.col.colDef.name)break;h+=n[C].drawnWidth||n[C].width||n[C].colDef.width}void 0===e.newScrollLeft?d+=i:d=e.newScrollLeft+u-h,c<e.col.drawnWidth&&(c+=Math.abs(i),f.css({width:c+"px"}))};e.$on("$destroy",w)}}}}}}])}()}},i={};function n(o){var r=i[o];if(void 0!==r)return r.exports;var t=i[o]={exports:{}};return e[o](t,t.exports,n),t.exports}n(656)})();