angular-slickgrid 4.2.0 → 4.2.1

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 (232) hide show
  1. package/{dist/angular-slickgrid.d.ts → angular-slickgrid.d.ts} +0 -0
  2. package/{dist/app → app}/modules/angular-slickgrid/components/angular-slickgrid.component.d.ts +0 -0
  3. package/{dist/app → app}/modules/angular-slickgrid/constants.d.ts +0 -0
  4. package/{dist/app → app}/modules/angular-slickgrid/extensions/index.d.ts +0 -0
  5. package/{dist/app → app}/modules/angular-slickgrid/extensions/slickRowDetailView.d.ts +0 -0
  6. package/{dist/app → app}/modules/angular-slickgrid/global-grid-options.d.ts +0 -0
  7. package/{dist/app → app}/modules/angular-slickgrid/index.d.ts +0 -0
  8. package/{dist/app → app}/modules/angular-slickgrid/models/angularComponentOutput.interface.d.ts +0 -0
  9. package/{dist/app → app}/modules/angular-slickgrid/models/angularGridInstance.interface.d.ts +0 -0
  10. package/{dist/app → app}/modules/angular-slickgrid/models/externalTestingDependencies.interface.d.ts +0 -0
  11. package/{dist/app → app}/modules/angular-slickgrid/models/gridOption.interface.d.ts +0 -0
  12. package/{dist/app → app}/modules/angular-slickgrid/models/index.d.ts +0 -0
  13. package/{dist/app → app}/modules/angular-slickgrid/models/rowDetailView.interface.d.ts +0 -0
  14. package/{dist/app → app}/modules/angular-slickgrid/models/slickGrid.interface.d.ts +0 -0
  15. package/{dist/app → app}/modules/angular-slickgrid/modules/angular-slickgrid.module.d.ts +0 -0
  16. package/{dist/app → app}/modules/angular-slickgrid/services/angularUtil.service.d.ts +0 -0
  17. package/{dist/app → app}/modules/angular-slickgrid/services/bsDropdown.service.d.ts +0 -0
  18. package/{dist/app → app}/modules/angular-slickgrid/services/container.service.d.ts +0 -0
  19. package/{dist/app → app}/modules/angular-slickgrid/services/index.d.ts +0 -0
  20. package/{dist/app → app}/modules/angular-slickgrid/services/translater.service.d.ts +0 -0
  21. package/{dist/app → app}/modules/angular-slickgrid/services/utilities.d.ts +0 -0
  22. package/{dist/app → app}/modules/angular-slickgrid/slickgrid-config.d.ts +0 -0
  23. package/docs/assets/lib/multiple-select/README.md +17 -0
  24. package/{dist/esm2020 → esm2020}/angular-slickgrid.mjs +0 -0
  25. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/components/angular-slickgrid.component.mjs +0 -0
  26. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/constants.mjs +0 -0
  27. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/extensions/index.mjs +0 -0
  28. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/extensions/slickRowDetailView.mjs +0 -0
  29. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/global-grid-options.mjs +0 -0
  30. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/index.mjs +0 -0
  31. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/angularComponentOutput.interface.mjs +0 -0
  32. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/angularGridInstance.interface.mjs +0 -0
  33. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.mjs +0 -0
  34. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/gridOption.interface.mjs +0 -0
  35. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/index.mjs +0 -0
  36. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/rowDetailView.interface.mjs +0 -0
  37. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/slickGrid.interface.mjs +0 -0
  38. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/modules/angular-slickgrid.module.mjs +0 -0
  39. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/angularUtil.service.mjs +0 -0
  40. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/bsDropdown.service.mjs +0 -0
  41. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/container.service.mjs +0 -0
  42. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/index.mjs +0 -0
  43. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/translater.service.mjs +0 -0
  44. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/utilities.mjs +0 -0
  45. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/slickgrid-config.mjs +0 -0
  46. package/{dist/esm2020 → esm2020}/public_api.mjs +0 -0
  47. package/{dist/fesm2015 → fesm2015}/angular-slickgrid.mjs +0 -0
  48. package/{dist/fesm2015 → fesm2015}/angular-slickgrid.mjs.map +0 -0
  49. package/{dist/fesm2020 → fesm2020}/angular-slickgrid.mjs +0 -0
  50. package/{dist/fesm2020 → fesm2020}/angular-slickgrid.mjs.map +0 -0
  51. package/{dist/i18n → i18n}/en.json +0 -0
  52. package/{dist/i18n → i18n}/fr.json +0 -0
  53. package/package.json +25 -110
  54. package/{dist/public_api.d.ts → public_api.d.ts} +0 -0
  55. package/.browserslistrc +0 -12
  56. package/.codecov.yml +0 -17
  57. package/.editorconfig +0 -18
  58. package/.eslintrc.json +0 -50
  59. package/.github/CODE_OF_CONDUCT.md +0 -76
  60. package/.github/FUNDING.yml +0 -8
  61. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -54
  62. package/.github/ISSUE_TEMPLATE/config.yml +0 -5
  63. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -44
  64. package/.github/renovate.json5 +0 -26
  65. package/.github/stale.yml +0 -7
  66. package/.github/workflows/main.yml +0 -83
  67. package/.vscode/extensions.json +0 -9
  68. package/.vscode/launch.json +0 -72
  69. package/.vscode/settings.json +0 -7
  70. package/.vscode/tasks.json +0 -77
  71. package/CHANGELOG.md +0 -1172
  72. package/angular.json +0 -148
  73. package/dist/LICENSE +0 -20
  74. package/dist/README.md +0 -182
  75. package/dist/package.json +0 -79
  76. package/global.d.ts +0 -1
  77. package/ngcc.config.js +0 -13
  78. package/screenshots/column-picker.png +0 -0
  79. package/screenshots/composite-editor.png +0 -0
  80. package/screenshots/draggable-grouping.png +0 -0
  81. package/screenshots/editors.png +0 -0
  82. package/screenshots/export-to-file.png +0 -0
  83. package/screenshots/filter_and_sort.png +0 -0
  84. package/screenshots/formatters.png +0 -0
  85. package/screenshots/frozen.png +0 -0
  86. package/screenshots/multipleSelectFilter.png +0 -0
  87. package/screenshots/pagination.png +0 -0
  88. package/screenshots/selectFilter.png +0 -0
  89. package/screenshots/singleFilter.png +0 -0
  90. package/src/app/app-routing.module.ts +0 -83
  91. package/src/app/app.component.html +0 -160
  92. package/src/app/app.component.scss +0 -65
  93. package/src/app/app.component.ts +0 -10
  94. package/src/app/app.module.ts +0 -175
  95. package/src/app/examples/custom-angularComponentEditor.ts +0 -184
  96. package/src/app/examples/custom-angularComponentFilter.ts +0 -126
  97. package/src/app/examples/custom-inputEditor.ts +0 -124
  98. package/src/app/examples/custom-inputFilter.ts +0 -142
  99. package/src/app/examples/custom-titleFormatter.component.ts +0 -8
  100. package/src/app/examples/editor-ng-select.component.ts +0 -37
  101. package/src/app/examples/filter-ng-select.component.ts +0 -32
  102. package/src/app/examples/grid-additem.component.html +0 -48
  103. package/src/app/examples/grid-additem.component.ts +0 -272
  104. package/src/app/examples/grid-angular.component.html +0 -79
  105. package/src/app/examples/grid-angular.component.scss +0 -28
  106. package/src/app/examples/grid-angular.component.ts +0 -370
  107. package/src/app/examples/grid-autoheight.component.html +0 -52
  108. package/src/app/examples/grid-autoheight.component.ts +0 -147
  109. package/src/app/examples/grid-basic.component.html +0 -29
  110. package/src/app/examples/grid-basic.component.ts +0 -82
  111. package/src/app/examples/grid-clientside.component.html +0 -51
  112. package/src/app/examples/grid-clientside.component.ts +0 -293
  113. package/src/app/examples/grid-colspan.component.html +0 -39
  114. package/src/app/examples/grid-colspan.component.scss +0 -11
  115. package/src/app/examples/grid-colspan.component.ts +0 -155
  116. package/src/app/examples/grid-composite-editor.component.html +0 -79
  117. package/src/app/examples/grid-composite-editor.component.scss +0 -19
  118. package/src/app/examples/grid-composite-editor.component.ts +0 -948
  119. package/src/app/examples/grid-contextmenu.component.html +0 -62
  120. package/src/app/examples/grid-contextmenu.component.scss +0 -44
  121. package/src/app/examples/grid-contextmenu.component.ts +0 -473
  122. package/src/app/examples/grid-custom-tooltip.component.html +0 -25
  123. package/src/app/examples/grid-custom-tooltip.component.scss +0 -77
  124. package/src/app/examples/grid-custom-tooltip.component.ts +0 -483
  125. package/src/app/examples/grid-draggrouping.component.html +0 -93
  126. package/src/app/examples/grid-draggrouping.component.ts +0 -397
  127. package/src/app/examples/grid-editor.component.html +0 -88
  128. package/src/app/examples/grid-editor.component.ts +0 -699
  129. package/src/app/examples/grid-formatter.component.html +0 -26
  130. package/src/app/examples/grid-formatter.component.ts +0 -162
  131. package/src/app/examples/grid-frozen.component.html +0 -65
  132. package/src/app/examples/grid-frozen.component.scss +0 -11
  133. package/src/app/examples/grid-frozen.component.ts +0 -303
  134. package/src/app/examples/grid-graphql-nopage.component.html +0 -33
  135. package/src/app/examples/grid-graphql-nopage.component.scss +0 -9
  136. package/src/app/examples/grid-graphql-nopage.component.ts +0 -242
  137. package/src/app/examples/grid-graphql.component.html +0 -87
  138. package/src/app/examples/grid-graphql.component.ts +0 -304
  139. package/src/app/examples/grid-grouping.component.html +0 -80
  140. package/src/app/examples/grid-grouping.component.ts +0 -313
  141. package/src/app/examples/grid-headerbutton.component.html +0 -31
  142. package/src/app/examples/grid-headerbutton.component.scss +0 -10
  143. package/src/app/examples/grid-headerbutton.component.ts +0 -233
  144. package/src/app/examples/grid-headermenu.component.html +0 -31
  145. package/src/app/examples/grid-headermenu.component.scss +0 -25
  146. package/src/app/examples/grid-headermenu.component.ts +0 -159
  147. package/src/app/examples/grid-localization.component.html +0 -54
  148. package/src/app/examples/grid-localization.component.ts +0 -293
  149. package/src/app/examples/grid-menu.component.html +0 -37
  150. package/src/app/examples/grid-menu.component.scss +0 -28
  151. package/src/app/examples/grid-menu.component.ts +0 -229
  152. package/src/app/examples/grid-odata.component.html +0 -116
  153. package/src/app/examples/grid-odata.component.ts +0 -441
  154. package/src/app/examples/grid-range.component.html +0 -74
  155. package/src/app/examples/grid-range.component.ts +0 -291
  156. package/src/app/examples/grid-remote.component.html +0 -37
  157. package/src/app/examples/grid-remote.component.ts +0 -153
  158. package/src/app/examples/grid-resize-by-content.component.html +0 -62
  159. package/src/app/examples/grid-resize-by-content.component.scss +0 -19
  160. package/src/app/examples/grid-resize-by-content.component.ts +0 -780
  161. package/src/app/examples/grid-rowdetail.component.html +0 -35
  162. package/src/app/examples/grid-rowdetail.component.ts +0 -205
  163. package/src/app/examples/grid-rowmove.component.html +0 -49
  164. package/src/app/examples/grid-rowmove.component.ts +0 -234
  165. package/src/app/examples/grid-rowselection.component.html +0 -76
  166. package/src/app/examples/grid-rowselection.component.ts +0 -267
  167. package/src/app/examples/grid-state.component.html +0 -36
  168. package/src/app/examples/grid-state.component.ts +0 -259
  169. package/src/app/examples/grid-tabs.component.html +0 -35
  170. package/src/app/examples/grid-tabs.component.ts +0 -115
  171. package/src/app/examples/grid-trading.component.html +0 -58
  172. package/src/app/examples/grid-trading.component.scss +0 -49
  173. package/src/app/examples/grid-trading.component.ts +0 -319
  174. package/src/app/examples/grid-tree-data-hierarchical.component.html +0 -79
  175. package/src/app/examples/grid-tree-data-hierarchical.component.scss +0 -47
  176. package/src/app/examples/grid-tree-data-hierarchical.component.ts +0 -311
  177. package/src/app/examples/grid-tree-data-parent-child.component.html +0 -108
  178. package/src/app/examples/grid-tree-data-parent-child.component.scss +0 -10
  179. package/src/app/examples/grid-tree-data-parent-child.component.ts +0 -351
  180. package/src/app/examples/home.component.html +0 -41
  181. package/src/app/examples/home.component.ts +0 -9
  182. package/src/app/examples/rowdetail-preload.component.ts +0 -10
  183. package/src/app/examples/rowdetail-view.component.html +0 -36
  184. package/src/app/examples/rowdetail-view.component.ts +0 -54
  185. package/src/app/examples/swt-common-grid-pagination.component.ts +0 -156
  186. package/src/app/examples/swt-common-grid-test.component.html +0 -30
  187. package/src/app/examples/swt-common-grid-test.component.ts +0 -219
  188. package/src/app/examples/swt-common-grid.component.ts +0 -436
  189. package/src/app/examples/swt-logger.service.ts +0 -165
  190. package/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.html +0 -4
  191. package/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.ts +0 -1395
  192. package/src/app/modules/angular-slickgrid/constants.ts +0 -97
  193. package/src/app/modules/angular-slickgrid/extensions/index.ts +0 -1
  194. package/src/app/modules/angular-slickgrid/extensions/slickRowDetailView.ts +0 -375
  195. package/src/app/modules/angular-slickgrid/global-grid-options.ts +0 -245
  196. package/src/app/modules/angular-slickgrid/index.ts +0 -11
  197. package/src/app/modules/angular-slickgrid/models/angularComponentOutput.interface.ts +0 -6
  198. package/src/app/modules/angular-slickgrid/models/angularGridInstance.interface.ts +0 -68
  199. package/src/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.ts +0 -37
  200. package/src/app/modules/angular-slickgrid/models/gridOption.interface.ts +0 -12
  201. package/src/app/modules/angular-slickgrid/models/index.ts +0 -6
  202. package/src/app/modules/angular-slickgrid/models/rowDetailView.interface.ts +0 -33
  203. package/src/app/modules/angular-slickgrid/models/slickGrid.interface.ts +0 -7
  204. package/src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.ts +0 -37
  205. package/src/app/modules/angular-slickgrid/services/angularUtil.service.ts +0 -48
  206. package/src/app/modules/angular-slickgrid/services/bsDropdown.service.ts +0 -142
  207. package/src/app/modules/angular-slickgrid/services/container.service.ts +0 -24
  208. package/src/app/modules/angular-slickgrid/services/index.ts +0 -5
  209. package/src/app/modules/angular-slickgrid/services/translater.service.ts +0 -38
  210. package/src/app/modules/angular-slickgrid/services/utilities.ts +0 -19
  211. package/src/app/modules/angular-slickgrid/slickgrid-config.ts +0 -10
  212. package/src/app/slickgrid-custom-variables.scss +0 -10
  213. package/src/assets/.gitkeep +0 -0
  214. package/src/assets/data/collection_100_numbers.json +0 -12
  215. package/src/assets/data/collection_500_numbers.json +0 -52
  216. package/src/assets/data/countries.json +0 -245
  217. package/src/assets/data/country_names.json +0 -245
  218. package/src/assets/data/customers_100.json +0 -102
  219. package/src/assets/i18n/en.json +0 -90
  220. package/src/assets/i18n/fr.json +0 -91
  221. package/src/environments/environment.prod.ts +0 -3
  222. package/src/environments/environment.ts +0 -8
  223. package/src/favicon.ico +0 -0
  224. package/src/index.html +0 -18
  225. package/src/main.ts +0 -13
  226. package/src/polyfills.ts +0 -52
  227. package/src/public_api.ts +0 -1
  228. package/src/styles.scss +0 -66
  229. package/src/typings.d.ts +0 -10
  230. package/tsconfig.app.json +0 -25
  231. package/tsconfig.json +0 -40
  232. package/tsconfig.spec.json +0 -23
