@syncfusion/ej2-treegrid 33.2.12 → 34.1.30

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 (302) hide show
  1. package/dist/ej2-treegrid.min.js +2 -2
  2. package/dist/ej2-treegrid.umd.min.js +2 -2
  3. package/dist/ej2-treegrid.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-treegrid.es2015.js +133 -40
  5. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  6. package/dist/es6/ej2-treegrid.es5.js +133 -40
  7. package/dist/es6/ej2-treegrid.es5.js.map +1 -1
  8. package/dist/global/ej2-treegrid.min.js +2 -2
  9. package/dist/global/ej2-treegrid.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/helpers/e2e/index.d.ts +1 -0
  12. package/helpers/e2e/index.js +8 -0
  13. package/helpers/e2e/treegridhelper.d.ts +21 -0
  14. package/helpers/e2e/treegridhelper.js +83 -0
  15. package/package.json +5 -5
  16. package/src/treegrid/actions/batch-edit.d.ts +1 -0
  17. package/src/treegrid/actions/batch-edit.js +14 -2
  18. package/src/treegrid/actions/edit.d.ts +12 -0
  19. package/src/treegrid/actions/edit.js +35 -3
  20. package/src/treegrid/actions/pdf-export.js +3 -1
  21. package/src/treegrid/actions/selection.d.ts +7 -0
  22. package/src/treegrid/actions/selection.js +32 -13
  23. package/src/treegrid/base/data.js +5 -11
  24. package/src/treegrid/base/treegrid.d.ts +7 -0
  25. package/src/treegrid/base/treegrid.js +34 -5
  26. package/src/treegrid/renderer/virtual-tree-content-render.js +10 -5
  27. package/styles/bds-lite.css +0 -351
  28. package/styles/bds-lite.scss +1 -15
  29. package/styles/bds.css +0 -355
  30. package/styles/bds.scss +2 -16
  31. package/styles/bootstrap-dark-lite.css +0 -100
  32. package/styles/bootstrap-dark-lite.scss +1 -15
  33. package/styles/bootstrap-dark.css +0 -100
  34. package/styles/bootstrap-dark.scss +2 -16
  35. package/styles/bootstrap-lite.css +0 -100
  36. package/styles/bootstrap-lite.scss +1 -15
  37. package/styles/bootstrap.css +0 -100
  38. package/styles/bootstrap.scss +2 -16
  39. package/styles/bootstrap4-lite.css +0 -144
  40. package/styles/bootstrap4-lite.scss +1 -15
  41. package/styles/bootstrap4.css +0 -144
  42. package/styles/bootstrap4.scss +2 -16
  43. package/styles/bootstrap5-dark-lite.css +0 -139
  44. package/styles/bootstrap5-dark-lite.scss +1 -15
  45. package/styles/bootstrap5-dark.css +0 -139
  46. package/styles/bootstrap5-dark.scss +2 -16
  47. package/styles/bootstrap5-lite.css +0 -139
  48. package/styles/bootstrap5-lite.scss +1 -16
  49. package/styles/bootstrap5.3-lite.css +0 -307
  50. package/styles/bootstrap5.3-lite.scss +1 -16
  51. package/styles/bootstrap5.3.css +0 -391
  52. package/styles/bootstrap5.3.scss +2 -17
  53. package/styles/bootstrap5.css +0 -139
  54. package/styles/bootstrap5.scss +2 -17
  55. package/styles/fabric-dark-lite.css +0 -76
  56. package/styles/fabric-dark-lite.scss +1 -16
  57. package/styles/fabric-dark.css +0 -76
  58. package/styles/fabric-dark.scss +2 -17
  59. package/styles/fabric-lite.css +0 -76
  60. package/styles/fabric-lite.scss +1 -16
  61. package/styles/fabric.css +0 -76
  62. package/styles/fabric.scss +2 -17
  63. package/styles/fluent-dark-lite.css +0 -131
  64. package/styles/fluent-dark-lite.scss +1 -16
  65. package/styles/fluent-dark.css +0 -131
  66. package/styles/fluent-dark.scss +2 -17
  67. package/styles/fluent-lite.css +0 -131
  68. package/styles/fluent-lite.scss +1 -16
  69. package/styles/fluent.css +0 -131
  70. package/styles/fluent.scss +2 -17
  71. package/styles/fluent2-lite.css +0 -548
  72. package/styles/fluent2-lite.scss +1 -16
  73. package/styles/fluent2.css +0 -634
  74. package/styles/fluent2.scss +2 -17
  75. package/styles/highcontrast-light-lite.css +0 -85
  76. package/styles/highcontrast-light-lite.scss +1 -16
  77. package/styles/highcontrast-light.css +0 -85
  78. package/styles/highcontrast-light.scss +2 -17
  79. package/styles/highcontrast-lite.css +0 -85
  80. package/styles/highcontrast-lite.scss +1 -16
  81. package/styles/highcontrast.css +0 -85
  82. package/styles/highcontrast.scss +2 -17
  83. package/styles/material-dark-lite.css +0 -161
  84. package/styles/material-dark-lite.scss +1 -16
  85. package/styles/material-dark.css +0 -161
  86. package/styles/material-dark.scss +2 -17
  87. package/styles/material-lite.css +0 -185
  88. package/styles/material-lite.scss +1 -15
  89. package/styles/material.css +0 -185
  90. package/styles/material.scss +2 -16
  91. package/styles/material3-dark-lite.css +0 -393
  92. package/styles/material3-dark-lite.scss +1 -16
  93. package/styles/material3-dark.css +0 -475
  94. package/styles/material3-dark.scss +2 -17
  95. package/styles/material3-lite.css +0 -397
  96. package/styles/material3-lite.scss +1 -16
  97. package/styles/material3.css +0 -481
  98. package/styles/material3.scss +2 -17
  99. package/styles/tailwind-dark-lite.css +0 -112
  100. package/styles/tailwind-dark-lite.scss +1 -16
  101. package/styles/tailwind-dark.css +0 -112
  102. package/styles/tailwind-dark.scss +2 -17
  103. package/styles/tailwind-lite.css +0 -112
  104. package/styles/tailwind-lite.scss +1 -16
  105. package/styles/tailwind.css +0 -112
  106. package/styles/tailwind.scss +2 -17
  107. package/styles/tailwind3-lite.css +0 -347
  108. package/styles/tailwind3-lite.scss +1 -16
  109. package/styles/tailwind3.css +0 -421
  110. package/styles/tailwind3.scss +2 -17
  111. package/styles/treegrid/_all.scss +2 -2
  112. package/styles/treegrid/_bds-definition.scss +4 -2
  113. package/styles/treegrid/_bigger.scss +1 -1
  114. package/styles/treegrid/_bootstrap-dark-definition.scss +4 -2
  115. package/styles/treegrid/_bootstrap-definition.scss +4 -2
  116. package/styles/treegrid/_bootstrap4-definition.scss +4 -2
  117. package/styles/treegrid/_bootstrap5-dark-definition.scss +4 -2
  118. package/styles/treegrid/_bootstrap5-definition.scss +4 -2
  119. package/styles/treegrid/_bootstrap5.3-definition.scss +4 -2
  120. package/styles/treegrid/_fabric-dark-definition.scss +4 -2
  121. package/styles/treegrid/_fabric-definition.scss +4 -2
  122. package/styles/treegrid/_fluent-dark-definition.scss +4 -2
  123. package/styles/treegrid/_fluent-definition.scss +4 -2
  124. package/styles/treegrid/_fluent2-definition.scss +4 -2
  125. package/styles/treegrid/_fusionnew-definition.scss +2 -0
  126. package/styles/treegrid/_highcontrast-definition.scss +4 -2
  127. package/styles/treegrid/_highcontrast-light-definition.scss +4 -2
  128. package/styles/treegrid/_layout.scss +4 -4
  129. package/styles/treegrid/_material-dark-definition.scss +4 -2
  130. package/styles/treegrid/_material-definition.scss +4 -2
  131. package/styles/treegrid/_material3-dark-definition.scss +4 -2
  132. package/styles/treegrid/_material3-definition.scss +4 -2
  133. package/styles/treegrid/_tailwind-dark-definition.scss +4 -2
  134. package/styles/treegrid/_tailwind-definition.scss +4 -2
  135. package/styles/treegrid/_tailwind3-definition.scss +4 -2
  136. package/styles/treegrid/_variables.scss +2 -0
  137. package/styles/treegrid/bds.css +0 -355
  138. package/styles/treegrid/bds.scss +2 -17
  139. package/styles/treegrid/bootstrap-dark.css +0 -100
  140. package/styles/treegrid/bootstrap-dark.scss +2 -17
  141. package/styles/treegrid/bootstrap.css +0 -100
  142. package/styles/treegrid/bootstrap.scss +2 -17
  143. package/styles/treegrid/bootstrap4.css +0 -144
  144. package/styles/treegrid/bootstrap4.scss +2 -17
  145. package/styles/treegrid/bootstrap5-dark.css +0 -139
  146. package/styles/treegrid/bootstrap5-dark.scss +2 -17
  147. package/styles/treegrid/bootstrap5.3.css +0 -391
  148. package/styles/treegrid/bootstrap5.3.scss +2 -17
  149. package/styles/treegrid/bootstrap5.css +0 -139
  150. package/styles/treegrid/bootstrap5.scss +2 -17
  151. package/styles/treegrid/fabric-dark.css +0 -76
  152. package/styles/treegrid/fabric-dark.scss +2 -17
  153. package/styles/treegrid/fabric.css +0 -76
  154. package/styles/treegrid/fabric.scss +2 -17
  155. package/styles/treegrid/fluent-dark.css +0 -131
  156. package/styles/treegrid/fluent-dark.scss +2 -17
  157. package/styles/treegrid/fluent.css +0 -131
  158. package/styles/treegrid/fluent.scss +2 -17
  159. package/styles/treegrid/fluent2.css +0 -634
  160. package/styles/treegrid/fluent2.scss +2 -17
  161. package/styles/treegrid/highcontrast-light.css +0 -85
  162. package/styles/treegrid/highcontrast-light.scss +2 -17
  163. package/styles/treegrid/highcontrast.css +0 -85
  164. package/styles/treegrid/highcontrast.scss +2 -17
  165. package/styles/treegrid/icons/_bds.scss +1 -1
  166. package/styles/treegrid/icons/_bootstrap-dark.scss +1 -1
  167. package/styles/treegrid/icons/_bootstrap.scss +1 -1
  168. package/styles/treegrid/icons/_bootstrap4.scss +1 -1
  169. package/styles/treegrid/icons/_bootstrap5.3.scss +1 -1
  170. package/styles/treegrid/icons/_bootstrap5.scss +1 -1
  171. package/styles/treegrid/icons/_fabric-dark.scss +1 -1
  172. package/styles/treegrid/icons/_fabric.scss +1 -1
  173. package/styles/treegrid/icons/_fluent.scss +1 -1
  174. package/styles/treegrid/icons/_fluent2.scss +1 -1
  175. package/styles/treegrid/icons/_fusionnew.scss +1 -1
  176. package/styles/treegrid/icons/_highcontrast-light.scss +1 -1
  177. package/styles/treegrid/icons/_highcontrast.scss +1 -1
  178. package/styles/treegrid/icons/_material-dark.scss +1 -1
  179. package/styles/treegrid/icons/_material.scss +1 -1
  180. package/styles/treegrid/icons/_material3.scss +1 -1
  181. package/styles/treegrid/icons/_tailwind-dark.scss +1 -1
  182. package/styles/treegrid/icons/_tailwind.scss +1 -1
  183. package/styles/treegrid/icons/_tailwind3.scss +1 -1
  184. package/styles/treegrid/material-dark.css +0 -161
  185. package/styles/treegrid/material-dark.scss +2 -17
  186. package/styles/treegrid/material.css +0 -185
  187. package/styles/treegrid/material.scss +2 -17
  188. package/styles/treegrid/material3-dark.css +0 -475
  189. package/styles/treegrid/material3-dark.scss +2 -17
  190. package/styles/treegrid/material3.css +0 -481
  191. package/styles/treegrid/material3.scss +2 -17
  192. package/styles/treegrid/tailwind-dark.css +0 -112
  193. package/styles/treegrid/tailwind-dark.scss +2 -17
  194. package/styles/treegrid/tailwind.css +0 -112
  195. package/styles/treegrid/tailwind.scss +2 -17
  196. package/styles/treegrid/tailwind3.css +0 -421
  197. package/styles/treegrid/tailwind3.scss +2 -17
  198. package/styles/treegrid/_all.bds.scss +0 -2
  199. package/styles/treegrid/_all.bootstrap-dark.scss +0 -2
  200. package/styles/treegrid/_all.bootstrap.scss +0 -2
  201. package/styles/treegrid/_all.bootstrap4.scss +0 -2
  202. package/styles/treegrid/_all.bootstrap5-dark.scss +0 -2
  203. package/styles/treegrid/_all.bootstrap5.3.scss +0 -2
  204. package/styles/treegrid/_all.bootstrap5.scss +0 -2
  205. package/styles/treegrid/_all.fabric-dark.scss +0 -2
  206. package/styles/treegrid/_all.fabric.scss +0 -2
  207. package/styles/treegrid/_all.fluent-dark.scss +0 -2
  208. package/styles/treegrid/_all.fluent.scss +0 -2
  209. package/styles/treegrid/_all.fluent2.scss +0 -2
  210. package/styles/treegrid/_all.highcontrast-light.scss +0 -2
  211. package/styles/treegrid/_all.highcontrast.scss +0 -2
  212. package/styles/treegrid/_all.material-dark.scss +0 -2
  213. package/styles/treegrid/_all.material.scss +0 -2
  214. package/styles/treegrid/_all.material3-dark.scss +0 -2
  215. package/styles/treegrid/_all.material3.scss +0 -2
  216. package/styles/treegrid/_all.tailwind-dark.scss +0 -2
  217. package/styles/treegrid/_all.tailwind.scss +0 -2
  218. package/styles/treegrid/_all.tailwind3.scss +0 -2
  219. package/styles/treegrid/_bigger.bds.scss +0 -3
  220. package/styles/treegrid/_bigger.bootstrap-dark.scss +0 -3
  221. package/styles/treegrid/_bigger.bootstrap.scss +0 -3
  222. package/styles/treegrid/_bigger.bootstrap4.scss +0 -3
  223. package/styles/treegrid/_bigger.bootstrap5-dark.scss +0 -3
  224. package/styles/treegrid/_bigger.bootstrap5.3.scss +0 -3
  225. package/styles/treegrid/_bigger.bootstrap5.scss +0 -3
  226. package/styles/treegrid/_bigger.fabric-dark.scss +0 -3
  227. package/styles/treegrid/_bigger.fabric.scss +0 -3
  228. package/styles/treegrid/_bigger.fluent-dark.scss +0 -3
  229. package/styles/treegrid/_bigger.fluent.scss +0 -3
  230. package/styles/treegrid/_bigger.fluent2.scss +0 -3
  231. package/styles/treegrid/_bigger.highcontrast-light.scss +0 -3
  232. package/styles/treegrid/_bigger.highcontrast.scss +0 -3
  233. package/styles/treegrid/_bigger.material-dark.scss +0 -3
  234. package/styles/treegrid/_bigger.material.scss +0 -3
  235. package/styles/treegrid/_bigger.material3-dark.scss +0 -3
  236. package/styles/treegrid/_bigger.material3.scss +0 -3
  237. package/styles/treegrid/_bigger.tailwind-dark.scss +0 -3
  238. package/styles/treegrid/_bigger.tailwind.scss +0 -3
  239. package/styles/treegrid/_bigger.tailwind3.scss +0 -3
  240. package/styles/treegrid/_layout.bds.scss +0 -4
  241. package/styles/treegrid/_layout.bootstrap-dark.scss +0 -4
  242. package/styles/treegrid/_layout.bootstrap.scss +0 -4
  243. package/styles/treegrid/_layout.bootstrap4.scss +0 -4
  244. package/styles/treegrid/_layout.bootstrap5-dark.scss +0 -4
  245. package/styles/treegrid/_layout.bootstrap5.3.scss +0 -4
  246. package/styles/treegrid/_layout.bootstrap5.scss +0 -4
  247. package/styles/treegrid/_layout.fabric-dark.scss +0 -4
  248. package/styles/treegrid/_layout.fabric.scss +0 -4
  249. package/styles/treegrid/_layout.fluent-dark.scss +0 -4
  250. package/styles/treegrid/_layout.fluent.scss +0 -4
  251. package/styles/treegrid/_layout.fluent2.scss +0 -4
  252. package/styles/treegrid/_layout.highcontrast-light.scss +0 -4
  253. package/styles/treegrid/_layout.highcontrast.scss +0 -4
  254. package/styles/treegrid/_layout.material-dark.scss +0 -4
  255. package/styles/treegrid/_layout.material.scss +0 -4
  256. package/styles/treegrid/_layout.material3-dark.scss +0 -4
  257. package/styles/treegrid/_layout.material3.scss +0 -4
  258. package/styles/treegrid/_layout.tailwind-dark.scss +0 -4
  259. package/styles/treegrid/_layout.tailwind.scss +0 -4
  260. package/styles/treegrid/_layout.tailwind3.scss +0 -4
  261. package/styles/treegrid/_theme-variables.bds.scss +0 -1
  262. package/styles/treegrid/_theme-variables.bootstrap-dark.scss +0 -1
  263. package/styles/treegrid/_theme-variables.bootstrap.scss +0 -1
  264. package/styles/treegrid/_theme-variables.bootstrap4.scss +0 -1
  265. package/styles/treegrid/_theme-variables.bootstrap5-dark.scss +0 -1
  266. package/styles/treegrid/_theme-variables.bootstrap5.3.scss +0 -1
  267. package/styles/treegrid/_theme-variables.bootstrap5.scss +0 -1
  268. package/styles/treegrid/_theme-variables.fabric-dark.scss +0 -1
  269. package/styles/treegrid/_theme-variables.fabric.scss +0 -1
  270. package/styles/treegrid/_theme-variables.fluent-dark.scss +0 -1
  271. package/styles/treegrid/_theme-variables.fluent.scss +0 -1
  272. package/styles/treegrid/_theme-variables.fluent2.scss +0 -1
  273. package/styles/treegrid/_theme-variables.highcontrast-light.scss +0 -1
  274. package/styles/treegrid/_theme-variables.highcontrast.scss +0 -1
  275. package/styles/treegrid/_theme-variables.material-dark.scss +0 -1
  276. package/styles/treegrid/_theme-variables.material.scss +0 -1
  277. package/styles/treegrid/_theme-variables.material3-dark.scss +0 -1
  278. package/styles/treegrid/_theme-variables.material3.scss +0 -1
  279. package/styles/treegrid/_theme-variables.tailwind-dark.scss +0 -1
  280. package/styles/treegrid/_theme-variables.tailwind.scss +0 -1
  281. package/styles/treegrid/_theme-variables.tailwind3.scss +0 -1
  282. package/styles/treegrid/_theme.bds.scss +0 -1
  283. package/styles/treegrid/_theme.bootstrap-dark.scss +0 -1
  284. package/styles/treegrid/_theme.bootstrap.scss +0 -1
  285. package/styles/treegrid/_theme.bootstrap4.scss +0 -1
  286. package/styles/treegrid/_theme.bootstrap5-dark.scss +0 -1
  287. package/styles/treegrid/_theme.bootstrap5.3.scss +0 -1
  288. package/styles/treegrid/_theme.bootstrap5.scss +0 -1
  289. package/styles/treegrid/_theme.fabric-dark.scss +0 -1
  290. package/styles/treegrid/_theme.fabric.scss +0 -1
  291. package/styles/treegrid/_theme.fluent-dark.scss +0 -1
  292. package/styles/treegrid/_theme.fluent.scss +0 -1
  293. package/styles/treegrid/_theme.fluent2.scss +0 -1
  294. package/styles/treegrid/_theme.highcontrast-light.scss +0 -1
  295. package/styles/treegrid/_theme.highcontrast.scss +0 -1
  296. package/styles/treegrid/_theme.material-dark.scss +0 -1
  297. package/styles/treegrid/_theme.material.scss +0 -1
  298. package/styles/treegrid/_theme.material3-dark.scss +0 -1
  299. package/styles/treegrid/_theme.material3.scss +0 -1
  300. package/styles/treegrid/_theme.tailwind-dark.scss +0 -1
  301. package/styles/treegrid/_theme.tailwind.scss +0 -1
  302. package/styles/treegrid/_theme.tailwind3.scss +0 -1
