@syncfusion/ej2-treegrid 31.1.17 → 31.1.20

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 (136) hide show
  1. package/dist/ej2-treegrid.min.js +2 -2
  2. package/dist/ej2-treegrid.umd.min.js +2 -2
  3. package/dist/ej2-treegrid.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-treegrid.es2015.js +13 -4
  5. package/dist/es6/ej2-treegrid.es2015.js.map +1 -1
  6. package/dist/es6/ej2-treegrid.es5.js +13 -4
  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 +14 -50
  12. package/src/treegrid/actions/edit.js +1 -1
  13. package/src/treegrid/actions/rowdragdrop.js +12 -3
  14. package/styles/bootstrap4-lite.css +8 -0
  15. package/styles/bootstrap4.css +8 -0
  16. package/styles/treegrid/bootstrap4.css +8 -0
  17. package/dist/ts/index.d.ts +0 -4
  18. package/dist/ts/index.ts +0 -4
  19. package/dist/ts/treegrid/actions/batch-edit.d.ts +0 -74
  20. package/dist/ts/treegrid/actions/batch-edit.ts +0 -627
  21. package/dist/ts/treegrid/actions/clipboard.d.ts +0 -36
  22. package/dist/ts/treegrid/actions/clipboard.ts +0 -174
  23. package/dist/ts/treegrid/actions/column-chooser.d.ts +0 -37
  24. package/dist/ts/treegrid/actions/column-chooser.ts +0 -55
  25. package/dist/ts/treegrid/actions/column-menu.d.ts +0 -24
  26. package/dist/ts/treegrid/actions/column-menu.ts +0 -39
  27. package/dist/ts/treegrid/actions/command-column.d.ts +0 -24
  28. package/dist/ts/treegrid/actions/command-column.ts +0 -32
  29. package/dist/ts/treegrid/actions/context-menu.d.ts +0 -42
  30. package/dist/ts/treegrid/actions/context-menu.ts +0 -149
  31. package/dist/ts/treegrid/actions/crud-actions.d.ts +0 -66
  32. package/dist/ts/treegrid/actions/crud-actions.ts +0 -388
  33. package/dist/ts/treegrid/actions/detail-row.d.ts +0 -39
  34. package/dist/ts/treegrid/actions/detail-row.ts +0 -124
  35. package/dist/ts/treegrid/actions/edit.d.ts +0 -121
  36. package/dist/ts/treegrid/actions/edit.ts +0 -1083
  37. package/dist/ts/treegrid/actions/excel-export.d.ts +0 -67
  38. package/dist/ts/treegrid/actions/excel-export.ts +0 -240
  39. package/dist/ts/treegrid/actions/filter.d.ts +0 -57
  40. package/dist/ts/treegrid/actions/filter.ts +0 -231
  41. package/dist/ts/treegrid/actions/freeze-column.d.ts +0 -28
  42. package/dist/ts/treegrid/actions/freeze-column.ts +0 -119
  43. package/dist/ts/treegrid/actions/index.d.ts +0 -24
  44. package/dist/ts/treegrid/actions/index.ts +0 -24
  45. package/dist/ts/treegrid/actions/infinite-scroll.d.ts +0 -96
  46. package/dist/ts/treegrid/actions/infinite-scroll.ts +0 -320
  47. package/dist/ts/treegrid/actions/logger.d.ts +0 -25
  48. package/dist/ts/treegrid/actions/logger.ts +0 -136
  49. package/dist/ts/treegrid/actions/page.d.ts +0 -67
  50. package/dist/ts/treegrid/actions/page.ts +0 -212
  51. package/dist/ts/treegrid/actions/pdf-export.d.ts +0 -63
  52. package/dist/ts/treegrid/actions/pdf-export.ts +0 -182
  53. package/dist/ts/treegrid/actions/print.d.ts +0 -37
  54. package/dist/ts/treegrid/actions/print.ts +0 -69
  55. package/dist/ts/treegrid/actions/reorder.d.ts +0 -36
  56. package/dist/ts/treegrid/actions/reorder.ts +0 -60
  57. package/dist/ts/treegrid/actions/resize.d.ts +0 -36
  58. package/dist/ts/treegrid/actions/resize.ts +0 -54
  59. package/dist/ts/treegrid/actions/rowdragdrop.d.ts +0 -405
  60. package/dist/ts/treegrid/actions/rowdragdrop.ts +0 -1896
  61. package/dist/ts/treegrid/actions/selection.d.ts +0 -51
  62. package/dist/ts/treegrid/actions/selection.ts +0 -530
  63. package/dist/ts/treegrid/actions/sort.d.ts +0 -63
  64. package/dist/ts/treegrid/actions/sort.ts +0 -149
  65. package/dist/ts/treegrid/actions/summary.d.ts +0 -47
  66. package/dist/ts/treegrid/actions/summary.ts +0 -231
  67. package/dist/ts/treegrid/actions/toolbar.d.ts +0 -52
  68. package/dist/ts/treegrid/actions/toolbar.ts +0 -154
  69. package/dist/ts/treegrid/actions/virtual-scroll.d.ts +0 -90
  70. package/dist/ts/treegrid/actions/virtual-scroll.ts +0 -306
  71. package/dist/ts/treegrid/base/constant.d.ts +0 -158
  72. package/dist/ts/treegrid/base/constant.ts +0 -158
  73. package/dist/ts/treegrid/base/data.d.ts +0 -90
  74. package/dist/ts/treegrid/base/data.ts +0 -904
  75. package/dist/ts/treegrid/base/index.d.ts +0 -11
  76. package/dist/ts/treegrid/base/index.ts +0 -11
  77. package/dist/ts/treegrid/base/interface.d.ts +0 -186
  78. package/dist/ts/treegrid/base/interface.ts +0 -191
  79. package/dist/ts/treegrid/base/treegrid-model.d.ts +0 -1100
  80. package/dist/ts/treegrid/base/treegrid.d.ts +0 -2422
  81. package/dist/ts/treegrid/base/treegrid.ts +0 -5962
  82. package/dist/ts/treegrid/enum.d.ts +0 -152
  83. package/dist/ts/treegrid/enum.ts +0 -217
  84. package/dist/ts/treegrid/index.d.ts +0 -9
  85. package/dist/ts/treegrid/index.ts +0 -9
  86. package/dist/ts/treegrid/models/column-chooser-settings-model.d.ts +0 -62
  87. package/dist/ts/treegrid/models/column-chooser-settings.d.ts +0 -53
  88. package/dist/ts/treegrid/models/column-chooser-settings.ts +0 -67
  89. package/dist/ts/treegrid/models/column-model.d.ts +0 -30
  90. package/dist/ts/treegrid/models/column.d.ts +0 -697
  91. package/dist/ts/treegrid/models/column.ts +0 -800
  92. package/dist/ts/treegrid/models/edit-settings-model.d.ts +0 -100
  93. package/dist/ts/treegrid/models/edit-settings.d.ts +0 -89
  94. package/dist/ts/treegrid/models/edit-settings.ts +0 -111
  95. package/dist/ts/treegrid/models/filter-settings-model.d.ts +0 -216
  96. package/dist/ts/treegrid/models/filter-settings.d.ts +0 -195
  97. package/dist/ts/treegrid/models/filter-settings.ts +0 -237
  98. package/dist/ts/treegrid/models/index.d.ts +0 -24
  99. package/dist/ts/treegrid/models/index.ts +0 -24
  100. package/dist/ts/treegrid/models/infinite-scroll-settings-model.d.ts +0 -29
  101. package/dist/ts/treegrid/models/infinite-scroll-settings.d.ts +0 -25
  102. package/dist/ts/treegrid/models/infinite-scroll-settings.ts +0 -31
  103. package/dist/ts/treegrid/models/loading-indicator-model.d.ts +0 -21
  104. package/dist/ts/treegrid/models/loading-indicator.d.ts +0 -19
  105. package/dist/ts/treegrid/models/loading-indicator.ts +0 -21
  106. package/dist/ts/treegrid/models/page-settings-model.d.ts +0 -66
  107. package/dist/ts/treegrid/models/page-settings.d.ts +0 -57
  108. package/dist/ts/treegrid/models/page-settings.ts +0 -73
  109. package/dist/ts/treegrid/models/rowdrop-settings-model.d.ts +0 -15
  110. package/dist/ts/treegrid/models/rowdrop-settings.d.ts +0 -34
  111. package/dist/ts/treegrid/models/rowdrop-settings.ts +0 -37
  112. package/dist/ts/treegrid/models/search-settings-model.d.ts +0 -79
  113. package/dist/ts/treegrid/models/search-settings.d.ts +0 -73
  114. package/dist/ts/treegrid/models/search-settings.ts +0 -83
  115. package/dist/ts/treegrid/models/selection-settings-model.d.ts +0 -76
  116. package/dist/ts/treegrid/models/selection-settings.d.ts +0 -68
  117. package/dist/ts/treegrid/models/selection-settings.ts +0 -82
  118. package/dist/ts/treegrid/models/sort-settings-model.d.ts +0 -49
  119. package/dist/ts/treegrid/models/sort-settings.d.ts +0 -43
  120. package/dist/ts/treegrid/models/sort-settings.ts +0 -51
  121. package/dist/ts/treegrid/models/summary-model.d.ts +0 -93
  122. package/dist/ts/treegrid/models/summary.d.ts +0 -126
  123. package/dist/ts/treegrid/models/summary.ts +0 -170
  124. package/dist/ts/treegrid/models/textwrap-settings-model.d.ts +0 -21
  125. package/dist/ts/treegrid/models/textwrap-settings.d.ts +0 -19
  126. package/dist/ts/treegrid/models/textwrap-settings.ts +0 -21
  127. package/dist/ts/treegrid/renderer/index.d.ts +0 -5
  128. package/dist/ts/treegrid/renderer/index.ts +0 -5
  129. package/dist/ts/treegrid/renderer/render.d.ts +0 -41
  130. package/dist/ts/treegrid/renderer/render.ts +0 -379
  131. package/dist/ts/treegrid/renderer/virtual-row-model-generator.d.ts +0 -16
  132. package/dist/ts/treegrid/renderer/virtual-row-model-generator.ts +0 -90
  133. package/dist/ts/treegrid/renderer/virtual-tree-content-render.d.ts +0 -353
  134. package/dist/ts/treegrid/renderer/virtual-tree-content-render.ts +0 -1125
  135. package/dist/ts/treegrid/utils.d.ts +0 -70
  136. package/dist/ts/treegrid/utils.ts +0 -217
