angular-slickgrid 9.0.0 → 9.0.2

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 (395) hide show
  1. package/LICENSE +1 -1
  2. package/{dist/fesm2022 → fesm2022}/angular-slickgrid.mjs +16 -16
  3. package/package.json +27 -14
  4. package/.gitbook.yaml +0 -5
  5. package/CHANGELOG.md +0 -1691
  6. package/CONTRIBUTING.md +0 -17
  7. package/angular.json +0 -133
  8. package/coverage/base.css +0 -224
  9. package/coverage/block-navigation.js +0 -87
  10. package/coverage/clover.xml +0 -1620
  11. package/coverage/coverage-final.json +0 -9
  12. package/coverage/favicon.png +0 -0
  13. package/coverage/index.html +0 -176
  14. package/coverage/library/components/angular-slickgrid.component.ts.html +0 -5074
  15. package/coverage/library/components/index.html +0 -116
  16. package/coverage/library/constants.ts.html +0 -397
  17. package/coverage/library/extensions/index.html +0 -116
  18. package/coverage/library/extensions/slickRowDetailView.ts.html +0 -1261
  19. package/coverage/library/index.html +0 -116
  20. package/coverage/library/modules/angular-slickgrid.module.ts.html +0 -166
  21. package/coverage/library/modules/index.html +0 -116
  22. package/coverage/library/services/angularUtil.service.ts.html +0 -445
  23. package/coverage/library/services/container.service.ts.html +0 -163
  24. package/coverage/library/services/index.html +0 -161
  25. package/coverage/library/services/translater.service.ts.html +0 -199
  26. package/coverage/library/services/utilities.ts.html +0 -142
  27. package/coverage/prettify.css +0 -1
  28. package/coverage/prettify.js +0 -2
  29. package/coverage/sort-arrow-sprite.png +0 -0
  30. package/coverage/sorter.js +0 -196
  31. package/dist/LICENSE +0 -21
  32. package/dist/README.md +0 -142
  33. package/docs/README.md +0 -5
  34. package/docs/TOC.md +0 -105
  35. package/docs/backend-services/Custom-Backend-Service.md +0 -50
  36. package/docs/backend-services/GraphQL.md +0 -276
  37. package/docs/backend-services/OData.md +0 -245
  38. package/docs/backend-services/graphql/GraphQL-Filtering.md +0 -156
  39. package/docs/backend-services/graphql/GraphQL-JSON-Result.md +0 -85
  40. package/docs/backend-services/graphql/GraphQL-Pagination.md +0 -77
  41. package/docs/backend-services/graphql/GraphQL-Sorting.md +0 -78
  42. package/docs/column-functionalities/cell-menu.md +0 -212
  43. package/docs/column-functionalities/editors/autocomplete-editor.md +0 -466
  44. package/docs/column-functionalities/editors/date-editor-flatpickr.md +0 -71
  45. package/docs/column-functionalities/editors/date-editor-vanilla-calendar.md +0 -91
  46. package/docs/column-functionalities/editors/longtext-editor-textarea.md +0 -80
  47. package/docs/column-functionalities/editors/select-dropdown-editor.md +0 -227
  48. package/docs/column-functionalities/editors.md +0 -604
  49. package/docs/column-functionalities/filters/autocomplete-filter.md +0 -183
  50. package/docs/column-functionalities/filters/compound-filters.md +0 -234
  51. package/docs/column-functionalities/filters/custom-filter.md +0 -117
  52. package/docs/column-functionalities/filters/filter-intro.md +0 -81
  53. package/docs/column-functionalities/filters/input-filter.md +0 -260
  54. package/docs/column-functionalities/filters/range-filters.md +0 -188
  55. package/docs/column-functionalities/filters/select-filter.md +0 -695
  56. package/docs/column-functionalities/filters/single-search-filter.md +0 -77
  57. package/docs/column-functionalities/filters/styling-filled-filters.md +0 -45
  58. package/docs/column-functionalities/formatters.md +0 -325
  59. package/docs/column-functionalities/sorting.md +0 -200
  60. package/docs/developer-guides/csp-compliance.md +0 -64
  61. package/docs/events/Available-Events.md +0 -223
  62. package/docs/events/Grid-&-DataView-Events.md +0 -211
  63. package/docs/getting-started/quick-start.md +0 -230
  64. package/docs/getting-started/troubleshooting.md +0 -80
  65. package/docs/grid-functionalities/Column-Picker.md +0 -22
  66. package/docs/grid-functionalities/Composite-Editor-Modal.md +0 -627
  67. package/docs/grid-functionalities/Context-Menu.md +0 -226
  68. package/docs/grid-functionalities/Custom-Footer.md +0 -80
  69. package/docs/grid-functionalities/Custom-Tooltip-(plugin).md +0 -258
  70. package/docs/grid-functionalities/Export-to-Excel.md +0 -457
  71. package/docs/grid-functionalities/Export-to-Text-File.md +0 -165
  72. package/docs/grid-functionalities/FAQ.md +0 -53
  73. package/docs/grid-functionalities/Global-Options.md +0 -29
  74. package/docs/grid-functionalities/Grid-Auto-Resize.md +0 -218
  75. package/docs/grid-functionalities/Grid-Menu.md +0 -134
  76. package/docs/grid-functionalities/Grid-State-&-Preset.md +0 -245
  77. package/docs/grid-functionalities/Header-Menu-&-Header-Buttons.md +0 -125
  78. package/docs/grid-functionalities/Resize-by-Cell-Content.md +0 -138
  79. package/docs/grid-functionalities/Row-Selection.md +0 -247
  80. package/docs/grid-functionalities/Row-based-edit.md +0 -71
  81. package/docs/grid-functionalities/add-update-highlight.md +0 -258
  82. package/docs/grid-functionalities/column-row-spanning.md +0 -74
  83. package/docs/grid-functionalities/dynamic-item-metadata.md +0 -124
  84. package/docs/grid-functionalities/excel-copy-buffer.md +0 -145
  85. package/docs/grid-functionalities/frozen-columns-rows.md +0 -164
  86. package/docs/grid-functionalities/grouping-and-aggregators.md +0 -269
  87. package/docs/grid-functionalities/header-footer-slots.md +0 -22
  88. package/docs/grid-functionalities/infinite-scroll.md +0 -150
  89. package/docs/grid-functionalities/providing-grid-data.md +0 -61
  90. package/docs/grid-functionalities/row-detail.md +0 -530
  91. package/docs/grid-functionalities/tree-data-grid.md +0 -391
  92. package/docs/localization/Localization---Component-Sample.md +0 -87
  93. package/docs/localization/Localization-with-Custom-Locales.md +0 -66
  94. package/docs/localization/Localization-with-ngx-translate.md +0 -148
  95. package/docs/migrations/migration-to-2.x.md +0 -304
  96. package/docs/migrations/migration-to-3.x.md +0 -295
  97. package/docs/migrations/migration-to-4.x.md +0 -83
  98. package/docs/migrations/migration-to-5.x.md +0 -160
  99. package/docs/migrations/migration-to-6.x.md +0 -128
  100. package/docs/migrations/migration-to-7.x.md +0 -294
  101. package/docs/migrations/migration-to-8.x.md +0 -316
  102. package/docs/migrations/migration-to-9.x.md +0 -219
  103. package/docs/slick-grid-dataview-objects/slickgrid-dataview-objects.md +0 -79
  104. package/docs/styling/dark-mode.md +0 -100
  105. package/docs/styling/styling.md +0 -250
  106. package/docs/testing/testing-patterns.md +0 -73
  107. package/eslint.config.mjs +0 -60
  108. package/ng-package.json +0 -10
  109. package/src/assets/angular-logo.png +0 -0
  110. package/src/assets/angular-logo2.png +0 -0
  111. package/src/assets/data/collection_100_numbers.json +0 -12
  112. package/src/assets/data/collection_500_numbers.json +0 -52
  113. package/src/assets/data/countries.json +0 -245
  114. package/src/assets/data/country_names.json +0 -245
  115. package/src/assets/data/customers_100.json +0 -102
  116. package/src/assets/data/users.csv +0 -5
  117. package/src/assets/i18n/en.json +0 -102
  118. package/src/assets/i18n/fr.json +0 -103
  119. package/src/demos/app-routing.module.ts +0 -108
  120. package/src/demos/app.component.html +0 -187
  121. package/src/demos/app.component.scss +0 -79
  122. package/src/demos/app.component.ts +0 -11
  123. package/src/demos/app.module.ts +0 -196
  124. package/src/demos/environments/environment.dev.ts +0 -3
  125. package/src/demos/environments/environment.prod.ts +0 -3
  126. package/src/demos/environments/environment.ts +0 -8
  127. package/src/demos/examples/custom-angularComponentEditor.ts +0 -187
  128. package/src/demos/examples/custom-angularComponentFilter.ts +0 -123
  129. package/src/demos/examples/custom-buttonFormatter.component.ts +0 -13
  130. package/src/demos/examples/custom-inputEditor.ts +0 -132
  131. package/src/demos/examples/custom-inputFilter.ts +0 -134
  132. package/src/demos/examples/custom-titleFormatter.component.ts +0 -9
  133. package/src/demos/examples/data/collection_100_numbers.json +0 -12
  134. package/src/demos/examples/data/collection_500_numbers.json +0 -52
  135. package/src/demos/examples/data/countries.json +0 -245
  136. package/src/demos/examples/data/country_names.json +0 -245
  137. package/src/demos/examples/data/customers_100.json +0 -102
  138. package/src/demos/examples/data/users.csv +0 -5
  139. package/src/demos/examples/editor-ng-select.component.ts +0 -38
  140. package/src/demos/examples/example01.component.html +0 -48
  141. package/src/demos/examples/example01.component.ts +0 -109
  142. package/src/demos/examples/example02.component.html +0 -45
  143. package/src/demos/examples/example02.component.ts +0 -218
  144. package/src/demos/examples/example03.component.html +0 -118
  145. package/src/demos/examples/example03.component.ts +0 -694
  146. package/src/demos/examples/example04.component.html +0 -87
  147. package/src/demos/examples/example04.component.ts +0 -326
  148. package/src/demos/examples/example05.component.html +0 -151
  149. package/src/demos/examples/example05.component.ts +0 -474
  150. package/src/demos/examples/example06.component.html +0 -163
  151. package/src/demos/examples/example06.component.ts +0 -446
  152. package/src/demos/examples/example07.component.html +0 -56
  153. package/src/demos/examples/example07.component.scss +0 -10
  154. package/src/demos/examples/example07.component.ts +0 -216
  155. package/src/demos/examples/example08.component.html +0 -51
  156. package/src/demos/examples/example08.component.scss +0 -23
  157. package/src/demos/examples/example08.component.ts +0 -195
  158. package/src/demos/examples/example09.component.html +0 -55
  159. package/src/demos/examples/example09.component.scss +0 -22
  160. package/src/demos/examples/example09.component.ts +0 -302
  161. package/src/demos/examples/example10.component.html +0 -103
  162. package/src/demos/examples/example10.component.ts +0 -309
  163. package/src/demos/examples/example11.component.html +0 -91
  164. package/src/demos/examples/example11.component.ts +0 -276
  165. package/src/demos/examples/example12.component.html +0 -98
  166. package/src/demos/examples/example12.component.ts +0 -317
  167. package/src/demos/examples/example13.component.html +0 -96
  168. package/src/demos/examples/example13.component.ts +0 -370
  169. package/src/demos/examples/example14.component.html +0 -50
  170. package/src/demos/examples/example14.component.scss +0 -11
  171. package/src/demos/examples/example14.component.ts +0 -156
  172. package/src/demos/examples/example15.component.html +0 -56
  173. package/src/demos/examples/example15.component.ts +0 -304
  174. package/src/demos/examples/example16.component.html +0 -77
  175. package/src/demos/examples/example16.component.ts +0 -277
  176. package/src/demos/examples/example17.component.html +0 -50
  177. package/src/demos/examples/example17.component.ts +0 -109
  178. package/src/demos/examples/example18.component.html +0 -132
  179. package/src/demos/examples/example18.component.ts +0 -445
  180. package/src/demos/examples/example19-rowdetail.component.html +0 -40
  181. package/src/demos/examples/example19-rowdetail.component.ts +0 -54
  182. package/src/demos/examples/example19.component.html +0 -79
  183. package/src/demos/examples/example19.component.ts +0 -316
  184. package/src/demos/examples/example20.component.html +0 -76
  185. package/src/demos/examples/example20.component.scss +0 -11
  186. package/src/demos/examples/example20.component.ts +0 -341
  187. package/src/demos/examples/example21.component.html +0 -86
  188. package/src/demos/examples/example21.component.scss +0 -16
  189. package/src/demos/examples/example21.component.ts +0 -140
  190. package/src/demos/examples/example22.component.html +0 -41
  191. package/src/demos/examples/example22.component.ts +0 -117
  192. package/src/demos/examples/example23.component.html +0 -111
  193. package/src/demos/examples/example23.component.ts +0 -323
  194. package/src/demos/examples/example24.component.html +0 -120
  195. package/src/demos/examples/example24.component.scss +0 -62
  196. package/src/demos/examples/example24.component.ts +0 -641
  197. package/src/demos/examples/example25.component.html +0 -60
  198. package/src/demos/examples/example25.component.scss +0 -8
  199. package/src/demos/examples/example25.component.ts +0 -255
  200. package/src/demos/examples/example26.component.html +0 -98
  201. package/src/demos/examples/example26.component.scss +0 -42
  202. package/src/demos/examples/example26.component.ts +0 -383
  203. package/src/demos/examples/example27.component.html +0 -138
  204. package/src/demos/examples/example27.component.scss +0 -10
  205. package/src/demos/examples/example27.component.ts +0 -369
  206. package/src/demos/examples/example28.component.html +0 -143
  207. package/src/demos/examples/example28.component.scss +0 -54
  208. package/src/demos/examples/example28.component.ts +0 -453
  209. package/src/demos/examples/example29.component.html +0 -30
  210. package/src/demos/examples/example29.component.ts +0 -70
  211. package/src/demos/examples/example30.component.html +0 -116
  212. package/src/demos/examples/example30.component.scss +0 -20
  213. package/src/demos/examples/example30.component.ts +0 -1070
  214. package/src/demos/examples/example32.component.html +0 -77
  215. package/src/demos/examples/example32.component.scss +0 -8
  216. package/src/demos/examples/example32.component.ts +0 -905
  217. package/src/demos/examples/example33.component.html +0 -50
  218. package/src/demos/examples/example33.component.scss +0 -46
  219. package/src/demos/examples/example33.component.ts +0 -571
  220. package/src/demos/examples/example34.component.html +0 -82
  221. package/src/demos/examples/example34.component.scss +0 -77
  222. package/src/demos/examples/example34.component.ts +0 -434
  223. package/src/demos/examples/example35.component.html +0 -77
  224. package/src/demos/examples/example35.component.scss +0 -18
  225. package/src/demos/examples/example35.component.ts +0 -264
  226. package/src/demos/examples/example36.component.html +0 -56
  227. package/src/demos/examples/example36.component.scss +0 -26
  228. package/src/demos/examples/example36.component.ts +0 -504
  229. package/src/demos/examples/example37.component.html +0 -30
  230. package/src/demos/examples/example37.component.ts +0 -123
  231. package/src/demos/examples/example38.component.html +0 -104
  232. package/src/demos/examples/example38.component.scss +0 -8
  233. package/src/demos/examples/example38.component.ts +0 -420
  234. package/src/demos/examples/example39.component.html +0 -112
  235. package/src/demos/examples/example39.component.scss +0 -8
  236. package/src/demos/examples/example39.component.ts +0 -371
  237. package/src/demos/examples/example40.component.html +0 -76
  238. package/src/demos/examples/example40.component.ts +0 -226
  239. package/src/demos/examples/example41.component.html +0 -50
  240. package/src/demos/examples/example41.component.scss +0 -42
  241. package/src/demos/examples/example41.component.ts +0 -229
  242. package/src/demos/examples/example42.component.html +0 -47
  243. package/src/demos/examples/example42.component.ts +0 -203
  244. package/src/demos/examples/example43.component.html +0 -94
  245. package/src/demos/examples/example43.component.scss +0 -30
  246. package/src/demos/examples/example43.component.ts +0 -449
  247. package/src/demos/examples/example44.component.html +0 -78
  248. package/src/demos/examples/example44.component.scss +0 -50
  249. package/src/demos/examples/example44.component.ts +0 -375
  250. package/src/demos/examples/example45-detail.component.html +0 -15
  251. package/src/demos/examples/example45-detail.component.ts +0 -97
  252. package/src/demos/examples/example45.component.html +0 -110
  253. package/src/demos/examples/example45.component.scss +0 -50
  254. package/src/demos/examples/example45.component.ts +0 -243
  255. package/src/demos/examples/filter-ng-select.component.ts +0 -33
  256. package/src/demos/examples/grid-custom-pager.component.html +0 -60
  257. package/src/demos/examples/grid-custom-pager.component.scss +0 -57
  258. package/src/demos/examples/grid-custom-pager.component.ts +0 -107
  259. package/src/demos/examples/grid-remote.component.html +0 -44
  260. package/src/demos/examples/grid-remote.component.ts +0 -164
  261. package/src/demos/examples/home.component.html +0 -39
  262. package/src/demos/examples/home.component.ts +0 -10
  263. package/src/demos/examples/jsonp.ts +0 -89
  264. package/src/demos/examples/rowdetail-preload.component.ts +0 -10
  265. package/src/demos/examples/swt-common-grid-pagination.component.ts +0 -160
  266. package/src/demos/examples/swt-common-grid-test.component.html +0 -37
  267. package/src/demos/examples/swt-common-grid-test.component.ts +0 -214
  268. package/src/demos/examples/swt-common-grid.component.ts +0 -436
  269. package/src/demos/examples/swt-logger.service.ts +0 -173
  270. package/src/demos/examples/utilities.ts +0 -9
  271. package/src/favicon.ico +0 -0
  272. package/src/index.html +0 -17
  273. package/src/library/components/__tests__/angular-slickgrid.component.spec.ts +0 -2638
  274. package/src/library/components/angular-slickgrid.component.html +0 -5
  275. package/src/library/components/angular-slickgrid.component.ts +0 -1662
  276. package/src/library/constants.ts +0 -105
  277. package/src/library/extensions/__tests__/slickRowDetailView.spec.ts +0 -751
  278. package/src/library/extensions/index.ts +0 -1
  279. package/src/library/extensions/slickRowDetailView.ts +0 -395
  280. package/src/library/global-grid-options.ts +0 -273
  281. package/src/library/index.ts +0 -11
  282. package/src/library/models/angularComponentOutput.interface.ts +0 -6
  283. package/src/library/models/angularGridInstance.interface.ts +0 -76
  284. package/src/library/models/externalTestingDependencies.interface.ts +0 -37
  285. package/src/library/models/gridOption.interface.ts +0 -15
  286. package/src/library/models/index.ts +0 -5
  287. package/src/library/models/rowDetailView.interface.ts +0 -16
  288. package/src/library/modules/angular-slickgrid.module.spec.ts +0 -25
  289. package/src/library/modules/angular-slickgrid.module.ts +0 -27
  290. package/src/library/services/__tests__/angularUtilService.spec.ts +0 -156
  291. package/src/library/services/__tests__/container.service.spec.ts +0 -25
  292. package/src/library/services/__tests__/translater.service.spec.ts +0 -43
  293. package/src/library/services/__tests__/utilities.spec.ts +0 -22
  294. package/src/library/services/angularUtil.service.ts +0 -120
  295. package/src/library/services/container.service.ts +0 -26
  296. package/src/library/services/index.ts +0 -4
  297. package/src/library/services/translater.service.ts +0 -38
  298. package/src/library/services/utilities.ts +0 -19
  299. package/src/library/slickgrid-config.ts +0 -10
  300. package/src/main.ts +0 -13
  301. package/src/public_api.ts +0 -1
  302. package/src/styles.scss +0 -178
  303. package/test/cypress/e2e/example01.cy.ts +0 -367
  304. package/test/cypress/e2e/example02.cy.ts +0 -60
  305. package/test/cypress/e2e/example03.cy.ts +0 -268
  306. package/test/cypress/e2e/example04.cy.ts +0 -254
  307. package/test/cypress/e2e/example05.cy.ts +0 -804
  308. package/test/cypress/e2e/example06.cy.ts +0 -890
  309. package/test/cypress/e2e/example07.cy.ts +0 -384
  310. package/test/cypress/e2e/example08.cy.ts +0 -190
  311. package/test/cypress/e2e/example09.cy.ts +0 -392
  312. package/test/cypress/e2e/example10.cy.ts +0 -650
  313. package/test/cypress/e2e/example11.cy.ts +0 -86
  314. package/test/cypress/e2e/example12.cy.ts +0 -269
  315. package/test/cypress/e2e/example13.cy.ts +0 -246
  316. package/test/cypress/e2e/example14.cy.ts +0 -122
  317. package/test/cypress/e2e/example15.cy.ts +0 -598
  318. package/test/cypress/e2e/example16.cy.ts +0 -427
  319. package/test/cypress/e2e/example17.cy.ts +0 -83
  320. package/test/cypress/e2e/example18.cy.ts +0 -431
  321. package/test/cypress/e2e/example19.cy.ts +0 -263
  322. package/test/cypress/e2e/example20.cy.ts +0 -264
  323. package/test/cypress/e2e/example21.cy.ts +0 -77
  324. package/test/cypress/e2e/example22.cy.ts +0 -94
  325. package/test/cypress/e2e/example23.cy.ts +0 -259
  326. package/test/cypress/e2e/example24.cy.ts +0 -707
  327. package/test/cypress/e2e/example25.cy.ts +0 -193
  328. package/test/cypress/e2e/example26.cy.ts +0 -111
  329. package/test/cypress/e2e/example27.cy.ts +0 -261
  330. package/test/cypress/e2e/example28.cy.ts +0 -740
  331. package/test/cypress/e2e/example29.cy.ts +0 -30
  332. package/test/cypress/e2e/example30.cy.ts +0 -757
  333. package/test/cypress/e2e/example31.cy.ts +0 -69
  334. package/test/cypress/e2e/example32.cy.ts +0 -272
  335. package/test/cypress/e2e/example33.cy.ts +0 -278
  336. package/test/cypress/e2e/example34.cy.ts +0 -84
  337. package/test/cypress/e2e/example35.cy.ts +0 -178
  338. package/test/cypress/e2e/example36.cy.ts +0 -219
  339. package/test/cypress/e2e/example37.cy.ts +0 -52
  340. package/test/cypress/e2e/example38.cy.ts +0 -160
  341. package/test/cypress/e2e/example39.cy.ts +0 -150
  342. package/test/cypress/e2e/example40.cy.ts +0 -126
  343. package/test/cypress/e2e/example41.cy.ts +0 -90
  344. package/test/cypress/e2e/example42.cy.ts +0 -82
  345. package/test/cypress/e2e/example43.cy.ts +0 -482
  346. package/test/cypress/e2e/example44.cy.ts +0 -458
  347. package/test/cypress/e2e/example45.cy.ts +0 -455
  348. package/test/cypress/e2e/home.cy.ts +0 -7
  349. package/test/cypress/fixtures/example.json +0 -5
  350. package/test/cypress/plugins/index.ts +0 -17
  351. package/test/cypress/plugins/utilities.ts +0 -28
  352. package/test/cypress/support/commands.ts +0 -88
  353. package/test/cypress/support/common.ts +0 -47
  354. package/test/cypress/support/drag.ts +0 -101
  355. package/test/cypress/support/index.ts +0 -20
  356. package/test/cypress/tsconfig.json +0 -9
  357. package/test/cypress.config.ts +0 -34
  358. package/test/mockSlickEvent.ts +0 -77
  359. package/test/rxjsResourceStub.ts +0 -69
  360. package/test/test-setup.ts +0 -6
  361. package/test/translateServiceStub.ts +0 -230
  362. package/test/translaterServiceStub.ts +0 -239
  363. package/test/tsconfig.json +0 -17
  364. package/test/vitest-global-mocks.ts +0 -41
  365. package/test/vitest-global-setup.ts +0 -3
  366. package/test/vitest-pretest.ts +0 -5
  367. package/tsconfig.app.json +0 -14
  368. package/tsconfig.json +0 -31
  369. package/tsconfig.spec.json +0 -11
  370. package/types/sortablejs.d.ts +0 -4
  371. package/vite.config.mts +0 -51
  372. /package/{dist/fesm2022 → fesm2022}/angular-slickgrid.mjs.map +0 -0
  373. /package/{dist/i18n → i18n}/en.json +0 -0
  374. /package/{dist/i18n → i18n}/fr.json +0 -0
  375. /package/{dist/index.d.ts → index.d.ts} +0 -0
  376. /package/{dist/library → library}/components/angular-slickgrid.component.d.ts +0 -0
  377. /package/{dist/library → library}/constants.d.ts +0 -0
  378. /package/{dist/library → library}/extensions/index.d.ts +0 -0
  379. /package/{dist/library → library}/extensions/slickRowDetailView.d.ts +0 -0
  380. /package/{dist/library → library}/global-grid-options.d.ts +0 -0
  381. /package/{dist/library → library}/index.d.ts +0 -0
  382. /package/{dist/library → library}/models/angularComponentOutput.interface.d.ts +0 -0
  383. /package/{dist/library → library}/models/angularGridInstance.interface.d.ts +0 -0
  384. /package/{dist/library → library}/models/externalTestingDependencies.interface.d.ts +0 -0
  385. /package/{dist/library → library}/models/gridOption.interface.d.ts +0 -0
  386. /package/{dist/library → library}/models/index.d.ts +0 -0
  387. /package/{dist/library → library}/models/rowDetailView.interface.d.ts +0 -0
  388. /package/{dist/library → library}/modules/angular-slickgrid.module.d.ts +0 -0
  389. /package/{dist/library → library}/services/angularUtil.service.d.ts +0 -0
  390. /package/{dist/library → library}/services/container.service.d.ts +0 -0
  391. /package/{dist/library → library}/services/index.d.ts +0 -0
  392. /package/{dist/library → library}/services/translater.service.d.ts +0 -0
  393. /package/{dist/library → library}/services/utilities.d.ts +0 -0
  394. /package/{dist/library → library}/slickgrid-config.d.ts +0 -0
  395. /package/{dist/public_api.d.ts → public_api.d.ts} +0 -0
