@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.
Files changed (201) hide show
  1. package/chunk-A3NTIEMP.js +1 -0
  2. package/chunk-CAY35YP7.js +7 -0
  3. package/chunk-H3QHLLCN.js +1 -0
  4. package/chunk-KE4BCZO4.js +851 -0
  5. package/chunk-OHPEWN32.js +1198 -0
  6. package/chunk-WSQOM5HU.js +1 -0
  7. package/component-lib.js +1 -0
  8. package/index.html +12 -0
  9. package/main.js +3264 -0
  10. package/modules/angular/LICENSE.md +21 -0
  11. package/modules/angular/README.md +67 -0
  12. package/modules/angular/angular-csp.css +25 -0
  13. package/modules/angular/angular.js +36600 -0
  14. package/modules/angular/angular.min.js +352 -0
  15. package/modules/angular/angular.min.js.gzip +0 -0
  16. package/modules/angular/angular.min.js.map +8 -0
  17. package/modules/angular/bower.json +9 -0
  18. package/modules/angular/index.js +2 -0
  19. package/modules/angular/package.json +25 -0
  20. package/modules/angular-ui-grid/CHANGELOG.md +1973 -0
  21. package/modules/angular-ui-grid/README.md +59 -0
  22. package/modules/angular-ui-grid/css/ui-grid.cellnav.css +25 -0
  23. package/modules/angular-ui-grid/css/ui-grid.cellnav.min.css +1 -0
  24. package/modules/angular-ui-grid/css/ui-grid.core.css +866 -0
  25. package/modules/angular-ui-grid/css/ui-grid.core.min.css +5 -0
  26. package/modules/angular-ui-grid/css/ui-grid.edit.css +23 -0
  27. package/modules/angular-ui-grid/css/ui-grid.edit.min.css +1 -0
  28. package/modules/angular-ui-grid/css/ui-grid.empty-base-layer.css +6 -0
  29. package/modules/angular-ui-grid/css/ui-grid.empty-base-layer.min.css +1 -0
  30. package/modules/angular-ui-grid/css/ui-grid.expandable.css +16 -0
  31. package/modules/angular-ui-grid/css/ui-grid.expandable.min.css +1 -0
  32. package/modules/angular-ui-grid/css/ui-grid.exporter.css +0 -0
  33. package/modules/angular-ui-grid/css/ui-grid.exporter.min.css +0 -0
  34. package/modules/angular-ui-grid/css/ui-grid.grouping.css +3 -0
  35. package/modules/angular-ui-grid/css/ui-grid.grouping.min.css +1 -0
  36. package/modules/angular-ui-grid/css/ui-grid.importer.css +0 -0
  37. package/modules/angular-ui-grid/css/ui-grid.importer.min.css +0 -0
  38. package/modules/angular-ui-grid/css/ui-grid.move-columns.css +9 -0
  39. package/modules/angular-ui-grid/css/ui-grid.move-columns.min.css +1 -0
  40. package/modules/angular-ui-grid/css/ui-grid.pagination.css +299 -0
  41. package/modules/angular-ui-grid/css/ui-grid.pagination.min.css +1 -0
  42. package/modules/angular-ui-grid/css/ui-grid.pinning.css +67 -0
  43. package/modules/angular-ui-grid/css/ui-grid.pinning.min.css +1 -0
  44. package/modules/angular-ui-grid/css/ui-grid.resize-columns.css +38 -0
  45. package/modules/angular-ui-grid/css/ui-grid.resize-columns.min.css +1 -0
  46. package/modules/angular-ui-grid/css/ui-grid.row-edit.css +9 -0
  47. package/modules/angular-ui-grid/css/ui-grid.row-edit.min.css +1 -0
  48. package/modules/angular-ui-grid/css/ui-grid.selection.css +25 -0
  49. package/modules/angular-ui-grid/css/ui-grid.selection.min.css +1 -0
  50. package/modules/angular-ui-grid/css/ui-grid.tree-base.css +4 -0
  51. package/modules/angular-ui-grid/css/ui-grid.tree-base.min.css +1 -0
  52. package/modules/angular-ui-grid/css/ui-grid.tree-view.css +6 -0
  53. package/modules/angular-ui-grid/css/ui-grid.tree-view.min.css +1 -0
  54. package/modules/angular-ui-grid/css/ui-grid.validate.css +3 -0
  55. package/modules/angular-ui-grid/css/ui-grid.validate.min.css +1 -0
  56. package/modules/angular-ui-grid/fonts/ui-grid.eot +0 -0
  57. package/modules/angular-ui-grid/fonts/ui-grid.svg +56 -0
  58. package/modules/angular-ui-grid/fonts/ui-grid.ttf +0 -0
  59. package/modules/angular-ui-grid/fonts/ui-grid.woff +0 -0
  60. package/modules/angular-ui-grid/less/animation.less +85 -0
  61. package/modules/angular-ui-grid/less/body.less +84 -0
  62. package/modules/angular-ui-grid/less/cell.less +46 -0
  63. package/modules/angular-ui-grid/less/cellnav.less +29 -0
  64. package/modules/angular-ui-grid/less/core.less +11 -0
  65. package/modules/angular-ui-grid/less/edit.less +27 -0
  66. package/modules/angular-ui-grid/less/elements.less +156 -0
  67. package/modules/angular-ui-grid/less/emptyBaseLayer.less +8 -0
  68. package/modules/angular-ui-grid/less/expandable.less +29 -0
  69. package/modules/angular-ui-grid/less/exporter.less +4 -0
  70. package/modules/angular-ui-grid/less/footer.less +76 -0
  71. package/modules/angular-ui-grid/less/grid.less +86 -0
  72. package/modules/angular-ui-grid/less/grouping.less +5 -0
  73. package/modules/angular-ui-grid/less/header.less +250 -0
  74. package/modules/angular-ui-grid/less/icons.less +151 -0
  75. package/modules/angular-ui-grid/less/importer.less +4 -0
  76. package/modules/angular-ui-grid/less/main.less +2 -0
  77. package/modules/angular-ui-grid/less/menu.less +91 -0
  78. package/modules/angular-ui-grid/less/moveColumns.less +12 -0
  79. package/modules/angular-ui-grid/less/pagination.less +297 -0
  80. package/modules/angular-ui-grid/less/pinning.less +86 -0
  81. package/modules/angular-ui-grid/less/resizeColumns.less +53 -0
  82. package/modules/angular-ui-grid/less/rowEdit.less +19 -0
  83. package/modules/angular-ui-grid/less/rtl.less +67 -0
  84. package/modules/angular-ui-grid/less/selection.less +29 -0
  85. package/modules/angular-ui-grid/less/sorting.less +16 -0
  86. package/modules/angular-ui-grid/less/treeBase.less +6 -0
  87. package/modules/angular-ui-grid/less/treeView.less +8 -0
  88. package/modules/angular-ui-grid/less/validate.less +5 -0
  89. package/modules/angular-ui-grid/less/variables.less +90 -0
  90. package/modules/angular-ui-grid/package.json +144 -0
  91. package/modules/angular-ui-grid/ui-grid.auto-resize.js +69 -0
  92. package/modules/angular-ui-grid/ui-grid.auto-resize.min.js +6 -0
  93. package/modules/angular-ui-grid/ui-grid.cellnav.js +1181 -0
  94. package/modules/angular-ui-grid/ui-grid.cellnav.min.js +6 -0
  95. package/modules/angular-ui-grid/ui-grid.core.js +12737 -0
  96. package/modules/angular-ui-grid/ui-grid.core.min.js +6 -0
  97. package/modules/angular-ui-grid/ui-grid.css +3208 -0
  98. package/modules/angular-ui-grid/ui-grid.edit.js +1325 -0
  99. package/modules/angular-ui-grid/ui-grid.edit.min.js +6 -0
  100. package/modules/angular-ui-grid/ui-grid.empty-base-layer.js +178 -0
  101. package/modules/angular-ui-grid/ui-grid.empty-base-layer.min.js +6 -0
  102. package/modules/angular-ui-grid/ui-grid.expandable.js +651 -0
  103. package/modules/angular-ui-grid/ui-grid.expandable.min.js +6 -0
  104. package/modules/angular-ui-grid/ui-grid.exporter.js +1777 -0
  105. package/modules/angular-ui-grid/ui-grid.exporter.min.js +6 -0
  106. package/modules/angular-ui-grid/ui-grid.grouping.js +1291 -0
  107. package/modules/angular-ui-grid/ui-grid.grouping.min.js +6 -0
  108. package/modules/angular-ui-grid/ui-grid.importer.js +791 -0
  109. package/modules/angular-ui-grid/ui-grid.importer.min.js +6 -0
  110. package/modules/angular-ui-grid/ui-grid.infinite-scroll.js +552 -0
  111. package/modules/angular-ui-grid/ui-grid.infinite-scroll.min.js +6 -0
  112. package/modules/angular-ui-grid/ui-grid.js +30867 -0
  113. package/modules/angular-ui-grid/ui-grid.language.all.js +3214 -0
  114. package/modules/angular-ui-grid/ui-grid.language.all.min.js +6 -0
  115. package/modules/angular-ui-grid/ui-grid.language.ar.js +118 -0
  116. package/modules/angular-ui-grid/ui-grid.language.ar.min.js +6 -0
  117. package/modules/angular-ui-grid/ui-grid.language.bg.js +115 -0
  118. package/modules/angular-ui-grid/ui-grid.language.bg.min.js +6 -0
  119. package/modules/angular-ui-grid/ui-grid.language.cs.js +96 -0
  120. package/modules/angular-ui-grid/ui-grid.language.cs.min.js +6 -0
  121. package/modules/angular-ui-grid/ui-grid.language.da.js +90 -0
  122. package/modules/angular-ui-grid/ui-grid.language.da.min.js +6 -0
  123. package/modules/angular-ui-grid/ui-grid.language.de.js +133 -0
  124. package/modules/angular-ui-grid/ui-grid.language.de.min.js +6 -0
  125. package/modules/angular-ui-grid/ui-grid.language.es-ct.js +133 -0
  126. package/modules/angular-ui-grid/ui-grid.language.es-ct.min.js +6 -0
  127. package/modules/angular-ui-grid/ui-grid.language.es.js +106 -0
  128. package/modules/angular-ui-grid/ui-grid.language.es.min.js +6 -0
  129. package/modules/angular-ui-grid/ui-grid.language.fa.js +93 -0
  130. package/modules/angular-ui-grid/ui-grid.language.fa.min.js +6 -0
  131. package/modules/angular-ui-grid/ui-grid.language.fi.js +76 -0
  132. package/modules/angular-ui-grid/ui-grid.language.fi.min.js +6 -0
  133. package/modules/angular-ui-grid/ui-grid.language.fr.js +128 -0
  134. package/modules/angular-ui-grid/ui-grid.language.fr.min.js +6 -0
  135. package/modules/angular-ui-grid/ui-grid.language.he.js +71 -0
  136. package/modules/angular-ui-grid/ui-grid.language.he.min.js +6 -0
  137. package/modules/angular-ui-grid/ui-grid.language.hy.js +76 -0
  138. package/modules/angular-ui-grid/ui-grid.language.hy.min.js +6 -0
  139. package/modules/angular-ui-grid/ui-grid.language.is.js +118 -0
  140. package/modules/angular-ui-grid/ui-grid.language.is.min.js +6 -0
  141. package/modules/angular-ui-grid/ui-grid.language.it.js +112 -0
  142. package/modules/angular-ui-grid/ui-grid.language.it.min.js +6 -0
  143. package/modules/angular-ui-grid/ui-grid.language.ja.js +118 -0
  144. package/modules/angular-ui-grid/ui-grid.language.ja.min.js +6 -0
  145. package/modules/angular-ui-grid/ui-grid.language.ko.js +77 -0
  146. package/modules/angular-ui-grid/ui-grid.language.ko.min.js +6 -0
  147. package/modules/angular-ui-grid/ui-grid.language.nl.js +91 -0
  148. package/modules/angular-ui-grid/ui-grid.language.nl.min.js +6 -0
  149. package/modules/angular-ui-grid/ui-grid.language.no.js +115 -0
  150. package/modules/angular-ui-grid/ui-grid.language.no.min.js +6 -0
  151. package/modules/angular-ui-grid/ui-grid.language.pl.js +126 -0
  152. package/modules/angular-ui-grid/ui-grid.language.pl.min.js +6 -0
  153. package/modules/angular-ui-grid/ui-grid.language.pt-br.js +133 -0
  154. package/modules/angular-ui-grid/ui-grid.language.pt-br.min.js +6 -0
  155. package/modules/angular-ui-grid/ui-grid.language.pt.js +133 -0
  156. package/modules/angular-ui-grid/ui-grid.language.pt.min.js +6 -0
  157. package/modules/angular-ui-grid/ui-grid.language.ro.js +112 -0
  158. package/modules/angular-ui-grid/ui-grid.language.ro.min.js +6 -0
  159. package/modules/angular-ui-grid/ui-grid.language.rs-lat.js +126 -0
  160. package/modules/angular-ui-grid/ui-grid.language.rs-lat.min.js +6 -0
  161. package/modules/angular-ui-grid/ui-grid.language.ru.js +115 -0
  162. package/modules/angular-ui-grid/ui-grid.language.ru.min.js +6 -0
  163. package/modules/angular-ui-grid/ui-grid.language.sk.js +127 -0
  164. package/modules/angular-ui-grid/ui-grid.language.sk.min.js +6 -0
  165. package/modules/angular-ui-grid/ui-grid.language.sv.js +126 -0
  166. package/modules/angular-ui-grid/ui-grid.language.sv.min.js +6 -0
  167. package/modules/angular-ui-grid/ui-grid.language.ta.js +87 -0
  168. package/modules/angular-ui-grid/ui-grid.language.ta.min.js +6 -0
  169. package/modules/angular-ui-grid/ui-grid.language.tr.js +112 -0
  170. package/modules/angular-ui-grid/ui-grid.language.tr.min.js +6 -0
  171. package/modules/angular-ui-grid/ui-grid.language.ua.js +112 -0
  172. package/modules/angular-ui-grid/ui-grid.language.ua.min.js +6 -0
  173. package/modules/angular-ui-grid/ui-grid.language.zh-cn.js +112 -0
  174. package/modules/angular-ui-grid/ui-grid.language.zh-cn.min.js +6 -0
  175. package/modules/angular-ui-grid/ui-grid.language.zh-tw.js +77 -0
  176. package/modules/angular-ui-grid/ui-grid.language.zh-tw.min.js +6 -0
  177. package/modules/angular-ui-grid/ui-grid.min.css +5 -0
  178. package/modules/angular-ui-grid/ui-grid.min.js +6 -0
  179. package/modules/angular-ui-grid/ui-grid.move-columns.js +582 -0
  180. package/modules/angular-ui-grid/ui-grid.move-columns.min.js +6 -0
  181. package/modules/angular-ui-grid/ui-grid.pagination.js +510 -0
  182. package/modules/angular-ui-grid/ui-grid.pagination.min.js +6 -0
  183. package/modules/angular-ui-grid/ui-grid.pinning.js +281 -0
  184. package/modules/angular-ui-grid/ui-grid.pinning.min.js +6 -0
  185. package/modules/angular-ui-grid/ui-grid.resize-columns.js +574 -0
  186. package/modules/angular-ui-grid/ui-grid.resize-columns.min.js +6 -0
  187. package/modules/angular-ui-grid/ui-grid.row-edit.js +717 -0
  188. package/modules/angular-ui-grid/ui-grid.row-edit.min.js +6 -0
  189. package/modules/angular-ui-grid/ui-grid.saveState.js +831 -0
  190. package/modules/angular-ui-grid/ui-grid.saveState.min.js +6 -0
  191. package/modules/angular-ui-grid/ui-grid.selection.js +1196 -0
  192. package/modules/angular-ui-grid/ui-grid.selection.min.js +6 -0
  193. package/modules/angular-ui-grid/ui-grid.tree-base.js +1743 -0
  194. package/modules/angular-ui-grid/ui-grid.tree-base.min.js +6 -0
  195. package/modules/angular-ui-grid/ui-grid.tree-view.js +218 -0
  196. package/modules/angular-ui-grid/ui-grid.tree-view.min.js +6 -0
  197. package/modules/angular-ui-grid/ui-grid.validate.js +589 -0
  198. package/modules/angular-ui-grid/ui-grid.validate.min.js +6 -0
  199. package/package.json +8 -0
  200. package/polyfills.js +2 -0
  201. package/styles.css +1 -0
