@firestitch/list 9.12.5 → 12.1.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 (182) hide show
  1. package/app/classes/columns-controller.d.ts +8 -2
  2. package/app/classes/list-controller.d.ts +2 -1
  3. package/app/classes/persistance-controller.d.ts +3 -0
  4. package/app/classes/reorder-controller.d.ts +3 -0
  5. package/app/components/body/body.component.d.ts +3 -0
  6. package/app/components/body/row/actions/actions.component.d.ts +3 -0
  7. package/app/components/body/row/cell/cell.component.d.ts +3 -0
  8. package/app/components/body/row/inline-action/inline-action.component.d.ts +3 -0
  9. package/app/components/body/row/menu-action/menu-action.component.d.ts +3 -0
  10. package/app/components/body/row/row.component.d.ts +3 -0
  11. package/app/components/customize-cols/customize-cols.component.d.ts +3 -0
  12. package/app/components/footer/footer-row/footer-cell/footer-cell.component.d.ts +3 -0
  13. package/app/components/footer/footer-row/footer-row.component.d.ts +3 -0
  14. package/app/components/footer/footer.component.d.ts +3 -0
  15. package/app/components/head/head-cell/head-cell.component.d.ts +3 -0
  16. package/app/components/head/head.component.d.ts +3 -0
  17. package/app/components/list/list.component.d.ts +3 -0
  18. package/app/components/loader/loader.component.d.ts +3 -0
  19. package/app/components/manage-saved-filters/manage-saved-filters.component.d.ts +3 -0
  20. package/app/components/pagination/pagination.component.d.ts +3 -0
  21. package/app/components/saved-filters/saved-filters.component.d.ts +3 -0
  22. package/app/components/status/status.component.d.ts +3 -0
  23. package/app/directives/cell/cell.directive.d.ts +3 -0
  24. package/app/directives/column/column.directive.d.ts +17 -10
  25. package/app/directives/content/content.directive.d.ts +3 -0
  26. package/app/directives/content-init/content-init.directive.d.ts +9 -0
  27. package/app/directives/draggable-list/draggable-list.directive.d.ts +3 -0
  28. package/app/directives/draggable-row/draggable-row.directive.d.ts +3 -0
  29. package/app/directives/empty-state/empty-state.directive.d.ts +3 -0
  30. package/app/directives/footer/footer.directive.d.ts +3 -0
  31. package/app/directives/group-cell/group-cell.directive.d.ts +3 -0
  32. package/app/directives/group-expand-trigger/group-expand-trigger.directive.d.ts +3 -0
  33. package/app/directives/header/header.directive.d.ts +3 -0
  34. package/app/fs-list.module.d.ts +49 -0
  35. package/app/interfaces/column-config.interface.d.ts +2 -0
  36. package/app/interfaces/listconfig.interface.d.ts +2 -0
  37. package/app/models/column-async-attribute.d.ts +5 -0
  38. package/app/models/column-attributes.d.ts +38 -0
  39. package/app/models/column.model.d.ts +22 -15
  40. package/app/services/group-expand-notifier.service.d.ts +3 -0
  41. package/bundles/firestitch-list.umd.js +2461 -2146
  42. package/bundles/firestitch-list.umd.js.map +1 -1
  43. package/esm2015/app/classes/actions-controller.js +1 -1
  44. package/esm2015/app/classes/columns-controller.js +30 -10
  45. package/esm2015/app/classes/data-controller.js +2 -2
  46. package/esm2015/app/classes/external-params-controller.js +5 -7
  47. package/esm2015/app/classes/index.js +1 -1
  48. package/esm2015/app/classes/list-controller.js +7 -2
  49. package/esm2015/app/classes/pagination-controller.js +2 -2
  50. package/esm2015/app/classes/persistance-controller.js +11 -14
  51. package/esm2015/app/classes/reorder-controller.js +13 -13
  52. package/esm2015/app/classes/selection-controller.js +7 -6
  53. package/esm2015/app/classes/sorting-controller.js +6 -2
  54. package/esm2015/app/components/body/body.component.js +48 -75
  55. package/esm2015/app/components/body/row/actions/actions.component.js +37 -48
  56. package/esm2015/app/components/body/row/cell/cell.component.js +27 -33
  57. package/esm2015/app/components/body/row/inline-action/inline-action.component.js +27 -28
  58. package/esm2015/app/components/body/row/menu-action/menu-action.component.js +27 -32
  59. package/esm2015/app/components/body/row/row.component.js +54 -84
  60. package/esm2015/app/components/customize-cols/customize-cols.component.js +23 -18
  61. package/esm2015/app/components/footer/footer-row/footer-cell/footer-cell.component.js +15 -13
  62. package/esm2015/app/components/footer/footer-row/footer-row.component.js +20 -28
  63. package/esm2015/app/components/footer/footer.component.js +21 -25
  64. package/esm2015/app/components/head/head-cell/head-cell.component.js +17 -19
  65. package/esm2015/app/components/head/head.component.js +31 -39
  66. package/esm2015/app/components/list/list.component.js +76 -83
  67. package/esm2015/app/components/loader/loader.component.js +22 -21
  68. package/esm2015/app/components/manage-saved-filters/manage-saved-filters.component.js +19 -15
  69. package/esm2015/app/components/pagination/pagination.component.js +26 -26
  70. package/esm2015/app/components/saved-filters/saved-filters.component.js +20 -23
  71. package/esm2015/app/components/status/status.component.js +38 -41
  72. package/esm2015/app/directives/cell/cell.directive.js +17 -20
  73. package/esm2015/app/directives/column/column.directive.js +96 -88
  74. package/esm2015/app/directives/content/content.directive.js +12 -10
  75. package/esm2015/app/directives/content-init/content-init.directive.js +22 -0
  76. package/esm2015/app/directives/draggable-list/draggable-list.directive.js +16 -24
  77. package/esm2015/app/directives/draggable-row/draggable-row.directive.js +22 -30
  78. package/esm2015/app/directives/empty-state/empty-state.directive.js +12 -10
  79. package/esm2015/app/directives/footer/footer.directive.js +17 -20
  80. package/esm2015/app/directives/group-cell/group-cell.directive.js +12 -10
  81. package/esm2015/app/directives/group-expand-trigger/group-expand-trigger.directive.js +16 -22
  82. package/esm2015/app/directives/header/header.directive.js +17 -20
  83. package/esm2015/app/enums/button-type.enum.js +1 -1
  84. package/esm2015/app/enums/page-change-type.enum.js +1 -1
  85. package/esm2015/app/enums/pagination-strategy.enum.js +1 -1
  86. package/esm2015/app/enums/row-type.enum.js +1 -1
  87. package/esm2015/app/enums/state.enum.js +1 -1
  88. package/esm2015/app/fs-list.module.js +142 -66
  89. package/esm2015/app/fs-list.providers.js +1 -1
  90. package/esm2015/app/interfaces/cellconfig.interface.js +2 -1
  91. package/esm2015/app/interfaces/column-config.interface.js +2 -0
  92. package/esm2015/app/interfaces/draggable-list.interface.js +2 -1
  93. package/esm2015/app/interfaces/external-params.interface.js +2 -1
  94. package/esm2015/app/interfaces/index.js +4 -1
  95. package/esm2015/app/interfaces/listconfig.interface.js +2 -1
  96. package/esm2015/app/interfaces/pagination.interface.js +2 -1
  97. package/esm2015/app/models/column-async-attribute.js +14 -0
  98. package/esm2015/app/models/column-attributes.js +112 -0
  99. package/esm2015/app/models/column.model.js +55 -86
  100. package/esm2015/app/models/row/base-row.js +1 -1
  101. package/esm2015/app/models/row/child-row.js +1 -1
  102. package/esm2015/app/models/row/group-row.js +1 -1
  103. package/esm2015/app/models/row/simple-row.js +1 -1
  104. package/esm2015/app/models/row-action.model.js +1 -1
  105. package/esm2015/app/models/row.js +1 -1
  106. package/esm2015/app/models/styleConfig.model.js +1 -1
  107. package/esm2015/app/services/group-expand-notifier.service.js +9 -8
  108. package/esm2015/firestitch-list.js +1 -15
  109. package/esm2015/public_api.js +4 -1
  110. package/fesm2015/firestitch-list.js +1605 -1553
  111. package/fesm2015/firestitch-list.js.map +1 -1
  112. package/firestitch-list.d.ts +1 -15
  113. package/package.json +5 -8
  114. package/public_api.d.ts +3 -0
  115. package/bundles/firestitch-list.umd.min.js +0 -16
  116. package/bundles/firestitch-list.umd.min.js.map +0 -1
  117. package/esm5/app/classes/actions-controller.js +0 -71
  118. package/esm5/app/classes/columns-controller.js +0 -236
  119. package/esm5/app/classes/data-controller.js +0 -374
  120. package/esm5/app/classes/external-params-controller.js +0 -185
  121. package/esm5/app/classes/index.js +0 -3
  122. package/esm5/app/classes/list-controller.js +0 -783
  123. package/esm5/app/classes/pagination-controller.js +0 -570
  124. package/esm5/app/classes/persistance-controller.js +0 -25
  125. package/esm5/app/classes/reorder-controller.js +0 -204
  126. package/esm5/app/classes/selection-controller.js +0 -465
  127. package/esm5/app/classes/sorting-controller.js +0 -204
  128. package/esm5/app/components/body/body.component.js +0 -104
  129. package/esm5/app/components/body/row/actions/actions.component.js +0 -116
  130. package/esm5/app/components/body/row/cell/cell.component.js +0 -95
  131. package/esm5/app/components/body/row/inline-action/inline-action.component.js +0 -43
  132. package/esm5/app/components/body/row/menu-action/menu-action.component.js +0 -38
  133. package/esm5/app/components/body/row/row.component.js +0 -295
  134. package/esm5/app/components/customize-cols/customize-cols.component.js +0 -69
  135. package/esm5/app/components/footer/footer-row/footer-cell/footer-cell.component.js +0 -20
  136. package/esm5/app/components/footer/footer-row/footer-row.component.js +0 -38
  137. package/esm5/app/components/footer/footer.component.js +0 -31
  138. package/esm5/app/components/head/head-cell/head-cell.component.js +0 -38
  139. package/esm5/app/components/head/head.component.js +0 -106
  140. package/esm5/app/components/list/list.component.js +0 -403
  141. package/esm5/app/components/loader/loader.component.js +0 -47
  142. package/esm5/app/components/manage-saved-filters/manage-saved-filters.component.js +0 -81
  143. package/esm5/app/components/pagination/pagination.component.js +0 -46
  144. package/esm5/app/components/saved-filters/saved-filters.component.js +0 -41
  145. package/esm5/app/components/status/status.component.js +0 -79
  146. package/esm5/app/directives/cell/cell.directive.js +0 -24
  147. package/esm5/app/directives/column/column.directive.js +0 -98
  148. package/esm5/app/directives/content/content.directive.js +0 -14
  149. package/esm5/app/directives/draggable-list/draggable-list.directive.js +0 -281
  150. package/esm5/app/directives/draggable-row/draggable-row.directive.js +0 -83
  151. package/esm5/app/directives/empty-state/empty-state.directive.js +0 -14
  152. package/esm5/app/directives/footer/footer.directive.js +0 -24
  153. package/esm5/app/directives/group-cell/group-cell.directive.js +0 -17
  154. package/esm5/app/directives/group-expand-trigger/group-expand-trigger.directive.js +0 -33
  155. package/esm5/app/directives/header/header.directive.js +0 -24
  156. package/esm5/app/enums/button-type.enum.js +0 -9
  157. package/esm5/app/enums/page-change-type.enum.js +0 -6
  158. package/esm5/app/enums/pagination-strategy.enum.js +0 -7
  159. package/esm5/app/enums/row-type.enum.js +0 -7
  160. package/esm5/app/enums/state.enum.js +0 -11
  161. package/esm5/app/fs-list.module.js +0 -152
  162. package/esm5/app/fs-list.providers.js +0 -4
  163. package/esm5/app/interfaces/cellconfig.interface.js +0 -1
  164. package/esm5/app/interfaces/draggable-list.interface.js +0 -1
  165. package/esm5/app/interfaces/external-params.interface.js +0 -1
  166. package/esm5/app/interfaces/index.js +0 -1
  167. package/esm5/app/interfaces/listconfig.interface.js +0 -1
  168. package/esm5/app/interfaces/pagination.interface.js +0 -1
  169. package/esm5/app/models/column.model.js +0 -204
  170. package/esm5/app/models/row/base-row.js +0 -35
  171. package/esm5/app/models/row/child-row.js +0 -43
  172. package/esm5/app/models/row/group-row.js +0 -61
  173. package/esm5/app/models/row/simple-row.js +0 -15
  174. package/esm5/app/models/row-action.model.js +0 -153
  175. package/esm5/app/models/row.js +0 -126
  176. package/esm5/app/models/styleConfig.model.js +0 -91
  177. package/esm5/app/services/group-expand-notifier.service.js +0 -30
  178. package/esm5/firestitch-list.js +0 -19
  179. package/esm5/public_api.js +0 -41
  180. package/fesm5/firestitch-list.js +0 -6084
  181. package/fesm5/firestitch-list.js.map +0 -1
  182. package/firestitch-list.metadata.json +0 -1
