@syncfusion/ej2-treegrid 19.4.54 → 20.1.47

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 (65) hide show
  1. package/CHANGELOG.md +1 -63
  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 +4824 -4753
  5. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  6. package/dist/es6/ej2-treegrid.es5.js +5029 -4958
  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/crud-actions.js +3 -1
  13. package/src/treegrid/actions/edit.js +1 -1
  14. package/src/treegrid/actions/rowdragdrop.d.ts +2 -0
  15. package/src/treegrid/actions/rowdragdrop.js +52 -15
  16. package/src/treegrid/actions/toolbar.js +2 -2
  17. package/src/treegrid/base/data.js +4 -2
  18. package/src/treegrid/base/treegrid-model.d.ts +1 -1
  19. package/src/treegrid/base/treegrid.d.ts +12 -0
  20. package/src/treegrid/base/treegrid.js +51 -2
  21. package/src/treegrid/models/column.d.ts +0 -9
  22. package/src/treegrid/models/column.js +0 -19
  23. package/src/treegrid/utils.js +2 -1
  24. package/styles/bootstrap-dark.css +27 -4
  25. package/styles/bootstrap.css +27 -4
  26. package/styles/bootstrap4.css +21 -4
  27. package/styles/bootstrap5-dark.css +43 -19
  28. package/styles/bootstrap5.css +43 -19
  29. package/styles/fabric-dark.css +27 -4
  30. package/styles/fabric.css +27 -4
  31. package/styles/fluent-dark.css +560 -0
  32. package/styles/fluent-dark.scss +1 -0
  33. package/styles/fluent.css +560 -0
  34. package/styles/fluent.scss +1 -0
  35. package/styles/highcontrast-light.css +27 -4
  36. package/styles/highcontrast.css +27 -4
  37. package/styles/material-dark.css +19 -2
  38. package/styles/material.css +19 -2
  39. package/styles/tailwind-dark.css +41 -80
  40. package/styles/tailwind.css +26 -65
  41. package/styles/treegrid/_bootstrap5-definition.scss +3 -3
  42. package/styles/treegrid/_fluent-dark-definition.scss +1 -0
  43. package/styles/treegrid/_fluent-definition.scss +3 -3
  44. package/styles/treegrid/_layout.scss +62 -7
  45. package/styles/treegrid/_tailwind-definition.scss +3 -3
  46. package/styles/treegrid/bootstrap-dark.css +27 -4
  47. package/styles/treegrid/bootstrap.css +27 -4
  48. package/styles/treegrid/bootstrap4.css +21 -4
  49. package/styles/treegrid/bootstrap5-dark.css +43 -19
  50. package/styles/treegrid/bootstrap5.css +43 -19
  51. package/styles/treegrid/fabric-dark.css +27 -4
  52. package/styles/treegrid/fabric.css +27 -4
  53. package/styles/treegrid/fluent-dark.css +560 -0
  54. package/styles/treegrid/fluent-dark.scss +18 -0
  55. package/styles/treegrid/fluent.css +560 -0
  56. package/styles/treegrid/fluent.scss +18 -0
  57. package/styles/treegrid/highcontrast-light.css +27 -4
  58. package/styles/treegrid/highcontrast.css +27 -4
  59. package/styles/treegrid/icons/_fluent-dark.scss +1 -0
  60. package/styles/treegrid/icons/_tailwind-dark.scss +5 -5
  61. package/styles/treegrid/icons/_tailwind.scss +5 -5
  62. package/styles/treegrid/material-dark.css +19 -2
  63. package/styles/treegrid/material.css +19 -2
  64. package/styles/treegrid/tailwind-dark.css +41 -80
  65. package/styles/treegrid/tailwind.css +26 -65
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 19.4.54
3
+ * version : 20.1.47
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-treegrid@*",
3
- "_id": "@syncfusion/ej2-treegrid@19.4.52",
3
+ "_id": "@syncfusion/ej2-treegrid@18.16.3",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-B6Doo437VJTVspTB15gVZ40BpaqThNJQJ6/Gl/Ei7zTnJY6Tg/NEyW8hajktphWX264WotqDWdruY1UfNY6pkA==",
5
+ "_integrity": "sha512-OaaaeQK1Wag332oQTxhdgffuJg+IQA9aBRYfHc5OgYGw+FgdJAu4y/XBVY3LTgkZ0Z1qKxZIU2KxTjs/m0n7vg==",
6
6
  "_location": "/@syncfusion/ej2-treegrid",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -24,8 +24,8 @@
24
24
  "/@syncfusion/ej2-react-treegrid",
25
25
  "/@syncfusion/ej2-vue-treegrid"
26
26
  ],
27
- "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-treegrid/-/ej2-treegrid-19.4.52.tgz",
28
- "_shasum": "88f378640e61e1f0fb7be34f3f84685a3b015430",
27
+ "_resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-treegrid/-/ej2-treegrid-18.16.3.tgz",
28
+ "_shasum": "348932505ec2558f8d30b8ffead3f508749563e8",
29
29
  "_spec": "@syncfusion/ej2-treegrid@*",
30
30
  "_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
31
31
  "author": {
@@ -36,10 +36,10 @@
36
36
  },
37
37
  "bundleDependencies": false,
38
38
  "dependencies": {
39
- "@syncfusion/ej2-base": "~19.4.52",
40
- "@syncfusion/ej2-data": "~19.4.54",
41
- "@syncfusion/ej2-grids": "~19.4.54",
42
- "@syncfusion/ej2-popups": "~19.4.53"
39
+ "@syncfusion/ej2-base": "~20.1.47",
40
+ "@syncfusion/ej2-data": "~20.1.47",
41
+ "@syncfusion/ej2-grids": "~20.1.47",
42
+ "@syncfusion/ej2-popups": "~20.1.47"
43
43
  },
