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,126 +0,0 @@
1
- import { ComponentRef } from '@angular/core';
2
- import { Subscription } from 'rxjs';
3
- import {
4
- AngularUtilService,
5
- Column,
6
- ColumnFilter,
7
- Filter,
8
- FilterArguments,
9
- FilterCallback,
10
- GridOption,
11
- OperatorType,
12
- OperatorString,
13
- SearchTerm,
14
- SlickGrid,
15
- unsubscribeAllObservables,
16
- } from './../modules/angular-slickgrid';
17
-
18
- // using external non-typed js libraries
19
- declare const $: any;
20
-
21
- export class CustomAngularComponentFilter implements Filter {
22
- private _shouldTriggerQuery = true;
23
- private _subscriptions: Subscription[] = [];
24
-
25
- /** Angular Component Reference */
26
- componentRef!: ComponentRef<any>;
27
-
28
- grid!: SlickGrid;
29
- searchTerms: SearchTerm[] = [];
30
- columnDef!: Column;
31
- callback!: FilterCallback;
32
- operator: OperatorType | OperatorString = OperatorType.equal;
33
-
34
- constructor() { }
35
-
36
- /** Angular Util Service (could be inside the Grid Options Params or the Filter Params ) */
37
- get angularUtilService(): AngularUtilService {
38
- let angularUtilService = this.gridOptions && this.gridOptions.params && this.gridOptions.params.angularUtilService;
39
- if (!angularUtilService || !(angularUtilService instanceof AngularUtilService)) {
40
- angularUtilService = this.columnFilter && this.columnFilter.params && this.columnFilter.params.angularUtilService;
41
- }
42
- return angularUtilService;
43
- }
44
-
45
- /** Get the Collection */
46
- get collection(): any[] {
47
- return this.columnFilter && this.columnFilter.collection || [];
48
- }
49
-
50
- /** Getter for the Column Filter */
51
- get columnFilter(): ColumnFilter {
52
- return this.columnDef && this.columnDef.filter || {};
53
- }
54
-
55
- /** Getter for the Grid Options pulled through the Grid Object */
56
- get gridOptions(): GridOption {
57
- return this.grid?.getOptions?.() as GridOption;
58
- }
59
-
60
- /**
61
- * Initialize the Filter
62
- */
63
- init(args: FilterArguments) {
64
- this.grid = args.grid as SlickGrid;
65
- this.callback = args.callback;
66
- this.columnDef = args.columnDef;
67
- this.searchTerms = (args.hasOwnProperty('searchTerms') ? args.searchTerms : []) || [];
68
-
69
- if (!this.columnFilter || !this.columnFilter.params.component || !(this.angularUtilService instanceof AngularUtilService)) {
70
- throw new Error(`[Angular-Slickgrid] For Filter with Angular Component to work properly, you need to provide your component to the "component" property and make sure to add it to your "entryComponents" array.
71
- You also need to provide the "AngularUtilService" via the Filter Params OR the Grid Options Params
72
- Example: this.columnDefs = [{ id: 'title', field: 'title', filter: { model: CustomAngularComponentFilter, collection: [...], params: { component: MyComponent, angularUtilService: this.angularUtilService }}];
73
- OR this.columnDefs = [{ id: 'title', field: 'title', filter: { model: CustomAngularComponentFilter, collection: [...] }]; this.gridOptions = { params: { angularUtilService: this.angularUtilService }}`);
74
- }
75
-
76
- if (this.columnFilter && this.columnFilter.params.component) {
77
- // use a delay to make sure Angular ran at least a full cycle and it finished rendering the Component before hooking onto it
78
- // else we get the infamous error "ExpressionChangedAfterItHasBeenCheckedError"
79
- setTimeout(() => {
80
- const $headerElm = this.grid.getHeaderRowColumn(this.columnDef.id);
81
- $($headerElm).empty();
82
- const componentOuput = this.angularUtilService.createAngularComponentAppendToDom(this.columnFilter.params.component, $headerElm);
83
- this.componentRef = componentOuput.componentRef;
84
-
85
- // here we override the collection object of the Angular Component
86
- // but technically you can pass any values you wish to your Component
87
- Object.assign(componentOuput.componentRef.instance, { collection: this.collection });
88
-
89
- this._subscriptions.push(
90
- componentOuput.componentRef.instance.onItemChanged.subscribe((item: any) => {
91
- this.callback(undefined, { columnDef: this.columnDef, operator: this.operator, searchTerms: [item.id], shouldTriggerQuery: this._shouldTriggerQuery });
92
- // reset flag for next use
93
- this._shouldTriggerQuery = true;
94
- })
95
- );
96
- });
97
- }
98
- }
99
-
100
- /**
101
- * Clear the filter value
102
- */
103
- clear(shouldTriggerQuery = true) {
104
- this._shouldTriggerQuery = shouldTriggerQuery;
105
- if (this.componentRef && this.componentRef.instance && this.componentRef.instance.hasOwnProperty('selectedId')) {
106
- this.componentRef.instance.selectedId = 0;
107
- }
108
- }
109
-
110
- /** destroy the Angular Component & Subscription */
111
- destroy() {
112
- if (this.componentRef && this.componentRef.destroy) {
113
- this.componentRef.destroy();
114
- }
115
-
116
- // also unsubscribe all Angular Subscriptions
117
- this._subscriptions = unsubscribeAllObservables(this._subscriptions);
118
- }
119
-
120
- /** Set value(s) on the DOM element */
121
- setValues(values: SearchTerm[] | SearchTerm) {
122
- if (this.componentRef && this.componentRef.instance && this.componentRef.instance.hasOwnProperty('selectedId')) {
123
- this.componentRef.instance.selectedId = values;
124
- }
125
- }
126
- }
@@ -1,124 +0,0 @@
1
- import { Column, ColumnEditor, Editor, EditorValidator, EditorValidationResult, KeyCode } from './../modules/angular-slickgrid';
2
-
3
- // using external non-typed js libraries
4
- declare const $: any;
5
-
6
- /*
7
- * An example of a 'detached' editor.
8
- * KeyDown events are also handled to provide handling for Tab, Shift-Tab, Esc and Ctrl-Enter.
9
- */
10
- export class CustomInputEditor implements Editor {
11
- private _lastInputEvent?: JQuery.Event;
12
- $input: any;
13
- defaultValue: any;
14
-
15
- constructor(private args: any) {
16
- this.init();
17
- }
18
-
19
- /** Get Column Definition object */
20
- get columnDef(): Column {
21
- return this.args && this.args.column || {};
22
- }
23
-
24
- /** Get Column Editor object */
25
- get columnEditor(): ColumnEditor {
26
- return this.columnDef && this.columnDef.internalColumnEditor || {};
27
- }
28
-
29
- get hasAutoCommitEdit(): boolean {
30
- return this.args.grid.getOptions().autoCommitEdit ?? false;
31
- }
32
-
33
- /** Get the Validator function, can be passed in Editor property or Column Definition */
34
- get validator(): EditorValidator | undefined {
35
- return this.columnEditor.validator || this.columnDef.validator;
36
- }
37
-
38
- init(): void {
39
- const placeholder = this.columnEditor && this.columnEditor.placeholder || '';
40
- const title = this.columnEditor && this.columnEditor.title || '';
41
-
42
- this.$input = $(`<input type="text" class="editor-text" placeholder="${placeholder}" title="${title}" />`)
43
- .appendTo(this.args.container)
44
- .on('keydown.nav', (event: JQuery.Event) => {
45
- this._lastInputEvent = event;
46
- if (event.keyCode === KeyCode.LEFT || event.keyCode === KeyCode.RIGHT) {
47
- event.stopImmediatePropagation();
48
- }
49
- });
50
-
51
- // the lib does not get the focus out event for some reason
52
- // so register it here
53
- if (this.hasAutoCommitEdit) {
54
- this.$input.on('focusout', () => this.save());
55
- }
56
-
57
- setTimeout(() => {
58
- this.$input.focus().select();
59
- }, 50);
60
- }
61
-
62
- destroy() {
63
- this.$input.off('keydown.nav').remove();
64
- }
65
-
66
- focus() {
67
- this.$input.focus();
68
- }
69
-
70
- getValue() {
71
- return this.$input.val();
72
- }
73
-
74
- setValue(val: string) {
75
- this.$input.val(val);
76
- }
77
-
78
- loadValue(item: any) {
79
- this.defaultValue = item[this.args.column.field] || '';
80
- this.$input.val(this.defaultValue);
81
- this.$input[0].defaultValue = this.defaultValue;
82
- this.$input.select();
83
- }
84
-
85
- serializeValue() {
86
- return this.$input.val();
87
- }
88
-
89
- applyValue(item: any, state: any) {
90
- const validation = this.validate(state);
91
- item[this.args.column.field] = (validation && validation.valid) ? state : '';
92
- }
93
-
94
- isValueChanged() {
95
- const lastEvent = this._lastInputEvent && this._lastInputEvent.keyCode;
96
- if (this.columnEditor && this.columnEditor.alwaysSaveOnEnterKey && lastEvent === KeyCode.ENTER) {
97
- return true;
98
- }
99
- return (!(this.$input.val() === '' && this.defaultValue === null)) && (this.$input.val() !== this.defaultValue);
100
- }
101
-
102
- save() {
103
- const validation = this.validate();
104
- if (validation && validation.valid) {
105
- if (this.hasAutoCommitEdit) {
106
- this.args.grid.getEditorLock().commitCurrentEdit();
107
- } else {
108
- this.args.commitChanges();
109
- }
110
- }
111
- }
112
-
113
- validate(inputValue?: any): EditorValidationResult {
114
- if (this.validator) {
115
- const value = (inputValue !== undefined) ? inputValue : this.$input && this.$input.val && this.$input.val();
116
- return this.validator(value, this.args);
117
- }
118
-
119
- return {
120
- valid: true,
121
- msg: null
122
- };
123
- }
124
- }
@@ -1,142 +0,0 @@
1
- import {
2
- Column,
3
- ColumnFilter,
4
- Filter,
5
- FilterArguments,
6
- FilterCallback,
7
- GridOption,
8
- OperatorType,
9
- OperatorString,
10
- SearchTerm,
11
- SlickGrid,
12
- } from './../modules/angular-slickgrid';
13
-
14
- // using external non-typed js libraries
15
- declare const $: any;
16
-
17
- export class CustomInputFilter implements Filter {
18
- private _clearFilterTriggered = false;
19
- private _shouldTriggerQuery = true;
20
- private $filterElm: any;
21
- grid!: SlickGrid;
22
- searchTerms: SearchTerm[] = [];
23
- columnDef!: Column;
24
- callback!: FilterCallback;
25
- operator: OperatorType | OperatorString = OperatorType.equal;
26
-
27
- constructor() { }
28
-
29
- /** Getter for the Column Filter */
30
- get columnFilter(): ColumnFilter {
31
- return this.columnDef && this.columnDef.filter || {};
32
- }
33
-
34
- /** Getter for the Grid Options pulled through the Grid Object */
35
- get gridOptions(): GridOption {
36
- return this.grid?.getOptions?.() as GridOption;
37
- }
38
-
39
- /**
40
- * Initialize the Filter
41
- */
42
- init(args: FilterArguments) {
43
- this.grid = args.grid as SlickGrid;
44
- this.callback = args.callback;
45
- this.columnDef = args.columnDef;
46
- this.searchTerms = (args.hasOwnProperty('searchTerms') ? args.searchTerms : []) || [];
47
-
48
- // filter input can only have 1 search term, so we will use the 1st array index if it exist
49
- const searchTerm = (Array.isArray(this.searchTerms) && this.searchTerms.length >= 0) ? this.searchTerms[0] : '';
50
-
51
- // step 1, create HTML string template
52
- const filterTemplate = this.buildTemplateHtmlString();
53
-
54
- // step 2, create the DOM Element of the filter & initialize it if searchTerm is filled
55
- this.$filterElm = this.createDomElement(filterTemplate, searchTerm);
56
-
57
- // step 3, subscribe to the keyup event and run the callback when that happens
58
- this.$filterElm.keyup((e: any) => {
59
- let value = e && e.target && e.target.value || '';
60
- const enableWhiteSpaceTrim = this.gridOptions.enableFilterTrimWhiteSpace || this.columnFilter.enableTrimWhiteSpace;
61
- if (typeof value === 'string' && enableWhiteSpaceTrim) {
62
- value = value.trim();
63
- }
64
-
65
- if (this._clearFilterTriggered) {
66
- this.callback(e, { columnDef: this.columnDef, clearFilterTriggered: this._clearFilterTriggered, shouldTriggerQuery: this._shouldTriggerQuery });
67
- this.$filterElm.removeClass('filled');
68
- } else {
69
- value === '' ? this.$filterElm.removeClass('filled') : this.$filterElm.addClass('filled');
70
- this.callback(e, { columnDef: this.columnDef, searchTerms: [value], shouldTriggerQuery: this._shouldTriggerQuery });
71
- }
72
- // reset both flags for next use
73
- this._clearFilterTriggered = false;
74
- this._shouldTriggerQuery = true;
75
- });
76
- }
77
-
78
- /**
79
- * Clear the filter value
80
- */
81
- clear(shouldTriggerQuery = true) {
82
- if (this.$filterElm) {
83
- this._clearFilterTriggered = true;
84
- this._shouldTriggerQuery = shouldTriggerQuery;
85
- this.$filterElm.val('');
86
- this.$filterElm.trigger('keyup');
87
- }
88
- }
89
-
90
- /**
91
- * destroy the filter
92
- */
93
- destroy() {
94
- if (this.$filterElm) {
95
- this.$filterElm.off('keyup').remove();
96
- }
97
- }
98
-
99
- /** Set value(s) on the DOM element */
100
- setValues(values: SearchTerm | SearchTerm[]) {
101
- if (values) {
102
- this.$filterElm.val(values);
103
- }
104
- }
105
-
106
- //
107
- // private functions
108
- // ------------------
109
-
110
- /**
111
- * Create the HTML template as a string
112
- */
113
- private buildTemplateHtmlString() {
114
- let placeholder = (this.gridOptions) ? (this.gridOptions.defaultFilterPlaceholder || '') : '';
115
- if (this.columnFilter && this.columnFilter.placeholder) {
116
- placeholder = this.columnFilter.placeholder;
117
- }
118
- return `<input type="text" class="form-control search-filter" placeholder="${placeholder}">`;
119
- }
120
-
121
- /**
122
- * From the html template string, create a DOM element
123
- * @param filterTemplate
124
- */
125
- private createDomElement(filterTemplate: string, searchTerm?: SearchTerm) {
126
- const $headerElm = this.grid.getHeaderRowColumn(this.columnDef.id);
127
- $($headerElm).empty();
128
-
129
- // create the DOM element & add an ID and filter class
130
- const $filterElm = $(filterTemplate);
131
-
132
- $filterElm.val(searchTerm);
133
- $filterElm.data('columnId', this.columnDef.id);
134
-
135
- // append the new DOM element to the header row
136
- if ($filterElm && typeof $filterElm.appendTo === 'function') {
137
- $filterElm.appendTo($headerElm);
138
- }
139
-
140
- return $filterElm;
141
- }
142
- }
@@ -1,8 +0,0 @@
1
- import { Component } from '@angular/core';
2
-
3
- @Component({
4
- template: `<b>{{item?.assignee?.name}}</b>`
5
- })
6
- export class CustomTitleFormatterComponent {
7
- item: any;
8
- }
@@ -1,37 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
-
4
- // the appendTo="body" (necessary for SlickGrid filter) requires the body to be position relative like so
5
- // <body style="position: relative">
6
- @Component({
7
- template: `
8
- <ng-select class="no-style-select"
9
- [items]="collection"
10
- autofocus
11
- bindValue="id"
12
- bindLabel="name"
13
- appendTo="body"
14
- [clearable]="false"
15
- (change)="onChange($event)"
16
- [(ngModel)]="selectedId"
17
- >
18
- <ng-template ng-label-tmp ng-option-tmp let-item="item">
19
- {{ item?.name }}
20
- </ng-template>
21
- </ng-select>`
22
- })
23
- export class EditorNgSelectComponent {
24
- selectedId = '';
25
- selectedItem: any;
26
- collection?: any[]; // this will be filled by the collection of your column definition
27
- onItemChanged = new Subject<any>(); // object
28
-
29
- onChange(item: any) {
30
- this.selectedItem = item;
31
- this.onItemChanged.next(item);
32
- }
33
-
34
- focus() {
35
- // do a focus
36
- }
37
- }
@@ -1,32 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
-
4
- // the appendTo="body" (necessary for SlickGrid filter) requires the body to be position relative like so
5
- // <body style="position: relative">
6
- @Component({
7
- template: `
8
- <ng-select class="custom no-style-select"
9
- [items]="collection"
10
- bindValue="id"
11
- bindLabel="name"
12
- appendTo="body"
13
- [clearable]="false"
14
- (change)="onChange($event)"
15
- [(ngModel)]="selectedId"
16
- >
17
- <ng-template ng-label-tmp ng-option-tmp let-item="item">
18
- {{ item?.name }}
19
- </ng-template>
20
- </ng-select>`
21
- })
22
- export class FilterNgSelectComponent {
23
- selectedId = '';
24
- selectedItem: any;
25
- collection?: any[]; // this will be filled by the collection of your column definition
26
- onItemChanged = new Subject<any>(); // object
27
-
28
- onChange(item: any) {
29
- this.selectedItem = item;
30
- this.onItemChanged.next(item);
31
- }
32
- }
@@ -1,48 +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-additem.component.ts">
8
- <span class="fa fa-link"></span> code
9
- </a>
10
- </span>
11
- </h2>
12
- <div class="subtitle"
13
- [innerHTML]="subTitle"></div>
14
-
15
- <div class="col-sm-12">
16
- <span>
17
- <label>Scroll: </label>
18
- <div class="btn-group" role="group">
19
- <button class="btn btn-sm btn-outline-secondary" data-test="scroll-top-btn" (click)="scrollGridTop()">
20
- <i class="fa fa-arrow-up"></i>
21
- </button>
22
- <button class="btn btn-sm btn-outline-secondary" data-test="scroll-bottom-btn" (click)="scrollGridBottom()">
23
- <i class="fa fa-arrow-down"></i>
24
- </button>
25
- </div>
26
- <button class="btn btn-sm btn-outline-secondary" data-test="add-new-item-top-btn"
27
- (click)="addNewItem()">Add New Mocked Item</button>
28
- <button class="btn btn-sm btn-outline-secondary" data-test="add-new-item-bottom-btn"
29
- (click)="addNewItem('bottom')">Add New Mocked Item (bottom)</button>
30
- <button class="btn btn-sm btn-outline-secondary" data-test="update-second-item-btn"
31
- (click)="updateSecondItem()">Update 2nd Row Item with Random Duration</button>
32
- <button class="btn btn-sm btn-outline-secondary" data-test="highlight-row5-btn"
33
- (click)="highlighFifthRow()">Highlight 5th Row</button>
34
- <button class="btn btn-sm btn-outline-secondary" data-test="highlight-duration40-btn"
35
- (click)="changeDurationBackgroundColor()">Highlight Rows with Duration over 40</button>
36
- </span>
37
- <hr />
38
- </div>
39
-
40
- <div class="col-sm-12">
41
- <angular-slickgrid gridId="grid11"
42
- [columnDefinitions]="columnDefinitions"
43
- [gridOptions]="gridOptions"
44
- [dataset]="dataset"
45
- (onAngularGridCreated)="angularGridReady($event.detail)">
46
- </angular-slickgrid>
47
- </div>
48
- </div>