@syncfusion/ej2-treegrid 20.1.51 → 20.1.56

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 (54) hide show
  1. package/CHANGELOG.md +16 -0
  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 +102 -19
  5. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  6. package/dist/es6/ej2-treegrid.es5.js +101 -18
  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/package.json +9 -9
  12. package/src/treegrid/actions/context-menu.js +50 -0
  13. package/src/treegrid/actions/page.d.ts +1 -0
  14. package/src/treegrid/actions/page.js +11 -0
  15. package/src/treegrid/actions/rowdragdrop.js +2 -2
  16. package/src/treegrid/actions/selection.js +4 -2
  17. package/src/treegrid/base/treegrid.d.ts +1 -0
  18. package/src/treegrid/base/treegrid.js +22 -4
  19. package/src/treegrid/enum.d.ts +8 -2
  20. package/src/treegrid/enum.js +2 -0
  21. package/src/treegrid/models/column.d.ts +6 -6
  22. package/src/treegrid/models/column.js +6 -6
  23. package/src/treegrid/renderer/render.d.ts +4 -4
  24. package/src/treegrid/renderer/render.js +4 -4
  25. package/styles/bootstrap-dark.css +12 -95
  26. package/styles/bootstrap.css +12 -95
  27. package/styles/bootstrap4.css +12 -94
  28. package/styles/bootstrap5-dark.css +12 -94
  29. package/styles/bootstrap5.css +12 -94
  30. package/styles/fabric-dark.css +12 -93
  31. package/styles/fabric.css +12 -93
  32. package/styles/fluent-dark.css +13 -96
  33. package/styles/fluent.css +13 -96
  34. package/styles/highcontrast-light.css +10 -104
  35. package/styles/highcontrast.css +10 -104
  36. package/styles/material-dark.css +8 -84
  37. package/styles/material.css +8 -85
  38. package/styles/tailwind-dark.css +8 -82
  39. package/styles/tailwind.css +8 -82
  40. package/styles/treegrid/bootstrap-dark.css +12 -95
  41. package/styles/treegrid/bootstrap.css +12 -95
  42. package/styles/treegrid/bootstrap4.css +12 -94
  43. package/styles/treegrid/bootstrap5-dark.css +12 -94
  44. package/styles/treegrid/bootstrap5.css +12 -94
  45. package/styles/treegrid/fabric-dark.css +12 -93
  46. package/styles/treegrid/fabric.css +12 -93
  47. package/styles/treegrid/fluent-dark.css +13 -96
  48. package/styles/treegrid/fluent.css +13 -96
  49. package/styles/treegrid/highcontrast-light.css +10 -104
  50. package/styles/treegrid/highcontrast.css +10 -104
  51. package/styles/treegrid/material-dark.css +8 -84
  52. package/styles/treegrid/material.css +8 -85
  53. package/styles/treegrid/tailwind-dark.css +8 -82
  54. package/styles/treegrid/tailwind.css +8 -82
@@ -77,12 +77,12 @@ class Column {
77
77
  merge(this, options);
78
78
  }