44
44
  "deprecated": false,
45
45
  "description": "Essential JS 2 TreeGrid Component",
@@ -60,6 +60,6 @@
60
60
  "url": "git+https://github.com/syncfusion/ej2-treegrid.git"
61
61
  },
62
62
  "typings": "index.d.ts",
63
- "version": "19.4.54",
63
+ "version": "20.1.47",
64
64
  "sideEffects": false
65
65
  }
@@ -66,7 +66,9 @@ export function editAction(details, control, isSelfReference, addRowIndex, selec
66
66
  var childRecords = parentData ? parentData[control.childMapping] : [];
67
67
  for (var p = childRecords.length - 1; p >= 0; p--) {
68
68
  if (childRecords[p][control.idMapping] === currentData_1[control.idMapping]) {
69
- parentData['childRecords'].splice(p, 1);
69
+ if (!control.enableImmutableMode) {
70
+ parentData['childRecords'].splice(p, 1);
71
+ }
70
72
  childRecords.splice(p, 1);
71
73
  if (!childRecords.length) {
72
74
  parentData.hasChildRecords = false;
@@ -275,7 +275,7 @@ var Edit = /** @class */ (function () {
275
275
  var promise = 'promise';
276
276
  var prom = args[promise];
277
277
  delete args[promise];
278
- if (this.parent.enableVirtualization && !isNullOrUndefined(this.prevAriaRowIndex)) {
278
+ if (this.parent.enableVirtualization && !isNullOrUndefined(this.prevAriaRowIndex) && this.prevAriaRowIndex !== '-1') {
279
279
  args.row.setAttribute('aria-rowindex', this.prevAriaRowIndex);
280
280
  this.prevAriaRowIndex = undefined;
281
281
  }
@@ -24,6 +24,8 @@ export declare class RowDD {
24
24
  /** @hidden */
25
25
  isMultipleGrid: string;
26
26
  /** @hidden */
27
+ private hasDropItem;
28
+ /** @hidden */
27
29
  isaddtoBottom: boolean;
28
30
  /**
29
31
  * Constructor for render module
@@ -1,6 +1,6 @@
1
1
  import { Grid, RowDD as GridDragDrop, parentsUntil } from '@syncfusion/ej2-grids';
2
2
  import { getObject, Scroll } from '@syncfusion/ej2-grids';
3
- import { closest, isNullOrUndefined, classList, setValue, extend, getValue, removeClass, addClass } from '@syncfusion/ej2-base';
3
+ import { closest, isNullOrUndefined, classList, setValue, extend, getValue, removeClass, addClass, setStyleAttribute } from '@syncfusion/ej2-base';
4
4
  import { DataManager } from '@syncfusion/ej2-data';
5
5
  import * as events from '../base/constant';
6
6
  import { editAction } from './crud-actions';
@@ -22,6 +22,8 @@ var RowDD = /** @class */ (function () {
22
22
  /** @hidden */
23
23
  this.isDraggedWithChild = false;
24
24
  /** @hidden */
25
+ this.hasDropItem = true;
26
+ /** @hidden */
25
27
  this.isaddtoBottom = false;
26
28
  Grid.Inject(GridDragDrop);
27
29
  this.parent = parent;
@@ -61,6 +63,7 @@ var RowDD = /** @class */ (function () {
61
63
  RowDD.prototype.reorderRows = function (fromIndexes, toIndex, position) {
62
64
  var tObj = this.parent;
63
65
  var action = 'action';
66
+ var updateRowAndCellElements = 'updateRowAndCellElements';
64
67
  if (fromIndexes[0] !== toIndex && ['above', 'below', 'child'].indexOf(position) !== -1) {
65
68
  if (position === 'above') {
66
69
  this.dropPosition = 'topSegment';
@@ -94,7 +97,13 @@ var RowDD = /** @class */ (function () {
94
97
  }
95
98
  this.parent.grid.refresh();
96
99
  if (this.parent.enableImmutableMode && this.dropPosition === 'middleSegment') {
97
- var index = this.parent.treeColumnIndex + 1;
100
+ var index = void 0;
101
+ if (this.parent.allowRowDragAndDrop) {
102
+ index = this.parent.treeColumnIndex + 1;
103
+ }
104
+ else if (this.parent[action] === 'indenting') {
105
+ index = this.parent.treeColumnIndex;
106
+ }
98
107
  var row = this.parent.getRows()[fromIndexes[0]];
99
108
  var dropData = args.data[0];
100
109
  var totalRecord = [];
@@ -106,18 +115,23 @@ var RowDD = /** @class */ (function () {
106
115
  var parentrow = this.parent.getRows()[toIndex];
107
116
  totalRecord.push(parentData);
108
117
  rows.push(parentrow);
109
- for (var i = 0; i < totalRecord.length; i++) {
110
- this.parent.renderModule.cellRender({
111
- data: totalRecord[i], cell: rows[i].cells[index],
112
- column: this.parent.grid.getColumns()[this.parent.treeColumnIndex],
113
- requestType: 'rowDragAndDrop'
114
- });
115
- if (this.parent[action] === 'indenting' || this.parent[action] === 'outdenting') {
116
- this.parent.renderModule.RowModifier({
117
- data: totalRecord[i], row: rows[i]
118
- });
119
- }
118
+ this.parent[updateRowAndCellElements](totalRecord, rows, index);
119
+ }
120
+ if (this.parent.enableImmutableMode && this.parent[action] === 'outdenting') {
121
+ var index = void 0;
122
+ if (this.parent.allowRowDragAndDrop) {
123
+ index = this.parent.treeColumnIndex + 1;
124
+ }
125
+ else if (this.parent[action] === 'outdenting') {
126
+ index = this.parent.treeColumnIndex;
120
127
  }
128
+ var record = args.data[0];
129
+ var row = this.parent.getRows()[fromIndexes[0]];
130
+ var totalRecord = [];
131
+ var rows = [];
132
+ totalRecord.push(record);
133
+ rows.push(row);
134
+ this.parent[updateRowAndCellElements](totalRecord, rows, index);
121
135
  }
122
136
  }
123
137
  else {
@@ -265,7 +279,8 @@ var RowDD = /** @class */ (function () {
265
279
  }
266
280
  // eslint-disable-next-line max-len
267
281
  if (tempDataSource && (!isNullOrUndefined(droppedRecord) && !droppedRecord.parentItem) && !isNullOrUndefined(droppedRecord.taskData)) {
268
- for (var i = 0; i < Object.keys(tempDataSource).length; i++) {
282
+ var keys = Object.keys(tempDataSource);
283
+ for (var i = 0; i < keys.length; i++) {
269
284
  if (tempDataSource[i][this.parent.childMapping] === droppedRecord.taskData[this.parent.childMapping]) {
270
285
  idx = i;
271
286
  }
@@ -469,13 +484,34 @@ var RowDD = /** @class */ (function () {
469
484
  spanContent.innerHTML = content;
470
485
  dragelem.querySelector('.e-rowcell').appendChild(ele);
471
486
  dragelem.querySelector('.e-rowcell').appendChild(spanContent);
487
+ var dropItemSpan = document.querySelector('.e-dropitemscount');
488
+ if (this.hasDropItem && dropItemSpan) {
489
+ var dropItemLeft = parseInt(dropItemSpan.style.left, 10) + ele.offsetWidth + 16;
490
+ var spanLeft = !this.parent.enableRtl ? dropItemLeft : 0;
491
+ dropItemSpan.style.left = spanLeft + "px";
492
+ this.hasDropItem = false;
493
+ }
472
494
  }
473
495
  };
474
496
  RowDD.prototype.removeErrorElem = function () {
475
497
  var errorelem = document.querySelector('.e-errorelem');
498
+ var errorValue = document.querySelector('.errorValue');
499
+ var dropItemSpan = document.querySelector('.e-dropitemscount');
476
500
  if (errorelem) {
501
+ if (dropItemSpan) {
502
+ var dropItemLeft = parseInt(dropItemSpan.style.left, 10) - errorelem.offsetWidth - 16;
503
+ setStyleAttribute(errorValue, {
504
+ paddingLeft: '0px'
505
+ });
506
+ if (!this.parent.enableRtl) {
507
+ setStyleAttribute(dropItemSpan, {
508
+ left: dropItemLeft + "px"
509
+ });
510
+ }
511
+ }
477
512
  errorelem.remove();
478
513
  }
514
+ this.hasDropItem = true;
479
515
  };
480
516
  RowDD.prototype.topOrBottomBorder = function (target) {
481
517
  var rowElement = [];
@@ -803,6 +839,7 @@ var RowDD = /** @class */ (function () {
803
839
  }
804
840
  if (isNullOrUndefined(droppedRecord.parentItem)) {
805
841
  delete draggedRecord_2.parentItem;
842
+ delete draggedRecord_2.parentUniqueID;
806
843
  draggedRecord_2.level = 0;
807
844
  if (this_1.parent.parentIdMapping) {
808
845
  draggedRecord_2[this_1.parent.parentIdMapping] = null;
@@ -1017,7 +1054,7 @@ var RowDD = /** @class */ (function () {
1017
1054
  if (childRecords && childRecords.length > 0) {
1018
1055
  childIndex = childRecords.indexOf(deletedRow);
1019
1056
  flatParentData.childRecords.splice(childIndex, 1);
1020
- if (!this.parent.parentIdMapping) {
1057
+ if (!this.parent.parentIdMapping || tObj.enableImmutableMode) {
1021
1058
  editAction({ value: deletedRow, action: 'delete' }, this.parent, isSelfReference, deletedRow.index, deletedRow.index);
1022
1059
  }
1023
1060
  }
@@ -47,7 +47,7 @@ var Toolbar = /** @class */ (function () {
47
47
  if (args.row.rowIndex === 0 || tObj.getSelectedRecords().length > 1) {
48
48
  this.enableItems([tObj.element.id + '_gridcontrol_indent', tObj.element.id + '_gridcontrol_outdent'], false);
49
49
  }
50
- else if (args['name'] !== "rowDeselected") {
50
+ else if (args['name'] !== 'rowDeselected') {
51
51
  if (!isNullOrUndefined(tObj.getCurrentViewRecords()[args.row.rowIndex])) {
52
52
  if (!isNullOrUndefined(tObj.getCurrentViewRecords()[args.row.rowIndex]) &&
53
53
  (tObj.getCurrentViewRecords()[args.row.rowIndex].level >
@@ -69,7 +69,7 @@ var Toolbar = /** @class */ (function () {
69
69
  }
70
70
  }
71
71
  }
72
- if (args['name'] === "rowDeselected") {
72
+ if (args['name'] === 'rowDeselected') {
73
73
  if (this.parent.toolbar['includes']('Indent')) {
74
74
  this.enableItems([tObj.element.id + '_gridcontrol_indent'], false);
75
75
  }
@@ -127,7 +127,8 @@ var DataManipulation = /** @class */ (function () {
127
127
  this.hierarchyData = data;
128
128
  }
129
129
  else {
130
- for (var i = 0; i < Object.keys(data).length; i++) {
130
+ var keys = Object.keys(data);
131
+ for (var i = 0; i < keys.length; i++) {
131
132
  var tempData = data[i];
132
133
  this.hierarchyData.push(extend({}, tempData));
133
134
  if (!isNullOrUndefined(tempData[this.parent.idMapping])) {
@@ -367,7 +368,8 @@ var DataManipulation = /** @class */ (function () {
367
368
  };
368
369
  DataManipulation.prototype.createRecords = function (data, parentRecords) {
369
370
  var treeGridData = [];
370
- for (var i = 0, len = Object.keys(data).length; i < len; i++) {
371
+ var keys = Object.keys(data);
372
+ for (var i = 0, len = keys.length; i < len; i++) {
371
373
  var currentData = extend({}, data[i]);
372
374
  currentData.taskData = data[i];
373
375
  var level = 0;
@@ -1,4 +1,4 @@
1
- import { Component, addClass, createElement, EventHandler, isNullOrUndefined, Ajax, ModuleDeclaration, extend} from '@syncfusion/ej2-base';import { removeClass, EmitType, Complex, Collection, KeyboardEventArgs, getValue } from '@syncfusion/ej2-base';import {Event, Property, NotifyPropertyChanges, INotifyPropertyChanged, setValue, KeyboardEvents, L10n } from '@syncfusion/ej2-base';import { Column, ColumnModel } from '../models/column';import { BeforeBatchSaveArgs, BeforeBatchAddArgs, BatchDeleteArgs, BeforeBatchDeleteArgs, Row, CellRenderer, Cell } from '@syncfusion/ej2-grids';import { GridModel, ColumnQueryModeType, HeaderCellInfoEventArgs, EditSettingsModel as GridEditModel } from '@syncfusion/ej2-grids';import {RowDragEventArgs, RowDropEventArgs, RowDropSettingsModel, RowDropSettings, getUid } from '@syncfusion/ej2-grids';import { ActionEventArgs } from'@syncfusion/ej2-grids';import { DetailDataBoundEventArgs, ClipMode, ColumnChooser} from '@syncfusion/ej2-grids';import { SearchEventArgs, AddEventArgs, EditEventArgs, DeleteEventArgs} from '@syncfusion/ej2-grids';import { SaveEventArgs, CellSaveArgs, BatchAddArgs, BatchCancelArgs, BeginEditArgs, CellEditArgs} from '@syncfusion/ej2-grids';import { FilterSettings } from '../models/filter-settings';import { TextWrapSettings } from '../models/textwrap-settings';import { TextWrapSettingsModel } from '../models/textwrap-settings-model';import {Filter} from '../actions/filter';import { Logger as TreeLogger } from '../actions/logger';import { BeforeCopyEventArgs, BeforePasteEventArgs } from '@syncfusion/ej2-grids';import { TreeClipboard } from '../actions/clipboard';import {Aggregate} from '../actions/summary';import { Reorder } from '../actions/reorder';import { Resize } from '../actions/resize';import { Selection as TreeGridSelection } from '../actions/selection';import { ColumnMenu } from '../actions/column-menu';import { DetailRow } from '../actions/detail-row';import { Freeze } from '../actions/freeze-column';import { Print } from '../actions/print';import * as events from '../base/constant';import { FilterSettingsModel } from '../models/filter-settings-model';import { SearchSettings} from '../models/search-settings';import { SearchSettingsModel } from '../models/search-settings-model';import {RowInfo, RowDataBoundEventArgs, PageEventArgs, FilterEventArgs, FailureEventArgs, SortEventArgs } from '@syncfusion/ej2-grids';import { RowSelectingEventArgs, RowSelectEventArgs, RowDeselectEventArgs, IIndex, ISelectedCell } from '@syncfusion/ej2-grids';import {ColumnModel as GridColumnModel, Column as GridColumn, CellSelectEventArgs, CellDeselectEventArgs } from '@syncfusion/ej2-grids';import { SelectionSettings } from '../models/selection-settings';import { SelectionSettingsModel } from '../models/selection-settings-model';import {getActualProperties, SortDirection, getObject, ColumnDragEventArgs } from '@syncfusion/ej2-grids';import { PrintMode, Data, IGrid, ContextMenuItemModel } from '@syncfusion/ej2-grids';import { ColumnMenuItem, ColumnMenuItemModel, CheckBoxChangeEventArgs } from '@syncfusion/ej2-grids';import { ExcelExportCompleteArgs, ExcelHeaderQueryCellInfoEventArgs, ExcelQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { PdfExportCompleteArgs, PdfHeaderQueryCellInfoEventArgs, PdfQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { ExcelExportProperties, PdfExportProperties, CellSelectingEventArgs, PrintEventArgs } from '@syncfusion/ej2-grids';import { ColumnMenuOpenEventArgs } from '@syncfusion/ej2-grids';import {BeforeDataBoundArgs} from '@syncfusion/ej2-grids';import { DataManager, ReturnOption, RemoteSaveAdaptor, Query, JsonAdaptor, Deferred } from '@syncfusion/ej2-data';import { createSpinner, hideSpinner, showSpinner, Dialog } from '@syncfusion/ej2-popups';import { isRemoteData, isOffline, extendArray, isCountRequired, findChildrenRecords } from '../utils';import { Grid, QueryCellInfoEventArgs, Logger } from '@syncfusion/ej2-grids';import { Render } from '../renderer/render';import { VirtualTreeContentRenderer } from '../renderer/virtual-tree-content-render';import { DataManipulation } from './data';import { RowDD } from '../actions/rowdragdrop';import { Sort } from '../actions/sort';import { ITreeData, RowExpandedEventArgs, RowCollapsedEventArgs, RowCollapsingEventArgs, TreeGridExcelExportProperties } from './interface';import { CellSaveEventArgs, DataStateChangeEventArgs, RowExpandingEventArgs, TreeGridPdfExportProperties } from './interface';import { iterateArrayOrObject, GridLine } from '@syncfusion/ej2-grids';import { DataSourceChangedEventArgs, RecordDoubleClickEventArgs, ResizeArgs } from '@syncfusion/ej2-grids';import { ToolbarItems, ToolbarItem, ContextMenuItem, ContextMenuItems, RowPosition, CopyHierarchyType } from '../enum';import { ItemModel, ClickEventArgs, BeforeOpenCloseMenuEventArgs, MenuEventArgs } from '@syncfusion/ej2-navigations';import { PageSettings } from '../models/page-settings';import { PageSettingsModel } from '../models/page-settings-model';import { AggregateRow } from '../models/summary';import { AggregateRowModel } from '../models/summary-model';import { ExcelExport } from '../actions/excel-export';import { PdfExport } from '../actions/pdf-export';import { Toolbar } from '../actions/toolbar';import { Page } from '../actions/page';import { ContextMenu } from '../actions/context-menu';import { EditSettings } from '../models/edit-settings';import { EditSettingsModel } from '../models/edit-settings-model';import { Edit} from '../actions/edit';import { SortSettings } from '../models/sort-settings';import { SortSettingsModel } from '../models/sort-settings-model';import { isHidden, getExpandStatus } from '../utils';import { editAction } from '../actions/crud-actions';import { InfiniteScrollSettings } from '../models/infinite-scroll-settings';import { InfiniteScrollSettingsModel } from '../models/infinite-scroll-settings-model';import { TreeActionEventArgs } from '..';
1
+ import { Component, addClass, createElement, EventHandler, isNullOrUndefined, Ajax, ModuleDeclaration, extend} from '@syncfusion/ej2-base';import { removeClass, EmitType, Complex, Collection, KeyboardEventArgs, getValue } from '@syncfusion/ej2-base';import {Event, Property, NotifyPropertyChanges, INotifyPropertyChanged, setValue, KeyboardEvents, L10n } from '@syncfusion/ej2-base';import { Column, ColumnModel } from '../models/column';import { BeforeBatchSaveArgs, BeforeBatchAddArgs, BatchDeleteArgs, BeforeBatchDeleteArgs, Row, CellRenderer, Cell } from '@syncfusion/ej2-grids';import { GridModel, ColumnQueryModeType, HeaderCellInfoEventArgs, EditSettingsModel as GridEditModel } from '@syncfusion/ej2-grids';import {RowDragEventArgs, RowDropEventArgs, RowDropSettingsModel, RowDropSettings, getUid } from '@syncfusion/ej2-grids';import { ActionEventArgs, TextAlign } from'@syncfusion/ej2-grids';import { DetailDataBoundEventArgs, ClipMode, ColumnChooser} from '@syncfusion/ej2-grids';import { SearchEventArgs, AddEventArgs, EditEventArgs, DeleteEventArgs} from '@syncfusion/ej2-grids';import { SaveEventArgs, CellSaveArgs, BatchAddArgs, BatchCancelArgs, BeginEditArgs, CellEditArgs} from '@syncfusion/ej2-grids';import { FilterSettings } from '../models/filter-settings';import { TextWrapSettings } from '../models/textwrap-settings';import { TextWrapSettingsModel } from '../models/textwrap-settings-model';import {Filter} from '../actions/filter';import { Logger as TreeLogger } from '../actions/logger';import { BeforeCopyEventArgs, BeforePasteEventArgs } from '@syncfusion/ej2-grids';import { TreeClipboard } from '../actions/clipboard';import {Aggregate} from '../actions/summary';import { Reorder } from '../actions/reorder';import { Resize } from '../actions/resize';import { Selection as TreeGridSelection } from '../actions/selection';import { ColumnMenu } from '../actions/column-menu';import { DetailRow } from '../actions/detail-row';import { Freeze } from '../actions/freeze-column';import { Print } from '../actions/print';import * as events from '../base/constant';import { FilterSettingsModel } from '../models/filter-settings-model';import { SearchSettings} from '../models/search-settings';import { SearchSettingsModel } from '../models/search-settings-model';import {RowInfo, RowDataBoundEventArgs, PageEventArgs, FilterEventArgs, FailureEventArgs, SortEventArgs } from '@syncfusion/ej2-grids';import { RowSelectingEventArgs, RowSelectEventArgs, RowDeselectEventArgs, IIndex, ISelectedCell } from '@syncfusion/ej2-grids';import {ColumnModel as GridColumnModel, Column as GridColumn, CellSelectEventArgs, CellDeselectEventArgs } from '@syncfusion/ej2-grids';import { SelectionSettings } from '../models/selection-settings';import { SelectionSettingsModel } from '../models/selection-settings-model';import {getActualProperties, SortDirection, getObject, ColumnDragEventArgs } from '@syncfusion/ej2-grids';import { PrintMode, Data, IGrid, ContextMenuItemModel } from '@syncfusion/ej2-grids';import { ColumnMenuItem, ColumnMenuItemModel, CheckBoxChangeEventArgs } from '@syncfusion/ej2-grids';import { ExcelExportCompleteArgs, ExcelHeaderQueryCellInfoEventArgs, ExcelQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { PdfExportCompleteArgs, PdfHeaderQueryCellInfoEventArgs, PdfQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { ExcelExportProperties, PdfExportProperties, CellSelectingEventArgs, PrintEventArgs } from '@syncfusion/ej2-grids';import { ColumnMenuOpenEventArgs } from '@syncfusion/ej2-grids';import {BeforeDataBoundArgs} from '@syncfusion/ej2-grids';import { DataManager, ReturnOption, RemoteSaveAdaptor, Query, JsonAdaptor, Deferred } from '@syncfusion/ej2-data';import { createSpinner, hideSpinner, showSpinner, Dialog } from '@syncfusion/ej2-popups';import { isRemoteData, isOffline, extendArray, isCountRequired, findChildrenRecords } from '../utils';import { Grid, QueryCellInfoEventArgs, Logger } from '@syncfusion/ej2-grids';import { Render } from '../renderer/render';import { VirtualTreeContentRenderer } from '../renderer/virtual-tree-content-render';import { DataManipulation } from './data';import { RowDD } from '../actions/rowdragdrop';import { Sort } from '../actions/sort';import { ITreeData, RowExpandedEventArgs, RowCollapsedEventArgs, RowCollapsingEventArgs, TreeGridExcelExportProperties } from './interface';import { CellSaveEventArgs, DataStateChangeEventArgs, RowExpandingEventArgs, TreeGridPdfExportProperties } from './interface';import { iterateArrayOrObject, GridLine } from '@syncfusion/ej2-grids';import { DataSourceChangedEventArgs, RecordDoubleClickEventArgs, ResizeArgs } from '@syncfusion/ej2-grids';import { ToolbarItems, ToolbarItem, ContextMenuItem, ContextMenuItems, RowPosition, CopyHierarchyType } from '../enum';import { ItemModel, ClickEventArgs, BeforeOpenCloseMenuEventArgs, MenuEventArgs } from '@syncfusion/ej2-navigations';import { PageSettings } from '../models/page-settings';import { PageSettingsModel } from '../models/page-settings-model';import { AggregateRow } from '../models/summary';import { AggregateRowModel } from '../models/summary-model';import { ExcelExport } from '../actions/excel-export';import { PdfExport } from '../actions/pdf-export';import { Toolbar } from '../actions/toolbar';import { Page } from '../actions/page';import { ContextMenu } from '../actions/context-menu';import { EditSettings } from '../models/edit-settings';import { EditSettingsModel } from '../models/edit-settings-model';import { Edit} from '../actions/edit';import { SortSettings } from '../models/sort-settings';import { SortSettingsModel } from '../models/sort-settings-model';import { isHidden, getExpandStatus } from '../utils';import { editAction } from '../actions/crud-actions';import { InfiniteScrollSettings } from '../models/infinite-scroll-settings';import { InfiniteScrollSettingsModel } from '../models/infinite-scroll-settings-model';import { TreeActionEventArgs } from '..';
2
2
  import {ComponentModel} from '@syncfusion/ej2-base';
3
3
 
4
4
  /**
@@ -97,6 +97,8 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
97
97
  private isExpandRefresh;
98
98
  private gridSettings;
99
99
  private isEditCollapse;
100
+ private treeColumnTextAlign;
101
+ private treeColumnField;
100
102
  /** @hidden */
101
103
  initialRender: boolean;
102
104
  /** @hidden */
@@ -1263,6 +1265,7 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1263
1265
  * @returns {void}
1264
1266
  */
1265
1267
  onPropertyChanged(newProp: TreeGridModel): void;
1268
+ private updateTreeColumnTextAlign;
1266
1269
  /**
1267
1270
  * Destroys the component (detaches/removes all event handlers, attributes, classes, and empties the component element).
1268
1271
  *
@@ -1750,6 +1753,15 @@ export declare class TreeGrid extends Component<HTMLElement> implements INotifyP
1750
1753
  private updateAltRow;
1751
1754
  private treeColumnRowTemplate;
1752
1755
  private collapseRemoteChild;
1756
+ /**
1757
+ * Updates the rows and cells
1758
+ *
1759
+ * @param {Object[]} records - Updates the given records
1760
+ * @param {HTMLTableRowElement[]} rows - Updates the given rows
1761
+ * @param {number} index - Updates the given cell index
1762
+ * @returns {void}
1763
+ */
1764
+ private updateRowAndCellElements;
1753
1765
  /**
1754
1766
  * @hidden
1755
1767
  * @returns {void}
@@ -39,6 +39,7 @@ import { isRemoteData, isOffline, extendArray, isCountRequired, findChildrenReco
39
39
  import { Grid, Logger } from '@syncfusion/ej2-grids';
40
40
  import { Render } from '../renderer/render';
41
41
  import { DataManipulation } from './data';
42
+ import { RowDD } from '../actions/rowdragdrop';
42
43
  import { iterateArrayOrObject } from '@syncfusion/ej2-grids';
43
44
  import { ToolbarItem, ContextMenuItems } from '../enum';
44
45
  import { PageSettings } from '../models/page-settings';
@@ -482,6 +483,13 @@ var TreeGrid = /** @class */ (function (_super) {
482
483
  args: [this]
483
484
  });
484
485
  }
486
+ if (!isNullOrUndefined(this.toolbar) && (this.toolbar['includes']('Indent') || this.toolbar['includes']('Outdent'))) {
487
+ TreeGrid_1.Inject(RowDD);
488
+ modules.push({
489
+ member: 'rowDragAndDrop',
490
+ args: [this]
491
+ });
492
+ }
485
493
  if (this.editSettings.allowAdding || this.editSettings.allowDeleting || this.editSettings.allowEditing) {
486
494
  modules.push({
487
495
  member: 'edit',
@@ -602,6 +610,8 @@ var TreeGrid = /** @class */ (function (_super) {
602
610
  }
603
611
  return modules;
604
612
  };
613
+ var root = 'root';
614
+ this.grid[root] = this[root] ? this[root] : this;
605
615
  this.grid.appendTo(gridContainer);
606
616
  this.wireEvents();
607
617
  this.renderComplete();
@@ -1358,7 +1368,7 @@ var TreeGrid = /** @class */ (function (_super) {
1358
1368
  gridColumn[prop] = this.getGridColumns(column[i][prop], false, index);
1359
1369
  treeGridColumn[prop] = column[i][prop];
1360
1370
  }
1361
- else {
1371
+ else if (!(treeColumn) || prop !== 'sortComparer') {
1362
1372
  gridColumn[prop] = treeGridColumn[prop] = column[i][prop];
1363
1373
  }
1364
1374
  }
@@ -1367,6 +1377,15 @@ var TreeGrid = /** @class */ (function (_super) {
1367
1377
  this.columnModel.push(new Column(treeGridColumn));
1368
1378
  }
1369
1379
  gridColumnCollection.push(gridColumn);
1380
+ if (!isNullOrUndefined(this.columnModel[this.treeColumnIndex]) && this.enableRtl) {
1381
+ if (gridColumn.field === this.columnModel[this.treeColumnIndex].field) {
1382
+ if (isNullOrUndefined(this.treeColumnTextAlign)) {
1383
+ this.treeColumnTextAlign = this.columnModel[this.treeColumnIndex].textAlign;
1384
+ this.treeColumnField = this.columnModel[this.treeColumnIndex].field;
1385
+ }
1386
+ gridColumn.textAlign = 'Right';
1387
+ }
1388
+ }
1370
1389
  }
1371
1390
  return gridColumnCollection;
1372
1391
  };
@@ -1539,6 +1558,9 @@ var TreeGrid = /** @class */ (function (_super) {
1539
1558
  this.grid.allowPdfExport = this.allowPdfExport;
1540
1559
  break;
1541
1560
  case 'enableRtl':
1561
+ if (!isNullOrUndefined(this.treeColumnField)) {
1562
+ this.updateTreeColumnTextAlign();
1563
+ }
1542
1564
  this.grid.enableRtl = this.enableRtl;
1543
1565
  break;
1544
1566
  case 'allowReordering':
@@ -1579,6 +1601,11 @@ var TreeGrid = /** @class */ (function (_super) {
1579
1601
  }
1580
1602
  }
1581
1603
  };
1604
+ TreeGrid.prototype.updateTreeColumnTextAlign = function () {
1605
+ var gridColumn = this.grid.getColumnByField(this.treeColumnField);
1606
+ gridColumn.textAlign = this.enableRtl ? 'Right' : this.treeColumnTextAlign;
1607
+ this.grid.refreshColumns();
1608
+ };
1582
1609
  /**
1583
1610
  * Destroys the component (detaches/removes all event handlers, attributes, classes, and empties the component element).
1584
1611
  *
@@ -2961,7 +2988,7 @@ var TreeGrid = /** @class */ (function (_super) {
2961
2988
  freezeRightRows[i].style.display = displayAction;
2962
2989
  }
2963
2990
  this.notify('childRowExpand', { row: rows[i] });
2964
- if (!isNullOrUndefined(childRecords[i].childRecords) && (action !== 'expand' ||
2991
+ if ((!isNullOrUndefined(childRecords[i].childRecords) && childRecords[i].childRecords.length > 0) && (action !== 'expand' ||
2965
2992
  isNullOrUndefined(childRecords[i].expanded) || childRecords[i].expanded)) {
2966
2993
  this.expandCollapse(action, rows[i], childRecords[i], true);
2967
2994
  if (this.frozenColumns <= this.treeColumnIndex && !isNullOrUndefined(movableRows)) {
@@ -3060,6 +3087,28 @@ var TreeGrid = /** @class */ (function (_super) {
3060
3087
  }
3061
3088
  }
3062
3089
  };
3090
+ /**
3091
+ * Updates the rows and cells
3092
+ *
3093
+ * @param {Object[]} records - Updates the given records
3094
+ * @param {HTMLTableRowElement[]} rows - Updates the given rows
3095
+ * @param {number} index - Updates the given cell index
3096
+ * @returns {void}
3097
+ */
3098
+ TreeGrid.prototype.updateRowAndCellElements = function (records, rows, index) {
3099
+ for (var i = 0; i < records.length; i++) {
3100
+ this.renderModule.cellRender({
3101
+ data: records[i], cell: rows[i].cells[index],
3102
+ column: this.grid.getColumns()[this.treeColumnIndex],
3103
+ requestType: 'rowDragAndDrop'
3104
+ });
3105
+ if (this['action'] === 'indenting' || this['action'] === 'outdenting') {
3106
+ this.renderModule.RowModifier({
3107
+ data: records[i], row: rows[i]
3108
+ });
3109
+ }
3110
+ }
3111
+ };
3063
3112
  /**
3064
3113
  * @hidden
3065
3114
  * @returns {void}
@@ -326,16 +326,7 @@ export declare class Column {
326
326
  * @default null
327
327
  */
328
328
  freeze: freezeDirection;
329
- private parent;
330
329
  constructor(options: ColumnModel);
331
- /**
332
- * Update the State changes reflected for TreeGrid columndirective in react platform.
333
- *
334
- * @param {Column} column - specifies the column
335
- * @returns {void}
336
- * @hidden
337
- */
338
- private setProperties;
339
330
  }
340
331
  /**
341
332
  * Interface for a TreeGrid class Column
@@ -71,25 +71,6 @@ var Column = /** @class */ (function () {
71
71
  this.filter = {};
72
72
  merge(this, options);
73
73
  }
74
- /**
75
- * Update the State changes reflected for TreeGrid columndirective in react platform.
76
- *
77
- * @param {Column} column - specifies the column
78
- * @returns {void}
79
- * @hidden
80
- */
81
- Column.prototype.setProperties = function (column) {
82
- //Angular two way binding
83
- var keys = Object.keys(column);
84
- for (var i = 0; i < keys.length; i++) {
85
- this[keys[i]] = column[keys[i]];
86
- //Refresh the react columnTemplates on state change
87
- if (this.parent && this.parent['isReact'] && keys[i] === 'template') {
88
- var refreshReactColumnTemplateByUid = 'refreshReactColumnTemplateByUid';
89
- this.parent.clipboardModule['treeGridParent'][refreshReactColumnTemplateByUid](this.uid);
90
- }
91
- }
92
- };
93
74
  return Column;
94
75
  }());
95
76
  export { Column };
@@ -122,7 +122,8 @@ export function findChildrenRecords(records) {
122
122
  }
123
123
  if (!isNullOrUndefined(records.childRecords)) {
124
124
  var childRecords = records.childRecords;
125
- for (var i = 0, len = Object.keys(childRecords).length; i < len; i++) {
125
+ var keys = Object.keys(childRecords);
126
+ for (var i = 0, len = keys.length; i < len; i++) {
126
127
  datas.push(childRecords[i]);
127
128
  if (childRecords[i].hasChildRecords || (!isNullOrUndefined(childRecords[i].childRecords) &&
128
129
  childRecords[i].childRecords.length)) {
@@ -172,6 +172,14 @@
172
172
  width: 20px;
173
173
  }
174
174
 
175
+ .e-bigger .e-treegrid .e-hierarchycheckbox .e-frame {
176
+ font-size: 12px;
177
+ line-height: 12px;
178
+ padding: 2px 0;
179
+ height: 20px;
180
+ width: 20px;
181
+ }
182
+
175
183
  .e-bigger .e-treegrid .e-treecell {
176
184
  line-height: 18px;
177
185
  }
@@ -250,8 +258,11 @@
250
258
  }
251
259
 
252
260
  .e-treegrid .e-hierarchycheckbox .e-frame {
253
- height: 20px;
254
- width: 20px;
261
+ font-size: 10px;
262
+ height: 16px;
263
+ line-height: 11px;
264
+ padding: 2px 0;
265
+ width: 16px;
255
266
  }
256
267
 
257
268
  .e-treegrid .e-checkselection .e-frozenheader .e-rowcell,
@@ -442,12 +453,24 @@
442
453
  border-top: 1px solid #0070f0;
443
454
  }
444
455
 
445
- .e-treegrid .e-grid .e-gridcontent td.e-rowcell.e-childborder, .e-treegrid .e-grid .e-gridcontent td.e-rowcell.e-dropbottom {
456
+ .e-treegrid .e-grid .e-gridcontent td.e-rowcell.e-childborder {
457
+ border-bottom: 1px solid #0070f0;
458
+ border-top: 1px solid #0070f0;
459
+ box-shadow: 0 0 0 0 #0070f0;
460
+ }
461
+
462
+ .e-treegrid .e-grid .e-gridcontent td.e-rowdragdrop.e-childborder {
463
+ border-bottom: 1px solid #0070f0;
464
+ border-top: 1px solid #0070f0;
465
+ box-shadow: 0 0 0 0 #0070f0;
466
+ }
467
+
468
+ .e-treegrid .e-grid .e-gridcontent td.e-rowcell.e-dropbottom {
446
469
  border-bottom: 1px solid #0070f0;
447
470
  box-shadow: 0 0 0 0 #0070f0;
448
471
  }
449
472
 
450
- .e-treegrid .e-grid .e-gridcontent td.e-rowdragdrop.e-childborder, .e-treegrid .e-grid .e-gridcontent td.e-rowdragdrop.e-dropbottom {
473
+ .e-treegrid .e-grid .e-gridcontent td.e-rowdragdrop.e-dropbottom {
451
474
  border-bottom: 1px solid #0070f0;
452
475
  box-shadow: 0 0 0 0 #0070f0;
453
476
  }
@@ -173,6 +173,14 @@
173
173
  width: 20px;
174
174
  }
175
175
 
176
+ .e-bigger .e-treegrid .e-hierarchycheckbox .e-frame {
177
+ font-size: 12px;
178
+ line-height: 12px;
179
+ padding: 2px 0;
180
+ height: 20px;
181
+ width: 20px;
182
+ }
183
+
176
184
  .e-bigger .e-treegrid .e-treecell {
177
185
  line-height: 18px;
178
186
  }
@@ -251,8 +259,11 @@
251
259
  }
252
260
 
253
261
  .e-treegrid .e-hierarchycheckbox .e-frame {
254
- height: 20px;
255
- width: 20px;
262
+ font-size: 10px;
263
+ height: 16px;
264
+ line-height: 11px;
265
+ padding: 2px 0;
266
+ width: 16px;
256
267
  }
257
268
 
258
269
  .e-treegrid .e-checkselection .e-frozenheader .e-rowcell,
@@ -443,12 +454,24 @@
443
454
  border-top: 1px solid #317ab9;
444
455
  }
445
456
 
446
- .e-treegrid .e-grid .e-gridcontent td.e-rowcell.e-childborder, .e-treegrid .e-grid .e-gridcontent td.e-rowcell.e-dropbottom {
457
+ .e-treegrid .e-grid .e-gridcontent td.e-rowcell.e-childborder {
458
+ border-bottom: 1px solid #317ab9;
459
+ border-top: 1px solid #317ab9;
460
+ box-shadow: 0 0 0 0 #317ab9;
461
+ }
462
+
463
+ .e-treegrid .e-grid .e-gridcontent td.e-rowdragdrop.e-childborder {
464
+ border-bottom: 1px solid #317ab9;
465
+ border-top: 1px solid #317ab9;
466
+ box-shadow: 0 0 0 0 #317ab9;
467
+ }
468
+
469
+ .e-treegrid .e-grid .e-gridcontent td.e-rowcell.e-dropbottom {
447
470
  border-bottom: 1px solid #317ab9;
448
471
  box-shadow: 0 0 0 0 #317ab9;
449
472
  }
450
473
 
451
- .e-treegrid .e-grid .e-gridcontent td.e-rowdragdrop.e-childborder, .e-treegrid .e-grid .e-gridcontent td.e-rowdragdrop.e-dropbottom {
474
+ .e-treegrid .e-grid .e-gridcontent td.e-rowdragdrop.e-dropbottom {
452
475
  border-bottom: 1px solid #317ab9;
453
476
  box-shadow: 0 0 0 0 #317ab9;
454
477
  }