@@ -1,374 +0,0 @@
1
- import { __read, __spread } from "tslib";
2
- import { BehaviorSubject, Subject } from 'rxjs';
3
- import { takeUntil } from 'rxjs/operators';
4
- import { isFunction, isObject } from 'lodash-es';
5
- import { FsListState } from '../enums/state.enum';
6
- import { RowType } from '../enums/row-type.enum';
7
- import { GroupRow } from '../models/row/group-row';
8
- import { ChildRow } from '../models/row/child-row';
9
- import { Row } from '../models/row';
10
- var DataController = /** @class */ (function () {
11
- function DataController() {
12
- this._visibleRows$ = new BehaviorSubject([]);
13
- this._rowsRemoved$ = new Subject();
14
- this._remoteRowsChange$ = new Subject();
15
- this._store = new Map();
16
- this._rowsStack = [];
17
- this._initialExpand = true;
18
- this._groupEnabled = false;
19
- this._hasData = false;
20
- this._destroy$ = new Subject();
21
- }
22
- Object.defineProperty(DataController.prototype, "visibleRows$", {
23
- get: function () {
24
- return this._visibleRows$;
25
- },
26
- enumerable: true,
27
- configurable: true
28
- });
29
- Object.defineProperty(DataController.prototype, "visibleRows", {
30
- get: function () {
31
- return this._visibleRows$.getValue();
32
- },
33
- set: function (value) {
34
- this._visibleRows$.next(value);
35
- this._hasData = this.visibleRows.length > 0;
36
- },
37
- enumerable: true,
38
- configurable: true
39
- });
40
- Object.defineProperty(DataController.prototype, "visibleRowsData", {
41
- get: function () {
42
- return this.visibleRows.map(function (row) { return row.data; });
43
- },
44
- enumerable: true,
45
- configurable: true
46
- });
47
- Object.defineProperty(DataController.prototype, "rowsStack", {
48
- get: function () {
49
- return this._rowsStack.slice();
50
- },
51
- enumerable: true,
52
- configurable: true
53
- });
54
- Object.defineProperty(DataController.prototype, "groupEnabled", {
55
- get: function () {
56
- return this._groupEnabled;
57
- },
58
- set: function (value) {
59
- this._groupEnabled = value;
60
- },
61
- enumerable: true,
62
- configurable: true
63
- });
64
- Object.defineProperty(DataController.prototype, "remoteRowsChange$", {
65
- get: function () {
66
- return this._remoteRowsChange$.pipe(takeUntil(this._destroy$));
67
- },
68
- enumerable: true,
69
- configurable: true
70
- });
71
- Object.defineProperty(DataController.prototype, "rowsRemoved$", {
72
- get: function () {
73
- return this._rowsRemoved$.pipe(takeUntil(this._destroy$));
74
- },
75
- enumerable: true,
76
- configurable: true
77
- });
78
- Object.defineProperty(DataController.prototype, "hasData", {
79
- get: function () {
80
- return this._hasData;
81
- },
82
- enumerable: true,
83
- configurable: true
84
- });
85
- Object.defineProperty(DataController.prototype, "operation", {
86
- get: function () {
87
- return this._operation;
88
- },
89
- enumerable: true,
90
- configurable: true
91
- });
92
- Object.defineProperty(DataController.prototype, "visibleRowsCount", {
93
- get: function () {
94
- return this.visibleRows.length;
95
- },
96
- enumerable: true,
97
- configurable: true
98
- });
99
- Object.defineProperty(DataController.prototype, "hasGroups", {
100
- get: function () {
101
- return this._compareByFn && this._groupByFn;
102
- },
103
- enumerable: true,
104
- configurable: true
105
- });
106
- Object.defineProperty(DataController.prototype, "reorderData", {
107
- get: function () {
108
- return this._rowsStack
109
- .map(function (row) { return row.getReorderData(); });
110
- },
111
- enumerable: true,
112
- configurable: true
113
- });
114
- DataController.prototype.setGroupConfig = function (group) {
115
- var _a;
116
- if (group) {
117
- this._groupByFn = group.groupBy;
118
- this._compareByFn = group.compareBy;
119
- this._initialExpand = (_a = group.initialExpand, (_a !== null && _a !== void 0 ? _a : true));
120
- // group mode enabled by default
121
- this._groupEnabled = (group.enabled !== void 0)
122
- ? group.enabled
123
- : true;
124
- }
125
- };
126
- DataController.prototype.setAdditionalConfigs = function (configs) {
127
- this._infinityScrollEnabled = configs.scrollable;
128
- this._loadMoreEnabled = configs.loadMoreEnabled;
129
- };
130
- /**
131
- * Rows what was received from fetch function
132
- * @param rows
133
- */
134
- DataController.prototype.setRowsFromResponse = function (rows) {
135
- if (this._infinityScrollEnabled) {
136
- switch (this._operation) {
137
- case FsListState.Filter:
138
- case FsListState.Reload:
139
- case FsListState.Sort:
140
- {
141
- this._updateRowsStack(rows);
142
- }
143
- break;
144
- default: {
145
- this._extendRowsStack(rows);
146
- }
147
- }
148
- this._remoteRowsChange$.next();
149
- }
150
- else {
151
- if (this._operation === FsListState.LoadMore ||
152
- (this._operation === FsListState.PageChange && this._loadMoreEnabled)) {
153
- this._extendRowsStack(rows);
154
- }
155
- else {
156
- this._updateRowsStack(rows);
157
- }
158
- }
159
- this._operation = FsListState.Idle;
160
- this._updateVisibleRows();
161
- };
162
- /**
163
- * Set current operation for list data flow
164
- * @param value
165
- */
166
- DataController.prototype.setOperation = function (value) {
167
- this._operation = value;
168
- };
169
- /**
170
- * Remove rows from visible
171
- */
172
- DataController.prototype.clearRows = function () {
173
- this.visibleRows = [];
174
- };
175
- /**
176
- * Replace data for specified row
177
- * @param targetRow
178
- * @param trackBy
179
- */
180
- DataController.prototype.replaceData = function (targetRow, trackBy) {
181
- var rowIndex = this._rowsStack.findIndex(function (listRow) {
182
- return trackBy(listRow.data, targetRow);
183
- });
184
- if (rowIndex > -1) {
185
- this._rowsStack[rowIndex] = new Row(targetRow, RowType.Simple, { initialExpand: this._initialExpand });
186
- this._updateVisibleRows();
187
- return true;
188
- }
189
- else {
190
- return false;
191
- }
192
- };
193
- /**
194
- * Update data for specified row
195
- * @param rows
196
- * @param trackBy
197
- */
198
- DataController.prototype.updateData = function (rows, trackBy) {
199
- var _this = this;
200
- if (Array.isArray(rows)) {
201
- var updateSuccess_1 = false;
202
- rows.forEach(function (item) {
203
- if (_this.updateRow(item, trackBy)) {
204
- updateSuccess_1 = true;
205
- }
206
- });
207
- this._updateVisibleRows();
208
- return updateSuccess_1;
209
- }
210
- else {
211
- var updated = this.updateRow(rows, trackBy);
212
- this._updateVisibleRows();
213
- return updated;
214
- }
215
- };
216
- /**
217
- * Remove data for specified row
218
- * @param data
219
- */
220
- DataController.prototype.removeData = function (data) {
221
- var _this = this;
222
- var removedRows = [];
223
- var defaultTrackBy = function (row, target) {
224
- return row === target;
225
- };
226
- if (Array.isArray(data)) {
227
- //
228
- data.forEach(function (item) {
229
- removedRows.push.apply(removedRows, __spread(_this.removeRow(item, defaultTrackBy)));
230
- });
231
- }
232
- else if (isFunction(data)) {
233
- removedRows.push.apply(removedRows, __spread(this.removeRow(null, data)));
234
- }
235
- else if (isObject(data)) {
236
- removedRows.push.apply(removedRows, __spread(this.removeRow(data, defaultTrackBy)));
237
- }
238
- if (removedRows.length > 0) {
239
- this._updateVisibleRows();
240
- this._rowsRemoved$.next(removedRows);
241
- }
242
- return !!removedRows.length;
243
- };
244
- DataController.prototype.swapRows = function (row1, row2) {
245
- var tmpEl;
246
- var rowsStack = this._rowsStack;
247
- var row1GlobalIndex = rowsStack.indexOf(row1);
248
- var row2GlobalIndex = rowsStack.indexOf(row2);
249
- tmpEl = rowsStack[row1GlobalIndex];
250
- rowsStack[row1GlobalIndex] = rowsStack[row2GlobalIndex];
251
- rowsStack[row2GlobalIndex] = tmpEl;
252
- this._rowsStack = __spread(rowsStack);
253
- };
254
- DataController.prototype.destroy = function () {
255
- this._destroyRowsStack();
256
- this._store.clear();
257
- this._destroy$.next();
258
- this._destroy$.complete();
259
- };
260
- DataController.prototype.toggleRowGroup = function (rowData) {
261
- var row = this.visibleRows.find(function (visibleRow) { return visibleRow.data === rowData; });
262
- row.toggleRowExpandStatus();
263
- this._updateVisibleRows();
264
- };
265
- DataController.prototype._updateRowsStack = function (rows) {
266
- var _this = this;
267
- this._destroyRowsStack();
268
- if (this.groupEnabled) {
269
- this._store.clear();
270
- this._rowsStack = __spread(this.groupRowsBy(rows));
271
- }
272
- else {
273
- rows = rows.map(function (row) {
274
- return new Row(row, RowType.Simple, { initialExpand: _this._initialExpand });
275
- });
276
- this._rowsStack = __spread(rows);
277
- }
278
- };
279
- DataController.prototype._extendRowsStack = function (rows) {
280
- var _this = this;
281
- if (this.groupEnabled) {
282
- this._rowsStack = __spread(this.groupRowsBy(rows));
283
- }
284
- else {
285
- rows = rows.map(function (row) {
286
- return new Row(row, RowType.Simple, { initialExpand: _this._initialExpand });
287
- });
288
- this._rowsStack = __spread(this._rowsStack, rows);
289
- }
290
- };
291
- DataController.prototype._destroyRowsStack = function () {
292
- this._rowsStack.forEach(function (row) { return row.destroy(); });
293
- };
294
- DataController.prototype._updateVisibleRows = function () {
295
- this.visibleRows = this._rowsStack
296
- .filter(function (row) {
297
- return !row.isChild || row.visible;
298
- });
299
- };
300
- DataController.prototype.updateRow = function (targetRow, trackBy) {
301
- if (trackBy === void 0) {
302
- trackBy = function (row, target) {
303
- return row === target;
304
- };
305
- }
306
- var targetIndex = this._rowsStack.findIndex(function (listRow) { return trackBy(listRow.data, targetRow); });
307
- if (targetIndex !== -1) {
308
- var updateTarget = this._rowsStack[targetIndex];
309
- var updatedData = Object.assign({}, updateTarget.data, targetRow);
310
- this._rowsStack[targetIndex] = new Row(updatedData, updateTarget.type, {
311
- parent: updateTarget.parent,
312
- initialExpand: updateTarget.expanded,
313
- });
314
- return true;
315
- }
316
- return false;
317
- };
318
- /**
319
- * Remove row from
320
- * @param targetRow
321
- * @param trackBy
322
- */
323
- DataController.prototype.removeRow = function (targetRow, trackBy) {
324
- var rows = this._rowsStack;
325
- var removedRows = [];
326
- rows.forEach(function (listRow, index) {
327
- if (trackBy(listRow.data, targetRow)) {
328
- var removedRow = rows.splice(index, 1);
329
- removedRows.push(removedRow);
330
- }
331
- });
332
- return removedRows;
333
- };
334
- /**
335
- * Split existing rows by groups and store them for future use
336
- */
337
- DataController.prototype.groupRowsBy = function (rows) {
338
- var _this = this;
339
- if (!this._groupByFn || !this._compareByFn) {
340
- return rows;
341
- }
342
- var numberOfGroups = 0;
343
- rows.forEach(function (row) {
344
- var mainGroup = _this._groupByFn(row);
345
- var mainGroupKey = _this._compareByFn(mainGroup);
346
- if (!_this._store.has(mainGroupKey)) {
347
- var group = new GroupRow(mainGroup, _this._initialExpand);
348
- group.index = numberOfGroups;
349
- numberOfGroups++;
350
- var childRow = new ChildRow(row, group);
351
- _this._store.set(mainGroupKey, group);
352
- group.children.push(childRow);
353
- }
354
- else {
355
- var group = _this._store.get(mainGroupKey);
356
- var childRow = new ChildRow(row, group);
357
- group.children.push(childRow);
358
- }
359
- });
360
- return Array.from(this._store.values())
361
- .reduce(function (acc, item) {
362
- if (item.isGroup) {
363
- acc.push.apply(acc, __spread([item], item.children));
364
- }
365
- else {
366
- acc.push(item);
367
- }
368
- return acc;
369
- }, []);
370
- };
371
- return DataController;
372
- }());
373
- export { DataController };
374
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvbGlzdC8iLCJzb3VyY2VzIjpbImFwcC9jbGFzc2VzL2RhdGEtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFNakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BDO0lBc0JFO1FBcEJpQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVMsQ0FBQztRQUNyQyx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWxELFdBQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFLdkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFLdEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVSLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRWxDLENBQUM7SUFFaEIsc0JBQUksd0NBQVk7YUFBaEI7WUFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDNUIsQ0FBQzs7O09BQUE7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Q0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxJQUFNLEtBQUssR0FBRyxLQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDNUMsSUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUUxQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBR0gsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDcEMsTUFBTSxDQUFDLFVBQUMsR0FBRyxFQUFFLElBQUk7WUFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixHQUFHLENBQUMsSUFBSSxPQUFSLEdBQUcsWUFBTSxJQUFJLEdBQUssSUFBSSxDQUFDLFFBQVEsR0FBRTthQUNsQztpQkFBTTtnQkFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2hCO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBamFELElBaWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc09iamVjdCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IEZzTGlzdFN0YXRlIH0gZnJvbSAnLi4vZW51bXMvc3RhdGUuZW51bSc7XG5pbXBvcnQgeyBSb3dUeXBlIH0gZnJvbSAnLi4vZW51bXMvcm93LXR5cGUuZW51bSc7XG5pbXBvcnQge1xuICBGc0xpc3RBYnN0cmFjdFJvdyxcbiAgRnNMaXN0R3JvdXBDb25maWcsXG4gIEZzTGlzdFRyYWNrQnlUYXJnZXRSb3dGblxufSBmcm9tICcuLi9pbnRlcmZhY2VzL2xpc3Rjb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyb3VwUm93IH0gZnJvbSAnLi4vbW9kZWxzL3Jvdy9ncm91cC1yb3cnO1xuaW1wb3J0IHsgQ2hpbGRSb3cgfSBmcm9tICcuLi9tb2RlbHMvcm93L2NoaWxkLXJvdyc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi9tb2RlbHMvcm93JztcblxuXG5leHBvcnQgY2xhc3MgRGF0YUNvbnRyb2xsZXIge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Zpc2libGVSb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Um93W10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcm93c1JlbW92ZWQkID0gbmV3IFN1YmplY3Q8Um93W10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlbW90ZVJvd3NDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9zdG9yZSA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBfcm93c1N0YWNrOiBSb3dbXSA9IFtdO1xuICBwcml2YXRlIF9vcGVyYXRpb246IEZzTGlzdFN0YXRlO1xuXG4gIHByaXZhdGUgX2dyb3VwQnlGbjogKHJvdykgPT4gYW55W107XG4gIHByaXZhdGUgX2NvbXBhcmVCeUZuOiAoZ3JvdXApID0+IGFueTtcbiAgcHJpdmF0ZSBfaW5pdGlhbEV4cGFuZCA9IHRydWU7XG4gIHByaXZhdGUgX2dyb3VwRW5hYmxlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2luZmluaXR5U2Nyb2xsRW5hYmxlZDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfbG9hZE1vcmVFbmFibGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX2hhc0RhdGEgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldCB2aXNpYmxlUm93cyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGVSb3dzJDtcbiAgfVxuXG4gIGdldCB2aXNpYmxlUm93cygpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZVJvd3MkLmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgdmlzaWJsZVJvd3NEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVSb3dzLm1hcCgocm93KSA9PiByb3cuZGF0YSk7XG4gIH1cblxuICBnZXQgcm93c1N0YWNrKCkge1xuICAgIHJldHVybiB0aGlzLl9yb3dzU3RhY2suc2xpY2UoKTtcbiAgfVxuXG4gIGdldCBncm91cEVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dyb3VwRW5hYmxlZDtcbiAgfVxuXG4gIHNldCBncm91cEVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9ncm91cEVuYWJsZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCByZW1vdGVSb3dzQ2hhbmdlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3RlUm93c0NoYW5nZSQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgKTtcbiAgfVxuXG4gIGdldCByb3dzUmVtb3ZlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvd3NSZW1vdmVkJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0IGhhc0RhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc0RhdGE7XG4gIH1cblxuICBnZXQgb3BlcmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9vcGVyYXRpb247XG4gIH1cblxuICBzZXQgdmlzaWJsZVJvd3ModmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5fdmlzaWJsZVJvd3MkLm5leHQodmFsdWUpO1xuICAgIHRoaXMuX2hhc0RhdGEgPSB0aGlzLnZpc2libGVSb3dzLmxlbmd0aCA+IDA7XG4gIH1cblxuICBnZXQgdmlzaWJsZVJvd3NDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlUm93cy5sZW5ndGg7XG4gIH1cblxuICBnZXQgaGFzR3JvdXBzKCkge1xuICAgIHJldHVybiB0aGlzLl9jb21wYXJlQnlGbiAmJiB0aGlzLl9ncm91cEJ5Rm47XG4gIH1cblxuICBnZXQgcmVvcmRlckRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvd3NTdGFja1xuICAgICAgLm1hcCgocm93KSA9PiByb3cuZ2V0UmVvcmRlckRhdGEoKSk7XG4gIH1cblxuICBwdWJsaWMgc2V0R3JvdXBDb25maWcoZ3JvdXA6IEZzTGlzdEdyb3VwQ29uZmlnKSB7XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICB0aGlzLl9ncm91cEJ5Rm4gPSBncm91cC5ncm91cEJ5O1xuICAgICAgdGhpcy5fY29tcGFyZUJ5Rm4gPSBncm91cC5jb21wYXJlQnk7XG4gICAgICB0aGlzLl9pbml0aWFsRXhwYW5kID0gZ3JvdXAuaW5pdGlhbEV4cGFuZCA/PyB0cnVlO1xuXG4gICAgICAvLyBncm91cCBtb2RlIGVuYWJsZWQgYnkgZGVmYXVsdFxuICAgICAgdGhpcy5fZ3JvdXBFbmFibGVkID0gKGdyb3VwLmVuYWJsZWQgIT09IHZvaWQgMClcbiAgICAgICAgPyBncm91cC5lbmFibGVkXG4gICAgICAgIDogdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0QWRkaXRpb25hbENvbmZpZ3MoY29uZmlnczogeyBzY3JvbGxhYmxlOiBib29sZWFuLCBsb2FkTW9yZUVuYWJsZWQ6IGJvb2xlYW4gfSkge1xuICAgIHRoaXMuX2luZmluaXR5U2Nyb2xsRW5hYmxlZCA9IGNvbmZpZ3Muc2Nyb2xsYWJsZTtcbiAgICB0aGlzLl9sb2FkTW9yZUVuYWJsZWQgPSBjb25maWdzLmxvYWRNb3JlRW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb3dzIHdoYXQgd2FzIHJlY2VpdmVkIGZyb20gZmV0Y2ggZnVuY3Rpb25cbiAgICogQHBhcmFtIHJvd3NcbiAgICovXG4gIHB1YmxpYyBzZXRSb3dzRnJvbVJlc3BvbnNlKHJvd3M6IGFueVtdKSB7XG4gICAgaWYgKHRoaXMuX2luZmluaXR5U2Nyb2xsRW5hYmxlZCkge1xuICAgICAgc3dpdGNoICh0aGlzLl9vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBGc0xpc3RTdGF0ZS5GaWx0ZXI6XG4gICAgICAgIGNhc2UgRnNMaXN0U3RhdGUuUmVsb2FkOlxuICAgICAgICBjYXNlIEZzTGlzdFN0YXRlLlNvcnQ6IHtcbiAgICAgICAgICB0aGlzLl91cGRhdGVSb3dzU3RhY2socm93cyk7XG4gICAgICAgIH0gYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHRoaXMuX2V4dGVuZFJvd3NTdGFjayhyb3dzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9yZW1vdGVSb3dzQ2hhbmdlJC5uZXh0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5fb3BlcmF0aW9uID09PSBGc0xpc3RTdGF0ZS5Mb2FkTW9yZSB8fFxuICAgICAgICAodGhpcy5fb3BlcmF0aW9uID09PSBGc0xpc3RTdGF0ZS5QYWdlQ2hhbmdlICYmIHRoaXMuX2xvYWRNb3JlRW5hYmxlZClcbiAgICAgICkge1xuICAgICAgICB0aGlzLl9leHRlbmRSb3dzU3RhY2socm93cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl91cGRhdGVSb3dzU3RhY2socm93cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fb3BlcmF0aW9uID0gRnNMaXN0U3RhdGUuSWRsZTtcblxuICAgIHRoaXMuX3VwZGF0ZVZpc2libGVSb3dzKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1cnJlbnQgb3BlcmF0aW9uIGZvciBsaXN0IGRhdGEgZmxvd1xuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzZXRPcGVyYXRpb24odmFsdWU6IEZzTGlzdFN0YXRlKSB7XG4gICAgdGhpcy5fb3BlcmF0aW9uID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHJvd3MgZnJvbSB2aXNpYmxlXG4gICAqL1xuICBwdWJsaWMgY2xlYXJSb3dzKCkge1xuICAgIHRoaXMudmlzaWJsZVJvd3MgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIGRhdGEgZm9yIHNwZWNpZmllZCByb3dcbiAgICogQHBhcmFtIHRhcmdldFJvd1xuICAgKiBAcGFyYW0gdHJhY2tCeVxuICAgKi9cbiAgcHVibGljIHJlcGxhY2VEYXRhKFxuICAgIHRhcmdldFJvdzogRnNMaXN0QWJzdHJhY3RSb3csXG4gICAgdHJhY2tCeT86IEZzTGlzdFRyYWNrQnlUYXJnZXRSb3dGblxuICApIHtcbiAgICBjb25zdCByb3dJbmRleCA9IHRoaXMuX3Jvd3NTdGFjay5maW5kSW5kZXgoKGxpc3RSb3cpID0+IHtcbiAgICAgIHJldHVybiB0cmFja0J5KGxpc3RSb3cuZGF0YSwgdGFyZ2V0Um93KTtcbiAgICB9KTtcblxuICAgIGlmIChyb3dJbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLl9yb3dzU3RhY2tbcm93SW5kZXhdID0gbmV3IFJvdyhcbiAgICAgICAgdGFyZ2V0Um93LFxuICAgICAgICBSb3dUeXBlLlNpbXBsZSxcbiAgICAgICAgeyBpbml0aWFsRXhwYW5kOiB0aGlzLl9pbml0aWFsRXhwYW5kIH1cbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX3VwZGF0ZVZpc2libGVSb3dzKCk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGRhdGEgZm9yIHNwZWNpZmllZCByb3dcbiAgICogQHBhcmFtIHJvd3NcbiAgICogQHBhcmFtIHRyYWNrQnlcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVEYXRhKFxuICAgIHJvd3M6IEZzTGlzdEFic3RyYWN0Um93IHwgRnNMaXN0QWJzdHJhY3RSb3dbXSxcbiAgICB0cmFja0J5PzogRnNMaXN0VHJhY2tCeVRhcmdldFJvd0ZuLFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgbGV0IHVwZGF0ZVN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgcm93cy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnVwZGF0ZVJvdyhpdGVtLCB0cmFja0J5KSkge1xuICAgICAgICAgIHVwZGF0ZVN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5fdXBkYXRlVmlzaWJsZVJvd3MoKTtcblxuICAgICAgcmV0dXJuIHVwZGF0ZVN1Y2Nlc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSB0aGlzLnVwZGF0ZVJvdyhyb3dzLCB0cmFja0J5KTtcblxuICAgICAgdGhpcy5fdXBkYXRlVmlzaWJsZVJvd3MoKTtcblxuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkYXRhIGZvciBzcGVjaWZpZWQgcm93XG4gICAqIEBwYXJhbSBkYXRhXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRGF0YShkYXRhOiBGc0xpc3RBYnN0cmFjdFJvdyB8IEZzTGlzdEFic3RyYWN0Um93W10gfCBGc0xpc3RUcmFja0J5VGFyZ2V0Um93Rm4pOiBib29sZWFuIHtcbiAgICBjb25zdCByZW1vdmVkUm93cyA9IFtdO1xuXG4gICAgY29uc3QgZGVmYXVsdFRyYWNrQnkgPSAocm93LCB0YXJnZXQpID0+IHtcbiAgICAgIHJldHVybiByb3cgPT09IHRhcmdldDtcbiAgICB9O1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIC8vXG4gICAgICBkYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgcmVtb3ZlZFJvd3MucHVzaCguLi50aGlzLnJlbW92ZVJvdyhpdGVtLCBkZWZhdWx0VHJhY2tCeSkpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChpc0Z1bmN0aW9uKGRhdGEpKSB7XG4gICAgICByZW1vdmVkUm93cy5wdXNoKC4uLnRoaXMucmVtb3ZlUm93KG51bGwsIChkYXRhIGFzIEZzTGlzdFRyYWNrQnlUYXJnZXRSb3dGbikpKTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGRhdGEpKSB7XG4gICAgICByZW1vdmVkUm93cy5wdXNoKC4uLnRoaXMucmVtb3ZlUm93KGRhdGEsIGRlZmF1bHRUcmFja0J5KSk7XG4gICAgfVxuXG4gICAgaWYgKHJlbW92ZWRSb3dzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVZpc2libGVSb3dzKCk7XG5cbiAgICAgIHRoaXMuX3Jvd3NSZW1vdmVkJC5uZXh0KHJlbW92ZWRSb3dzKVxuICAgIH1cblxuICAgIHJldHVybiAhIXJlbW92ZWRSb3dzLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBzd2FwUm93cyhyb3cxLCByb3cyKSB7XG4gICAgbGV0IHRtcEVsO1xuICAgIGNvbnN0IHJvd3NTdGFjayA9IHRoaXMuX3Jvd3NTdGFjaztcbiAgICBjb25zdCByb3cxR2xvYmFsSW5kZXggPSByb3dzU3RhY2suaW5kZXhPZihyb3cxKTtcbiAgICBjb25zdCByb3cyR2xvYmFsSW5kZXggPSByb3dzU3RhY2suaW5kZXhPZihyb3cyKTtcblxuICAgIHRtcEVsID0gcm93c1N0YWNrW3JvdzFHbG9iYWxJbmRleF07XG4gICAgcm93c1N0YWNrW3JvdzFHbG9iYWxJbmRleF0gPSByb3dzU3RhY2tbcm93Mkdsb2JhbEluZGV4XTtcbiAgICByb3dzU3RhY2tbcm93Mkdsb2JhbEluZGV4XSA9IHRtcEVsO1xuXG4gICAgdGhpcy5fcm93c1N0YWNrID0gWyAuLi5yb3dzU3RhY2sgXTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3lSb3dzU3RhY2soKTtcbiAgICB0aGlzLl9zdG9yZS5jbGVhcigpO1xuXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUm93R3JvdXAocm93RGF0YSkge1xuICAgIGNvbnN0IHJvdyA9IHRoaXMudmlzaWJsZVJvd3MuZmluZCgodmlzaWJsZVJvdykgPT4gdmlzaWJsZVJvdy5kYXRhID09PSByb3dEYXRhICk7XG4gICAgcm93LnRvZ2dsZVJvd0V4cGFuZFN0YXR1cygpO1xuXG4gICAgdGhpcy5fdXBkYXRlVmlzaWJsZVJvd3MoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVJvd3NTdGFjayhyb3dzKSB7XG5cbiAgICB0aGlzLl9kZXN0cm95Um93c1N0YWNrKCk7XG5cbiAgICBpZiAodGhpcy5ncm91cEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuX3N0b3JlLmNsZWFyKCk7XG4gICAgICB0aGlzLl9yb3dzU3RhY2sgPSBbLi4udGhpcy5ncm91cFJvd3NCeShyb3dzKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvd3MgPSByb3dzLm1hcCgocm93KSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUm93KFxuICAgICAgICAgIHJvdyxcbiAgICAgICAgICBSb3dUeXBlLlNpbXBsZSxcbiAgICAgICAgICB7IGluaXRpYWxFeHBhbmQ6IHRoaXMuX2luaXRpYWxFeHBhbmQgfSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fcm93c1N0YWNrID0gWy4uLnJvd3NdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2V4dGVuZFJvd3NTdGFjayhyb3dzKSB7XG4gICAgaWYgKHRoaXMuZ3JvdXBFbmFibGVkKSB7XG4gICAgICB0aGlzLl9yb3dzU3RhY2sgPSBbLi4udGhpcy5ncm91cFJvd3NCeShyb3dzKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvd3MgPSByb3dzLm1hcCgocm93KSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUm93KFxuICAgICAgICAgIHJvdyxcbiAgICAgICAgICBSb3dUeXBlLlNpbXBsZSxcbiAgICAgICAgICB7IGluaXRpYWxFeHBhbmQ6IHRoaXMuX2luaXRpYWxFeHBhbmQgfSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fcm93c1N0YWNrID0gWy4uLnRoaXMuX3Jvd3NTdGFjaywgLi4ucm93c107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVzdHJveVJvd3NTdGFjaygpIHtcbiAgICB0aGlzLl9yb3dzU3RhY2suZm9yRWFjaCgocm93KSA9PiByb3cuZGVzdHJveSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZpc2libGVSb3dzKCkge1xuICAgIHRoaXMudmlzaWJsZVJvd3MgPSB0aGlzLl9yb3dzU3RhY2tcbiAgICAgIC5maWx0ZXIoKHJvdykgPT4ge1xuICAgICAgICByZXR1cm4gIXJvdy5pc0NoaWxkIHx8IHJvdy52aXNpYmxlO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJvdyhcbiAgICB0YXJnZXRSb3c6IEZzTGlzdEFic3RyYWN0Um93LFxuICAgIHRyYWNrQnk/OiAobGlzdFJvdzogRnNMaXN0QWJzdHJhY3RSb3csIHRhcmdldFJvdz86IEZzTGlzdEFic3RyYWN0Um93KSA9PiBib29sZWFuKSB7XG5cbiAgICBpZiAodHJhY2tCeSA9PT0gdm9pZCAwKSB7XG4gICAgICB0cmFja0J5ID0gKHJvdywgdGFyZ2V0KSA9PiB7XG4gICAgICAgIHJldHVybiByb3cgPT09IHRhcmdldDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRJbmRleCA9IHRoaXMuX3Jvd3NTdGFjay5maW5kSW5kZXgoKGxpc3RSb3cpID0+IHRyYWNrQnkobGlzdFJvdy5kYXRhLCB0YXJnZXRSb3cpKTtcblxuICAgIGlmICh0YXJnZXRJbmRleCAhPT0gLTEpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVRhcmdldCA9IHRoaXMuX3Jvd3NTdGFja1t0YXJnZXRJbmRleF07XG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIHVwZGF0ZVRhcmdldC5kYXRhLCB0YXJnZXRSb3cpO1xuXG4gICAgICB0aGlzLl9yb3dzU3RhY2tbdGFyZ2V0SW5kZXhdID0gbmV3IFJvdyhcbiAgICAgICAgdXBkYXRlZERhdGEsXG4gICAgICAgIHVwZGF0ZVRhcmdldC50eXBlLFxuICAgICAgICB7XG4gICAgICAgICAgcGFyZW50OiB1cGRhdGVUYXJnZXQucGFyZW50LFxuICAgICAgICAgIGluaXRpYWxFeHBhbmQ6IHVwZGF0ZVRhcmdldC5leHBhbmRlZCxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSByb3cgZnJvbVxuICAgKiBAcGFyYW0gdGFyZ2V0Um93XG4gICAqIEBwYXJhbSB0cmFja0J5XG4gICAqL1xuICBwcml2YXRlIHJlbW92ZVJvdyhcbiAgICB0YXJnZXRSb3c6IEZzTGlzdEFic3RyYWN0Um93IHwgbnVsbCxcbiAgICB0cmFja0J5PzogRnNMaXN0VHJhY2tCeVRhcmdldFJvd0ZuXG4gICkge1xuXG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX3Jvd3NTdGFjaztcbiAgICBjb25zdCByZW1vdmVkUm93cyA9IFtdO1xuXG4gICAgcm93cy5mb3JFYWNoKChsaXN0Um93LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHRyYWNrQnkobGlzdFJvdy5kYXRhLCB0YXJnZXRSb3cpKSB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWRSb3cgPSByb3dzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgICAgcmVtb3ZlZFJvd3MucHVzaChyZW1vdmVkUm93KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByZW1vdmVkUm93cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCBleGlzdGluZyByb3dzIGJ5IGdyb3VwcyBhbmQgc3RvcmUgdGhlbSBmb3IgZnV0dXJlIHVzZVxuICAgKi9cbiAgcHJpdmF0ZSBncm91cFJvd3NCeShyb3dzKSB7XG4gICAgaWYgKCF0aGlzLl9ncm91cEJ5Rm4gfHwgIXRoaXMuX2NvbXBhcmVCeUZuKSB7IHJldHVybiByb3dzIH1cblxuICAgIGxldCBudW1iZXJPZkdyb3VwcyA9IDA7XG5cbiAgICByb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgY29uc3QgbWFpbkdyb3VwID0gdGhpcy5fZ3JvdXBCeUZuKHJvdyk7XG4gICAgICBjb25zdCBtYWluR3JvdXBLZXkgPSB0aGlzLl9jb21wYXJlQnlGbihtYWluR3JvdXApO1xuXG4gICAgICBpZiAoIXRoaXMuX3N0b3JlLmhhcyhtYWluR3JvdXBLZXkpKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gbmV3IEdyb3VwUm93KFxuICAgICAgICAgIG1haW5Hcm91cCxcbiAgICAgICAgICB0aGlzLl9pbml0aWFsRXhwYW5kLFxuICAgICAgICApO1xuXG4gICAgICAgIGdyb3VwLmluZGV4ID0gbnVtYmVyT2ZHcm91cHM7XG4gICAgICAgIG51bWJlck9mR3JvdXBzKys7XG5cbiAgICAgICAgY29uc3QgY2hpbGRSb3cgPSBuZXcgQ2hpbGRSb3cocm93LCBncm91cCk7XG5cbiAgICAgICAgdGhpcy5fc3RvcmUuc2V0KG1haW5Hcm91cEtleSwgZ3JvdXApO1xuICAgICAgICBncm91cC5jaGlsZHJlbi5wdXNoKGNoaWxkUm93KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5fc3RvcmUuZ2V0KG1haW5Hcm91cEtleSk7XG4gICAgICAgIGNvbnN0IGNoaWxkUm93ID0gbmV3IENoaWxkUm93KHJvdywgZ3JvdXApO1xuXG4gICAgICAgIGdyb3VwLmNoaWxkcmVuLnB1c2goY2hpbGRSb3cpO1xuICAgICAgfVxuICAgIH0pO1xuXG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zdG9yZS52YWx1ZXMoKSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5pc0dyb3VwKSB7XG4gICAgICAgICAgYWNjLnB1c2goaXRlbSwgLi4uaXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjLnB1c2goaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pO1xuICB9XG59XG4iXX0=
@@ -1,185 +0,0 @@
1
- import { merge, Subject } from 'rxjs';
2
- import { takeUntil } from 'rxjs/operators';
3
- var ExternalParamsController = /** @class */ (function () {
4
- function ExternalParamsController(_router, _route, _persistance, _paginator, _sorting, _queryParamsEnabled) {
5
- this._router = _router;
6
- this._route = _route;
7
- this._persistance = _persistance;
8
- this._paginator = _paginator;
9
- this._sorting = _sorting;
10
- this._queryParamsEnabled = _queryParamsEnabled;
11
- this._externalParams = {
12
- page: null,
13
- limit: null,
14
- sortName: null,
15
- sortDirection: null,
16
- };
17
- this._destroy$ = new Subject();
18
- this.initialize();
19
- }
20
- Object.defineProperty(ExternalParamsController.prototype, "externalSorting", {
21
- get: function () {
22
- if (!this._enabled || !this._sortName || !this._sortDirection) {
23
- return null;
24
- }
25
- return {
26
- value: this._sortName,
27
- direction: this._sortDirection,
28
- };
29
- },
30
- enumerable: true,
31
- configurable: true
32
- });
33
- Object.defineProperty(ExternalParamsController.prototype, "_enabled", {
34
- get: function () {
35
- return this._queryParamsEnabled || this._persistance.enabled;
36
- },
37
- enumerable: true,
38
- configurable: true
39
- });
40
- Object.defineProperty(ExternalParamsController.prototype, "_page", {
41
- get: function () {
42
- return this._externalParams.page;
43
- },
44
- enumerable: true,
45
- configurable: true
46
- });
47
- Object.defineProperty(ExternalParamsController.prototype, "_limit", {
48
- get: function () {
49
- return this._externalParams.limit;
50
- },
51
- enumerable: true,
52
- configurable: true
53
- });
54
- Object.defineProperty(ExternalParamsController.prototype, "_sortName", {
55
- get: function () {
56
- return this._externalParams.sortName;
57
- },
58
- enumerable: true,
59
- configurable: true
60
- });
61
- Object.defineProperty(ExternalParamsController.prototype, "_sortDirection", {
62
- get: function () {
63
- return this._externalParams.sortDirection;
64
- },
65
- enumerable: true,
66
- configurable: true
67
- });
68
- ExternalParamsController.prototype.initialize = function () {
69
- // Restore from localStorage parameters if persistance enabled
70
- if (this._persistance.enabled) {
71
- this._restorePaginationParams(this._persistance.getDataFromScope('paging'));
72
- this._restoreSortingParams(this._persistance.getDataFromScope('sorting'));
73
- }
74
- // Restore from queryParams and override if persistance already had values for those params
75
- if (this._queryParamsEnabled) {
76
- this._restorePaginationParams(this._route.snapshot.queryParams);
77
- this._restoreSortingParams(this._route.snapshot.queryParams);
78
- }
79
- // Set initial pagination params
80
- // The same initial, but for sorting placed in list-controller "tranformTemplatesToColumns" method
81
- if (this._paginator.enabled && !this._paginator.infinityScrollEnabled) {
82
- if (this._limit) {
83
- this._paginator.setLimit(this._limit);
84
- }
85
- if (this._page) {
86
- this._paginator.goToPage(this._page);
87
- }
88
- }
89
- // Update pagination in stores
90
- this._updatePaginationParams(this._paginator.queryPageStrategy);
91
- this._listenPaginatorChanges();
92
- this._listenSortingChanges();
93
- };
94
- ExternalParamsController.prototype.clearSortingParams = function () {
95
- this._updateSortingParams(null, null);
96
- };
97
- ExternalParamsController.prototype.destroy = function () {
98
- this._destroy$.next();
99
- this._destroy$.complete();
100
- };
101
- ExternalParamsController.prototype._restorePaginationParams = function (values) {
102
- var _a, _b;
103
- if ((_a = values) === null || _a === void 0 ? void 0 : _a.page) {
104
- this._externalParams.page = +values.page;
105
- }
106
- if ((_b = values) === null || _b === void 0 ? void 0 : _b.limit) {
107
- this._externalParams.limit = +values.limit;
108
- }
109
- };
110
- ExternalParamsController.prototype._restoreSortingParams = function (values) {
111
- var _a, _b;
112
- if ((_a = values) === null || _a === void 0 ? void 0 : _a.sortName) {
113
- this._externalParams.sortName = values.sortName;
114
- }
115
- if ((_b = values) === null || _b === void 0 ? void 0 : _b.sortDirection) {
116
- this._externalParams.sortDirection = values.sortDirection;
117
- }
118
- };
119
- ExternalParamsController.prototype._listenPaginatorChanges = function () {
120
- var _this = this;
121
- merge(this._paginator.pageChanged$, this._paginator.pages$, this._paginator.pageReset$)
122
- .pipe(takeUntil(this._destroy$))
123
- .subscribe(function () {
124
- _this._updatePaginationParams(_this._paginator.queryPageStrategy);
125
- });
126
- };
127
- ExternalParamsController.prototype._listenSortingChanges = function () {
128
- var _this = this;
129
- merge(this._sorting.initialized$, this._sorting.sortingChanged$)
130
- .pipe(takeUntil(this._destroy$))
131
- .subscribe(function () {
132
- var sorting = _this._sorting.value;
133
- if (sorting) {
134
- _this._updateSortingParams(sorting.value, sorting.direction);
135
- }
136
- else {
137
- _this.clearSortingParams();
138
- }
139
- });
140
- };
141
- ExternalParamsController.prototype._updateSortingParams = function (name, direction) {
142
- var _this = this;
143
- if (this._queryParamsEnabled) {
144
- // FIXME
145
- setTimeout(function () {
146
- _this._router.navigate([], {
147
- replaceUrl: true,
148
- relativeTo: _this._route,
149
- queryParams: {
150
- sortName: name,
151
- sortDirection: direction,
152
- },
153
- queryParamsHandling: 'merge'
154
- }).then(function () { });
155
- });
156
- }
157
- if (this._persistance.enabled) {
158
- if (name && direction) {
159
- this._persistance.saveDataToScope('sorting', { sortName: name, sortDirection: direction });
160
- }
161
- else {
162
- this._persistance.saveDataToScope('sorting', null);
163
- }
164
- }
165
- };
166
- ExternalParamsController.prototype._updatePaginationParams = function (params) {
167
- var _this = this;
168
- if (this._queryParamsEnabled) {
169
- setTimeout(function () {
170
- _this._router.navigate([], {
171
- replaceUrl: true,
172
- relativeTo: _this._route,
173
- queryParams: params,
174
- queryParamsHandling: 'merge'
175
- }).then(function () { });
176
- });
177
- }
178
- if (this._persistance.enabled) {
179
- this._persistance.saveDataToScope('paging', params);
180
- }
181
- };
182
- return ExternalParamsController;
183
- }());
184
- export { ExternalParamsController };
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtcGFyYW1zLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9saXN0LyIsInNvdXJjZXMiOlsiYXBwL2NsYXNzZXMvZXh0ZXJuYWwtcGFyYW1zLWNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBYzNDO0lBV0Usa0NBQ1UsT0FBZSxFQUNmLE1BQXNCLEVBQ3RCLFlBQW1DLEVBQ25DLFVBQWdDLEVBQ2hDLFFBQTJCLEVBQzNCLG1CQUE0QjtRQUw1QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQXVCO1FBQ25DLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzNCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBUztRQWY5QixvQkFBZSxHQUFtQjtZQUN4QyxJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJO1lBQ1gsUUFBUSxFQUFFLElBQUk7WUFDZCxhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDO1FBRU0sY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFVdEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxzQkFBVyxxREFBZTthQUExQjtZQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQzdELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxPQUFPO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxj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LENBQUMsY0FBTyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBQ0gsK0JBQUM7QUFBRCxDQUFDLEFBOUxELElBOExDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFBhZ2luYXRpb25Db250cm9sbGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy9wYWdpbmF0aW9uLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgU29ydGluZ0NvbnRyb2xsZXIgfSBmcm9tICcuLi9jbGFzc2VzL3NvcnRpbmctY29udHJvbGxlcic7XG5pbXBvcnQgeyBQZXJzaXN0YW5jZUNvbnRyb2xsZXIgfSBmcm9tICcuL3BlcnNpc3RhbmNlLWNvbnRyb2xsZXInO1xuXG5pbXBvcnQgeyBGc0xpc3RTb3J0Q29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBFeHRlcm5hbFBhcmFtcyxcbiAgRXh0ZXJuYWxRdWVyeVBhZ2luYXRpb24sXG4gIEV4dGVybmFsUXVlcnlTb3J0aW5nLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dGVybmFsLXBhcmFtcy5pbnRlcmZhY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIge1xuXG4gIHByaXZhdGUgX2V4dGVybmFsUGFyYW1zOiBFeHRlcm5hbFBhcmFtcyA9IHtcbiAgICBwYWdlOiBudWxsLFxuICAgIGxpbWl0OiBudWxsLFxuICAgIHNvcnROYW1lOiBudWxsLFxuICAgIHNvcnREaXJlY3Rpb246IG51bGwsXG4gIH07XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIF9wZXJzaXN0YW5jZTogUGVyc2lzdGFuY2VDb250cm9sbGVyLFxuICAgIHByaXZhdGUgX3BhZ2luYXRvcjogUGFnaW5hdGlvbkNvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBfc29ydGluZzogU29ydGluZ0NvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBfcXVlcnlQYXJhbXNFbmFibGVkOiBib29sZWFuLFxuICApIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXh0ZXJuYWxTb3J0aW5nKCk6IEZzTGlzdFNvcnRDb25maWcge1xuICAgIGlmICghdGhpcy5fZW5hYmxlZCB8fCAhdGhpcy5fc29ydE5hbWUgfHwgIXRoaXMuX3NvcnREaXJlY3Rpb24pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogdGhpcy5fc29ydE5hbWUsXG4gICAgICBkaXJlY3Rpb246IHRoaXMuX3NvcnREaXJlY3Rpb24sXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1zRW5hYmxlZCB8fCB0aGlzLl9wZXJzaXN0YW5jZS5lbmFibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3BhZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZXh0ZXJuYWxQYXJhbXMucGFnZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9saW1pdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9leHRlcm5hbFBhcmFtcy5saW1pdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9zb3J0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9leHRlcm5hbFBhcmFtcy5zb3J0TmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9zb3J0RGlyZWN0aW9uKCk6ICdhc2MnIHwgJ2Rlc2MnIHtcbiAgICByZXR1cm4gdGhpcy5fZXh0ZXJuYWxQYXJhbXMuc29ydERpcmVjdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKCkge1xuXG4gICAgLy8gUmVzdG9yZSBmcm9tIGxvY2FsU3RvcmFnZSBwYXJhbWV0ZXJzIGlmIHBlcnNpc3RhbmNlIGVuYWJsZWRcbiAgICBpZiAodGhpcy5fcGVyc2lzdGFuY2UuZW5hYmxlZCkge1xuICAgICAgdGhpcy5fcmVzdG9yZVBhZ2luYXRpb25QYXJhbXModGhpcy5fcGVyc2lzdGFuY2UuZ2V0RGF0YUZyb21TY29wZSgncGFnaW5nJykpO1xuICAgICAgdGhpcy5fcmVzdG9yZVNvcnRpbmdQYXJhbXModGhpcy5fcGVyc2lzdGFuY2UuZ2V0RGF0YUZyb21TY29wZSgnc29ydGluZycpKTtcbiAgICB9XG5cbiAgICAvLyBSZXN0b3JlIGZyb20gcXVlcnlQYXJhbXMgYW5kIG92ZXJyaWRlIGlmIHBlcnNpc3RhbmNlIGFscmVhZHkgaGFkIHZhbHVlcyBmb3IgdGhvc2UgcGFyYW1zXG4gICAgaWYgKHRoaXMuX3F1ZXJ5UGFyYW1zRW5hYmxlZCkge1xuICAgICAgdGhpcy5fcmVzdG9yZVBhZ2luYXRpb25QYXJhbXModGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgYXMgRXh0ZXJuYWxRdWVyeVBhZ2luYXRpb24pO1xuICAgICAgdGhpcy5fcmVzdG9yZVNvcnRpbmdQYXJhbXModGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgYXMgRXh0ZXJuYWxRdWVyeVNvcnRpbmcpO1xuICAgIH1cblxuICAgIC8vIFNldCBpbml0aWFsIHBhZ2luYXRpb24gcGFyYW1zXG4gICAgLy8gVGhlIHNhbWUgaW5pdGlhbCwgYnV0IGZvciBzb3J0aW5nIHBsYWNlZCBpbiBsaXN0LWNvbnRyb2xsZXIgXCJ0cmFuZm9ybVRlbXBsYXRlc1RvQ29sdW1uc1wiIG1ldGhvZFxuICAgIGlmICh0aGlzLl9wYWdpbmF0b3IuZW5hYmxlZCAmJiAhdGhpcy5fcGFnaW5hdG9yLmluZmluaXR5U2Nyb2xsRW5hYmxlZCkge1xuICAgICAgaWYgKHRoaXMuX2xpbWl0KSB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRvci5zZXRMaW1pdCh0aGlzLl9saW1pdCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9wYWdlKSB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRvci5nb1RvUGFnZSh0aGlzLl9wYWdlKTtcblxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVwZGF0ZSBwYWdpbmF0aW9uIGluIHN0b3Jlc1xuICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb25QYXJhbXModGhpcy5fcGFnaW5hdG9yLnF1ZXJ5UGFnZVN0cmF0ZWd5KTtcblxuICAgIHRoaXMuX2xpc3RlblBhZ2luYXRvckNoYW5nZXMoKTtcbiAgICB0aGlzLl9saXN0ZW5Tb3J0aW5nQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU29ydGluZ1BhcmFtcygpIHtcbiAgICB0aGlzLl91cGRhdGVTb3J0aW5nUGFyYW1zKG51bGwsIG51bGwpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXN0b3JlUGFnaW5hdGlvblBhcmFtcyh2YWx1ZXM6IEV4dGVybmFsUXVlcnlQYWdpbmF0aW9uKSB7XG4gICAgaWYgKHZhbHVlcz8ucGFnZSkge1xuICAgICAgdGhpcy5fZXh0ZXJuYWxQYXJhbXMucGFnZSA9ICt2YWx1ZXMucGFnZTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWVzPy5saW1pdCkge1xuICAgICAgdGhpcy5fZXh0ZXJuYWxQYXJhbXMubGltaXQgPSArdmFsdWVzLmxpbWl0O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Jlc3RvcmVTb3J0aW5nUGFyYW1zKHZhbHVlczogRXh0ZXJuYWxRdWVyeVNvcnRpbmcpIHtcbiAgICBpZiAodmFsdWVzPy5zb3J0TmFtZSkge1xuICAgICAgdGhpcy5fZXh0ZXJuYWxQYXJhbXMuc29ydE5hbWUgPSB2YWx1ZXMuc29ydE5hbWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlcz8uc29ydERpcmVjdGlvbikge1xuICAgICAgdGhpcy5fZXh0ZXJuYWxQYXJhbXMuc29ydERpcmVjdGlvbiA9IHZhbHVlcy5zb3J0RGlyZWN0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblBhZ2luYXRvckNoYW5nZXMoKSB7XG4gICAgbWVyZ2UoXG4gICAgICB0aGlzLl9wYWdpbmF0b3IucGFnZUNoYW5nZWQkLFxuICAgICAgdGhpcy5fcGFnaW5hdG9yLnBhZ2VzJCxcbiAgICAgIHRoaXMuX3BhZ2luYXRvci5wYWdlUmVzZXQkLFxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVBhZ2luYXRpb25QYXJhbXModGhpcy5fcGFnaW5hdG9yLnF1ZXJ5UGFnZVN0cmF0ZWd5KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuU29ydGluZ0NoYW5nZXMoKSB7XG4gICAgbWVyZ2UoXG4gICAgICB0aGlzLl9zb3J0aW5nLmluaXRpYWxpemVkJCxcbiAgICAgIHRoaXMuX3NvcnRpbmcuc29ydGluZ0NoYW5nZWQkLFxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNvcnRpbmcgPSB0aGlzLl9zb3J0aW5nLnZhbHVlO1xuXG4gICAgICAgIGlmIChzb3J0aW5nKSB7XG4gICAgICAgICAgdGhpcy5fdXBkYXRlU29ydGluZ1BhcmFtcyhzb3J0aW5nLnZhbHVlLCBzb3J0aW5nLmRpcmVjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jbGVhclNvcnRpbmdQYXJhbXMoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNvcnRpbmdQYXJhbXMobmFtZTogc3RyaW5nLCBkaXJlY3Rpb246IHN0cmluZykge1xuICAgIGlmICh0aGlzLl9xdWVyeVBhcmFtc0VuYWJsZWQpIHtcbiAgICAgIC8vIEZJWE1FXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLl9yb3V0ZSxcbiAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgc29ydE5hbWU6IG5hbWUsXG4gICAgICAgICAgICBzb3J0RGlyZWN0aW9uOiBkaXJlY3Rpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgICAgIH0pLnRoZW4oKCkgPT4ge30pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3BlcnNpc3RhbmNlLmVuYWJsZWQpIHtcbiAgICAgIGlmIChuYW1lICYmIGRpcmVjdGlvbikge1xuICAgICAgICB0aGlzLl9wZXJzaXN0YW5jZS5zYXZlRGF0YVRvU2NvcGUoJ3NvcnRpbmcnLCB7IHNvcnROYW1lOiBuYW1lLCBzb3J0RGlyZWN0aW9uOiBkaXJlY3Rpb259KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3BlcnNpc3RhbmNlLnNhdmVEYXRhVG9TY29wZSgnc29ydGluZycsIG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVBhZ2luYXRpb25QYXJhbXMocGFyYW1zKSB7XG4gICAgaWYgKHRoaXMuX3F1ZXJ5UGFyYW1zRW5hYmxlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICAgIHJlcGxhY2VVcmw6IHRydWUsXG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5fcm91dGUsXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgICAgIH0pLnRoZW4oKCkgPT4ge30pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3BlcnNpc3RhbmNlLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMuX3BlcnNpc3RhbmNlLnNhdmVEYXRhVG9TY29wZSgncGFnaW5nJywgcGFyYW1zKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export { ActionsController } from './actions-controller';
2
- export { ColumnsController } from './columns-controller';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9saXN0LyIsInNvdXJjZXMiOlsiYXBwL2NsYXNzZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBY3Rpb25zQ29udHJvbGxlciB9IGZyb20gJy4vYWN0aW9ucy1jb250cm9sbGVyJztcbmV4cG9ydCB7IENvbHVtbnNDb250cm9sbGVyIH0gZnJvbSAnLi9jb2x1bW5zLWNvbnRyb2xsZXInO1xuIl19