@@ -1,397 +0,0 @@
1
- import { Component, OnInit } from '@angular/core';
2
- import { ExcelExportService } from '@slickgrid-universal/excel-export';
3
- import { TextExportService } from '@slickgrid-universal/text-export';
4
-
5
- import {
6
- AngularGridInstance,
7
- Aggregators,
8
- Column,
9
- DelimiterType,
10
- FieldType,
11
- FileType,
12
- Filters,
13
- Formatters,
14
- GridOption,
15
- Grouping,
16
- GroupingGetterFunction,
17
- GroupTotalFormatters,
18
- SortDirectionNumber,
19
- SortComparers,
20
- } from './../modules/angular-slickgrid';
21
-
22
- @Component({
23
- templateUrl: './grid-draggrouping.component.html'
24
- })
25
- export class GridDraggableGroupingComponent implements OnInit {
26
- title = 'Example 19: Draggable Grouping & Aggregators';
27
- subTitle = `
28
- <ul>
29
- <li><a href="https://github.com/ghiscoding/Angular-Slickgrid/wiki/Grouping-&-Aggregators" target="_blank">Wiki docs</a></li>
30
- <li>This example shows 3 ways of grouping</li>
31
- <ol>
32
- <li>Drag any Column Header on the top placeholder to group by that column (support moti-columns grouping by adding more columns to the drop area).</li>
33
- <li>Use buttons and defined functions to group by wichever field you want</li>
34
- <li>Use the Select dropdown to group, the position of the Selects represent the grouping level</li>
35
- </ol>
36
- <li>Fully dynamic and interactive multi-level grouping with filtering and aggregates ovor 50'000 items</li>
37
- <li>Each grouping level can have its own aggregates (over child rows, child groups, or all descendant rows)..</li>
38
- <li>Use "Aggregators" and "GroupTotalFormatters" directly from Angular-Slickgrid</li>
39
- </ul>
40
- `;
41
-
42
- angularGrid!: AngularGridInstance;
43
- columnDefinitions!: Column[];
44
- dataset!: any[];
45
- dataviewObj: any;
46
- draggableGroupingPlugin: any;
47
- durationOrderByCount = false;
48
- gridObj: any;
49
- gridOptions!: GridOption;
50
- processing = false;
51
- selectedGroupingFields: Array<string | GroupingGetterFunction> = ['', '', ''];
52
- excelExportService = new ExcelExportService();
53
- textExportService = new TextExportService();
54
-
55
- constructor() {
56
- // define the grid options & columns and then create the grid itself
57
- this.loadData(500);
58
- this.defineGrid();
59
- }
60
-
61
- ngOnInit(): void {
62
- // populate the dataset once the grid is ready
63
- this.defineGrid();
64
- }
65
-
66
- angularGridReady(angularGrid: AngularGridInstance) {
67
- this.angularGrid = angularGrid;
68
- this.gridObj = angularGrid.slickGrid; // grid object
69
- this.dataviewObj = angularGrid.dataView;
70
- }
71
-
72
- /* Define grid Options and Columns */
73
- defineGrid() {
74
- this.columnDefinitions = [
75
- {
76
- id: 'title', name: 'Title', field: 'title',
77
- width: 70, minWidth: 50,
78
- cssClass: 'cell-title',
79
- filterable: true,
80
- sortable: true,
81
- grouping: {
82
- getter: 'title',
83
- formatter: (g) => `Title: ${g.value} <span style="color:green">(${g.count} items)</span>`,
84
- aggregators: [
85
- new Aggregators.Sum('cost')
86
- ],
87
- aggregateCollapsed: false,
88
- collapsed: false
89
- }
90
- },
91
- {
92
- id: 'duration', name: 'Duration', field: 'duration',
93
- width: 70,
94
- sortable: true,
95
- filterable: true,
96
- filter: { model: Filters.slider, operator: '>=' },
97
- type: FieldType.number,
98
- groupTotalsFormatter: GroupTotalFormatters.sumTotals,
99
- grouping: {
100
- getter: 'duration',
101
- formatter: (g) => `Duration: ${g.value} <span style="color:green">(${g.count} items)</span>`,
102
- comparer: (a, b) => {
103
- return this.durationOrderByCount ? (a.count - b.count) : SortComparers.numeric(a.value, b.value, SortDirectionNumber.asc);
104
- },
105
- aggregators: [
106
- new Aggregators.Sum('cost')
107
- ],
108
- aggregateCollapsed: false,
109
- collapsed: false
110
- }
111
- },
112
- {
113
- id: 'percentComplete', name: '% Complete', field: 'percentComplete',
114
- minWidth: 70, width: 90,
115
- formatter: Formatters.percentCompleteBar,
116
- type: FieldType.number,
117
- filterable: true,
118
- filter: { model: Filters.compoundSlider },
119
- sortable: true,
120
- groupTotalsFormatter: GroupTotalFormatters.avgTotalsPercentage,
121
- grouping: {
122
- getter: 'percentComplete',
123
- formatter: (g) => `% Complete: ${g.value} <span style="color:green">(${g.count} items)</span>`,
124
- aggregators: [
125
- new Aggregators.Sum('cost')
126
- ],
127
- aggregateCollapsed: false,
128
- collapsed: false
129
- },
130
- params: { groupFormatterPrefix: '<i>Avg</i>: ' }
131
- },
132
- {
133
- id: 'start', name: 'Start', field: 'start', minWidth: 60,
134
- sortable: true,
135
- filterable: true,
136
- filter: { model: Filters.compoundDate },
137
- formatter: Formatters.dateIso,
138
- type: FieldType.dateUtc,
139
- outputType: FieldType.dateIso,
140
- exportWithFormatter: true,
141
- grouping: {
142
- getter: 'start',
143
- formatter: (g) => `Start: ${g.value} <span style="color:green">(${g.count} items)</span>`,
144
- aggregators: [
145
- new Aggregators.Sum('cost')
146
- ],
147
- aggregateCollapsed: false,
148
- collapsed: false
149
- }
150
- },
151
- {
152
- id: 'finish', name: 'Finish', field: 'finish',
153
- minWidth: 60,
154
- sortable: true,
155
- filterable: true,
156
- filter: { model: Filters.compoundDate },
157
- formatter: Formatters.dateIso,
158
- type: FieldType.dateUtc,
159
- outputType: FieldType.dateIso,
160
- exportWithFormatter: true,
161
- grouping: {
162
- getter: 'finish',
163
- formatter: (g) => `Finish: ${g.value} <span style="color:green">(${g.count} items)</span>`,
164
- aggregators: [
165
- new Aggregators.Sum('cost')
166
- ],
167
- aggregateCollapsed: false,
168
- collapsed: false
169
- }
170
- },
171
- {
172
- id: 'cost', name: 'Cost', field: 'cost',
173
- width: 90,
174
- sortable: true,
175
- filterable: true,
176
- filter: { model: Filters.compoundInput },
177
- formatter: Formatters.dollar,
178
- groupTotalsFormatter: GroupTotalFormatters.sumTotalsDollar,
179
- type: FieldType.number,
180
- grouping: {
181
- getter: 'cost',
182
- formatter: (g) => `Cost: ${g.value} <span style="color:green">(${g.count} items)</span>`,
183
- aggregators: [
184
- new Aggregators.Sum('cost')
185
- ],
186
- aggregateCollapsed: true,
187
- collapsed: true
188
- }
189
- },
190
- {
191
- id: 'effortDriven', name: 'Effort-Driven', field: 'effortDriven',
192
- width: 80, minWidth: 20, maxWidth: 100,
193
- cssClass: 'cell-effort-driven',
194
- sortable: true,
195
- filterable: true,
196
- filter: {
197
- collection: [{ value: '', label: '' }, { value: true, label: 'True' }, { value: false, label: 'False' }],
198
- model: Filters.singleSelect
199
- },
200
- formatter: Formatters.checkmark,
201
- grouping: {
202
- getter: 'effortDriven',
203
- formatter: (g) => `Effort-Driven: ${g.value ? 'True' : 'False'} <span style="color:green">(${g.count} items)</span>`,
204
- aggregators: [
205
- new Aggregators.Sum('cost')
206
- ],
207
- collapsed: false
208
- }
209
- }
210
- ];
211
-
212
- this.gridOptions = {
213
- autoResize: {
214
- container: '#demo-container',
215
- rightPadding: 10
216
- },
217
- enableDraggableGrouping: true,
218
- createPreHeaderPanel: true,
219
- showPreHeaderPanel: true,
220
- preHeaderPanelHeight: 40,
221
- showCustomFooter: true,
222
- enableFiltering: true,
223
- // you could debounce/throttle the input text filter if you have lots of data
224
- // filterTypingDebounce: 250,
225
- enableSorting: true,
226
- exportOptions: {
227
- sanitizeDataExport: true
228
- },
229
- gridMenu: {
230
- onCommand: (e, args) => {
231
- if (args.command === 'toggle-preheader') {
232
- // in addition to the grid menu pre-header toggling (internally), we will also clear grouping
233
- this.clearGrouping();
234
- }
235
- },
236
- },
237
- draggableGrouping: {
238
- dropPlaceHolderText: 'Drop a column header here to group by the column',
239
- // groupIconCssClass: 'fa fa-outdent',
240
- deleteIconCssClass: 'fa fa-times',
241
- onGroupChanged: (e, args) => this.onGroupChanged(args),
242
- onExtensionRegistered: (extension) => this.draggableGroupingPlugin = extension,
243
- },
244
- enableTextExport: true,
245
- enableExcelExport: true,
246
- excelExportOptions: { sanitizeDataExport: true },
247
- textExportOptions: { sanitizeDataExport: true },
248
- registerExternalResources: [this.excelExportService, this.textExportService],
249
- };
250
-
251
- this.loadData(500);
252
- }
253
-
254
- loadData(rowCount: number) {
255
- // mock a dataset
256
- this.dataset = [];
257
- for (let i = 0; i < rowCount; i++) {
258
- const randomYear = 2000 + Math.floor(Math.random() * 10);
259
- const randomMonth = Math.floor(Math.random() * 11);
260
- const randomDay = Math.floor((Math.random() * 29));
261
- const randomPercent = Math.round(Math.random() * 100);
262
-
263
- this.dataset[i] = {
264
- id: 'id_' + i,
265
- num: i,
266
- title: 'Task ' + i,
267
- duration: Math.round(Math.random() * 100) + '',
268
- percentComplete: randomPercent,
269
- percentCompleteNumber: randomPercent,
270
- start: new Date(randomYear, randomMonth, randomDay),
271
- finish: new Date(randomYear, (randomMonth + 1), randomDay),
272
- cost: (i % 33 === 0) ? null : Math.round(Math.random() * 10000) / 100,
273
- effortDriven: (i % 5 === 0)
274
- };
275
- }
276
- }
277
-
278
- clearGroupsAndSelects() {
279
- this.clearGroupingSelects();
280
- this.clearGrouping();
281
- }
282
-
283
- clearGrouping() {
284
- if (this.draggableGroupingPlugin && this.draggableGroupingPlugin.setDroppedGroups) {
285
- this.draggableGroupingPlugin.clearDroppedGroups();
286
- }
287
- this.gridObj.invalidate(); // invalidate all rows and re-render
288
- }
289
-
290
- clearGroupingSelects() {
291
- this.selectedGroupingFields.forEach((g, i) => this.selectedGroupingFields[i] = '');
292
- }
293
-
294
- collapseAllGroups() {
295
- this.dataviewObj.collapseAllGroups();
296
- }
297
-
298
- expandAllGroups() {
299
- this.dataviewObj.expandAllGroups();
300
- }
301
-
302
- exportToExcel() {
303
- this.excelExportService.exportToExcel({
304
- filename: 'Export',
305
- format: FileType.xlsx
306
- });
307
- }
308
-
309
- exportToCsv(type = 'csv') {
310
- this.textExportService.exportToFile({
311
- delimiter: (type === 'csv') ? DelimiterType.comma : DelimiterType.tab,
312
- filename: 'myExport',
313
- format: (type === 'csv') ? FileType.csv : FileType.txt
314
- });
315
- }
316
-
317
- groupByDuration() {
318
- this.clearGrouping();
319
- if (this.draggableGroupingPlugin && this.draggableGroupingPlugin.setDroppedGroups) {
320
- this.showPreHeader();
321
- this.draggableGroupingPlugin.setDroppedGroups('duration');
322
- this.gridObj.invalidate(); // invalidate all rows and re-render
323
- }
324
- }
325
-
326
- groupByDurationOrderByCount(sortedByCount = false) {
327
- this.durationOrderByCount = sortedByCount;
328
- this.clearGrouping();
329
- this.groupByDuration();
330
-
331
- // you need to manually add the sort icon(s) in UI
332
- const sortColumns = sortedByCount ? [] : [{ columnId: 'duration', sortAsc: true }];
333
- this.angularGrid.filterService.setSortColumnIcons(sortColumns);
334
- }
335
-
336
- groupByDurationEffortDriven() {
337
- this.clearGrouping();
338
- if (this.draggableGroupingPlugin && this.draggableGroupingPlugin.setDroppedGroups) {
339
- this.showPreHeader();
340
- this.draggableGroupingPlugin.setDroppedGroups(['duration', 'effortDriven']);
341
- this.gridObj.invalidate(); // invalidate all rows and re-render
342
- }
343
- }
344
-
345
- groupByFieldName(fieldName: string, index: number) {
346
- this.clearGrouping();
347
- if (this.draggableGroupingPlugin && this.draggableGroupingPlugin.setDroppedGroups) {
348
- // get the field names from Group By select(s) dropdown, but filter out any empty fields
349
- const groupedFields = this.selectedGroupingFields.filter((g) => g !== '');
350
-
351
- this.showPreHeader();
352
- this.draggableGroupingPlugin.setDroppedGroups(groupedFields);
353
- this.gridObj.invalidate(); // invalidate all rows and re-render
354
- }
355
- }
356
-
357
- onGroupChanged(change: { caller?: string; groupColumns: Grouping[] }) {
358
- // the "caller" property might not be in the SlickGrid core lib yet, reference PR https://github.com/6pac/SlickGrid/pull/303
359
- const caller = change && change.caller || [];
360
- const groups = change && change.groupColumns || [];
361
-
362
- if (Array.isArray(this.selectedGroupingFields) && Array.isArray(groups) && groups.length > 0) {
363
- // update all Group By select dropdown
364
- this.selectedGroupingFields.forEach((g, i) => this.selectedGroupingFields[i] = groups[i] && groups[i].getter || '');
365
- } else if (groups.length === 0 && caller === 'remove-group') {
366
- this.clearGroupingSelects();
367
- }
368
- }
369
-
370
- showPreHeader() {
371
- this.gridObj.setPreHeaderPanelVisibility(true);
372
- }
373
-
374
- selectTrackByFn(index: number, item: any) {
375
- return index;
376
- }
377
-
378
- setFiltersDynamically() {
379
- // we can Set Filters Dynamically (or different filters) afterward through the FilterService
380
- this.angularGrid.filterService.updateFilters([
381
- { columnId: 'percentComplete', operator: '>=', searchTerms: ['55'] },
382
- { columnId: 'cost', operator: '<', searchTerms: ['80'] },
383
- ]);
384
- }
385
-
386
- setSortingDynamically() {
387
- this.angularGrid.sortService.updateSorting([
388
- // orders matter, whichever is first in array will be the first sorted column
389
- { columnId: 'percentComplete', direction: 'ASC' },
390
- ]);
391
- }
392
-
393
- toggleDraggableGroupingRow() {
394
- this.clearGrouping();
395
- this.gridObj.setPreHeaderPanelVisibility(!this.gridObj.getOptions().showPreHeaderPanel);
396
- }
397
- }
@@ -1,88 +0,0 @@
1
- <div id="demo-container" class="container-fluid">
2
- <h2>
3
- {{title}}
4
- <span class="float-end">
5
- <a style="font-size: 18px"
6
- target="_blank"
7
- href="https://github.com/ghiscoding/Angular-Slickgrid/blob/master/src/app/examples/grid-editor.component.ts">
8
- <span class="fa fa-link"></span> code
9
- </a>
10
- </span>
11
- </h2>
12
- <div class="subtitle" [innerHTML]="subTitle"></div>
13
-
14
- <div class="col-sm-6">
15
- <label>autoEdit setting: </label>
16
- <span id="radioAutoEdit">
17
- <label class="radio-inline control-label" for="radioTrue">
18
- <input type="radio" name="inlineRadioOptions" id="radioTrue" checked [value]="isAutoEdit"
19
- (change)="setAutoEdit(true)"> ON (single-click)
20
- </label>
21
- <label class="radio-inline control-label" for="radioFalse">
22
- <input type="radio" name="inlineRadioOptions" id="radioFalse" [value]="isAutoEdit"
23
- (change)="setAutoEdit(false)"> OFF (double-click)
24
- </label>
25
- </span>
26
- <div class="row col-sm-12">
27
- <span>
28
- <button class="btn btn-outline-secondary btn-sm" (click)="undo()">
29
- <i class="fa fa-undo"></i>
30
- Undo last edit(s)
31
- </button>
32
- <label class="checkbox-inline control-label" for="autoCommitEdit">
33
- <input type="checkbox" id="autoCommitEdit" data-test="auto-commit" [checked]="gridOptions.autoCommitEdit"
34
- (click)="changeAutoCommit()">
35
- Auto Commit Edit
36
- </label>
37
- </span>
38
- </div>
39
- <div class="row" style="margin-top: 5px">
40
- <div class="col-sm-12">
41
- <button class="btn btn-outline-secondary btn-sm" (click)="angularGrid.filterService.clearFilters()">
42
- Clear Filters
43
- </button>
44
- <button class="btn btn-outline-secondary btn-sm" (click)="angularGrid.sortService.clearSorting()">
45
- Clear Sorting
46
- </button>
47
- <button class="btn btn-sm btn-outline-primary" (click)="addItem()"
48
- title="Clear Filters &amp; Sorting to see it better">Add item</button>
49
- <button class="btn btn-sm btn-outline-danger" (click)="deleteItem()">Delete item</button>
50
- </div>
51
- </div>
52
- <div class="row" style="margin-top: 5px">
53
- <div class="col-sm-12">
54
- <button class="btn btn-outline-secondary btn-sm" data-test="add-title-column"
55
- (click)="dynamicallyAddTitleHeader()">
56
- <i class="fa fa-plus"></i>
57
- Dynamically Duplicate Title Column
58
- </button>
59
- <button class="btn btn-outline-secondary btn-sm" data-test="remove-title-column"
60
- (click)="dynamicallyRemoveLastColumn()">
61
- <i class="fa fa-minus"></i>
62
- Dynamically Remove Last Column
63
- </button>
64
- </div>
65
- </div>
66
- </div>
67
-
68
- <div class="col-sm-6">
69
- <div class="alert alert-info" *ngIf="updatedObject">
70
- <strong>Updated Item:</strong> {{updatedObject | json}}
71
- </div>
72
- <div class="alert alert-warning" *ngIf="alertWarning">
73
- <strong>Updated Item:</strong> {{alertWarning}}
74
- </div>
75
- </div>
76
-
77
- <div class="col-sm-12">
78
- <angular-slickgrid gridId="grid3"
79
- [columnDefinitions]="columnDefinitions"
80
- [gridOptions]="gridOptions"
81
- [dataset]="dataset"
82
- (onAngularGridCreated)="angularGridReady($event.detail)"
83
- (onCellChange)="onCellChanged($event.detail.eventData, $event.detail.args)"
84
- (onClick)="onCellClicked($event.detail.eventData, $event.detail.args)"
85
- (onValidationError)="onValidationError($event.detail.eventData, $event.detail.args)">
86
- </angular-slickgrid>
87
- </div>
88
- </div>