@@ -1,29 +0,0 @@
1
- You might find yourself re-using the same configurations over and over, in that case we got you covered. You can change any of the global options directly in your App Module through `forRoot` which accept an optional object of Grid Options.
2
-
3
- ```typescript
4
- import { AngularSlickgridModule } from 'angular-slickgrid';
5
-
6
- @NgModule({
7
- declarations: [ /*...*/ ],
8
- imports: [
9
- AngularSlickgridModule.forRoot({
10
- enableAutoResize: true,
11
- autoResize: {
12
- containerId: 'grid-container',
13
- sidePadding: 15
14
- },
15
- enableFiltering: true,
16
- enableCellNavigation: true,
17
- enablePagination: true,
18
- enableRowSelection: true,
19
- enableTranslate: true,
20
- //...
21
- }),
22
- ],
23
- providers: [ /*...*/ ]
24
- });
25
-
26
- export class AppModule { }
27
- ```
28
- ### List of Global Options
29
- For the complete list of available Grid Option, you can take a look at the [Default Grid Options](https://github.com/ghiscoding/slickgrid-universal/blob/master/frameworks/angular-slickgrid/src/app/angular-slickgrid/global-grid-options.ts) file and/or technically any of the options from the [grid options - interface](https://github.com/ghiscoding/slickgrid-universal/blob/master/frameworks/angular-slickgrid/src/app/angular-slickgrid/models/gridOption.interface.ts) are configurable.
@@ -1,218 +0,0 @@
1
- ##### index
2
- - [Global Options](#global-autoresize-options)
3
- - [Delay a Grid Resize](#delay-a-grid-resize)
4
- - [Last Resize Dimension](#last-resize-dimensions)
5
- - [Pause Resizer](#pause-the-resizer-when-auto-resize-is-enabled)
6
- - [Add Grid Min/Max Height/Width](#add-grid-minmax-heightwidth)
7
- - [Add some Padding to the Calculation](#add-some-padding-to-the-calculation)
8
- - [Calculate Size by Container or Window Element](#calculate-size-by-container-or-window-element)
9
- - [Detect Resize by Container (Resize Observer) or Window](#detect-resize-by-container-or-window)
10
- - [Resize Grid with Fixed Dimensions](#resize-the-grid-with-fixed-dimensions)
11
- - [Troubleshooting](#troubleshooting)
12
-
13
- ### Description
14
- Almost all grids from the demos are using the auto-resize feature, and the feature does what its name suggest, it resizes the grid to fill entirely within the container it is contained. It also automatically resizes when the user changes its browser size.
15
-
16
- ### Demo
17
- [Demo Page](https://ghiscoding.github.io/Angular-Slickgrid/#/resize-by-content) / [Demo Component](https://github.com/ghiscoding/slickgrid-universal/blob/master/frameworks/angular-slickgrid/src/demos/examples/grid-resize-by-content.component.ts)
18
-
19
- ### Usage
20
- All you need to do is enable the Grid Option `enableAutoResize: true` and provide necessary information in the `autoResize`, at minimum you should provide your container an id or class name.
21
-
22
- ##### View
23
- ```html
24
- <div id="demo-container">
25
- <angular-slickgrid gridId="grid1"
26
- [columns]="columnDefinitions"
27
- [options]="gridOptions"
28
- [dataset]="dataset">
29
- </angular-slickgrid>
30
- </div>
31
- ```
32
-
33
- ```ts
34
- this.columnDefinitions = [
35
- // ...
36
- ];
37
-
38
- this.gridOptions = {
39
- autoResize: {
40
- container: '#demo-container' // container DOM selector
41
- },
42
- enableAutoResize: true
43
- };
44
- ```
45
-
46
- #### AutoResize Options
47
- There are multiple options you can pass to the `autoResize` in the Grid Options, you can see them all in the [autoResizeOption.interface](https://github.com/ghiscoding/slickgrid-universal/blob/master/packages/common/src/interfaces/resizerOption.interface.ts)
48
-
49
- ### Delay a Grid Resize
50
- Note that you can also delay the resize via the 1st argument to the `resizeGrid()` call.
51
- ```ts
52
- openSidebar() {
53
- this.isSidebarOpen = true;
54
- const delay = 100; // delay in milliseconds
55
- this.sgb.resizerService.resizeGrid(delay);
56
- }
57
- ```
58
-
59
- ### Last Resize Dimensions
60
- The `resizeGrid()` returns a promise with the last used resize dimensions, that might be helpful to resize and fix another grid or DOM element height/width. For example, we use that in our project to resize a sidebar element to become the same height as the main grid.
61
- ```ts
62
- async openSidebar() {
63
- this.isSidebarOpen = true;
64
-
65
- // resize the CPA list grid and resize the sidebar to the same height as the grid with it's pagination
66
- const lastDimensions = await this.sgb.resizerService.resizeGrid();
67
- if (lastDimensions && lastDimensions.heightWithPagination) {
68
- this.sidebarMaxHeight = `${lastDimensions.heightWithPagination}px`;
69
- }
70
- }
71
- ```
72
- ### Pause the resizer (when auto-resize is enabled)
73
- User can pause the resizer at any time and later resume the auto-resize. This might be useful in some use case, for example if you don't want the grid to resize after a certain event, you can pause the resizer before the action.
74
-
75
- ##### View
76
- ```html
77
- <button class="btn btn-default btn-sm"
78
- (click)="togglePauseResizer()">
79
- Pause auto-resize: <b>{{resizerPaused}}</b>
80
- </button>
81
-
82
- <angular-slickgrid gridId="grid2"
83
- [columns]="columnDefinitions"
84
- [options]="gridOptions"
85
- [dataset]="dataset"
86
- (onAngularGridCreated)="angularGridReady($event.detail)">
87
- </angular-slickgrid>
88
- ```
89
-
90
- ##### Component
91
- ```ts
92
- export class MyComponent {
93
- angularGrid: AngularGridInstance;
94
- resizerPaused = false;
95
-
96
- angularGridReady(angularGrid: AngularGridInstance) {
97
- this.angularGrid = angularGrid;
98
- }
99
-
100
- togglePauseResizer() {
101
- this.resizerPaused = !this.resizerPaused;
102
- this.angularGrid.resizerService.pauseResizer(this.resizerPaused);
103
- }
104
- }
105
- ```
106
-
107
- ### Add Grid Min/Max Height/Width
108
- You can set some values for minimum, maximum grid height and width that will be analyzed while executing the calculate available space for the grid.
109
-
110
- ```ts
111
- this.gridOptions = {
112
- enableAutoResize: true,
113
- autoResize: {
114
- maxHeight: 600,
115
- minHeight: 250,
116
- maxWidth: 800,
117
- minWidth: 200;
118
- }
119
- }
120
- ```
121
-
122
- ### Add some Padding to the Calculation
123
- Sometime the resizer is very close to the perfect size but you can just want to remove a bit more pixels for the total calculation, you can do that by simply adding paddings as shown below
124
-
125
- ```ts
126
- this.gridOptions = {
127
- enableAutoResize: true,
128
- autoResize: {
129
- rightPadding: 20, // note that there's no left option since we don't control the grid position
130
- bottomPadding: 25, // a good example of this usage is when the user adds Pagination, it adds a bottomPadding of about 30px
131
- }
132
- }
133
- ```
134
-
135
- ### Calculate Size by Container or Window Element
136
- The default way of calculating the available size is by the window element but in some rare case you might need to calculate by the container element.
137
- So if you do want to calculate the size by the container, then you can write it as shown below (for more info, see Angular-Slickgrid issue [#175](https://github.com/ghiscoding/Angular-Slickgrid/issues/175))
138
-
139
- ```ts
140
- this.gridOptions = {
141
- enableAutoResize: true,
142
- autoResize: {
143
- calculateAvailableSizeBy: 'container' // the 2 options would be 'container' | 'window'
144
- }
145
- }
146
- ```
147
-
148
- ### Detect resize by Container or Window
149
- The default way the grid detects a resize is by window. In other words, when the window resizes the grid calculates the width and height the grid should be and resizes to that.
150
-
151
- It's also possible to let the grid detect a resize by the grid container element. In other words, when the grid container element resizes the grid calculates the width and height it should be and resizes to that. Technically a `ResizeObserver` is used which may not be [available](https://caniuse.com/resizeobserver) in all browsers you target, if that is the case you could install a polyfill like [resize-observer-polyfill](https://www.npmjs.com/package/resize-observer-polyfill). When detecting container resizes it could make sense to also calculate available size by container.
152
-
153
- ```ts
154
- this.gridOptions = {
155
- enableAutoResize: true,
156
- autoResize: {
157
- container: '#demo-container',
158
- resizeDetection: 'container', // the 2 options would be 'container' | 'window'
159
- calculateAvailableSizeBy: 'container'
160
- }
161
- }
162
- ```
163
-
164
- For example you could add a resize handle to the grid container (shown on the bottom right corner):
165
- ```html
166
- <div id="demo-container" style="resize:both; overflow:auto;">
167
- <angular-slickgrid gridId="grid1"
168
- [columns]="columnDefinitions"
169
- [options]="gridOptions"
170
- [dataset]="dataset">
171
- </angular-slickgrid>
172
- </div>
173
- ```
174
-
175
- ### Resize the Grid with fixed Dimensions
176
- You can call `resizeGrid()` method at any point in time by passing dimensions as the 2nd argument of that method, that would in terms bypass the auto-resize (if enabled that is).
177
-
178
- ##### Component
179
- ```ts
180
- export class MyComponent {
181
- angularGrid: AngularGridInstance;
182
-
183
- angularGridReady(angularGrid: AngularGridInstance) {
184
- this.angularGrid = angularGrid;
185
- }
186
-
187
- togglePauseResizer() {
188
- const delay = 0;
189
- this.angularGrid.resizerService.gridResize(delay, { height: 800: width: 600 });
190
- }
191
- }
192
- ```
193
-
194
- ## Troubleshooting
195
- ### Why is my grid not resizing?
196
- 1. Have you put your grid in a `<div>` container referenced in your `autoResize` grid options?
197
- 2. I have the container defined but it still doesn't resize, why?
198
- #### Possible reason
199
- This feature uses `window.resize` event and if you change the size of your DIV programmatically, it will **not** change the size of your grid, mainly because that action did not trigger a `window.resize` event. However to circumvent this issue, you can call the auto-resize of the grid manually with the `ResizerService`. For example, we change the DIV CSS classes to use a different Bootstrap container size, that won't trigger an event and we have to manually call the resize, below is the code to do that.
200
-
201
- ```ts
202
- angularGridReady(angularGrid: AngularGridInstance) {
203
- this.angularGrid = angularGrid;
204
- }
205
-
206
- closeSidebar() {
207
- this.isSidebarOpen = false;
208
- this.angularGrid.resizerService.resizeGrid();
209
- }
210
-
211
- openSidebar() {
212
- this.isSidebarOpen = true;
213
- this.angularGrid.resizerService.resizeGrid();
214
- }
215
- ```
216
-
217
- #### Possible reason 2
218
- The resizer is **not perfect** and the DOM elements might not always show the correct height/width, in some cases certain `<div>` could show in the UI but return a height of `0px` and that will throw off the resizer. If that is your problem then search for the `clearfix` hack, this css trick [article](https://css-tricks.com/snippets/css/clear-fix/) might help you with that. In some other cases, you might just need to add some extra padding, that is why the resizer has the 2 properties built for that, `rightPadding` and `bottomPadding` that can be provided to the `autoResize` grid option.
@@ -1,134 +0,0 @@
1
- The `Grid Menu` (also known as the `Hamburger Menu`) is now part of the project and is enabled by default.
2
-
3
- ## How to use it?
4
- #### It's Enabled by default
5
- Technically, it's enable by default and so you don't have anything to do to enjoy it. However if you want to customize the content of the Grid Menu, then continue reading.
6
-
7
- ### Demo
8
- [Demo Page](https://ghiscoding.github.io/Angular-Slickgrid/#/gridmenu) / [Demo Component](https://github.com/ghiscoding/slickgrid-universal/blob/master/frameworks/angular-slickgrid/src/demos/examples/grid-menu.component.ts)
9
-
10
- ## Customization
11
- ### Column Picker
12
- The Grid Menu comes, by default, with a `Column Picker`. This brings an easy way to show/hide certain column(s) from the grid. This functionality was copied from the [Column Picker Plugin](https://github.com/ghiscoding/angular-slickgrid/wiki/SlickGrid-Controls-&-Plugins#column-picker) and brought over to the Grid Menu.
13
-
14
- ### Custom Commands
15
-
16
- The Grid Menu also comes, by default, with a list of built-in custom commands (all their `positionOrder` are in the reserved range of 40 to 60)
17
- - Clear all Filters (you can hide it with `hideClearAllFiltersCommand: true`)
18
- - Clear all Sorting (you can hide it with `hideClearAllSortingCommand: true`)
19
- - Toggle the Filter Row (you can hide it with `hideToggleFilterCommand: true`)
20
- - _Export to CSV_ (you can hide it with `hideExportCsvCommand: true`)
21
- - _Export to Text Delimited (you can hide it with `hideExportTextDelimitedCommand: true`)
22
- - _Refresh Dataset_, only shown when using Backend Service API (you can hide it with `hideRefreshDatasetCommand: true`)
23
-
24
- This section is called Custom Commands because you can also customize this section with your own commands. To do that, you need to fill in 2 properties (an array of `commandItems` and define `onGridMenuCommand` callback) in your Grid Options. For example, `Angular-Slickgrid` is configured by default with these settings (you can overwrite any one of them):
25
- ```javascript
26
- this.gridOptions = {
27
- enableAutoResize: true,
28
- enableGridMenu: true, // <<-- this will automatically add extra custom commands
29
- enableFiltering: true,
30
- gridMenu: {
31
- commandTitle: 'Custom Commands',
32
- columnTitle: 'Columns',
33
- iconCssClass: 'fa fa-ellipsis-v',
34
- menuWidth: 17,
35
- resizeOnShowHeaderRow: true,
36
- commandItems: [
37
- {
38
- iconCssClass: 'fa fa-filter text-danger',
39
- title: 'Clear All Filters',
40
- disabled: false,
41
- command: 'clear-filter'
42
- },
43
- {
44
- iconCssClass: 'fa fa-random',
45
- title: 'Toggle Filter Row',
46
- disabled: false,
47
- command: 'toggle-filter'
48
- },
49
- // you can add sub-menus by adding nested `commandItems`
50
- {
51
- // we can also have multiple nested sub-menus
52
- command: 'export', title: 'Exports', positionOrder: 99,
53
- commandItems: [
54
- { command: 'exports-txt', title: 'Text (tab delimited)' },
55
- {
56
- command: 'sub-menu', title: 'Excel', cssClass: 'green', subMenuTitle: 'available formats', subMenuTitleCssClass: 'text-italic orange',
57
- commandItems: [
58
- { command: 'exports-csv', title: 'Excel (csv)' },
59
- { command: 'exports-xlsx', title: 'Excel (xlsx)' },
60
- ]
61
- }
62
- ]
63
- },
64
- ],
65
- onCommand: (e, args) => {
66
- if (args.command === 'toggle-filter') {
67
- this.gridObj.setHeaderRowVisibility(!this.gridObj.getOptions().showHeaderRow);
68
- } else if (args.command === 'clear-filter') {
69
- this.filterService.clearFilters();
70
- this.dataviewObj.refresh();
71
- }
72
- }
73
- }
74
- };
75
- ```
76
-
77
- #### Events
78
-
79
- There are multiple events/callback hooks which are accessible from the Grid Options
80
- - `onBeforeMenuShow`
81
- - `onAfterMenuShow`
82
- - `onMenuClose`
83
- - `onColumnsChanged`
84
- - `onCommand`
85
-
86
- ```ts
87
- gridMenu: {
88
- // commandItems: [
89
- // { command: 'help', title: 'Help', positionOrder: 70, action: (e, args) => console.log(args) },
90
- // { command: '', divider: true, positionOrder: 72 },
91
- // { command: 'hello', title: 'Hello', positionOrder: 69, action: (e, args) => alert('Hello World'), cssClass: 'red', tooltip: 'Hello World', iconCssClass: 'mdi mdi-close' },
92
- // ],
93
- // menuUsabilityOverride: () => false,
94
- onBeforeMenuShow: () => {
95
- console.log('onGridMenuBeforeMenuShow');
96
- // return false; // returning false would prevent the grid menu from opening
97
- },
98
- onAfterMenuShow: () => console.log('onGridMenuAfterMenuShow'),
99
- onColumnsChanged: (_e, args) => console.log('onGridMenuColumnsChanged', args),
100
- onCommand: (e, args) => {
101
- // e.preventDefault(); // preventing default event would keep the menu open after the execution
102
- console.log('onGridMenuCommand', args.command);
103
- },
104
- onMenuClose: (e, args) => console.log('onGridMenuMenuClose - visible columns count', args.visibleColumns.length),
105
- },
106
- ```
107
-
108
- For more info on all the available properties of the custom commands, you can read refer to the doc written in the Grid Menu [implementation](https://github.com/6pac/SlickGrid/blob/master/controls/slick.gridmenu.js) itself.
109
-
110
- ### How to change an icon of all default commands?
111
-
112
- You can change any of the default command icon(s) by changing the `icon[Command]`, for example, see below for the defaults.
113
- ```javascript
114
- this.gridOptions = {
115
- enableGridMenu: true,
116
- gridMenu: {
117
- iconClearAllFiltersCommand: 'fa fa-filter text-danger'
118
- iconClearAllSortingCommand: 'fa fa-unsorted text-danger',
119
- iconExportCsvCommand: 'fa fa-download',
120
- iconExportTextDelimitedCommand: 'fa fa-download',
121
- iconRefreshDatasetCommand: 'fa fa-refresh',
122
- iconToggleFilterCommand: 'fa fa-random',
123
- },
124
- };
125
- ```
126
-
127
- ### How to Disable the Grid Menu?
128
-
129
- You can disable the Grid Menu, by calling `enableGridMenu: false` from the Grid Options.
130
- ```javascript
131
- this.gridOptions = {
132
- enableGridMenu: false
133
- };
134
- ```
@@ -1,245 +0,0 @@
1
- #### index
2
- - [Description](#descriptions)
3
- - [Grid State](#grid-state-1)
4
- - [Grid Presets](#grid-presets)
5
- - [Grid State Events](#grid-state-events)
6
- - [How to Load Grid with Certain Columns Hidden](#how-to-load-grid-with-certain-columns-preset-example-hide-certain-columns-on-load)
7
-
8
- ### Demo
9
- Look at your developer console before leaving the page
10
- #### Regular grid
11
- [Demo Page](https://ghiscoding.github.io/Angular-Slickgrid/#/clientside) / [Demo Component](https://github.com/ghiscoding/slickgrid-universal/blob/master/frameworks/angular-slickgrid/src/demos/examples/grid-clientside.component.ts)
12
-
13
- #### with Backend Service
14
- [Demo Page](https://ghiscoding.github.io/Angular-Slickgrid/#/gridgraphql) / [Demo Component](https://github.com/ghiscoding/slickgrid-universal/blob/master/frameworks/angular-slickgrid/src/demos/examples/grid-graphql.component.ts)
15
-
16
- ## Descriptions
17
- #### Grid State
18
- The `Grid State` are what we defined as the currently used `Columns` / `Filters` / `Sorters` / `Pagination` of the actual grid (pagination is only returned when used with Backend Service API). The columns also include their (size, position order & visibility (show/hidden)).
19
- #### Presets
20
- Presets can be used to preset a grid with certain `Columns` / `Filters` / `Sorters` / `Pagination`. When we say `Columns`, we actually mean their size, order position and visibility (shown/hidden) in the grid.
21
- #### Combining the two together
22
- So basically, the idea is to save the `Grid State` in Local Storage (or DB) before the grid gets destroyed and once we come back to that same page we can preset the grid with the exact same state as it was before leaving the page (just like if we were doing a forward/back button with browser history).
23
-
24
- ## Grid State
25
- You can get the `Grid State` at any point in time. However if you wish to save the grid state before leaving the page and store that in Local Storage, then the best way is to use the `onBeforeGridDestroy` Event Emitter.
26
-
27
- ##### View
28
- ```html
29
- <angular-slickgrid
30
- gridId="grid2"
31
- [columns]="columnDefinitions"
32
- [options]="gridOptions"
33
- [dataset]="dataset"
34
- (onAngularGridCreated)="angularGridReady($event.detail)"
35
- (onBeforeGridDestroy)="saveCurrentGridState($event)">
36
- </angular-slickgrid>
37
- ```
38
-
39
- ##### Component
40
- ```typescript
41
- import { GridState } from 'angular-slickgrid';
42
-
43
- @Component({
44
- templateUrl: './grid-demo.component.html'
45
- })
46
- export class GridDemoComponent {
47
- angularGrid: AngularGridInstance;
48
-
49
- angularGridReady(angularGrid: AngularGridInstance) {
50
- this.angularGrid = angularGrid;
51
- }
52
-
53
- // you can save it to Local Storage of DB in this call
54
- saveCurrentGridState(grid) {
55
- const gridState: GridState = this.angularGrid.gridStateService.getCurrentGridState();
56
- console.log('Leaving page with current grid state', gridState);
57
- }
58
- }
59
- ```
60
-
61
- ### Using Grid Presets & Filter SearchTerm(s)
62
- What happens when we use the grid `presets` and a [Filter Default SearchTerms](../column-functionalities/filters/select-filter.md#default-search-terms)? In this case, the `presets` will win over filter `searchTerms`. The cascading order of priorities is the following
63
- 1. Do we have any `presets`? Yes use them, else go to step 2
64
- 2. Do we have any Filter `searchTerms`? Yes use them, else go to step 3
65
- 3. No `presets` and no `searchTerms`, load grid with default grid & column definitions
66
-
67
- ## Grid Presets
68
- ### Structure
69
- The current structure of a Grid Presets is the following
70
- ```typescript
71
- export interface CurrentColumn {
72
- columnId: string;
73
- cssClass?: string;
74
- headerCssClass?: string;
75
- width?: number;
76
- }
77
- export interface CurrentFilter {
78
- columnId: string;
79
- operator?: OperatorType | OperatorString;
80
- searchTerms?: SearchTerm[];
81
- }
82
- export interface CurrentSorter {
83
- columnId: string;
84
- direction: SortDirection | SortDirectionString;
85
- }
86
- export interface GridState {
87
- columns?: CurrentColumn[] | null;
88
- filters?: CurrentFilter[] | null;
89
- sorters?: CurrentSorter[] | null;
90
- pagination?: {
91
- pageNumber: number;
92
- pageSize: number;
93
- };
94
- pinning?: CurrentPinning;
95
- rowSelection?: CurrentRowSelection | null;
96
- treeData?: Partial<TreeToggleStateChange> | null;
97
- }
98
- ```
99
-
100
- #### Example
101
- For example, we can set `presets` on a grid like so:
102
- **Component**
103
- ```typescript
104
- import { GridState } from 'angular-slickgrid';
105
-
106
- @Component({
107
- templateUrl: './grid-demo.component.html'
108
- })
109
- export class GridDemoComponent {
110
- angularGrid: AngularGridInstance;
111
-
112
- ngOnInit(): void {
113
- this.columnDefinitions = [
114
- { id: 'name', name: 'Name', field: 'name', filterable: true, sortable: true, sortable: true },
115
- { id: 'duration', name: 'Duration', field: 'duration', filterable: true, sortable: true },
116
- { id: 'complete', name: '% Complete', field: 'percentComplete', filterable: true, sortable: true },
117
- ];
118
-
119
- this.gridOptions = {
120
- enableFiltering: true,
121
-
122
- // use columnDef searchTerms OR use presets as shown below
123
- presets: {
124
- // the column position in the array is very important and represent
125
- // the position that will show in the grid
126
- columns: [
127
- { columnId: 'duration', width: 88, headerCssClass: 'customHeaderClass' },
128
- { columnId: 'complete', width: 57 }
129
- ],
130
- filters: [
131
- { columnId: 'duration', searchTerms: [2, 22, 44] },
132
- { columnId: 'complete', searchTerms: ['>5'] }
133
- ],
134
- sorters: [
135
- { columnId: 'duration', direction: 'DESC' },
136
- { columnId: 'complete', direction: 'ASC' }
137
- ],
138
-
139
- // with Backend Service ONLY, you can also add Pagination info
140
- pagination: { pageNumber: 2, pageSize: 20 }
141
- }
142
- };
143
- }
144
- ```
145
-
146
- ### Grid State Event
147
- There are 2 ways of subscribing to GridState Service event changed.
148
- 1. Through `(onGridStateChanged)` Event Emitter (recommended)
149
- 2. Through `onGridStateChanged` Observable on the GridState Service.
150
-
151
- Examples
152
- #### 1. `(onGridStateChanged)` Event Emitter (recommended)
153
- ##### View
154
- ```html
155
- <angular-slickgrid gridId="grid1"
156
- [columns]="columnDefinitions"
157
- [options]="gridOptions"
158
- [dataset]="dataset"
159
- (onGridStateChanged)="gridStateChanged($event)">
160
- </angular-slickgrid>
161
- ```
162
- ##### Component
163
- ```typescript
164
- import { GridStateChange } from 'angular-slickgrid';
165
-
166
- export class ExampleComponent implements OnInit {
167
- gridStateChanged(gridState: GridStateChange) {
168
- console.log('Grid State changed:: ', gridState);
169
- }
170
- }
171
- ```
172
-
173
- #### 2. Through `onGridStateChanged` Observable on the GridState Service
174
- ##### View
175
- ```html
176
- <angular-slickgrid
177
- gridId="grid2"
178
- [columns]="columnDefinitions"
179
- [options]="gridOptions"
180
- [dataset]="dataset"
181
- (onAngularGridCreated)="angularGridReady($event.detail)"
182
- (onBeforeGridDestroy)="saveCurrentGridState($event)">
183
- </angular-slickgrid>
184
- ```
185
- ##### Component
186
- ```typescript
187
- import { AngularGridInstance, GridStateChange } from 'angular-slickgrid';
188
-
189
- export class ExampleComponent implements OnInit, OnDestroy {
190
- angularGrid: AngularGridInstance;
191
- gridStateSub: Subscription;
192
-
193
- angularGridReady(angularGrid: AngularGridInstance) {
194
- this.angularGrid = angularGrid;
195
- this.gridStateSub = this.angularGrid.gridStateService.onGridStateChanged.subscribe((data: GridStateChange) => console.log(data));
196
- }
197
-
198
- ngOnDestroy() {
199
- this.gridStateSub.unsubscribe();
200
- }
201
- }
202
- ```
203
-
204
- ## How to Load Grid with certain Columns Preset (example hide certain Column(s) on load)
205
- You can show/hide or even change a column position via the `presets`, yes `presets` is that powerful. All you need to do is to pass all Columns that you want to show as part of the `columns` property of `presets`. Typically you already have the entire columns definition since you just defined it, so you can loop through it and just use `map` to list the `columns` according to the structure needed (see [preset structure](Grid-State-&-Preset#structure.md)). What you have to know is that whatever array you provide to `presets`, that will equal to what the user will see and also in which order the columns will show (the array order does matter in this case). If a Columns is omitted from that array, then it will be considered to be a hidden column (you can still show it through Grid Menu and/or Column Picker).
206
-
207
- So let say that we want to hide the last Column on page load, we can just find the column by it's `id` that you want to hide and pass the new column definition to the `presets` (again make sure to follow the correct preset structure).
208
-
209
- ```ts
210
- this.columnDefinitions = [
211
- // initial column definitions
212
- ];
213
-
214
- // for example, let's hide last column, we can just use `pop()` to ommit last column
215
- // and use `map()` to pull only the required field for presets to work
216
- const mappedColumnDefinitions = this.columnDefinitions.map(col => ({ columnId: col.id, width: col.width }));
217
- mappedColumnDefinitions.pop();
218
-
219
- // then pass it to the presets
220
- this.gridOptions = {
221
- presets: {
222
- columns: mappedColumnDefinitions
223
- }
224
- };
225
- ```
226
- This would be the easiest way to do it.
227
-
228
- As pointed out earlier, the `presets` requires a specific structure where the `columns` is the list of columns to show/hide with their possible widths. Also worth mentioning again that the position in the array is very important as it defines the position shown in the UI.
229
-
230
- ```ts
231
- this.gridOptions = {
232
- enableFiltering: true,
233
-
234
- // use columnDef searchTerms OR use presets as shown below
235
- presets: {
236
- // the column position in the array is very important and represent
237
- // the position that will show in the grid
238
- columns: [
239
- { columnId: 'duration', width: 88, headerCssClass: 'customHeaderClass' },
240
- { columnId: 'complete', width: 57 }
241
- ],
242
- }
243
- };
244
- ```
245
- You could technically redefine by hand the complete list of `columns` that the `presets` requires. I would personally do it via the Column Definitions looping with `map()`, but go manual is also perfectly fine. You would just re-declare the `columns` again with the `id` and `width` and that would work as well.