79
79
  /**
80
- * Update the State changes reflected for TreeGrid columndirective in react platform.
81
- *
82
- * @param {Column} column - specifies the column
83
- * @returns {void}
84
- * @hidden
85
- */
80
+ * Update the State changes reflected for TreeGrid columndirective in react platform.
81
+ *
82
+ * @param {Column} column - specifies the column
83
+ * @returns {void}
84
+ * @hidden
85
+ */
86
86
  setProperties(column) {
87
87
  //Angular two way binding
88
88
  const keys = Object.keys(column);
@@ -884,10 +884,12 @@ class Selection {
884
884
  getCheckboxcolumnIndex() {
885
885
  let mappingUid;
886
886
  let columnIndex;
887
- const columns = (this.parent.columns);
887
+ const stackedHeader = "stackedHeader";
888
+ const columnModel = 'columnModel';
889
+ const columns = this.parent[stackedHeader] ? this.parent[columnModel] : (this.parent.columns);
888
890
  for (let col = 0; col < columns.length; col++) {
889
891
  if (columns[col].showCheckbox) {
890
- mappingUid = this.parent.columns[col].uid;
892
+ mappingUid = columns[col].uid;
891
893
  }
892
894
  }
893
895
  const headerCelllength = this.parent.getHeaderContent().querySelectorAll('.e-headercelldiv').length;
@@ -1659,10 +1661,10 @@ class Render {
1659
1661
  }
1660
1662
  }
1661
1663
  /**
1662
- * @param {string} columnUid - Defines column uid
1663
- * @returns {void}
1664
- * @hidden
1665
- */
1664
+ * @param {string} columnUid - Defines column uid
1665
+ * @returns {void}
1666
+ * @hidden
1667
+ */
1666
1668
  refreshReactColumnTemplateByUid(columnUid) {
1667
1669
  if (this.parent.isReact) {
1668
1670
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -2333,6 +2335,8 @@ var ContextMenuItems;
2333
2335
  ContextMenuItems[ContextMenuItems["LastPage"] = 13] = "LastPage";
2334
2336
  ContextMenuItems[ContextMenuItems["NextPage"] = 14] = "NextPage";
2335
2337
  ContextMenuItems[ContextMenuItems["AddRow"] = 15] = "AddRow";
2338
+ ContextMenuItems[ContextMenuItems["RowIndent"] = 16] = "RowIndent";
2339
+ ContextMenuItems[ContextMenuItems["RowOutdent"] = 17] = "RowOutdent";
2336
2340
  })(ContextMenuItems || (ContextMenuItems = {}));
2337
2341
 
2338
2342
  var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -2986,6 +2990,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
2986
2990
  this.addedRecords = 'addedRecords';
2987
2991
  this.indentOutdentAction = 'indentOutdentAction';
2988
2992
  this.modifiedRecords = [];
2993
+ this.stackedHeader = false;
2989
2994
  this.objectEqualityChecker = (old, current) => {
2990
2995
  if (old) {
2991
2996
  const keys = Object.keys(old);
@@ -3393,7 +3398,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
3393
3398
  }
3394
3399
  extendRequiredModules(modules) {
3395
3400
  const IsRowDDInjected = this.injectedModules.filter((e) => {
3396
- return e.name === 'RowDD';
3401
+ return e.prototype.getModuleName() === 'rowDragAndDrop';
3397
3402
  });
3398
3403
  if (this.allowRowDragAndDrop || IsRowDDInjected.length) {
3399
3404
  if ((!isNullOrUndefined(this.toolbar) && (this.toolbar['includes']('Indent') ||
@@ -4196,6 +4201,16 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4196
4201
  target: '.e-content', id: this.element.id + '_gridcontrol_cmenu_AddRow',
4197
4202
  items: [{ text: this.l10n.getConstant('Above'), id: 'Above' }, { text: this.l10n.getConstant('Below'), id: 'Below' }, { text: this.l10n.getConstant('Child'), id: 'Child' }] });
4198
4203
  break;
4204
+ case 'Indent':
4205
+ case ContextMenuItems.RowIndent:
4206
+ items.push({ text: this.l10n.getConstant('RowIndent'),
4207
+ target: '.e-content', iconCss: 'e-indent e-icons', id: this.element.id + '_gridcontrol_cmenu_Indent' });
4208
+ break;
4209
+ case 'Outdent':
4210
+ case ContextMenuItems.RowOutdent:
4211
+ items.push({ text: this.l10n.getConstant('RowOutdent'),
4212
+ target: '.e-content', iconCss: 'e-outdent e-icons', id: this.element.id + '_gridcontrol_cmenu_Outdent' });
4213
+ break;
4199
4214
  default:
4200
4215
  items.push(this.contextMenuItems[i]);
4201
4216
  }
@@ -4214,6 +4229,7 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4214
4229
  */
4215
4230
  getGridToolbar() {
4216
4231
  if (this.toolbar) {
4232
+ this.l10n = new L10n('treegrid', this.defaultLocale, this.locale);
4217
4233
  const items = [];
4218
4234
  let tooltipText;
4219
4235
  for (let i = 0; i < this.toolbar.length; i++) {
@@ -4455,6 +4471,9 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4455
4471
  break;
4456
4472
  case 'locale':
4457
4473
  this.grid.locale = this.locale;
4474
+ this.TreeGridLocale();
4475
+ this.grid.toolbar = this.getGridToolbar();
4476
+ this.grid.contextMenuItems = this.getContextMenu();
4458
4477
  break;
4459
4478
  case 'selectedRowIndex':
4460
4479
  this.grid.selectedRowIndex = this.selectedRowIndex;
@@ -4927,7 +4946,11 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
4927
4946
  * @returns {Column} - Returns tree grid column
4928
4947
  */
4929
4948
  getColumnByUid(uid) {
4930
- const Columns = this.initialRender ? this.grid.columns : this.columns;
4949
+ let Columns = this.initialRender ? this.grid.columns : this.columns;
4950
+ const columnModel = 'columnModel';
4951
+ if (this.grid.columns.length !== this.columnModel.length) {
4952
+ Columns = this.grid[columnModel];
4953
+ }
4931
4954
  return iterateArrayOrObject(Columns, (item) => {
4932
4955
  if (item.uid === uid) {
4933
4956
  return item;
@@ -5055,7 +5078,6 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
5055
5078
  temp = this.columnModel[this.treeColumnIndex].template;
5056
5079
  field = this.columnModel[this.treeColumnIndex].field;
5057
5080
  }
5058
- let stackedHeader = false;
5059
5081
  let gridColumn;
5060
5082
  if (!this.enableColumnVirtualization || (this.enableColumnVirtualization && this.columnModel.length === gridColumns.length)) {
5061
5083
  this.columnModel = [];
@@ -5073,9 +5095,9 @@ let TreeGrid = TreeGrid_1 = class TreeGrid extends Component {
5073
5095
  const merge$$1 = 'deepMerge';
5074
5096
  this[merge$$1] = ['columns']; // Workaround for blazor updateModel
5075
5097
  if (this.grid.columns.length !== this.columnModel.length) {
5076
- stackedHeader = true;
5098
+ this.stackedHeader = true;
5077
5099
  }
5078
- if (!stackedHeader) {
5100
+ if (!this.stackedHeader) {
5079
5101
  this.setProperties({ columns: this.columnModel }, true);
5080
5102
  }
5081
5103
  this[merge$$1] = undefined; // Workaround for blazor updateModel
@@ -7724,8 +7746,8 @@ class RowDD$1 {
7724
7746
  if (this.dropPosition === 'bottomSegment') {
7725
7747
  const primaryKeyField = this.parent.getPrimaryKeyFieldNames()[0];
7726
7748
  const rowIndex = selectedItemIndex === -1 ?
7727
- (this.parent.grid.getRowIndexByPrimaryKey(data[0][primaryKeyField])) - 1
7728
- : this.parent.getSelectedRowIndexes()[0] - 1;
7749
+ (this.parent.grid.getRowIndexByPrimaryKey(data[0][primaryKeyField]))
7750
+ : this.parent.getSelectedRowIndexes()[0];
7729
7751
  const selectedRecord = this.parent.getCurrentViewRecords()[rowIndex];
7730
7752
  this.droppedRecord = getParentData(this.parent, selectedRecord.parentItem.uniqueID);
7731
7753
  }
@@ -9034,6 +9056,16 @@ class Page$1 {
9034
9056
  }
9035
9057
  return newResults;
9036
9058
  }
9059
+ updatePageSize(pageingDetails) {
9060
+ const updateSize = pageingDetails.result.length;
9061
+ const gridPagerModule = this.parent.grid.pagerModule;
9062
+ if (this.parent.pageSettings.pageSizes === true) {
9063
+ if (gridPagerModule.pagerObj.pagerdropdownModule['dropDownListObject'].value === gridPagerModule.pagerObj.getLocalizedLabel('All')) {
9064
+ gridPagerModule['pagerObj'].totalRecordsCount = updateSize;
9065
+ this.parent.grid.pageSettings.pageSize = updateSize;
9066
+ }
9067
+ }
9068
+ }
9037
9069
  pageAction(pageingDetails) {
9038
9070
  const dm = new DataManager(pageingDetails.result);
9039
9071
  if (this.parent.pageSettings.pageSizeMode === 'Root') {
@@ -9069,6 +9101,7 @@ class Page$1 {
9069
9101
  pageingDetails.count = visualData.length;
9070
9102
  let query = new Query();
9071
9103
  const size = this.parent.grid.pageSettings.pageSize;
9104
+ this.updatePageSize(pageingDetails);
9072
9105
  let current = this.parent.grid.pageSettings.currentPage;
9073
9106
  if (visualData.length < (current * size)) {
9074
9107
  current = (Math.floor(visualData.length / size)) + ((visualData.length % size) ? 1 : 0);
@@ -9647,6 +9680,8 @@ class ContextMenu$1 {
9647
9680
  contextMenuOpen(args) {
9648
9681
  const addRow = select('#' + this.parent.element.id + '_gridcontrol_cmenu_AddRow', args.element);
9649
9682
  const editRecord = select('#' + this.parent.element.id + '_gridcontrol_cmenu_Edit', args.element);
9683
+ const indent = select('#' + this.parent.element.id + '_gridcontrol_cmenu_Indent', args.element);
9684
+ const outdent = select('#' + this.parent.element.id + '_gridcontrol_cmenu_Outdent', args.element);
9650
9685
  if (addRow) {
9651
9686
  if (this.parent.grid.editSettings.allowAdding === false) {
9652
9687
  addRow.style.display = 'none';
@@ -9659,6 +9694,47 @@ class ContextMenu$1 {
9659
9694
  && !(isNullOrUndefined(editRecord)) && !(editRecord.classList.contains('e-menu-hide'))) {
9660
9695
  editRecord.style.display = 'none';
9661
9696
  }
9697
+ if (indent || outdent) {
9698
+ const tObj = this.parent;
9699
+ const selectedrow = tObj.getSelectedRows()[0];
9700
+ const targetElement = args.event.target.closest('td');
9701
+ if (isNullOrUndefined(targetElement) || (!isNullOrUndefined(targetElement) && !targetElement.classList.contains('e-rowcell'))) {
9702
+ indent.style.display = outdent.style.display = 'none';
9703
+ }
9704
+ else {
9705
+ if (selectedrow.rowIndex === 0 || tObj.getSelectedRowIndexes().length > 1) {
9706
+ indent.style.display = outdent.style.display = 'none';
9707
+ }
9708
+ else if (args['name'] !== 'rowDeselected' || (!isNullOrUndefined(selectedrow) && tObj.grid.isCheckBoxSelection)) {
9709
+ const selectedItem = tObj.getCurrentViewRecords()[selectedrow.rowIndex];
9710
+ if (!isNullOrUndefined(selectedItem)) {
9711
+ if ((selectedItem.level > tObj.getCurrentViewRecords()[selectedrow.rowIndex - 1].level)) {
9712
+ indent.style.display = 'none';
9713
+ }
9714
+ else {
9715
+ indent.style.display = 'block';
9716
+ }
9717
+ if (selectedItem.level === tObj.getCurrentViewRecords()[selectedrow.rowIndex - 1].level) {
9718
+ indent.style.display = 'block';
9719
+ }
9720
+ if (selectedItem.level === 0) {
9721
+ outdent.style.display = 'none';
9722
+ }
9723
+ if (selectedItem.level !== 0) {
9724
+ outdent.style.display = 'block';
9725
+ }
9726
+ }
9727
+ }
9728
+ if (args['name'] === 'rowDeselected' && isNullOrUndefined(selectedrow) && !tObj.grid.isCheckBoxSelection) {
9729
+ if (this.parent.toolbar['includes']('Indent')) {
9730
+ indent.style.display = 'none';
9731
+ }
9732
+ if (this.parent.toolbar['includes']('Outdent')) {
9733
+ outdent.style.display = 'none';
9734
+ }
9735
+ }
9736
+ }
9737
+ }
9662
9738
  }
9663
9739
  contextMenuClick(args) {
9664
9740
  if (args.item.id === 'Above' || args.item.id === 'Below' || args.item.id === 'Child') {
@@ -9666,6 +9742,13 @@ class ContextMenu$1 {
9666
9742
  this.parent.setProperties({ editSettings: { newRowPosition: args.item.id } }, true);
9667
9743
  this.parent.addRecord();
9668
9744
  }
9745
+ if (args.item.id === this.parent.element.id + '_gridcontrol_cmenu_Indent' || args.item.id === this.parent.element.id + '_gridcontrol_cmenu_Outdent') {
9746
+ if (!isNullOrUndefined(this.parent.rowDragAndDropModule)) {
9747
+ const indentOutdentAction = 'indentOutdentAction';
9748
+ const action = args.item.id === this.parent.element.id + '_gridcontrol_cmenu_Indent' ? 'indent' : 'outdent';
9749
+ this.parent.rowDragAndDropModule[indentOutdentAction](null, action);
9750
+ }
9751
+ }
9669
9752
  }
9670
9753
  /**
9671
9754
  * For internal use only - Get the module name.