@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,574 @@
|
|
|
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.resizeColumns
|
|
13
|
+
* @description
|
|
14
|
+
*
|
|
15
|
+
* # ui.grid.resizeColumns
|
|
16
|
+
*
|
|
17
|
+
* <div class="alert alert-success" role="alert"><strong>Stable</strong> This feature is stable. There should no longer be breaking api changes without a deprecation warning.</div>
|
|
18
|
+
*
|
|
19
|
+
* This module allows columns to be resized.
|
|
20
|
+
*/
|
|
21
|
+
var module = angular.module('ui.grid.resizeColumns', ['ui.grid']);
|
|
22
|
+
|
|
23
|
+
module.service('uiGridResizeColumnsService', ['gridUtil', '$q', '$rootScope',
|
|
24
|
+
function (gridUtil, $q, $rootScope) {
|
|
25
|
+
return {
|
|
26
|
+
defaultGridOptions: function(gridOptions) {
|
|
27
|
+
// default option to true unless it was explicitly set to false
|
|
28
|
+
/**
|
|
29
|
+
* @ngdoc object
|
|
30
|
+
* @name ui.grid.resizeColumns.api:GridOptions
|
|
31
|
+
*
|
|
32
|
+
* @description GridOptions for resizeColumns feature, these are available to be
|
|
33
|
+
* set using the ui-grid {@link ui.grid.class:GridOptions gridOptions}
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @ngdoc object
|
|
38
|
+
* @name enableColumnResizing
|
|
39
|
+
* @propertyOf ui.grid.resizeColumns.api:GridOptions
|
|
40
|
+
* @description Enable column resizing on the entire grid
|
|
41
|
+
* <br/>Defaults to true
|
|
42
|
+
*/
|
|
43
|
+
gridOptions.enableColumnResizing = gridOptions.enableColumnResizing !== false;
|
|
44
|
+
|
|
45
|
+
// legacy support
|
|
46
|
+
// use old name if it is explicitly false
|
|
47
|
+
if (gridOptions.enableColumnResize === false) {
|
|
48
|
+
gridOptions.enableColumnResizing = false;
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
colResizerColumnBuilder: function (colDef, col, gridOptions) {
|
|
53
|
+
var promises = [];
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @ngdoc object
|
|
57
|
+
* @name ui.grid.resizeColumns.api:ColumnDef
|
|
58
|
+
*
|
|
59
|
+
* @description ColumnDef for resizeColumns feature, these are available to be
|
|
60
|
+
* set using the ui-grid {@link ui.grid.class:GridOptions.columnDef gridOptions.columnDefs}
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @ngdoc object
|
|
65
|
+
* @name enableColumnResizing
|
|
66
|
+
* @propertyOf ui.grid.resizeColumns.api:ColumnDef
|
|
67
|
+
* @description Enable column resizing on an individual column
|
|
68
|
+
* <br/>Defaults to GridOptions.enableColumnResizing
|
|
69
|
+
*/
|
|
70
|
+
// default to true unless gridOptions or colDef is explicitly false
|
|
71
|
+
colDef.enableColumnResizing = colDef.enableColumnResizing === undefined ? gridOptions.enableColumnResizing : colDef.enableColumnResizing;
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
// legacy support of old option name
|
|
75
|
+
if (colDef.enableColumnResize === false) {
|
|
76
|
+
colDef.enableColumnResizing = false;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return $q.all(promises);
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
registerPublicApi: function (grid) {
|
|
83
|
+
/**
|
|
84
|
+
* @ngdoc object
|
|
85
|
+
* @name ui.grid.resizeColumns.api:PublicApi
|
|
86
|
+
* @description Public Api for column resize feature.
|
|
87
|
+
*/
|
|
88
|
+
var publicApi = {
|
|
89
|
+
events: {
|
|
90
|
+
/**
|
|
91
|
+
* @ngdoc event
|
|
92
|
+
* @name columnSizeChanged
|
|
93
|
+
* @eventOf ui.grid.resizeColumns.api:PublicApi
|
|
94
|
+
* @description raised when column is resized
|
|
95
|
+
* <pre>
|
|
96
|
+
* gridApi.colResizable.on.columnSizeChanged(scope,function(colDef, deltaChange) {})
|
|
97
|
+
* </pre>
|
|
98
|
+
* @param {object} colDef the column that was resized
|
|
99
|
+
* @param {integer} delta of the column size change
|
|
100
|
+
*/
|
|
101
|
+
colResizable: {
|
|
102
|
+
columnSizeChanged: function (colDef, deltaChange) {
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
grid.api.registerEventsFromObject(publicApi.events);
|
|
108
|
+
},
|
|
109
|
+
|
|
110
|
+
fireColumnSizeChanged: function (grid, colDef, deltaChange) {
|
|
111
|
+
$rootScope.$applyAsync(function () {
|
|
112
|
+
if ( grid.api.colResizable ) {
|
|
113
|
+
grid.api.colResizable.raise.columnSizeChanged(colDef, deltaChange);
|
|
114
|
+
} else {
|
|
115
|
+
gridUtil.logError("The resizeable api is not registered, this may indicate that you've included the module but not added the 'ui-grid-resize-columns' directive to your grid definition. Cannot raise any events.");
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
// get either this column, or the column next to this column, to resize,
|
|
121
|
+
// returns the column we're going to resize
|
|
122
|
+
findTargetCol: function(col, position, rtlMultiplier) {
|
|
123
|
+
var renderContainer = col.getRenderContainer();
|
|
124
|
+
|
|
125
|
+
if (position === 'left') {
|
|
126
|
+
// Get the column to the left of this one
|
|
127
|
+
var colIndex = renderContainer.visibleColumnCache.indexOf(col);
|
|
128
|
+
if (colIndex === 0) {
|
|
129
|
+
return renderContainer.visibleColumnCache[0];
|
|
130
|
+
}
|
|
131
|
+
return renderContainer.visibleColumnCache[colIndex - 1 * rtlMultiplier];
|
|
132
|
+
} else {
|
|
133
|
+
return col;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
}]);
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @ngdoc directive
|
|
142
|
+
* @name ui.grid.resizeColumns.directive:uiGridResizeColumns
|
|
143
|
+
* @element div
|
|
144
|
+
* @restrict A
|
|
145
|
+
* @description
|
|
146
|
+
* Enables resizing for all columns on the grid. If, for some reason, you want to use the ui-grid-resize-columns directive, but not allow column resizing, you can explicitly set the
|
|
147
|
+
* option to false. This prevents resizing for the entire grid, regardless of individual columnDef options.
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
<doc:example module="app">
|
|
151
|
+
<doc:source>
|
|
152
|
+
<script>
|
|
153
|
+
var app = angular.module('app', ['ui.grid', 'ui.grid.resizeColumns']);
|
|
154
|
+
|
|
155
|
+
app.controller('MainCtrl', ['$scope', function ($scope) {
|
|
156
|
+
$scope.gridOpts = {
|
|
157
|
+
data: [
|
|
158
|
+
{ "name": "Ethel Price", "gender": "female", "company": "Enersol" },
|
|
159
|
+
{ "name": "Claudine Neal", "gender": "female", "company": "Sealoud" },
|
|
160
|
+
{ "name": "Beryl Rice", "gender": "female", "company": "Velity" },
|
|
161
|
+
{ "name": "Wilder Gonzales", "gender": "male", "company": "Geekko" }
|
|
162
|
+
]
|
|
163
|
+
};
|
|
164
|
+
}]);
|
|
165
|
+
</script>
|
|
166
|
+
|
|
167
|
+
<div ng-controller="MainCtrl">
|
|
168
|
+
<div class="testGrid" ui-grid="gridOpts" ui-grid-resize-columns ></div>
|
|
169
|
+
</div>
|
|
170
|
+
</doc:source>
|
|
171
|
+
<doc:scenario>
|
|
172
|
+
|
|
173
|
+
</doc:scenario>
|
|
174
|
+
</doc:example>
|
|
175
|
+
*/
|
|
176
|
+
module.directive('uiGridResizeColumns', ['gridUtil', 'uiGridResizeColumnsService', function (gridUtil, uiGridResizeColumnsService) {
|
|
177
|
+
return {
|
|
178
|
+
replace: true,
|
|
179
|
+
priority: 0,
|
|
180
|
+
require: '^uiGrid',
|
|
181
|
+
scope: false,
|
|
182
|
+
compile: function () {
|
|
183
|
+
return {
|
|
184
|
+
pre: function ($scope, $elm, $attrs, uiGridCtrl) {
|
|
185
|
+
uiGridResizeColumnsService.defaultGridOptions(uiGridCtrl.grid.options);
|
|
186
|
+
uiGridCtrl.grid.registerColumnBuilder( uiGridResizeColumnsService.colResizerColumnBuilder);
|
|
187
|
+
uiGridResizeColumnsService.registerPublicApi(uiGridCtrl.grid);
|
|
188
|
+
},
|
|
189
|
+
post: function ($scope, $elm, $attrs, uiGridCtrl) {
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
}]);
|
|
195
|
+
|
|
196
|
+
// Extend the uiGridHeaderCell directive
|
|
197
|
+
module.directive('uiGridHeaderCell', ['gridUtil', '$templateCache', '$compile', '$q', 'uiGridResizeColumnsService', 'uiGridConstants', function (gridUtil, $templateCache, $compile, $q, uiGridResizeColumnsService, uiGridConstants) {
|
|
198
|
+
return {
|
|
199
|
+
// Run after the original uiGridHeaderCell
|
|
200
|
+
priority: -10,
|
|
201
|
+
require: '^uiGrid',
|
|
202
|
+
// scope: false,
|
|
203
|
+
compile: function() {
|
|
204
|
+
return {
|
|
205
|
+
post: function ($scope, $elm, $attrs, uiGridCtrl) {
|
|
206
|
+
var grid = uiGridCtrl.grid;
|
|
207
|
+
|
|
208
|
+
if (grid.options.enableColumnResizing) {
|
|
209
|
+
var columnResizerElm = $templateCache.get('ui-grid/columnResizer');
|
|
210
|
+
|
|
211
|
+
var rtlMultiplier = 1;
|
|
212
|
+
// when in RTL mode reverse the direction using the rtlMultiplier and change the position to left
|
|
213
|
+
if (grid.isRTL()) {
|
|
214
|
+
$scope.position = 'left';
|
|
215
|
+
rtlMultiplier = -1;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
var displayResizers = function() {
|
|
219
|
+
|
|
220
|
+
// remove any existing resizers.
|
|
221
|
+
var resizers = $elm[0].getElementsByClassName('ui-grid-column-resizer');
|
|
222
|
+
for ( var i = 0; i < resizers.length; i++ ) {
|
|
223
|
+
angular.element(resizers[i]).remove();
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// get the target column for the left resizer
|
|
227
|
+
var otherCol = uiGridResizeColumnsService.findTargetCol($scope.col, 'left', rtlMultiplier);
|
|
228
|
+
var renderContainer = $scope.col.getRenderContainer();
|
|
229
|
+
|
|
230
|
+
// Don't append the left resizer if this is the first column or the column to the left of this one has resizing disabled
|
|
231
|
+
if (otherCol && renderContainer.visibleColumnCache.indexOf($scope.col) !== 0 && otherCol.colDef.enableColumnResizing !== false) {
|
|
232
|
+
var resizerLeft = angular.element(columnResizerElm).clone();
|
|
233
|
+
resizerLeft.attr('position', 'left');
|
|
234
|
+
|
|
235
|
+
$elm.prepend(resizerLeft);
|
|
236
|
+
$compile(resizerLeft)($scope);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Don't append the right resizer if this column has resizing disabled
|
|
240
|
+
if ($scope.col.colDef.enableColumnResizing !== false) {
|
|
241
|
+
var resizerRight = angular.element(columnResizerElm).clone();
|
|
242
|
+
resizerRight.attr('position', 'right');
|
|
243
|
+
|
|
244
|
+
$elm.append(resizerRight);
|
|
245
|
+
$compile(resizerRight)($scope);
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
displayResizers();
|
|
250
|
+
|
|
251
|
+
var waitDisplay = function() {
|
|
252
|
+
$scope.$applyAsync(displayResizers);
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
var dataChangeDereg = grid.registerDataChangeCallback( waitDisplay, [uiGridConstants.dataChange.COLUMN] );
|
|
256
|
+
|
|
257
|
+
$scope.$on( '$destroy', dataChangeDereg );
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
}]);
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* @ngdoc directive
|
|
269
|
+
* @name ui.grid.resizeColumns.directive:uiGridColumnResizer
|
|
270
|
+
* @element div
|
|
271
|
+
* @restrict A
|
|
272
|
+
*
|
|
273
|
+
* @description
|
|
274
|
+
* Draggable handle that controls column resizing.
|
|
275
|
+
*
|
|
276
|
+
* @example
|
|
277
|
+
<doc:example module="app">
|
|
278
|
+
<doc:source>
|
|
279
|
+
<script>
|
|
280
|
+
var app = angular.module('app', ['ui.grid', 'ui.grid.resizeColumns']);
|
|
281
|
+
|
|
282
|
+
app.controller('MainCtrl', ['$scope', function ($scope) {
|
|
283
|
+
$scope.gridOpts = {
|
|
284
|
+
enableColumnResizing: true,
|
|
285
|
+
data: [
|
|
286
|
+
{ "name": "Ethel Price", "gender": "female", "company": "Enersol" },
|
|
287
|
+
{ "name": "Claudine Neal", "gender": "female", "company": "Sealoud" },
|
|
288
|
+
{ "name": "Beryl Rice", "gender": "female", "company": "Velity" },
|
|
289
|
+
{ "name": "Wilder Gonzales", "gender": "male", "company": "Geekko" }
|
|
290
|
+
]
|
|
291
|
+
};
|
|
292
|
+
}]);
|
|
293
|
+
</script>
|
|
294
|
+
|
|
295
|
+
<div ng-controller="MainCtrl">
|
|
296
|
+
<div class="testGrid" ui-grid="gridOpts"></div>
|
|
297
|
+
</div>
|
|
298
|
+
</doc:source>
|
|
299
|
+
<doc:scenario>
|
|
300
|
+
// TODO: e2e specs?
|
|
301
|
+
|
|
302
|
+
// TODO: post-resize a horizontal scroll event should be fired
|
|
303
|
+
</doc:scenario>
|
|
304
|
+
</doc:example>
|
|
305
|
+
*/
|
|
306
|
+
module.directive('uiGridColumnResizer', ['$document', 'gridUtil', 'uiGridConstants', 'uiGridResizeColumnsService', function ($document, gridUtil, uiGridConstants, uiGridResizeColumnsService) {
|
|
307
|
+
var resizeOverlay = angular.element('<div class="ui-grid-resize-overlay"></div>');
|
|
308
|
+
|
|
309
|
+
return {
|
|
310
|
+
priority: 0,
|
|
311
|
+
scope: {
|
|
312
|
+
col: '=',
|
|
313
|
+
position: '@',
|
|
314
|
+
renderIndex: '='
|
|
315
|
+
},
|
|
316
|
+
require: '?^uiGrid',
|
|
317
|
+
link: function ($scope, $elm, $attrs, uiGridCtrl) {
|
|
318
|
+
var startX = 0,
|
|
319
|
+
x = 0,
|
|
320
|
+
gridLeft = 0,
|
|
321
|
+
rtlMultiplier = 1;
|
|
322
|
+
|
|
323
|
+
// when in RTL mode reverse the direction using the rtlMultiplier and change the position to left
|
|
324
|
+
if (uiGridCtrl.grid.isRTL()) {
|
|
325
|
+
$scope.position = 'left';
|
|
326
|
+
rtlMultiplier = -1;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
if ($scope.position === 'left') {
|
|
330
|
+
$elm.addClass('left');
|
|
331
|
+
}
|
|
332
|
+
else if ($scope.position === 'right') {
|
|
333
|
+
$elm.addClass('right');
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// Refresh the grid canvas
|
|
337
|
+
// takes an argument representing the diff along the X-axis that the resize had
|
|
338
|
+
function refreshCanvas(xDiff) {
|
|
339
|
+
// Then refresh the grid canvas, rebuilding the styles so that the scrollbar updates its size
|
|
340
|
+
uiGridCtrl.grid.refreshCanvas(true).then( function() {
|
|
341
|
+
uiGridCtrl.grid.queueGridRefresh();
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
// Check that the requested width isn't wider than the maxWidth, or narrower than the minWidth
|
|
346
|
+
// Returns the new recommended with, after constraints applied
|
|
347
|
+
function constrainWidth(col, width) {
|
|
348
|
+
var newWidth = width;
|
|
349
|
+
|
|
350
|
+
// If the new width would be less than the column's allowably minimum width, don't allow it
|
|
351
|
+
if (col.minWidth && newWidth < col.minWidth) {
|
|
352
|
+
newWidth = col.minWidth;
|
|
353
|
+
}
|
|
354
|
+
else if (col.maxWidth && newWidth > col.maxWidth) {
|
|
355
|
+
newWidth = col.maxWidth;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
return newWidth;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
/*
|
|
363
|
+
* Our approach to event handling aims to deal with both touch devices and mouse devices
|
|
364
|
+
* We register down handlers on both touch and mouse. When a touchstart or mousedown event
|
|
365
|
+
* occurs, we register the corresponding touchmove/touchend, or mousemove/mouseend events.
|
|
366
|
+
*
|
|
367
|
+
* This way we can listen for both without worrying about the fact many touch devices also emulate
|
|
368
|
+
* mouse events - basically whichever one we hear first is what we'll go with.
|
|
369
|
+
*/
|
|
370
|
+
function moveFunction(event, args) {
|
|
371
|
+
if (event.originalEvent) { event = event.originalEvent; }
|
|
372
|
+
event.preventDefault();
|
|
373
|
+
|
|
374
|
+
x = (event.targetTouches ? event.targetTouches[0] : event).clientX - gridLeft;
|
|
375
|
+
|
|
376
|
+
if (x < 0) { x = 0; }
|
|
377
|
+
else if (x > uiGridCtrl.grid.gridWidth) { x = uiGridCtrl.grid.gridWidth; }
|
|
378
|
+
|
|
379
|
+
var col = uiGridResizeColumnsService.findTargetCol($scope.col, $scope.position, rtlMultiplier);
|
|
380
|
+
|
|
381
|
+
// Don't resize if it's disabled on this column
|
|
382
|
+
if (col.colDef.enableColumnResizing === false) {
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
if (!uiGridCtrl.grid.element.hasClass('column-resizing')) {
|
|
387
|
+
uiGridCtrl.grid.element.addClass('column-resizing');
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
// Get the diff along the X axis
|
|
391
|
+
var xDiff = x - startX;
|
|
392
|
+
|
|
393
|
+
// Get the width that this mouse would give the column
|
|
394
|
+
var newWidth = parseInt(col.drawnWidth + xDiff * rtlMultiplier, 10);
|
|
395
|
+
|
|
396
|
+
// check we're not outside the allowable bounds for this column
|
|
397
|
+
x = x + ( constrainWidth(col, newWidth) - newWidth ) * rtlMultiplier;
|
|
398
|
+
|
|
399
|
+
resizeOverlay.css({ left: x + 'px' });
|
|
400
|
+
|
|
401
|
+
uiGridCtrl.fireEvent(uiGridConstants.events.ITEM_DRAGGING);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
function upFunction(event) {
|
|
406
|
+
if (event.originalEvent) { event = event.originalEvent; }
|
|
407
|
+
event.preventDefault();
|
|
408
|
+
|
|
409
|
+
uiGridCtrl.grid.element.removeClass('column-resizing');
|
|
410
|
+
|
|
411
|
+
resizeOverlay.remove();
|
|
412
|
+
|
|
413
|
+
// Resize the column
|
|
414
|
+
x = (event.changedTouches ? event.changedTouches[0] : event).clientX - gridLeft;
|
|
415
|
+
var xDiff = x - startX;
|
|
416
|
+
|
|
417
|
+
if (xDiff === 0) {
|
|
418
|
+
// no movement, so just reset event handlers, including turning back on both
|
|
419
|
+
// down events - we turned one off when this event started
|
|
420
|
+
offAllEvents();
|
|
421
|
+
onDownEvents();
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
var col = uiGridResizeColumnsService.findTargetCol($scope.col, $scope.position, rtlMultiplier);
|
|
426
|
+
|
|
427
|
+
// Don't resize if it's disabled on this column
|
|
428
|
+
if (col.colDef.enableColumnResizing === false) {
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
// Get the new width
|
|
433
|
+
var newWidth = parseInt(col.drawnWidth + xDiff * rtlMultiplier, 10);
|
|
434
|
+
|
|
435
|
+
// check we're not outside the allowable bounds for this column
|
|
436
|
+
col.width = constrainWidth(col, newWidth);
|
|
437
|
+
col.hasCustomWidth = true;
|
|
438
|
+
|
|
439
|
+
refreshCanvas(xDiff);
|
|
440
|
+
|
|
441
|
+
uiGridResizeColumnsService.fireColumnSizeChanged(uiGridCtrl.grid, col.colDef, xDiff);
|
|
442
|
+
|
|
443
|
+
// stop listening of up and move events - wait for next down
|
|
444
|
+
// reset the down events - we will have turned one off when this event started
|
|
445
|
+
offAllEvents();
|
|
446
|
+
onDownEvents();
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
var downFunction = function(event, args) {
|
|
451
|
+
if (event.originalEvent) { event = event.originalEvent; }
|
|
452
|
+
event.stopPropagation();
|
|
453
|
+
|
|
454
|
+
// Get the left offset of the grid
|
|
455
|
+
// gridLeft = uiGridCtrl.grid.element[0].offsetLeft;
|
|
456
|
+
gridLeft = uiGridCtrl.grid.element[0].getBoundingClientRect().left;
|
|
457
|
+
|
|
458
|
+
// Get the starting X position, which is the X coordinate of the click minus the grid's offset
|
|
459
|
+
startX = (event.targetTouches ? event.targetTouches[0] : event).clientX - gridLeft;
|
|
460
|
+
|
|
461
|
+
// Append the resizer overlay
|
|
462
|
+
uiGridCtrl.grid.element.append(resizeOverlay);
|
|
463
|
+
|
|
464
|
+
// Place the resizer overlay at the start position
|
|
465
|
+
resizeOverlay.css({ left: startX });
|
|
466
|
+
|
|
467
|
+
// Add handlers for move and up events - if we were mousedown then we listen for mousemove and mouseup, if
|
|
468
|
+
// we were touchdown then we listen for touchmove and touchup. Also remove the handler for the equivalent
|
|
469
|
+
// down event - so if we're touchdown, then remove the mousedown handler until this event is over, if we're
|
|
470
|
+
// mousedown then remove the touchdown handler until this event is over, this avoids processing duplicate events
|
|
471
|
+
if ( event.type === 'touchstart' ) {
|
|
472
|
+
$document.on('touchend', upFunction);
|
|
473
|
+
$document.on('touchmove', moveFunction);
|
|
474
|
+
$elm.off('mousedown', downFunction);
|
|
475
|
+
}
|
|
476
|
+
else {
|
|
477
|
+
$document.on('mouseup', upFunction);
|
|
478
|
+
$document.on('mousemove', moveFunction);
|
|
479
|
+
$elm.off('touchstart', downFunction);
|
|
480
|
+
}
|
|
481
|
+
};
|
|
482
|
+
|
|
483
|
+
var onDownEvents = function() {
|
|
484
|
+
$elm.on('mousedown', downFunction);
|
|
485
|
+
$elm.on('touchstart', downFunction);
|
|
486
|
+
};
|
|
487
|
+
|
|
488
|
+
var offAllEvents = function() {
|
|
489
|
+
$document.off('mouseup', upFunction);
|
|
490
|
+
$document.off('touchend', upFunction);
|
|
491
|
+
$document.off('mousemove', moveFunction);
|
|
492
|
+
$document.off('touchmove', moveFunction);
|
|
493
|
+
$elm.off('mousedown', downFunction);
|
|
494
|
+
$elm.off('touchstart', downFunction);
|
|
495
|
+
};
|
|
496
|
+
|
|
497
|
+
onDownEvents();
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
// On doubleclick, resize to fit all rendered cells
|
|
501
|
+
var dblClickFn = function(event, args) {
|
|
502
|
+
event.stopPropagation();
|
|
503
|
+
|
|
504
|
+
var col = uiGridResizeColumnsService.findTargetCol($scope.col, $scope.position, rtlMultiplier);
|
|
505
|
+
|
|
506
|
+
// Don't resize if it's disabled on this column
|
|
507
|
+
if (col.colDef.enableColumnResizing === false) {
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
// Go through the rendered rows and find out the max size for the data in this column
|
|
512
|
+
var maxWidth = 0;
|
|
513
|
+
|
|
514
|
+
// Get the parent render container element
|
|
515
|
+
var renderContainerElm = gridUtil.closestElm($elm, '.ui-grid-render-container');
|
|
516
|
+
|
|
517
|
+
// Get the cell contents so we measure correctly. For the header cell we have to account for the sort icon and the menu buttons, if present
|
|
518
|
+
var cells = renderContainerElm.querySelectorAll('.' + uiGridConstants.COL_CLASS_PREFIX + col.uid + ' .ui-grid-cell-contents');
|
|
519
|
+
Array.prototype.forEach.call(cells, function (cell) {
|
|
520
|
+
// Get the cell width
|
|
521
|
+
// gridUtil.logDebug('width', gridUtil.elementWidth(cell));
|
|
522
|
+
|
|
523
|
+
// Account for the menu button if it exists
|
|
524
|
+
var menuButton;
|
|
525
|
+
if (angular.element(cell).parent().hasClass('ui-grid-header-cell')) {
|
|
526
|
+
menuButton = angular.element(cell).parent()[0].querySelectorAll('.ui-grid-column-menu-button');
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
gridUtil.fakeElement(cell, {}, function(newElm) {
|
|
530
|
+
// Make the element float since it's a div and can expand to fill its container
|
|
531
|
+
var e = angular.element(newElm);
|
|
532
|
+
e.attr('style', 'float: left');
|
|
533
|
+
|
|
534
|
+
var width = gridUtil.elementWidth(e) + 2;
|
|
535
|
+
|
|
536
|
+
if (menuButton) {
|
|
537
|
+
var menuButtonWidth = gridUtil.elementWidth(menuButton);
|
|
538
|
+
width = width + menuButtonWidth;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
if (width > maxWidth) {
|
|
542
|
+
maxWidth = width;
|
|
543
|
+
}
|
|
544
|
+
});
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
// check we're not outside the allowable bounds for this column
|
|
548
|
+
var newWidth = constrainWidth(col, maxWidth);
|
|
549
|
+
var xDiff = newWidth - col.drawnWidth;
|
|
550
|
+
col.width = newWidth;
|
|
551
|
+
col.hasCustomWidth = true;
|
|
552
|
+
|
|
553
|
+
refreshCanvas(xDiff);
|
|
554
|
+
|
|
555
|
+
uiGridResizeColumnsService.fireColumnSizeChanged(uiGridCtrl.grid, col.colDef, xDiff); };
|
|
556
|
+
$elm.on('dblclick', dblClickFn);
|
|
557
|
+
|
|
558
|
+
$elm.on('$destroy', function() {
|
|
559
|
+
$elm.off('dblclick', dblClickFn);
|
|
560
|
+
offAllEvents();
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
};
|
|
564
|
+
}]);
|
|
565
|
+
})();
|
|
566
|
+
|
|
567
|
+
angular.module('ui.grid.resizeColumns').run(['$templateCache', function($templateCache) {
|
|
568
|
+
'use strict';
|
|
569
|
+
|
|
570
|
+
$templateCache.put('ui-grid/columnResizer',
|
|
571
|
+
"<div ui-grid-column-resizer ng-if=\"grid.options.enableColumnResizing\" class=\"ui-grid-column-resizer\" col=\"col\" position=\"right\" render-index=\"renderIndex\" unselectable=\"on\"></div>"
|
|
572
|
+
);
|
|
573
|
+
|
|
574
|
+
}]);
|
|
@@ -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.resizeColumns",["ui.grid"]);e.service("uiGridResizeColumnsService",["gridUtil","$q","$rootScope",function(o,t,r){return{defaultGridOptions:function(e){e.enableColumnResizing=!1!==e.enableColumnResizing,!1===e.enableColumnResize&&(e.enableColumnResizing=!1)},colResizerColumnBuilder:function(e,i,n){return e.enableColumnResizing=(void 0===e.enableColumnResizing?n:e).enableColumnResizing,!1===e.enableColumnResize&&(e.enableColumnResizing=!1),t.all([])},registerPublicApi:function(e){e.api.registerEventsFromObject({colResizable:{columnSizeChanged:function(e,i){}}})},fireColumnSizeChanged:function(e,i,n){r.$applyAsync(function(){e.api.colResizable?e.api.colResizable.raise.columnSizeChanged(i,n):o.logError("The resizeable api is not registered, this may indicate that you've included the module but not added the 'ui-grid-resize-columns' directive to your grid definition. Cannot raise any events.")})},findTargetCol:function(e,i,n){var o=e.getRenderContainer();return"left"===i?0===(i=o.visibleColumnCache.indexOf(e))?o.visibleColumnCache[0]:o.visibleColumnCache[i-+n]:e}}}]),e.directive("uiGridResizeColumns",["gridUtil","uiGridResizeColumnsService",function(e,t){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(e,i,n,o){t.defaultGridOptions(o.grid.options),o.grid.registerColumnBuilder(t.colResizerColumnBuilder),t.registerPublicApi(o.grid)},post:function(e,i,n,o){}}}}}]),e.directive("uiGridHeaderCell",["gridUtil","$templateCache","$compile","$q","uiGridResizeColumnsService","uiGridConstants",function(e,o,a,i,s,d){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(t,r,e,i){var l,u,n,i=i.grid;i.options.enableColumnResizing&&(l=o.get("ui-grid/columnResizer"),u=1,i.isRTL()&&(t.position="left",u=-1),(n=function(){for(var e=r[0].getElementsByClassName("ui-grid-column-resizer"),i=0;i<e.length;i++)angular.element(e[i]).remove();var n=s.findTargetCol(t.col,"left",u),o=t.col.getRenderContainer();n&&0!==o.visibleColumnCache.indexOf(t.col)&&!1!==n.colDef.enableColumnResizing&&((o=angular.element(l).clone()).attr("position","left"),r.prepend(o),a(o)(t)),!1!==t.col.colDef.enableColumnResizing&&((n=angular.element(l).clone()).attr("position","right"),r.append(n),a(n)(t))})(),i=i.registerDataChangeCallback(function(){t.$applyAsync(n)},[d.dataChange.COLUMN]),t.$on("$destroy",i))}}}}}]),e.directive("uiGridColumnResizer",["$document","gridUtil","uiGridConstants","uiGridResizeColumnsService",function(h,p,v,z){var R=angular.element('<div class="ui-grid-resize-overlay"></div>');return{priority:0,scope:{col:"=",position:"@",renderIndex:"="},require:"?^uiGrid",link:function(r,l,e,u){var o=0,t=0,a=0,s=1;function d(){u.grid.refreshCanvas(!0).then(function(){u.grid.queueGridRefresh()})}function c(e,i){return e.minWidth&&i<e.minWidth?i=e.minWidth:e.maxWidth&&i>e.maxWidth&&(i=e.maxWidth),i}function n(e,i){(e=e.originalEvent?e.originalEvent:e).preventDefault(),(t=(e.targetTouches?e.targetTouches[0]:e).clientX-a)<0?t=0:t>u.grid.gridWidth&&(t=u.grid.gridWidth);var n,e=z.findTargetCol(r.col,r.position,s);!1!==e.colDef.enableColumnResizing&&(u.grid.element.hasClass("column-resizing")||u.grid.element.addClass("column-resizing"),n=t-o,n=parseInt(e.drawnWidth+n*s,10),t+=(c(e,n)-n)*s,R.css({left:t+"px"}),u.fireEvent(v.events.ITEM_DRAGGING))}function g(e){(e=e.originalEvent?e.originalEvent:e).preventDefault(),u.grid.element.removeClass("column-resizing"),R.remove();var i,n,e=(t=(e.changedTouches?e.changedTouches[0]:e).clientX-a)-o;0==e?(C(),f()):!1!==(i=z.findTargetCol(r.col,r.position,s)).colDef.enableColumnResizing&&(n=parseInt(i.drawnWidth+e*s,10),i.width=c(i,n),i.hasCustomWidth=!0,d(),z.fireColumnSizeChanged(u.grid,i.colDef,e),C(),f())}u.grid.isRTL()&&(r.position="left",s=-1),"left"===r.position?l.addClass("left"):"right"===r.position&&l.addClass("right");function i(e,i){var n,o,t;e.stopPropagation(),!1!==(e=z.findTargetCol(r.col,r.position,s)).colDef.enableColumnResizing&&(n=0,o=p.closestElm(l,".ui-grid-render-container").querySelectorAll("."+v.COL_CLASS_PREFIX+e.uid+" .ui-grid-cell-contents"),Array.prototype.forEach.call(o,function(e){var i;angular.element(e).parent().hasClass("ui-grid-header-cell")&&(i=angular.element(e).parent()[0].querySelectorAll(".ui-grid-column-menu-button")),p.fakeElement(e,{},function(e){e=angular.element(e),e.attr("style","float: left"),e=p.elementWidth(e)+2;i&&(e+=p.elementWidth(i)),n<e&&(n=e)})}),t=(o=c(e,n))-e.drawnWidth,e.width=o,e.hasCustomWidth=!0,d(),z.fireColumnSizeChanged(u.grid,e.colDef,t))}var m=function(e,i){(e=e.originalEvent?e.originalEvent:e).stopPropagation(),a=u.grid.element[0].getBoundingClientRect().left,o=(e.targetTouches?e.targetTouches[0]:e).clientX-a,u.grid.element.append(R),R.css({left:o}),"touchstart"===e.type?(h.on("touchend",g),h.on("touchmove",n),l.off("mousedown",m)):(h.on("mouseup",g),h.on("mousemove",n),l.off("touchstart",m))},f=function(){l.on("mousedown",m),l.on("touchstart",m)},C=function(){h.off("mouseup",g),h.off("touchend",g),h.off("mousemove",n),h.off("touchmove",n),l.off("mousedown",m),l.off("touchstart",m)};f();l.on("dblclick",i),l.on("$destroy",function(){l.off("dblclick",i),C()})}}}])}(),angular.module("ui.grid.resizeColumns").run(["$templateCache",function(e){"use strict";e.put("ui-grid/columnResizer",'<div ui-grid-column-resizer ng-if="grid.options.enableColumnResizing" class="ui-grid-column-resizer" col="col" position="right" render-index="renderIndex" unselectable="on"></div>')}]);
|