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,219 +0,0 @@
1
- ## Embracing ESM-only builds ⚡ (WIP)
2
-
3
- This new release is focused around 2 things, we now ship ESM-only builds (in other words, CommonJS builds are fully dropped and only ESM will remain), this move will cut the npm download size by half. The other big change is an internal one which is an organizational one, I'm moving all framework wrappers directly into Slickgrid-Universal (Angular, Aurelia, React and Vue wrappers are now all located under the [frameworks/](https://github.com/ghiscoding/slickgrid-universal/tree/master/frameworks/) folder), this will help tremendously with the project maintenance (any new PR will now run against all frameworks all at once (catching bugs early), publishing a new version is becoming a single execution for all frameworks all at once, and finally having a single codebase to test & troubleshoot any wrapper, etc... will be so much easier to handle). Now Slickgrid-Universal name totally makes sense with this new structure change 🌐
4
-
5
- The other great thing about having everything under the same roof/project is that every package will be released at the exact same time with the exact same versions across the board. Everything will be released under v9.0 and whenever a new feature/bugfix comes in, then every package will be bumped to v9.1 and so on (no more version discrepancies).
6
-
7
- I also decided to align all SlickGrid examples in all frameworks and Angular-Slickgrid turned out to have many example offsets, so just be aware that the example numbering might have changed a little (ie: Row Detail is now Example 19 instead of 21).
8
-
9
- #### Major Changes - Quick Summary
10
- - minimum requirements bump
11
- - Angular v19+
12
- - Node v20+
13
- - upgrade Vanilla-Calendar-Pro to v3 with [flat config](#date-editorfilter-flat-config)
14
- - [shorter attribute names](#shorter-attribute-names)
15
- - now using `clipboard` API, used in ExcelCopyBuffer/ContextMenu/CellCopy, which might requires end user permissions
16
- - removing Arrow pointer from Custom Tooltip addon (because it was often offset with the cell text)
17
-
18
- > **Note:** if you come from an earlier version, please make sure to follow each migrations in their respected order (review previous migration guides)
19
-
20
- ## Changes
21
-
22
- ### Removed @deprecated code
23
-
24
- 1. `colspanCallback` was deprecated and removed, please use the `globalItemMetadataProvider` instead
25
-
26
- ```diff
27
- gridOptions = {
28
- - colspanCallback: this.renderDifferentColspan.bind(this),
29
- + dataView: {
30
- + globalItemMetadataProvider: {
31
- + getRowMetadata: this.renderDifferentColspan.bind(this)
32
- + }
33
- + }
34
- }
35
- ```
36
-
37
- 2. `groupingService` from `AngularGridInstance` was deprecate and removed, but I would be very surprised if anyone used it. Simply use `headerGroupingService` instead.
38
-
39
- ```diff
40
- function angularGridReady(angularGrid: AngularGridInstance) {
41
- this.angularGrid = angularGrid;
42
- - angularGrid.groupingService.renderPreHeaderRowGroupingTitles();
43
- + angularGrid.headerGroupingService.renderPreHeaderRowGroupingTitles();
44
- }
45
- ```
46
-
47
- 3. Row Detail changes
48
- - `itemDetail` property is removed, just use `item` (there's no reason to keep duplicate props)
49
- - `parent` property renamed to `parentRef`
50
- - `OnRowBackToViewportRangeArgs` and `OnRowOutOfViewportRangeArgs` were equal, so it was merged into a new `OnRowBackOrOutOfViewportRangeArgs` interface
51
-
52
- ```diff
53
- export class Component {
54
- gridOptions = {
55
- enableRowDetailView: true,
56
- rowTopOffsetRenderType: 'top', // RowDetail and/or RowSpan don't render well with "transform", you should use "top"
57
- rowDetailView: {
58
- - onAsyncResponse: (e, args) => console.log('before toggling row detail', args.itemDetail),
59
- + onAsyncResponse: (e, args) => console.log('before toggling row detail', args.item),
60
- },
61
- };
62
-
63
- // `parent` renamed as `parentRef`
64
- callParentMethod(model: any) {
65
- - this.parent!.someParentFunction(`We just called Parent Method from the Row Detail Child Component on ${model.title}`);
66
- + this.parentRef!.someParentFunction(`We just called Parent Method from the Row Detail Child Component on ${model.title}`);
67
- }
68
- }
69
- ```
70
-
71
- 4. Draggable Grouping `setDroppedGroups` to load grid with initial Groups was deprecated and now removed, simply use `initialGroupBy` instead
72
-
73
- ```diff
74
- this.gridOptions = {
75
- enableDraggableGrouping: true,
76
- // frozenColumn: 2,
77
- draggableGrouping: {
78
- - setDroppedGroups: () => ['duration', 'cost'],
79
- + initialGroupBy: ['duration', 'cost'],
80
- },
81
- };
82
- ```
83
-
84
- 5. for Header Menu, we had 2 similar events `onHeaderMenuHideColumns` and `onHideColumns` that were doing the same thing, so `onHeaderMenuHideColumns` was dropped
85
-
86
- ```diff
87
- - onHeaderMenuHideColumns
88
- + onHideColumns
89
- ```
90
-
91
- ### Grid Options
92
-
93
- `rowTopOffsetRenderType` default is changing from `'top'` to `'transform'` and the reason is because `transform` is known to have better styling perf, especially on large dataset, and that is also what Ag-Grid uses by default.
94
-
95
- | previous default | new default |
96
- | --------------- | ------------ |
97
- | `rowTopOffsetRenderType: 'top'` | `rowTopOffsetRenderType: 'transform'` |
98
-
99
- - if you are using Cypress to get the row X in the grid, which is what we do ourselves, then you will need to adjust your tests
100
-
101
- | Cypress before | Cypress after |
102
- | -------------- | -------------- |
103
- | `cy.get([style="top: ${GRID_ROW_HEIGHT * 0}px;"])` | `cy.get([style="transform: translateY(${GRID_ROW_HEIGHT * 0}px);"])` |
104
- | | OR `cy.get([data-row=0])` |
105
-
106
- > Please note that you will have to change the default to `rowTopOffsetRenderType: 'top'` when using either RowSpan and/or Row Detail features.
107
-
108
- ### Shorter Attribute Names
109
- We are changing the `columnDefinitions` and `gridOptions` attribute names to much simpler single word names. Basically, I'm not exactly sure why I chose the long name in the past, but going forward, I think it would be much simpler to use single name attributes (which can help slightly with build size)
110
-
111
- ```diff
112
- <angular-slickgrid gridId="grid1"
113
- - [columnDefinitions]="columnDefinitions"
114
- - [gridOptions]="gridOptions"
115
- + [columns]="columnDefinitions"
116
- + [options]="gridOptions"
117
- ></angular-slickgrid>
118
- ```
119
-
120
- ## Column Functionalities
121
-
122
- ### Date Editor/Filter (flat config)
123
- Vanilla-Calendar-Pro was upgraded to v3.0 and the main breaking change is that they migrated to flat config (instead of complex object config) and this mean that if you use any of their option, then you'll have to update them to be flat.
124
-
125
- The biggest change that you will most probably have to update is the min/max date setting when using the `'today'` shortcut as shown below:
126
-
127
- ```diff
128
- import { type VanillaCalendarOption } from '@slickgrid-universal/common';
129
-
130
- prepareGrid() {
131
- this.columnDefinitions = [{
132
- id: 'finish', field: 'finish', name: 'Finish',
133
- editor: {
134
- model: Editors.date,
135
- - editorOptions: { range: { min: 'today' } } as VanillaCalendarOption,
136
- + editorOptions: { displayDateMin: 'today' } as VanillaCalendarOption,
137
- }
138
- }];
139
- }
140
- ```
141
-
142
- > [!NOTE]
143
- > for a complete list of option changes, visit the Vanilla-Calendar-Pro [migration](https://github.com/uvarov-frontend/vanilla-calendar-pro/wiki/%5BMigration-from-v2.*.*%5D-New-API-for-all-options-and-actions-in-v3.0.0) page, which details every single options with their new option names.
144
-
145
- ## Grid Functionalities
146
-
147
- ## Services
148
-
149
- The `GridService` has CRUD methods that were sometime returning a single item and other times an array of items and for that reason we had to rely on code like `onItemAdded.subscribe(item => { const items = Array.isArray(item) ? item : [item] }`. So for that reason, I decided to change the event names to plural and always return an array of items which is a lot more predictable.
150
-
151
- - `onItemAdded` renamed to `onItemsAdded`
152
- - `onItemDeleted` renamed to `onItemsDeleted`
153
- - `onItemUpdated` renamed to `onItemsUpdated`
154
- - `onItemUpserted` renamed to `onItemsUpserted`
155
-
156
- ---
157
-
158
- ## Future Changes (next major)
159
- ### Code being Deprecated (to be removed in the future, not before another year)
160
- #### You can start using new properties and options shown below in v9.0 and above.
161
-
162
- So when I created the project, I used a few TypeScript Enums and I though this was great but it turns out that all of these Enums end up in the final transpiled JS bundle. So in the next major, I'm planning to remove most of these Enums and replace them with string literal types (`type` instead of `enum`). So you should consider using string types as much and as soon as possible in all your new grids. Note that at the moment, they are only deprecations, and will only be dropped in the future (not now, but you should still consider this for the future), for example:
163
-
164
- ```diff
165
- columns = [{
166
- id: 'age', ...
167
- - type: FieldType.number,
168
- + type: 'number',
169
- }];
170
- ```
171
- > Note that migrating from `FieldType` to string types was already doable for the past couple years, so this one is far from new.
172
-
173
- Below are a list of Enums being deprecated and you should think about migrating them eventually because they will be removed in the next major release (whenever that happens, but that won't be before another year). Note that the list below are only a summary of these deprecations and replacements.
174
-
175
- | Enum Name | from `enum` | to string `type` | Note |
176
- | ----------- | ------------------- | ------------------- | ---- |
177
- | `FileType` | `FieldType.boolean` | `'boolean'` |
178
- | | `FileType.number` | `'number'` |
179
- | - | - | - |
180
- | `FieldType` | `FileType.csv` | `'csv'` |
181
- | | `FileType.xlsx` | `'xlsx'` |
182
- | - | - | - |
183
- | `GridStateType` | `GridStateType.columns` | `'columns'` |
184
- | | `GridStateType.filters` | `'filters'` |
185
- | | `GridStateType.sorters` | `'sorters'` |
186
- | - | - | - |
187
- | `Operator` | `Operator.greaterThan` | `'>'` | See [Operator](https://github.com/ghiscoding/slickgrid-universal/blob/master/packages/common/src/enums/operatorString.type.ts) list for all available opeators |
188
- | | `Operator.lessThanOrEqual` | `'<='` |
189
- | | `Operator.contains` | `'Contains'` or `'CONTAINS'` | Operators are written as PascalCase |
190
- | | `Operator.equal` | `'EQ'` |
191
- | | `Operator.rangeExclusive` | `'RangeExclusive'` |
192
- | - | - | - |
193
- | `SortDirection` | `SortDirection.ASC` | `'ASC'` or `'asc'` |
194
- | | `SortDirection.DESC` | `'DESC'` or `'desc'` |
195
- | - | - | - |
196
-
197
- ##### deprecating `editorOptions` and `filterOptions`, they are being renamed as `options`
198
-
199
- in order to make it easier to merge and simplify editor/filter options, I'm merging them into a single `options` property which will make it more easily transportable (you will be able to reuse the same `options` for both the editor/filter if need be). You can start using `options` in v9.0 and above.
200
-
201
- ```diff
202
- import { type MultipleSelectOption } from '@slickgrid-universal/common';
203
-
204
- columnDefinitions = [{
205
- id: 'duration', field: 'duration', name: 'Duration',
206
- editor: {
207
- - editorOptions: {
208
- + options: {
209
- maxHeight: 250, useSelectOptionLabelToHtml: true,
210
- } as MultipleSelectOption,
211
- },
212
- filter: {
213
- - filterOptions: {
214
- + options: {
215
- maxHeight: 250, useSelectOptionLabelToHtml: true,
216
- } as MultipleSelectOption,
217
- }
218
- }];
219
- ```
@@ -1,79 +0,0 @@
1
- In some cases you might want a feature that is not yet available in `Angular-Slickgrid` but exists in the original `SlickGrid`, what should you do? Fear not, we got you covered. `Angular-Slickgrid` exposes the SlickGrid `Grid` and `DataView` objects through Event Emitters, these objects are created when Angular-Slickgrid initialize the grid (with `ngAfterViewInit`). The ones we want to use for our usage would be `onGridCreated` and `onDataviewCreated`, depending on which object you want to obtain.
2
-
3
- **The new preferred way is now to use the `AngularGridInstance` via the `onAngularGridCreated` Event Emitter**
4
-
5
- ### Event Emitter
6
- Angular-Slickgrid have the following Event Emitters that you can hook to
7
- - `onAngularGridCreated`
8
- - `onDataviewCreated`
9
- - `onGridCreated`
10
- - `onBeforeGridCreate`
11
- - `onBeforeGridDestroy`
12
- - `onAfterGridDestroyed`
13
-
14
- The ones we want to use for our usage would be `onGridCreated` and `onDataviewCreated`, depending on which object you want to obtain.
15
-
16
- ### Grid & DataView objects through `onAngularGridCreated`
17
- Since version `1.x`, we can now access the Slick `Grid` & `DataView` objects directly from the `AngularGridInstance` through the `(onAngularGridCreated)` Event Emitter, for example:
18
-
19
- ##### View
20
- ```html
21
- <span id="radioAutoEdit">
22
- <label class="radio-inline control-label" for="radioTrue">
23
- <input type="radio" name="inlineRadioOptions" id="radioTrue" checked [value]="isAutoEdit" (change)="setAutoEdit(true)"> ON (single-click)
24
- </label>
25
- <label class="radio-inline control-label" for="radioFalse">
26
- <input type="radio" name="inlineRadioOptions" id="radioFalse" [value]="isAutoEdit" (change)="setAutoEdit(false)"> OFF (double-click)
27
- </label>
28
- </span>
29
-
30
- <angular-slickgrid gridId="grid2"
31
- [columns]="columnDefinitions"
32
- [options]="gridOptions"
33
- [dataset]="dataset"
34
- (onAngularGridCreated)="angularGridReady($event.detail">
35
- </angular-slickgrid>
36
- ```
37
-
38
- ##### Component
39
- ```typescript
40
- import { AngularGridInstance, Column, GridOption } from 'angular-slickgrid';
41
-
42
- export class MyApp {
43
- angularGrid: AngularGridInstance;
44
- columnDefinitions: Column[];
45
- gridOptions: GridOption;
46
- dataset: any[];
47
- isAutoEdit = true;
48
- gridObj: any;
49
- dataViewObj: any;
50
-
51
-
52
- angularGridReady(angularGrid: AngularGridInstance) {
53
- this.angularGrid = angularGrid;
54
- this.gridObj = angularGrid.slickGrid;
55
- this.dataViewObj = angularGrid.dataView;
56
- }
57
-
58
- /** Change dynamically `autoEdit` grid options */
59
- setAutoEdit(isAutoEdit) {
60
- this.isAutoEdit = isAutoEdit;
61
- this.gridObj.setOptions({ autoEdit: isAutoEdit }); // change the grid option dynamically
62
- return true;
63
- }
64
-
65
- collapseAllGroups() {
66
- this.dataviewObj.collapseAllGroups();
67
- }
68
-
69
- expandAllGroups() {
70
- this.dataviewObj.expandAllGroups();
71
- }
72
- }
73
- ```
74
-
75
- ### SlickGrid Events (original SlickGrid)
76
- You have access to all original SlickGrid events which you can subscribe, for more info refer to the [Docs - Grid & DataView Events](../events/Grid-&-DataView-Events.md)
77
-
78
- ### Usage
79
- There's already all the necessary information on how to use this on the [Docs - Grid & DataView Events](../events/Grid-&-DataView-Events.md#view) page, so I suggest you to head over to that Documentation page on how to use the `SlickGrid` and `DataView` objects
@@ -1,100 +0,0 @@
1
- ## Dark Mode
2
-
3
- When enabled (defaults to false), it will show the grid in Dark Mode by adding `slick-dark-mode` CSS class to the grid. Note that it is defined as a grid option because the grid uses a few elements that could be appended to the DOM `body` (e.g. ColumnPicker, GridMenu, LongTextEditor, CompositeEditorModal, ...) and when Dark Mode is enabled, it needs to inform all of these features that we are using Dark Mode (or Light Mode by default). So whenever any of these features are in play, and before it is appended to the `body`, it will add a `slick-dark-mode` (or `ms-dark-mode` for ms-select) CSS class to that element to let it know that we are in Dark Mode.
4
-
5
-
6
- ### Toggle Light/Dark Mode
7
-
8
- You can easily toggle light/dark mode by using `grid.setOptions()`
9
-
10
- ```ts
11
- export class MyDemo {
12
- isDarkModeEnabled = false;
13
- gridOptions: GridOption;
14
-
15
- prepareGrid() {
16
- this.gridOptions = {
17
- // ...
18
- darkMode: this.isDarkModeEnabled;
19
- }
20
- }
21
-
22
- toggleDarkMode() {
23
- this.isDarkModeEnabled = !this.isDarkModeEnabled;
24
- this.sgb.slickGrid?.setOptions({ darkMode: this.isDarkModeEnabled });
25
-
26
- // optionally update your local grid options as well
27
- this.gridOptions = { ...this.gridOptions, darkMode: this.isDarkModeEnabled };
28
- }
29
- }
30
- ```
31
-
32
- ### How to Auto-Detect Dark Mode?
33
-
34
- By default the grid will **not** automatically enable Dark Mode, neither read the browser's color scheme (the reason are mentioned in the description above). However, you could implement your own code to detect the color scheme (for modern browser only) when loading your browser and set it in your grid options. You can see a demo of that in the first grid of [Example 1](https://ghiscoding.github.io/Angular-Slickgrid/#/basic)
35
-
36
- ```ts
37
- export class MyDemo {
38
- gridOptions: GridOption;
39
-
40
- // auto-detect browser's color scheme function
41
- isBrowserDarkModeEnabled() {
42
- return window.matchMedia?.('(prefers-color-scheme: dark)').matches ?? false;
43
- }
44
-
45
- prepareGrid() {
46
- this.gridOptions = {
47
- // ...
48
- darkMode: this.isBrowserDarkModeEnabled();
49
- }
50
- }
51
- }
52
- ```
53
-
54
- ### Composite Editor Modal (for Bootstrap users)
55
-
56
- For `Bootstrap` users, it will also require the developer to add a `data-bs-theme="dark"` attribute which is also another reason why we added `darkMode` as a grid option. So for Bootstrap users, you will have to add this required attribute by yourself for the Dark Mode to display properly. If you forget to add this attribute, you might see some of the filter inputs and other sections displayed with a white background instead of an expected dark gray backgroud.
57
-
58
- > **Note** the `onRendered` is a new lifecycle callback of Composite Editor Modal that was added specifically for this Bootstrap use case
59
-
60
- ```ts
61
- this.compositeEditorInstance?.openDetails({
62
- // ...
63
- onRendered: (modalElm) => modalElm.dataset.bsTheme = 'dark',
64
- });
65
- ```
66
-
67
- ### Grid Menu
68
- By default there is no command for toggling the Dark Mode from the Grid Menu, however you can show the command at any time via the following settings:
69
-
70
- ```ts
71
- export class MyDemo {
72
- isDarkModeEnabled = false;
73
-
74
- defineGrid() {
75
- this.gridOptions = {
76
- darkMode: this.isDarkModeEnabled,
77
- gridMenu: {
78
- hideToggleDarkModeCommand: false, // hidden by default
79
-
80
- // you can optionally add extra command to toggle your own page styling as well
81
- onCommand: (_, args) => {
82
- // ...
83
- },
84
-
85
- // you can also change the icon and/or command name
86
- iconToggleDarkModeCommand: 'mdi mdi-brightness-4',
87
- commandLabels: {
88
- toggleDarkModeCommand: 'Toggle Dark Mode',
89
- },
90
- }
91
- };
92
- }
93
- }
94
- ```
95
-
96
- ### Tweaking Some Colors
97
-
98
- The Dark Mode Theme was created by setting a few CSS variables, in some cases you might need to tweak some of these variables. Take a look at the Slickgrid-Universal [CSS variables](https://github.com/ghiscoding/slickgrid-universal/blob/670946dcedd330a70d2e88127a0042474e7a5348/packages/common/src/styles/_variables.scss#L976-L985) to see which variables were reassigned. Also note that if you're using other Themes like Material or Salesforce, then there's also other variables that are set (see [Material variables](https://github.com/ghiscoding/slickgrid-universal/blob/670946dcedd330a70d2e88127a0042474e7a5348/packages/common/src/styles/_variables-theme-material.scss#L159-L189) or [Salesforce variables](https://github.com/ghiscoding/slickgrid-universal/blob/670946dcedd330a70d2e88127a0042474e7a5348/packages/common/src/styles/_variables-theme-salesforce.scss#L202-L219))
99
-
100
- > **Note** to support both Light and Dark Mode in the same Theme, we use CSS variables **only**. There some dedicated SASS variables for Dark Mode but very few, you can see them from the `_variables.scss` file at this [line](https://github.com/ghiscoding/slickgrid-universal/blob/dc5d402db61460a25e8921efeebda37ac1c18791/packages/common/src/styles/_variables.scss#L944-L953), if that is not enough then you'll want to override some colors for Dark Mode via the CSS variables. The best way to find the CSS variable assigned is to simply use your browser's debugger tool (F12).
@@ -1,250 +0,0 @@
1
- #### index
2
- - [Using Built-in Themes (CSS or SASS)](#csssass-styles)
3
- - [Using CSS Variables](#using-css-variables-instead-of-sass)
4
- - [Bootstrap & Other Frameworks](#bootstrap-support)
5
- - [SVG Icons](#svg-icons)
6
-
7
- ### CSS/SASS Styles
8
- Load the default Bootstrap theme style and/or customize it to your taste (customization can applied by using SASS)
9
-
10
- #### CSS
11
- Default compiled `css` (if you use the plain Bootstrap Theme CSS, you could simply add it to your `.angular-cli.json` file and be done with it)
12
- ```json
13
- "styles": [
14
- "../node_modules/bootstrap/dist/css/bootstrap.css",
15
- "styles.css",
16
- "../node_modules/angular-slickgrid/styles/css/slickgrid-theme-bootstrap.css"
17
- ],
18
- ```
19
-
20
- > **Note** Bootstrap is optional, you can use any other framework, other themes are also available as CSS and SCSS file extensions
21
- > `slickgrid-theme-default.css`, `slickgrid-theme-bootstrap.css`, `slickgrid-theme-material.css`, `slickgrid-theme-salesforce.css`
22
-
23
- ### Using built-in Themes
24
- The Material & Salesforce Themes are using SVGs internally for the icons used by the grid. Each built-in Themes have CSS and SASS files associated with each theme. To take benefit of this, just import whichever CSS/SASS file associated with the Theme you wish to use.
25
-
26
- ##### with CSS
27
- ```scss
28
- /* style.css */
29
- @use '@slickgrid-universal/common/dist/styles/css/slickgrid-theme-default.css';
30
-
31
- // or other Themes
32
- @use '@slickgrid-universal/common/dist/styles/css/slickgrid-theme-bootstrap.css';
33
- @use '@slickgrid-universal/common/dist/styles/styles/css/slickgrid-theme-material.css';
34
- @use '@slickgrid-universal/common/dist/styles/css/slickgrid-theme-salesforce.css';
35
- ```
36
-
37
- ##### with SASS
38
- ```scss
39
- /* style.scss */
40
- @use '@slickgrid-universal/common/dist/styles/sass/slickgrid-theme-default.scss' with (
41
- $slick-primary-color: green,
42
- $slick-cell-odd-background-color: lightyellow,
43
- $slick-row-mouse-hover-color: lightgreen
44
- );
45
-
46
- // or other Themes
47
- @use '@slickgrid-universal/common/dist/styles/sass/slickgrid-theme-material.scss';
48
- @use '@slickgrid-universal/common/dist/styles/sass/slickgrid-theme-salesforce.scss';
49
- ```
50
-
51
- ### Using CSS Variables _(instead of SASS)_
52
- You could change the SlickGrid styling with your own customization using [CSS Variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties). The variables that you can use (over 800 of them) are all predefined as SASS variables in the [_variables.scss](https://github.com/ghiscoding/slickgrid-universal/blob/master/packages/common/src/styles/_variables.scss) file, you will simply have to rename the `$slick-` prefix with a `--slick-` prefix to the variable name to use them as CSS Variables. To be clear, you don't need SASS but the variables names were all declared as SASS and that is what the lib will use internally but you can optionally use them all as plain CSS Variables.
53
-
54
- For example, if we take the following 3 SASS variables (`$slick-header-menu-display`, `$slick-primary-color-dark` and `$slick-header-filter-row-border-bottom`) we can use the CSS Variables equivalent as the following
55
-
56
- ```css
57
- /* use :host (local) or :root (global) */
58
- :root {
59
- --slick-header-menu-display: inline-block;
60
- --slick-primary-color-dark: pink;
61
- --slick-header-filter-row-border-bottom: 2px solid pink;
62
- }
63
- ```
64
-
65
- > **Note:** you could use `:host` to only change current grid styling, **however** there are many DOM elements that are appended to the DOM `body` (Grid Menu, Column Picker, Select Filter/Editor, Context Menu, ...) and the styles **will not** be applied when simply using `:host` and so in most cases you would want to use `:root` (if possible) to make a global change which will also work with elements appended to the `body`. Also note that `:root` is not available in Salesforce LWC and so you unfortunately won't be able to style everything in Salesforce.
66
-
67
- ### Using Custom SVGs with SASS
68
- You could use Custom SVGs and create your own Theme and/or a different set of SVG Icons, each of the icons used in Slickgrid-Universal has an associated SASS variables ending with the suffix `"icon-svg-path"` which allow you to override any of the SVG vector path. All SVG icons are generated by following AntFu's [icons in pure CSS](https://antfu.me/posts/icons-in-pure-css) approach. If you want create your own SVGs in pure CSS, you can use the `generateSvgStyle()` function from our [`sass-utilities.scss`](https://github.com/ghiscoding/slickgrid-universal/blob/master/packages/common/src/styles/sass-utilities.scss) (take a look at the [`slickgrid-icons.scss`](https://github.com/ghiscoding/slickgrid-universal/blob/master/packages/common/src/styles/slickgrid-icons.scss) on its usage)
69
-
70
- ##### with SVG
71
- ```scss
72
- $primary-color: blue;
73
-
74
- // then on the last line, import the Theme that you wish to override
75
- @use '@slickgrid-universal/common/dist/styles/sass/slickgrid-theme-default.scss' with (
76
- $slick-primary-color: $primary-color,
77
- $slick-icon-group-color: $primary-color,
78
- $slick-icon-group-collapsed-svg-path: "M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",
79
- $slick-icon-group-expanded-svg-path: "M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",
80
- $slick-icon-group-font-size: 13px
81
- );
82
- ```
83
-
84
- > **Note** since the SVG are generated by a SASS function, you can easily override an SVG path in SASS but that is not the case with CSS variable. We still have a way to override an SVG via CSS variable but it requires to override the entire SVG content (not just its path) as can be seen below (also notice that the CSS variable is named without the `"-path"` suffix and also note that the URL must be encoded)
85
-
86
- ```css
87
- :root {
88
- --slick-checkbox-icon-checked-svg: url('data:image/svg+xml;utf8,%3Csvg viewBox="0 0 24 24" display="inline-block" height="1em" width="1em" vertical-align="text-bottom" xmlns="http://www.w3.org/2000/svg" %3E%3Cpath fill="currentColor" d="M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"/%3E%3C/svg%3E');
89
- }
90
- ```
91
- the SASS equivalent is a lot easier to override
92
- ```scss
93
- $slick-checkbox-icon-checked-svg-path: "M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"
94
- ```
95
-
96
- ### SVG icons
97
- The project has a few built-in icons (sort, grouping, row detail, row move, row selection) and you can change them via SASS (or CSS with a bit more work). For that reason, all Styling Themes Since this release now has pure CSS SVG icons, I decided to delete any Font-Awesome references (mostly in the Bootstrap Theme) because all the built-in icons are now all SVG icons (sort, grouping, row detail, row move) (you can change them using SASS). However, there are a few plugins that use external icons via CSS classes (mostly all menu plugins like Header Menu, Grid Menu, Content Menu, ...) and for that reason **all Styling Themes now include default SVG icons** (even the Bootstrap Theme).
98
-
99
- What if you want to use your own font/SVG library?
100
- This can be answered in 2 parts:
101
- 1. the built-in icons can only be changed via SASS (or CSS with extra work), see above on how to change them.
102
- 2. for all other area using icons via CSS classes (e.g. all menu plugins), you can use the "lite" Themes and then make sure to update all the menu plugins with the correct CSS classes, for example the global grid options of the Grid Menu is configured with the following CSS classes and you'll want to remap them with the correct CSS classes to fit your need:
103
-
104
- ```ts
105
- // default global grid options
106
- export const GlobalGridOptions = {
107
- gridMenu: {
108
- iconCssClass: 'mdi mdi-menu',
109
- iconClearAllFiltersCommand: 'mdi mdi-filter-remove-outline',
110
- iconClearAllSortingCommand: 'mdi mdi-sort-variant-off',
111
- iconClearFrozenColumnsCommand: 'mdi mdi-pin-off-outline',
112
- iconExportCsvCommand: 'mdi mdi-download',
113
- iconExportExcelCommand: 'mdi mdi-file-excel-outline',
114
- iconExportTextDelimitedCommand: 'mdi mdi-download',
115
- iconRefreshDatasetCommand: 'mdi mdi-sync',
116
- iconToggleDarkModeCommand: 'mdi mdi-brightness-4',
117
- iconToggleFilterCommand: 'mdi mdi-flip-vertical',
118
- iconTogglePreHeaderCommand: 'mdi mdi-flip-vertical',
119
- }
120
- }
121
- ```
122
-
123
- and here's the file size difference with the "lite" version
124
-
125
- ![image](https://github.com/ghiscoding/slickgrid-universal/assets/643976/0edc9962-d881-49d2-bc47-1f698213ad5e)
126
-
127
- ### How to change SVG color?
128
- #### The following works for both CSS and SASS
129
- The new version 5.x of this project is now creating SVG icons as pure CSS, this mean that you can colorize the icons the same way that you would change a text color. We also provide a few different color CSS classes which start with the prefixes `$color-` or `$text-color-` (e.g. `$color-primary`).
130
-
131
- ### SVG Colors - CSS Classes
132
- Since SVG can now be colorize via the `color` the same as any other text, there isn't much to do. However a small subset of default colors is provided that can be used with the SVG icons or any text (basically took the same colors used by Bootstrap [here](https://getbootstrap.com/docs/4.5/utilities/colors/)). We also added a `light` and `dark` shades for of each colors (except `color-light`, `color-dark` since there's no need), they both use a 6% lighter/darker shades (you can override the shade with `$color-lighten-percentage` and the same for darken). These colors can be used with the `color-X` (for example `color-primary`), also note that the primary color will follow your `$slick-primary-color` that you might have already overriden (it could also be different in each styling theme, shown below is the Salesforce theme colors). If you find that the colors are not exactly the colors you're looking for, we've also took some colors taken from [UiKit](https://getuikit.com/) and tagged them as `color-alt-X`.
133
-
134
- **NOTE 1:** The `colors.scss` is **only** included in the Material and Salesforce Themes since those are the only 2 themes currently using SVGs. If you wish to use these colors then simply add the necessary css/scss file.
135
-
136
- ![image](https://github.com/ghiscoding/slickgrid-universal/assets/643976/986f16af-4e2b-4961-b2b5-32afc780b078)
137
-
138
- ```scss
139
- // SASS colors
140
- $text-color-primary: $slick-primary-color;
141
- $text-color-secondary: #6c757d;
142
- $text-color-success: #28a745;
143
- $text-color-danger: #dc3545;
144
- $text-color-warning: #ffc107;
145
- $text-color-info: #17a2b8;
146
- $text-color-light: #f8f9fa;
147
- $text-color-dark: #343a40;
148
- $text-color-body: #212529;
149
- $text-color-muted: #6c757d;
150
- $text-color-white: #ffffff;
151
- $text-color-alt-default: #1e87f0;
152
- $text-color-alt-warning: #faa05a;
153
- $text-color-alt-danger: #f0506e;
154
- $text-color-alt-success: #32d296;
155
- $text-color-se-primary: #3dcd58;
156
- $text-color-se-link: #42b4e6;
157
- $text-color-se-link-dark: #337ab7;
158
- $text-color-se-danger: #b10043;
159
- $text-color-se-secondary: #9fa0a4;
160
- $text-color-se-warning: #e47f00;
161
- $text-color-se-warning-light: #ffd100;
162
-
163
- // lighter/darker shades
164
- $text-color-lighten-percentage: 6%;
165
- $text-color-darken-percentage: 6%;
166
- ```
167
-
168
- ##### HTML Color Test
169
- ```html
170
- <div>
171
- <span class="text-color-primary"> text-color-primary <i class="mdi mdi-help-circle"></i></span> -
172
- <span class="text-color-primary-light"> text-color-primary-light <i class="mdi mdi-help-circle"></i></span> -
173
- <span class="text-color-primary-dark"> text-color-primary-dark <i class="mdi mdi-help-circle"></i></span>
174
- </div>
175
- <div>
176
- <span class="text-color-secondary"> text-color-secondary <i class="mdi mdi-help-circle"></i></span> -
177
- <span class="text-color-secondary-light"> text-color-secondary-light <i class="mdi mdi-help-circle"></i></span> -
178
- <span class="text-color-secondary-dark"> text-color-secondary-dark <i class="mdi mdi-help-circle"></i></span>
179
- </div>
180
- <div>
181
- <span class="text-color-success"> text-color-success <i class="mdi mdi-help-circle"></i></span> -
182
- <span class="text-color-success-light"> text-color-success-light <i class="mdi mdi-help-circle"></i></span> -
183
- <span class="text-color-success-dark"> text-color-success-dark <i class="mdi mdi-help-circle"></i></span>
184
- </div>
185
- <div>
186
- <span class="text-color-danger"> text-color-danger <i class="mdi mdi-help-circle"></i></span> -
187
- <span class="text-color-danger-light"> text-color-danger-light <i class="mdi mdi-help-circle"></i></span> -
188
- <span class="text-color-danger-dark"> text-color-danger-dark <i class="mdi mdi-help-circle"></i></span>
189
- </div>
190
- <div>
191
- <span class="text-color-warning"> text-color-warning <i class="mdi mdi-help-circle"></i></span> -
192
- <span class="text-color-warning-light"> text-color-warning-light <i class="mdi mdi-help-circle"></i></span> -
193
- <span class="text-color-warning-dark"> text-color-warning-dark <i class="mdi mdi-help-circle"></i></span>
194
- </div>
195
- <div>
196
- <span class="text-color-info"> text-color-info <i class="mdi mdi-help-circle"></i></span> -
197
- <span class="text-color-info-light"> text-color-info-light <i class="mdi mdi-help-circle"></i></span> -
198
- <span class="text-color-info-dark"> text-color-info-dark <i class="mdi mdi-help-circle"></i></span>
199
- </div>
200
- <div>
201
- <span class="text-color-body"> text-color-body <i class="mdi mdi-help-circle"></i></span> -
202
- <span class="text-color-body-light"> text-color-body-light <i class="mdi mdi-help-circle"></i></span> -
203
- <span class="text-color-body-dark"> text-color-body-dark <i class="mdi mdi-help-circle"></i></span>
204
- </div>
205
- <div>
206
- <span class="text-color-muted"> text-color-muted <i class="mdi mdi-help-circle"></i></span> -
207
- <span class="text-color-muted-light"> text-color-muted-light <i class="mdi mdi-help-circle"></i></span> -
208
- <span class="text-color-muted-dark"> text-color-muted-dark <i class="mdi mdi-help-circle"></i></span>
209
- </div>
210
- <div>
211
- <span class="text-color-dark"> text-color-dark <i class="mdi mdi-help-circle"></i></span>
212
- </div>
213
- <div style="background-color: rgb(34, 34, 34)">
214
- <span class="text-color-light"> text-color-light <i class="mdi mdi-help-circle"></i></span>
215
- </div>
216
- <div style="background-color: rgb(34, 34, 34)">
217
- <span class="text-color-white"> text-color-white <i class="mdi mdi-help-circle"></i></span>
218
- </div>
219
- <div>
220
- <span class="text-color-alt-default"> text-color-alt-default <i class="mdi mdi-help-circle"></i></span> -
221
- <span class="text-color-alt-default-light"> text-color-alt-default-light <i class="mdi mdi-help-circle"></i></span> -
222
- <span class="text-color-alt-default-dark"> text-color-alt-default-dark <i class="mdi mdi-help-circle"></i></span>
223
- </div>
224
- <div>
225
- <span class="text-color-alt-warning"> text-color-alt-warning <i class="mdi mdi-help-circle"></i></span> -
226
- <span class="text-color-alt-warning-light"> text-color-alt-warning-light <i class="mdi mdi-help-circle"></i></span> -
227
- <span class="text-color-alt-warning-dark"> text-color-alt-warning-dark <i class="mdi mdi-help-circle"></i></span>
228
- </div>
229
- <div>
230
- <span class="text-color-alt-success"> text-color-alt-success <i class="mdi mdi-help-circle"></i></span> -
231
- <span class="text-color-alt-success-light"> text-color-alt-success-light <i class="mdi mdi-help-circle"></i></span> -
232
- <span class="text-color-alt-success-dark"> text-color-alt-success-dark <i class="mdi mdi-help-circle"></i></span>
233
- </div>
234
- <div>
235
- <span class="text-color-alt-danger"> text-color-alt-danger <i class="mdi mdi-help-circle"></i></span> -
236
- <span class="text-color-alt-danger-light"> text-color-alt-danger-light <i class="mdi mdi-help-circle"></i></span> -
237
- <span class="text-color-alt-danger-dark"> text-color-alt-danger-dark <i class="mdi mdi-help-circle"></i></span>
238
- </div>
239
- <div><span class="text-color-se-primary"> text-color-se-primary <i class="mdi mdi-help-circle"></i></span></div>
240
- <div>
241
- <span class="text-color-se-link"> text-color-se-link <i class="mdi mdi-help-circle"></i></span> -
242
- <span class="text-color-se-link-dark"> text-color-se-link-dark <i class="mdi mdi-help-circle"></i></span>
243
- </div>
244
- <div><span class="text-color-se-secondary"> text-color-se-secondary <i class="mdi mdi-help-circle"></i></span></div>
245
- <div><span class="text-color-se-danger"> text-color-se-danger <i class="mdi mdi-help-circle"></i></span></div>
246
- <div>
247
- <span class="text-color-se-warning"> text-color-se-warning <i class="mdi mdi-help-circle"></i></span> -
248
- <span class="text-color-se-warning-light"> text-color-se-warning-light <i class="mdi mdi-help-circle"></i></span>
249
- </div>
250
- ```