@syncfusion/ej2-treegrid 20.1.55 → 20.1.56-97113

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 (126) hide show
  1. package/.eslintrc.json +16 -1
  2. package/CHANGELOG.md +15 -32
  3. package/README.md +64 -51
  4. package/dist/ej2-treegrid.min.js +1 -0
  5. package/dist/ej2-treegrid.umd.min.js +1 -10
  6. package/dist/ej2-treegrid.umd.min.js.map +1 -1
  7. package/dist/es6/ej2-treegrid.es2015.js +2046 -1076
  8. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  9. package/dist/es6/ej2-treegrid.es5.js +2131 -1113
  10. package/dist/es6/ej2-treegrid.es5.js.map +1 -1
  11. package/dist/global/ej2-treegrid.min.js +1 -10
  12. package/dist/global/ej2-treegrid.min.js.map +1 -1
  13. package/dist/global/index.d.ts +0 -9
  14. package/helpers/e2e/index.js +8 -6
  15. package/helpers/e2e/treegridhelper.js +82 -65
  16. package/package.json +64 -64
  17. package/src/treegrid/actions/batch-edit.js +115 -87
  18. package/src/treegrid/actions/clipboard.d.ts +3 -2
  19. package/src/treegrid/actions/clipboard.js +37 -35
  20. package/src/treegrid/actions/context-menu.js +53 -1
  21. package/src/treegrid/actions/crud-actions.js +67 -56
  22. package/src/treegrid/actions/detail-row.js +7 -7
  23. package/src/treegrid/actions/edit.d.ts +1 -0
  24. package/src/treegrid/actions/edit.js +168 -115
  25. package/src/treegrid/actions/excel-export.js +2 -2
  26. package/src/treegrid/actions/filter.js +13 -16
  27. package/src/treegrid/actions/freeze-column.d.ts +1 -0
  28. package/src/treegrid/actions/freeze-column.js +48 -11
  29. package/src/treegrid/actions/infinite-scroll.js +25 -22
  30. package/src/treegrid/actions/logger.js +10 -10
  31. package/src/treegrid/actions/page.d.ts +1 -0
  32. package/src/treegrid/actions/page.js +21 -8
  33. package/src/treegrid/actions/reorder.js +2 -2
  34. package/src/treegrid/actions/rowdragdrop.js +142 -86
  35. package/src/treegrid/actions/selection.d.ts +1 -0
  36. package/src/treegrid/actions/selection.js +71 -39
  37. package/src/treegrid/actions/sort.js +17 -5
  38. package/src/treegrid/actions/summary.js +24 -24
  39. package/src/treegrid/actions/toolbar.js +45 -43
  40. package/src/treegrid/actions/virtual-scroll.js +7 -4
  41. package/src/treegrid/base/constant.d.ts +30 -0
  42. package/src/treegrid/base/constant.js +30 -0
  43. package/src/treegrid/base/data.d.ts +1 -0
  44. package/src/treegrid/base/data.js +257 -57
  45. package/src/treegrid/base/treegrid-model.d.ts +50 -34
  46. package/src/treegrid/base/treegrid.d.ts +57 -35
  47. package/src/treegrid/base/treegrid.js +363 -200
  48. package/src/treegrid/enum.d.ts +8 -2
  49. package/src/treegrid/enum.js +2 -0
  50. package/src/treegrid/models/column.d.ts +6 -6
  51. package/src/treegrid/models/column.js +9 -9
  52. package/src/treegrid/models/index.d.ts +2 -0
  53. package/src/treegrid/models/index.js +1 -0
  54. package/src/treegrid/models/loading-indicator-model.d.ts +20 -0
  55. package/src/treegrid/models/loading-indicator.d.ts +17 -0
  56. package/src/treegrid/models/loading-indicator.js +34 -0
  57. package/src/treegrid/renderer/render.d.ts +4 -4
  58. package/src/treegrid/renderer/render.js +33 -24
  59. package/src/treegrid/renderer/virtual-row-model-generator.js +15 -6
  60. package/src/treegrid/renderer/virtual-tree-content-render.d.ts +5 -2
  61. package/src/treegrid/renderer/virtual-tree-content-render.js +224 -106
  62. package/src/treegrid/renderer/virtual-tree-freeze-render.d.ts +59 -0
  63. package/src/treegrid/renderer/virtual-tree-freeze-render.js +163 -0
  64. package/src/treegrid/utils.js +13 -12
  65. package/styles/bootstrap-dark.css +14 -1
  66. package/styles/bootstrap.css +14 -1
  67. package/styles/bootstrap4.css +14 -1
  68. package/styles/bootstrap5-dark.css +16 -2
  69. package/styles/bootstrap5.css +16 -2
  70. package/styles/fabric-dark.css +14 -1
  71. package/styles/fabric.css +14 -1
  72. package/styles/fluent-dark.css +15 -2
  73. package/styles/fluent.css +15 -2
  74. package/styles/highcontrast-light.css +14 -1
  75. package/styles/highcontrast.css +14 -1
  76. package/styles/material-dark.css +14 -1
  77. package/styles/material.css +14 -1
  78. package/styles/tailwind-dark.css +14 -1
  79. package/styles/tailwind.css +14 -1
  80. package/styles/treegrid/_all.scss +1 -1
  81. package/styles/treegrid/_bootstrap-dark-definition.scss +1 -1
  82. package/styles/treegrid/_bootstrap-definition.scss +1 -2
  83. package/styles/treegrid/_bootstrap4-definition.scss +0 -1
  84. package/styles/treegrid/_bootstrap5-definition.scss +0 -1
  85. package/styles/treegrid/_fabric-dark-definition.scss +1 -2
  86. package/styles/treegrid/_fabric-definition.scss +1 -2
  87. package/styles/treegrid/_fluent-definition.scss +0 -1
  88. package/styles/treegrid/_fusionnew-definition.scss +28 -0
  89. package/styles/treegrid/_highcontrast-definition.scss +0 -1
  90. package/styles/treegrid/_highcontrast-light-definition.scss +0 -2
  91. package/styles/treegrid/_icons.scss +12 -1
  92. package/styles/treegrid/_layout.scss +4 -4
  93. package/styles/treegrid/_material-definition.scss +0 -1
  94. package/styles/treegrid/_material3-definition.scss +28 -0
  95. package/styles/treegrid/_tailwind-definition.scss +0 -1
  96. package/styles/treegrid/_theme.scss +1 -0
  97. package/styles/treegrid/bootstrap-dark.css +14 -1
  98. package/styles/treegrid/bootstrap.css +14 -1
  99. package/styles/treegrid/bootstrap4.css +14 -1
  100. package/styles/treegrid/bootstrap5-dark.css +16 -2
  101. package/styles/treegrid/bootstrap5.css +16 -2
  102. package/styles/treegrid/fabric-dark.css +14 -1
  103. package/styles/treegrid/fabric.css +14 -1
  104. package/styles/treegrid/fluent-dark.css +15 -2
  105. package/styles/treegrid/fluent.css +15 -2
  106. package/styles/treegrid/highcontrast-light.css +14 -1
  107. package/styles/treegrid/highcontrast.css +14 -1
  108. package/styles/treegrid/icons/_bootstrap-dark.scss +12 -1
  109. package/styles/treegrid/icons/_bootstrap.scss +12 -1
  110. package/styles/treegrid/icons/_bootstrap4.scss +12 -1
  111. package/styles/treegrid/icons/_bootstrap5.scss +11 -0
  112. package/styles/treegrid/icons/_fabric-dark.scss +12 -1
  113. package/styles/treegrid/icons/_fabric.scss +12 -1
  114. package/styles/treegrid/icons/_fluent.scss +11 -0
  115. package/styles/treegrid/icons/_fusionnew.scss +26 -0
  116. package/styles/treegrid/icons/_highcontrast-light.scss +12 -1
  117. package/styles/treegrid/icons/_highcontrast.scss +11 -0
  118. package/styles/treegrid/icons/_material-dark.scss +12 -1
  119. package/styles/treegrid/icons/_material.scss +11 -0
  120. package/styles/treegrid/icons/_material3.scss +26 -0
  121. package/styles/treegrid/icons/_tailwind-dark.scss +11 -0
  122. package/styles/treegrid/icons/_tailwind.scss +11 -0
  123. package/styles/treegrid/material-dark.css +14 -1
  124. package/styles/treegrid/material.css +14 -1
  125. package/styles/treegrid/tailwind-dark.css +14 -1
  126. package/styles/treegrid/tailwind.css +14 -1
