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,60 +0,0 @@
|
|
|
1
|
-
<div id="demo-container" class="container-fluid">
|
|
2
|
-
<h2>
|
|
3
|
-
Example 25: GraphQL Basic API without Pagination
|
|
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-graphql-nopage.component.ts"
|
|
9
|
-
>
|
|
10
|
-
<span class="mdi mdi-link-variant"></span> code
|
|
11
|
-
</a>
|
|
12
|
-
</span>
|
|
13
|
-
</h2>
|
|
14
|
-
<div class="subtitle row">
|
|
15
|
-
<div class="col-12">
|
|
16
|
-
Use basic GraphQL query with any external public APIs (<a
|
|
17
|
-
href="https://ghiscoding.gitbook.io/angular-slickgrid/backend-services/graphql"
|
|
18
|
-
target="_blank"
|
|
19
|
-
>Wiki docs</a
|
|
20
|
-
>).
|
|
21
|
-
<ul>
|
|
22
|
-
<li>
|
|
23
|
-
This Examples uses a Public GraphQL API that you can find at this link
|
|
24
|
-
<a href="https://countries.trevorblades.com/" target="_blank">https://countries.trevorblades.com/</a>
|
|
25
|
-
</li>
|
|
26
|
-
<li>Compare to the regular and default GraphQL implementation, you will find the following differences</li>
|
|
27
|
-
<ul>
|
|
28
|
-
<li>
|
|
29
|
-
There are no Pagination and we only use GraphQL <b>once</b> to load the data, then we use the grid as a regular local in-memory
|
|
30
|
-
grid
|
|
31
|
-
</li>
|
|
32
|
-
<li>
|
|
33
|
-
We enabled the following 2 flags "useLocalFiltering" and "useLocalSorting" to use regular (in memory) DataView filtering/sorting
|
|
34
|
-
</li>
|
|
35
|
-
</ul>
|
|
36
|
-
<li>
|
|
37
|
-
NOTE - This Example calls multiple GraphQL queries, this is <b>ONLY</b> for demo purposes, you would typically only call 1 query
|
|
38
|
-
(which is what GraphQL is good at)
|
|
39
|
-
</li>
|
|
40
|
-
<li>
|
|
41
|
-
This example is mainly to demo the use of GraphqlService to build the query and retrieve the data but also to demo how to mix that
|
|
42
|
-
with local (in-memory) Filtering/Sorting strategies
|
|
43
|
-
</li>
|
|
44
|
-
</ul>
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
<div class="row">
|
|
49
|
-
<div class="col-xs-6 col-sm-3">
|
|
50
|
-
<div [class]="status.class" role="alert" data-test="status">
|
|
51
|
-
<strong>Status: </strong> {{ status.text }}
|
|
52
|
-
<span [hidden]="!processing">
|
|
53
|
-
<i class="mdi mdi-sync mdi-spin-1s"></i>
|
|
54
|
-
</span>
|
|
55
|
-
</div>
|
|
56
|
-
</div>
|
|
57
|
-
</div>
|
|
58
|
-
|
|
59
|
-
<angular-slickgrid gridId="grid25" [columns]="columnDefinitions" [options]="gridOptions" [dataset]="dataset"> </angular-slickgrid>
|
|
60
|
-
</div>
|
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { GraphqlService, GraphqlResult, GraphqlServiceApi } from '@slickgrid-universal/graphql';
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
AngularGridInstance,
|
|
7
|
-
Column,
|
|
8
|
-
Filters,
|
|
9
|
-
Formatters,
|
|
10
|
-
GridOption,
|
|
11
|
-
Metrics,
|
|
12
|
-
type MultipleSelectOption,
|
|
13
|
-
OperatorType,
|
|
14
|
-
} from '../../library';
|
|
15
|
-
import { Observable } from 'rxjs';
|
|
16
|
-
|
|
17
|
-
const COUNTRIES_API = 'https://countries.trevorblades.com/';
|
|
18
|
-
|
|
19
|
-
export interface Country {
|
|
20
|
-
countryCode: string;
|
|
21
|
-
countryName: string;
|
|
22
|
-
countryNative: string;
|
|
23
|
-
countryPhone: number;
|
|
24
|
-
countryCurrency: string;
|
|
25
|
-
countryEmoji: string;
|
|
26
|
-
continentCode: string;
|
|
27
|
-
continentName: string;
|
|
28
|
-
languageCode: string;
|
|
29
|
-
languageName: string;
|
|
30
|
-
languageNative: string;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@Component({
|
|
34
|
-
templateUrl: './example25.component.html',
|
|
35
|
-
styleUrls: ['./example25.component.scss'],
|
|
36
|
-
encapsulation: ViewEncapsulation.None,
|
|
37
|
-
standalone: false,
|
|
38
|
-
})
|
|
39
|
-
export class Example25Component implements OnInit {
|
|
40
|
-
angularGrid!: AngularGridInstance;
|
|
41
|
-
columnDefinitions!: Column[];
|
|
42
|
-
gridOptions!: GridOption;
|
|
43
|
-
dataset = [];
|
|
44
|
-
metrics!: Metrics;
|
|
45
|
-
|
|
46
|
-
graphqlQuery = '';
|
|
47
|
-
processing = true;
|
|
48
|
-
status = { text: 'processing...', class: 'alert alert-danger' };
|
|
49
|
-
isDataLoaded = false;
|
|
50
|
-
|
|
51
|
-
constructor(private http: HttpClient) {}
|
|
52
|
-
|
|
53
|
-
ngOnInit(): void {
|
|
54
|
-
this.columnDefinitions = [
|
|
55
|
-
{ id: 'countryCode', field: 'code', name: 'Code', maxWidth: 90, sortable: true, filterable: true, columnGroup: 'Country' },
|
|
56
|
-
{ id: 'countryName', field: 'name', name: 'Name', width: 60, sortable: true, filterable: true, columnGroup: 'Country' },
|
|
57
|
-
{ id: 'countryNative', field: 'native', name: 'Native', width: 60, sortable: true, filterable: true, columnGroup: 'Country' },
|
|
58
|
-
{
|
|
59
|
-
id: 'countryPhone',
|
|
60
|
-
field: 'phone',
|
|
61
|
-
name: 'Phone Area Code',
|
|
62
|
-
maxWidth: 110,
|
|
63
|
-
sortable: true,
|
|
64
|
-
filterable: true,
|
|
65
|
-
columnGroup: 'Country',
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
id: 'countryCurrency',
|
|
69
|
-
field: 'currency',
|
|
70
|
-
name: 'Currency',
|
|
71
|
-
maxWidth: 90,
|
|
72
|
-
sortable: true,
|
|
73
|
-
filterable: true,
|
|
74
|
-
columnGroup: 'Country',
|
|
75
|
-
},
|
|
76
|
-
{ id: 'countryEmoji', field: 'emoji', name: 'Emoji', maxWidth: 90, sortable: true, columnGroup: 'Country' },
|
|
77
|
-
{
|
|
78
|
-
id: 'languageName',
|
|
79
|
-
field: 'languages.name',
|
|
80
|
-
name: 'Names',
|
|
81
|
-
width: 60,
|
|
82
|
-
formatter: Formatters.arrayObjectToCsv,
|
|
83
|
-
columnGroup: 'Language',
|
|
84
|
-
params: { propertyNames: ['name'], useFormatterOuputToFilter: true },
|
|
85
|
-
filterable: true,
|
|
86
|
-
// this Filter is a bit more tricky than others since the values are an array of objects
|
|
87
|
-
// what we can do is use the Formatter to search from the CSV string coming from the Formatter (with "useFormatterOuputToFilter: true")
|
|
88
|
-
// we also need to use the Operator IN_CONTAINS
|
|
89
|
-
filter: {
|
|
90
|
-
model: Filters.multipleSelect,
|
|
91
|
-
collectionAsync: this.getLanguages(),
|
|
92
|
-
operator: OperatorType.inContains,
|
|
93
|
-
collectionOptions: {
|
|
94
|
-
addBlankEntry: true,
|
|
95
|
-
// the data is not at the root of the array, so we must tell the Select Filter where to pull the data
|
|
96
|
-
collectionInsideObjectProperty: 'data.languages',
|
|
97
|
-
},
|
|
98
|
-
collectionFilterBy: [
|
|
99
|
-
// filter out any empty values
|
|
100
|
-
{ property: 'name', value: '', operator: 'NE' },
|
|
101
|
-
{ property: 'name', value: null, operator: 'NE' },
|
|
102
|
-
],
|
|
103
|
-
collectionSortBy: { property: 'name' },
|
|
104
|
-
customStructure: { value: 'name', label: 'name' },
|
|
105
|
-
options: { filter: true } as MultipleSelectOption,
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
id: 'languageNative',
|
|
110
|
-
field: 'languages.native',
|
|
111
|
-
name: 'Native',
|
|
112
|
-
width: 60,
|
|
113
|
-
formatter: Formatters.arrayObjectToCsv,
|
|
114
|
-
params: { propertyNames: ['native'], useFormatterOuputToFilter: true },
|
|
115
|
-
columnGroup: 'Language',
|
|
116
|
-
filterable: true,
|
|
117
|
-
filter: {
|
|
118
|
-
model: Filters.multipleSelect,
|
|
119
|
-
collectionAsync: this.getLanguages(),
|
|
120
|
-
operator: OperatorType.inContains,
|
|
121
|
-
collectionOptions: {
|
|
122
|
-
addBlankEntry: true,
|
|
123
|
-
// the data is not at the root of the array, so we must tell the Select Filter where to pull the data
|
|
124
|
-
collectionInsideObjectProperty: 'data.languages',
|
|
125
|
-
},
|
|
126
|
-
collectionFilterBy: [
|
|
127
|
-
// filter out any empty values
|
|
128
|
-
{ property: 'native', value: '', operator: 'NE' },
|
|
129
|
-
{ property: 'native', value: null, operator: 'NE' },
|
|
130
|
-
],
|
|
131
|
-
collectionSortBy: { property: 'native' },
|
|
132
|
-
customStructure: { value: 'native', label: 'native' },
|
|
133
|
-
options: { filter: true } as MultipleSelectOption,
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
id: 'languageCode',
|
|
138
|
-
field: 'languages.code',
|
|
139
|
-
name: 'Codes',
|
|
140
|
-
maxWidth: 100,
|
|
141
|
-
formatter: Formatters.arrayObjectToCsv,
|
|
142
|
-
params: { propertyNames: ['code'], useFormatterOuputToFilter: true },
|
|
143
|
-
columnGroup: 'Language',
|
|
144
|
-
filterable: true,
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
id: 'continentName',
|
|
148
|
-
field: 'continent.name',
|
|
149
|
-
name: 'Name',
|
|
150
|
-
width: 60,
|
|
151
|
-
sortable: true,
|
|
152
|
-
filterable: true,
|
|
153
|
-
formatter: Formatters.complexObject,
|
|
154
|
-
columnGroup: 'Continent',
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
id: 'continentCode',
|
|
158
|
-
field: 'continent.code',
|
|
159
|
-
name: 'Code',
|
|
160
|
-
maxWidth: 90,
|
|
161
|
-
sortable: true,
|
|
162
|
-
filterable: true,
|
|
163
|
-
filter: {
|
|
164
|
-
model: Filters.singleSelect,
|
|
165
|
-
collectionAsync: this.getContinents(),
|
|
166
|
-
collectionOptions: {
|
|
167
|
-
// the data is not at the root of the array, so we must tell the Select Filter where to pull the data
|
|
168
|
-
collectionInsideObjectProperty: 'data.continents',
|
|
169
|
-
addBlankEntry: true,
|
|
170
|
-
separatorBetweenTextLabels: ': ',
|
|
171
|
-
},
|
|
172
|
-
customStructure: {
|
|
173
|
-
value: 'code',
|
|
174
|
-
label: 'code',
|
|
175
|
-
labelSuffix: 'name',
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
formatter: Formatters.complexObject,
|
|
179
|
-
columnGroup: 'Continent',
|
|
180
|
-
},
|
|
181
|
-
];
|
|
182
|
-
|
|
183
|
-
this.gridOptions = {
|
|
184
|
-
autoResize: {
|
|
185
|
-
container: '#demo-container',
|
|
186
|
-
rightPadding: 10,
|
|
187
|
-
},
|
|
188
|
-
enableFiltering: true,
|
|
189
|
-
enableCellNavigation: true,
|
|
190
|
-
enablePagination: false,
|
|
191
|
-
createPreHeaderPanel: true,
|
|
192
|
-
showPreHeaderPanel: true,
|
|
193
|
-
preHeaderPanelHeight: 28,
|
|
194
|
-
datasetIdPropertyName: 'code',
|
|
195
|
-
showCustomFooter: true, // display some metrics in the bottom custom footer
|
|
196
|
-
backendServiceApi: {
|
|
197
|
-
// use the GraphQL Service to build the query but use local (in memory) Filtering/Sorting strategies
|
|
198
|
-
// the useLocalFiltering/useLocalSorting flags can be enabled independently
|
|
199
|
-
service: new GraphqlService(),
|
|
200
|
-
useLocalFiltering: true,
|
|
201
|
-
useLocalSorting: true,
|
|
202
|
-
|
|
203
|
-
options: {
|
|
204
|
-
datasetName: 'countries', // the only REQUIRED property
|
|
205
|
-
},
|
|
206
|
-
// you can define the onInit callback OR enable the "executeProcessCommandOnInit" flag in the service init
|
|
207
|
-
preProcess: () => (!this.isDataLoaded ? this.displaySpinner(true) : ''),
|
|
208
|
-
process: (query: string) => this.getCountries(query),
|
|
209
|
-
postProcess: (result: GraphqlResult<Country>) => {
|
|
210
|
-
this.metrics = result.metrics as Metrics;
|
|
211
|
-
this.displaySpinner(false);
|
|
212
|
-
this.isDataLoaded = true;
|
|
213
|
-
},
|
|
214
|
-
} as GraphqlServiceApi,
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
displaySpinner(isProcessing: boolean) {
|
|
219
|
-
this.processing = isProcessing;
|
|
220
|
-
this.status = isProcessing
|
|
221
|
-
? { text: 'processing...', class: 'alert alert-danger' }
|
|
222
|
-
: { text: 'finished', class: 'alert alert-success' };
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
// --
|
|
226
|
-
// NOTE - Demo Code ONLY
|
|
227
|
-
// This Example calls multiple GraphQL queries, this is ONLY for demo purposes, you would typically only call 1 query (which is what GraphQL is good at)
|
|
228
|
-
// This demo is mainly to show the use of GraphqlService to build the query and retrieve the data but also to show how to mix that with usage of local Filtering/Sorting strategies
|
|
229
|
-
// --
|
|
230
|
-
|
|
231
|
-
/** Calling the GraphQL backend API to get the Countries with the Query created by the "process" method of GraphqlService */
|
|
232
|
-
getCountries(query: string): Observable<GraphqlResult<Country>> {
|
|
233
|
-
return this.http.post<GraphqlResult<Country>>(COUNTRIES_API, { query });
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* Calling again the GraphQL backend API, however in this case we cannot use the GraphQL Service to build the query
|
|
238
|
-
* So we will have to write, by hand, the query to get the continents code & name
|
|
239
|
-
* We also need to resolve the data in a flat array (singleSelect/multipleSelect Filters only accept data at the root of the array)
|
|
240
|
-
*/
|
|
241
|
-
getContinents(): Observable<GraphqlResult<{ code: string; name: string }>> {
|
|
242
|
-
const continentQuery = `query { continents { code, name }}`;
|
|
243
|
-
return this.http.post<GraphqlResult<{ code: string; name: string }>>(COUNTRIES_API, { query: continentQuery });
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* Calling again the GraphQL backend API, however in this case we cannot use the GraphQL Service to build the query
|
|
248
|
-
* So we will have to write, by hand, the query to get the languages code & name
|
|
249
|
-
* We also need to resolve the data in a flat array (singleSelect/multipleSelect Filters only accept data at the root of the array)
|
|
250
|
-
*/
|
|
251
|
-
getLanguages(): Observable<GraphqlResult<{ code: string; name: string; native: string }>> {
|
|
252
|
-
const languageQuery = `query { languages { code, name, native }}`;
|
|
253
|
-
return this.http.post<GraphqlResult<{ code: string; name: string; native: string }>>(COUNTRIES_API, { query: languageQuery });
|
|
254
|
-
}
|
|
255
|
-
}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
<div id="demo-container" class="container-fluid">
|
|
2
|
-
<h2>
|
|
3
|
-
Example 26: Use of Angular Components
|
|
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-angular.component.ts"
|
|
9
|
-
>
|
|
10
|
-
<span class="mdi mdi-link-variant"></span> code
|
|
11
|
-
</a>
|
|
12
|
-
</span>
|
|
13
|
-
</h2>
|
|
14
|
-
<div class="subtitle">
|
|
15
|
-
<h3>Filters, Editors, AsyncPostRender with Angular Components</h3>
|
|
16
|
-
Grid with usage of Angular Components as Editor & AsyncPostRender (similar to Formatter).
|
|
17
|
-
<ul>
|
|
18
|
-
<li>Support of Angular Component as Custom Editor (click on any "Assignee" name cell)</li>
|
|
19
|
-
<ul>
|
|
20
|
-
<li>
|
|
21
|
-
That column uses <a href="https://github.com/ng-select/ng-select" target="_blank">ng-select</a> as a custom editor as an Angular
|
|
22
|
-
Component
|
|
23
|
-
</li>
|
|
24
|
-
<li>
|
|
25
|
-
Increased Grid Options "rowHeight" & "headerRowHeight" to 45 so that the "ng-select" fits in the cell. Ideally it would be
|
|
26
|
-
better to override the ng-select css styling to change it's max height
|
|
27
|
-
</li>
|
|
28
|
-
</ul>
|
|
29
|
-
<li>Support of Angular Component as Custom Filter ("Assignee" columns), which also uses "ng-select"</li>
|
|
30
|
-
<li>The 2nd "Assignee" column (showing in bold text) uses "asyncPostRender" with an Angular Component</li>
|
|
31
|
-
<ul>
|
|
32
|
-
<li>Why can't we use Angular Component as Customer Formatter and why do I see a slight delay in loading the data?</li>
|
|
33
|
-
<li>
|
|
34
|
-
It's totally normal since SlickGrid Formatters only accept strings (synchronously), so we cannot use that (Angular requires at
|
|
35
|
-
least 1 full cycle to render the element), so we are left with SlickGrid "asyncPostRender" and it works but as the name suggest
|
|
36
|
-
it's async users might see noticeable delay in loading the data
|
|
37
|
-
</li>
|
|
38
|
-
</ul>
|
|
39
|
-
<li>
|
|
40
|
-
The 2nd "Title" showing an interactive component, which is not destroyed after first rendering but stays active. Click on the button
|
|
41
|
-
to see the title alerted
|
|
42
|
-
</li>
|
|
43
|
-
</ul>
|
|
44
|
-
</div>
|
|
45
|
-
|
|
46
|
-
<div class="col-sm-6">
|
|
47
|
-
<label>autoEdit setting: </label>
|
|
48
|
-
<span id="radioAutoEdit">
|
|
49
|
-
<label class="radio-inline control-label" for="radioTrue">
|
|
50
|
-
<input type="radio" name="inlineRadioOptions" id="radioTrue" checked [value]="isAutoEdit" (change)="setAutoEdit(true)" /> ON
|
|
51
|
-
(single-click)
|
|
52
|
-
</label>
|
|
53
|
-
<label class="radio-inline control-label" for="radioFalse">
|
|
54
|
-
<input type="radio" name="inlineRadioOptions" id="radioFalse" [value]="isAutoEdit" (change)="setAutoEdit(false)" /> OFF
|
|
55
|
-
(double-click)
|
|
56
|
-
</label>
|
|
57
|
-
</span>
|
|
58
|
-
<div class="row col-sm-12">
|
|
59
|
-
<span>
|
|
60
|
-
<button class="btn btn-outline-secondary btn-sm btn-icon" (click)="undo()">
|
|
61
|
-
<i class="mdi mdi-undo"></i>
|
|
62
|
-
Undo last edit(s)
|
|
63
|
-
</button>
|
|
64
|
-
<button class="btn btn-outline-secondary btn-sm btn-icon" (click)="angularGrid.filterService.clearFilters()">Clear Filters</button>
|
|
65
|
-
<button class="btn btn-outline-secondary btn-sm btn-icon" (click)="angularGrid.sortService.clearSorting()">Clear Sorting</button>
|
|
66
|
-
<label class="checkbox-inline control-label" for="autoCommitEdit">
|
|
67
|
-
<input
|
|
68
|
-
type="checkbox"
|
|
69
|
-
id="autoCommitEdit"
|
|
70
|
-
data-test="auto-commit"
|
|
71
|
-
[checked]="gridOptions.autoCommitEdit"
|
|
72
|
-
(click)="changeAutoCommit()"
|
|
73
|
-
/>
|
|
74
|
-
Auto Commit Edit
|
|
75
|
-
</label>
|
|
76
|
-
</span>
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
79
|
-
|
|
80
|
-
<div class="col-sm-6">
|
|
81
|
-
<div class="alert alert-info" *ngIf="updatedObject"><strong>Updated Item:</strong> {{ updatedObject | json }}</div>
|
|
82
|
-
<div class="alert alert-warning" *ngIf="alertWarning"><strong>Updated Item:</strong> {{ alertWarning }}</div>
|
|
83
|
-
</div>
|
|
84
|
-
|
|
85
|
-
<div class="col-sm-12">
|
|
86
|
-
<angular-slickgrid
|
|
87
|
-
gridId="grid26"
|
|
88
|
-
[columns]="columnDefinitions"
|
|
89
|
-
[options]="gridOptions"
|
|
90
|
-
[dataset]="dataset"
|
|
91
|
-
(onAngularGridCreated)="angularGridReady($event.detail)"
|
|
92
|
-
(onCellChange)="onCellChanged($event.detail.eventData, $event.detail.args)"
|
|
93
|
-
(onClick)="onCellClicked($event.detail.eventData, $event.detail.args)"
|
|
94
|
-
(onValidationError)="onCellValidationError($event.detail.eventData, $event.detail.args)"
|
|
95
|
-
>
|
|
96
|
-
</angular-slickgrid>
|
|
97
|
-
</div>
|
|
98
|
-
</div>
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
h3 {
|
|
2
|
-
font-style: normal;
|
|
3
|
-
color: #3d3d3d;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
#slickGridContainer-grid22 {
|
|
7
|
-
/* you can change all filters heights via CSS variable */
|
|
8
|
-
--slick-header-input-height: 34px;
|
|
9
|
-
|
|
10
|
-
.slickgrid-container {
|
|
11
|
-
.slick-headerrow-column {
|
|
12
|
-
.ng-input {
|
|
13
|
-
input {
|
|
14
|
-
height: 100%;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.ng-select-focused {
|
|
22
|
-
box-shadow: 0 0 0 0.25rem #0d6efd40;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.cell-menu-dropdown {
|
|
26
|
-
border: 1px solid #a3a3a3;
|
|
27
|
-
border-radius: 5px;
|
|
28
|
-
display: flex;
|
|
29
|
-
align-items: center;
|
|
30
|
-
height: 100%;
|
|
31
|
-
width: max-content;
|
|
32
|
-
padding: 0 14px;
|
|
33
|
-
cursor: pointer;
|
|
34
|
-
&:hover {
|
|
35
|
-
background-color: #a3a3a3;
|
|
36
|
-
color: #ffffff;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.mdi-chevron-down {
|
|
40
|
-
margin-left: 5px;
|
|
41
|
-
}
|
|
42
|
-
}
|