@@ -0,0 +1,717 @@
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.rowEdit
13
+ * @description
14
+ *
15
+ * # ui.grid.rowEdit
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 extends the edit feature to provide tracking and saving of rows
20
+ * of data. The tutorial provides more information on how this feature is best
21
+ * used {@link tutorial/205_row_editable here}.
22
+ * <br/>
23
+ * This feature depends on usage of the ui-grid-edit feature, and also benefits
24
+ * from use of ui-grid-cellNav to provide the full spreadsheet-like editing
25
+ * experience
26
+ *
27
+ */
28
+
29
+ var module = angular.module('ui.grid.rowEdit', ['ui.grid', 'ui.grid.edit', 'ui.grid.cellNav']);
30
+
31
+ /**
32
+ * @ngdoc object
33
+ * @name ui.grid.rowEdit.constant:uiGridRowEditConstants
34
+ *
35
+ * @description constants available in row edit module
36
+ */
37
+ module.constant('uiGridRowEditConstants', {
38
+ });
39
+
40
+ /**
41
+ * @ngdoc service
42
+ * @name ui.grid.rowEdit.service:uiGridRowEditService
43
+ *
44
+ * @description Services for row editing features
45
+ */
46
+ module.service('uiGridRowEditService', ['$interval', '$q', 'uiGridConstants', 'uiGridRowEditConstants', 'gridUtil',
47
+ function ($interval, $q, uiGridConstants, uiGridRowEditConstants, gridUtil) {
48
+
49
+ var service = {
50
+
51
+ initializeGrid: function (scope, grid) {
52
+ /**
53
+ * @ngdoc object
54
+ * @name ui.grid.rowEdit.api:PublicApi
55
+ *
56
+ * @description Public Api for rowEdit feature
57
+ */
58
+
59
+ grid.rowEdit = {};
60
+
61
+ var publicApi = {
62
+ events: {
63
+ rowEdit: {
64
+ /**
65
+ * @ngdoc event
66
+ * @eventOf ui.grid.rowEdit.api:PublicApi
67
+ * @name saveRow
68
+ * @description raised when a row is ready for saving. Once your
69
+ * row has saved you may need to use angular.extend to update the
70
+ * data entity with any changed data from your save (for example,
71
+ * lock version information if you're using optimistic locking,
72
+ * or last update time/user information).
73
+ *
74
+ * Your method should call setSavePromise somewhere in the body before
75
+ * returning control. The feature will then wait, with the gridRow greyed out
76
+ * whilst this promise is being resolved.
77
+ *
78
+ * <pre>
79
+ * gridApi.rowEdit.on.saveRow(scope,function(rowEntity) {})
80
+ * </pre>
81
+ * and somewhere within the event handler:
82
+ * <pre>
83
+ * gridApi.rowEdit.setSavePromise( rowEntity, savePromise)
84
+ * </pre>
85
+ * @param {object} rowEntity the options.data element that was edited
86
+ * @returns {promise} Your saveRow method should return a promise, the
87
+ * promise should either be resolved (implying successful save), or
88
+ * rejected (implying an error).
89
+ */
90
+ saveRow: function (rowEntity) {
91
+ }
92
+ }
93
+ },
94
+ methods: {
95
+ rowEdit: {
96
+ /**
97
+ * @ngdoc method
98
+ * @methodOf ui.grid.rowEdit.api:PublicApi
99
+ * @name setSavePromise
100
+ * @description Sets the promise associated with the row save, mandatory that
101
+ * the saveRow event handler calls this method somewhere before returning.
102
+ * <pre>
103
+ * gridApi.rowEdit.setSavePromise(rowEntity, savePromise)
104
+ * </pre>
105
+ * @param {object} rowEntity a data row from the grid for which a save has
106
+ * been initiated
107
+ * @param {promise} savePromise the promise that will be resolved when the
108
+ * save is successful, or rejected if the save fails
109
+ *
110
+ */
111
+ setSavePromise: function ( rowEntity, savePromise) {
112
+ service.setSavePromise(grid, rowEntity, savePromise);
113
+ },
114
+ /**
115
+ * @ngdoc method
116
+ * @methodOf ui.grid.rowEdit.api:PublicApi
117
+ * @name getDirtyRows
118
+ * @description Returns all currently dirty rows
119
+ * <pre>
120
+ * gridApi.rowEdit.getDirtyRows(grid)
121
+ * </pre>
122
+ * @returns {array} An array of gridRows that are currently dirty
123
+ *
124
+ */
125
+ getDirtyRows: function () {
126
+ return grid.rowEdit.dirtyRows ? grid.rowEdit.dirtyRows : [];
127
+ },
128
+ /**
129
+ * @ngdoc method
130
+ * @methodOf ui.grid.rowEdit.api:PublicApi
131
+ * @name getErrorRows
132
+ * @description Returns all currently errored rows
133
+ * <pre>
134
+ * gridApi.rowEdit.getErrorRows(grid)
135
+ * </pre>
136
+ * @returns {array} An array of gridRows that are currently in error
137
+ *
138
+ */
139
+ getErrorRows: function () {
140
+ return grid.rowEdit.errorRows ? grid.rowEdit.errorRows : [];
141
+ },
142
+ /**
143
+ * @ngdoc method
144
+ * @methodOf ui.grid.rowEdit.api:PublicApi
145
+ * @name flushDirtyRows
146
+ * @description Triggers a save event for all currently dirty rows, could
147
+ * be used where user presses a save button or navigates away from the page
148
+ * <pre>
149
+ * gridApi.rowEdit.flushDirtyRows(grid)
150
+ * </pre>
151
+ * @returns {promise} a promise that represents the aggregate of all
152
+ * of the individual save promises - i.e. it will be resolved when all
153
+ * the individual save promises have been resolved.
154
+ *
155
+ */
156
+ flushDirtyRows: function () {
157
+ return service.flushDirtyRows(grid);
158
+ },
159
+
160
+ /**
161
+ * @ngdoc method
162
+ * @methodOf ui.grid.rowEdit.api:PublicApi
163
+ * @name setRowsDirty
164
+ * @description Sets each of the rows passed in dataRows
165
+ * to be dirty. Note that if you have only just inserted the
166
+ * rows into your data you will need to wait for a $digest cycle
167
+ * before the gridRows are present - so often you would wrap this
168
+ * call in a $interval or $timeout. Also, you must pass row.entity
169
+ * into this function rather than row objects themselves.
170
+ * <pre>
171
+ * $interval( function() {
172
+ * gridApi.rowEdit.setRowsDirty(myDataRows);
173
+ * }, 0, 1);
174
+ * </pre>
175
+ * @param {array} dataRows the data entities for which the gridRows
176
+ * should be set dirty.
177
+ *
178
+ */
179
+ setRowsDirty: function ( dataRows) {
180
+ service.setRowsDirty(grid, dataRows);
181
+ },
182
+
183
+ /**
184
+ * @ngdoc method
185
+ * @methodOf ui.grid.rowEdit.api:PublicApi
186
+ * @name setRowsClean
187
+ * @description Sets each of the rows passed in dataRows
188
+ * to be clean, removing them from the dirty cache and the error cache,
189
+ * and clearing the error flag and the dirty flag
190
+ * <pre>
191
+ * var gridRows = $scope.gridApi.rowEdit.getDirtyRows();
192
+ * var dataRows = gridRows.map( function( gridRow ) { return gridRow.entity; });
193
+ * $scope.gridApi.rowEdit.setRowsClean( dataRows );
194
+ * </pre>
195
+ * @param {array} dataRows the data entities for which the gridRows
196
+ * should be set clean.
197
+ *
198
+ */
199
+ setRowsClean: function ( dataRows) {
200
+ service.setRowsClean(grid, dataRows);
201
+ }
202
+ }
203
+ }
204
+ };
205
+
206
+ grid.api.registerEventsFromObject(publicApi.events);
207
+ grid.api.registerMethodsFromObject(publicApi.methods);
208
+
209
+ grid.api.core.on.renderingComplete( scope, function ( gridApi ) {
210
+ grid.api.edit.on.afterCellEdit( scope, service.endEditCell );
211
+ grid.api.edit.on.beginCellEdit( scope, service.beginEditCell );
212
+ grid.api.edit.on.cancelCellEdit( scope, service.cancelEditCell );
213
+
214
+ if ( grid.api.cellNav ) {
215
+ grid.api.cellNav.on.navigate( scope, service.navigate );
216
+ }
217
+ });
218
+
219
+ },
220
+
221
+ defaultGridOptions: function (gridOptions) {
222
+
223
+ /**
224
+ * @ngdoc object
225
+ * @name ui.grid.rowEdit.api:GridOptions
226
+ *
227
+ * @description Options for configuring the rowEdit feature, these are available to be
228
+ * set using the ui-grid {@link ui.grid.class:GridOptions gridOptions}
229
+ */
230
+
231
+ },
232
+
233
+
234
+ /**
235
+ * @ngdoc method
236
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
237
+ * @name saveRow
238
+ * @description Returns a function that saves the specified row from the grid,
239
+ * and returns a promise
240
+ * @param {object} grid the grid for which dirty rows should be flushed
241
+ * @param {GridRow} gridRow the row that should be saved
242
+ * @returns {function} the saveRow function returns a function. That function
243
+ * in turn, when called, returns a promise relating to the save callback
244
+ */
245
+ saveRow: function ( grid, gridRow ) {
246
+ var self = this;
247
+
248
+ return function() {
249
+ gridRow.isSaving = true;
250
+
251
+ if ( gridRow.rowEditSavePromise ) {
252
+ // don't save the row again if it's already saving - that causes stale object exceptions
253
+ return gridRow.rowEditSavePromise;
254
+ }
255
+
256
+ var promise = grid.api.rowEdit.raise.saveRow( gridRow.entity );
257
+
258
+ if ( gridRow.rowEditSavePromise ) {
259
+ gridRow.rowEditSavePromise.then( self.processSuccessPromise( grid, gridRow ), self.processErrorPromise( grid, gridRow ));
260
+ } else {
261
+ gridUtil.logError( 'A promise was not returned when saveRow event was raised, either nobody is listening to event, or event handler did not return a promise' );
262
+ }
263
+ return promise;
264
+ };
265
+ },
266
+
267
+
268
+ /**
269
+ * @ngdoc method
270
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
271
+ * @name setSavePromise
272
+ * @description Sets the promise associated with the row save, mandatory that
273
+ * the saveRow event handler calls this method somewhere before returning.
274
+ * <pre>
275
+ * gridApi.rowEdit.setSavePromise(grid, rowEntity)
276
+ * </pre>
277
+ * @param {object} grid the grid for which dirty rows should be returned
278
+ * @param {object} rowEntity a data row from the grid for which a save has
279
+ * been initiated
280
+ * @param {promise} savePromise the promise that will be resolved when the
281
+ * save is successful, or rejected if the save fails
282
+ *
283
+ */
284
+ setSavePromise: function (grid, rowEntity, savePromise) {
285
+ var gridRow = grid.getRow( rowEntity );
286
+ gridRow.rowEditSavePromise = savePromise;
287
+ },
288
+
289
+
290
+ /**
291
+ * @ngdoc method
292
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
293
+ * @name processSuccessPromise
294
+ * @description Returns a function that processes the successful
295
+ * resolution of a save promise
296
+ * @param {object} grid the grid for which the promise should be processed
297
+ * @param {GridRow} gridRow the row that has been saved
298
+ * @returns {function} the success handling function
299
+ */
300
+ processSuccessPromise: function ( grid, gridRow ) {
301
+ var self = this;
302
+
303
+ return function() {
304
+ delete gridRow.isSaving;
305
+ delete gridRow.isDirty;
306
+ delete gridRow.isError;
307
+ delete gridRow.rowEditSaveTimer;
308
+ delete gridRow.rowEditSavePromise;
309
+ self.removeRow( grid.rowEdit.errorRows, gridRow );
310
+ self.removeRow( grid.rowEdit.dirtyRows, gridRow );
311
+ };
312
+ },
313
+
314
+
315
+ /**
316
+ * @ngdoc method
317
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
318
+ * @name processErrorPromise
319
+ * @description Returns a function that processes the failed
320
+ * resolution of a save promise
321
+ * @param {object} grid the grid for which the promise should be processed
322
+ * @param {GridRow} gridRow the row that is now in error
323
+ * @returns {function} the error handling function
324
+ */
325
+ processErrorPromise: function ( grid, gridRow ) {
326
+ return function() {
327
+ delete gridRow.isSaving;
328
+ delete gridRow.rowEditSaveTimer;
329
+ delete gridRow.rowEditSavePromise;
330
+
331
+ gridRow.isError = true;
332
+
333
+ if (!grid.rowEdit.errorRows) {
334
+ grid.rowEdit.errorRows = [];
335
+ }
336
+ if (!service.isRowPresent( grid.rowEdit.errorRows, gridRow ) ) {
337
+ grid.rowEdit.errorRows.push( gridRow );
338
+ }
339
+ };
340
+ },
341
+
342
+
343
+ /**
344
+ * @ngdoc method
345
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
346
+ * @name removeRow
347
+ * @description Removes a row from a cache of rows - either
348
+ * grid.rowEdit.errorRows or grid.rowEdit.dirtyRows. If the row
349
+ * is not present silently does nothing.
350
+ * @param {array} rowArray the array from which to remove the row
351
+ * @param {GridRow} gridRow the row that should be removed
352
+ */
353
+ removeRow: function( rowArray, removeGridRow ) {
354
+ if (typeof(rowArray) === 'undefined' || rowArray === null) {
355
+ return;
356
+ }
357
+
358
+ rowArray.forEach( function( gridRow, index ) {
359
+ if ( gridRow.uid === removeGridRow.uid ) {
360
+ rowArray.splice( index, 1);
361
+ }
362
+ });
363
+ },
364
+
365
+
366
+ /**
367
+ * @ngdoc method
368
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
369
+ * @name isRowPresent
370
+ * @description Checks whether a row is already present
371
+ * in the given array
372
+ * @param {array} rowArray the array in which to look for the row
373
+ * @param {GridRow} gridRow the row that should be looked for
374
+ */
375
+ isRowPresent: function( rowArray, removeGridRow ) {
376
+ var present = false;
377
+ rowArray.forEach( function( gridRow, index ) {
378
+ if ( gridRow.uid === removeGridRow.uid ) {
379
+ present = true;
380
+ }
381
+ });
382
+ return present;
383
+ },
384
+
385
+
386
+ /**
387
+ * @ngdoc method
388
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
389
+ * @name flushDirtyRows
390
+ * @description Triggers a save event for all currently dirty rows, could
391
+ * be used where user presses a save button or navigates away from the page
392
+ * <pre>
393
+ * gridApi.rowEdit.flushDirtyRows(grid)
394
+ * </pre>
395
+ * @param {object} grid the grid for which dirty rows should be flushed
396
+ * @returns {promise} a promise that represents the aggregate of all
397
+ * of the individual save promises - i.e. it will be resolved when all
398
+ * the individual save promises have been resolved.
399
+ *
400
+ */
401
+ flushDirtyRows: function(grid) {
402
+ var promises = [];
403
+ grid.api.rowEdit.getDirtyRows().forEach( function( gridRow ) {
404
+ service.cancelTimer( grid, gridRow );
405
+ service.saveRow( grid, gridRow )();
406
+ promises.push( gridRow.rowEditSavePromise );
407
+ });
408
+
409
+ return $q.all( promises );
410
+ },
411
+
412
+
413
+ /**
414
+ * @ngdoc method
415
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
416
+ * @name endEditCell
417
+ * @description Receives an afterCellEdit event from the edit function,
418
+ * and sets flags as appropriate. Only the rowEntity parameter
419
+ * is processed, although other params are available. Grid
420
+ * is automatically provided by the gridApi.
421
+ * @param {object} rowEntity the data entity for which the cell
422
+ * was edited
423
+ */
424
+ endEditCell: function( rowEntity, colDef, newValue, previousValue ) {
425
+ var grid = this.grid;
426
+ var gridRow = grid.getRow( rowEntity );
427
+ if ( !gridRow ) { gridUtil.logError( 'Unable to find rowEntity in grid data, dirty flag cannot be set' ); return; }
428
+
429
+ if ( newValue !== previousValue || gridRow.isDirty ) {
430
+ if ( !grid.rowEdit.dirtyRows ) {
431
+ grid.rowEdit.dirtyRows = [];
432
+ }
433
+
434
+ if ( !gridRow.isDirty ) {
435
+ gridRow.isDirty = true;
436
+ grid.rowEdit.dirtyRows.push( gridRow );
437
+ }
438
+
439
+ delete gridRow.isError;
440
+
441
+ service.considerSetTimer( grid, gridRow );
442
+ }
443
+ },
444
+
445
+
446
+ /**
447
+ * @ngdoc method
448
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
449
+ * @name beginEditCell
450
+ * @description Receives a beginCellEdit event from the edit function,
451
+ * and cancels any rowEditSaveTimers if present, as the user is still editing
452
+ * this row. Only the rowEntity parameter
453
+ * is processed, although other params are available. Grid
454
+ * is automatically provided by the gridApi.
455
+ * @param {object} rowEntity the data entity for which the cell
456
+ * editing has commenced
457
+ */
458
+ beginEditCell: function( rowEntity, colDef ) {
459
+ var grid = this.grid;
460
+ var gridRow = grid.getRow( rowEntity );
461
+ if ( !gridRow ) { gridUtil.logError( 'Unable to find rowEntity in grid data, timer cannot be cancelled' ); return; }
462
+
463
+ service.cancelTimer( grid, gridRow );
464
+ },
465
+
466
+
467
+ /**
468
+ * @ngdoc method
469
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
470
+ * @name cancelEditCell
471
+ * @description Receives a cancelCellEdit event from the edit function,
472
+ * and if the row was already dirty, restarts the save timer. If the row
473
+ * was not already dirty, then it's not dirty now either and does nothing.
474
+ *
475
+ * Only the rowEntity parameter
476
+ * is processed, although other params are available. Grid
477
+ * is automatically provided by the gridApi.
478
+ *
479
+ * @param {object} rowEntity the data entity for which the cell
480
+ * editing was cancelled
481
+ */
482
+ cancelEditCell: function( rowEntity, colDef ) {
483
+ var grid = this.grid;
484
+ var gridRow = grid.getRow( rowEntity );
485
+ if ( !gridRow ) { gridUtil.logError( 'Unable to find rowEntity in grid data, timer cannot be set' ); return; }
486
+
487
+ service.considerSetTimer( grid, gridRow );
488
+ },
489
+
490
+
491
+ /**
492
+ * @ngdoc method
493
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
494
+ * @name navigate
495
+ * @description cellNav tells us that the selected cell has changed. If
496
+ * the new row had a timer running, then stop it similar to in a beginCellEdit
497
+ * call. If the old row is dirty and not the same as the new row, then
498
+ * start a timer on it.
499
+ * @param {object} newRowCol the row and column that were selected
500
+ * @param {object} oldRowCol the row and column that was left
501
+ *
502
+ */
503
+ navigate: function( newRowCol, oldRowCol ) {
504
+ var grid = this.grid;
505
+ if ( newRowCol.row.rowEditSaveTimer ) {
506
+ service.cancelTimer( grid, newRowCol.row );
507
+ }
508
+
509
+ if ( oldRowCol && oldRowCol.row && oldRowCol.row !== newRowCol.row ) {
510
+ service.considerSetTimer( grid, oldRowCol.row );
511
+ }
512
+ },
513
+
514
+
515
+ /**
516
+ * @ngdoc property
517
+ * @propertyOf ui.grid.rowEdit.api:GridOptions
518
+ * @name rowEditWaitInterval
519
+ * @description How long the grid should wait for another change on this row
520
+ * before triggering a save (in milliseconds). If set to -1, then saves are
521
+ * never triggered by timer (implying that the user will call flushDirtyRows()
522
+ * manually)
523
+ *
524
+ * @example
525
+ * Setting the wait interval to 4 seconds
526
+ * <pre>
527
+ * $scope.gridOptions = { rowEditWaitInterval: 4000 }
528
+ * </pre>
529
+ *
530
+ */
531
+ /**
532
+ * @ngdoc method
533
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
534
+ * @name considerSetTimer
535
+ * @description Consider setting a timer on this row (if it is dirty). if there is a timer running
536
+ * on the row and the row isn't currently saving, cancel it, using cancelTimer, then if the row is
537
+ * dirty and not currently saving then set a new timer
538
+ * @param {object} grid the grid for which we are processing
539
+ * @param {GridRow} gridRow the row for which the timer should be adjusted
540
+ *
541
+ */
542
+ considerSetTimer: function( grid, gridRow ) {
543
+ service.cancelTimer( grid, gridRow );
544
+
545
+ if ( gridRow.isDirty && !gridRow.isSaving ) {
546
+ if ( grid.options.rowEditWaitInterval !== -1 ) {
547
+ var waitTime = grid.options.rowEditWaitInterval ? grid.options.rowEditWaitInterval : 2000;
548
+ gridRow.rowEditSaveTimer = $interval( service.saveRow( grid, gridRow ), waitTime, 1);
549
+ }
550
+ }
551
+ },
552
+
553
+
554
+ /**
555
+ * @ngdoc method
556
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
557
+ * @name cancelTimer
558
+ * @description cancel the $interval for any timer running on this row
559
+ * then delete the timer itself
560
+ * @param {object} grid the grid for which we are processing
561
+ * @param {GridRow} gridRow the row for which the timer should be adjusted
562
+ *
563
+ */
564
+ cancelTimer: function( grid, gridRow ) {
565
+ if ( gridRow.rowEditSaveTimer && !gridRow.isSaving ) {
566
+ $interval.cancel(gridRow.rowEditSaveTimer);
567
+ delete gridRow.rowEditSaveTimer;
568
+ }
569
+ },
570
+
571
+
572
+ /**
573
+ * @ngdoc method
574
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
575
+ * @name setRowsDirty
576
+ * @description Sets each of the rows passed in dataRows
577
+ * to be dirty. note that if you have only just inserted the
578
+ * rows into your data you will need to wait for a $digest cycle
579
+ * before the gridRows are present - so often you would wrap this
580
+ * call in a $interval or $timeout
581
+ * <pre>
582
+ * $interval( function() {
583
+ * gridApi.rowEdit.setRowsDirty( myDataRows);
584
+ * }, 0, 1);
585
+ * </pre>
586
+ * @param {object} grid the grid for which rows should be set dirty
587
+ * @param {array} dataRows the data entities for which the gridRows
588
+ * should be set dirty.
589
+ *
590
+ */
591
+ setRowsDirty: function( grid, myDataRows ) {
592
+ var gridRow;
593
+ myDataRows.forEach( function( value, index ) {
594
+ gridRow = grid.getRow( value );
595
+ if ( gridRow ) {
596
+ if ( !grid.rowEdit.dirtyRows ) {
597
+ grid.rowEdit.dirtyRows = [];
598
+ }
599
+
600
+ if ( !gridRow.isDirty ) {
601
+ gridRow.isDirty = true;
602
+ grid.rowEdit.dirtyRows.push( gridRow );
603
+ }
604
+
605
+ delete gridRow.isError;
606
+
607
+ service.considerSetTimer( grid, gridRow );
608
+ } else {
609
+ gridUtil.logError( "requested row not found in rowEdit.setRowsDirty, row was: " + value );
610
+ }
611
+ });
612
+ },
613
+
614
+
615
+ /**
616
+ * @ngdoc method
617
+ * @methodOf ui.grid.rowEdit.service:uiGridRowEditService
618
+ * @name setRowsClean
619
+ * @description Sets each of the rows passed in dataRows
620
+ * to be clean, clearing the dirty flag and the error flag, and removing
621
+ * the rows from the dirty and error caches.
622
+ * @param {object} grid the grid for which rows should be set clean
623
+ * @param {array} dataRows the data entities for which the gridRows
624
+ * should be set clean.
625
+ *
626
+ */
627
+ setRowsClean: function( grid, myDataRows ) {
628
+ var gridRow;
629
+
630
+ myDataRows.forEach( function( value, index ) {
631
+ gridRow = grid.getRow( value );
632
+ if ( gridRow ) {
633
+ delete gridRow.isDirty;
634
+ service.removeRow( grid.rowEdit.dirtyRows, gridRow );
635
+ service.cancelTimer( grid, gridRow );
636
+
637
+ delete gridRow.isError;
638
+ service.removeRow( grid.rowEdit.errorRows, gridRow );
639
+ } else {
640
+ gridUtil.logError( "requested row not found in rowEdit.setRowsClean, row was: " + value );
641
+ }
642
+ });
643
+ }
644
+
645
+ };
646
+
647
+ return service;
648
+
649
+ }]);
650
+
651
+ /**
652
+ * @ngdoc directive
653
+ * @name ui.grid.rowEdit.directive:uiGridEdit
654
+ * @element div
655
+ * @restrict A
656
+ *
657
+ * @description Adds row editing features to the ui-grid-edit directive.
658
+ *
659
+ */
660
+ module.directive('uiGridRowEdit', ['gridUtil', 'uiGridRowEditService', 'uiGridEditConstants',
661
+ function (gridUtil, uiGridRowEditService, uiGridEditConstants) {
662
+ return {
663
+ replace: true,
664
+ priority: 0,
665
+ require: '^uiGrid',
666
+ scope: false,
667
+ compile: function () {
668
+ return {
669
+ pre: function ($scope, $elm, $attrs, uiGridCtrl) {
670
+ uiGridRowEditService.initializeGrid($scope, uiGridCtrl.grid);
671
+ },
672
+ post: function ($scope, $elm, $attrs, uiGridCtrl) {
673
+ }
674
+ };
675
+ }
676
+ };
677
+ }]);
678
+
679
+
680
+ /**
681
+ * @ngdoc directive
682
+ * @name ui.grid.rowEdit.directive:uiGridViewport
683
+ * @element div
684
+ *
685
+ * @description Stacks on top of ui.grid.uiGridViewport to alter the attributes used
686
+ * for the grid row to allow coloring of saving and error rows
687
+ */
688
+ module.directive('uiGridViewport',
689
+ ['$compile', 'uiGridConstants', 'gridUtil', '$parse',
690
+ function ($compile, uiGridConstants, gridUtil, $parse) {
691
+ return {
692
+ priority: -200, // run after default directive
693
+ scope: false,
694
+ compile: function ($elm, $attrs) {
695
+ var rowRepeatDiv = angular.element($elm.children().children()[0]);
696
+
697
+ var existingNgClass = rowRepeatDiv.attr("ng-class");
698
+ var newNgClass = '';
699
+ if ( existingNgClass ) {
700
+ newNgClass = existingNgClass.slice(0, -1) + ", 'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}";
701
+ } else {
702
+ newNgClass = "{'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}";
703
+ }
704
+ rowRepeatDiv.attr("ng-class", newNgClass);
705
+
706
+ return {
707
+ pre: function ($scope, $elm, $attrs, controllers) {
708
+
709
+ },
710
+ post: function ($scope, $elm, $attrs, controllers) {
711
+ }
712
+ };
713
+ }
714
+ };
715
+ }]);
716
+
717
+ })();