@@ -19,6 +19,7 @@ var Selection = /** @class */ (function () {
19
19
  this.selectedItems = [];
20
20
  this.selectedIndexes = [];
21
21
  this.filteredList = [];
22
+ this.searchingRecords = [];
22
23
  this.addEventListener();
23
24
  }
24
25
  /**
@@ -85,17 +86,17 @@ var Selection = /** @class */ (function () {
85
86
  Selection.prototype.getCheckboxcolumnIndex = function () {
86
87
  var mappingUid;
87
88
  var columnIndex;
88
- var stackedHeader = "stackedHeader";
89
+ var stackedHeader = 'stackedHeader';
89
90
  var columnModel = 'columnModel';
90
- var columns = this.parent[stackedHeader] ? this.parent[columnModel] : (this.parent.columns);
91
+ var columns = this.parent["" + stackedHeader] ? this.parent["" + columnModel] : (this.parent.columns);
91
92
  for (var col = 0; col < columns.length; col++) {
92
- if (columns[col].showCheckbox) {
93
- mappingUid = columns[col].uid;
93
+ if (columns[parseInt(col.toString(), 10)].showCheckbox) {
94
+ mappingUid = columns[parseInt(col.toString(), 10)].uid;
94
95
  }
95
96
  }
96
97
  var headerCelllength = this.parent.getHeaderContent().querySelectorAll('.e-headercelldiv').length;
97
98
  for (var j = 0; j < headerCelllength; j++) {
98
- var headercell = this.parent.getHeaderContent().querySelectorAll('.e-headercelldiv')[j];
99
+ var headercell = this.parent.getHeaderContent().querySelectorAll('.e-headercelldiv')[parseInt(j.toString(), 10)];
99
100
  if (headercell.getAttribute('e-mappinguid') === mappingUid) {
100
101
  columnIndex = j;
101
102
  }
@@ -127,7 +128,7 @@ var Selection = /** @class */ (function () {
127
128
  }
128
129
  };
129
130
  Selection.prototype.renderColumnCheckbox = function (args) {
130
- var rowChkBox = this.parent.createElement('input', { className: 'e-treecheckselect', attrs: { 'type': 'checkbox' } });
131
+ var rowChkBox = this.parent.createElement('input', { className: 'e-treecheckselect', attrs: { 'type': 'checkbox', 'aria-label': 'checkbox' } });
131
132
  var data = args.data;
132
133
  args.cell.classList.add('e-treegridcheckbox');
133
134
  args.cell.setAttribute('aria-label', 'checkbox');
@@ -166,15 +167,15 @@ var Selection = /** @class */ (function () {
166
167
  };
167
168
  Selection.prototype.selectCheckboxes = function (rowIndexes) {
168
169
  for (var i = 0; i < rowIndexes.length; i++) {
169
- var record = this.parent.getCurrentViewRecords()[rowIndexes[i]];
170
+ var record = this.parent.getCurrentViewRecords()[rowIndexes[parseInt(i.toString(), 10)]];
170
171
  var flatRecord = getParentData(this.parent, record.uniqueID);
171
172
  record = flatRecord;
172
173
  var checkboxState = (record.checkboxState === 'uncheck') ? 'check' : 'uncheck';
173
174
  record.checkboxState = checkboxState;
174
175
  var keys = Object.keys(record);
175
176
  for (var j = 0; j < keys.length; j++) {
176
- if (Object.prototype.hasOwnProperty.call(flatRecord, keys[j])) {
177
- flatRecord[keys[j]] = record[keys[j]];
177
+ if (Object.prototype.hasOwnProperty.call(flatRecord, keys[parseInt(j.toString(), 10)])) {
178
+ flatRecord[keys[parseInt(j.toString(), 10)]] = record[keys[parseInt(j.toString(), 10)]];
178
179
  }
179
180
  }
180
181
  this.traverSelection(record, checkboxState, false);
@@ -197,12 +198,12 @@ var Selection = /** @class */ (function () {
197
198
  }
198
199
  length = childRecords.length;
199
200
  for (var count = 0; count < length; count++) {
200
- if (!childRecords[count].isSummaryRow) {
201
- if (childRecords[count].hasChildRecords) {
202
- this.traverSelection(childRecords[count], checkboxState, true);
201
+ if (!childRecords[parseInt(count.toString(), 10)].isSummaryRow) {
202
+ if (childRecords[parseInt(count.toString(), 10)].hasChildRecords) {
203
+ this.traverSelection(childRecords[parseInt(count.toString(), 10)], checkboxState, true);
203
204
  }
204
205
  else {
205
- this.updateSelectedItems(childRecords[count], checkboxState);
206
+ this.updateSelectedItems(childRecords[parseInt(count.toString(), 10)], checkboxState);
206
207
  }
207
208
  }
208
209
  }
@@ -231,7 +232,7 @@ var Selection = /** @class */ (function () {
231
232
  var checkChildRecords = 0;
232
233
  if (!isNullOrUndefined(record)) {
233
234
  for (var i = 0; i < childRecords.length; i++) {
234
- var currentRecord = getParentData(this.parent, childRecords[i].uniqueID);
235
+ var currentRecord = getParentData(this.parent, childRecords[parseInt(i.toString(), 10)].uniqueID);
235
236
  var checkBoxRecord = currentRecord;
236
237
  if (!isNullOrUndefined(checkBoxRecord)) {
237
238
  if (checkBoxRecord.checkboxState === 'indeterminate') {
@@ -245,7 +246,12 @@ var Selection = /** @class */ (function () {
245
246
  if (indeter > 0 || (checkChildRecords > 0 && checkChildRecords !== length)) {
246
247
  record.checkboxState = 'indeterminate';
247
248
  }
248
- else if (checkChildRecords === 0 && indeter === 0) {
249
+ else if (checkChildRecords === 0 && (!record.hasFilteredChildRecords || isNullOrUndefined(record.hasFilteredChildRecords)) && !isNullOrUndefined(this.parent['dataResults']['actionArgs']) &&
250
+ (this.parent['dataResults']['actionArgs'].requestType === 'searching' || this.parent['dataResults']['actionArgs'].requestType === 'filtering') && record.checkboxState === 'check') {
251
+ record.checkboxState = 'check';
252
+ }
253
+ else if ((checkChildRecords === 0 && indeter === 0) || (checkChildRecords === 0 && record.hasFilteredChildRecords && !isNullOrUndefined(this.parent['dataResults']['actionArgs']) &&
254
+ (this.parent['dataResults']['actionArgs'].requestType === 'searching' || this.parent['dataResults']['actionArgs'].requestType === 'filtering') && record.checkboxState === 'check')) {
249
255
  record.checkboxState = 'uncheck';
250
256
  }
251
257
  else {
@@ -261,42 +267,64 @@ var Selection = /** @class */ (function () {
261
267
  var _this = this;
262
268
  var index = -1;
263
269
  var length = 0;
270
+ //This property used to maintain the check state of the currentview data after clear filtering
271
+ var multiFilterCheckState = false;
264
272
  if (!isNullOrUndefined(this.parent.filterModule) && this.parent.filterModule.filteredResult.length > 0) {
265
273
  var filterResult = this.parent.filterModule.filteredResult;
266
274
  if (this.filteredList.length === 0) {
267
275
  this.filteredList = filterResult;
268
276
  }
277
+ if (this.parent.grid.searchSettings.key.length) {
278
+ this.searchingRecords = filterResult;
279
+ }
269
280
  else {
270
281
  if (this.filteredList !== filterResult) {
271
282
  this.filteredList = filterResult;
283
+ multiFilterCheckState = true;
284
+ }
285
+ else {
286
+ multiFilterCheckState = false;
272
287
  }
273
288
  }
274
289
  }
275
290
  if (this.filteredList.length > 0) {
276
- if (!this.parent.filterSettings.columns.length && this.filteredList.length) {
291
+ if (!this.parent.filterSettings.columns.length && this.filteredList.length && !this.parent.grid.searchSettings.key.length) {
277
292
  this.filteredList = [];
278
293
  }
294
+ if (this.searchingRecords.length && !isNullOrUndefined(checkAll)) {
295
+ this.filteredList = this.searchingRecords;
296
+ }
297
+ }
298
+ var data;
299
+ if (!(isNullOrUndefined(this.parent.filterModule)) &&
300
+ this.parent.filterModule.filteredResult.length === 0 && this.parent.getCurrentViewRecords().length === 0 &&
301
+ this.parent.filterSettings.columns.length > 0) {
302
+ data = this.filteredList;
303
+ }
304
+ else {
305
+ data = (!isNullOrUndefined(this.parent.filterModule) &&
306
+ (this.filteredList.length > 0)) ? this.filteredList : this.parent.flatData;
279
307
  }
280
- var data = (!isNullOrUndefined(this.parent.filterModule) &&
281
- (this.filteredList.length > 0)) ? this.filteredList :
282
- this.parent.flatData;
283
308
  data = isRemoteData(this.parent) ? this.parent.getCurrentViewRecords() : data;
284
309
  if (!isNullOrUndefined(checkAll)) {
285
310
  for (var i = 0; i < data.length; i++) {
286
311
  if (checkAll) {
287
- if (data[i].checkboxState === 'check') {
312
+ if (data[parseInt(i.toString(), 10)].checkboxState === 'check') {
288
313
  continue;
289
314
  }
290
- data[i].checkboxState = 'check';
291
- this.updateSelectedItems(data[i], data[i].checkboxState);
315
+ if (multiFilterCheckState) {
316
+ continue;
317
+ }
318
+ data[parseInt(i.toString(), 10)].checkboxState = 'check';
319
+ this.updateSelectedItems(data[parseInt(i.toString(), 10)], data[parseInt(i.toString(), 10)].checkboxState);
292
320
  }
293
321
  else {
294
- index = this.selectedItems.indexOf(data[i]);
322
+ index = this.selectedItems.indexOf(data[parseInt(i.toString(), 10)]);
295
323
  if (index > -1) {
296
- data[i].checkboxState = 'uncheck';
297
- this.updateSelectedItems(data[i], data[i].checkboxState);
324
+ data[parseInt(i.toString(), 10)].checkboxState = 'uncheck';
325
+ this.updateSelectedItems(data[parseInt(i.toString(), 10)], data[parseInt(i.toString(), 10)].checkboxState);
298
326
  if (this.parent.autoCheckHierarchy) {
299
- this.updateParentSelection(data[i]);
327
+ this.updateParentSelection(data[parseInt(i.toString(), 10)]);
300
328
  }
301
329
  }
302
330
  }
@@ -333,12 +361,12 @@ var Selection = /** @class */ (function () {
333
361
  var checkedRecord;
334
362
  var recordIndex = this.parent.getCurrentViewRecords().indexOf(record[0]);
335
363
  var checkboxRecord = getParentData(this.parent, currentRecord.uniqueID);
364
+ var tr = this.parent.getRows()[parseInt(recordIndex.toString(), 10)];
336
365
  var checkbox;
337
366
  if (recordIndex > -1) {
338
- var tr = this.parent.getRows()[recordIndex];
339
367
  var movableTr = void 0;
340
368
  if (this.parent.frozenRows || this.parent.getFrozenColumns()) {
341
- movableTr = this.parent.getMovableDataRows()[recordIndex];
369
+ movableTr = this.parent.getMovableDataRows()[parseInt(recordIndex.toString(), 10)];
342
370
  }
343
371
  checkbox = tr.querySelectorAll('.e-frame')[0] ? tr.querySelectorAll('.e-frame')[0]
344
372
  : movableTr.querySelectorAll('.e-frame')[0];
@@ -384,6 +412,9 @@ var Selection = /** @class */ (function () {
384
412
  if (recordIndex > -1) {
385
413
  if (!isNullOrUndefined(checkbox)) {
386
414
  checkbox.classList.add(checkBoxclass);
415
+ var chkstate = checkState === 'check' ? 'checked' : checkState === 'uncheck' ? 'unchecked' : 'mixed';
416
+ tr.querySelector('.e-treecheckselect').setAttribute('aria-checked', checkState === 'check' ? 'true' : checkState === 'uncheck' ? 'false' : 'mixed');
417
+ tr.querySelector('.e-frame').setAttribute('title', 'checkbox' + chkstate);
387
418
  }
388
419
  }
389
420
  };
@@ -400,8 +431,8 @@ var Selection = /** @class */ (function () {
400
431
  childLength = childData.length;
401
432
  this.selectedIndexes = [];
402
433
  for (var i = 0; i < childLength; i++) {
403
- if (!rows[i].classList.contains('e-summaryrow')) {
404
- this.updateSelectedItems(childData[i], childData[i].checkboxState);
434
+ if (!rows[parseInt(i.toString(), 10)].classList.contains('e-summaryrow')) {
435
+ this.updateSelectedItems(childData[parseInt(i.toString(), 10)], childData[parseInt(i.toString(), 10)].checkboxState);
405
436
  }
406
437
  }
407
438
  }
@@ -415,13 +446,13 @@ var Selection = /** @class */ (function () {
415
446
  }
416
447
  for (var i = 0; i < updatedData.length; i++) {
417
448
  if (requestType === 'delete') {
418
- var index = this.parent.flatData.indexOf(updatedData[i]);
449
+ var index = this.parent.flatData.indexOf(updatedData[parseInt(i.toString(), 10)]);
419
450
  var checkedIndex = this.selectedIndexes.indexOf(index);
420
451
  this.selectedIndexes.splice(checkedIndex, 1);
421
- this.updateSelectedItems(updatedData[i], 'uncheck');
452
+ this.updateSelectedItems(updatedData[parseInt(i.toString(), 10)], 'uncheck');
422
453
  }
423
- if (!isNullOrUndefined(updatedData[i].parentItem)) {
424
- this.updateParentSelection(updatedData[i].parentItem);
454
+ if (!isNullOrUndefined(updatedData[parseInt(i.toString(), 10)].parentItem)) {
455
+ this.updateParentSelection(updatedData[parseInt(i.toString(), 10)].parentItem);
425
456
  }
426
457
  }
427
458
  }
@@ -436,7 +467,7 @@ var Selection = /** @class */ (function () {
436
467
  this.parent.getCurrentViewRecords() : this.parent.flatData;
437
468
  childData.forEach(function (record) {
438
469
  if (_this.parent.enableVirtualization) {
439
- if (record.hasChildRecords) {
470
+ if (record.hasChildRecords && record.childRecords.length > 0) {
440
471
  _this.updateParentSelection(record);
441
472
  }
442
473
  else {
@@ -445,11 +476,12 @@ var Selection = /** @class */ (function () {
445
476
  var child = findChildrenRecords(record);
446
477
  child = _this.getFilteredChildRecords(child);
447
478
  for (var i = 0; i < child.length; i++) {
448
- if (child[i].hasChildRecords) {
449
- _this.updateParentSelection(child[i]);
479
+ if (child[parseInt(i.toString(), 10)].hasChildRecords) {
480
+ _this.updateParentSelection(child[parseInt(i.toString(), 10)]);
450
481
  }
451
- else if (!(child[i].hasChildRecords) && !isNullOrUndefined(child[i])) {
452
- _this.updateSelectedItems(child[i], child[i].checkboxState);
482
+ else if (!(child[parseInt(i.toString(), 10)].hasChildRecords) &&
483
+ !isNullOrUndefined(child[parseInt(i.toString(), 10)])) {
484
+ _this.updateSelectedItems(child[parseInt(i.toString(), 10)], child[parseInt(i.toString(), 10)].checkboxState);
453
485
  }
454
486
  }
455
487
  }
@@ -55,17 +55,29 @@ var Sort = /** @class */ (function () {
55
55
  Sort.prototype.iterateSort = function (data, srtQry) {
56
56
  for (var d = 0; d < data.length; d++) {
57
57
  if (this.parent.grid.filterSettings.columns.length > 0 || this.parent.grid.searchSettings.key !== '') {
58
- if (!isNullOrUndefined(getParentData(this.parent, data[d].uniqueID, true))) {
58
+ if (!isNullOrUndefined(getParentData(this.parent, data[parseInt(d.toString(), 10)].uniqueID, true))) {
59
59
  this.storedIndex++;
60
- this.flatSortedData[this.storedIndex] = data[d];
60
+ this.flatSortedData[this.storedIndex] = data[parseInt(d.toString(), 10)];
61
61
  }
62
62
  }
63
63
  else {
64
64
  this.storedIndex++;
65
- this.flatSortedData[this.storedIndex] = data[d];
65
+ this.flatSortedData[this.storedIndex] = data[parseInt(d.toString(), 10)];
66
66
  }
67
- if (data[d].hasChildRecords) {
68
- var childSort = (new DataManager(data[d].childRecords).executeLocal(srtQry));
67
+ if (data[parseInt(d.toString(), 10)].hasChildRecords) {
68
+ var childSort = (new DataManager(data[parseInt(d.toString(), 10)].childRecords)
69
+ .executeLocal(srtQry));
70
+ if (this.parent.allowRowDragAndDrop && data[parseInt(d.toString(), 10)].childRecords.indexOf(this.parent.rowDragAndDropModule['draggedRecord']) !== -1 && this.parent.rowDragAndDropModule['dropPosition'] !== 'middleSegment') {
71
+ var dragdIndex = childSort.indexOf(this.parent.rowDragAndDropModule['draggedRecord']);
72
+ childSort.splice(dragdIndex, 1);
73
+ var dropdIndex = childSort.indexOf(this.parent.rowDragAndDropModule['droppedRecord']);
74
+ if (this.parent.rowDragAndDropModule['dropPosition'] === 'topSegment') {
75
+ childSort.splice(dropdIndex, 0, this.parent.rowDragAndDropModule['draggedRecord']);
76
+ }
77
+ else if (this.parent.rowDragAndDropModule['dropPosition'] === 'bottomSegment') {
78
+ childSort.splice(dropdIndex + 1, 0, this.parent.rowDragAndDropModule['draggedRecord']);
79
+ }
80
+ }
69
81
  this.iterateSort(childSort, srtQry);
70
82
  }
71
83
  }
@@ -48,9 +48,9 @@ var Aggregate = /** @class */ (function () {
48
48
  var parentDataLength = Object.keys(filteredData).length;
49
49
  var parentData = [];
50
50
  for (var p = 0, len = parentDataLength; p < len; p++) {
51
- var summaryRow = getObject('isSummaryRow', filteredData[p]);
51
+ var summaryRow = getObject('isSummaryRow', filteredData[parseInt(p.toString(), 10)]);
52
52
  if (!summaryRow) {
53
- parentData.push(filteredData[p]);
53
+ parentData.push(filteredData[parseInt(p.toString(), 10)]);
54
54
  }
55
55
  }
56
56
  var parentRecords = findParentRecords(parentData);
@@ -61,16 +61,16 @@ var Aggregate = /** @class */ (function () {
61
61
  var columns = this.parent.getColumns();
62
62
  if (this.parent.aggregates.filter(function (x) { return x.showChildSummary; }).length) {
63
63
  for (var i = 0, len = dataLength; i < len; i++) {
64
- parentRecord = parentRecords[i];
64
+ parentRecord = parentRecords[parseInt(i.toString(), 10)];
65
65
  childRecordsLength = this.getChildRecordsLength(parentRecord, flatRecords);
66
66
  if (childRecordsLength) {
67
67
  var _loop_1 = function (summaryRowIndex, len_1) {
68
68
  var item = void 0;
69
69
  item = {};
70
70
  for (var i_1 = 0; i_1 < columns.length; i_1++) {
71
- var field = (isNullOrUndefined(getObject('field', columns[i_1]))) ?
72
- columns[i_1] : getObject('field', (columns[i_1]));
73
- item[field] = null;
71
+ var field = (isNullOrUndefined(getObject('field', columns[parseInt(i_1.toString(), 10)]))) ?
72
+ columns[parseInt(i_1.toString(), 10)] : getObject('field', (columns[parseInt(i_1.toString(), 10)]));
73
+ item["" + field] = null;
74
74
  }
75
75
  item = this_1.createSummaryItem(item, this_1.parent.aggregates[summaryRowIndex - 1]);
76
76
  if (this_1.parent.aggregates[summaryRowIndex - 1].showChildSummary) {
@@ -113,9 +113,9 @@ var Aggregate = /** @class */ (function () {
113
113
  else {
114
114
  var items = {};
115
115
  for (var columnIndex = 0, length_1 = columns.length; columnIndex < length_1; columnIndex++) {
116
- var fields = isNullOrUndefined(getObject('field', columns[columnIndex])) ?
117
- columns[columnIndex] : getObject('field', columns[columnIndex]);
118
- items[fields] = null;
116
+ var fields = isNullOrUndefined(getObject('field', columns[parseInt(columnIndex.toString(), 10)])) ?
117
+ columns[parseInt(columnIndex.toString(), 10)] : getObject('field', columns[parseInt(columnIndex.toString(), 10)]);
118
+ items["" + fields] = null;
119
119
  }
120
120
  for (var summaryRowIndex = 1, length_2 = summaryLength; summaryRowIndex <= length_2; summaryRowIndex++) {
121
121
  this.createSummaryItem(items, this.parent.aggregates[summaryRowIndex - 1]);
@@ -127,7 +127,7 @@ var Aggregate = /** @class */ (function () {
127
127
  var recordLength = Object.keys(flatData).length;
128
128
  var record;
129
129
  for (var i = 0, len = recordLength; i < len; i++) {
130
- record = flatData[i];
130
+ record = flatData[parseInt(i.toString(), 10)];
131
131
  var parent_1 = isNullOrUndefined(record.parentItem) ? null :
132
132
  flatData.filter(function (e) { return e.uniqueID === record.parentItem.uniqueID; })[0];
133
133
  if (parentData === parent_1) {
@@ -146,19 +146,19 @@ var Aggregate = /** @class */ (function () {
146
146
  Aggregate.prototype.createSummaryItem = function (itemData, summary) {
147
147
  var summaryColumnLength = Object.keys(summary.columns).length;
148
148
  for (var i = 0, len = summaryColumnLength; i < len; i++) {
149
- var displayColumn = isNullOrUndefined(summary.columns[i].columnName) ? summary.columns[i].field :
150
- summary.columns[i].columnName;
149
+ var displayColumn = isNullOrUndefined(summary.columns[parseInt(i.toString(), 10)].columnName) ?
150
+ summary.columns[parseInt(i.toString(), 10)].field : summary.columns[parseInt(i.toString(), 10)].columnName;
151
151
  var keys = Object.keys(itemData);
152
152
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
153
153
  var key = keys_1[_i];
154
154
  if (key === displayColumn) {
155
155
  if (this.flatChildRecords.length) {
156
- itemData[key] = this.getSummaryValues(summary.columns[i], this.flatChildRecords);
156
+ itemData["" + key] = this.getSummaryValues(summary.columns[parseInt(i.toString(), 10)], this.flatChildRecords);
157
157
  }
158
158
  else if (this.parent.isLocalData) {
159
159
  var data = this.parent.dataSource instanceof DataManager ? this.parent.dataSource.dataSource.json
160
160
  : this.parent.flatData;
161
- itemData[key] = this.getSummaryValues(summary.columns[i], data);
161
+ itemData["" + key] = this.getSummaryValues(summary.columns[parseInt(i.toString(), 10)], data);
162
162
  }
163
163
  }
164
164
  else {
@@ -186,15 +186,15 @@ var Aggregate = /** @class */ (function () {
186
186
  var summaryKey;
187
187
  types = [summaryColumn.type];
188
188
  for (var i = 0; i < types.length; i++) {
189
- summaryKey = types[i];
190
- var key = summaryColumn.field + ' - ' + types[i].toLowerCase();
191
- var val = types[i] !== 'Custom' ? getObject('aggregates', sumData) :
192
- calculateAggregate(types[i], sumData, summaryColumn, this.parent);
189
+ summaryKey = types[parseInt(i.toString(), 10)];
190
+ var key = summaryColumn.field + ' - ' + types[parseInt(i.toString(), 10)].toLowerCase();
191
+ var val = types[parseInt(i.toString(), 10)] !== 'Custom' ? getObject('aggregates', sumData) :
192
+ calculateAggregate(types[parseInt(i.toString(), 10)], sumData, summaryColumn, this.parent);
193
193
  var disp = summaryColumn.columnName;
194
- var value_1 = types[i] !== 'Custom' ? val[key] : val;
195
- single[disp] = single[disp] || {};
196
- single[disp][key] = value_1;
197
- single[disp][types[i]] = !isNullOrUndefined(val) ? formatFn(value_1) : ' ';
194
+ var value_1 = types[parseInt(i.toString(), 10)] !== 'Custom' ? val["" + key] : val;
195
+ single["" + disp] = single["" + disp] || {};
196
+ single["" + disp]["" + key] = value_1;
197
+ single["" + disp][types[parseInt(i.toString(), 10)]] = !isNullOrUndefined(val) ? formatFn(value_1) : ' ';
198
198
  }
199
199
  helper.format = summaryColumn.getFormatter();
200
200
  var cellElement = createElement('td', {
@@ -203,12 +203,12 @@ var Aggregate = /** @class */ (function () {
203
203
  if (this.parent.isReact) {
204
204
  var renderReactTemplates = 'renderReactTemplates';
205
205
  tempObj.fn(single[summaryColumn.columnName], this.parent, tempObj.property, '', null, null, cellElement);
206
- this.parent[renderReactTemplates]();
206
+ this.parent["" + renderReactTemplates]();
207
207
  }
208
208
  else {
209
209
  appendChildren(cellElement, tempObj.fn(single[summaryColumn.columnName], this.parent, tempObj.property));
210
210
  }
211
- var value = single[summaryColumn.columnName][summaryKey];
211
+ var value = single["" + summaryColumn.columnName]["" + summaryKey];
212
212
  var summaryValue;
213
213
  if (cellElement.innerHTML.indexOf(value) === -1) {
214
214
  summaryValue = cellElement.innerHTML + value;
@@ -43,53 +43,55 @@ var Toolbar = /** @class */ (function () {
43
43
  this.parent.off(events.toolbarClick, this.toolbarClickHandler);
44
44
  };
45
45
  Toolbar.prototype.refreshToolbar = function (args) {
46
- var tObj = this.parent;
47
- var indentElement;
48
- var outdentElement;
49
- var indentID = tObj.element.id + '_gridcontrol_indent';
50
- var outdentID = tObj.element.id + '_gridcontrol_outdent';
51
46
  var toolbarElement = this.parent.grid.toolbarModule.getToolbar();
52
- var indentEle = toolbarElement.querySelector('#' + indentID);
53
- var outdentEle = toolbarElement.querySelector('#' + outdentID);
54
- var row = args.row;
55
- var selectedrow = tObj.getSelectedRows()[0];
56
- if (!isNullOrUndefined(row[0])) {
57
- row = row[0];
58
- }
59
- row = (!isNullOrUndefined(selectedrow) && selectedrow.rowIndex !== row.rowIndex) ? selectedrow : row;
60
- if (indentEle !== null && outdentEle !== null) {
61
- indentElement = toolbarElement.querySelector('#' + indentID).parentElement;
62
- outdentElement = toolbarElement.querySelector('#' + outdentID).parentElement;
63
- if (row.rowIndex === 0 || tObj.getSelectedRowIndexes().length > 1) {
64
- indentElement.classList.add('e-hidden');
65
- outdentElement.classList.add('e-hidden');
47
+ if (!isNullOrUndefined(toolbarElement)) {
48
+ var tObj = this.parent;
49
+ var indentElement = void 0;
50
+ var outdentElement = void 0;
51
+ var indentID = tObj.element.id + '_gridcontrol_indent';
52
+ var outdentID = tObj.element.id + '_gridcontrol_outdent';
53
+ var indentEle = toolbarElement.querySelector('#' + indentID);
54
+ var outdentEle = toolbarElement.querySelector('#' + outdentID);
55
+ var row = args.row;
56
+ var selectedrow = tObj.getSelectedRows()[0];
57
+ if (!isNullOrUndefined(row[0])) {
58
+ row = row[0];
66
59
  }
67
- else if (args['name'] !== 'rowDeselected' || (!isNullOrUndefined(selectedrow) && tObj.grid.isCheckBoxSelection)) {
68
- var selectedItem = tObj.getCurrentViewRecords()[row.rowIndex];
69
- if (!isNullOrUndefined(selectedItem)) {
70
- if ((selectedItem.level > tObj.getCurrentViewRecords()[row.rowIndex - 1].level)) {
71
- indentElement.classList.add('e-hidden');
72
- }
73
- else {
74
- indentElement.classList.remove('e-hidden');
60
+ row = (!isNullOrUndefined(selectedrow) && selectedrow.rowIndex !== row.rowIndex) ? selectedrow : row;
61
+ if (indentEle !== null && outdentEle !== null) {
62
+ indentElement = toolbarElement.querySelector('#' + indentID).parentElement;
63
+ outdentElement = toolbarElement.querySelector('#' + outdentID).parentElement;
64
+ if (row.rowIndex === 0 || tObj.getSelectedRowIndexes().length > 1) {
65
+ indentElement.classList.add('e-hidden');
66
+ outdentElement.classList.add('e-hidden');
67
+ }
68
+ else if (args['name'] !== 'rowDeselected' || (!isNullOrUndefined(selectedrow) && tObj.grid.isCheckBoxSelection)) {
69
+ var selectedItem = tObj.getCurrentViewRecords()[row.rowIndex];
70
+ if (!isNullOrUndefined(selectedItem)) {
71
+ if ((selectedItem.level > tObj.getCurrentViewRecords()[row.rowIndex - 1].level)) {
72
+ indentElement.classList.add('e-hidden');
73
+ }
74
+ else {
75
+ indentElement.classList.remove('e-hidden');
76
+ }
77
+ if (selectedItem.level === tObj.getCurrentViewRecords()[row.rowIndex - 1].level) {
78
+ indentElement.classList.remove('e-hidden');
79
+ }
80
+ if (selectedItem.level === 0) {
81
+ outdentElement.classList.add('e-hidden');
82
+ }
83
+ if (selectedItem.level !== 0) {
84
+ outdentElement.classList.remove('e-hidden');
85
+ }
75
86
  }
76
- if (selectedItem.level === tObj.getCurrentViewRecords()[row.rowIndex - 1].level) {
77
- indentElement.classList.remove('e-hidden');
87
+ }
88
+ if (args['name'] === 'rowDeselected' && isNullOrUndefined(selectedrow) && !tObj.grid.isCheckBoxSelection) {
89
+ if (this.parent.toolbar['includes']('Indent')) {
90
+ indentElement.classList.add('e-hidden');
78
91
  }
79
- if (selectedItem.level === 0) {
92
+ if (this.parent.toolbar['includes']('Outdent')) {
80
93
  outdentElement.classList.add('e-hidden');
81
94
  }
82
- if (selectedItem.level !== 0) {
83
- outdentElement.classList.remove('e-hidden');
84
- }
85
- }
86
- }
87
- if (args['name'] === 'rowDeselected' && isNullOrUndefined(selectedrow) && !tObj.grid.isCheckBoxSelection) {
88
- if (this.parent.toolbar['includes']('Indent')) {
89
- indentElement.classList.add('e-hidden');
90
- }
91
- if (this.parent.toolbar['includes']('Outdent')) {
92
- outdentElement.classList.add('e-hidden');
93
95
  }
94
96
  }
95
97
  }
@@ -110,11 +112,11 @@ var Toolbar = /** @class */ (function () {
110
112
  }
111
113
  if (args.item.id === tObj.grid.element.id + '_indent' && tObj.getSelectedRecords().length
112
114
  && !isNullOrUndefined(tObj.rowDragAndDropModule)) {
113
- this.parent.rowDragAndDropModule[indentOutdentAction](null, 'indent');
115
+ this.parent.rowDragAndDropModule["" + indentOutdentAction](null, 'indent');
114
116
  }
115
117
  if (args.item.id === tObj.grid.element.id + '_outdent' && tObj.getSelectedRecords().length
116
118
  && !isNullOrUndefined(tObj.rowDragAndDropModule)) {
117
- this.parent.rowDragAndDropModule[indentOutdentAction](null, 'outdent');
119
+ this.parent.rowDragAndDropModule["" + indentOutdentAction](null, 'outdent');
118
120
  }
119
121
  };
120
122
  /**
@@ -157,6 +157,7 @@ var VirtualScroll = /** @class */ (function () {
157
157
  }
158
158
  }
159
159
  this.expandCollapseRec = null;
160
+ startIndex = startIndex < 0 ? 0 : startIndex;
160
161
  pageingDetails.result = visualData.slice(startIndex, endIndex);
161
162
  this.prevstartIndex = startIndex;
162
163
  this.prevendIndex = endIndex;
@@ -190,12 +191,14 @@ var TreeVirtual = /** @class */ (function (_super) {
190
191
  var parentGrid = getValue('parent', this);
191
192
  getValue('parent', this).log(['limitation', 'virtual_height'], 'virtualization');
192
193
  var renderer = getValue('locator', this).getService('rendererFactory');
193
- if (parentGrid.enableColumnVirtualization) {
194
+ if (!parentGrid.isFrozenGrid()) {
195
+ if (parentGrid.enableColumnVirtualization) {
196
+ getValue('addRenderer', renderer)
197
+ .apply(renderer, [RenderType.Header, new VirtualHeaderRenderer(getValue('parent', this), getValue('locator', this))]);
198
+ }
194
199
  getValue('addRenderer', renderer)
195
- .apply(renderer, [RenderType.Header, new VirtualHeaderRenderer(getValue('parent', this), getValue('locator', this))]);
200
+ .apply(renderer, [RenderType.Content, new VirtualTreeContentRenderer(getValue('parent', this), getValue('locator', this))]);
196
201
  }
197
- getValue('addRenderer', renderer)
198
- .apply(renderer, [RenderType.Content, new VirtualTreeContentRenderer(getValue('parent', this), getValue('locator', this))]);
199
202
  //renderer.addRenderer(RenderType.Content, new VirtualTreeContentRenderer(getValue('parent', this), getValue('locator', this)));
200
203
  this.ensurePageSize();
201
204
  };
@@ -128,3 +128,33 @@ export declare const rowdraging: string;
128
128
  export declare const rowDropped: string;
129
129
  /** @hidden */
130
130
  export declare const autoCol: string;
131
+ /** @hidden */
132
+ export declare const rowDeselecting: string;
133
+ /** @hidden */
134
+ export declare const headerContent: string;
135
+ /** @hidden */
136
+ export declare const movableContent: string;
137
+ /** @hidden */
138
+ export declare const movableHeader: string;
139
+ /** @hidden */
140
+ export declare const frozenContent: string;
141
+ /** @hidden */
142
+ export declare const frozenHeader: string;
143
+ /** @hidden */
144
+ export declare const content: string;
145
+ /** @hidden */
146
+ export declare const table: string;
147
+ /** @hidden */
148
+ export declare const leftRight: string;
149
+ /** @hidden */
150
+ export declare const frozenRight: string;
151
+ /** @hidden */
152
+ export declare const frozenLeft: string;
153
+ /** @hidden */
154
+ export declare const dataColIndex: string;
155
+ /** @hidden */
156
+ export declare const ariaColIndex: string;
157
+ /** @hidden */
158
+ export declare const dataRowIndex: string;
159
+ /** @hidden */
160
+ export declare const ariaRowIndex: string;
@@ -128,3 +128,33 @@ export var rowdraging = 'row-draging';
128
128
  export var rowDropped = 'row-dropped';
129
129
  /** @hidden */
130
130
  export var autoCol = 'auto-col';
131
+ /** @hidden */
132
+ export var rowDeselecting = 'rowDeselecting';
133
+ /** @hidden */
134
+ export var headerContent = 'e-headercontent';
135
+ /** @hidden */
136
+ export var movableContent = 'e-movablecontent';
137
+ /** @hidden */
138
+ export var movableHeader = 'e-movableheader';
139
+ /** @hidden */
140
+ export var frozenContent = 'e-frozencontent';
141
+ /** @hidden */
142
+ export var frozenHeader = 'e-frozenheader';
143
+ /** @hidden */
144
+ export var content = 'e-content';
145
+ /** @hidden */
146
+ export var table = 'e-table';
147
+ /** @hidden */
148
+ export var leftRight = 'Left-Right';
149
+ /** @hidden */
150
+ export var frozenRight = 'frozen-right';
151
+ /** @hidden */
152
+ export var frozenLeft = 'frozen-left';
153
+ /** @hidden */
154
+ export var dataColIndex = 'data-colindex';
155
+ /** @hidden */
156
+ export var ariaColIndex = 'aria-colindex';
157
+ /** @hidden */
158
+ export var dataRowIndex = 'data-rowindex';
159
+ /** @hidden */
160
+ export var ariaRowIndex = 'aria-rowindex';
@@ -18,6 +18,7 @@ export declare class DataManipulation {
18
18
  private hierarchyData;
19
19
  private isSelfReference;
20
20
  private isSortAction;
21
+ private infiniteScrollData;
21
22
  constructor(grid: TreeGrid);
22
23
  /**
23
24
  * @hidden