@@ -1086,6 +1086,20 @@ var Selection = /** @__PURE__ @class */ (function () {
1086
1086
  this.resetSelectionCaches();
1087
1087
  this.removeEventListener();
1088
1088
  };
1089
+ /**
1090
+ * Gets the actual record from the data model's uniqueIDCollection.
1091
+ *
1092
+ * @param {ITreeData} record - The record (may be stale reference).
1093
+ * @returns {ITreeData} The actual record from the data model.
1094
+ */
1095
+ Selection.prototype.getRecordFromUidCollection = function (record) {
1096
+ if (!record) {
1097
+ return record;
1098
+ }
1099
+ var uidMap = this.parent.uniqueIDCollection;
1100
+ var uid = record.uniqueID;
1101
+ return (uidMap && uid != null) ? (uidMap[String(uid)] ? uidMap[String(uid)] : record) : record;
1102
+ };
1089
1103
  /**
1090
1104
  * Handles checkbox click events from the DOM and dispatches selection logic.
1091
1105
  *
@@ -1112,8 +1126,7 @@ var Selection = /** @__PURE__ @class */ (function () {
1112
1126
  }
1113
1127
  else if (checkWrap && checkWrap.querySelectorAll('.e-treeselectall').length > 0 && this.parent.autoCheckHierarchy) {
1114
1128
  var frame = checkWrap.querySelector('.e-frame');
1115
- var currentStateIsUncheck = !frame.classList.contains('e-check') && !frame.classList.contains('e-stop');
1116
- var targetState = currentStateIsUncheck; // If currently uncheck, target state is to check all.
1129
+ var targetState = frame.classList.contains('e-uncheck') || frame.classList.contains('e-stop');
1117
1130
  this.headerSelection(targetState);
1118
1131
  checkBox = checkWrap.querySelector('input[type="checkbox"]');
1119
1132
  this.triggerChkChangeEvent(checkBox, targetState, target.closest('tr'));
@@ -1280,6 +1293,7 @@ var Selection = /** @__PURE__ @class */ (function () {
1280
1293
  var flatRec = getParentData(this.parent, viewRec.uniqueID);
1281
1294
  var nextState = (flatRec.checkboxState === 'check') ? 'uncheck' : 'check';
1282
1295
  flatRec.checkboxState = nextState;
1296
+ viewRec.checkboxState = nextState;
1283
1297
  this.traverSelection(flatRec, nextState, false);
1284
1298
  }
1285
1299
  };
@@ -1331,10 +1345,11 @@ var Selection = /** @__PURE__ @class */ (function () {
1331
1345
  if (child.hasChildRecords) {
1332
1346
  this.traverSelection(child, checkboxState, true);
1333
1347
  }
1334
- if (child.checkboxState === 'check') {
1348
+ var updatedChild = this.getRecordFromUidCollection(child);
1349
+ if (updatedChild.checkboxState === 'check') {
1335
1350
  checkedCount++;
1336
1351
  }
1337
- else if (child.checkboxState === 'indeterminate') {
1352
+ else if (updatedChild.checkboxState === 'indeterminate') {
1338
1353
  indeterminateCount++;
1339
1354
  }
1340
1355
  }
@@ -1458,11 +1473,12 @@ var Selection = /** @__PURE__ @class */ (function () {
1458
1473
  if (!child || child.isSummaryRow) {
1459
1474
  continue;
1460
1475
  }
1476
+ var actualChild = this.getRecordFromUidCollection(child);
1461
1477
  summary.total++;
1462
- if (child.checkboxState === 'check') {
1478
+ if (actualChild.checkboxState === 'check') {
1463
1479
  summary.checked++;
1464
1480
  }
1465
- else if (child.checkboxState === 'indeterminate') {
1481
+ else if (actualChild.checkboxState === 'indeterminate') {
1466
1482
  summary.indeterminate++;
1467
1483
  }
1468
1484
  }
@@ -1590,12 +1606,13 @@ var Selection = /** @__PURE__ @class */ (function () {
1590
1606
  if (!record) {
1591
1607
  continue;
1592
1608
  }
1593
- var previousState = record.checkboxState;
1609
+ var actualRecord = this.getRecordFromUidCollection(record);
1610
+ var previousState = actualRecord.checkboxState;
1594
1611
  if (previousState === targetState) {
1595
1612
  continue;
1596
1613
  }
1597
- record.checkboxState = targetState;
1598
- this.updateSelectedItems(record, targetState, true);
1614
+ actualRecord.checkboxState = targetState;
1615
+ this.updateSelectedItems(actualRecord, targetState, true);
1599
1616
  }
1600
1617
  };
1601
1618
  /**
@@ -1623,9 +1640,10 @@ var Selection = /** @__PURE__ @class */ (function () {
1623
1640
  if (item.hasChildRecords && isFilterOrSearch && item.level === 0 && this.parent.autoCheckHierarchy) {
1624
1641
  this.updateParentSelection(item);
1625
1642
  }
1626
- if (item.uniqueID && item.checkboxState === 'check') {
1627
- newSelectedItems.push(item);
1628
- newSelectedUidMap.set(item.uniqueID, true);
1643
+ var actualItem = this.getRecordFromUidCollection(item);
1644
+ if (actualItem.uniqueID && actualItem.checkboxState === 'check') {
1645
+ newSelectedItems.push(actualItem);
1646
+ newSelectedUidMap.set(actualItem.uniqueID, true);
1629
1647
  }
1630
1648
  }
1631
1649
  if (!isFilterOrSearch) {
@@ -1800,7 +1818,8 @@ var Selection = /** @__PURE__ @class */ (function () {
1800
1818
  var checkedCountForHeaderLogic = 0;
1801
1819
  for (var _i = 0, recordsForHeaderLogic_1 = recordsForHeaderLogic; _i < recordsForHeaderLogic_1.length; _i++) {
1802
1820
  var record = recordsForHeaderLogic_1[_i];
1803
- if (record && !record.isSummaryRow && record.checkboxState === 'check') {
1821
+ var actualRecord = this.getRecordFromUidCollection(record);
1822
+ if (actualRecord && !actualRecord.isSummaryRow && actualRecord.checkboxState === 'check') {
1804
1823
  checkedCountForHeaderLogic++;
1805
1824
  }
1806
1825
  }
@@ -2631,12 +2650,10 @@ var DataManipulation = /** @__PURE__ @class */ (function () {
2631
2650
  if (this.parent.parentIdMapping) {
2632
2651
  this.parent.query = isNullOrUndefined(this.parent.query) ?
2633
2652
  new Query() : this.parent.query;
2634
- if (this.parent.parentIdMapping) {
2635
- var filterKey = this.parent.query.params.filter(function (param) { return param.key === 'IdMapping'; });
2636
- if (this.parent.initialRender && !filterKey.length) {
2637
- this.parent.query.where(this.parent.parentIdMapping, 'equal', null);
2638
- this.parent.query.addParams('IdMapping', this.parent.idMapping);
2639
- }
2653
+ var filterKey = this.parent.query.params.filter(function (param) { return param.key === 'IdMapping'; });
2654
+ if (this.parent.initialRender && !filterKey.length) {
2655
+ this.parent.query.where(this.parent.parentIdMapping, 'equal', null);
2656
+ this.parent.query.addParams('IdMapping', this.parent.idMapping);
2640
2657
  }
2641
2658
  if (!this.parent.hasChildMapping) {
2642
2659
  var qry = this.parent.query.clone();
@@ -3202,9 +3219,6 @@ var DataManipulation = /** @__PURE__ @class */ (function () {
3202
3219
  ? currentData[this.parent.expandStateMapping] : true;
3203
3220
  }
3204
3221
  }
3205
- if (!Object.prototype.hasOwnProperty.call(currentData, 'index')) {
3206
- currentData.index = currentData.hasChildRecords ? this.storedIndex : this.storedIndex;
3207
- }
3208
3222
  if (this.isSelfReference && isNullOrUndefined(currentData[this.parent.parentIdMapping])) {
3209
3223
  this.parent.parentData.push(currentData);
3210
3224
  }
@@ -3391,8 +3405,7 @@ var DataManipulation = /** @__PURE__ @class */ (function () {
3391
3405
  }
3392
3406
  var isPdfExport = 'isPdfExport';
3393
3407
  var isCollapsedStatePersist = 'isCollapsedStatePersist';
3394
- if ((isPrinting === true || (args["" + isPdfExport] && (isNullOrUndefined(args["" + isCollapsedStatePersist])
3395
- || args["" + isCollapsedStatePersist]))) && this.parent.printMode === 'AllPages') {
3408
+ if ((isPrinting === true || (args["" + isPdfExport] && args["" + isCollapsedStatePersist] === true)) && this.parent.printMode === 'AllPages') {
3396
3409
  var actualResults = [];
3397
3410
  for (var i = 0; i < results.length; i++) {
3398
3411
  var expandStatus = getExpandStatus(this.parent, results[parseInt(i.toString(), 10)], this.parent.parentData);
@@ -5747,8 +5760,13 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
5747
5760
  this.grid.dataSource = { result: data, count: datacount };
5748
5761
  }
5749
5762
  else {
5763
+ var cacheAdaptor = null;
5764
+ if ((this.dataSource instanceof DataManager) && this.dataSource["" + dataSource] &&
5765
+ this.dataSource["" + dataSource].enableCaching) {
5766
+ cacheAdaptor = this.dataSource["" + adaptor].cacheAdaptor;
5767
+ }
5750
5768
  this.grid.dataSource = !(this.dataSource instanceof DataManager) ?
5751
- this.flatData : new DataManager(this.dataSource.dataSource, this.dataSource.defaultQuery, this.dataSource.adaptor, this.hasPreAndPostMiddleware(this.dataSource) ? this.dataSource : undefined);
5769
+ this.flatData : new DataManager(this.dataSource.dataSource, this.dataSource.defaultQuery, cacheAdaptor ? cacheAdaptor : this.dataSource.adaptor, this.hasPreAndPostMiddleware(this.dataSource) ? this.dataSource : undefined);
5752
5770
  }
5753
5771
  if (this.dataSource instanceof DataManager && (this.dataSource.dataSource.offline || this.dataSource.ready)) {
5754
5772
  this.grid.dataSource["" + dataSource].json = extendArray(this.dataSource["" + dataSource].json);
@@ -6148,6 +6166,14 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
6148
6166
  gridColumn.textAlign = 'Right';
6149
6167
  }
6150
6168
  }
6169
+ else if (!isNullOrUndefined(this.columnModel[this.treeColumnIndex]) && !this.enableRtl) {
6170
+ if (isNullOrUndefined(this.treeColumnField)) {
6171
+ this.treeColumnField = gridColumn.field;
6172
+ }
6173
+ if (isNullOrUndefined(this.treeColumnTextAlign) && this.treeColumnField === this.columnModel[this.treeColumnIndex].field) {
6174
+ this.treeColumnTextAlign = this.columnModel[this.treeColumnIndex].textAlign;
6175
+ }
6176
+ }
6151
6177
  }
6152
6178
  return gridColumnCollection;
6153
6179
  };
@@ -6169,6 +6195,7 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
6169
6195
  TreeGrid.prototype.onPropertyChanged = function (newProp) {
6170
6196
  var properties = Object.keys(newProp);
6171
6197
  var requireRefresh = false;
6198
+ var refreshComponent = false;
6172
6199
  for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {
6173
6200
  var prop = properties_1[_i];
6174
6201
  switch (prop) {
@@ -6312,6 +6339,8 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
6312
6339
  this.TreeGridLocale();
6313
6340
  this.grid.toolbar = this.getGridToolbar();
6314
6341
  this.grid.contextMenuItems = this.getContextMenu();
6342
+ requireRefresh = true;
6343
+ refreshComponent = true;
6315
6344
  break;
6316
6345
  case 'selectedRowIndex':
6317
6346
  this.grid.selectedRowIndex = this.selectedRowIndex;
@@ -6341,10 +6370,8 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
6341
6370
  this.grid.allowPdfExport = this.allowPdfExport;
6342
6371
  break;
6343
6372
  case 'enableRtl':
6344
- if (!isNullOrUndefined(this.treeColumnField)) {
6345
- this.updateTreeColumnTextAlign();
6346
- }
6347
6373
  this.grid.enableRtl = this.enableRtl;
6374
+ this.updateColumnModel();
6348
6375
  break;
6349
6376
  case 'allowReordering':
6350
6377
  this.grid.allowReordering = this.allowReordering;
@@ -6397,7 +6424,7 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
6397
6424
  }
6398
6425
  }
6399
6426
  if (requireRefresh) {
6400
- if (this.isFrozenGrid()) {
6427
+ if (refreshComponent || this.isFrozenGrid()) {
6401
6428
  this.refreshLayout();
6402
6429
  }
6403
6430
  else {
@@ -7212,6 +7239,12 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
7212
7239
  if (!this.stackedHeader && !isNullOrUndefined(this.columns)) {
7213
7240
  merge(this.columns, this.columnModel);
7214
7241
  }
7242
+ if (!this.enableRtl && !isNullOrUndefined(this.columnModel[this.treeColumnIndex])
7243
+ && !isNullOrUndefined(this.treeColumnField)) {
7244
+ if (this.columnModel[this.treeColumnIndex].field === this.treeColumnField) {
7245
+ this.columnModel[this.treeColumnIndex].textAlign = this.treeColumnTextAlign;
7246
+ }
7247
+ }
7215
7248
  this["" + deepMerge] = undefined; // Workaround for blazor updateModel
7216
7249
  return this.columnModel;
7217
7250
  };
@@ -9103,6 +9136,15 @@ var TreeGrid = /** @__PURE__ @class */ (function (_super) {
9103
9136
  return 0;
9104
9137
  }
9105
9138
  };
9139
+ /**
9140
+ * Gets the row index based on the given primary key value or row data.
9141
+ *
9142
+ * @param {string | number | object} value - The primary key value or row data.
9143
+ * @returns {number} Returns the row index.
9144
+ */
9145
+ TreeGrid.prototype.getRowIndexByPrimaryKey = function (value) {
9146
+ return this.grid.getRowIndexByPrimaryKey(value);
9147
+ };
9106
9148
  var TreeGrid_1;
9107
9149
  __decorate$c([
9108
9150
  Property(0)
@@ -12339,7 +12381,9 @@ var PdfExport = /** @__PURE__ @class */ (function () {
12339
12381
  }
12340
12382
  prop = isNullOrUndefined(prop) ? {} : prop;
12341
12383
  prop.dataSource = new DataManager({ json: dtSrc });
12342
- prop.query = args['query'];
12384
+ if (this.parent.aggregates.length > 0) {
12385
+ prop.query = args['query'];
12386
+ }
12343
12387
  return prop;
12344
12388
  };
12345
12389
  /**
@@ -13584,7 +13628,8 @@ var BatchEdit = /** @__PURE__ @class */ (function () {
13584
13628
  if (this.parent.editModule['isAddedRowByMethod'] && !isNullOrUndefined(this.parent.editModule['addRowIndex']) &&
13585
13629
  !this.parent.editModule['isAddedRowByContextMenu'] && !this.parent.editModule.isAddedMultipleRowsByMethod) {
13586
13630
  var newlyAddedRecords = this.parent.getBatchChanges()['addedRecords'];
13587
- var index = parseInt(this.parent.getContentTable().getElementsByClassName('e-insertedrow')[newlyAddedRecords.length - 1].getAttribute('aria-rowindex'), 10) - 1;
13631
+ var index = this.getInsertedRowIndex(newlyAddedRecords.length - 1);
13632
+ this.batchIndex = index;
13588
13633
  this.batchRecords.splice(index, 0, newlyAddedRecords[newlyAddedRecords.length - 1]);
13589
13634
  }
13590
13635
  }
@@ -13760,6 +13805,17 @@ var BatchEdit = /** @__PURE__ @class */ (function () {
13760
13805
  this.batchDeletedRecords = [];
13761
13806
  this.parent.grid.renderModule.refresh();
13762
13807
  };
13808
+ BatchEdit.prototype.getInsertedRowIndex = function (elementIndex) {
13809
+ var header = this.parent.getHeaderTable().getElementsByClassName('e-insertedrow')[parseInt(elementIndex.toString(), 10)];
13810
+ var content = this.parent.getContentTable().getElementsByClassName('e-insertedrow')[parseInt(elementIndex.toString(), 10)];
13811
+ if (this.parent.frozenRows && header) {
13812
+ return parseInt(header.getAttribute('aria-rowindex'), 10) - 1;
13813
+ }
13814
+ if (content) {
13815
+ return parseInt(content.getAttribute('aria-rowindex'), 10) - 1;
13816
+ }
13817
+ return -1;
13818
+ };
13763
13819
  BatchEdit.prototype.batchSave = function (args) {
13764
13820
  if (this.parent.editSettings.mode === 'Batch') {
13765
13821
  var i = void 0;
@@ -13788,7 +13844,7 @@ var BatchEdit = /** @__PURE__ @class */ (function () {
13788
13844
  if (this.parent.editModule['isAddedRowByMethod'] && addRecords.length && !isNullOrUndefined(this.parent.editModule['addRowIndex']) && !this.parent.editModule['isAddedRowByContextMenu']) {
13789
13845
  addRecords.reverse();
13790
13846
  for (var i_1 = 0; i_1 < addRecords.length; i_1++) {
13791
- var index_1 = parseInt(this.parent.getContentTable().getElementsByClassName('e-insertedrow')[parseInt(i_1.toString(), 10)].getAttribute('aria-rowindex'), 10) - 1;
13847
+ var index_1 = this.getInsertedRowIndex(parseInt(i_1.toString(), 10));
13792
13848
  data.splice(index_1, 0, addRecords[parseInt(i_1.toString(), 10)]);
13793
13849
  }
13794
13850
  }
@@ -14031,6 +14087,7 @@ var Edit = /** @__PURE__ @class */ (function () {
14031
14087
  this.parent.grid.on(beforeBatchCancel, this.beforeBatchCancel, this);
14032
14088
  this.parent.grid.on('reset-edit-props', this.resetIsOnBatch, this);
14033
14089
  this.parent.grid.on('get-row-position', this.getRowPosition, this);
14090
+ this.parent.grid.on('last-row-validation', this.lastRowValidation, this);
14034
14091
  };
14035
14092
  Edit.prototype.gridDblClick = function (e) {
14036
14093
  this.doubleClickTarget = e.target;
@@ -14044,6 +14101,7 @@ var Edit = /** @__PURE__ @class */ (function () {
14044
14101
  /* eslint-disable-next-line */
14045
14102
  this.parent.grid.getDataRows()[rowIndex].dataset.uid = this.parent.grid.contentModule.getRows()[rowIndex].uid;
14046
14103
  }
14104
+ this.doubleClickTarget = null;
14047
14105
  }
14048
14106
  };
14049
14107
  Edit.prototype.getRowPosition = function (addArgs) {
@@ -14089,6 +14147,7 @@ var Edit = /** @__PURE__ @class */ (function () {
14089
14147
  this.parent.grid.off('dblclick', this.gridDblClick);
14090
14148
  this.parent.grid.off('reset-edit-props', this.resetIsOnBatch);
14091
14149
  this.parent.grid.off('get-row-position', this.getRowPosition);
14150
+ this.parent.grid.off('last-row-validation', this.lastRowValidation);
14092
14151
  //this.parent.grid.off('click', this.gridSingleClick);
14093
14152
  };
14094
14153
  /**
@@ -14237,7 +14296,7 @@ var Edit = /** @__PURE__ @class */ (function () {
14237
14296
  this.parent.grid.isEdit = false;
14238
14297
  };
14239
14298
  Edit.prototype.resetIsOnBatch = function () {
14240
- if (this.parent.enableVirtualization && this.parent.editSettings.mode === 'Cell') {
14299
+ if (this.parent.enableVirtualization && this.parent.editSettings.mode === 'Cell' && !this.parent['isGantt']) {
14241
14300
  this.isOnBatch = false;
14242
14301
  this.updateGridEditMode('Normal');
14243
14302
  }
@@ -14670,7 +14729,9 @@ var Edit = /** @__PURE__ @class */ (function () {
14670
14729
  seletedRow: 0
14671
14730
  };
14672
14731
  this.beginAddEdit(args);
14673
- this.batchEditModule['batchAddRowRecord'].push(this.batchEditModule['addRowRecord']);
14732
+ if (this.batchEditModule['addRowRecord']) {
14733
+ this.batchEditModule['batchAddRowRecord'].push(this.batchEditModule['addRowRecord']);
14734
+ }
14674
14735
  this.batchEditModule['batchAddedRecords'].push(args['data']);
14675
14736
  }
14676
14737
  else if (this.parent.editSettings.mode === 'Batch' && this.isAddedMultipleRowsByMethod && (this.parent.editSettings.newRowPosition === 'Above' || this.parent.editSettings.newRowPosition === 'Below')) {
@@ -14690,7 +14751,9 @@ var Edit = /** @__PURE__ @class */ (function () {
14690
14751
  seletedRow: 0
14691
14752
  };
14692
14753
  this.beginAddEdit(args);
14693
- this.batchEditModule['batchAddRowRecord'].push(this.batchEditModule['addRowRecord']);
14754
+ if (this.batchEditModule['addRowRecord']) {
14755
+ this.batchEditModule['batchAddRowRecord'].push(this.batchEditModule['addRowRecord']);
14756
+ }
14694
14757
  this.batchEditModule['batchAddedRecords'].push(args['data']);
14695
14758
  }
14696
14759
  }
@@ -15107,6 +15170,31 @@ var Edit = /** @__PURE__ @class */ (function () {
15107
15170
  }
15108
15171
  this.parent.grid.editModule.closeEdit();
15109
15172
  };
15173
+ /**
15174
+ * Handles TreeGrid-specific validation for tooltip positioning on last row.
15175
+ *
15176
+ * @param {Object} args - Validation flags
15177
+ * @param {boolean} args.isBeginEdit - Whether editing has begun
15178
+ * @param {boolean} args.isAddedRow - Whether the row is newly added
15179
+ * @param {boolean} args.isLastRow - Whether this is the last row
15180
+ * @param {boolean} args.validationPositionResult - Validation position result
15181
+ * @returns {void}
15182
+ * @hidden
15183
+ */
15184
+ Edit.prototype.lastRowValidation = function (args) {
15185
+ if (!this.parent.enableVirtualization) {
15186
+ return;
15187
+ }
15188
+ var isBeginEdit = args.isBeginEdit, isAddedRow = args.isAddedRow, isLastRow = args.isLastRow;
15189
+ var newRowPosition = this.parent.editSettings.newRowPosition;
15190
+ if ((newRowPosition === 'Child' || newRowPosition === 'Below' || newRowPosition === 'Above') &&
15191
+ isAddedRow && isLastRow) {
15192
+ args.validationPositionResult = true;
15193
+ }
15194
+ else if (isBeginEdit && isLastRow) {
15195
+ args.validationPositionResult = true;
15196
+ }
15197
+ };
15110
15198
  return Edit;
15111
15199
  }());
15112
15200
 
@@ -15405,7 +15493,7 @@ var VirtualTreeContentRenderer = /** @__PURE__ @class */ (function (_super) {
15405
15493
  this.startIndex = lastIndex - this.parent.getRows().length;
15406
15494
  this.endIndex = lastIndex;
15407
15495
  }
15408
- else if (this.parent.root.editSettings.newRowPosition !== 'Top' && this.parent.root.editModule.selectedIndex !== -1 || this.parent.root.editModule.selectedIndex !== -1) {
15496
+ else if (this.parent.root.editModule.selectedIndex !== -1) {
15409
15497
  this.startIndex += 1;
15410
15498
  this.endIndex += 1;
15411
15499
  }
@@ -15884,8 +15972,10 @@ var VirtualTreeContentRenderer = /** @__PURE__ @class */ (function (_super) {
15884
15972
  var directVirtualRender = 'directVirtualRender';
15885
15973
  if (!_this.parent["" + directVirtualRender]) { // with this property, columns are rendered without debouncing on horizontal scroll.
15886
15974
  var preventEvent = 'preventEvent';
15887
- if (Browser.isIE && !isWheel && check && !_this["" + preventEvent] && !_this.parent.enableVirtualMaskRow) {
15888
- _this.parent.showSpinner();
15975
+ if (!isWheel && check && !_this["" + preventEvent] && !_this.parent.enableVirtualMaskRow) {
15976
+ if (Browser.isIE) {
15977
+ _this.parent.showSpinner();
15978
+ }
15889
15979
  }
15890
15980
  if (_this.parent.enableVirtualMaskRow && !_this["" + preventEvent]) {
15891
15981
  setTimeout(function () {
@@ -15963,12 +16053,12 @@ var VirtualTreeContentRenderer = /** @__PURE__ @class */ (function (_super) {
15963
16053
  this.parent.root.scrollPosition = scrollArgs.offset;
15964
16054
  }
15965
16055
  var info = scrollArgs.sentinel;
16056
+ var rowHeight = parseInt(this.parent.getRowHeight().toString(), 10);
16057
+ var outBuffer = this.parent.pageSettings.pageSize - Math.ceil(this.parent.pageSettings.pageSize / 2);
15966
16058
  var treeGridParent = null;
15967
16059
  if (this.parent.clipboardModule && this.parent.clipboardModule['treeGridParent']) {
15968
16060
  treeGridParent = this.parent.clipboardModule['treeGridParent'];
15969
16061
  }
15970
- var rowHeight = parseInt(this.parent.getRowHeight().toString(), 10);
15971
- var outBuffer = this.parent.pageSettings.pageSize - Math.ceil(this.parent.pageSettings.pageSize / 2);
15972
16062
  var content;
15973
16063
  if (!isNullOrUndefined(this.parent.contentModule)) {
15974
16064
  content = this.parent.getContent().querySelector('.e-content');
@@ -16235,6 +16325,9 @@ var VirtualTreeContentRenderer = /** @__PURE__ @class */ (function (_super) {
16235
16325
  var focusCell = 'focusCell';
16236
16326
  var restoreAdd = 'restoreAdd';
16237
16327
  var ensureSelectedRowPosition = 'ensureSelectedRowPosition';
16328
+ if (this['pressedKey'] === 'downArrow' || this['pressedKey'] === 'upArrow') {
16329
+ this['activeKey'] = this['pressedKey'];
16330
+ }
16238
16331
  _super.prototype["" + focusCell].call(this, e);
16239
16332
  var isAdd = 'isAdd';
16240
16333
  if (this["" + isAdd] && !this.parent.getContent().querySelector('.e-content').querySelector('.e-addedrow')) {