@@ -1,149 +0,0 @@
1
- import { isNullOrUndefined } from '@syncfusion/ej2-base';
2
- import { DataManager, Query, QueryOptions } from '@syncfusion/ej2-data';
3
- import { ITreeData } from '../base/interface';
4
- import { TreeGrid } from '../base/treegrid';
5
- import { Sort as GridSort, Grid, SortDirection, getActualProperties } from '@syncfusion/ej2-grids';
6
- import { getParentData } from '../utils';
7
-
8
- /**
9
- * Internal dataoperations for TreeGrid
10
- *
11
- * @hidden
12
- */
13
- export class Sort {
14
- // Internal variables
15
- private flatSortedData: Object[];
16
- private taskIds: Object[];
17
- private storedIndex: number;
18
- private parent: TreeGrid;
19
- private isSelfReference: boolean;
20
-
21
- constructor(grid: TreeGrid) {
22
- Grid.Inject(GridSort);
23
- this.parent = grid;
24
- this.taskIds = [];
25
- this.flatSortedData = [];
26
- this.storedIndex = -1;
27
- this.isSelfReference = !isNullOrUndefined(this.parent.parentIdMapping);
28
- this.addEventListener();
29
- }
30
-
31
- /**
32
- * For internal use only - Get the module name.
33
- *
34
- * @private
35
- * @returns {string} Returns Sort module name
36
- */
37
- private getModuleName(): string {
38
- return 'sort';
39
- }
40
- /**
41
- * @hidden
42
- */
43
-
44
- public addEventListener(): void {
45
- this.parent.on('updateModel', this.updateModel, this);
46
- this.parent.on('createSort', this.createdSortedRecords, this);
47
- }
48
-
49
- /**
50
- * @hidden
51
- * @returns {void}
52
- */
53
- public removeEventListener(): void {
54
- if (this.parent.isDestroyed) { return; }
55
- this.parent.off('updateModel', this.updateModel);
56
- this.parent.off('createSort', this.createdSortedRecords);
57
- }
58
-
59
- private createdSortedRecords(sortParams: { modifiedData: ITreeData[], filteredData: ITreeData[], srtQry: Query }) : void {
60
- const data: ITreeData[] = sortParams.modifiedData;
61
- const srtQry: Query = sortParams.srtQry;
62
- this.iterateSort(data, srtQry);
63
- this.storedIndex = -1;
64
- sortParams.modifiedData = this.flatSortedData;
65
- this.flatSortedData = [];
66
- }
67
- private iterateSort(data: ITreeData[], srtQry: Query): void {
68
- const gridQuery: Query = this.parent.query;
69
- let filterQuery: QueryOptions[] = [];
70
- if (!isNullOrUndefined(gridQuery)) {
71
- filterQuery = gridQuery.queries.filter((q: QueryOptions) => q.fn === 'onWhere');
72
- }
73
- for (let d: number = 0; d < data.length; d++) {
74
- if (filterQuery.length > 0 || this.parent.grid.filterSettings.columns.length > 0 || this.parent.grid.searchSettings.key !== '') {
75
- if (!isNullOrUndefined(getParentData(this.parent, data[parseInt(d.toString(), 10)].uniqueID, true))) {
76
- this.storedIndex++;
77
- this.flatSortedData[this.storedIndex] = data[parseInt(d.toString(), 10)];
78
- }
79
- } else {
80
- this.storedIndex++;
81
- this.flatSortedData[this.storedIndex] = data[parseInt(d.toString(), 10)];
82
- }
83
- if (data[parseInt(d.toString(), 10)].hasChildRecords) {
84
- const childSort: ITreeData[] = <ITreeData[]>(new DataManager(data[parseInt(d.toString(), 10)].childRecords)
85
- .executeLocal(srtQry));
86
- if (this.parent.allowRowDragAndDrop && data[parseInt(d.toString(), 10)].childRecords.indexOf(this.parent.rowDragAndDropModule['draggedRecord']) !== -1 && this.parent.rowDragAndDropModule['dropPosition'] !== 'middleSegment') {
87
- const dragdIndex: number = childSort.indexOf(this.parent.rowDragAndDropModule['draggedRecord']);
88
- childSort.splice(dragdIndex, 1);
89
- const dropdIndex: number = childSort.indexOf(this.parent.rowDragAndDropModule['droppedRecord']);
90
- if (this.parent.rowDragAndDropModule['dropPosition'] === 'topSegment') {
91
- childSort.splice(dropdIndex, 0, this.parent.rowDragAndDropModule['draggedRecord']);
92
- }
93
- else if (this.parent.rowDragAndDropModule['dropPosition'] === 'bottomSegment') {
94
- childSort.splice(dropdIndex + 1, 0, this.parent.rowDragAndDropModule['draggedRecord']);
95
- }
96
- }
97
- this.iterateSort(childSort, srtQry);
98
- }
99
- }
100
- }
101
- /**
102
- * Sorts a column with the given options.
103
- *
104
- * @param {string} columnName - Defines the column name to be sorted.
105
- * @param {SortDirection} direction - Defines the direction of sorting field.
106
- * @param {boolean} isMultiSort - Specifies whether the previous sorted columns are to be maintained.
107
- * @returns {void}
108
- */
109
-
110
- public sortColumn(columnName: string, direction: SortDirection, isMultiSort?: boolean): void {
111
- this.parent.grid.sortColumn(columnName, direction, isMultiSort);
112
- }
113
-
114
- public removeSortColumn(field: string): void {
115
- this.parent.grid.removeSortColumn(field);
116
- }
117
-
118
- /**
119
- * The function used to update sortSettings of TreeGrid.
120
- *
121
- * @returns {void}
122
- * @hidden
123
- */
124
- private updateModel(): void {
125
- this.parent.setProperties({sortSettings: getActualProperties(this.parent.grid.sortSettings)}, true);
126
- }
127
-
128
- /**
129
- * Clears all the sorted columns of the TreeGrid.
130
- *
131
- * @returns {void}
132
- */
133
-
134
-
135
- public clearSorting(): void {
136
- this.parent.grid.clearSorting();
137
- this.updateModel();
138
- }
139
-
140
- /**
141
- * Destroys the Sorting of TreeGrid.
142
- *
143
- * @function destroy
144
- * @returns {void}
145
- */
146
- public destroy(): void {
147
- this.removeEventListener();
148
- }
149
- }
@@ -1,47 +0,0 @@
1
- import { TreeGrid } from '../base/treegrid';
2
- import { QueryOptions } from '@syncfusion/ej2-data';
3
- /**
4
- * TreeGrid Aggregate module
5
- *
6
- * @hidden
7
- */
8
- export declare class Aggregate {
9
- private parent;
10
- private flatChildRecords;
11
- private summaryQuery;
12
- /**
13
- * Constructor for Aggregate module
14
- *
15
- * @param {TreeGrid} parent - Tree Grid instance
16
- */
17
- constructor(parent?: TreeGrid);
18
- /**
19
- * For internal use only - Get the module name.
20
- *
21
- * @private
22
- * @returns {string} Returns Summary module name
23
- */
24
- private getModuleName;
25
- removeEventListener(): void;
26
- /**
27
- * Function to calculate summary values
28
- *
29
- * @param {QueryOptions[]} summaryQuery - DataManager query for aggregate operations
30
- * @param {Object[]} filteredData - Filtered data collection
31
- * @param {boolean} isSort - Specified whether sorting operation performed
32
- * @hidden
33
- * @returns {Object[]} - return flat records with summary values
34
- */
35
- calculateSummaryValue(summaryQuery: QueryOptions[], filteredData: Object[], isSort: boolean): Object[];
36
- private getChildRecordsLength;
37
- private createSummaryItem;
38
- private getSummaryValues;
39
- private getFormatFromType;
40
- /**
41
- * To destroy the Aggregate module
42
- *
43
- * @returns {void}
44
- * @hidden
45
- */
46
- destroy(): void;
47
- }
@@ -1,231 +0,0 @@
1
- import { TreeGrid } from '../base/treegrid';
2
- import { QueryOptions, Query, DataManager } from '@syncfusion/ej2-data';
3
- import { getObject, AggregateType, calculateAggregate, Aggregate as GridAggregate, Grid, appendChildren } from '@syncfusion/ej2-grids';
4
- import { ITreeData } from '../base';
5
- import { findParentRecords } from '../utils';
6
- import { isNullOrUndefined, setValue, NumberFormatOptions, DateFormatOptions, createElement, extend } from '@syncfusion/ej2-base';
7
- import { AggregateColumn } from '../models/summary';
8
- import { AggregateRowModel } from '../models/summary-model';
9
- import { Column } from '../models';
10
-
11
-
12
- /**
13
- * TreeGrid Aggregate module
14
- *
15
- * @hidden
16
- */
17
- export class Aggregate {
18
- private parent: TreeGrid;
19
- private flatChildRecords: Object[];
20
- private summaryQuery: QueryOptions[];
21
- /**
22
- * Constructor for Aggregate module
23
- *
24
- * @param {TreeGrid} parent - Tree Grid instance
25
- */
26
- constructor(parent?: TreeGrid) {
27
- Grid.Inject(GridAggregate);
28
- this.parent = parent;
29
- this.flatChildRecords = [];
30
- this.summaryQuery = [];
31
- }
32
-
33
- /**
34
- * For internal use only - Get the module name.
35
- *
36
- * @private
37
- * @returns {string} Returns Summary module name
38
- */
39
- private getModuleName(): string {
40
- return 'summary';
41
- }
42
-
43
- public removeEventListener(): void {
44
- if (this.parent.isDestroyed) { return; }
45
- }
46
-
47
- /**
48
- * Function to calculate summary values
49
- *
50
- * @param {QueryOptions[]} summaryQuery - DataManager query for aggregate operations
51
- * @param {Object[]} filteredData - Filtered data collection
52
- * @param {boolean} isSort - Specified whether sorting operation performed
53
- * @hidden
54
- * @returns {Object[]} - return flat records with summary values
55
- */
56
- public calculateSummaryValue(summaryQuery: QueryOptions[], filteredData: Object[], isSort: boolean): Object[] {
57
- this.summaryQuery = summaryQuery;
58
- let parentRecord: ITreeData;
59
- const parentData: Object[] = filteredData.filter((data: Object) => !getObject('isSummaryRow', data));
60
- const parentRecords: Object = findParentRecords(parentData);
61
- const flatRecords: Object[] = (<Object[]>parentData).slice();
62
- const summaryLength: number = Object.keys(this.parent.aggregates).length;
63
- const dataLength: number = Object.keys(parentRecords).length; let childRecordsLength: number;
64
- const columns: Column[] = this.parent.getColumns();
65
- if (this.parent.aggregates.filter((x: AggregateRowModel) => x.showChildSummary).length) {
66
- for (let i: number = 0, len: number = dataLength; i < len; i++) {
67
- parentRecord = parentRecords[parseInt(i.toString(), 10)];
68
- childRecordsLength = this.getChildRecordsLength(parentRecord, flatRecords);
69
- if (childRecordsLength) {
70
- for (let summaryRowIndex: number = 1, len: number = summaryLength; summaryRowIndex <= len; summaryRowIndex++) {
71
- let item: Object; item = {};
72
- for (let i: number = 0; i < columns.length; i++) {
73
- const field: string = (isNullOrUndefined(getObject('field', columns[parseInt(i.toString(), 10)]))) ?
74
- columns[parseInt(i.toString(), 10)] : getObject('field', (columns[parseInt(i.toString(), 10)]));
75
- item[`${field}`] = null;
76
- }
77
- item = this.createSummaryItem(item, this.parent.aggregates[summaryRowIndex - 1]);
78
- if (this.parent.aggregates[summaryRowIndex - 1].showChildSummary) {
79
- let idx: number;
80
- flatRecords.map((e: ITreeData, i: number) => {
81
- if (e.uniqueID === parentRecord.uniqueID) { idx = i; return; } });
82
- const currentIndex: number = idx + childRecordsLength + summaryRowIndex;
83
- const summaryParent: ITreeData = extend({}, parentRecord);
84
- delete summaryParent.childRecords;
85
- delete summaryParent[this.parent.childMapping];
86
- setValue('parentItem', summaryParent, item);
87
- const level: number = getObject('level', summaryParent);
88
- setValue('level', level + 1, item);
89
- setValue('isSummaryRow', true, item);
90
- setValue('parentUniqueID', summaryParent.uniqueID, item);
91
- if (isSort) {
92
- const childRecords: Object[] = getObject('childRecords', parentRecord);
93
- if (childRecords.length) {
94
- childRecords.push(item);
95
- }
96
- }
97
- flatRecords.splice(currentIndex, 0, item);
98
- } else {
99
- continue;
100
- }
101
- }
102
- this.flatChildRecords = [];
103
- }
104
- }
105
- } else {
106
- const items: Object = {};
107
- for (let columnIndex: number = 0, length: number = columns.length; columnIndex < length; columnIndex++) {
108
- const fields: string = isNullOrUndefined(getObject('field', columns[parseInt(columnIndex.toString(), 10)])) ?
109
- columns[parseInt(columnIndex.toString(), 10)] : getObject('field', columns[parseInt(columnIndex.toString(), 10)]);
110
- items[`${fields}`] = null;
111
- }
112
- for (let summaryRowIndex: number = 1, length: number = summaryLength; summaryRowIndex <= length; summaryRowIndex++) {
113
- this.createSummaryItem(items, this.parent.aggregates[summaryRowIndex - 1]);
114
- }
115
- }
116
- return flatRecords;
117
- }
118
-
119
- private getChildRecordsLength(parentData: ITreeData, flatData: Object[]): number {
120
- const recordLength: number = Object.keys(flatData).length; let record: ITreeData;
121
- for (let i: number = 0, len: number = recordLength; i < len; i++) {
122
- record = flatData[parseInt(i.toString(), 10)];
123
- const parent: Object = isNullOrUndefined(record.parentItem) ? null :
124
- flatData.filter((e: ITreeData) => {return e.uniqueID === record.parentItem.uniqueID; })[0];
125
- if (parentData === parent) {
126
- this.flatChildRecords.push(record);
127
- const hasChild: boolean = getObject('hasChildRecords', record);
128
- if (hasChild) {
129
- this.getChildRecordsLength(record, flatData);
130
- } else {
131
- continue;
132
- }
133
- }
134
- }
135
- return this.flatChildRecords.length;
136
- }
137
-
138
- private createSummaryItem(itemData: Object, summary: AggregateRowModel): Object {
139
- const summaryColumnLength: number = Object.keys(summary.columns).length;
140
- for (let i: number = 0, len: number = summaryColumnLength; i < len; i++) {
141
- const displayColumn: string = isNullOrUndefined(summary.columns[parseInt(i.toString(), 10)].columnName) ?
142
- summary.columns[parseInt(i.toString(), 10)].field : summary.columns[parseInt(i.toString(), 10)].columnName;
143
- const keys: string[] = Object.keys(itemData);
144
- for (const key of keys) {
145
- if (key === displayColumn) {
146
- if (this.flatChildRecords.length) {
147
- itemData[`${key}`] = this.getSummaryValues(summary.columns[parseInt(i.toString(), 10)] as AggregateColumn, this.flatChildRecords);
148
- } else if (this.parent.isLocalData) {
149
- const data: Object[] = this.parent.dataSource instanceof DataManager ? this.parent.dataSource.dataSource.json
150
- : this.parent.flatData;
151
- itemData[`${key}`] = this.getSummaryValues(summary.columns[parseInt(i.toString(), 10)] as AggregateColumn, data);
152
- }
153
- } else {
154
- continue;
155
- }
156
- }
157
- }
158
- return itemData;
159
- }
160
-
161
- private getSummaryValues(summaryColumn: AggregateColumn, summaryData: Object[]): string {
162
- const qry: Query = new Query(); const single: Object = {};
163
- const helper: Object & { format?: Function } = {};
164
- const type: string = !isNullOrUndefined(summaryColumn.field) ?
165
- this.parent.getColumnByField(summaryColumn.field).type : undefined;
166
- summaryColumn.setPropertiesSilent({format: this.getFormatFromType(summaryColumn.format, type)});
167
- summaryColumn.setFormatter(this.parent.grid.locale);
168
- const formatFn: Function = summaryColumn.getFormatter() || ((): Function => (a: Object) => a)();
169
- summaryColumn.setTemplate(helper);
170
- const tempObj: { fn: Function, property: string } = summaryColumn.getTemplate(2);
171
- qry.queries = this.summaryQuery;
172
- qry.requiresCount();
173
- const sumData: Object[] = new DataManager(summaryData).executeLocal(qry);
174
- let types: AggregateType[] = <AggregateType[]>summaryColumn.type; let summaryKey: string;
175
- types = <AggregateType[]>[summaryColumn.type];
176
- for (let i: number = 0; i < types.length; i++) {
177
- summaryKey = types[parseInt(i.toString(), 10)];
178
- const key: string = summaryColumn.field + ' - ' + types[parseInt(i.toString(), 10)].toLowerCase();
179
- const val: Object = types[parseInt(i.toString(), 10)] !== 'Custom' ? getObject('aggregates', sumData) :
180
- /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
181
- calculateAggregate(types[parseInt(i.toString(), 10)], sumData, summaryColumn as any, this.parent);
182
- const disp: string = summaryColumn.columnName;
183
- const value: Object = types[parseInt(i.toString(), 10)] !== 'Custom' ? val[`${key}`] : val;
184
- single[`${disp}`] = single[`${disp}`] || {}; single[`${disp}`][`${key}`] = value;
185
- single[`${disp}`][types[parseInt(i.toString(), 10)]] = !isNullOrUndefined(val) ? formatFn(value) : ' ';
186
- }
187
- helper.format = summaryColumn.getFormatter();
188
- const cellElement: Element = createElement('td', {
189
- className: 'e-summary'
190
- });
191
- if ((<{ isReact?: boolean }>this.parent).isReact && typeof (summaryColumn.footerTemplate) !== 'string') {
192
- const renderReactTemplates: string = 'renderReactTemplates';
193
- tempObj.fn(single[summaryColumn.columnName], this.parent, tempObj.property, '', null, null, cellElement);
194
- this.parent[`${renderReactTemplates}`]();
195
- } else {
196
- appendChildren(cellElement, tempObj.fn(single[summaryColumn.columnName], this.parent, tempObj.property));
197
- }
198
- const value: string = single[`${summaryColumn.columnName}`][`${summaryKey}`];
199
- return cellElement.innerHTML.indexOf(value) === -1 ? cellElement.innerHTML + value : cellElement.innerHTML;
200
- }
201
-
202
- private getFormatFromType(summaryformat: string| NumberFormatOptions, type: string):
203
- string | NumberFormatOptions | DateFormatOptions {
204
- if (isNullOrUndefined(type) || typeof summaryformat !== 'string') {
205
- return summaryformat;
206
- }
207
- let obj: string | NumberFormatOptions | DateFormatOptions;
208
- switch (type) {
209
- case 'number':
210
- obj = { format: summaryformat };
211
- break;
212
- case 'datetime':
213
- obj = { type: 'dateTime', skeleton: summaryformat };
214
- break;
215
- case 'date':
216
- obj = { type: type, skeleton: summaryformat };
217
- break;
218
- }
219
- return obj;
220
- }
221
-
222
- /**
223
- * To destroy the Aggregate module
224
- *
225
- * @returns {void}
226
- * @hidden
227
- */
228
- public destroy(): void {
229
- this.removeEventListener();
230
- }
231
- }
@@ -1,52 +0,0 @@
1
- import { TreeGrid } from '../base';
2
- /**
3
- * Toolbar Module for TreeGrid
4
- *
5
- * @hidden
6
- */
7
- export declare class Toolbar {
8
- private parent;
9
- constructor(parent: TreeGrid);
10
- /**
11
- * For internal use only - Get the module name.
12
- *
13
- * @private
14
- * @returns {string} - Returns Toolbar module name
15
- */
16
- private getModuleName;
17
- /**
18
- * @hidden
19
- * @returns {void}
20
- */
21
- addEventListener(): void;
22
- /**
23
- * @hidden
24
- * @returns {void}
25
- */
26
- removeEventListener(): void;
27
- private refreshToolbar;
28
- private toolbarClickHandler;
29
- /**
30
- * Gets the toolbar of the TreeGrid.
31
- *
32
- * @returns {Element} - Returns Toolbar element
33
- * @hidden
34
- */
35
- getToolbar(): Element;
36
- /**
37
- * Enables or disables ToolBar items.
38
- *
39
- * @param {string[]} items - Defines the collection of itemID of ToolBar items.
40
- * @param {boolean} isEnable - Defines the items to be enabled or disabled.
41
- * @returns {void}
42
- * @hidden
43
- */
44
- enableItems(items: string[], isEnable: boolean): void;
45
- /**
46
- * Destroys the ToolBar.
47
- *
48
- * @method destroy
49
- * @returns {void}
50
- */
51
- destroy(): void;
52
- }
@@ -1,154 +0,0 @@
1
- import { Grid, Toolbar as tool, RowSelectEventArgs } from '@syncfusion/ej2-grids';
2
- import { TreeGrid, ITreeData } from '../base';
3
- import * as events from '../base/constant';
4
- import { ClickEventArgs } from '@syncfusion/ej2-navigations/src/toolbar';
5
- import { isNullOrUndefined } from '@syncfusion/ej2-base';
6
- /**
7
- * Toolbar Module for TreeGrid
8
- *
9
- * @hidden
10
- */
11
- export class Toolbar {
12
- private parent: TreeGrid;
13
- constructor(parent: TreeGrid) {
14
- Grid.Inject(tool);
15
- this.parent = parent;
16
- this.addEventListener();
17
- }
18
- /**
19
- * For internal use only - Get the module name.
20
- *
21
- * @private
22
- * @returns {string} - Returns Toolbar module name
23
- */
24
- private getModuleName(): string {
25
- return 'toolbar';
26
- }
27
-
28
- /**
29
- * @hidden
30
- * @returns {void}
31
- */
32
- public addEventListener(): void {
33
- this.parent.on(events.rowSelected, this.refreshToolbar, this);
34
- this.parent.on(events.rowDeselected, this.refreshToolbar, this);
35
- this.parent.on(events.toolbarClick, this.toolbarClickHandler, this);
36
- }
37
-
38
- /**
39
- * @hidden
40
- * @returns {void}
41
- */
42
- public removeEventListener(): void {
43
- if (this.parent.isDestroyed) { return; }
44
- this.parent.off(events.rowSelected, this.refreshToolbar);
45
- this.parent.off(events.rowDeselected, this.refreshToolbar);
46
- this.parent.off(events.toolbarClick, this.toolbarClickHandler);
47
- }
48
-
49
- private refreshToolbar(args: RowSelectEventArgs): void {
50
- const toolbarElement: Element = this.parent.grid.toolbarModule.getToolbar();
51
- if (!isNullOrUndefined(toolbarElement)) {
52
- const tObj: TreeGrid = this.parent; let indentElement: HTMLElement; let outdentElement: HTMLElement;
53
- const indentID: string = tObj.element.id + '_gridcontrol_indent';
54
- const outdentID: string = tObj.element.id + '_gridcontrol_outdent';
55
- const indentEle: HTMLElement = toolbarElement.querySelector('#' + indentID);
56
- const outdentEle: HTMLElement = toolbarElement.querySelector('#' + outdentID);
57
- let row: HTMLTableRowElement = args.row as HTMLTableRowElement;
58
- const selectedrow: HTMLTableRowElement = tObj.getSelectedRows()[0] as HTMLTableRowElement;
59
- if (!isNullOrUndefined(row[0])) {
60
- row = row[0];
61
- }
62
- row = (!isNullOrUndefined(selectedrow) && selectedrow.rowIndex !== row.rowIndex) ? selectedrow : row;
63
- if (indentEle !== null && outdentEle !== null) {
64
- indentElement = indentEle.parentElement;
65
- outdentElement = outdentEle.parentElement;
66
- if (row.rowIndex === 0 || tObj.getSelectedRowIndexes().length > 1) {
67
- indentElement.classList.add('e-hidden');
68
- outdentElement.classList.add('e-hidden');
69
- }
70
- else if (args['name'] !== 'rowDeselected' || (!isNullOrUndefined(selectedrow) && tObj.grid.isCheckBoxSelection)) {
71
- const selectedItem: ITreeData = tObj.getCurrentViewRecords()[row.rowIndex];
72
- if (!isNullOrUndefined(selectedItem)) {
73
- if ((selectedItem.level > (tObj.getCurrentViewRecords()[row.rowIndex - 1] as ITreeData).level)) {
74
- indentElement.classList.add('e-hidden');
75
- } else {
76
- indentElement.classList.remove('e-hidden');
77
- }
78
- if (selectedItem.level === (tObj.getCurrentViewRecords()[row.rowIndex - 1] as ITreeData).level) {
79
- indentElement.classList.remove('e-hidden');
80
- }
81
- if (selectedItem.level === 0) {
82
- outdentElement.classList.add('e-hidden');
83
- }
84
- if (selectedItem.level !== 0) {
85
- outdentElement.classList.remove('e-hidden');
86
- }
87
- }
88
- }
89
- if (args['name'] === 'rowDeselected' && isNullOrUndefined(selectedrow) && !tObj.grid.isCheckBoxSelection) {
90
- if (this.parent.toolbar['includes']('Indent')) {
91
- indentElement.classList.add('e-hidden');
92
- }
93
- if (this.parent.toolbar['includes']('Outdent')) {
94
- outdentElement.classList.add('e-hidden');
95
- }
96
- }
97
- }
98
- }
99
- }
100
- private toolbarClickHandler(args: ClickEventArgs): void {
101
- const tObj: TreeGrid = this.parent; const indentOutdentAction: string = 'indentOutdentAction';
102
- if (this.parent.editSettings.mode === 'Cell' && this.parent.grid.editSettings.mode === 'Batch' &&
103
- args.item.id === this.parent.grid.element.id + '_update') {
104
- args.cancel = true;
105
- this.parent.grid.editModule.saveCell();
106
- }
107
- if (args.item.id === this.parent.grid.element.id + '_expandall') {
108
- this.parent.expandAll();
109
- }
110
- if (args.item.id === this.parent.grid.element.id + '_collapseall') {
111
- this.parent.collapseAll();
112
- }
113
- if (args.item.id === tObj.grid.element.id + '_indent' && tObj.getSelectedRecords().length
114
- && !isNullOrUndefined(tObj.rowDragAndDropModule)) {
115
- this.parent.rowDragAndDropModule[`${indentOutdentAction}`](null, 'indent');
116
- }
117
- if (args.item.id === tObj.grid.element.id + '_outdent' && tObj.getSelectedRecords().length
118
- && !isNullOrUndefined(tObj.rowDragAndDropModule)) {
119
- this.parent.rowDragAndDropModule[`${indentOutdentAction}`](null, 'outdent');
120
- }
121
- }
122
-
123
- /**
124
- * Gets the toolbar of the TreeGrid.
125
- *
126
- * @returns {Element} - Returns Toolbar element
127
- * @hidden
128
- */
129
- public getToolbar(): Element {
130
- return this.parent.grid.toolbarModule.getToolbar();
131
- }
132
-
133
- /**
134
- * Enables or disables ToolBar items.
135
- *
136
- * @param {string[]} items - Defines the collection of itemID of ToolBar items.
137
- * @param {boolean} isEnable - Defines the items to be enabled or disabled.
138
- * @returns {void}
139
- * @hidden
140
- */
141
- public enableItems(items: string[], isEnable: boolean): void {
142
- this.parent.grid.toolbarModule.enableItems(items, isEnable);
143
- }
144
-
145
- /**
146
- * Destroys the ToolBar.
147
- *
148
- * @method destroy
149
- * @returns {void}
150
- */
151
- public destroy(): void {
152
- this.removeEventListener();
153
- }
154
- }