@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.
- package/dist/ej2-treegrid.min.js +2 -2
- package/dist/ej2-treegrid.umd.min.js +2 -2
- package/dist/ej2-treegrid.umd.min.js.map +1 -1
- package/dist/es6/ej2-treegrid.es2015.js +133 -40
- package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
- package/dist/es6/ej2-treegrid.es5.js +133 -40
- package/dist/es6/ej2-treegrid.es5.js.map +1 -1
- package/dist/global/ej2-treegrid.min.js +2 -2
- package/dist/global/ej2-treegrid.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/helpers/e2e/index.d.ts +1 -0
- package/helpers/e2e/index.js +8 -0
- package/helpers/e2e/treegridhelper.d.ts +21 -0
- package/helpers/e2e/treegridhelper.js +83 -0
- package/package.json +5 -5
- package/src/treegrid/actions/batch-edit.d.ts +1 -0
- package/src/treegrid/actions/batch-edit.js +14 -2
- package/src/treegrid/actions/edit.d.ts +12 -0
- package/src/treegrid/actions/edit.js +35 -3
- package/src/treegrid/actions/pdf-export.js +3 -1
- package/src/treegrid/actions/selection.d.ts +7 -0
- package/src/treegrid/actions/selection.js +32 -13
- package/src/treegrid/base/data.js +5 -11
- package/src/treegrid/base/treegrid.d.ts +7 -0
- package/src/treegrid/base/treegrid.js +34 -5
- package/src/treegrid/renderer/virtual-tree-content-render.js +10 -5
- package/styles/bds-lite.css +0 -351
- package/styles/bds-lite.scss +1 -15
- package/styles/bds.css +0 -355
- package/styles/bds.scss +2 -16
- package/styles/bootstrap-dark-lite.css +0 -100
- package/styles/bootstrap-dark-lite.scss +1 -15
- package/styles/bootstrap-dark.css +0 -100
- package/styles/bootstrap-dark.scss +2 -16
- package/styles/bootstrap-lite.css +0 -100
- package/styles/bootstrap-lite.scss +1 -15
- package/styles/bootstrap.css +0 -100
- package/styles/bootstrap.scss +2 -16
- package/styles/bootstrap4-lite.css +0 -144
- package/styles/bootstrap4-lite.scss +1 -15
- package/styles/bootstrap4.css +0 -144
- package/styles/bootstrap4.scss +2 -16
- package/styles/bootstrap5-dark-lite.css +0 -139
- package/styles/bootstrap5-dark-lite.scss +1 -15
- package/styles/bootstrap5-dark.css +0 -139
- package/styles/bootstrap5-dark.scss +2 -16
- package/styles/bootstrap5-lite.css +0 -139
- package/styles/bootstrap5-lite.scss +1 -16
- package/styles/bootstrap5.3-lite.css +0 -307
- package/styles/bootstrap5.3-lite.scss +1 -16
- package/styles/bootstrap5.3.css +0 -391
- package/styles/bootstrap5.3.scss +2 -17
- package/styles/bootstrap5.css +0 -139
- package/styles/bootstrap5.scss +2 -17
- package/styles/fabric-dark-lite.css +0 -76
- package/styles/fabric-dark-lite.scss +1 -16
- package/styles/fabric-dark.css +0 -76
- package/styles/fabric-dark.scss +2 -17
- package/styles/fabric-lite.css +0 -76
- package/styles/fabric-lite.scss +1 -16
- package/styles/fabric.css +0 -76
- package/styles/fabric.scss +2 -17
- package/styles/fluent-dark-lite.css +0 -131
- package/styles/fluent-dark-lite.scss +1 -16
- package/styles/fluent-dark.css +0 -131
- package/styles/fluent-dark.scss +2 -17
- package/styles/fluent-lite.css +0 -131
- package/styles/fluent-lite.scss +1 -16
- package/styles/fluent.css +0 -131
- package/styles/fluent.scss +2 -17
- package/styles/fluent2-lite.css +0 -548
- package/styles/fluent2-lite.scss +1 -16
- package/styles/fluent2.css +0 -634
- package/styles/fluent2.scss +2 -17
- package/styles/highcontrast-light-lite.css +0 -85
- package/styles/highcontrast-light-lite.scss +1 -16
- package/styles/highcontrast-light.css +0 -85
- package/styles/highcontrast-light.scss +2 -17
- package/styles/highcontrast-lite.css +0 -85
- package/styles/highcontrast-lite.scss +1 -16
- package/styles/highcontrast.css +0 -85
- package/styles/highcontrast.scss +2 -17
- package/styles/material-dark-lite.css +0 -161
- package/styles/material-dark-lite.scss +1 -16
- package/styles/material-dark.css +0 -161
- package/styles/material-dark.scss +2 -17
- package/styles/material-lite.css +0 -185
- package/styles/material-lite.scss +1 -15
- package/styles/material.css +0 -185
- package/styles/material.scss +2 -16
- package/styles/material3-dark-lite.css +0 -393
- package/styles/material3-dark-lite.scss +1 -16
- package/styles/material3-dark.css +0 -475
- package/styles/material3-dark.scss +2 -17
- package/styles/material3-lite.css +0 -397
- package/styles/material3-lite.scss +1 -16
- package/styles/material3.css +0 -481
- package/styles/material3.scss +2 -17
- package/styles/tailwind-dark-lite.css +0 -112
- package/styles/tailwind-dark-lite.scss +1 -16
- package/styles/tailwind-dark.css +0 -112
- package/styles/tailwind-dark.scss +2 -17
- package/styles/tailwind-lite.css +0 -112
- package/styles/tailwind-lite.scss +1 -16
- package/styles/tailwind.css +0 -112
- package/styles/tailwind.scss +2 -17
- package/styles/tailwind3-lite.css +0 -347
- package/styles/tailwind3-lite.scss +1 -16
- package/styles/tailwind3.css +0 -421
- package/styles/tailwind3.scss +2 -17
- package/styles/treegrid/_all.scss +2 -2
- package/styles/treegrid/_bds-definition.scss +4 -2
- package/styles/treegrid/_bigger.scss +1 -1
- package/styles/treegrid/_bootstrap-dark-definition.scss +4 -2
- package/styles/treegrid/_bootstrap-definition.scss +4 -2
- package/styles/treegrid/_bootstrap4-definition.scss +4 -2
- package/styles/treegrid/_bootstrap5-dark-definition.scss +4 -2
- package/styles/treegrid/_bootstrap5-definition.scss +4 -2
- package/styles/treegrid/_bootstrap5.3-definition.scss +4 -2
- package/styles/treegrid/_fabric-dark-definition.scss +4 -2
- package/styles/treegrid/_fabric-definition.scss +4 -2
- package/styles/treegrid/_fluent-dark-definition.scss +4 -2
- package/styles/treegrid/_fluent-definition.scss +4 -2
- package/styles/treegrid/_fluent2-definition.scss +4 -2
- package/styles/treegrid/_fusionnew-definition.scss +2 -0
- package/styles/treegrid/_highcontrast-definition.scss +4 -2
- package/styles/treegrid/_highcontrast-light-definition.scss +4 -2
- package/styles/treegrid/_layout.scss +4 -4
- package/styles/treegrid/_material-dark-definition.scss +4 -2
- package/styles/treegrid/_material-definition.scss +4 -2
- package/styles/treegrid/_material3-dark-definition.scss +4 -2
- package/styles/treegrid/_material3-definition.scss +4 -2
- package/styles/treegrid/_tailwind-dark-definition.scss +4 -2
- package/styles/treegrid/_tailwind-definition.scss +4 -2
- package/styles/treegrid/_tailwind3-definition.scss +4 -2
- package/styles/treegrid/_variables.scss +2 -0
- package/styles/treegrid/bds.css +0 -355
- package/styles/treegrid/bds.scss +2 -17
- package/styles/treegrid/bootstrap-dark.css +0 -100
- package/styles/treegrid/bootstrap-dark.scss +2 -17
- package/styles/treegrid/bootstrap.css +0 -100
- package/styles/treegrid/bootstrap.scss +2 -17
- package/styles/treegrid/bootstrap4.css +0 -144
- package/styles/treegrid/bootstrap4.scss +2 -17
- package/styles/treegrid/bootstrap5-dark.css +0 -139
- package/styles/treegrid/bootstrap5-dark.scss +2 -17
- package/styles/treegrid/bootstrap5.3.css +0 -391
- package/styles/treegrid/bootstrap5.3.scss +2 -17
- package/styles/treegrid/bootstrap5.css +0 -139
- package/styles/treegrid/bootstrap5.scss +2 -17
- package/styles/treegrid/fabric-dark.css +0 -76
- package/styles/treegrid/fabric-dark.scss +2 -17
- package/styles/treegrid/fabric.css +0 -76
- package/styles/treegrid/fabric.scss +2 -17
- package/styles/treegrid/fluent-dark.css +0 -131
- package/styles/treegrid/fluent-dark.scss +2 -17
- package/styles/treegrid/fluent.css +0 -131
- package/styles/treegrid/fluent.scss +2 -17
- package/styles/treegrid/fluent2.css +0 -634
- package/styles/treegrid/fluent2.scss +2 -17
- package/styles/treegrid/highcontrast-light.css +0 -85
- package/styles/treegrid/highcontrast-light.scss +2 -17
- package/styles/treegrid/highcontrast.css +0 -85
- package/styles/treegrid/highcontrast.scss +2 -17
- package/styles/treegrid/icons/_bds.scss +1 -1
- package/styles/treegrid/icons/_bootstrap-dark.scss +1 -1
- package/styles/treegrid/icons/_bootstrap.scss +1 -1
- package/styles/treegrid/icons/_bootstrap4.scss +1 -1
- package/styles/treegrid/icons/_bootstrap5.3.scss +1 -1
- package/styles/treegrid/icons/_bootstrap5.scss +1 -1
- package/styles/treegrid/icons/_fabric-dark.scss +1 -1
- package/styles/treegrid/icons/_fabric.scss +1 -1
- package/styles/treegrid/icons/_fluent.scss +1 -1
- package/styles/treegrid/icons/_fluent2.scss +1 -1
- package/styles/treegrid/icons/_fusionnew.scss +1 -1
- package/styles/treegrid/icons/_highcontrast-light.scss +1 -1
- package/styles/treegrid/icons/_highcontrast.scss +1 -1
- package/styles/treegrid/icons/_material-dark.scss +1 -1
- package/styles/treegrid/icons/_material.scss +1 -1
- package/styles/treegrid/icons/_material3.scss +1 -1
- package/styles/treegrid/icons/_tailwind-dark.scss +1 -1
- package/styles/treegrid/icons/_tailwind.scss +1 -1
- package/styles/treegrid/icons/_tailwind3.scss +1 -1
- package/styles/treegrid/material-dark.css +0 -161
- package/styles/treegrid/material-dark.scss +2 -17
- package/styles/treegrid/material.css +0 -185
- package/styles/treegrid/material.scss +2 -17
- package/styles/treegrid/material3-dark.css +0 -475
- package/styles/treegrid/material3-dark.scss +2 -17
- package/styles/treegrid/material3.css +0 -481
- package/styles/treegrid/material3.scss +2 -17
- package/styles/treegrid/tailwind-dark.css +0 -112
- package/styles/treegrid/tailwind-dark.scss +2 -17
- package/styles/treegrid/tailwind.css +0 -112
- package/styles/treegrid/tailwind.scss +2 -17
- package/styles/treegrid/tailwind3.css +0 -421
- package/styles/treegrid/tailwind3.scss +2 -17
- package/styles/treegrid/_all.bds.scss +0 -2
- package/styles/treegrid/_all.bootstrap-dark.scss +0 -2
- package/styles/treegrid/_all.bootstrap.scss +0 -2
- package/styles/treegrid/_all.bootstrap4.scss +0 -2
- package/styles/treegrid/_all.bootstrap5-dark.scss +0 -2
- package/styles/treegrid/_all.bootstrap5.3.scss +0 -2
- package/styles/treegrid/_all.bootstrap5.scss +0 -2
- package/styles/treegrid/_all.fabric-dark.scss +0 -2
- package/styles/treegrid/_all.fabric.scss +0 -2
- package/styles/treegrid/_all.fluent-dark.scss +0 -2
- package/styles/treegrid/_all.fluent.scss +0 -2
- package/styles/treegrid/_all.fluent2.scss +0 -2
- package/styles/treegrid/_all.highcontrast-light.scss +0 -2
- package/styles/treegrid/_all.highcontrast.scss +0 -2
- package/styles/treegrid/_all.material-dark.scss +0 -2
- package/styles/treegrid/_all.material.scss +0 -2
- package/styles/treegrid/_all.material3-dark.scss +0 -2
- package/styles/treegrid/_all.material3.scss +0 -2
- package/styles/treegrid/_all.tailwind-dark.scss +0 -2
- package/styles/treegrid/_all.tailwind.scss +0 -2
- package/styles/treegrid/_all.tailwind3.scss +0 -2
- package/styles/treegrid/_bigger.bds.scss +0 -3
- package/styles/treegrid/_bigger.bootstrap-dark.scss +0 -3
- package/styles/treegrid/_bigger.bootstrap.scss +0 -3
- package/styles/treegrid/_bigger.bootstrap4.scss +0 -3
- package/styles/treegrid/_bigger.bootstrap5-dark.scss +0 -3
- package/styles/treegrid/_bigger.bootstrap5.3.scss +0 -3
- package/styles/treegrid/_bigger.bootstrap5.scss +0 -3
- package/styles/treegrid/_bigger.fabric-dark.scss +0 -3
- package/styles/treegrid/_bigger.fabric.scss +0 -3
- package/styles/treegrid/_bigger.fluent-dark.scss +0 -3
- package/styles/treegrid/_bigger.fluent.scss +0 -3
- package/styles/treegrid/_bigger.fluent2.scss +0 -3
- package/styles/treegrid/_bigger.highcontrast-light.scss +0 -3
- package/styles/treegrid/_bigger.highcontrast.scss +0 -3
- package/styles/treegrid/_bigger.material-dark.scss +0 -3
- package/styles/treegrid/_bigger.material.scss +0 -3
- package/styles/treegrid/_bigger.material3-dark.scss +0 -3
- package/styles/treegrid/_bigger.material3.scss +0 -3
- package/styles/treegrid/_bigger.tailwind-dark.scss +0 -3
- package/styles/treegrid/_bigger.tailwind.scss +0 -3
- package/styles/treegrid/_bigger.tailwind3.scss +0 -3
- package/styles/treegrid/_layout.bds.scss +0 -4
- package/styles/treegrid/_layout.bootstrap-dark.scss +0 -4
- package/styles/treegrid/_layout.bootstrap.scss +0 -4
- package/styles/treegrid/_layout.bootstrap4.scss +0 -4
- package/styles/treegrid/_layout.bootstrap5-dark.scss +0 -4
- package/styles/treegrid/_layout.bootstrap5.3.scss +0 -4
- package/styles/treegrid/_layout.bootstrap5.scss +0 -4
- package/styles/treegrid/_layout.fabric-dark.scss +0 -4
- package/styles/treegrid/_layout.fabric.scss +0 -4
- package/styles/treegrid/_layout.fluent-dark.scss +0 -4
- package/styles/treegrid/_layout.fluent.scss +0 -4
- package/styles/treegrid/_layout.fluent2.scss +0 -4
- package/styles/treegrid/_layout.highcontrast-light.scss +0 -4
- package/styles/treegrid/_layout.highcontrast.scss +0 -4
- package/styles/treegrid/_layout.material-dark.scss +0 -4
- package/styles/treegrid/_layout.material.scss +0 -4
- package/styles/treegrid/_layout.material3-dark.scss +0 -4
- package/styles/treegrid/_layout.material3.scss +0 -4
- package/styles/treegrid/_layout.tailwind-dark.scss +0 -4
- package/styles/treegrid/_layout.tailwind.scss +0 -4
- package/styles/treegrid/_layout.tailwind3.scss +0 -4
- package/styles/treegrid/_theme-variables.bds.scss +0 -1
- package/styles/treegrid/_theme-variables.bootstrap-dark.scss +0 -1
- package/styles/treegrid/_theme-variables.bootstrap.scss +0 -1
- package/styles/treegrid/_theme-variables.bootstrap4.scss +0 -1
- package/styles/treegrid/_theme-variables.bootstrap5-dark.scss +0 -1
- package/styles/treegrid/_theme-variables.bootstrap5.3.scss +0 -1
- package/styles/treegrid/_theme-variables.bootstrap5.scss +0 -1
- package/styles/treegrid/_theme-variables.fabric-dark.scss +0 -1
- package/styles/treegrid/_theme-variables.fabric.scss +0 -1
- package/styles/treegrid/_theme-variables.fluent-dark.scss +0 -1
- package/styles/treegrid/_theme-variables.fluent.scss +0 -1
- package/styles/treegrid/_theme-variables.fluent2.scss +0 -1
- package/styles/treegrid/_theme-variables.highcontrast-light.scss +0 -1
- package/styles/treegrid/_theme-variables.highcontrast.scss +0 -1
- package/styles/treegrid/_theme-variables.material-dark.scss +0 -1
- package/styles/treegrid/_theme-variables.material.scss +0 -1
- package/styles/treegrid/_theme-variables.material3-dark.scss +0 -1
- package/styles/treegrid/_theme-variables.material3.scss +0 -1
- package/styles/treegrid/_theme-variables.tailwind-dark.scss +0 -1
- package/styles/treegrid/_theme-variables.tailwind.scss +0 -1
- package/styles/treegrid/_theme-variables.tailwind3.scss +0 -1
- package/styles/treegrid/_theme.bds.scss +0 -1
- package/styles/treegrid/_theme.bootstrap-dark.scss +0 -1
- package/styles/treegrid/_theme.bootstrap.scss +0 -1
- package/styles/treegrid/_theme.bootstrap4.scss +0 -1
- package/styles/treegrid/_theme.bootstrap5-dark.scss +0 -1
- package/styles/treegrid/_theme.bootstrap5.3.scss +0 -1
- package/styles/treegrid/_theme.bootstrap5.scss +0 -1
- package/styles/treegrid/_theme.fabric-dark.scss +0 -1
- package/styles/treegrid/_theme.fabric.scss +0 -1
- package/styles/treegrid/_theme.fluent-dark.scss +0 -1
- package/styles/treegrid/_theme.fluent.scss +0 -1
- package/styles/treegrid/_theme.fluent2.scss +0 -1
- package/styles/treegrid/_theme.highcontrast-light.scss +0 -1
- package/styles/treegrid/_theme.highcontrast.scss +0 -1
- package/styles/treegrid/_theme.material-dark.scss +0 -1
- package/styles/treegrid/_theme.material.scss +0 -1
- package/styles/treegrid/_theme.material3-dark.scss +0 -1
- package/styles/treegrid/_theme.material3.scss +0 -1
- package/styles/treegrid/_theme.tailwind-dark.scss +0 -1
- package/styles/treegrid/_theme.tailwind.scss +0 -1
- package/styles/treegrid/_theme.tailwind3.scss +0 -1
|
@@ -970,6 +970,20 @@ class Selection {
|
|
|
970
970
|
this.resetSelectionCaches();
|
|
971
971
|
this.removeEventListener();
|
|
972
972
|
}
|
|
973
|
+
/**
|
|
974
|
+
* Gets the actual record from the data model's uniqueIDCollection.
|
|
975
|
+
*
|
|
976
|
+
* @param {ITreeData} record - The record (may be stale reference).
|
|
977
|
+
* @returns {ITreeData} The actual record from the data model.
|
|
978
|
+
*/
|
|
979
|
+
getRecordFromUidCollection(record) {
|
|
980
|
+
if (!record) {
|
|
981
|
+
return record;
|
|
982
|
+
}
|
|
983
|
+
const uidMap = this.parent.uniqueIDCollection;
|
|
984
|
+
const uid = record.uniqueID;
|
|
985
|
+
return (uidMap && uid != null) ? (uidMap[String(uid)] ? uidMap[String(uid)] : record) : record;
|
|
986
|
+
}
|
|
973
987
|
/**
|
|
974
988
|
* Handles checkbox click events from the DOM and dispatches selection logic.
|
|
975
989
|
*
|
|
@@ -995,8 +1009,7 @@ class Selection {
|
|
|
995
1009
|
}
|
|
996
1010
|
else if (checkWrap && checkWrap.querySelectorAll('.e-treeselectall').length > 0 && this.parent.autoCheckHierarchy) {
|
|
997
1011
|
const frame = checkWrap.querySelector('.e-frame');
|
|
998
|
-
const
|
|
999
|
-
const targetState = currentStateIsUncheck; // If currently uncheck, target state is to check all.
|
|
1012
|
+
const targetState = frame.classList.contains('e-uncheck') || frame.classList.contains('e-stop');
|
|
1000
1013
|
this.headerSelection(targetState);
|
|
1001
1014
|
checkBox = checkWrap.querySelector('input[type="checkbox"]');
|
|
1002
1015
|
this.triggerChkChangeEvent(checkBox, targetState, target.closest('tr'));
|
|
@@ -1163,6 +1176,7 @@ class Selection {
|
|
|
1163
1176
|
const flatRec = getParentData(this.parent, viewRec.uniqueID);
|
|
1164
1177
|
const nextState = (flatRec.checkboxState === 'check') ? 'uncheck' : 'check';
|
|
1165
1178
|
flatRec.checkboxState = nextState;
|
|
1179
|
+
viewRec.checkboxState = nextState;
|
|
1166
1180
|
this.traverSelection(flatRec, nextState, false);
|
|
1167
1181
|
}
|
|
1168
1182
|
}
|
|
@@ -1214,10 +1228,11 @@ class Selection {
|
|
|
1214
1228
|
if (child.hasChildRecords) {
|
|
1215
1229
|
this.traverSelection(child, checkboxState, true);
|
|
1216
1230
|
}
|
|
1217
|
-
|
|
1231
|
+
const updatedChild = this.getRecordFromUidCollection(child);
|
|
1232
|
+
if (updatedChild.checkboxState === 'check') {
|
|
1218
1233
|
checkedCount++;
|
|
1219
1234
|
}
|
|
1220
|
-
else if (
|
|
1235
|
+
else if (updatedChild.checkboxState === 'indeterminate') {
|
|
1221
1236
|
indeterminateCount++;
|
|
1222
1237
|
}
|
|
1223
1238
|
}
|
|
@@ -1340,11 +1355,12 @@ class Selection {
|
|
|
1340
1355
|
if (!child || child.isSummaryRow) {
|
|
1341
1356
|
continue;
|
|
1342
1357
|
}
|
|
1358
|
+
const actualChild = this.getRecordFromUidCollection(child);
|
|
1343
1359
|
summary.total++;
|
|
1344
|
-
if (
|
|
1360
|
+
if (actualChild.checkboxState === 'check') {
|
|
1345
1361
|
summary.checked++;
|
|
1346
1362
|
}
|
|
1347
|
-
else if (
|
|
1363
|
+
else if (actualChild.checkboxState === 'indeterminate') {
|
|
1348
1364
|
summary.indeterminate++;
|
|
1349
1365
|
}
|
|
1350
1366
|
}
|
|
@@ -1472,12 +1488,13 @@ class Selection {
|
|
|
1472
1488
|
if (!record) {
|
|
1473
1489
|
continue;
|
|
1474
1490
|
}
|
|
1475
|
-
const
|
|
1491
|
+
const actualRecord = this.getRecordFromUidCollection(record);
|
|
1492
|
+
const previousState = actualRecord.checkboxState;
|
|
1476
1493
|
if (previousState === targetState) {
|
|
1477
1494
|
continue;
|
|
1478
1495
|
}
|
|
1479
|
-
|
|
1480
|
-
this.updateSelectedItems(
|
|
1496
|
+
actualRecord.checkboxState = targetState;
|
|
1497
|
+
this.updateSelectedItems(actualRecord, targetState, true);
|
|
1481
1498
|
}
|
|
1482
1499
|
}
|
|
1483
1500
|
/**
|
|
@@ -1504,9 +1521,10 @@ class Selection {
|
|
|
1504
1521
|
if (item.hasChildRecords && isFilterOrSearch && item.level === 0 && this.parent.autoCheckHierarchy) {
|
|
1505
1522
|
this.updateParentSelection(item);
|
|
1506
1523
|
}
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1524
|
+
const actualItem = this.getRecordFromUidCollection(item);
|
|
1525
|
+
if (actualItem.uniqueID && actualItem.checkboxState === 'check') {
|
|
1526
|
+
newSelectedItems.push(actualItem);
|
|
1527
|
+
newSelectedUidMap.set(actualItem.uniqueID, true);
|
|
1510
1528
|
}
|
|
1511
1529
|
}
|
|
1512
1530
|
if (!isFilterOrSearch) {
|
|
@@ -1678,7 +1696,8 @@ class Selection {
|
|
|
1678
1696
|
this.totalSelectableCount = this.countSelectableRecords(recordsForHeaderLogic);
|
|
1679
1697
|
let checkedCountForHeaderLogic = 0;
|
|
1680
1698
|
for (const record of recordsForHeaderLogic) {
|
|
1681
|
-
|
|
1699
|
+
const actualRecord = this.getRecordFromUidCollection(record);
|
|
1700
|
+
if (actualRecord && !actualRecord.isSummaryRow && actualRecord.checkboxState === 'check') {
|
|
1682
1701
|
checkedCountForHeaderLogic++;
|
|
1683
1702
|
}
|
|
1684
1703
|
}
|
|
@@ -2467,12 +2486,10 @@ class DataManipulation {
|
|
|
2467
2486
|
if (this.parent.parentIdMapping) {
|
|
2468
2487
|
this.parent.query = isNullOrUndefined(this.parent.query) ?
|
|
2469
2488
|
new Query() : this.parent.query;
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
this.parent.query.addParams('IdMapping', this.parent.idMapping);
|
|
2475
|
-
}
|
|
2489
|
+
const filterKey = this.parent.query.params.filter((param) => param.key === 'IdMapping');
|
|
2490
|
+
if (this.parent.initialRender && !filterKey.length) {
|
|
2491
|
+
this.parent.query.where(this.parent.parentIdMapping, 'equal', null);
|
|
2492
|
+
this.parent.query.addParams('IdMapping', this.parent.idMapping);
|
|
2476
2493
|
}
|
|
2477
2494
|
if (!this.parent.hasChildMapping) {
|
|
2478
2495
|
let qry = this.parent.query.clone();
|
|
@@ -3027,9 +3044,6 @@ class DataManipulation {
|
|
|
3027
3044
|
? currentData[this.parent.expandStateMapping] : true;
|
|
3028
3045
|
}
|
|
3029
3046
|
}
|
|
3030
|
-
if (!Object.prototype.hasOwnProperty.call(currentData, 'index')) {
|
|
3031
|
-
currentData.index = currentData.hasChildRecords ? this.storedIndex : this.storedIndex;
|
|
3032
|
-
}
|
|
3033
3047
|
if (this.isSelfReference && isNullOrUndefined(currentData[this.parent.parentIdMapping])) {
|
|
3034
3048
|
this.parent.parentData.push(currentData);
|
|
3035
3049
|
}
|
|
@@ -3216,8 +3230,7 @@ class DataManipulation {
|
|
|
3216
3230
|
}
|
|
3217
3231
|
const isPdfExport = 'isPdfExport';
|
|
3218
3232
|
const isCollapsedStatePersist = 'isCollapsedStatePersist';
|
|
3219
|
-
if ((isPrinting === true || (args[`${isPdfExport}`] &&
|
|
3220
|
-
|| args[`${isCollapsedStatePersist}`]))) && this.parent.printMode === 'AllPages') {
|
|
3233
|
+
if ((isPrinting === true || (args[`${isPdfExport}`] && args[`${isCollapsedStatePersist}`] === true)) && this.parent.printMode === 'AllPages') {
|
|
3221
3234
|
const actualResults = [];
|
|
3222
3235
|
for (let i = 0; i < results.length; i++) {
|
|
3223
3236
|
const expandStatus = getExpandStatus(this.parent, results[parseInt(i.toString(), 10)], this.parent.parentData);
|
|
@@ -5418,8 +5431,13 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
5418
5431
|
this.grid.dataSource = { result: data, count: datacount };
|
|
5419
5432
|
}
|
|
5420
5433
|
else {
|
|
5434
|
+
let cacheAdaptor = null;
|
|
5435
|
+
if ((this.dataSource instanceof DataManager) && this.dataSource[`${dataSource}`] &&
|
|
5436
|
+
this.dataSource[`${dataSource}`].enableCaching) {
|
|
5437
|
+
cacheAdaptor = this.dataSource[`${adaptor}`].cacheAdaptor;
|
|
5438
|
+
}
|
|
5421
5439
|
this.grid.dataSource = !(this.dataSource instanceof DataManager) ?
|
|
5422
|
-
this.flatData : new DataManager(this.dataSource.dataSource, this.dataSource.defaultQuery, this.dataSource.adaptor, this.hasPreAndPostMiddleware(this.dataSource) ? this.dataSource : undefined);
|
|
5440
|
+
this.flatData : new DataManager(this.dataSource.dataSource, this.dataSource.defaultQuery, cacheAdaptor ? cacheAdaptor : this.dataSource.adaptor, this.hasPreAndPostMiddleware(this.dataSource) ? this.dataSource : undefined);
|
|
5423
5441
|
}
|
|
5424
5442
|
if (this.dataSource instanceof DataManager && (this.dataSource.dataSource.offline || this.dataSource.ready)) {
|
|
5425
5443
|
this.grid.dataSource[`${dataSource}`].json = extendArray(this.dataSource[`${dataSource}`].json);
|
|
@@ -5813,6 +5831,14 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
5813
5831
|
gridColumn.textAlign = 'Right';
|
|
5814
5832
|
}
|
|
5815
5833
|
}
|
|
5834
|
+
else if (!isNullOrUndefined(this.columnModel[this.treeColumnIndex]) && !this.enableRtl) {
|
|
5835
|
+
if (isNullOrUndefined(this.treeColumnField)) {
|
|
5836
|
+
this.treeColumnField = gridColumn.field;
|
|
5837
|
+
}
|
|
5838
|
+
if (isNullOrUndefined(this.treeColumnTextAlign) && this.treeColumnField === this.columnModel[this.treeColumnIndex].field) {
|
|
5839
|
+
this.treeColumnTextAlign = this.columnModel[this.treeColumnIndex].textAlign;
|
|
5840
|
+
}
|
|
5841
|
+
}
|
|
5816
5842
|
}
|
|
5817
5843
|
return gridColumnCollection;
|
|
5818
5844
|
}
|
|
@@ -5834,6 +5860,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
5834
5860
|
onPropertyChanged(newProp) {
|
|
5835
5861
|
const properties = Object.keys(newProp);
|
|
5836
5862
|
let requireRefresh = false;
|
|
5863
|
+
let refreshComponent = false;
|
|
5837
5864
|
for (const prop of properties) {
|
|
5838
5865
|
switch (prop) {
|
|
5839
5866
|
case 'columns':
|
|
@@ -5976,6 +6003,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
5976
6003
|
this.TreeGridLocale();
|
|
5977
6004
|
this.grid.toolbar = this.getGridToolbar();
|
|
5978
6005
|
this.grid.contextMenuItems = this.getContextMenu();
|
|
6006
|
+
requireRefresh = true;
|
|
6007
|
+
refreshComponent = true;
|
|
5979
6008
|
break;
|
|
5980
6009
|
case 'selectedRowIndex':
|
|
5981
6010
|
this.grid.selectedRowIndex = this.selectedRowIndex;
|
|
@@ -6005,10 +6034,8 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
6005
6034
|
this.grid.allowPdfExport = this.allowPdfExport;
|
|
6006
6035
|
break;
|
|
6007
6036
|
case 'enableRtl':
|
|
6008
|
-
if (!isNullOrUndefined(this.treeColumnField)) {
|
|
6009
|
-
this.updateTreeColumnTextAlign();
|
|
6010
|
-
}
|
|
6011
6037
|
this.grid.enableRtl = this.enableRtl;
|
|
6038
|
+
this.updateColumnModel();
|
|
6012
6039
|
break;
|
|
6013
6040
|
case 'allowReordering':
|
|
6014
6041
|
this.grid.allowReordering = this.allowReordering;
|
|
@@ -6061,7 +6088,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
6061
6088
|
}
|
|
6062
6089
|
}
|
|
6063
6090
|
if (requireRefresh) {
|
|
6064
|
-
if (this.isFrozenGrid()) {
|
|
6091
|
+
if (refreshComponent || this.isFrozenGrid()) {
|
|
6065
6092
|
this.refreshLayout();
|
|
6066
6093
|
}
|
|
6067
6094
|
else {
|
|
@@ -6873,6 +6900,12 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
6873
6900
|
if (!this.stackedHeader && !isNullOrUndefined(this.columns)) {
|
|
6874
6901
|
merge(this.columns, this.columnModel);
|
|
6875
6902
|
}
|
|
6903
|
+
if (!this.enableRtl && !isNullOrUndefined(this.columnModel[this.treeColumnIndex])
|
|
6904
|
+
&& !isNullOrUndefined(this.treeColumnField)) {
|
|
6905
|
+
if (this.columnModel[this.treeColumnIndex].field === this.treeColumnField) {
|
|
6906
|
+
this.columnModel[this.treeColumnIndex].textAlign = this.treeColumnTextAlign;
|
|
6907
|
+
}
|
|
6908
|
+
}
|
|
6876
6909
|
this[`${deepMerge}`] = undefined; // Workaround for blazor updateModel
|
|
6877
6910
|
return this.columnModel;
|
|
6878
6911
|
}
|
|
@@ -8734,6 +8767,15 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
|
|
|
8734
8767
|
return 0;
|
|
8735
8768
|
}
|
|
8736
8769
|
}
|
|
8770
|
+
/**
|
|
8771
|
+
* Gets the row index based on the given primary key value or row data.
|
|
8772
|
+
*
|
|
8773
|
+
* @param {string | number | object} value - The primary key value or row data.
|
|
8774
|
+
* @returns {number} Returns the row index.
|
|
8775
|
+
*/
|
|
8776
|
+
getRowIndexByPrimaryKey(value) {
|
|
8777
|
+
return this.grid.getRowIndexByPrimaryKey(value);
|
|
8778
|
+
}
|
|
8737
8779
|
};
|
|
8738
8780
|
__decorate$c([
|
|
8739
8781
|
Property(0)
|
|
@@ -11913,7 +11955,9 @@ class PdfExport {
|
|
|
11913
11955
|
}
|
|
11914
11956
|
prop = isNullOrUndefined(prop) ? {} : prop;
|
|
11915
11957
|
prop.dataSource = new DataManager({ json: dtSrc });
|
|
11916
|
-
|
|
11958
|
+
if (this.parent.aggregates.length > 0) {
|
|
11959
|
+
prop.query = args['query'];
|
|
11960
|
+
}
|
|
11917
11961
|
return prop;
|
|
11918
11962
|
}
|
|
11919
11963
|
/**
|
|
@@ -13135,7 +13179,8 @@ class BatchEdit {
|
|
|
13135
13179
|
if (this.parent.editModule['isAddedRowByMethod'] && !isNullOrUndefined(this.parent.editModule['addRowIndex']) &&
|
|
13136
13180
|
!this.parent.editModule['isAddedRowByContextMenu'] && !this.parent.editModule.isAddedMultipleRowsByMethod) {
|
|
13137
13181
|
const newlyAddedRecords = this.parent.getBatchChanges()['addedRecords'];
|
|
13138
|
-
const index =
|
|
13182
|
+
const index = this.getInsertedRowIndex(newlyAddedRecords.length - 1);
|
|
13183
|
+
this.batchIndex = index;
|
|
13139
13184
|
this.batchRecords.splice(index, 0, newlyAddedRecords[newlyAddedRecords.length - 1]);
|
|
13140
13185
|
}
|
|
13141
13186
|
}
|
|
@@ -13302,6 +13347,17 @@ class BatchEdit {
|
|
|
13302
13347
|
this.batchDeletedRecords = [];
|
|
13303
13348
|
this.parent.grid.renderModule.refresh();
|
|
13304
13349
|
}
|
|
13350
|
+
getInsertedRowIndex(elementIndex) {
|
|
13351
|
+
const header = this.parent.getHeaderTable().getElementsByClassName('e-insertedrow')[parseInt(elementIndex.toString(), 10)];
|
|
13352
|
+
const content = this.parent.getContentTable().getElementsByClassName('e-insertedrow')[parseInt(elementIndex.toString(), 10)];
|
|
13353
|
+
if (this.parent.frozenRows && header) {
|
|
13354
|
+
return parseInt(header.getAttribute('aria-rowindex'), 10) - 1;
|
|
13355
|
+
}
|
|
13356
|
+
if (content) {
|
|
13357
|
+
return parseInt(content.getAttribute('aria-rowindex'), 10) - 1;
|
|
13358
|
+
}
|
|
13359
|
+
return -1;
|
|
13360
|
+
}
|
|
13305
13361
|
batchSave(args) {
|
|
13306
13362
|
if (this.parent.editSettings.mode === 'Batch') {
|
|
13307
13363
|
let i;
|
|
@@ -13330,7 +13386,7 @@ class BatchEdit {
|
|
|
13330
13386
|
if (this.parent.editModule['isAddedRowByMethod'] && addRecords.length && !isNullOrUndefined(this.parent.editModule['addRowIndex']) && !this.parent.editModule['isAddedRowByContextMenu']) {
|
|
13331
13387
|
addRecords.reverse();
|
|
13332
13388
|
for (let i = 0; i < addRecords.length; i++) {
|
|
13333
|
-
const index =
|
|
13389
|
+
const index = this.getInsertedRowIndex(parseInt(i.toString(), 10));
|
|
13334
13390
|
data.splice(index, 0, addRecords[parseInt(i.toString(), 10)]);
|
|
13335
13391
|
}
|
|
13336
13392
|
}
|
|
@@ -13570,6 +13626,7 @@ class Edit {
|
|
|
13570
13626
|
this.parent.grid.on(beforeBatchCancel, this.beforeBatchCancel, this);
|
|
13571
13627
|
this.parent.grid.on('reset-edit-props', this.resetIsOnBatch, this);
|
|
13572
13628
|
this.parent.grid.on('get-row-position', this.getRowPosition, this);
|
|
13629
|
+
this.parent.grid.on('last-row-validation', this.lastRowValidation, this);
|
|
13573
13630
|
}
|
|
13574
13631
|
gridDblClick(e) {
|
|
13575
13632
|
this.doubleClickTarget = e.target;
|
|
@@ -13583,6 +13640,7 @@ class Edit {
|
|
|
13583
13640
|
/* eslint-disable-next-line */
|
|
13584
13641
|
this.parent.grid.getDataRows()[rowIndex].dataset.uid = this.parent.grid.contentModule.getRows()[rowIndex].uid;
|
|
13585
13642
|
}
|
|
13643
|
+
this.doubleClickTarget = null;
|
|
13586
13644
|
}
|
|
13587
13645
|
}
|
|
13588
13646
|
getRowPosition(addArgs) {
|
|
@@ -13628,6 +13686,7 @@ class Edit {
|
|
|
13628
13686
|
this.parent.grid.off('dblclick', this.gridDblClick);
|
|
13629
13687
|
this.parent.grid.off('reset-edit-props', this.resetIsOnBatch);
|
|
13630
13688
|
this.parent.grid.off('get-row-position', this.getRowPosition);
|
|
13689
|
+
this.parent.grid.off('last-row-validation', this.lastRowValidation);
|
|
13631
13690
|
//this.parent.grid.off('click', this.gridSingleClick);
|
|
13632
13691
|
}
|
|
13633
13692
|
/**
|
|
@@ -13775,7 +13834,7 @@ class Edit {
|
|
|
13775
13834
|
this.parent.grid.isEdit = false;
|
|
13776
13835
|
}
|
|
13777
13836
|
resetIsOnBatch() {
|
|
13778
|
-
if (this.parent.enableVirtualization && this.parent.editSettings.mode === 'Cell') {
|
|
13837
|
+
if (this.parent.enableVirtualization && this.parent.editSettings.mode === 'Cell' && !this.parent['isGantt']) {
|
|
13779
13838
|
this.isOnBatch = false;
|
|
13780
13839
|
this.updateGridEditMode('Normal');
|
|
13781
13840
|
}
|
|
@@ -14206,7 +14265,9 @@ class Edit {
|
|
|
14206
14265
|
seletedRow: 0
|
|
14207
14266
|
};
|
|
14208
14267
|
this.beginAddEdit(args);
|
|
14209
|
-
|
|
14268
|
+
if (this.batchEditModule['addRowRecord']) {
|
|
14269
|
+
this.batchEditModule['batchAddRowRecord'].push(this.batchEditModule['addRowRecord']);
|
|
14270
|
+
}
|
|
14210
14271
|
this.batchEditModule['batchAddedRecords'].push(args['data']);
|
|
14211
14272
|
}
|
|
14212
14273
|
else if (this.parent.editSettings.mode === 'Batch' && this.isAddedMultipleRowsByMethod && (this.parent.editSettings.newRowPosition === 'Above' || this.parent.editSettings.newRowPosition === 'Below')) {
|
|
@@ -14226,7 +14287,9 @@ class Edit {
|
|
|
14226
14287
|
seletedRow: 0
|
|
14227
14288
|
};
|
|
14228
14289
|
this.beginAddEdit(args);
|
|
14229
|
-
|
|
14290
|
+
if (this.batchEditModule['addRowRecord']) {
|
|
14291
|
+
this.batchEditModule['batchAddRowRecord'].push(this.batchEditModule['addRowRecord']);
|
|
14292
|
+
}
|
|
14230
14293
|
this.batchEditModule['batchAddedRecords'].push(args['data']);
|
|
14231
14294
|
}
|
|
14232
14295
|
}
|
|
@@ -14633,6 +14696,31 @@ class Edit {
|
|
|
14633
14696
|
}
|
|
14634
14697
|
this.parent.grid.editModule.closeEdit();
|
|
14635
14698
|
}
|
|
14699
|
+
/**
|
|
14700
|
+
* Handles TreeGrid-specific validation for tooltip positioning on last row.
|
|
14701
|
+
*
|
|
14702
|
+
* @param {Object} args - Validation flags
|
|
14703
|
+
* @param {boolean} args.isBeginEdit - Whether editing has begun
|
|
14704
|
+
* @param {boolean} args.isAddedRow - Whether the row is newly added
|
|
14705
|
+
* @param {boolean} args.isLastRow - Whether this is the last row
|
|
14706
|
+
* @param {boolean} args.validationPositionResult - Validation position result
|
|
14707
|
+
* @returns {void}
|
|
14708
|
+
* @hidden
|
|
14709
|
+
*/
|
|
14710
|
+
lastRowValidation(args) {
|
|
14711
|
+
if (!this.parent.enableVirtualization) {
|
|
14712
|
+
return;
|
|
14713
|
+
}
|
|
14714
|
+
const { isBeginEdit, isAddedRow, isLastRow } = args;
|
|
14715
|
+
const newRowPosition = this.parent.editSettings.newRowPosition;
|
|
14716
|
+
if ((newRowPosition === 'Child' || newRowPosition === 'Below' || newRowPosition === 'Above') &&
|
|
14717
|
+
isAddedRow && isLastRow) {
|
|
14718
|
+
args.validationPositionResult = true;
|
|
14719
|
+
}
|
|
14720
|
+
else if (isBeginEdit && isLastRow) {
|
|
14721
|
+
args.validationPositionResult = true;
|
|
14722
|
+
}
|
|
14723
|
+
}
|
|
14636
14724
|
}
|
|
14637
14725
|
|
|
14638
14726
|
/**
|
|
@@ -14913,7 +15001,7 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
|
|
|
14913
15001
|
this.startIndex = lastIndex - this.parent.getRows().length;
|
|
14914
15002
|
this.endIndex = lastIndex;
|
|
14915
15003
|
}
|
|
14916
|
-
else if (this.parent.root.
|
|
15004
|
+
else if (this.parent.root.editModule.selectedIndex !== -1) {
|
|
14917
15005
|
this.startIndex += 1;
|
|
14918
15006
|
this.endIndex += 1;
|
|
14919
15007
|
}
|
|
@@ -15390,8 +15478,10 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
|
|
|
15390
15478
|
const directVirtualRender = 'directVirtualRender';
|
|
15391
15479
|
if (!this.parent[`${directVirtualRender}`]) { // with this property, columns are rendered without debouncing on horizontal scroll.
|
|
15392
15480
|
const preventEvent = 'preventEvent';
|
|
15393
|
-
if (
|
|
15394
|
-
|
|
15481
|
+
if (!isWheel && check && !this[`${preventEvent}`] && !this.parent.enableVirtualMaskRow) {
|
|
15482
|
+
if (Browser.isIE) {
|
|
15483
|
+
this.parent.showSpinner();
|
|
15484
|
+
}
|
|
15395
15485
|
}
|
|
15396
15486
|
if (this.parent.enableVirtualMaskRow && !this[`${preventEvent}`]) {
|
|
15397
15487
|
setTimeout(() => {
|
|
@@ -15469,12 +15559,12 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
|
|
|
15469
15559
|
this.parent.root.scrollPosition = scrollArgs.offset;
|
|
15470
15560
|
}
|
|
15471
15561
|
const info = scrollArgs.sentinel;
|
|
15562
|
+
const rowHeight = parseInt(this.parent.getRowHeight().toString(), 10);
|
|
15563
|
+
const outBuffer = this.parent.pageSettings.pageSize - Math.ceil(this.parent.pageSettings.pageSize / 2);
|
|
15472
15564
|
let treeGridParent = null;
|
|
15473
15565
|
if (this.parent.clipboardModule && this.parent.clipboardModule['treeGridParent']) {
|
|
15474
15566
|
treeGridParent = this.parent.clipboardModule['treeGridParent'];
|
|
15475
15567
|
}
|
|
15476
|
-
const rowHeight = parseInt(this.parent.getRowHeight().toString(), 10);
|
|
15477
|
-
const outBuffer = this.parent.pageSettings.pageSize - Math.ceil(this.parent.pageSettings.pageSize / 2);
|
|
15478
15568
|
let content;
|
|
15479
15569
|
if (!isNullOrUndefined(this.parent.contentModule)) {
|
|
15480
15570
|
content = this.parent.getContent().querySelector('.e-content');
|
|
@@ -15741,6 +15831,9 @@ class VirtualTreeContentRenderer extends VirtualContentRenderer {
|
|
|
15741
15831
|
const focusCell = 'focusCell';
|
|
15742
15832
|
const restoreAdd = 'restoreAdd';
|
|
15743
15833
|
const ensureSelectedRowPosition = 'ensureSelectedRowPosition';
|
|
15834
|
+
if (this['pressedKey'] === 'downArrow' || this['pressedKey'] === 'upArrow') {
|
|
15835
|
+
this['activeKey'] = this['pressedKey'];
|
|
15836
|
+
}
|
|
15744
15837
|
super[`${focusCell}`](e);
|
|
15745
15838
|
const isAdd = 'isAdd';
|
|
15746
15839
|
if (this[`${isAdd}`] && !this.parent.getContent().querySelector('.e-content').querySelector('.e-addedrow')) {
|