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,446 +0,0 @@
|
|
|
1
|
-
import { GraphqlService, GraphqlPaginatedResult, GraphqlServiceApi, GraphqlServiceOption } from '@slickgrid-universal/graphql';
|
|
2
|
-
import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
|
|
3
|
-
import { addDay, format as tempoFormat } from '@formkit/tempo';
|
|
4
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
-
import { Subscription } from 'rxjs';
|
|
6
|
-
import {
|
|
7
|
-
AngularGridInstance,
|
|
8
|
-
Column,
|
|
9
|
-
CursorPageInfo,
|
|
10
|
-
Filters,
|
|
11
|
-
Formatters,
|
|
12
|
-
GridOption,
|
|
13
|
-
GridStateChange,
|
|
14
|
-
Metrics,
|
|
15
|
-
type MultipleSelectOption,
|
|
16
|
-
OperatorType,
|
|
17
|
-
unsubscribeAllObservables,
|
|
18
|
-
} from '../../library';
|
|
19
|
-
|
|
20
|
-
const defaultPageSize = 20;
|
|
21
|
-
const GRAPHQL_QUERY_DATASET_NAME = 'users';
|
|
22
|
-
const LOCAL_STORAGE_KEY = 'gridStateGraphql';
|
|
23
|
-
const FAKE_SERVER_DELAY = 250;
|
|
24
|
-
|
|
25
|
-
@Component({
|
|
26
|
-
templateUrl: './example06.component.html',
|
|
27
|
-
standalone: false,
|
|
28
|
-
})
|
|
29
|
-
export class Example6Component implements OnInit, OnDestroy {
|
|
30
|
-
private subscriptions: Subscription[] = [];
|
|
31
|
-
angularGrid!: AngularGridInstance;
|
|
32
|
-
columnDefinitions!: Column[];
|
|
33
|
-
gridOptions!: GridOption;
|
|
34
|
-
dataset = [];
|
|
35
|
-
metrics!: Metrics;
|
|
36
|
-
|
|
37
|
-
isWithCursor = false;
|
|
38
|
-
graphqlQuery = '';
|
|
39
|
-
processing = true;
|
|
40
|
-
status = { text: 'processing...', class: 'alert alert-danger' };
|
|
41
|
-
selectedLanguage: string;
|
|
42
|
-
serverWaitDelay = FAKE_SERVER_DELAY; // server simulation with default of 250ms but 50ms for Cypress tests
|
|
43
|
-
|
|
44
|
-
constructor(
|
|
45
|
-
private readonly cd: ChangeDetectorRef,
|
|
46
|
-
private translate: TranslateService
|
|
47
|
-
) {
|
|
48
|
-
// always start with English for Cypress E2E tests to be consistent
|
|
49
|
-
const defaultLang = 'en';
|
|
50
|
-
this.translate.use(defaultLang);
|
|
51
|
-
this.selectedLanguage = defaultLang;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
ngOnDestroy() {
|
|
55
|
-
// also unsubscribe all Angular Subscriptions
|
|
56
|
-
unsubscribeAllObservables(this.subscriptions);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
ngOnInit(): void {
|
|
60
|
-
this.columnDefinitions = [
|
|
61
|
-
{
|
|
62
|
-
id: 'name',
|
|
63
|
-
field: 'name',
|
|
64
|
-
nameKey: 'NAME',
|
|
65
|
-
width: 60,
|
|
66
|
-
columnGroupKey: 'CUSTOMER_INFORMATION',
|
|
67
|
-
sortable: true,
|
|
68
|
-
filterable: true,
|
|
69
|
-
filter: {
|
|
70
|
-
model: Filters.compoundInput,
|
|
71
|
-
compoundOperatorList: [
|
|
72
|
-
{ operator: '', desc: 'Contains' },
|
|
73
|
-
{ operator: '<>', desc: 'Not Contains' },
|
|
74
|
-
{ operator: '=', desc: 'Equals' },
|
|
75
|
-
{ operator: '!=', desc: 'Not equal to' },
|
|
76
|
-
{ operator: 'a*', desc: 'Starts With' },
|
|
77
|
-
{ operator: 'Custom', desc: 'SQL Like' },
|
|
78
|
-
],
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
id: 'gender',
|
|
83
|
-
field: 'gender',
|
|
84
|
-
nameKey: 'GENDER',
|
|
85
|
-
filterable: true,
|
|
86
|
-
sortable: true,
|
|
87
|
-
width: 60,
|
|
88
|
-
columnGroupKey: 'CUSTOMER_INFORMATION',
|
|
89
|
-
filter: {
|
|
90
|
-
model: Filters.singleSelect,
|
|
91
|
-
collection: [
|
|
92
|
-
{ value: '', label: '' },
|
|
93
|
-
{ value: 'male', label: 'male', labelKey: 'MALE' },
|
|
94
|
-
{ value: 'female', label: 'female', labelKey: 'FEMALE' },
|
|
95
|
-
],
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
id: 'company',
|
|
100
|
-
field: 'company',
|
|
101
|
-
nameKey: 'COMPANY',
|
|
102
|
-
width: 60,
|
|
103
|
-
columnGroupKey: 'CUSTOMER_INFORMATION',
|
|
104
|
-
sortable: true,
|
|
105
|
-
filterable: true,
|
|
106
|
-
filter: {
|
|
107
|
-
model: Filters.multipleSelect,
|
|
108
|
-
collection: [
|
|
109
|
-
{ value: 'acme', label: 'Acme' },
|
|
110
|
-
{ value: 'abc', label: 'Company ABC' },
|
|
111
|
-
{ value: 'xyz', label: 'Company XYZ' },
|
|
112
|
-
],
|
|
113
|
-
options: {
|
|
114
|
-
filter: true, // adds a filter on top of the multi-select dropdown
|
|
115
|
-
} as MultipleSelectOption,
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
id: 'billingAddressStreet',
|
|
120
|
-
field: 'billing.address.street',
|
|
121
|
-
nameKey: 'BILLING.ADDRESS.STREET',
|
|
122
|
-
width: 60,
|
|
123
|
-
filterable: true,
|
|
124
|
-
sortable: true,
|
|
125
|
-
columnGroupKey: 'BILLING.INFORMATION',
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
id: 'billingAddressZip',
|
|
129
|
-
field: 'billing.address.zip',
|
|
130
|
-
nameKey: 'BILLING.ADDRESS.ZIP',
|
|
131
|
-
width: 60,
|
|
132
|
-
type: 'number',
|
|
133
|
-
columnGroupKey: 'BILLING.INFORMATION', // or use "columnGroup" without Translate
|
|
134
|
-
filterable: true,
|
|
135
|
-
sortable: true,
|
|
136
|
-
filter: {
|
|
137
|
-
model: Filters.compoundInput,
|
|
138
|
-
},
|
|
139
|
-
formatter: Formatters.multiple,
|
|
140
|
-
params: { formatters: [Formatters.complexObject, Formatters.translate] },
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
id: 'finish',
|
|
144
|
-
field: 'finish',
|
|
145
|
-
name: 'Date',
|
|
146
|
-
formatter: Formatters.dateIso,
|
|
147
|
-
sortable: true,
|
|
148
|
-
minWidth: 90,
|
|
149
|
-
width: 120,
|
|
150
|
-
exportWithFormatter: true,
|
|
151
|
-
type: 'date',
|
|
152
|
-
columnGroupKey: 'BILLING.INFORMATION', // or use "columnGroup" without Translate
|
|
153
|
-
filterable: true,
|
|
154
|
-
filter: {
|
|
155
|
-
model: Filters.dateRange,
|
|
156
|
-
filterShortcuts: [
|
|
157
|
-
{
|
|
158
|
-
titleKey: 'NEXT_20_DAYS',
|
|
159
|
-
iconCssClass: 'mdi mdi-calendar',
|
|
160
|
-
searchTerms: [tempoFormat(new Date(), 'YYYY-MM-DD'), tempoFormat(addDay(new Date(), 20), 'YYYY-MM-DD')],
|
|
161
|
-
},
|
|
162
|
-
],
|
|
163
|
-
},
|
|
164
|
-
},
|
|
165
|
-
];
|
|
166
|
-
|
|
167
|
-
const currentYear = new Date().getFullYear();
|
|
168
|
-
const presetLowestDay = `${currentYear}-01-01`;
|
|
169
|
-
const presetHighestDay = `${currentYear}-02-15`;
|
|
170
|
-
|
|
171
|
-
this.gridOptions = {
|
|
172
|
-
gridHeight: 200,
|
|
173
|
-
gridWidth: 900,
|
|
174
|
-
compoundOperatorAltTexts: {
|
|
175
|
-
// where '=' is any of the `OperatorString` type shown above
|
|
176
|
-
text: { Custom: { operatorAlt: '%%', descAlt: 'SQL Like' } },
|
|
177
|
-
},
|
|
178
|
-
enableFiltering: true,
|
|
179
|
-
enableCellNavigation: true,
|
|
180
|
-
enableTranslate: true,
|
|
181
|
-
createPreHeaderPanel: true,
|
|
182
|
-
showPreHeaderPanel: true,
|
|
183
|
-
preHeaderPanelHeight: 28,
|
|
184
|
-
i18n: this.translate,
|
|
185
|
-
gridMenu: {
|
|
186
|
-
resizeOnShowHeaderRow: true,
|
|
187
|
-
commandItems: [
|
|
188
|
-
{
|
|
189
|
-
iconCssClass: 'mdi mdi-close text-danger',
|
|
190
|
-
title: 'Reset Grid',
|
|
191
|
-
disabled: false,
|
|
192
|
-
command: 'reset-grid',
|
|
193
|
-
positionOrder: 60,
|
|
194
|
-
},
|
|
195
|
-
],
|
|
196
|
-
onCommand: (e, args) => {
|
|
197
|
-
if (args.command === 'reset-grid') {
|
|
198
|
-
this.angularGrid.gridService.resetGrid(this.columnDefinitions);
|
|
199
|
-
localStorage[LOCAL_STORAGE_KEY] = null;
|
|
200
|
-
}
|
|
201
|
-
},
|
|
202
|
-
},
|
|
203
|
-
enablePagination: true, // you could optionally disable the Pagination
|
|
204
|
-
pagination: {
|
|
205
|
-
pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],
|
|
206
|
-
pageSize: defaultPageSize,
|
|
207
|
-
totalItems: 0,
|
|
208
|
-
},
|
|
209
|
-
presets: {
|
|
210
|
-
columns: [
|
|
211
|
-
{ columnId: 'name', width: 100 },
|
|
212
|
-
{ columnId: 'gender', width: 55 },
|
|
213
|
-
{ columnId: 'company' },
|
|
214
|
-
{ columnId: 'billingAddressZip' }, // flip column position of Street/Zip to Zip/Street
|
|
215
|
-
{ columnId: 'billingAddressStreet', width: 120 },
|
|
216
|
-
{ columnId: 'finish', width: 130 },
|
|
217
|
-
],
|
|
218
|
-
filters: [
|
|
219
|
-
// you can use OperatorType or type them as string, e.g.: operator: 'EQ'
|
|
220
|
-
{ columnId: 'gender', searchTerms: ['male'], operator: OperatorType.equal },
|
|
221
|
-
// { columnId: 'name', searchTerms: ['John Doe'], operator: OperatorType.contains },
|
|
222
|
-
{ columnId: 'name', searchTerms: ['Joh*oe'], operator: OperatorType.startsWithEndsWith },
|
|
223
|
-
{ columnId: 'company', searchTerms: ['xyz'], operator: 'IN' },
|
|
224
|
-
|
|
225
|
-
// use a date range with 2 searchTerms values
|
|
226
|
-
{ columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: OperatorType.rangeInclusive },
|
|
227
|
-
],
|
|
228
|
-
sorters: [
|
|
229
|
-
// direction can written as 'asc' (uppercase or lowercase) and/or use the SortDirection type
|
|
230
|
-
{ columnId: 'name', direction: 'asc' },
|
|
231
|
-
{ columnId: 'company', direction: 'DESC' },
|
|
232
|
-
],
|
|
233
|
-
pagination: { pageNumber: this.isWithCursor ? 1 : 2, pageSize: 20 }, // if cursor based, start at page 1
|
|
234
|
-
},
|
|
235
|
-
backendServiceApi: {
|
|
236
|
-
service: new GraphqlService(),
|
|
237
|
-
options: {
|
|
238
|
-
datasetName: GRAPHQL_QUERY_DATASET_NAME, // the only REQUIRED property
|
|
239
|
-
addLocaleIntoQuery: true, // optionally add current locale into the query
|
|
240
|
-
extraQueryArguments: [
|
|
241
|
-
{
|
|
242
|
-
// optionally add some extra query arguments as input query arguments
|
|
243
|
-
field: 'userId',
|
|
244
|
-
value: 123,
|
|
245
|
-
},
|
|
246
|
-
],
|
|
247
|
-
filterQueryOverride: ({ fieldName, columnDef, columnFilterOperator, searchValues }) => {
|
|
248
|
-
if (columnFilterOperator === OperatorType.custom && columnDef?.id === 'name') {
|
|
249
|
-
// technically speaking GraphQL isn't a database query language like SQL, it's an application query language.
|
|
250
|
-
// What that means is that GraphQL won't let you write arbitrary queries out of the box.
|
|
251
|
-
// It will only support the types of queries defined in your GraphQL schema.
|
|
252
|
-
// see this SO: https://stackoverflow.com/a/37981802/1212166
|
|
253
|
-
return { field: fieldName, operator: 'Like', value: searchValues[0] };
|
|
254
|
-
}
|
|
255
|
-
return;
|
|
256
|
-
},
|
|
257
|
-
useCursor: this.isWithCursor, // sets pagination strategy, if true requires a call to setPageInfo() when graphql call returns
|
|
258
|
-
// when dealing with complex objects, we want to keep our field name with double quotes
|
|
259
|
-
// example with gender: query { users (orderBy:[{field:"gender",direction:ASC}]) {}
|
|
260
|
-
keepArgumentFieldDoubleQuotes: true,
|
|
261
|
-
},
|
|
262
|
-
// you can define the onInit callback OR enable the "executeProcessCommandOnInit" flag in the service init
|
|
263
|
-
// onInit: (query) => this.getCustomerApiCall(query)
|
|
264
|
-
preProcess: () => this.displaySpinner(true),
|
|
265
|
-
process: (query) => this.getCustomerApiCall(query),
|
|
266
|
-
postProcess: (result: GraphqlPaginatedResult) => {
|
|
267
|
-
this.metrics = result.metrics as Metrics;
|
|
268
|
-
this.displaySpinner(false);
|
|
269
|
-
this.cd.detectChanges();
|
|
270
|
-
},
|
|
271
|
-
} as GraphqlServiceApi,
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
angularGridReady(angularGrid: AngularGridInstance) {
|
|
276
|
-
this.angularGrid = angularGrid;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
displaySpinner(isProcessing: boolean) {
|
|
280
|
-
this.processing = isProcessing;
|
|
281
|
-
this.status = isProcessing
|
|
282
|
-
? { text: 'processing...', class: 'alert alert-danger' }
|
|
283
|
-
: { text: 'finished', class: 'alert alert-success' };
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
* Calling your GraphQL backend server should always return a Promise or Observable of type GraphqlPaginatedResult (or GraphqlResult without Pagination)
|
|
288
|
-
* @param query
|
|
289
|
-
* @return Promise<GraphqlPaginatedResult> | Observable<GraphqlResult>
|
|
290
|
-
*/
|
|
291
|
-
getCustomerApiCall(_query: string): Promise<GraphqlPaginatedResult> {
|
|
292
|
-
let pageInfo: CursorPageInfo;
|
|
293
|
-
if (this.angularGrid?.paginationService) {
|
|
294
|
-
const { paginationService } = this.angularGrid;
|
|
295
|
-
// there seems to a timing issue where when you click "cursor" it requests the data before the pagination-service is initialized...
|
|
296
|
-
const pageNumber = (paginationService as any)._initialized ? paginationService.getCurrentPageNumber() : 1;
|
|
297
|
-
// In the real world, each node item would be A,B,C...AA,AB,AC, etc and so each page would actually be something like A-T, T-AN
|
|
298
|
-
// but for this mock data it's easier to represent each page as
|
|
299
|
-
// Page1: A-B
|
|
300
|
-
// Page2: B-C
|
|
301
|
-
// Page3: C-D
|
|
302
|
-
// Page4: D-E
|
|
303
|
-
// Page5: E-F
|
|
304
|
-
const startCursor = String.fromCharCode('A'.charCodeAt(0) + pageNumber - 1);
|
|
305
|
-
const endCursor = String.fromCharCode(startCursor.charCodeAt(0) + 1);
|
|
306
|
-
pageInfo = {
|
|
307
|
-
hasPreviousPage: paginationService.dataFrom === 0,
|
|
308
|
-
hasNextPage: paginationService.dataTo === 100,
|
|
309
|
-
startCursor,
|
|
310
|
-
endCursor,
|
|
311
|
-
};
|
|
312
|
-
} else {
|
|
313
|
-
pageInfo = {
|
|
314
|
-
hasPreviousPage: false,
|
|
315
|
-
hasNextPage: true,
|
|
316
|
-
startCursor: 'A',
|
|
317
|
-
endCursor: 'B',
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
// in your case, you will call your WebAPI function (wich needs to return a Promise)
|
|
322
|
-
// for the demo purpose, we will call a mock WebAPI function
|
|
323
|
-
const mockedResult = {
|
|
324
|
-
// the dataset name is the only unknown property
|
|
325
|
-
// will be the same defined in your GraphQL Service init, in our case GRAPHQL_QUERY_DATASET_NAME
|
|
326
|
-
data: {
|
|
327
|
-
[GRAPHQL_QUERY_DATASET_NAME]: {
|
|
328
|
-
nodes: [],
|
|
329
|
-
totalCount: 100,
|
|
330
|
-
pageInfo,
|
|
331
|
-
},
|
|
332
|
-
},
|
|
333
|
-
};
|
|
334
|
-
|
|
335
|
-
return new Promise((resolve) => {
|
|
336
|
-
setTimeout(() => {
|
|
337
|
-
this.graphqlQuery = this.angularGrid.backendService!.buildQuery();
|
|
338
|
-
if (this.isWithCursor) {
|
|
339
|
-
// When using cursor pagination, the pagination service needs to be updated with the PageInfo data from the latest request
|
|
340
|
-
// This might be done automatically if using a framework specific slickgrid library
|
|
341
|
-
// Note because of this timeout, this may cause race conditions with rapid clicks!
|
|
342
|
-
this.angularGrid?.paginationService?.setCursorPageInfo(mockedResult.data[GRAPHQL_QUERY_DATASET_NAME].pageInfo);
|
|
343
|
-
}
|
|
344
|
-
resolve(mockedResult);
|
|
345
|
-
}, this.serverWaitDelay);
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
goToFirstPage() {
|
|
350
|
-
this.angularGrid.paginationService!.goToFirstPage();
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
goToLastPage() {
|
|
354
|
-
this.angularGrid.paginationService!.goToLastPage();
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
/** Dispatched event of a Grid State Changed event */
|
|
358
|
-
gridStateChanged(gridStateChanges: GridStateChange) {
|
|
359
|
-
console.log('GraphQL Example, Grid State changed:: ', gridStateChanges);
|
|
360
|
-
localStorage[LOCAL_STORAGE_KEY] = JSON.stringify(gridStateChanges.gridState);
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
clearAllFiltersAndSorts() {
|
|
364
|
-
if (this.angularGrid?.gridService) {
|
|
365
|
-
this.angularGrid.gridService.clearAllFiltersAndSorts();
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
/** Save current Filters, Sorters in LocaleStorage or DB */
|
|
370
|
-
saveCurrentGridState() {
|
|
371
|
-
console.log('GraphQL current grid state', this.angularGrid.gridStateService.getCurrentGridState());
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
setFiltersDynamically() {
|
|
375
|
-
const currentYear = new Date().getFullYear();
|
|
376
|
-
const presetLowestDay = `${currentYear}-01-01`;
|
|
377
|
-
const presetHighestDay = `${currentYear}-02-15`;
|
|
378
|
-
|
|
379
|
-
// we can Set Filters Dynamically (or different filters) afterward through the FilterService
|
|
380
|
-
this.angularGrid.filterService.updateFilters([
|
|
381
|
-
{ columnId: 'gender', searchTerms: ['female'], operator: OperatorType.equal },
|
|
382
|
-
{ columnId: 'name', searchTerms: ['Jane'], operator: OperatorType.startsWith },
|
|
383
|
-
{ columnId: 'company', searchTerms: ['acme'], operator: 'IN' },
|
|
384
|
-
{ columnId: 'billingAddressZip', searchTerms: ['11'], operator: OperatorType.greaterThanOrEqual },
|
|
385
|
-
{ columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: OperatorType.rangeInclusive },
|
|
386
|
-
]);
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
setSortingDynamically() {
|
|
390
|
-
this.angularGrid.sortService.updateSorting([
|
|
391
|
-
// orders matter, whichever is first in array will be the first sorted column
|
|
392
|
-
{ columnId: 'billingAddressZip', direction: 'DESC' },
|
|
393
|
-
{ columnId: 'company', direction: 'ASC' },
|
|
394
|
-
]);
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
resetToOriginalPresets() {
|
|
398
|
-
const currentYear = new Date().getFullYear();
|
|
399
|
-
const presetLowestDay = `${currentYear}-01-01`;
|
|
400
|
-
const presetHighestDay = `${currentYear}-02-15`;
|
|
401
|
-
|
|
402
|
-
this.angularGrid.filterService.updateFilters([
|
|
403
|
-
// you can use OperatorType or type them as string, e.g.: operator: 'EQ'
|
|
404
|
-
{ columnId: 'gender', searchTerms: ['male'], operator: OperatorType.equal },
|
|
405
|
-
// { columnId: 'name', searchTerms: ['John Doe'], operator: OperatorType.contains },
|
|
406
|
-
{ columnId: 'name', searchTerms: ['Joh*oe'], operator: OperatorType.startsWithEndsWith },
|
|
407
|
-
{ columnId: 'company', searchTerms: ['xyz'], operator: 'IN' },
|
|
408
|
-
|
|
409
|
-
// use a date range with 2 searchTerms values
|
|
410
|
-
{ columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: OperatorType.rangeInclusive },
|
|
411
|
-
]);
|
|
412
|
-
this.angularGrid.sortService.updateSorting([
|
|
413
|
-
// direction can written as 'asc' (uppercase or lowercase) and/or use the SortDirection type
|
|
414
|
-
{ columnId: 'name', direction: 'asc' },
|
|
415
|
-
{ columnId: 'company', direction: 'DESC' },
|
|
416
|
-
]);
|
|
417
|
-
setTimeout(() => {
|
|
418
|
-
this.angularGrid.paginationService?.changeItemPerPage(20);
|
|
419
|
-
this.angularGrid.paginationService?.goToPageNumber(2);
|
|
420
|
-
});
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
setIsWithCursor(isWithCursor: boolean) {
|
|
424
|
-
this.isWithCursor = isWithCursor;
|
|
425
|
-
this.resetOptions({ useCursor: this.isWithCursor });
|
|
426
|
-
return true;
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
private resetOptions(options: Partial<GraphqlServiceOption>) {
|
|
430
|
-
this.displaySpinner(true);
|
|
431
|
-
const graphqlService = this.gridOptions.backendServiceApi!.service as GraphqlService;
|
|
432
|
-
this.angularGrid.paginationService!.setCursorBased(options.useCursor as boolean);
|
|
433
|
-
graphqlService.updateOptions(options);
|
|
434
|
-
this.gridOptions = { ...this.gridOptions };
|
|
435
|
-
this.angularGrid.paginationService?.goToFirstPage();
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
switchLanguage() {
|
|
439
|
-
const nextLanguage = this.selectedLanguage === 'en' ? 'fr' : 'en';
|
|
440
|
-
this.subscriptions.push(
|
|
441
|
-
this.translate.use(nextLanguage).subscribe(() => {
|
|
442
|
-
this.selectedLanguage = nextLanguage;
|
|
443
|
-
})
|
|
444
|
-
);
|
|
445
|
-
}
|
|
446
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
<div id="demo-container" class="container-fluid">
|
|
2
|
-
<h2>
|
|
3
|
-
Example 7: Header Button Plugin
|
|
4
|
-
<span class="float-end">
|
|
5
|
-
<a
|
|
6
|
-
style="font-size: 18px"
|
|
7
|
-
target="_blank"
|
|
8
|
-
href="https://github.com/ghiscoding/slickgrid-universal/blob/master/frameworks/angular-slickgrid/src/demos/examples/grid-headerbutton.component.ts"
|
|
9
|
-
>
|
|
10
|
-
<span class="mdi mdi-link-variant"></span> code
|
|
11
|
-
</a>
|
|
12
|
-
</span>
|
|
13
|
-
</h2>
|
|
14
|
-
<div class="subtitle">
|
|
15
|
-
This example demonstrates using the <b>Slick.Plugins.HeaderButtons</b> plugin to easily add buttons to colum headers. These buttons can
|
|
16
|
-
be specified directly in the column definition, and are very easy to configure and use. (<a
|
|
17
|
-
href="https://ghiscoding.gitbook.io/angular-slickgrid/grid-functionalities/header-menu-and-header-buttons"
|
|
18
|
-
target="_blank"
|
|
19
|
-
>Wiki docs</a
|
|
20
|
-
>)
|
|
21
|
-
<ul>
|
|
22
|
-
<li>Resize the 1st column to see all icon/command</li>
|
|
23
|
-
<li>Mouse hover the 2nd column to see it's icon/command</li>
|
|
24
|
-
<li>For all the other columns, click on top-right red circle icon to enable highlight of negative numbers.</li>
|
|
25
|
-
<li>
|
|
26
|
-
Use override callback functions to change the properties of show/hide, enable/disable the menu or certain item(s) from the list
|
|
27
|
-
</li>
|
|
28
|
-
<ol>
|
|
29
|
-
<li>These callbacks are: "itemVisibilityOverride", "itemUsabilityOverride"</li>
|
|
30
|
-
<li>for example the "Column E" does not show the header button via "itemVisibilityOverride"</li>
|
|
31
|
-
<li>for example the "Column J" header button is displayed but it not usable via "itemUsabilityOverride"</li>
|
|
32
|
-
</ol>
|
|
33
|
-
</ul>
|
|
34
|
-
</div>
|
|
35
|
-
|
|
36
|
-
<h5>Grid 1</h5>
|
|
37
|
-
<angular-slickgrid
|
|
38
|
-
gridId="grid7-1"
|
|
39
|
-
[columns]="columnDefinitions1"
|
|
40
|
-
[options]="gridOptions1"
|
|
41
|
-
[dataset]="dataset1"
|
|
42
|
-
(onAngularGridCreated)="angularGrid1Ready($event.detail)"
|
|
43
|
-
>
|
|
44
|
-
</angular-slickgrid>
|
|
45
|
-
|
|
46
|
-
<br />
|
|
47
|
-
<h5>Grid 2 - <span class="subtitle">with both Header Buttons & Menus</span></h5>
|
|
48
|
-
<angular-slickgrid
|
|
49
|
-
gridId="grid7-2"
|
|
50
|
-
[columns]="columnDefinitions2"
|
|
51
|
-
[options]="gridOptions2"
|
|
52
|
-
[dataset]="dataset2"
|
|
53
|
-
(onAngularGridCreated)="angularGrid2Ready($event.detail)"
|
|
54
|
-
>
|
|
55
|
-
</angular-slickgrid>
|
|
56
|
-
</div>
|