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.
- package/LICENSE +1 -1
- package/{dist/fesm2022 → fesm2022}/angular-slickgrid.mjs +16 -16
- package/package.json +27 -14
- package/.gitbook.yaml +0 -5
- package/CHANGELOG.md +0 -1691
- package/CONTRIBUTING.md +0 -17
- package/angular.json +0 -133
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/clover.xml +0 -1620
- package/coverage/coverage-final.json +0 -9
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -176
- package/coverage/library/components/angular-slickgrid.component.ts.html +0 -5074
- package/coverage/library/components/index.html +0 -116
- package/coverage/library/constants.ts.html +0 -397
- package/coverage/library/extensions/index.html +0 -116
- package/coverage/library/extensions/slickRowDetailView.ts.html +0 -1261
- package/coverage/library/index.html +0 -116
- package/coverage/library/modules/angular-slickgrid.module.ts.html +0 -166
- package/coverage/library/modules/index.html +0 -116
- package/coverage/library/services/angularUtil.service.ts.html +0 -445
- package/coverage/library/services/container.service.ts.html +0 -163
- package/coverage/library/services/index.html +0 -161
- package/coverage/library/services/translater.service.ts.html +0 -199
- package/coverage/library/services/utilities.ts.html +0 -142
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -196
- package/dist/LICENSE +0 -21
- package/dist/README.md +0 -142
- package/docs/README.md +0 -5
- package/docs/TOC.md +0 -105
- package/docs/backend-services/Custom-Backend-Service.md +0 -50
- package/docs/backend-services/GraphQL.md +0 -276
- package/docs/backend-services/OData.md +0 -245
- package/docs/backend-services/graphql/GraphQL-Filtering.md +0 -156
- package/docs/backend-services/graphql/GraphQL-JSON-Result.md +0 -85
- package/docs/backend-services/graphql/GraphQL-Pagination.md +0 -77
- package/docs/backend-services/graphql/GraphQL-Sorting.md +0 -78
- package/docs/column-functionalities/cell-menu.md +0 -212
- package/docs/column-functionalities/editors/autocomplete-editor.md +0 -466
- package/docs/column-functionalities/editors/date-editor-flatpickr.md +0 -71
- package/docs/column-functionalities/editors/date-editor-vanilla-calendar.md +0 -91
- package/docs/column-functionalities/editors/longtext-editor-textarea.md +0 -80
- package/docs/column-functionalities/editors/select-dropdown-editor.md +0 -227
- package/docs/column-functionalities/editors.md +0 -604
- package/docs/column-functionalities/filters/autocomplete-filter.md +0 -183
- package/docs/column-functionalities/filters/compound-filters.md +0 -234
- package/docs/column-functionalities/filters/custom-filter.md +0 -117
- package/docs/column-functionalities/filters/filter-intro.md +0 -81
- package/docs/column-functionalities/filters/input-filter.md +0 -260
- package/docs/column-functionalities/filters/range-filters.md +0 -188
- package/docs/column-functionalities/filters/select-filter.md +0 -695
- package/docs/column-functionalities/filters/single-search-filter.md +0 -77
- package/docs/column-functionalities/filters/styling-filled-filters.md +0 -45
- package/docs/column-functionalities/formatters.md +0 -325
- package/docs/column-functionalities/sorting.md +0 -200
- package/docs/developer-guides/csp-compliance.md +0 -64
- package/docs/events/Available-Events.md +0 -223
- package/docs/events/Grid-&-DataView-Events.md +0 -211
- package/docs/getting-started/quick-start.md +0 -230
- package/docs/getting-started/troubleshooting.md +0 -80
- package/docs/grid-functionalities/Column-Picker.md +0 -22
- package/docs/grid-functionalities/Composite-Editor-Modal.md +0 -627
- package/docs/grid-functionalities/Context-Menu.md +0 -226
- package/docs/grid-functionalities/Custom-Footer.md +0 -80
- package/docs/grid-functionalities/Custom-Tooltip-(plugin).md +0 -258
- package/docs/grid-functionalities/Export-to-Excel.md +0 -457
- package/docs/grid-functionalities/Export-to-Text-File.md +0 -165
- package/docs/grid-functionalities/FAQ.md +0 -53
- package/docs/grid-functionalities/Global-Options.md +0 -29
- package/docs/grid-functionalities/Grid-Auto-Resize.md +0 -218
- package/docs/grid-functionalities/Grid-Menu.md +0 -134
- package/docs/grid-functionalities/Grid-State-&-Preset.md +0 -245
- package/docs/grid-functionalities/Header-Menu-&-Header-Buttons.md +0 -125
- package/docs/grid-functionalities/Resize-by-Cell-Content.md +0 -138
- package/docs/grid-functionalities/Row-Selection.md +0 -247
- package/docs/grid-functionalities/Row-based-edit.md +0 -71
- package/docs/grid-functionalities/add-update-highlight.md +0 -258
- package/docs/grid-functionalities/column-row-spanning.md +0 -74
- package/docs/grid-functionalities/dynamic-item-metadata.md +0 -124
- package/docs/grid-functionalities/excel-copy-buffer.md +0 -145
- package/docs/grid-functionalities/frozen-columns-rows.md +0 -164
- package/docs/grid-functionalities/grouping-and-aggregators.md +0 -269
- package/docs/grid-functionalities/header-footer-slots.md +0 -22
- package/docs/grid-functionalities/infinite-scroll.md +0 -150
- package/docs/grid-functionalities/providing-grid-data.md +0 -61
- package/docs/grid-functionalities/row-detail.md +0 -530
- package/docs/grid-functionalities/tree-data-grid.md +0 -391
- package/docs/localization/Localization---Component-Sample.md +0 -87
- package/docs/localization/Localization-with-Custom-Locales.md +0 -66
- package/docs/localization/Localization-with-ngx-translate.md +0 -148
- package/docs/migrations/migration-to-2.x.md +0 -304
- package/docs/migrations/migration-to-3.x.md +0 -295
- package/docs/migrations/migration-to-4.x.md +0 -83
- package/docs/migrations/migration-to-5.x.md +0 -160
- package/docs/migrations/migration-to-6.x.md +0 -128
- package/docs/migrations/migration-to-7.x.md +0 -294
- package/docs/migrations/migration-to-8.x.md +0 -316
- package/docs/migrations/migration-to-9.x.md +0 -219
- package/docs/slick-grid-dataview-objects/slickgrid-dataview-objects.md +0 -79
- package/docs/styling/dark-mode.md +0 -100
- package/docs/styling/styling.md +0 -250
- package/docs/testing/testing-patterns.md +0 -73
- package/eslint.config.mjs +0 -60
- package/ng-package.json +0 -10
- package/src/assets/angular-logo.png +0 -0
- package/src/assets/angular-logo2.png +0 -0
- package/src/assets/data/collection_100_numbers.json +0 -12
- package/src/assets/data/collection_500_numbers.json +0 -52
- package/src/assets/data/countries.json +0 -245
- package/src/assets/data/country_names.json +0 -245
- package/src/assets/data/customers_100.json +0 -102
- package/src/assets/data/users.csv +0 -5
- package/src/assets/i18n/en.json +0 -102
- package/src/assets/i18n/fr.json +0 -103
- package/src/demos/app-routing.module.ts +0 -108
- package/src/demos/app.component.html +0 -187
- package/src/demos/app.component.scss +0 -79
- package/src/demos/app.component.ts +0 -11
- package/src/demos/app.module.ts +0 -196
- package/src/demos/environments/environment.dev.ts +0 -3
- package/src/demos/environments/environment.prod.ts +0 -3
- package/src/demos/environments/environment.ts +0 -8
- package/src/demos/examples/custom-angularComponentEditor.ts +0 -187
- package/src/demos/examples/custom-angularComponentFilter.ts +0 -123
- package/src/demos/examples/custom-buttonFormatter.component.ts +0 -13
- package/src/demos/examples/custom-inputEditor.ts +0 -132
- package/src/demos/examples/custom-inputFilter.ts +0 -134
- package/src/demos/examples/custom-titleFormatter.component.ts +0 -9
- package/src/demos/examples/data/collection_100_numbers.json +0 -12
- package/src/demos/examples/data/collection_500_numbers.json +0 -52
- package/src/demos/examples/data/countries.json +0 -245
- package/src/demos/examples/data/country_names.json +0 -245
- package/src/demos/examples/data/customers_100.json +0 -102
- package/src/demos/examples/data/users.csv +0 -5
- package/src/demos/examples/editor-ng-select.component.ts +0 -38
- package/src/demos/examples/example01.component.html +0 -48
- package/src/demos/examples/example01.component.ts +0 -109
- package/src/demos/examples/example02.component.html +0 -45
- package/src/demos/examples/example02.component.ts +0 -218
- package/src/demos/examples/example03.component.html +0 -118
- package/src/demos/examples/example03.component.ts +0 -694
- package/src/demos/examples/example04.component.html +0 -87
- package/src/demos/examples/example04.component.ts +0 -326
- package/src/demos/examples/example05.component.html +0 -151
- package/src/demos/examples/example05.component.ts +0 -474
- package/src/demos/examples/example06.component.html +0 -163
- package/src/demos/examples/example06.component.ts +0 -446
- package/src/demos/examples/example07.component.html +0 -56
- package/src/demos/examples/example07.component.scss +0 -10
- package/src/demos/examples/example07.component.ts +0 -216
- package/src/demos/examples/example08.component.html +0 -51
- package/src/demos/examples/example08.component.scss +0 -23
- package/src/demos/examples/example08.component.ts +0 -195
- package/src/demos/examples/example09.component.html +0 -55
- package/src/demos/examples/example09.component.scss +0 -22
- package/src/demos/examples/example09.component.ts +0 -302
- package/src/demos/examples/example10.component.html +0 -103
- package/src/demos/examples/example10.component.ts +0 -309
- package/src/demos/examples/example11.component.html +0 -91
- package/src/demos/examples/example11.component.ts +0 -276
- package/src/demos/examples/example12.component.html +0 -98
- package/src/demos/examples/example12.component.ts +0 -317
- package/src/demos/examples/example13.component.html +0 -96
- package/src/demos/examples/example13.component.ts +0 -370
- package/src/demos/examples/example14.component.html +0 -50
- package/src/demos/examples/example14.component.scss +0 -11
- package/src/demos/examples/example14.component.ts +0 -156
- package/src/demos/examples/example15.component.html +0 -56
- package/src/demos/examples/example15.component.ts +0 -304
- package/src/demos/examples/example16.component.html +0 -77
- package/src/demos/examples/example16.component.ts +0 -277
- package/src/demos/examples/example17.component.html +0 -50
- package/src/demos/examples/example17.component.ts +0 -109
- package/src/demos/examples/example18.component.html +0 -132
- package/src/demos/examples/example18.component.ts +0 -445
- package/src/demos/examples/example19-rowdetail.component.html +0 -40
- package/src/demos/examples/example19-rowdetail.component.ts +0 -54
- package/src/demos/examples/example19.component.html +0 -79
- package/src/demos/examples/example19.component.ts +0 -316
- package/src/demos/examples/example20.component.html +0 -76
- package/src/demos/examples/example20.component.scss +0 -11
- package/src/demos/examples/example20.component.ts +0 -341
- package/src/demos/examples/example21.component.html +0 -86
- package/src/demos/examples/example21.component.scss +0 -16
- package/src/demos/examples/example21.component.ts +0 -140
- package/src/demos/examples/example22.component.html +0 -41
- package/src/demos/examples/example22.component.ts +0 -117
- package/src/demos/examples/example23.component.html +0 -111
- package/src/demos/examples/example23.component.ts +0 -323
- package/src/demos/examples/example24.component.html +0 -120
- package/src/demos/examples/example24.component.scss +0 -62
- package/src/demos/examples/example24.component.ts +0 -641
- package/src/demos/examples/example25.component.html +0 -60
- package/src/demos/examples/example25.component.scss +0 -8
- package/src/demos/examples/example25.component.ts +0 -255
- package/src/demos/examples/example26.component.html +0 -98
- package/src/demos/examples/example26.component.scss +0 -42
- package/src/demos/examples/example26.component.ts +0 -383
- package/src/demos/examples/example27.component.html +0 -138
- package/src/demos/examples/example27.component.scss +0 -10
- package/src/demos/examples/example27.component.ts +0 -369
- package/src/demos/examples/example28.component.html +0 -143
- package/src/demos/examples/example28.component.scss +0 -54
- package/src/demos/examples/example28.component.ts +0 -453
- package/src/demos/examples/example29.component.html +0 -30
- package/src/demos/examples/example29.component.ts +0 -70
- package/src/demos/examples/example30.component.html +0 -116
- package/src/demos/examples/example30.component.scss +0 -20
- package/src/demos/examples/example30.component.ts +0 -1070
- package/src/demos/examples/example32.component.html +0 -77
- package/src/demos/examples/example32.component.scss +0 -8
- package/src/demos/examples/example32.component.ts +0 -905
- package/src/demos/examples/example33.component.html +0 -50
- package/src/demos/examples/example33.component.scss +0 -46
- package/src/demos/examples/example33.component.ts +0 -571
- package/src/demos/examples/example34.component.html +0 -82
- package/src/demos/examples/example34.component.scss +0 -77
- package/src/demos/examples/example34.component.ts +0 -434
- package/src/demos/examples/example35.component.html +0 -77
- package/src/demos/examples/example35.component.scss +0 -18
- package/src/demos/examples/example35.component.ts +0 -264
- package/src/demos/examples/example36.component.html +0 -56
- package/src/demos/examples/example36.component.scss +0 -26
- package/src/demos/examples/example36.component.ts +0 -504
- package/src/demos/examples/example37.component.html +0 -30
- package/src/demos/examples/example37.component.ts +0 -123
- package/src/demos/examples/example38.component.html +0 -104
- package/src/demos/examples/example38.component.scss +0 -8
- package/src/demos/examples/example38.component.ts +0 -420
- package/src/demos/examples/example39.component.html +0 -112
- package/src/demos/examples/example39.component.scss +0 -8
- package/src/demos/examples/example39.component.ts +0 -371
- package/src/demos/examples/example40.component.html +0 -76
- package/src/demos/examples/example40.component.ts +0 -226
- package/src/demos/examples/example41.component.html +0 -50
- package/src/demos/examples/example41.component.scss +0 -42
- package/src/demos/examples/example41.component.ts +0 -229
- package/src/demos/examples/example42.component.html +0 -47
- package/src/demos/examples/example42.component.ts +0 -203
- package/src/demos/examples/example43.component.html +0 -94
- package/src/demos/examples/example43.component.scss +0 -30
- package/src/demos/examples/example43.component.ts +0 -449
- package/src/demos/examples/example44.component.html +0 -78
- package/src/demos/examples/example44.component.scss +0 -50
- package/src/demos/examples/example44.component.ts +0 -375
- package/src/demos/examples/example45-detail.component.html +0 -15
- package/src/demos/examples/example45-detail.component.ts +0 -97
- package/src/demos/examples/example45.component.html +0 -110
- package/src/demos/examples/example45.component.scss +0 -50
- package/src/demos/examples/example45.component.ts +0 -243
- package/src/demos/examples/filter-ng-select.component.ts +0 -33
- package/src/demos/examples/grid-custom-pager.component.html +0 -60
- package/src/demos/examples/grid-custom-pager.component.scss +0 -57
- package/src/demos/examples/grid-custom-pager.component.ts +0 -107
- package/src/demos/examples/grid-remote.component.html +0 -44
- package/src/demos/examples/grid-remote.component.ts +0 -164
- package/src/demos/examples/home.component.html +0 -39
- package/src/demos/examples/home.component.ts +0 -10
- package/src/demos/examples/jsonp.ts +0 -89
- package/src/demos/examples/rowdetail-preload.component.ts +0 -10
- package/src/demos/examples/swt-common-grid-pagination.component.ts +0 -160
- package/src/demos/examples/swt-common-grid-test.component.html +0 -37
- package/src/demos/examples/swt-common-grid-test.component.ts +0 -214
- package/src/demos/examples/swt-common-grid.component.ts +0 -436
- package/src/demos/examples/swt-logger.service.ts +0 -173
- package/src/demos/examples/utilities.ts +0 -9
- package/src/favicon.ico +0 -0
- package/src/index.html +0 -17
- package/src/library/components/__tests__/angular-slickgrid.component.spec.ts +0 -2638
- package/src/library/components/angular-slickgrid.component.html +0 -5
- package/src/library/components/angular-slickgrid.component.ts +0 -1662
- package/src/library/constants.ts +0 -105
- package/src/library/extensions/__tests__/slickRowDetailView.spec.ts +0 -751
- package/src/library/extensions/index.ts +0 -1
- package/src/library/extensions/slickRowDetailView.ts +0 -395
- package/src/library/global-grid-options.ts +0 -273
- package/src/library/index.ts +0 -11
- package/src/library/models/angularComponentOutput.interface.ts +0 -6
- package/src/library/models/angularGridInstance.interface.ts +0 -76
- package/src/library/models/externalTestingDependencies.interface.ts +0 -37
- package/src/library/models/gridOption.interface.ts +0 -15
- package/src/library/models/index.ts +0 -5
- package/src/library/models/rowDetailView.interface.ts +0 -16
- package/src/library/modules/angular-slickgrid.module.spec.ts +0 -25
- package/src/library/modules/angular-slickgrid.module.ts +0 -27
- package/src/library/services/__tests__/angularUtilService.spec.ts +0 -156
- package/src/library/services/__tests__/container.service.spec.ts +0 -25
- package/src/library/services/__tests__/translater.service.spec.ts +0 -43
- package/src/library/services/__tests__/utilities.spec.ts +0 -22
- package/src/library/services/angularUtil.service.ts +0 -120
- package/src/library/services/container.service.ts +0 -26
- package/src/library/services/index.ts +0 -4
- package/src/library/services/translater.service.ts +0 -38
- package/src/library/services/utilities.ts +0 -19
- package/src/library/slickgrid-config.ts +0 -10
- package/src/main.ts +0 -13
- package/src/public_api.ts +0 -1
- package/src/styles.scss +0 -178
- package/test/cypress/e2e/example01.cy.ts +0 -367
- package/test/cypress/e2e/example02.cy.ts +0 -60
- package/test/cypress/e2e/example03.cy.ts +0 -268
- package/test/cypress/e2e/example04.cy.ts +0 -254
- package/test/cypress/e2e/example05.cy.ts +0 -804
- package/test/cypress/e2e/example06.cy.ts +0 -890
- package/test/cypress/e2e/example07.cy.ts +0 -384
- package/test/cypress/e2e/example08.cy.ts +0 -190
- package/test/cypress/e2e/example09.cy.ts +0 -392
- package/test/cypress/e2e/example10.cy.ts +0 -650
- package/test/cypress/e2e/example11.cy.ts +0 -86
- package/test/cypress/e2e/example12.cy.ts +0 -269
- package/test/cypress/e2e/example13.cy.ts +0 -246
- package/test/cypress/e2e/example14.cy.ts +0 -122
- package/test/cypress/e2e/example15.cy.ts +0 -598
- package/test/cypress/e2e/example16.cy.ts +0 -427
- package/test/cypress/e2e/example17.cy.ts +0 -83
- package/test/cypress/e2e/example18.cy.ts +0 -431
- package/test/cypress/e2e/example19.cy.ts +0 -263
- package/test/cypress/e2e/example20.cy.ts +0 -264
- package/test/cypress/e2e/example21.cy.ts +0 -77
- package/test/cypress/e2e/example22.cy.ts +0 -94
- package/test/cypress/e2e/example23.cy.ts +0 -259
- package/test/cypress/e2e/example24.cy.ts +0 -707
- package/test/cypress/e2e/example25.cy.ts +0 -193
- package/test/cypress/e2e/example26.cy.ts +0 -111
- package/test/cypress/e2e/example27.cy.ts +0 -261
- package/test/cypress/e2e/example28.cy.ts +0 -740
- package/test/cypress/e2e/example29.cy.ts +0 -30
- package/test/cypress/e2e/example30.cy.ts +0 -757
- package/test/cypress/e2e/example31.cy.ts +0 -69
- package/test/cypress/e2e/example32.cy.ts +0 -272
- package/test/cypress/e2e/example33.cy.ts +0 -278
- package/test/cypress/e2e/example34.cy.ts +0 -84
- package/test/cypress/e2e/example35.cy.ts +0 -178
- package/test/cypress/e2e/example36.cy.ts +0 -219
- package/test/cypress/e2e/example37.cy.ts +0 -52
- package/test/cypress/e2e/example38.cy.ts +0 -160
- package/test/cypress/e2e/example39.cy.ts +0 -150
- package/test/cypress/e2e/example40.cy.ts +0 -126
- package/test/cypress/e2e/example41.cy.ts +0 -90
- package/test/cypress/e2e/example42.cy.ts +0 -82
- package/test/cypress/e2e/example43.cy.ts +0 -482
- package/test/cypress/e2e/example44.cy.ts +0 -458
- package/test/cypress/e2e/example45.cy.ts +0 -455
- package/test/cypress/e2e/home.cy.ts +0 -7
- package/test/cypress/fixtures/example.json +0 -5
- package/test/cypress/plugins/index.ts +0 -17
- package/test/cypress/plugins/utilities.ts +0 -28
- package/test/cypress/support/commands.ts +0 -88
- package/test/cypress/support/common.ts +0 -47
- package/test/cypress/support/drag.ts +0 -101
- package/test/cypress/support/index.ts +0 -20
- package/test/cypress/tsconfig.json +0 -9
- package/test/cypress.config.ts +0 -34
- package/test/mockSlickEvent.ts +0 -77
- package/test/rxjsResourceStub.ts +0 -69
- package/test/test-setup.ts +0 -6
- package/test/translateServiceStub.ts +0 -230
- package/test/translaterServiceStub.ts +0 -239
- package/test/tsconfig.json +0 -17
- package/test/vitest-global-mocks.ts +0 -41
- package/test/vitest-global-setup.ts +0 -3
- package/test/vitest-pretest.ts +0 -5
- package/tsconfig.app.json +0 -14
- package/tsconfig.json +0 -31
- package/tsconfig.spec.json +0 -11
- package/types/sortablejs.d.ts +0 -4
- package/vite.config.mts +0 -51
- /package/{dist/fesm2022 → fesm2022}/angular-slickgrid.mjs.map +0 -0
- /package/{dist/i18n → i18n}/en.json +0 -0
- /package/{dist/i18n → i18n}/fr.json +0 -0
- /package/{dist/index.d.ts → index.d.ts} +0 -0
- /package/{dist/library → library}/components/angular-slickgrid.component.d.ts +0 -0
- /package/{dist/library → library}/constants.d.ts +0 -0
- /package/{dist/library → library}/extensions/index.d.ts +0 -0
- /package/{dist/library → library}/extensions/slickRowDetailView.d.ts +0 -0
- /package/{dist/library → library}/global-grid-options.d.ts +0 -0
- /package/{dist/library → library}/index.d.ts +0 -0
- /package/{dist/library → library}/models/angularComponentOutput.interface.d.ts +0 -0
- /package/{dist/library → library}/models/angularGridInstance.interface.d.ts +0 -0
- /package/{dist/library → library}/models/externalTestingDependencies.interface.d.ts +0 -0
- /package/{dist/library → library}/models/gridOption.interface.d.ts +0 -0
- /package/{dist/library → library}/models/index.d.ts +0 -0
- /package/{dist/library → library}/models/rowDetailView.interface.d.ts +0 -0
- /package/{dist/library → library}/modules/angular-slickgrid.module.d.ts +0 -0
- /package/{dist/library → library}/services/angularUtil.service.d.ts +0 -0
- /package/{dist/library → library}/services/container.service.d.ts +0 -0
- /package/{dist/library → library}/services/index.d.ts +0 -0
- /package/{dist/library → library}/services/translater.service.d.ts +0 -0
- /package/{dist/library → library}/services/utilities.d.ts +0 -0
- /package/{dist/library → library}/slickgrid-config.d.ts +0 -0
- /package/{dist/public_api.d.ts → public_api.d.ts} +0 -0
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
Before you start, make sure that you don't have any console log warnings (most of the deprecated code from `2.x` were already displaying some console warnings to advise you of what's being removed). So it will be easier to fix the console warnings first, then move on to the list of changes below.
|
|
2
|
-
|
|
3
|
-
**NOTE:** Last Angular-Slickgrid 3.x version is [v3.3.2](https://github.com/ghiscoding/angular-slickgrid/releases/tag/v3.3.2) and is compatible **only** with Slickgrid-Universal [v0.19.2](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v0.19.2)
|
|
4
|
-
- Slickgrid-Universal 1.x versions only works with Angular-Slickgrid 4.x ([Migration Guide 4.x](Migration-to-4.x.md))
|
|
5
|
-
|
|
6
|
-
## Biggest Breaking Changes
|
|
7
|
-
1. Export to File & Export to Excel are now decoupled and opt-in (see [Export Services](#export-services) below)
|
|
8
|
-
- since both exports are opt-in, they are now also both disabled by default
|
|
9
|
-
2. Backend Service APIs are now decoupled and opt-in (see [Backend Service API](#backend-service-apis) below)
|
|
10
|
-
3. Remove `sg` event name prefix (in other words `(sgOnBeforeEditCell)` becomes `(onBeforeEditCell)`)
|
|
11
|
-
- You can however put them back, in your grid options, to avoid having a lot of refactoring (see [Grid Events](#grid-events) below)
|
|
12
|
-
4. Event Emitters are replaced with Custom Events (see [Event Emitters](#event-emitters-are-replaced-with-custom-events-event-data-accessibility-also-changes) below)
|
|
13
|
-
- the optional data, when provided, must now be accessed via `($event.detail)` instead of previously `($event)`
|
|
14
|
-
5. Styling (css/sass) main files are now under the `@slickgrid-universal/common` monorepo (see [Stylings](#stylings) below)
|
|
15
|
-
6. RxJS 7 is now the minimum version
|
|
16
|
-
- the biggest change that I saw so far was the [`toPromise` deprecation](https://rxjs.dev/deprecations/to-promise) and that was easy enough to replace with `firstValueFrom`
|
|
17
|
-
|
|
18
|
-
### @deprecated Code (removed)
|
|
19
|
-
_note: most of the deprecated code already sends you console warnings, so check your console first._
|
|
20
|
-
- removed all Grid Service methods having the word "toDatagrid" in their names
|
|
21
|
-
- for example, `addItemToDatagrid`, `deleteDataGridItem`, ...
|
|
22
|
-
- simply use the newer methods (named as `addItem`, `deleteItemById`, `updateItem`, ...), which have a lot more features and options.
|
|
23
|
-
- removed `registerPlugins` Grid Option since all useful plugins/controls already exist in the lib.
|
|
24
|
-
- removed `hideColumn(column)` please use `hideColumnById` or `hideColumnByIds` instead
|
|
25
|
-
- removed `hideColumnByIndex(idx)` please use `hideColumnById` or `hideColumnByIds` instead
|
|
26
|
-
- removed `BackendServiceOption` property named `columnDefinitions`, this is no longer a valid property which means that you cannot use it anymore with OData/GraphQL. This is no longer necessary since the Services can get the columns definition directly from the grid object.
|
|
27
|
-
- removed SASS variables
|
|
28
|
-
- `$large-editor-textarea-height`
|
|
29
|
-
- `$large-editor-textarea-width`
|
|
30
|
-
|
|
31
|
-
## Changes
|
|
32
|
-
|
|
33
|
-
### 3rd Party Libs
|
|
34
|
-
The 3rd party lib named `multiple-select.js` is no longer included within Angular-Slickgrid, it is now a separate npm package named [multiple-select-modified](https://www.npmjs.com/package/multiple-select-modified)
|
|
35
|
-
|
|
36
|
-
You will have to update the lib path in your `angular.json`, simply update the path as shown below (note that the Slickgrid Bootstrap Theme CSS path portion is optional when using SASS)
|
|
37
|
-
##### `angular.json`
|
|
38
|
-
```diff
|
|
39
|
-
"styles": [
|
|
40
|
-
"node_modules/flatpickr/dist/flatpickr.css",
|
|
41
|
-
- "node_modules/angular-slickgrid/lib/multiple-select/multiple-select.css",
|
|
42
|
-
- "node_modules/angular-slickgrid/styles/css/slickgrid-theme-bootstrap.css",
|
|
43
|
-
+ "node_modules/multiple-select-modified/src/multiple-select.css",
|
|
44
|
-
+ "node_modules/@slickgrid-universal/common/dist/styles/css/slickgrid-theme-bootstrap.css",
|
|
45
|
-
],
|
|
46
|
-
"scripts": [
|
|
47
|
-
"node_modules/jquery/dist/jquery.js",
|
|
48
|
-
"node_modules/jquery-ui-dist/jquery-ui.min.js",
|
|
49
|
-
"node_modules/slickgrid/lib/jquery.event.drag-2.3.0.js",
|
|
50
|
-
"node_modules/bootstrap/dist/js/bootstrap.js",
|
|
51
|
-
- "node_modules/angular-slickgrid/lib/multiple-select/multiple-select.js"
|
|
52
|
-
+ "node_modules/multiple-select-modified/src/multiple-select.js",
|
|
53
|
-
],
|
|
54
|
-
```
|
|
55
|
-
##### Allowed CommonJS Dependencies (`angular.json`)
|
|
56
|
-
You also need to modify the `allowedCommonJsDependencies` option include `assign-deep`, `jquery-ui` (and `stream` for WebPack 5) while `angular-slickgrid` itself can be removed, so your updated option should be (for a full sample, take a look at this [angular.json](https://github.com/ghiscoding/angular-slickgrid-demos/blob/master/bootstrap5-demo-with-translate/angular.json#L20) from 1 of the demo)
|
|
57
|
-
```diff
|
|
58
|
-
"allowedCommonJsDependencies": [
|
|
59
|
-
+ "assign-deep",
|
|
60
|
-
"excel-builder-webpacker",
|
|
61
|
-
+ "jquery-ui",
|
|
62
|
-
+ "stream"
|
|
63
|
-
]
|
|
64
|
-
```
|
|
65
|
-
and you should also update/create the `ngcc.config.js` in the root of your project (or copy the code live [demo](https://github.com/ghiscoding/angular-slickgrid-demos/blob/master/bootstrap5-demo-with-translate/ngcc.config.js))
|
|
66
|
-
```diff
|
|
67
|
-
module.exports = {
|
|
68
|
-
packages: {
|
|
69
|
-
'angular-slickgrid': {
|
|
70
|
-
ignorableDeepImportMatchers: [
|
|
71
|
-
+ /assign-deep/,
|
|
72
|
-
/slickgrid\//,
|
|
73
|
-
/flatpickr/,
|
|
74
|
-
+ /dequal/,
|
|
75
|
-
+ /jquery-ui\//,
|
|
76
|
-
]
|
|
77
|
-
},
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### Interfaces
|
|
83
|
-
- renamed `CheckboxSelector` interface to `CheckboxSelectorOption`
|
|
84
|
-
- renamed `EditorValidatorOutput` interface to `EditorValidationResult`
|
|
85
|
-
- renamed `Sorter` interface to `SortComparer`
|
|
86
|
-
- renamed `Sorters` to `SortComparers` (often used when using the Grouping feature)
|
|
87
|
-
|
|
88
|
-
#### Backend Service APIs
|
|
89
|
-
Note that the `BackendServiceApi` is no longer exposed in the `AngularGridInstance`, so if you wish to reference it (for example when you want to use it with an external export button), then create a reference while instantiating it or get it via the grid option `this.gridOptions.backendServiceApi.service`
|
|
90
|
-
|
|
91
|
-
### Column Definitions
|
|
92
|
-
- `headerKey` was replaced by `nameKey` (to align with SlickGrid `name` property when using I18N with translations)
|
|
93
|
-
|
|
94
|
-
### Grid Events
|
|
95
|
-
Removed grid events prefixes SlickGrid (`sg`).
|
|
96
|
-
**However** please note that you can always add them back to avoid having to refactor all your grids at once, the main changes are in the global grid options:
|
|
97
|
-
```diff
|
|
98
|
-
export const GlobalGridOptions: Partial<GridOption> = {
|
|
99
|
-
+ eventNamingStyle: EventNamingStyle.camelCase,
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
##### _Optional (not recommended)_
|
|
104
|
-
_In case you wish to keep `sg` prefix (only for SlickGrid/DataView events) to avoid too many refactoring, then could optionally add them back in your grid options via this option:_
|
|
105
|
-
```ts
|
|
106
|
-
this.gridOptions = {
|
|
107
|
-
defaultSlickgridEventPrefix: 'sg',
|
|
108
|
-
// ...
|
|
109
|
-
}
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Event Emitters are replaced with Custom Events (event data accessibility also changes)
|
|
113
|
-
Every events available from Angular-Slickgrid (the events that didn't start with the `sg` prefix, for example `angularGridReady`) are no longer exported as Event Emitter, they are instead available as Custom Events so that all Events (regardless or where they come from, that is from Angular-Slickgrid, SlickGrid or the DataView) are now **all** exported as Custom Events and this also means that the optional data is now accessed the same way across **all events** via the event detail property. So you will need to change some of your events
|
|
114
|
-
```diff
|
|
115
|
-
- (onAngularGridCreated)="angularGridReady($event)"
|
|
116
|
-
+ (onAngularGridCreated)="angularGridReady($event.detail)"
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
#### Event Naming Convention (defaults to camel case)
|
|
121
|
-
You might have notice the `eventNamingStyle` grid option, it is indeed a new option and with it you can change the names of the events following a defined naming convention. The default is camel case but you could also use the all lower case option (which is an acceptable ES6 syntax), if you take that for example that would become:
|
|
122
|
-
|
|
123
|
-
So the **default is camelCase** event naming:
|
|
124
|
-
```ts
|
|
125
|
-
<angular-slickgrid (onClick)="handleOnClick($event.detail)">
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
##### _Optional (not recommended)_
|
|
129
|
-
_But if you wish to use all lower case, you can change your grid options with_
|
|
130
|
-
```diff
|
|
131
|
-
this.gridOptions {
|
|
132
|
-
+ eventNamingStyle: EventNamingStyle.lowerCase,
|
|
133
|
-
}
|
|
134
|
-
```
|
|
135
|
-
_That would result in all lower case names_
|
|
136
|
-
```diff
|
|
137
|
-
<angular-slickgrid
|
|
138
|
-
- (onClick)="handleOnClick($event.detail)">
|
|
139
|
-
+ (onclick)="handleOnClick($event.detail)">
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
_Again note that the entire documentation is written with event names following the default camel case format (`onClick`)._
|
|
143
|
-
|
|
144
|
-
### Grid Options
|
|
145
|
-
- Grid Height/Width should now be passed through the Grid Options instead of the View, for example:
|
|
146
|
-
```diff
|
|
147
|
-
<angular-slickgrid gridId="grid1" [columnDefinitions]="columnDefinitions" [gridOptions]="gridOptions" [dataset]="dataset"
|
|
148
|
-
- gridHeight="225"
|
|
149
|
-
- gridWidth="800">
|
|
150
|
-
</angular-slickgrid>
|
|
151
|
-
```
|
|
152
|
-
were moved to the Grid Options in the ViewModel
|
|
153
|
-
```diff
|
|
154
|
-
this.gridOptions = {
|
|
155
|
-
+ gridHeight: 225,
|
|
156
|
-
+ gridWidth: 800 // or as a string like '100%'
|
|
157
|
-
};
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
### Header Menu
|
|
161
|
-
- renamed `hideFilterCommands` to singular `hideFilterCommand` since there can only be 1 filter per column
|
|
162
|
-
|
|
163
|
-
### Stylings
|
|
164
|
-
The CSS/SASS Stylings now come from the `@slickgrid-universal/common` monorepo package, you need to adjust your imports
|
|
165
|
-
|
|
166
|
-
##### with CSS (`angular.json`)
|
|
167
|
-
```diff
|
|
168
|
-
"styles": [
|
|
169
|
-
"node_modules/flatpickr/dist/flatpickr.css",
|
|
170
|
-
- "node_modules/angular-slickgrid/lib/multiple-select/multiple-select.css",
|
|
171
|
-
- "node_modules/node_modules/angular-slickgrid/styles/css/slickgrid-theme-bootstrap.css",
|
|
172
|
-
+ "node_modules/multiple-select-modified/src/multiple-select.css",
|
|
173
|
-
+ "node_modules/@slickgrid-universal/common/dist/styles/css/slickgrid-theme-bootstrap.css",
|
|
174
|
-
],
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
##### with SASS `.scss` (`styles.scss`)
|
|
178
|
-
```diff
|
|
179
|
-
# with SASS
|
|
180
|
-
- @import 'angular-slickgrid/styles/sass/slickgrid-theme-bootstrap.scss';
|
|
181
|
-
+ @import '@slickgrid-universal/common/dist/styles/sass/slickgrid-theme-bootstrap.scss';
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## Services
|
|
185
|
-
|
|
186
|
-
### Grid Service
|
|
187
|
-
- `updateItem()` will no longer highlight the row by default (to get back this behavior add the option `highlightRow: true`)
|
|
188
|
-
|
|
189
|
-
#### OData Service
|
|
190
|
-
The `GridOdataService` is now an opt-in Service and is no longer exposed in the `AngularGridInstance`, you need create a reference while instantiating it or get it via the grid option `this.gridOptions.backendServiceApi.service`
|
|
191
|
-
```diff
|
|
192
|
-
- import { GridOdataService, OdataServiceApi, OdataOption } from 'angular-slickgrid';
|
|
193
|
-
+ import { GridOdataService, OdataServiceApi, OdataOption } from '@slickgrid-universal/odata';
|
|
194
|
-
|
|
195
|
-
export class MyExample {
|
|
196
|
-
prepareGrid {
|
|
197
|
-
this.columnDefinitions = [ /*...*/ ];
|
|
198
|
-
this.gridOptions = {
|
|
199
|
-
backendServiceApi: {
|
|
200
|
-
service: new GridOdataService(),
|
|
201
|
-
options: { /*...*/ } as OdataServiceApi
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
#### GraphQL Service
|
|
208
|
-
The `GraphqlService` is now an opt-in Service and is no longer exposed in the `AngularGridInstance`, you need create a reference while instantiating it or get it via the grid option `this.gridOptions.backendServiceApi.service`
|
|
209
|
-
```diff
|
|
210
|
-
- import { GraphqlService, GraphqlPaginatedResult, GraphqlServiceApi, } from 'angular-slickgrid';
|
|
211
|
-
+ import { GraphqlService, GraphqlPaginatedResult, GraphqlServiceApi, } from '@slickgrid-universal/graphql';
|
|
212
|
-
|
|
213
|
-
export class MyExample {
|
|
214
|
-
prepareGrid {
|
|
215
|
-
this.columnDefinitions = [ /*...*/ ];
|
|
216
|
-
this.gridOptions = {
|
|
217
|
-
backendServiceApi: {
|
|
218
|
-
service: new GraphqlService(),
|
|
219
|
-
options: { /*...*/ } as GraphqlServiceApi
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Export Services
|
|
226
|
-
#### Text File Export Service
|
|
227
|
-
Export Service was renamed to `TextExportService` (export extensions are `.txt`, `.csv`) and is now an opt-in Servicem it is also no longer exposed in the `AngularGridInstance`. You need to use the new `@slickgrid-universal/text-export` packages and register the service(s) in your grid options as shown below.
|
|
228
|
-
|
|
229
|
-
Also note that Text Export Service grid options changed as well, a few options got deprecated and renamed to have the word "textExport" instead of just "export". Also to be clear, it's deprecated but still exist, this will give you time to refactor your code. Here's the list
|
|
230
|
-
- deprecate `exportOptions` and renamed to `textExportOptions`
|
|
231
|
-
- deprecate `enableExport` flag and renamed to `enableTextExport`
|
|
232
|
-
- the onBefore/onAfter events got renamed as well:
|
|
233
|
-
- `onGridBeforeExportToExcel` renamed to `onBeforeExportToExcel`
|
|
234
|
-
- `onGridAfterExportToExcel` renamed to `onAfterExportToExcel`
|
|
235
|
-
- `onGridBeforeExportToFile` renamed to `onBeforeExportToTextFile`
|
|
236
|
-
- `onGridAfterExportToFile` renamed to `onAfterExportToTextFile`
|
|
237
|
-
|
|
238
|
-
```diff
|
|
239
|
-
import { Column, GridOption } from 'angular-slickgrid';
|
|
240
|
-
+ import { ExcelExportService } from '@slickgrid-universal/excel-export';
|
|
241
|
-
+ import { TextExportService } from '@slickgrid-universal/text-export';
|
|
242
|
-
|
|
243
|
-
export class MyExample {
|
|
244
|
-
prepareGrid {
|
|
245
|
-
this.columnDefinitions = [ /*...*/ ];
|
|
246
|
-
this.gridOptions = {
|
|
247
|
-
enableExcelExport: true,
|
|
248
|
-
excelExportOptions: { sanitizeDataExport: true },
|
|
249
|
-
- enableExport: true,
|
|
250
|
-
- exportOptions: { sanitizeDataExport: true },
|
|
251
|
-
+ enableTextExport: true,
|
|
252
|
-
+ textExportOptions: { sanitizeDataExport: true },
|
|
253
|
-
|
|
254
|
-
// add 2x Export Services (you can add a single or both export services, it should always be an array
|
|
255
|
-
+ registerExternalResources: [new ExcelExportService(), new TextExportService()],
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
#### Excel Export Service
|
|
262
|
-
The `ExcelExportService` is also an opt-in Service and is no longer exposed in the `AngularGridInstance`, so if you wish to reference it (for example when you want to use it with an external export button), then create a reference while instantiating it (the `excelExportOptions` are the same as before).
|
|
263
|
-
```diff
|
|
264
|
-
import { Column, GridOption } from 'angular-slickgrid';
|
|
265
|
-
+ import { ExcelExportService } from '@slickgrid-universal/excel-export';
|
|
266
|
-
|
|
267
|
-
export class MyExample {
|
|
268
|
-
+ excelExportService = new ExcelExportService(); // create a variable ref when you need to access it later
|
|
269
|
-
|
|
270
|
-
prepareGrid {
|
|
271
|
-
this.columnDefinitions = [ /*...*/ ];
|
|
272
|
-
this.gridOptions = {
|
|
273
|
-
enableExcelExport: true,
|
|
274
|
-
excelExportOptions: { sanitizeDataExport: true },
|
|
275
|
-
+ registerExternalResources: [this.excelExportService],
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
exportToExcel() {
|
|
280
|
-
- this.angularGrid.excelExportService.exportToExcel({ filename: 'Export', format: FileType.xlsx });
|
|
281
|
-
+ this.excelExportService.exportToExcel({ filename: 'export', format: FileType.xlsx });
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
### Custom Footer
|
|
287
|
-
The Custom Footer component is now an external reusable component coming from Slickgrid-Universal and the `dateFormat` changed, it is now using the MomentJS date format (which is the same as all other Date Formatter) instead of the previous Angular date format. The changes in the global grid options is shown below, if you had it defined in your own grid options then make sure to use the correct format
|
|
288
|
-
|
|
289
|
-
```diff
|
|
290
|
-
customFooterOptions: {
|
|
291
|
-
- dateFormat: 'yyyy-MM-dd, hh:mm aaaaa\'m\'',
|
|
292
|
-
+ dateFormat: 'YYYY-MM-DD, hh:mm a',
|
|
293
|
-
// ...
|
|
294
|
-
}
|
|
295
|
-
```
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
**NOTE:** if you come from an earlier 2.x version, you first have to follow the [Migration Guide to 3.x](https://github.com/ghiscoding/angular-slickgrid/wiki/Migration-to-3.x), if that is too much work, you can always go the easy route to simply clone the [Angular-Slickgrid-Demos](https://github.com/ghiscoding/angular-slickgrid-demos)
|
|
2
|
-
|
|
3
|
-
## Major Changes List
|
|
4
|
-
- [controls/plugins (extensions)](#slickgrid-controlsplugins-extensions)... read below for more info
|
|
5
|
-
- replace Grid Menu `customItems` by `commandItems`, see [here](#grid-menu-customitems-renamed-to-commanditems)
|
|
6
|
-
- remove all `image` options in favor of CSS classes only, see [here](#images-are-removed-in-favor-of-css-classes)
|
|
7
|
-
- [CSS/SASS Styling Changes](#csssass-styling-changes)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
### @deprecated Code (removed)
|
|
11
|
-
##### Grid Menu / Column Picker
|
|
12
|
-
- `onColumnsChanged` removed `columns` property from Column Picker options, rename to `visibleColumns` instead.
|
|
13
|
-
- `onColumnsChanged` removed `columns` property from Grid Menu options, rename to `visibleColumns` instead.
|
|
14
|
-
##### Tree Data
|
|
15
|
-
- removed `findItemInHierarchicalStructure()` method, use `findItemInTreeStructure` instead.
|
|
16
|
-
|
|
17
|
-
## Changes
|
|
18
|
-
|
|
19
|
-
### SlickGrid Controls/Plugins (Extensions)
|
|
20
|
-
Every SlickGrid controls/plugins were rewritten and moved into Slickgrid-Universal (prior to this new release, we were using them directly from SlickGrid repo and we had Extension bridges/wrappers in Slickgrid-Universal but that is now thing of the past since their entire code exist in Slickgrid-Universal), they were also rewritten as plain vanilla JS (basically there's no more jQuery code with exception of Draggable Grouping which still require jQueryUI). It's also much easier to maintain (we no longer have to wait for the SlickGrid project to release a version) and we can also modify and add extra features, styling, etc...
|
|
21
|
-
|
|
22
|
-
Because of all the rewriting, it makes sense to rename the method `getSlickgridAddonInstance` to `getExtensionInstanceByName` and it now returns the instance directly **and** as a bonus it now also automatically infers the correct return instance class as well.
|
|
23
|
-
|
|
24
|
-
Here's an example of the code change that you need to do
|
|
25
|
-
```diff
|
|
26
|
-
toggleGridMenu(e: Event) {
|
|
27
|
-
if (this.angularGrid?.extensionService) {
|
|
28
|
-
- const gridMenuInstance = this.angularGrid.extensionService.getSlickgridAddonInstance(ExtensionName.gridMenu); // return type was `any`
|
|
29
|
-
+ const gridMenuInstance = this.angularGrid.extensionService.getExtensionInstanceByName(ExtensionName.gridMenu); // return type now infers `SlickGridMenu` instance
|
|
30
|
-
gridMenuInstance.showGridMenu(e);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
#### Grid Menu `customItems` renamed to `commandItems`
|
|
37
|
-
Replace all `custom...` properties to `command...` properties to align with all other menu plugins (CellMenu, ContextMenu, GridMenu, HeaderMenu are all using commands)
|
|
38
|
-
- replace `customItems` by `commandItems`
|
|
39
|
-
- replace `customTitle` by `commandTitle`
|
|
40
|
-
- replace `customTitleKey` by `commandTitleKey`
|
|
41
|
-
|
|
42
|
-
#### Images are removed in favor of CSS classes
|
|
43
|
-
Another change possible the full plugin rewrite, all images related code were removed in favor of CSS classes only (that already existed and was always favored).
|
|
44
|
-
|
|
45
|
-
- removed `deleteIconImage`, just use `deleteIconCssClass` instead.
|
|
46
|
-
- removed `groupIconImage`, just use `groupIconCssClass` instead.
|
|
47
|
-
- removed `buttonImage`, just use `buttonCssClass` instead.
|
|
48
|
-
- removed `iconImage`, just use `iconCssClass` instead
|
|
49
|
-
- removed `image`, just use `cssClass` instead
|
|
50
|
-
|
|
51
|
-
##### What if you still want images?
|
|
52
|
-
If you really want to use image, you can still work around that the new limitation by adding a CSS class similar to this:
|
|
53
|
-
`background-image: url(images/my-image.gif);`
|
|
54
|
-
|
|
55
|
-
## CSS/SASS Styling Changes
|
|
56
|
-
#### All SASS variables were renamed to add the `$slick-...` prefix
|
|
57
|
-
- the prefix is to avoid conflicts with other frameworks (CSS variables were already including this prefix, so no changes there)
|
|
58
|
-
- there is only 1 small exception with `$primary-color` (to avoid too many styling changes) but even then there's also a new variable `$slick-primary-color`
|
|
59
|
-
|
|
60
|
-
#### Simplify CSS
|
|
61
|
-
To simplify and merge all menu styling together (now doable since all controls/plugins now exists in the lib source code), all the following CSS class names got changed with what is shown below
|
|
62
|
-
- rename `title` to `slick-menu-title` (to avoid other framework conflicts)
|
|
63
|
-
- rename `slick-cell-menu-command-list` to `slick-menu-command-list`
|
|
64
|
-
- rename `slick-cell-menu-option-list` to `slick-menu-option-list`
|
|
65
|
-
- rename `slick-cell-menu-item` to `slick-menu-item`
|
|
66
|
-
- rename `slick-cell-menu-content` to `slick-menu-content`
|
|
67
|
-
- rename `slick-context-menu-command-list` to `slick-menu-command-list`
|
|
68
|
-
- rename `slick-context-menu-option-list` to `slick-menu-option-list`
|
|
69
|
-
- rename `slick-context-menu-item` to `slick-menu-item`
|
|
70
|
-
- rename `slick-context-menu-content` to `slick-menu-content`
|
|
71
|
-
- rename `slick-header-menu-item` to `slick-menu-item`
|
|
72
|
-
- rename `slick-header-menu-content` to `slick-menu-content`
|
|
73
|
-
- rename `slick-grid-menu-item` to `slick-menu-item`
|
|
74
|
-
- rename `slick-grid-menu-content` to `slick-menu-content`
|
|
75
|
-
- rename `slick-grid-menu-command-list` to `slick-menu-command-list`
|
|
76
|
-
- rename `slick-grid-menu-option-list` to `slick-menu-option-list`
|
|
77
|
-
- rename `slick-grid-menu-list` to `slick-column-picker-list`
|
|
78
|
-
- rename `slick-columnpicker` to `slick-column-picker`
|
|
79
|
-
- rename `slick-columnpicker-list` to `slick-column-picker-list`
|
|
80
|
-
- remove or rename `slick-gridmenu-list` to `slick-column-picker-list`
|
|
81
|
-
- we merge the Column Picker & Grid Menu column picker classes, read the note below
|
|
82
|
-
|
|
83
|
-
#### NOTE: for simplification, it also means that all SASS/CSS variables got merged as well (e.g.: `$slick-cell-menu-item-disabled-color` got merged to a common `$slick-menu-item-disabled-color`), another change was to merge all the Grid Menu column picker & Column Picker variables with same styling (e.g.: `$slick-grid-menu-checkbox-icon-checked` is now `$slick-column-picker-checkbox-icon-checked` for both extensions)
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
## Bye Bye jQueryUI... 👋🏻 welcome [SortableJS](https://sortablejs.github.io/Sortable/) 🚀
|
|
2
|
-
|
|
3
|
-
This new release is rather small for the developer, but a lot changed internally and SortableJS will improve performance and usability since it also works great with touch. The main change for the developer would be if you use the `Editors.autoComplete` since that changed to `Editors.autocompleter` (same goes for associated Filters)... and that's about it for changes since the rest are mostly removal of deprecated things. If you want to know more about the reason behind the removal of jQueryUI (internally), then read the "Why replace jQueryUI with SortableJS?" section below (hint, the next major version will probably remove jQuery as well).
|
|
4
|
-
|
|
5
|
-
#### Major Changes - Quick Summary
|
|
6
|
-
- minimum requirements
|
|
7
|
-
- Angular `>=14.0.0`
|
|
8
|
-
- RxJS `>=7.5.0`
|
|
9
|
-
- replaced jQueryUI with [SortableJS](https://sortablejs.github.io/Sortable/)
|
|
10
|
-
- it required us to replace jQueryUI Autocomplete Editor/Filter, see [Kraaden Autocomplete](#replace-jqueryui-autocomplete-with-kraaden-autocomplete) below
|
|
11
|
-
- [Why replace jQueryUI with SortableJS?](#why-replace-jqueryui-with-sortablejs)
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
**NOTE:** if you come from a version earlier than 4.x, it is very important that you follow each migration in the respected order
|
|
16
|
-
|
|
17
|
-
### Removed Code
|
|
18
|
-
1. ~Since we dropped jQueryUI, and we were using jQueryUI Slider for the `Filters.SliderRange`, we had to remove the Slider Range and we don't currently have a replacement at the moment, though it might come in the future.~ The Slider Range Filter got rewritten in pure JS and is back in version **[v5.1.0](https://github.com/ghiscoding/angular-slickgrid/releases/tag/v5.1.0)** release (see [Example 25](https://ghiscoding.github.io/Angular-Slickgrid/#/range)).
|
|
19
|
-
2. `BsDropdownService` was also removed, the alternative is simply to use the built-in [Cell Menu](/ghiscoding/angular-slickgrid/wiki/Cell-Menu)
|
|
20
|
-
|
|
21
|
-
### @deprecated Code
|
|
22
|
-
##### Text Export Service (see [code change](#text-export-service) sample below)
|
|
23
|
-
- `enableExport` was renamed to `enableTextExport`
|
|
24
|
-
- `exportOptions` was renamed to `textExportOptions`
|
|
25
|
-
|
|
26
|
-
##### SASS - Autocomplete
|
|
27
|
-
Since we replaced the jQueryUI Autocomplete with the 3rd party lib [Kraaden Autocomplete](https://github.com/kraaden/autocomplete) (see below), there are a few SASS/CSS variables that we no longer need and were removed.
|
|
28
|
-
|
|
29
|
-
###### variables removed
|
|
30
|
-
- `$slick-autocomplete-box-shadow`
|
|
31
|
-
- `$slick-autocomplete-border-radius`
|
|
32
|
-
- `$slick-autocomplete-hover-color`
|
|
33
|
-
- `$slick-autocomplete-hover-border-color`
|
|
34
|
-
- `$slick-autocomplete-loading-input-bg-color`
|
|
35
|
-
- `$slick-autocomplete-min-width`
|
|
36
|
-
- `$slick-autocomplete-overflow-x`
|
|
37
|
-
- `$slick-autocomplete-overflow-y`
|
|
38
|
-
- `$slick-autocomplete-text-color`
|
|
39
|
-
- `$slick-autocomplete-text-overflow`
|
|
40
|
-
- `$slick-autocomplete-text-padding`
|
|
41
|
-
|
|
42
|
-
## Changes
|
|
43
|
-
|
|
44
|
-
### Text Export Service
|
|
45
|
-
|
|
46
|
-
Here's an example of the code change that you need to do
|
|
47
|
-
```diff
|
|
48
|
-
this.gridOptions = {
|
|
49
|
-
- enableExport: true,
|
|
50
|
-
- exportOptions: {
|
|
51
|
-
+ enableTextExport: true,
|
|
52
|
-
+ textExportOptions: {
|
|
53
|
-
sanitizeDataExport: true
|
|
54
|
-
},
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Slickgrid-Universal
|
|
58
|
-
If you use any of the Slickgrid-Universal extra dependencies then make sure to upgrade them to `2.0.0` so that they work with Angular-Slickgrid `5.0.0`
|
|
59
|
-
|
|
60
|
-
```diff
|
|
61
|
-
"dependencies": {
|
|
62
|
-
- "@slickgrid-universal/excel-export": "^1.4.0",
|
|
63
|
-
+ "@slickgrid-universal/excel-export": "^2.0.0",
|
|
64
|
-
- "angular-slickgrid": "^4.3.4",
|
|
65
|
-
+ "angular-slickgrid": "^5.0.0",
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### `angular.json` config
|
|
70
|
-
Since we dropped jQueryUI, you then need to remove it from your `angular.json` and anywhere else that might reference it, but you also need to add SortableJS
|
|
71
|
-
|
|
72
|
-
```diff
|
|
73
|
-
# angular.json
|
|
74
|
-
{
|
|
75
|
-
// ...
|
|
76
|
-
"allowedCommonJsDependencies": [
|
|
77
|
-
"assign-deep",
|
|
78
|
-
+ "autocompleter",
|
|
79
|
-
"dompurify",
|
|
80
|
-
"excel-builder-webpacker",
|
|
81
|
-
"flatpickr",
|
|
82
|
-
"jquery",
|
|
83
|
-
- "jquery-ui",
|
|
84
|
-
"stream"
|
|
85
|
-
],
|
|
86
|
-
|
|
87
|
-
// ...
|
|
88
|
-
"scripts": [
|
|
89
|
-
"node_modules/jquery/dist/jquery.min.js",
|
|
90
|
-
- "node_modules/jquery-ui/dist/jquery-ui.min.js",
|
|
91
|
-
- "node_modules/slickgrid/lib/jquery.event.drag-2.3.0.js",
|
|
92
|
-
"node_modules/bootstrap/dist/js/bootstrap.min.js",
|
|
93
|
-
"node_modules/multiple-select-modified/src/multiple-select.js",
|
|
94
|
-
+ "node_modules/sortablejs/Sortable.min.js"
|
|
95
|
-
],
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Replaced JqueryUI Autocomplete with [Kraaden Autocomplete](https://github.com/kraaden/autocomplete)
|
|
99
|
-
Since we dropped jQueryUI, we had to find an alternative for the AutoComplete Editor/Filter and we settled on the 3rd party lib [Kraaden Autocomplete](https://github.com/kraaden/autocomplete) which does nearly everything that the jQueryUI one was providing. There are subtle changes requiring few line of code change (see below). We also have a new [Autocomplete Editor (Kraaden)](https://github.com/ghiscoding/angular-slickgrid/wiki/Autocomplete-Editor-(Kraaden-lib)) Wiki (and we kept a reference to the old jQueryUI AutoComplete Wiki for users of older Angular-Slickgrid versions).
|
|
100
|
-
|
|
101
|
-
You will notice that the Editor/Filter `model` name is quite similar, there are only 2 chars that are different to make it clear that there's a change for the developer (a lower `c` and a `r` at the end of the word which is forming the new name `model: Editors.autocompleter` and the same goes for `AutocompleterOption`)
|
|
102
|
-
|
|
103
|
-
If you were using the Autocomplete `onSelect` callback, it got renamed to `onSelectItem`. If you were using `openSearchListOnFocus`, then that is now simply `showOnFocus` with the Kraaden Autocomplete (refer to Kraaden Autocomplete [options](https://github.com/kraaden/autocomplete#options), to use them in `editorOptions` or `filterOptions`)
|
|
104
|
-
|
|
105
|
-
```diff
|
|
106
|
-
import {
|
|
107
|
-
- AutocompleteOption,
|
|
108
|
-
+ AutocompleterOption,
|
|
109
|
-
} from '@slickgrid-universal/common';
|
|
110
|
-
|
|
111
|
-
prepareGrid() {
|
|
112
|
-
this.columnDefinitions = [{
|
|
113
|
-
id: 'cityOfOrigin', name: 'City of Origin', field: 'cityOfOrigin',
|
|
114
|
-
filterable: true,
|
|
115
|
-
editor: {
|
|
116
|
-
- model: Editors.autoComplete,
|
|
117
|
-
+ model: Editors.autocompleter,
|
|
118
|
-
editorOptions: {
|
|
119
|
-
minLength: 3,
|
|
120
|
-
forceUserInput: true,
|
|
121
|
-
- source: (request, response) => {
|
|
122
|
-
+ fetch: (searchText, updateCallback) => {
|
|
123
|
-
$.ajax({
|
|
124
|
-
url: 'http://gd.geobytes.com/AutoCompleteCity',
|
|
125
|
-
dataType: 'jsonp',
|
|
126
|
-
data: {
|
|
127
|
-
- q: request.term
|
|
128
|
-
+ q: searchText
|
|
129
|
-
},
|
|
130
|
-
success: (data) => {
|
|
131
|
-
- response(data);
|
|
132
|
-
+ updateCallback(data);
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
- } as AutocompleteOption,
|
|
137
|
-
+ } as AutocompleterOption,
|
|
138
|
-
filter: {
|
|
139
|
-
- model: Filters.autoComplete,
|
|
140
|
-
+ model: Filters.autocompleter,
|
|
141
|
-
filterOptions: {
|
|
142
|
-
// ... the rest is the same as the Editor
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
### Why replace [jQueryUI](https://jqueryui.com/) with [SortableJS](https://sortablejs.github.io/Sortable/)?
|
|
150
|
-
Prior to this new version, jQueryUI had to be installed, that was even for a basic grid, but the fact was that the only jQueryUI feature we needed in SlickGrid was [jQueryUI - Sortable](https://jqueryui.com/sortable/) for column reordering. Considering that SlickGrid required jQueryUI at 281Kb (js+css) just to get column reordering, we figured it was a rather large request, don't you think? We did use jQueryUI Autocomplete & Slider as well but the jQueryUI lib is rather large, is barely maintained and is now quite outdated. [SortableJS](https://sortablejs.github.io/Sortable/) is now the dependency used by SlickGrid and is a lot smaller and more up to date in the JS world.
|
|
151
|
-
|
|
152
|
-
#### jQueryUI Cons
|
|
153
|
-
- old and outdated, barely supported and rather large (probably because it was written when IE5 was a thing)
|
|
154
|
-
- it does not support Touch that well (mobile devices)
|
|
155
|
-
- it is rather large at 250Kb (min.js) + 31Kb (min.css)
|
|
156
|
-
#### SortableJS Pros
|
|
157
|
-
- much smaller at 44Kb (`min.js` doesn't require any css)
|
|
158
|
-
- touch friendly (mobile devices)
|
|
159
|
-
- much smoother UX and better performance
|
|
160
|
-
- written in pure JS without any dependencies
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
## SlickGrid is now jQuery free 🌊
|
|
2
|
-
|
|
3
|
-
In our previous v5.0 release (see [Migration to v5.0](https://github.com/ghiscoding/angular-slickgrid/wiki/Migration-to-5.x)), we dropped jQueryUI and now in v6.0 we are going even further and are now dropping [jQuery](https://jquery.com/) entirely. You can still use jQuery but it's no longer a dependency. There are multiple benefits in dropping jQuery and go the vanilla route, the biggest advantages are:
|
|
4
|
-
|
|
5
|
-
1. it should provide better performance (browser native)
|
|
6
|
-
2. build size should be smaller (see table below)
|
|
7
|
-
|
|
8
|
-
#### Major Changes - Quick Summary
|
|
9
|
-
- minimum requirements bump
|
|
10
|
-
- Angular `>=16.0.0`
|
|
11
|
-
- RxJS `>=8.7.1`
|
|
12
|
-
- we dropped jQuery requirement
|
|
13
|
-
- it also required us to rewrite the `multiple-select` (jQuery based lib) into a brand new [`multiple-select-vanilla`](https://github.com/ghiscoding/multiple-select-vanilla) lib which is now native and has zero dependency
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
**NOTE:** if you come from an earlier version other than 5.x, please make sure to follow each migration in their respected order
|
|
18
|
-
|
|
19
|
-
## Changes
|
|
20
|
-
|
|
21
|
-
### Dynamically Loading Component via `AngularUtilService`
|
|
22
|
-
as shown in ([Example 21 - Row Detail](https://ghiscoding.github.io/Angular-Slickgrid/#/rowdetail) / [Example 22 - Angular Components](https://ghiscoding.github.io/Angular-Slickgrid/#/angular-components))
|
|
23
|
-
|
|
24
|
-
In our `AngularUtilService` we were dynamically creating component by using `ComponentFactoryResolver` but that got removed in Angular 16 and so we had to replace it with `ViewContainerRef` and for that to work you might need to add `providers` to use it as a singleton
|
|
25
|
-
|
|
26
|
-
When using AngularUtilService, you might need to add it in your `providers` list
|
|
27
|
-
```diff
|
|
28
|
-
@Component({
|
|
29
|
-
// ...
|
|
30
|
-
+ providers: [AngularUtilService]
|
|
31
|
-
})
|
|
32
|
-
export class GridComponent
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
#### `createAngularComponentAppendToDom` signature change (starting from `v6.3.0`)
|
|
36
|
-
Also in the same `AngularUtilService`, the method signature arguments `createAngularComponentAppendToDom` changed slightly, the 3rd argument was previously `clearTargetContent`, to match the signature of `createAngularComponent`, but is now replaced by `data` so that you can provide data to the new Component instance. The `clearTargetContent` was dropped because it is no longer needed since we should always replace the entire html content and that is now the default.
|
|
37
|
-
|
|
38
|
-
The new signature, in `v6.3.0`, for both `createAngularComponent` and `createAngularComponentAppendToDom` is now the following:
|
|
39
|
-
```ts
|
|
40
|
-
// the `CreateComponentOption` are the options you can provide to `ViewContainerRef.createComponent`
|
|
41
|
-
createAngularComponent<C>(component: Type<C>, targetElement?: HTMLElement, data?: any, createCompOptions?: CreateComponentOption) {}
|
|
42
|
-
createAngularComponentAppendToDom<C>(component: Type<C>, targetElement?: HTMLElement, data?: any, createCompOptions?: CreateComponentOption) {}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### replaced `multiple-select` with [`multiple-select-vanilla`](https://github.com/ghiscoding/multiple-select-vanilla)
|
|
46
|
-
This change was required because the previous library was a jQuery based lib, so I rewrote the lib as a new native lib to drop jQuery. However with this change, there were a couple of options that were dropped and/or modified.
|
|
47
|
-
|
|
48
|
-
```diff
|
|
49
|
-
// you can load `MultipleSelectOption` from either the new Multiple-Select-Vanilla lib or from Angular-Slickgrid (which is a re-export)
|
|
50
|
-
import { MultipleSelectOption } from 'angular-slickgrid'; // still works, but is a re-export of the import shown below
|
|
51
|
-
+ import { MultipleSelectOption } from 'multiple-select-vanilla'; // preferred
|
|
52
|
-
|
|
53
|
-
filterOptions: {
|
|
54
|
-
- autoDropWidth: true, // removed and no longer required
|
|
55
|
-
} as MultipleSelectOption
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
The new lib also offers a bunch of new options as well, you can see the full interface at [MultipleSelectOption](https://github.com/ghiscoding/multiple-select-vanilla/blob/main/lib/src/interfaces/multipleSelectOption.interface.ts)
|
|
59
|
-
|
|
60
|
-
### Slickgrid-Universal
|
|
61
|
-
If you use any of the Slickgrid-Universal extra dependencies then make sure to upgrade them to the new major `3.0.0` version so that they work with Angular-Slickgrid `6.0.0`
|
|
62
|
-
|
|
63
|
-
```diff
|
|
64
|
-
"dependencies": {
|
|
65
|
-
- "@slickgrid-universal/excel-export": "^2.6.4",
|
|
66
|
-
+ "@slickgrid-universal/excel-export": "^3.0.0",
|
|
67
|
-
- "angular-slickgrid": "^5.6.4",
|
|
68
|
-
+ "angular-slickgrid": "^6.0.0",
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### `angular.json` config
|
|
73
|
-
Since we dropped jQuery, you can also remove it from your `angular.json` list of scripts as well and anywhere else that might be referencing it. Also the `multiple-select-modified` now uses SASS and is now imported directly in Slickgrid-Universal, so CSS imports are no longer needed
|
|
74
|
-
|
|
75
|
-
```diff
|
|
76
|
-
# angular.json
|
|
77
|
-
{
|
|
78
|
-
// ...
|
|
79
|
-
"allowedCommonJsDependencies": [
|
|
80
|
-
"assign-deep",
|
|
81
|
-
"autocompleter",
|
|
82
|
-
"dompurify",
|
|
83
|
-
"excel-builder-webpacker",
|
|
84
|
-
"flatpickr",
|
|
85
|
-
- "jquery",
|
|
86
|
-
"stream"
|
|
87
|
-
],
|
|
88
|
-
|
|
89
|
-
// ...
|
|
90
|
-
"styles": [
|
|
91
|
-
"node_modules/bootstrap/dist/css/bootstrap.min.css",
|
|
92
|
-
"node_modules/flatpickr/dist/flatpickr.min.css",
|
|
93
|
-
- "node_modules/multiple-select-modified/src/multiple-select.css",
|
|
94
|
-
"src/styles.scss"
|
|
95
|
-
],
|
|
96
|
-
"scripts": [
|
|
97
|
-
"node_modules/bootstrap/dist/js/bootstrap.min.js",
|
|
98
|
-
- "node_modules/jquery/dist/jquery.min.js",
|
|
99
|
-
- "node_modules/multiple-select-modified/src/multiple-select.js",
|
|
100
|
-
"node_modules/sortablejs/Sortable.min.js"
|
|
101
|
-
],
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Editor/Filter `params` should be using `editorOptions`/`filterOptions`
|
|
105
|
-
For better TypeScript support, we now recommend to use either `editorOptions` or `filterOptions` depending if it's an Editor or a Filter.
|
|
106
|
-
|
|
107
|
-
```diff
|
|
108
|
-
this.columnDefinitions = [{
|
|
109
|
-
id: 'cost', name: 'Cost', field: 'cost',
|
|
110
|
-
editor: {
|
|
111
|
-
model: Editors.slider,
|
|
112
|
-
- params: { hideSliderNumber: false }
|
|
113
|
-
+ editorOptions: { hideSliderNumber: false } as SliderOption
|
|
114
|
-
},
|
|
115
|
-
filter: {
|
|
116
|
-
model: Filters.slider,
|
|
117
|
-
- params: { hideSliderNumber: false }
|
|
118
|
-
+ filterOptions: { hideSliderNumber: false } as SliderOption
|
|
119
|
-
},
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### Final Note
|
|
123
|
-
and that's about it, the migration is relatively simple as you can see :)
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
### File Size Comparisons
|
|
128
|
-
While comparing with the folder properties with "size on disk" on Windows, we're averaging 4-5% smaller size in our new release by removing jQuery with this new release.
|