@everymatrix/stage-mm-verification-report 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chunk-A3NTIEMP.js +1 -0
- package/chunk-CAY35YP7.js +7 -0
- package/chunk-H3QHLLCN.js +1 -0
- package/chunk-KE4BCZO4.js +851 -0
- package/chunk-OHPEWN32.js +1198 -0
- package/chunk-WSQOM5HU.js +1 -0
- package/component-lib.js +1 -0
- package/index.html +12 -0
- package/main.js +3264 -0
- package/modules/angular/LICENSE.md +21 -0
- package/modules/angular/README.md +67 -0
- package/modules/angular/angular-csp.css +25 -0
- package/modules/angular/angular.js +36600 -0
- package/modules/angular/angular.min.js +352 -0
- package/modules/angular/angular.min.js.gzip +0 -0
- package/modules/angular/angular.min.js.map +8 -0
- package/modules/angular/bower.json +9 -0
- package/modules/angular/index.js +2 -0
- package/modules/angular/package.json +25 -0
- package/modules/angular-ui-grid/CHANGELOG.md +1973 -0
- package/modules/angular-ui-grid/README.md +59 -0
- package/modules/angular-ui-grid/css/ui-grid.cellnav.css +25 -0
- package/modules/angular-ui-grid/css/ui-grid.cellnav.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.core.css +866 -0
- package/modules/angular-ui-grid/css/ui-grid.core.min.css +5 -0
- package/modules/angular-ui-grid/css/ui-grid.edit.css +23 -0
- package/modules/angular-ui-grid/css/ui-grid.edit.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.empty-base-layer.css +6 -0
- package/modules/angular-ui-grid/css/ui-grid.empty-base-layer.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.expandable.css +16 -0
- package/modules/angular-ui-grid/css/ui-grid.expandable.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.exporter.css +0 -0
- package/modules/angular-ui-grid/css/ui-grid.exporter.min.css +0 -0
- package/modules/angular-ui-grid/css/ui-grid.grouping.css +3 -0
- package/modules/angular-ui-grid/css/ui-grid.grouping.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.importer.css +0 -0
- package/modules/angular-ui-grid/css/ui-grid.importer.min.css +0 -0
- package/modules/angular-ui-grid/css/ui-grid.move-columns.css +9 -0
- package/modules/angular-ui-grid/css/ui-grid.move-columns.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.pagination.css +299 -0
- package/modules/angular-ui-grid/css/ui-grid.pagination.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.pinning.css +67 -0
- package/modules/angular-ui-grid/css/ui-grid.pinning.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.resize-columns.css +38 -0
- package/modules/angular-ui-grid/css/ui-grid.resize-columns.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.row-edit.css +9 -0
- package/modules/angular-ui-grid/css/ui-grid.row-edit.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.selection.css +25 -0
- package/modules/angular-ui-grid/css/ui-grid.selection.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.tree-base.css +4 -0
- package/modules/angular-ui-grid/css/ui-grid.tree-base.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.tree-view.css +6 -0
- package/modules/angular-ui-grid/css/ui-grid.tree-view.min.css +1 -0
- package/modules/angular-ui-grid/css/ui-grid.validate.css +3 -0
- package/modules/angular-ui-grid/css/ui-grid.validate.min.css +1 -0
- package/modules/angular-ui-grid/fonts/ui-grid.eot +0 -0
- package/modules/angular-ui-grid/fonts/ui-grid.svg +56 -0
- package/modules/angular-ui-grid/fonts/ui-grid.ttf +0 -0
- package/modules/angular-ui-grid/fonts/ui-grid.woff +0 -0
- package/modules/angular-ui-grid/less/animation.less +85 -0
- package/modules/angular-ui-grid/less/body.less +84 -0
- package/modules/angular-ui-grid/less/cell.less +46 -0
- package/modules/angular-ui-grid/less/cellnav.less +29 -0
- package/modules/angular-ui-grid/less/core.less +11 -0
- package/modules/angular-ui-grid/less/edit.less +27 -0
- package/modules/angular-ui-grid/less/elements.less +156 -0
- package/modules/angular-ui-grid/less/emptyBaseLayer.less +8 -0
- package/modules/angular-ui-grid/less/expandable.less +29 -0
- package/modules/angular-ui-grid/less/exporter.less +4 -0
- package/modules/angular-ui-grid/less/footer.less +76 -0
- package/modules/angular-ui-grid/less/grid.less +86 -0
- package/modules/angular-ui-grid/less/grouping.less +5 -0
- package/modules/angular-ui-grid/less/header.less +250 -0
- package/modules/angular-ui-grid/less/icons.less +151 -0
- package/modules/angular-ui-grid/less/importer.less +4 -0
- package/modules/angular-ui-grid/less/main.less +2 -0
- package/modules/angular-ui-grid/less/menu.less +91 -0
- package/modules/angular-ui-grid/less/moveColumns.less +12 -0
- package/modules/angular-ui-grid/less/pagination.less +297 -0
- package/modules/angular-ui-grid/less/pinning.less +86 -0
- package/modules/angular-ui-grid/less/resizeColumns.less +53 -0
- package/modules/angular-ui-grid/less/rowEdit.less +19 -0
- package/modules/angular-ui-grid/less/rtl.less +67 -0
- package/modules/angular-ui-grid/less/selection.less +29 -0
- package/modules/angular-ui-grid/less/sorting.less +16 -0
- package/modules/angular-ui-grid/less/treeBase.less +6 -0
- package/modules/angular-ui-grid/less/treeView.less +8 -0
- package/modules/angular-ui-grid/less/validate.less +5 -0
- package/modules/angular-ui-grid/less/variables.less +90 -0
- package/modules/angular-ui-grid/package.json +144 -0
- package/modules/angular-ui-grid/ui-grid.auto-resize.js +69 -0
- package/modules/angular-ui-grid/ui-grid.auto-resize.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.cellnav.js +1181 -0
- package/modules/angular-ui-grid/ui-grid.cellnav.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.core.js +12737 -0
- package/modules/angular-ui-grid/ui-grid.core.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.css +3208 -0
- package/modules/angular-ui-grid/ui-grid.edit.js +1325 -0
- package/modules/angular-ui-grid/ui-grid.edit.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.empty-base-layer.js +178 -0
- package/modules/angular-ui-grid/ui-grid.empty-base-layer.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.expandable.js +651 -0
- package/modules/angular-ui-grid/ui-grid.expandable.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.exporter.js +1777 -0
- package/modules/angular-ui-grid/ui-grid.exporter.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.grouping.js +1291 -0
- package/modules/angular-ui-grid/ui-grid.grouping.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.importer.js +791 -0
- package/modules/angular-ui-grid/ui-grid.importer.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.infinite-scroll.js +552 -0
- package/modules/angular-ui-grid/ui-grid.infinite-scroll.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.js +30867 -0
- package/modules/angular-ui-grid/ui-grid.language.all.js +3214 -0
- package/modules/angular-ui-grid/ui-grid.language.all.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.ar.js +118 -0
- package/modules/angular-ui-grid/ui-grid.language.ar.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.bg.js +115 -0
- package/modules/angular-ui-grid/ui-grid.language.bg.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.cs.js +96 -0
- package/modules/angular-ui-grid/ui-grid.language.cs.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.da.js +90 -0
- package/modules/angular-ui-grid/ui-grid.language.da.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.de.js +133 -0
- package/modules/angular-ui-grid/ui-grid.language.de.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.es-ct.js +133 -0
- package/modules/angular-ui-grid/ui-grid.language.es-ct.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.es.js +106 -0
- package/modules/angular-ui-grid/ui-grid.language.es.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.fa.js +93 -0
- package/modules/angular-ui-grid/ui-grid.language.fa.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.fi.js +76 -0
- package/modules/angular-ui-grid/ui-grid.language.fi.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.fr.js +128 -0
- package/modules/angular-ui-grid/ui-grid.language.fr.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.he.js +71 -0
- package/modules/angular-ui-grid/ui-grid.language.he.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.hy.js +76 -0
- package/modules/angular-ui-grid/ui-grid.language.hy.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.is.js +118 -0
- package/modules/angular-ui-grid/ui-grid.language.is.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.it.js +112 -0
- package/modules/angular-ui-grid/ui-grid.language.it.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.ja.js +118 -0
- package/modules/angular-ui-grid/ui-grid.language.ja.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.ko.js +77 -0
- package/modules/angular-ui-grid/ui-grid.language.ko.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.nl.js +91 -0
- package/modules/angular-ui-grid/ui-grid.language.nl.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.no.js +115 -0
- package/modules/angular-ui-grid/ui-grid.language.no.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.pl.js +126 -0
- package/modules/angular-ui-grid/ui-grid.language.pl.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.pt-br.js +133 -0
- package/modules/angular-ui-grid/ui-grid.language.pt-br.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.pt.js +133 -0
- package/modules/angular-ui-grid/ui-grid.language.pt.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.ro.js +112 -0
- package/modules/angular-ui-grid/ui-grid.language.ro.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.rs-lat.js +126 -0
- package/modules/angular-ui-grid/ui-grid.language.rs-lat.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.ru.js +115 -0
- package/modules/angular-ui-grid/ui-grid.language.ru.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.sk.js +127 -0
- package/modules/angular-ui-grid/ui-grid.language.sk.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.sv.js +126 -0
- package/modules/angular-ui-grid/ui-grid.language.sv.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.ta.js +87 -0
- package/modules/angular-ui-grid/ui-grid.language.ta.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.tr.js +112 -0
- package/modules/angular-ui-grid/ui-grid.language.tr.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.ua.js +112 -0
- package/modules/angular-ui-grid/ui-grid.language.ua.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.zh-cn.js +112 -0
- package/modules/angular-ui-grid/ui-grid.language.zh-cn.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.language.zh-tw.js +77 -0
- package/modules/angular-ui-grid/ui-grid.language.zh-tw.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.min.css +5 -0
- package/modules/angular-ui-grid/ui-grid.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.move-columns.js +582 -0
- package/modules/angular-ui-grid/ui-grid.move-columns.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.pagination.js +510 -0
- package/modules/angular-ui-grid/ui-grid.pagination.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.pinning.js +281 -0
- package/modules/angular-ui-grid/ui-grid.pinning.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.resize-columns.js +574 -0
- package/modules/angular-ui-grid/ui-grid.resize-columns.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.row-edit.js +717 -0
- package/modules/angular-ui-grid/ui-grid.row-edit.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.saveState.js +831 -0
- package/modules/angular-ui-grid/ui-grid.saveState.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.selection.js +1196 -0
- package/modules/angular-ui-grid/ui-grid.selection.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.tree-base.js +1743 -0
- package/modules/angular-ui-grid/ui-grid.tree-base.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.tree-view.js +218 -0
- package/modules/angular-ui-grid/ui-grid.tree-view.min.js +6 -0
- package/modules/angular-ui-grid/ui-grid.validate.js +589 -0
- package/modules/angular-ui-grid/ui-grid.validate.min.js +6 -0
- package/package.json +8 -0
- package/polyfills.js +2 -0
- package/styles.css +1 -0
|
@@ -0,0 +1,582 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ui-grid - v4.12.7 - 2024-04-12
|
|
3
|
+
* http://ui-grid.info/
|
|
4
|
+
* Copyright (c) 2024 ; License: MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
(function () {
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @ngdoc overview
|
|
12
|
+
* @name ui.grid.moveColumns
|
|
13
|
+
* @description
|
|
14
|
+
*
|
|
15
|
+
* # ui.grid.moveColumns
|
|
16
|
+
*
|
|
17
|
+
* <div class="alert alert-warning" role="alert"><strong>Alpha</strong> This feature is in development. There will almost certainly be breaking api changes, or there are major outstanding bugs.</div>
|
|
18
|
+
*
|
|
19
|
+
* This module provides column moving capability to ui.grid. It enables to change the position of columns.
|
|
20
|
+
* <div doc-module-components="ui.grid.moveColumns"></div>
|
|
21
|
+
*/
|
|
22
|
+
var module = angular.module('ui.grid.moveColumns', ['ui.grid']);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @ngdoc service
|
|
26
|
+
* @name ui.grid.moveColumns.service:uiGridMoveColumnService
|
|
27
|
+
* @description Service for column moving feature.
|
|
28
|
+
*/
|
|
29
|
+
module.service('uiGridMoveColumnService', ['$q', '$rootScope', '$log', 'ScrollEvent', 'uiGridConstants', 'gridUtil', function ($q, $rootScope, $log, ScrollEvent, uiGridConstants, gridUtil) {
|
|
30
|
+
var service = {
|
|
31
|
+
initializeGrid: function (grid) {
|
|
32
|
+
var self = this;
|
|
33
|
+
this.registerPublicApi(grid);
|
|
34
|
+
this.defaultGridOptions(grid.options);
|
|
35
|
+
grid.moveColumns = {orderCache: []}; // Used to cache the order before columns are rebuilt
|
|
36
|
+
grid.registerColumnBuilder(self.movableColumnBuilder);
|
|
37
|
+
grid.registerDataChangeCallback(self.verifyColumnOrder, [uiGridConstants.dataChange.COLUMN]);
|
|
38
|
+
},
|
|
39
|
+
registerPublicApi: function (grid) {
|
|
40
|
+
var self = this;
|
|
41
|
+
/**
|
|
42
|
+
* @ngdoc object
|
|
43
|
+
* @name ui.grid.moveColumns.api:PublicApi
|
|
44
|
+
* @description Public Api for column moving feature.
|
|
45
|
+
*/
|
|
46
|
+
var publicApi = {
|
|
47
|
+
events: {
|
|
48
|
+
/**
|
|
49
|
+
* @ngdoc event
|
|
50
|
+
* @name columnPositionChanged
|
|
51
|
+
* @eventOf ui.grid.moveColumns.api:PublicApi
|
|
52
|
+
* @description raised when column is moved
|
|
53
|
+
* <pre>
|
|
54
|
+
* gridApi.colMovable.on.columnPositionChanged(scope,function(colDef, originalPosition, newPosition) {})
|
|
55
|
+
* </pre>
|
|
56
|
+
* @param {object} colDef the column that was moved
|
|
57
|
+
* @param {integer} originalPosition of the column
|
|
58
|
+
* @param {integer} finalPosition of the column
|
|
59
|
+
*/
|
|
60
|
+
colMovable: {
|
|
61
|
+
columnPositionChanged: function (colDef, originalPosition, newPosition) {
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
methods: {
|
|
66
|
+
/**
|
|
67
|
+
* @ngdoc method
|
|
68
|
+
* @name moveColumn
|
|
69
|
+
* @methodOf ui.grid.moveColumns.api:PublicApi
|
|
70
|
+
* @description Method can be used to change column position.
|
|
71
|
+
* <pre>
|
|
72
|
+
* gridApi.colMovable.moveColumn(oldPosition, newPosition)
|
|
73
|
+
* </pre>
|
|
74
|
+
* @param {integer} originalPosition of the column
|
|
75
|
+
* @param {integer} finalPosition of the column
|
|
76
|
+
*/
|
|
77
|
+
colMovable: {
|
|
78
|
+
moveColumn: function (originalPosition, finalPosition) {
|
|
79
|
+
var columns = grid.columns;
|
|
80
|
+
if (!angular.isNumber(originalPosition) || !angular.isNumber(finalPosition)) {
|
|
81
|
+
gridUtil.logError('MoveColumn: Please provide valid values for originalPosition and finalPosition');
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
var nonMovableColumns = 0;
|
|
85
|
+
for (var i = 0; i < columns.length; i++) {
|
|
86
|
+
if ((angular.isDefined(columns[i].colDef.visible) && columns[i].colDef.visible === false) || columns[i].isRowHeader === true) {
|
|
87
|
+
nonMovableColumns++;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (originalPosition >= (columns.length - nonMovableColumns) || finalPosition >= (columns.length - nonMovableColumns)) {
|
|
91
|
+
gridUtil.logError('MoveColumn: Invalid values for originalPosition, finalPosition');
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
var findPositionForRenderIndex = function (index) {
|
|
95
|
+
var position = index;
|
|
96
|
+
for (var i = 0; i <= position; i++) {
|
|
97
|
+
if (angular.isDefined(columns[i]) && ((angular.isDefined(columns[i].colDef.visible) && columns[i].colDef.visible === false) || columns[i].isRowHeader === true)) {
|
|
98
|
+
position++;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return position;
|
|
102
|
+
};
|
|
103
|
+
self.redrawColumnAtPosition(grid, findPositionForRenderIndex(originalPosition), findPositionForRenderIndex(finalPosition));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
grid.api.registerEventsFromObject(publicApi.events);
|
|
109
|
+
grid.api.registerMethodsFromObject(publicApi.methods);
|
|
110
|
+
},
|
|
111
|
+
defaultGridOptions: function (gridOptions) {
|
|
112
|
+
/**
|
|
113
|
+
* @ngdoc object
|
|
114
|
+
* @name ui.grid.moveColumns.api:GridOptions
|
|
115
|
+
*
|
|
116
|
+
* @description Options for configuring the move column feature, these are available to be
|
|
117
|
+
* set using the ui-grid {@link ui.grid.class:GridOptions gridOptions}
|
|
118
|
+
*/
|
|
119
|
+
/**
|
|
120
|
+
* @ngdoc object
|
|
121
|
+
* @name enableColumnMoving
|
|
122
|
+
* @propertyOf ui.grid.moveColumns.api:GridOptions
|
|
123
|
+
* @description If defined, sets the default value for the colMovable flag on each individual colDefs
|
|
124
|
+
* if their individual enableColumnMoving configuration is not defined. Defaults to true.
|
|
125
|
+
*/
|
|
126
|
+
gridOptions.enableColumnMoving = gridOptions.enableColumnMoving !== false;
|
|
127
|
+
},
|
|
128
|
+
movableColumnBuilder: function (colDef, col, gridOptions) {
|
|
129
|
+
var promises = [];
|
|
130
|
+
/**
|
|
131
|
+
* @ngdoc object
|
|
132
|
+
* @name ui.grid.moveColumns.api:ColumnDef
|
|
133
|
+
*
|
|
134
|
+
* @description Column Definition for move column feature, these are available to be
|
|
135
|
+
* set using the ui-grid {@link ui.grid.class:GridOptions.columnDef gridOptions.columnDefs}
|
|
136
|
+
*/
|
|
137
|
+
/**
|
|
138
|
+
* @ngdoc object
|
|
139
|
+
* @name enableColumnMoving
|
|
140
|
+
* @propertyOf ui.grid.moveColumns.api:ColumnDef
|
|
141
|
+
* @description Enable column moving for the column.
|
|
142
|
+
*/
|
|
143
|
+
colDef.enableColumnMoving = colDef.enableColumnMoving === undefined ? gridOptions.enableColumnMoving
|
|
144
|
+
: colDef.enableColumnMoving;
|
|
145
|
+
return $q.all(promises);
|
|
146
|
+
},
|
|
147
|
+
/**
|
|
148
|
+
* @ngdoc method
|
|
149
|
+
* @name updateColumnCache
|
|
150
|
+
* @methodOf ui.grid.moveColumns
|
|
151
|
+
* @description Cache the current order of columns, so we can restore them after new columnDefs are defined
|
|
152
|
+
*/
|
|
153
|
+
updateColumnCache: function(grid) {
|
|
154
|
+
grid.moveColumns.orderCache = grid.getOnlyDataColumns();
|
|
155
|
+
},
|
|
156
|
+
/**
|
|
157
|
+
* @ngdoc method
|
|
158
|
+
* @name verifyColumnOrder
|
|
159
|
+
* @methodOf ui.grid.moveColumns
|
|
160
|
+
* @description dataChangeCallback which uses the cached column order to restore the column order
|
|
161
|
+
* when it is reset by altering the columnDefs array.
|
|
162
|
+
*/
|
|
163
|
+
verifyColumnOrder: function(grid) {
|
|
164
|
+
var headerRowOffset = grid.rowHeaderColumns.length;
|
|
165
|
+
var newIndex;
|
|
166
|
+
|
|
167
|
+
angular.forEach(grid.moveColumns.orderCache, function(cacheCol, cacheIndex) {
|
|
168
|
+
newIndex = grid.columns.indexOf(cacheCol);
|
|
169
|
+
if ( newIndex !== -1 && newIndex - headerRowOffset !== cacheIndex ) {
|
|
170
|
+
var column = grid.columns.splice(newIndex, 1)[0];
|
|
171
|
+
grid.columns.splice(cacheIndex + headerRowOffset, 0, column);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
},
|
|
175
|
+
redrawColumnAtPosition: function (grid, originalPosition, newPosition) {
|
|
176
|
+
var columns = grid.columns;
|
|
177
|
+
|
|
178
|
+
if (originalPosition === newPosition) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// check columns in between move-range to make sure they are visible columns
|
|
183
|
+
var pos = (originalPosition < newPosition) ? originalPosition + 1 : originalPosition - 1;
|
|
184
|
+
var i0 = Math.min(pos, newPosition);
|
|
185
|
+
for (i0; i0 <= Math.max(pos, newPosition); i0++) {
|
|
186
|
+
if (columns[i0].visible) {
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (i0 > Math.max(pos, newPosition)) {
|
|
191
|
+
// no visible column found, column did not visibly move
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
var originalColumn = columns[originalPosition];
|
|
196
|
+
if (originalColumn.colDef.enableColumnMoving) {
|
|
197
|
+
if (originalPosition > newPosition) {
|
|
198
|
+
for (var i1 = originalPosition; i1 > newPosition; i1--) {
|
|
199
|
+
columns[i1] = columns[i1 - 1];
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else if (newPosition > originalPosition) {
|
|
203
|
+
for (var i2 = originalPosition; i2 < newPosition; i2++) {
|
|
204
|
+
columns[i2] = columns[i2 + 1];
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
columns[newPosition] = originalColumn;
|
|
208
|
+
service.updateColumnCache(grid);
|
|
209
|
+
grid.queueGridRefresh();
|
|
210
|
+
$rootScope.$applyAsync(function () {
|
|
211
|
+
grid.api.core.notifyDataChange( uiGridConstants.dataChange.COLUMN );
|
|
212
|
+
grid.api.colMovable.raise.columnPositionChanged(originalColumn.colDef, originalPosition, newPosition);
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
return service;
|
|
218
|
+
}]);
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* @ngdoc directive
|
|
222
|
+
* @name ui.grid.moveColumns.directive:uiGridMoveColumns
|
|
223
|
+
* @element div
|
|
224
|
+
* @restrict A
|
|
225
|
+
* @description Adds column moving features to the ui-grid directive.
|
|
226
|
+
* @example
|
|
227
|
+
<example module="app">
|
|
228
|
+
<file name="app.js">
|
|
229
|
+
var app = angular.module('app', ['ui.grid', 'ui.grid.moveColumns']);
|
|
230
|
+
app.controller('MainCtrl', ['$scope', function ($scope) {
|
|
231
|
+
$scope.data = [
|
|
232
|
+
{ name: 'Bob', title: 'CEO', age: 45 },
|
|
233
|
+
{ name: 'Frank', title: 'Lowly Developer', age: 25 },
|
|
234
|
+
{ name: 'Jenny', title: 'Highly Developer', age: 35 }
|
|
235
|
+
];
|
|
236
|
+
$scope.columnDefs = [
|
|
237
|
+
{name: 'name'},
|
|
238
|
+
{name: 'title'},
|
|
239
|
+
{name: 'age'}
|
|
240
|
+
];
|
|
241
|
+
}]);
|
|
242
|
+
</file>
|
|
243
|
+
<file name="main.css">
|
|
244
|
+
.grid {
|
|
245
|
+
width: 100%;
|
|
246
|
+
height: 150px;
|
|
247
|
+
}
|
|
248
|
+
</file>
|
|
249
|
+
<file name="index.html">
|
|
250
|
+
<div ng-controller="MainCtrl">
|
|
251
|
+
<div class="grid" ui-grid="{ data: data, columnDefs: columnDefs }" ui-grid-move-columns></div>
|
|
252
|
+
</div>
|
|
253
|
+
</file>
|
|
254
|
+
</example>
|
|
255
|
+
*/
|
|
256
|
+
module.directive('uiGridMoveColumns', ['uiGridMoveColumnService', function (uiGridMoveColumnService) {
|
|
257
|
+
return {
|
|
258
|
+
replace: true,
|
|
259
|
+
priority: 0,
|
|
260
|
+
require: '^uiGrid',
|
|
261
|
+
scope: false,
|
|
262
|
+
compile: function () {
|
|
263
|
+
return {
|
|
264
|
+
pre: function ($scope, $elm, $attrs, uiGridCtrl) {
|
|
265
|
+
uiGridMoveColumnService.initializeGrid(uiGridCtrl.grid);
|
|
266
|
+
},
|
|
267
|
+
post: function ($scope, $elm, $attrs, uiGridCtrl) {
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
}]);
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* @ngdoc directive
|
|
276
|
+
* @name ui.grid.moveColumns.directive:uiGridHeaderCell
|
|
277
|
+
* @element div
|
|
278
|
+
* @restrict A
|
|
279
|
+
*
|
|
280
|
+
* @description Stacks on top of ui.grid.uiGridHeaderCell to provide capability to be able to move it to reposition column.
|
|
281
|
+
*
|
|
282
|
+
* On receiving mouseDown event headerCell is cloned, now as the mouse moves the cloned header cell also moved in the grid.
|
|
283
|
+
* In case the moving cloned header cell reaches the left or right extreme of grid, grid scrolling is triggered (if horizontal scroll exists).
|
|
284
|
+
* On mouseUp event column is repositioned at position where mouse is released and cloned header cell is removed.
|
|
285
|
+
*
|
|
286
|
+
* Events that invoke cloning of header cell:
|
|
287
|
+
* - mousedown
|
|
288
|
+
*
|
|
289
|
+
* Events that invoke movement of cloned header cell:
|
|
290
|
+
* - mousemove
|
|
291
|
+
*
|
|
292
|
+
* Events that invoke repositioning of column:
|
|
293
|
+
* - mouseup
|
|
294
|
+
*/
|
|
295
|
+
module.directive('uiGridHeaderCell', ['$q', 'gridUtil', 'uiGridMoveColumnService', '$document', '$log', 'uiGridConstants', 'ScrollEvent',
|
|
296
|
+
function ($q, gridUtil, uiGridMoveColumnService, $document, $log, uiGridConstants, ScrollEvent) {
|
|
297
|
+
return {
|
|
298
|
+
priority: -10,
|
|
299
|
+
require: '^uiGrid',
|
|
300
|
+
compile: function () {
|
|
301
|
+
return {
|
|
302
|
+
post: function ($scope, $elm, $attrs, uiGridCtrl) {
|
|
303
|
+
|
|
304
|
+
if ($scope.col.colDef.enableColumnMoving) {
|
|
305
|
+
|
|
306
|
+
/*
|
|
307
|
+
* Our general approach to column move is that we listen to a touchstart or mousedown
|
|
308
|
+
* event over the column header. When we hear one, then we wait for a move of the same type
|
|
309
|
+
* - if we are a touchstart then we listen for a touchmove, if we are a mousedown we listen for
|
|
310
|
+
* a mousemove (i.e. a drag) before we decide that there's a move underway. If there's never a move,
|
|
311
|
+
* and we instead get a mouseup or a touchend, then we just drop out again and do nothing.
|
|
312
|
+
*
|
|
313
|
+
*/
|
|
314
|
+
var $contentsElm = angular.element( $elm[0].querySelectorAll('.ui-grid-cell-contents') );
|
|
315
|
+
|
|
316
|
+
var gridLeft;
|
|
317
|
+
var previousMouseX;
|
|
318
|
+
var totalMouseMovement;
|
|
319
|
+
var rightMoveLimit;
|
|
320
|
+
var elmCloned = false;
|
|
321
|
+
var movingElm;
|
|
322
|
+
var reducedWidth;
|
|
323
|
+
var moveOccurred = false;
|
|
324
|
+
|
|
325
|
+
var downFn = function( event ) {
|
|
326
|
+
// Setting some variables required for calculations.
|
|
327
|
+
gridLeft = $scope.grid.element[0].getBoundingClientRect().left;
|
|
328
|
+
if ( $scope.grid.hasLeftContainer() ) {
|
|
329
|
+
gridLeft += $scope.grid.renderContainers.left.header[0].getBoundingClientRect().width;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
previousMouseX = event.pageX || (event.originalEvent ? event.originalEvent.pageX : 0);
|
|
333
|
+
totalMouseMovement = 0;
|
|
334
|
+
rightMoveLimit = gridLeft + $scope.grid.getViewportWidth();
|
|
335
|
+
|
|
336
|
+
if ( event.type === 'mousedown' ) {
|
|
337
|
+
$document.on('mousemove', moveFn);
|
|
338
|
+
$document.on('mouseup', upFn);
|
|
339
|
+
}
|
|
340
|
+
else if ( event.type === 'touchstart' ) {
|
|
341
|
+
$document.on('touchmove', moveFn);
|
|
342
|
+
$document.on('touchend', upFn);
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
|
|
346
|
+
var moveFn = function( event ) {
|
|
347
|
+
var pageX = event.pageX || (event.originalEvent ? event.originalEvent.pageX : 0);
|
|
348
|
+
var changeValue = pageX - previousMouseX;
|
|
349
|
+
if ( changeValue === 0 ) { return; }
|
|
350
|
+
// Disable text selection in Chrome during column move
|
|
351
|
+
document.onselectstart = function() { return false; };
|
|
352
|
+
|
|
353
|
+
moveOccurred = true;
|
|
354
|
+
|
|
355
|
+
if (!elmCloned) {
|
|
356
|
+
cloneElement();
|
|
357
|
+
}
|
|
358
|
+
else if (elmCloned) {
|
|
359
|
+
moveElement(changeValue);
|
|
360
|
+
previousMouseX = pageX;
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
var upFn = function( event ) {
|
|
365
|
+
// Re-enable text selection after column move
|
|
366
|
+
document.onselectstart = null;
|
|
367
|
+
|
|
368
|
+
// Remove the cloned element on mouse up.
|
|
369
|
+
if (movingElm) {
|
|
370
|
+
movingElm.remove();
|
|
371
|
+
elmCloned = false;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
offAllEvents();
|
|
375
|
+
onDownEvents();
|
|
376
|
+
|
|
377
|
+
if (!moveOccurred) {
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
var columns = $scope.grid.columns;
|
|
382
|
+
var columnIndex = 0;
|
|
383
|
+
for (var i = 0; i < columns.length; i++) {
|
|
384
|
+
if (columns[i].colDef.name !== $scope.col.colDef.name) {
|
|
385
|
+
columnIndex++;
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
var targetIndex;
|
|
393
|
+
|
|
394
|
+
// Case where column should be moved to a position on its left
|
|
395
|
+
if (totalMouseMovement < 0) {
|
|
396
|
+
var totalColumnsLeftWidth = 0;
|
|
397
|
+
var il;
|
|
398
|
+
if ( $scope.grid.isRTL() ) {
|
|
399
|
+
for (il = columnIndex + 1; il < columns.length; il++) {
|
|
400
|
+
if (angular.isUndefined(columns[il].colDef.visible) || columns[il].colDef.visible === true) {
|
|
401
|
+
totalColumnsLeftWidth += columns[il].drawnWidth || columns[il].width || columns[il].colDef.width;
|
|
402
|
+
if (totalColumnsLeftWidth > Math.abs(totalMouseMovement)) {
|
|
403
|
+
uiGridMoveColumnService.redrawColumnAtPosition
|
|
404
|
+
($scope.grid, columnIndex, il - 1);
|
|
405
|
+
break;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
for (il = columnIndex - 1; il >= 0; il--) {
|
|
412
|
+
if (angular.isUndefined(columns[il].colDef.visible) || columns[il].colDef.visible === true) {
|
|
413
|
+
totalColumnsLeftWidth += columns[il].drawnWidth || columns[il].width || columns[il].colDef.width;
|
|
414
|
+
if (totalColumnsLeftWidth > Math.abs(totalMouseMovement)) {
|
|
415
|
+
uiGridMoveColumnService.redrawColumnAtPosition
|
|
416
|
+
($scope.grid, columnIndex, il + 1);
|
|
417
|
+
break;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
// Case where column should be moved to beginning (or end in RTL) of the grid.
|
|
424
|
+
if (totalColumnsLeftWidth < Math.abs(totalMouseMovement)) {
|
|
425
|
+
targetIndex = 0;
|
|
426
|
+
if ( $scope.grid.isRTL() ) {
|
|
427
|
+
targetIndex = columns.length - 1;
|
|
428
|
+
}
|
|
429
|
+
uiGridMoveColumnService.redrawColumnAtPosition
|
|
430
|
+
($scope.grid, columnIndex, targetIndex);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
// Case where column should be moved to a position on its right
|
|
435
|
+
else if (totalMouseMovement > 0) {
|
|
436
|
+
var totalColumnsRightWidth = 0;
|
|
437
|
+
var ir;
|
|
438
|
+
if ( $scope.grid.isRTL() ) {
|
|
439
|
+
for (ir = columnIndex - 1; ir > 0; ir--) {
|
|
440
|
+
if (angular.isUndefined(columns[ir].colDef.visible) || columns[ir].colDef.visible === true) {
|
|
441
|
+
totalColumnsRightWidth += columns[ir].drawnWidth || columns[ir].width || columns[ir].colDef.width;
|
|
442
|
+
if (totalColumnsRightWidth > totalMouseMovement) {
|
|
443
|
+
uiGridMoveColumnService.redrawColumnAtPosition
|
|
444
|
+
($scope.grid, columnIndex, ir);
|
|
445
|
+
break;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
else {
|
|
451
|
+
for (ir = columnIndex + 1; ir < columns.length; ir++) {
|
|
452
|
+
if (angular.isUndefined(columns[ir].colDef.visible) || columns[ir].colDef.visible === true) {
|
|
453
|
+
totalColumnsRightWidth += columns[ir].drawnWidth || columns[ir].width || columns[ir].colDef.width;
|
|
454
|
+
if (totalColumnsRightWidth > totalMouseMovement) {
|
|
455
|
+
uiGridMoveColumnService.redrawColumnAtPosition
|
|
456
|
+
($scope.grid, columnIndex, ir - 1);
|
|
457
|
+
break;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
// Case where column should be moved to end (or beginning in RTL) of the grid.
|
|
465
|
+
if (totalColumnsRightWidth < totalMouseMovement) {
|
|
466
|
+
targetIndex = columns.length - 1;
|
|
467
|
+
if ( $scope.grid.isRTL() ) {
|
|
468
|
+
targetIndex = 0;
|
|
469
|
+
}
|
|
470
|
+
uiGridMoveColumnService.redrawColumnAtPosition
|
|
471
|
+
($scope.grid, columnIndex, targetIndex);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
};
|
|
478
|
+
|
|
479
|
+
var onDownEvents = function() {
|
|
480
|
+
$contentsElm.on('touchstart', downFn);
|
|
481
|
+
$contentsElm.on('mousedown', downFn);
|
|
482
|
+
};
|
|
483
|
+
|
|
484
|
+
var offAllEvents = function() {
|
|
485
|
+
$contentsElm.off('touchstart', downFn);
|
|
486
|
+
$contentsElm.off('mousedown', downFn);
|
|
487
|
+
|
|
488
|
+
$document.off('mousemove', moveFn);
|
|
489
|
+
$document.off('touchmove', moveFn);
|
|
490
|
+
|
|
491
|
+
$document.off('mouseup', upFn);
|
|
492
|
+
$document.off('touchend', upFn);
|
|
493
|
+
};
|
|
494
|
+
|
|
495
|
+
onDownEvents();
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
var cloneElement = function () {
|
|
499
|
+
elmCloned = true;
|
|
500
|
+
|
|
501
|
+
// Cloning header cell and appending to current header cell.
|
|
502
|
+
movingElm = $elm.clone();
|
|
503
|
+
$elm.parent().append(movingElm);
|
|
504
|
+
|
|
505
|
+
// Left of cloned element should be aligned to original header cell.
|
|
506
|
+
movingElm.addClass('movingColumn');
|
|
507
|
+
var movingElementStyles = {};
|
|
508
|
+
movingElementStyles.left = $elm[0].offsetLeft + 'px';
|
|
509
|
+
var gridRight = $scope.grid.element[0].getBoundingClientRect().right;
|
|
510
|
+
var elmRight = $elm[0].getBoundingClientRect().right;
|
|
511
|
+
if (elmRight > gridRight) {
|
|
512
|
+
reducedWidth = $scope.col.drawnWidth + (gridRight - elmRight);
|
|
513
|
+
movingElementStyles.width = reducedWidth + 'px';
|
|
514
|
+
}
|
|
515
|
+
movingElm.css(movingElementStyles);
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
var moveElement = function (changeValue) {
|
|
519
|
+
// Calculate total column width
|
|
520
|
+
var columns = $scope.grid.columns;
|
|
521
|
+
var totalColumnWidth = 0;
|
|
522
|
+
for (var i = 0; i < columns.length; i++) {
|
|
523
|
+
if (angular.isUndefined(columns[i].colDef.visible) || columns[i].colDef.visible === true) {
|
|
524
|
+
totalColumnWidth += columns[i].drawnWidth || columns[i].width || columns[i].colDef.width;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
// Calculate new position of left of column
|
|
529
|
+
var currentElmLeft = movingElm[0].getBoundingClientRect().left - 1;
|
|
530
|
+
var currentElmRight = movingElm[0].getBoundingClientRect().right;
|
|
531
|
+
var newElementLeft;
|
|
532
|
+
|
|
533
|
+
newElementLeft = currentElmLeft - gridLeft + changeValue;
|
|
534
|
+
newElementLeft = newElementLeft < rightMoveLimit ? newElementLeft : rightMoveLimit;
|
|
535
|
+
|
|
536
|
+
// Update css of moving column to adjust to new left value or fire scroll in case column has reached edge of grid
|
|
537
|
+
if ((currentElmLeft >= gridLeft || changeValue > 0) && (currentElmRight <= rightMoveLimit || changeValue < 0)) {
|
|
538
|
+
movingElm.css({visibility: 'visible', 'left': (movingElm[0].offsetLeft +
|
|
539
|
+
(newElementLeft < rightMoveLimit ? changeValue : (rightMoveLimit - currentElmLeft))) + 'px'});
|
|
540
|
+
}
|
|
541
|
+
else if (totalColumnWidth > Math.ceil(uiGridCtrl.grid.gridWidth)) {
|
|
542
|
+
changeValue *= 8;
|
|
543
|
+
var scrollEvent = new ScrollEvent($scope.col.grid, null, null, 'uiGridHeaderCell.moveElement');
|
|
544
|
+
scrollEvent.x = {pixels: changeValue};
|
|
545
|
+
scrollEvent.grid.scrollContainers('',scrollEvent);
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
// Calculate total width of columns on the left of the moving column and the mouse movement
|
|
549
|
+
var totalColumnsLeftWidth = 0;
|
|
550
|
+
for (var il = 0; il < columns.length; il++) {
|
|
551
|
+
if (angular.isUndefined(columns[il].colDef.visible) || columns[il].colDef.visible === true) {
|
|
552
|
+
if (columns[il].colDef.name !== $scope.col.colDef.name) {
|
|
553
|
+
totalColumnsLeftWidth += columns[il].drawnWidth || columns[il].width || columns[il].colDef.width;
|
|
554
|
+
}
|
|
555
|
+
else {
|
|
556
|
+
break;
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
if ($scope.newScrollLeft === undefined) {
|
|
561
|
+
totalMouseMovement += changeValue;
|
|
562
|
+
}
|
|
563
|
+
else {
|
|
564
|
+
totalMouseMovement = $scope.newScrollLeft + newElementLeft - totalColumnsLeftWidth;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
// Increase width of moving column, in case the rightmost column was moved and its width was
|
|
568
|
+
// decreased because of overflow
|
|
569
|
+
if (reducedWidth < $scope.col.drawnWidth) {
|
|
570
|
+
reducedWidth += Math.abs(changeValue);
|
|
571
|
+
movingElm.css({'width': reducedWidth + 'px'});
|
|
572
|
+
}
|
|
573
|
+
};
|
|
574
|
+
|
|
575
|
+
$scope.$on('$destroy', offAllEvents);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
};
|
|
579
|
+
}
|
|
580
|
+
};
|
|
581
|
+
}]);
|
|
582
|
+
})();
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ui-grid - v4.12.7 - 2024-04-12
|
|
3
|
+
* http://ui-grid.info/
|
|
4
|
+
* Copyright (c) 2024 ; License: MIT
|
|
5
|
+
*/
|
|
6
|
+
!function(){"use strict";var e=angular.module("ui.grid.moveColumns",["ui.grid"]);e.service("uiGridMoveColumnService",["$q","$rootScope","$log","ScrollEvent","uiGridConstants","gridUtil",function(o,d,e,i,s,u){var c={initializeGrid:function(e){this.registerPublicApi(e),this.defaultGridOptions(e.options),e.moveColumns={orderCache:[]},e.registerColumnBuilder(this.movableColumnBuilder),e.registerDataChangeCallback(this.verifyColumnOrder,[s.dataChange.COLUMN])},registerPublicApi:function(t){var a=this,e={colMovable:{columnPositionChanged:function(e,i,n){}}},i={colMovable:{moveColumn:function(e,i){var o=t.columns;if(angular.isNumber(e)&&angular.isNumber(i)){for(var n,r=0,l=0;l<o.length;l++)(angular.isDefined(o[l].colDef.visible)&&!1===o[l].colDef.visible||!0===o[l].isRowHeader)&&r++;e>=o.length-r||i>=o.length-r?u.logError("MoveColumn: Invalid values for originalPosition, finalPosition"):a.redrawColumnAtPosition(t,(n=function(e){for(var i=e,n=0;n<=i;n++)angular.isDefined(o[n])&&(angular.isDefined(o[n].colDef.visible)&&!1===o[n].colDef.visible||!0===o[n].isRowHeader)&&i++;return i})(e),n(i))}else u.logError("MoveColumn: Please provide valid values for originalPosition and finalPosition")}}};t.api.registerEventsFromObject(e),t.api.registerMethodsFromObject(i)},defaultGridOptions:function(e){e.enableColumnMoving=!1!==e.enableColumnMoving},movableColumnBuilder:function(e,i,n){return e.enableColumnMoving=(void 0===e.enableColumnMoving?n:e).enableColumnMoving,o.all([])},updateColumnCache:function(e){e.moveColumns.orderCache=e.getOnlyDataColumns()},verifyColumnOrder:function(n){var o,r=n.rowHeaderColumns.length;angular.forEach(n.moveColumns.orderCache,function(e,i){-1!==(o=n.columns.indexOf(e))&&o-r!==i&&(e=n.columns.splice(o,1)[0],n.columns.splice(i+r,0,e))})},redrawColumnAtPosition:function(e,i,n){var o=e.columns;if(i!==n){for(var r=i<n?i+1:i-1,l=Math.min(r,n);l<=Math.max(r,n)&&!o[l].visible;l++);if(!(l>Math.max(r,n))){var t=o[i];if(t.colDef.enableColumnMoving){if(n<i)for(var a=i;n<a;a--)o[a]=o[a-1];else if(i<n)for(var u=i;u<n;u++)o[u]=o[u+1];o[n]=t,c.updateColumnCache(e),e.queueGridRefresh(),d.$applyAsync(function(){e.api.core.notifyDataChange(s.dataChange.COLUMN),e.api.colMovable.raise.columnPositionChanged(t.colDef,i,n)})}}}}};return c}]),e.directive("uiGridMoveColumns",["uiGridMoveColumnService",function(r){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(e,i,n,o){r.initializeGrid(o.grid)},post:function(e,i,n,o){}}}}}]),e.directive("uiGridHeaderCell",["$q","gridUtil","uiGridMoveColumnService","$document","$log","uiGridConstants","ScrollEvent",function(e,i,w,D,n,o,M){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(d,o,e,s){var i,c,n,f,g,v,m,h,C,r,l,t,b,p,a,u;d.col.colDef.enableColumnMoving&&(i=angular.element(o[0].querySelectorAll(".ui-grid-cell-contents")),C=v=!1,r=function(e){c=d.grid.element[0].getBoundingClientRect().left,d.grid.hasLeftContainer()&&(c+=d.grid.renderContainers.left.header[0].getBoundingClientRect().width),n=e.pageX||(e.originalEvent?e.originalEvent.pageX:0),f=0,g=c+d.grid.getViewportWidth(),"mousedown"===e.type?(D.on("mousemove",l),D.on("mouseup",t)):"touchstart"===e.type&&(D.on("touchmove",l),D.on("touchend",t))},l=function(e){var e=e.pageX||(e.originalEvent?e.originalEvent.pageX:0),i=e-n;0!=i&&(document.onselectstart=function(){return!1},C=!0,v?(u(i),n=e):a())},t=function(e){if(document.onselectstart=null,m&&(m.remove(),v=!1),p(),b(),C){for(var i,n=d.grid.columns,o=0,r=0;r<n.length&&n[r].colDef.name!==d.col.colDef.name;r++)o++;if(f<0){var l,t=0;if(d.grid.isRTL()){for(l=o+1;l<n.length;l++)if((angular.isUndefined(n[l].colDef.visible)||!0===n[l].colDef.visible)&&(t+=n[l].drawnWidth||n[l].width||n[l].colDef.width)>Math.abs(f)){w.redrawColumnAtPosition(d.grid,o,l-1);break}}else for(l=o-1;0<=l;l--)if((angular.isUndefined(n[l].colDef.visible)||!0===n[l].colDef.visible)&&(t+=n[l].drawnWidth||n[l].width||n[l].colDef.width)>Math.abs(f)){w.redrawColumnAtPosition(d.grid,o,l+1);break}t<Math.abs(f)&&(i=0,d.grid.isRTL()&&(i=n.length-1),w.redrawColumnAtPosition(d.grid,o,i))}else if(0<f){var a,u=0;if(d.grid.isRTL()){for(a=o-1;0<a;a--)if((angular.isUndefined(n[a].colDef.visible)||!0===n[a].colDef.visible)&&(u+=n[a].drawnWidth||n[a].width||n[a].colDef.width,f<u)){w.redrawColumnAtPosition(d.grid,o,a);break}}else for(a=o+1;a<n.length;a++)if((angular.isUndefined(n[a].colDef.visible)||!0===n[a].colDef.visible)&&(u+=n[a].drawnWidth||n[a].width||n[a].colDef.width,f<u)){w.redrawColumnAtPosition(d.grid,o,a-1);break}u<f&&(i=n.length-1,d.grid.isRTL()&&(i=0),w.redrawColumnAtPosition(d.grid,o,i))}}},p=function(){i.off("touchstart",r),i.off("mousedown",r),D.off("mousemove",l),D.off("touchmove",l),D.off("mouseup",t),D.off("touchend",t)},(b=function(){i.on("touchstart",r),i.on("mousedown",r)})(),a=function(){v=!0,m=o.clone(),o.parent().append(m),m.addClass("movingColumn");var e={},i=(e.left=o[0].offsetLeft+"px",d.grid.element[0].getBoundingClientRect().right),n=o[0].getBoundingClientRect().right;i<n&&(h=d.col.drawnWidth+(i-n),e.width=h+"px"),m.css(e)},u=function(e){for(var i=d.grid.columns,n=0,o=0;o<i.length;o++)!angular.isUndefined(i[o].colDef.visible)&&!0!==i[o].colDef.visible||(n+=i[o].drawnWidth||i[o].width||i[o].colDef.width);var r=m[0].getBoundingClientRect().left-1,l=m[0].getBoundingClientRect().right,t=r-c+e;t=t<g?t:g,(c<=r||0<e)&&(l<=g||e<0)?m.css({visibility:"visible",left:m[0].offsetLeft+(t<g?e:g-r)+"px"}):n>Math.ceil(s.grid.gridWidth)&&(e*=8,(l=new M(d.col.grid,null,null,"uiGridHeaderCell.moveElement")).x={pixels:e},l.grid.scrollContainers("",l));for(var a=0,u=0;u<i.length;u++)if(angular.isUndefined(i[u].colDef.visible)||!0===i[u].colDef.visible){if(i[u].colDef.name===d.col.colDef.name)break;a+=i[u].drawnWidth||i[u].width||i[u].colDef.width}void 0===d.newScrollLeft?f+=e:f=d.newScrollLeft+t-a,h<d.col.drawnWidth&&(h+=Math.abs(e),m.css({width:h+"px"}))},d.$on("$destroy",p))}}}}}])}();
|