@syncfusion/ej2-treegrid 31.1.17 → 31.1.21

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,119 +0,0 @@
1
- import { TreeGrid } from '../base/treegrid';
2
- import { parentsUntil } from '@syncfusion/ej2-grids';
3
- import { Column, ColumnModel } from '../models/column';
4
- import { Grid, Freeze as FreezeColumn } from '@syncfusion/ej2-grids';
5
- import { ITreeData } from '../base';
6
- import { addClass, isNullOrUndefined } from '@syncfusion/ej2-base';
7
-
8
- /**
9
- * TreeGrid Freeze module
10
- *
11
- * @hidden
12
- */
13
- export class Freeze {
14
- private parent: TreeGrid;
15
-
16
- /**
17
- * Constructor for render module
18
- *
19
- * @param {TreeGrid} parent - Tree Grid instance
20
- */
21
- constructor(parent?: TreeGrid) {
22
- Grid.Inject(FreezeColumn);
23
- this.parent = parent;
24
- this.addEventListener();
25
- }
26
-
27
- public addEventListener(): void {
28
- this.parent.on('rowExpandCollapse', this.rowExpandCollapse, this);
29
- this.parent.on('dataBoundArg', this.dataBoundArg, this);
30
- this.parent.grid.on('dblclick', this.dblClickHandler, this);
31
- }
32
-
33
- public removeEventListener(): void {
34
- if (this.parent.isDestroyed) { return; }
35
- this.parent.off('rowExpandCollapse', this.rowExpandCollapse);
36
- this.parent.off('dataBoundArg', this.dataBoundArg);
37
- this.parent.grid.off('dblclick', this.dblClickHandler);
38
- }
39
-
40
- private rowExpandCollapse(args: {
41
- detailrows: HTMLTableRowElement[], action: string,
42
- record?: ITreeData, row?: HTMLTableRowElement
43
- }): void {
44
- const movableRows: HTMLTableRowElement[] = <HTMLTableRowElement[]>this.parent.getDataRows();
45
- const frozenrows: HTMLTableRowElement[] = this.parent.getRows();
46
- let rows: HTMLTableRowElement[];
47
- let frozenRightRows: HTMLTableRowElement[];
48
- const freeze: boolean = (this.parent.getFrozenLeftColumnsCount() > 0 ||
49
- this.parent.getFrozenRightColumnsCount() > 0) ? true : false;
50
- if (freeze) {
51
- frozenRightRows = <HTMLTableRowElement[]>this.parent.getRows().filter(
52
- (e: HTMLTableRowElement) =>
53
- e.querySelector(
54
- '.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1)
55
- ));
56
- }
57
- if (!args.detailrows.length) {
58
- rows = movableRows.filter(
59
- (e: HTMLTableRowElement) =>
60
- e.querySelector(
61
- '.e-gridrowindex' + args.record.index + 'level' + (args.record.level + 1)
62
- ));
63
- } else {
64
- rows = args.detailrows;
65
- }
66
- for (let i: number = 0; i < rows.length; i++) {
67
- const row: HTMLTableRowElement = rows[parseInt(i.toString(), 10)];
68
- const rData: ITreeData = this.parent.grid.getRowObjectFromUID(row.getAttribute('data-uid')).data;
69
- if (!isNullOrUndefined(movableRows) && row.parentElement.firstElementChild.clientHeight > 0) {
70
- row.style.height = row.parentElement.firstElementChild.clientHeight + 'px';
71
- }
72
- this.parent['toggleRowVisibility'](row, args.action);
73
- if (freeze && frozenRightRows.length) {
74
- this.parent['toggleRowVisibility'](frozenRightRows[parseInt(i.toString(), 10)], args.action);
75
- }
76
- const queryselector: string = args.action === 'e-childrow-hidden' ? '.e-treecolumn-container .e-treegridcollapse'
77
- : '.e-treecolumn-container .e-treegridexpand';
78
- if (frozenrows[row.rowIndex].querySelector(queryselector)) {
79
- const cRow: HTMLTableRowElement[] = [];
80
- for (let i: number = 0; i < movableRows.length; i++) {
81
- if (movableRows[parseInt(i.toString(), 10)].querySelector('.e-gridrowindex' + rData.index + 'level' + (rData.level + 1))) {
82
- cRow.push(movableRows[parseInt(i.toString(), 10)]);
83
- }
84
- }
85
- if (cRow.length) {
86
- const data: ITreeData = this.parent.getCurrentViewRecords()[cRow[0].rowIndex];
87
- this.rowExpandCollapse({ detailrows: cRow, action: args.action, record: data });
88
- }
89
- }
90
- }
91
- }
92
- private dblClickHandler(e: MouseEvent): void {
93
- if (parentsUntil(e.target as Element, 'e-rowcell') &&
94
- this.parent.grid.editSettings.allowEditOnDblClick && this.parent.editSettings.mode !== 'Cell' && (!e.target['classList'].contains('e-treegridcollapse') && !e.target['classList'].contains('e-treegridexpand'))) {
95
- this.parent.startEdit(parentsUntil(e.target as Element, 'e-row') as HTMLTableRowElement);
96
- }
97
- }
98
- private dataBoundArg(): void {
99
- const checkboxColumn: Column[] = this.parent.getColumns().filter((e: ColumnModel) => {
100
- return e.showCheckbox;
101
- });
102
- if (checkboxColumn.length && this.parent.freezeModule && this.parent.initialRender) {
103
- addClass([this.parent.element.getElementsByClassName('e-grid')[0]], 'e-checkselection');
104
- }
105
- }
106
- public destroy(): void {
107
- this.removeEventListener();
108
- }
109
-
110
- /**
111
- * For internal use only - Get the module name.
112
- *
113
- * @private
114
- * @returns {string} Returns Freeze module name
115
- */
116
- private getModuleName(): string {
117
- return 'freeze';
118
- }
119
- }
@@ -1,24 +0,0 @@
1
- /**
2
- * actions export
3
- */
4
- export * from './filter';
5
- export * from './excel-export';
6
- export * from './pdf-export';
7
- export * from './page';
8
- export * from './toolbar';
9
- export * from './summary';
10
- export * from './sort';
11
- export * from './reorder';
12
- export * from './resize';
13
- export * from './clipboard';
14
- export * from './column-menu';
15
- export * from './context-menu';
16
- export * from './edit';
17
- export * from './command-column';
18
- export * from './selection';
19
- export * from './detail-row';
20
- export * from './virtual-scroll';
21
- export * from './freeze-column';
22
- export * from './column-chooser';
23
- export * from './logger';
24
- export * from './infinite-scroll';
@@ -1,24 +0,0 @@
1
- /**
2
- * actions export
3
- */
4
- export * from './filter';
5
- export * from './excel-export';
6
- export * from './pdf-export';
7
- export * from './page';
8
- export * from './toolbar';
9
- export * from './summary';
10
- export * from './sort';
11
- export * from './reorder';
12
- export * from './resize';
13
- export * from './clipboard';
14
- export * from './column-menu';
15
- export * from './context-menu';
16
- export * from './edit';
17
- export * from './command-column';
18
- export * from './selection';
19
- export * from './detail-row';
20
- export * from './virtual-scroll';
21
- export * from './freeze-column';
22
- export * from './column-chooser';
23
- export * from './logger';
24
- export * from './infinite-scroll';
@@ -1,96 +0,0 @@
1
- import { TreeGrid } from '../base/treegrid';
2
- /**
3
- * TreeGrid Infinite Scroll module will handle Infinite Scrolling.
4
- *
5
- * @hidden
6
- */
7
- export declare class InfiniteScroll {
8
- private parent;
9
- private visualData;
10
- /**
11
- * Constructor for VirtualScroll module
12
- *
13
- * @param {TreeGrid} parent - Tree Grid instance
14
- */
15
- constructor(parent?: TreeGrid);
16
- /**
17
- * For internal use only - Get the module name.
18
- *
19
- * @private
20
- * @returns {string} - Returns Logger module name
21
- */
22
- protected getModuleName(): string;
23
- /**
24
- * @hidden
25
- * @returns {void}
26
- */
27
- addEventListener(): void;
28
- /**
29
- * @hidden
30
- * @returns {void}
31
- */
32
- removeEventListener(): void;
33
- /**
34
- * Handles the Expand Collapse action for Remote data with infinite scrolling.
35
- *
36
- * @param {{ index: number, childData: ITreeData[] }} args - expanded row index and its child data
37
- * @param { number } args.index - expanded row index
38
- * @param { ITreeData[] } args.childData - child data of expanded row
39
- * @returns {void}
40
- */
41
- private infiniteRemoteExpand;
42
- /**
43
- * Resetted the row index for expand collapse action for cache support.
44
- *
45
- * @returns {void}
46
- */
47
- private contentready;
48
- /**
49
- * Handles the page query for Data operations and CRUD actions.
50
- *
51
- * @param {{ result: ITreeData[], count: number, actionArgs: object }} pageingDetails - data, its count and action details
52
- * @param {ITreeData[]} pageingDetails.result - data on scroll action
53
- * @param {number} pageingDetails.count - data count on scroll action
54
- * @param {Object} pageingDetails.actionArgs - scroll action details
55
- * @returns {void}
56
- */
57
- private infinitePageAction;
58
- /**
59
- * Handles the currentviewdata for delete operation.
60
- *
61
- * @param {{ e: InfiniteScrollArgs, result: Object[] }} args - Scroller and data details
62
- * @param {InfiniteScrollArgs} args.e - scroller details while CRUD
63
- * @param {Object[]} args.result - data details while CRUD
64
- * @returns {void}
65
- */
66
- private infiniteEditHandler;
67
- /**
68
- * Handles the row objects for delete operation.
69
- *
70
- * @param {ActionEventArgs} args - crud action details
71
- * @returns {void}
72
- */
73
- private infiniteDeleteHandler;
74
- /**
75
- * Handles the row objects for delete operation.
76
- *
77
- * @param {Element[]} rowElms - row elements
78
- * @param {Row<Column>[]} rows - Row object collection
79
- * @param {Object[]} data - data collection
80
- * @param {string} keyField - primary key name
81
- * @param { boolean} isFrozen - Specifies whether frozen column enabled
82
- * @returns {void}
83
- */
84
- private removeRows;
85
- /**
86
- * Handles the row objects for Add operation.
87
- */
88
- private createRows;
89
- /**
90
- * To destroy the infiniteScroll module
91
- *
92
- * @returns {void}
93
- * @hidden
94
- */
95
- destroy(): void;
96
- }
@@ -1,320 +0,0 @@
1
- import { TreeGrid } from '../base/treegrid';
2
- import { Grid, InfiniteScroll as GridInfiniteScroll, ActionEventArgs } from '@syncfusion/ej2-grids';
3
- import { InfiniteScrollArgs, Column, Row, RowRenderer, ServiceLocator, resetRowIndex } from '@syncfusion/ej2-grids';
4
- import { getValue, isNullOrUndefined, remove } from '@syncfusion/ej2-base';
5
- import * as events from '../base/constant';
6
- import { ITreeData } from '../base';
7
- import { DataManager, Predicate, Query } from '@syncfusion/ej2-data';
8
- import { findChildrenRecords } from '../utils';
9
-
10
- /**
11
- * TreeGrid Infinite Scroll module will handle Infinite Scrolling.
12
- *
13
- * @hidden
14
- */
15
- export class InfiniteScroll {
16
- private parent: TreeGrid;
17
- private visualData: ITreeData[];
18
-
19
- /**
20
- * Constructor for VirtualScroll module
21
- *
22
- * @param {TreeGrid} parent - Tree Grid instance
23
- */
24
- constructor(parent?: TreeGrid) {
25
- this.parent = parent;
26
- Grid.Inject(GridInfiniteScroll);
27
- this.addEventListener();
28
- }
29
-
30
- /**
31
- * For internal use only - Get the module name.
32
- *
33
- * @private
34
- * @returns {string} - Returns Logger module name
35
- */
36
- protected getModuleName(): string {
37
- return 'infiniteScroll';
38
- }
39
- /**
40
- * @hidden
41
- * @returns {void}
42
- */
43
- public addEventListener(): void {
44
- this.parent.on(events.pagingActions, this.infinitePageAction, this);
45
- this.parent.on('infinite-remote-expand', this.infiniteRemoteExpand, this);
46
- this.parent.grid.on('delete-complete', this.infiniteDeleteHandler, this);
47
- this.parent.grid.on('infinite-edit-handler', this.infiniteEditHandler, this);
48
- this.parent.grid.on('infinite-crud-cancel', this.createRows, this);
49
- this.parent.grid.on('content-ready', this.contentready, this);
50
- }
51
- /**
52
- * @hidden
53
- * @returns {void}
54
- */
55
- public removeEventListener(): void {
56
- if (this.parent.isDestroyed) { return; }
57
- this.parent.off('infinite-remote-expand', this.infiniteRemoteExpand);
58
- this.parent.grid.off('delete-complete', this.infiniteDeleteHandler);
59
- this.parent.grid.off('infinite-edit-handler', this.infiniteEditHandler);
60
- this.parent.off(events.pagingActions, this.infinitePageAction);
61
- this.parent.grid.off('infinite-crud-cancel', this.createRows);
62
- this.parent.grid.off('content-ready', this.contentready);
63
- }
64
-
65
- /**
66
- * Handles the Expand Collapse action for Remote data with infinite scrolling.
67
- *
68
- * @param {{ index: number, childData: ITreeData[] }} args - expanded row index and its child data
69
- * @param { number } args.index - expanded row index
70
- * @param { ITreeData[] } args.childData - child data of expanded row
71
- * @returns {void}
72
- */
73
- private infiniteRemoteExpand(args: { index: number, childData: ITreeData[] }): void {
74
- const rowObjects: Row<Column>[] = this.parent.grid.getRowsObject();
75
- const locator: string = 'serviceLocator'; const generateRows: string = 'generateRows';
76
- const serviceLocator: ServiceLocator = this.parent.grid.infiniteScrollModule[`${locator}`];
77
- const rowRenderer: RowRenderer<Column> = new RowRenderer<Column>(serviceLocator, null, this.parent.grid);
78
- const rows: Element[] = this.parent.getRows();
79
- const position: string = args.index === rows.length - 1 ? 'after' : 'before';
80
- const cols: Column[] = this.parent.grid.getColumns();
81
- const childRowObjects: Row<Column>[] = this.parent.grid.infiniteScrollModule[`${generateRows}`](args.childData, args);
82
- const childRowElements: Element[] = [];
83
- for (let i: number = 0; i < childRowObjects.length; i++) {
84
- childRowElements.push(rowRenderer.render(childRowObjects[parseInt(i.toString(), 10)], cols));
85
- }
86
- rowObjects.splice(args.index + 1, 0, ...childRowObjects);
87
- for (let i: number = 0; i < childRowElements.length; i++) {
88
- if (position === 'after') {
89
- rows[args.index + i][`${position}`](childRowElements[parseInt(i.toString(), 10)]);
90
- } else {
91
- rows[args.index + i + 1][`${position}`](childRowElements[parseInt(i.toString(), 10)]);
92
- }
93
- rows.splice(args.index + 1 + i, 0, childRowElements[parseInt(i.toString(), 10)]);
94
- }
95
- resetRowIndex(this.parent.grid, this.parent.grid.getRowsObject(), this.parent.grid.getRows() as HTMLTableRowElement[], 0);
96
- }
97
-
98
- /**
99
- * Resetted the row index for expand collapse action for cache support.
100
- *
101
- * @returns {void}
102
- */
103
- private contentready (): void {
104
- if (this.parent.infiniteScrollSettings.enableCache && !isNullOrUndefined(this.parent.editModule)) {
105
- const updateIndex: string = 'updateIndex';
106
- this.parent.editModule[`${updateIndex}`](this.parent.grid.dataSource, this.parent.getRows(), this.parent.getCurrentViewRecords());
107
- if (this.parent.getFrozenColumns()) {
108
- this.parent.editModule[`${updateIndex}`](this.parent.grid.dataSource, this.parent.getDataRows(),
109
- this.parent.getCurrentViewRecords());
110
- }
111
- }
112
- }
113
-
114
- /**
115
- * Handles the page query for Data operations and CRUD actions.
116
- *
117
- * @param {{ result: ITreeData[], count: number, actionArgs: object }} pageingDetails - data, its count and action details
118
- * @param {ITreeData[]} pageingDetails.result - data on scroll action
119
- * @param {number} pageingDetails.count - data count on scroll action
120
- * @param {Object} pageingDetails.actionArgs - scroll action details
121
- * @returns {void}
122
- */
123
- private infinitePageAction(pageingDetails: { result: ITreeData[], count: number, actionArgs: Object }): void {
124
- const dm: DataManager = new DataManager(pageingDetails.result);
125
- const expanded: Predicate = new Predicate('expanded', 'notequal', null).or('expanded', 'notequal', undefined);
126
- const visualData: ITreeData[] = dm.executeLocal(new Query().where(expanded));
127
- const actionArgs: ActionEventArgs = getValue('actionArgs', pageingDetails.actionArgs);
128
- const actions: string[] = getValue('actions', this.parent.grid.infiniteScrollModule);
129
- if (this.parent.grid.infiniteScrollModule['isInitialRender'] && !this.parent.initialRender) {
130
- this.parent.grid.pageSettings.currentPage = 1;
131
- }
132
- const initial: boolean = actions.some((value: string): boolean => { return value === actionArgs.requestType; });
133
- const initialRender: boolean = initial ? true : this.parent.initialRender ? true : false;
134
- this.visualData = visualData;
135
- pageingDetails.count = visualData.length;
136
- if (getValue('isPrinting', pageingDetails.actionArgs)) {
137
- pageingDetails.result = visualData;
138
- } else {
139
- let query: Query = new Query();
140
- const isCache: boolean = this.parent.infiniteScrollSettings.enableCache;
141
- if (isCache && this.parent.infiniteScrollSettings.initialBlocks > this.parent.infiniteScrollSettings.maxBlocks) {
142
- this.parent.infiniteScrollSettings.initialBlocks = this.parent.infiniteScrollSettings.maxBlocks;
143
- }
144
- const size: number = initialRender ?
145
- this.parent.grid.pageSettings.pageSize * this.parent.infiniteScrollSettings.initialBlocks :
146
- this.parent.grid.pageSettings.pageSize;
147
- const current: number = this.parent.grid.pageSettings.currentPage;
148
- if (!isNullOrUndefined(actionArgs)) {
149
- const lastIndex: number = getValue('lastIndex', this.parent.grid.infiniteScrollModule);
150
- const firstIndex: number = getValue('firstIndex', this.parent.grid.infiniteScrollModule);
151
- if (!isCache && actionArgs.requestType === 'delete') {
152
- const skip: number = lastIndex - (<Object[]>actionArgs.data).length + 1;
153
- const take: number = (<Object[]>actionArgs.data).length;
154
- query = query.skip(skip).take(take);
155
- } else if (isCache && actionArgs.requestType === 'delete' ||
156
- (actionArgs.requestType === 'save' && actionArgs.action === 'add')) {
157
- query = query.skip(firstIndex);
158
- query = query.take(this.parent.infiniteScrollSettings.initialBlocks * this.parent.pageSettings.pageSize);
159
- } else {
160
- query = query.page(current, size);
161
- }
162
- } else {
163
- query = query.page(current, size);
164
- }
165
- dm.dataSource.json = visualData;
166
- if (!isCache && !isNullOrUndefined(actionArgs) && actionArgs.requestType === 'save' && actionArgs.action === 'add') {
167
- pageingDetails.result = [actionArgs.data];
168
- } else {
169
- pageingDetails.result = dm.executeLocal(query);
170
- }
171
- }
172
- this.parent.notify('updateAction', pageingDetails);
173
- }
174
-
175
-
176
- /**
177
- * Handles the currentviewdata for delete operation.
178
- *
179
- * @param {{ e: InfiniteScrollArgs, result: Object[] }} args - Scroller and data details
180
- * @param {InfiniteScrollArgs} args.e - scroller details while CRUD
181
- * @param {Object[]} args.result - data details while CRUD
182
- * @returns {void}
183
- */
184
- private infiniteEditHandler(args: { e: InfiniteScrollArgs, result: Object[] }): void {
185
- const infiniteData: string = 'infiniteCurrentViewData';
186
- const infiniteCurrentViewData: { [x: number]: Object[] } = this.parent.grid.infiniteScrollModule[`${infiniteData}`];
187
- const keys: string[] = Object.keys(infiniteCurrentViewData);
188
- if (args.e.requestType === 'delete' && args.result.length > 1) {
189
- for (let i: number = 1; i < args.result.length; i++) {
190
- infiniteCurrentViewData[keys[keys.length - 1]].push(args.result[parseInt(i.toString(), 10)]);
191
- }
192
- }
193
- }
194
-
195
-
196
- /**
197
- * Handles the row objects for delete operation.
198
- *
199
- * @param {ActionEventArgs} args - crud action details
200
- * @returns {void}
201
- */
202
- private infiniteDeleteHandler(args: ActionEventArgs): void {
203
- if (args.requestType === 'delete') {
204
- const rows: Row<Column>[] = this.parent.grid.getRowsObject();
205
- const rowElms: Element[] = this.parent.getRows();
206
- const data: Object[] = args.data instanceof Array ? args.data : [args.data];
207
- const keyField: string = this.parent.grid.getPrimaryKeyFieldNames()[0];
208
- this.removeRows(rowElms, rows, data, keyField, true);
209
- if (this.parent.getFrozenColumns() > 0) {
210
- const mRows: Row<Column>[] = this.parent.grid.getRowsObject();
211
- const mRowElms: Element[] = this.parent.grid.getRows();
212
- this.removeRows(mRowElms, mRows, data, keyField);
213
- }
214
- }
215
- }
216
-
217
-
218
- /**
219
- * Handles the row objects for delete operation.
220
- *
221
- * @param {Element[]} rowElms - row elements
222
- * @param {Row<Column>[]} rows - Row object collection
223
- * @param {Object[]} data - data collection
224
- * @param {string} keyField - primary key name
225
- * @param { boolean} isFrozen - Specifies whether frozen column enabled
226
- * @returns {void}
227
- */
228
- private removeRows(rowElms: Element[], rows: Row<Column>[], data: Object[], keyField: string, isFrozen?: boolean): void {
229
- const resetInfiniteCurrentViewData: string = 'resetInfiniteCurrentViewData';
230
- for (let i: number = 0; i < data.length; i++) {
231
- rows.filter((e: Row<Column>, index: number) => {
232
- if (e.data[`${keyField}`] === data[parseInt(i.toString(), 10)][`${keyField}`]) {
233
- if (isFrozen) {
234
- const page: number = Math.ceil((index + 1) / this.parent.grid.pageSettings.pageSize);
235
- this.parent.grid.infiniteScrollModule[`${resetInfiniteCurrentViewData}`](page, index);
236
- }
237
- rows.splice(index, 1);
238
- remove(rowElms[parseInt(index.toString(), 10)]);
239
- rowElms.splice(index, 1);
240
- }
241
- });
242
- }
243
- }
244
-
245
-
246
-
247
- /**
248
- * Handles the row objects for Add operation.
249
- */
250
-
251
- private createRows(eventArgs: {
252
- rows: Row<Column>[], row: Row<Column>[], cancel: boolean, args: { e: ActionEventArgs, result: Object[] },
253
- isMovable?: boolean, isFrozenRows?: boolean, isFrozenRight?: boolean
254
- }): void {
255
- const locator: string = 'serviceLocator';
256
- const actionArgs: ActionEventArgs = eventArgs.args.e;
257
- const row: Row<Column>[] = eventArgs.row;
258
- const serviceLocator: ServiceLocator = this.parent.grid.infiniteScrollModule[`${locator}`];
259
- const rowRenderer: RowRenderer<Column> = new RowRenderer<Column>(serviceLocator, null, this.parent.grid);
260
- let tbody: HTMLElement;
261
- const currentData: ITreeData[] = this.parent.getCurrentViewRecords();
262
- const currentRows: HTMLTableRowElement[] = eventArgs.isMovable ? <HTMLTableRowElement[]>this.parent.grid.getRows()
263
- : <HTMLTableRowElement[]>this.parent.grid.getDataRows();
264
- if (eventArgs.isFrozenRight) {
265
- tbody = this.parent.element.querySelector('.e-frozen-right-content').querySelector('tbody');
266
- } else {
267
- tbody = !this.parent.grid.isFrozenGrid() ? this.parent.getContent().querySelector('tbody') : eventArgs.isMovable
268
- ? this.parent.grid.getContent().querySelector('tbody')
269
- : this.parent.grid.getContent().querySelector('tbody');
270
- }
271
- if (this.parent.frozenRows) {
272
- tbody = eventArgs.isFrozenRows && this.parent.grid.infiniteScrollModule.requestType !== 'add'
273
- || !eventArgs.isFrozenRows && this.parent.grid.infiniteScrollModule.requestType === 'add'
274
- ? !this.parent.grid.isFrozenGrid() ? this.parent.getHeaderContent().querySelector('tbody')
275
- : eventArgs.isMovable ? this.parent.grid.getHeaderContent().querySelector('tbody')
276
- : eventArgs.isFrozenRight ? this.parent.element.querySelector('.e-frozen-right-header').querySelector('tbody')
277
- : this.parent.grid.getHeaderContent().querySelector('tbody') : tbody;
278
- }
279
- let position: string;
280
- const addRowIndex: string = 'addRowIndex';
281
- let newRowIndex: number = this.parent.editModule[`${addRowIndex}`];
282
- for (let i: number = 0; i < row.length; i++) {
283
- const newRow: HTMLTableRowElement = <HTMLTableRowElement>rowRenderer.render(row[parseInt(i.toString(), 10)],
284
- this.parent.grid.getColumns());
285
- if (actionArgs.requestType === 'save' && actionArgs.action === 'add') {
286
- if (getValue('selectedIndex', this.parent.editModule) !== -1 && this.parent.editSettings.newRowPosition !== 'Top') {
287
- if (this.parent.editSettings.newRowPosition === 'Below' || this.parent.editSettings.newRowPosition === 'Child') {
288
- position = 'after';
289
- newRowIndex += findChildrenRecords(currentData[parseInt(newRowIndex.toString(), 10)]).length;
290
- if (this.parent.editSettings.newRowPosition === 'Child') {
291
- newRowIndex -= 1; //// for child position already child record is added in childRecords so subtracting 1
292
- }
293
- currentRows[parseInt(newRowIndex.toString(), 10)][`${position}`](newRow);
294
- } else if (this.parent.editSettings.newRowPosition === 'Above') {
295
- position = 'before';
296
- currentRows[this.parent.editModule[`${addRowIndex}`]][`${position}`](newRow);
297
- }
298
- } else if (this.parent.editSettings.newRowPosition === 'Bottom') {
299
- tbody.appendChild(newRow);
300
- } else {
301
- tbody.insertBefore(newRow, tbody.firstElementChild);
302
- }
303
- } else if (actionArgs.requestType === 'delete') {
304
- tbody.appendChild(newRow);
305
- }
306
- }
307
- eventArgs.cancel = true;
308
- }
309
-
310
- /**
311
- * To destroy the infiniteScroll module
312
- *
313
- * @returns {void}
314
- * @hidden
315
- */
316
- public destroy(): void {
317
- this.removeEventListener();
318
- }
319
- }
320
-
@@ -1,25 +0,0 @@
1
- import { TreeGrid } from '../base/treegrid';
2
- import { Logger as GridLogger, IGrid, CheckOptions } from '@syncfusion/ej2-grids';
3
- export interface TreeItemDetails {
4
- type: string;
5
- logType: string;
6
- message?: string;
7
- check: (args: Object, parent: TreeGrid) => CheckOptions;
8
- generateMessage: (args: Object, parent: TreeGrid, checkOptions?: Object) => string;
9
- }
10
- export declare class Logger extends GridLogger {
11
- private treeGridObj;
12
- constructor(parent: IGrid);
13
- /**
14
- * For internal use only - Get the module name.
15
- *
16
- * @private
17
- * @returns {string} - Returns Logger module name
18
- */
19
- getModuleName(): string;
20
- log(types: string | string[], args: Object): void;
21
- treeLog(types: string | string[], args: Object, treeGrid: TreeGrid): void;
22
- }
23
- export declare const treeGridDetails: {
24
- [key: string]: TreeItemDetails;
25
- };