@genesislcap/grid-pro 14.275.3 → 14.276.0-FUI-2337.4
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/README.md +428 -15
- package/dist/custom-elements.json +1306 -141
- package/dist/dts/datasource/base.datasource.d.ts +38 -1
- package/dist/dts/datasource/base.datasource.d.ts.map +1 -1
- package/dist/dts/datasource/index.d.ts +1 -0
- package/dist/dts/datasource/index.d.ts.map +1 -1
- package/dist/dts/datasource/server-side.datasource.d.ts +6 -5
- package/dist/dts/datasource/server-side.datasource.d.ts.map +1 -1
- package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts +34 -12
- package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts.map +1 -1
- package/dist/dts/grid-pro.d.ts +65 -16
- package/dist/dts/grid-pro.d.ts.map +1 -1
- package/dist/dts/grid-pro.styles.d.ts.map +1 -1
- package/dist/dts/grid-pro.types.d.ts +91 -0
- package/dist/dts/grid-pro.types.d.ts.map +1 -1
- package/dist/dts/index.d.ts +1 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/status-bar-components/index.d.ts +5 -0
- package/dist/dts/status-bar-components/index.d.ts.map +1 -0
- package/dist/dts/status-bar-components/label-value.status-bar.d.ts +21 -0
- package/dist/dts/status-bar-components/label-value.status-bar.d.ts.map +1 -0
- package/dist/dts/status-bar-components/load-more.status-bar.d.ts +43 -0
- package/dist/dts/status-bar-components/load-more.status-bar.d.ts.map +1 -0
- package/dist/dts/status-bar-components/pagination.status-bar.d.ts +32 -0
- package/dist/dts/status-bar-components/pagination.status-bar.d.ts.map +1 -0
- package/dist/dts/status-bar-components/reload.status-bar.d.ts +36 -0
- package/dist/dts/status-bar-components/reload.status-bar.d.ts.map +1 -0
- package/dist/esm/datasource/base.datasource.js +124 -7
- package/dist/esm/datasource/index.js +1 -0
- package/dist/esm/datasource/server-side.datasource.js +9 -9
- package/dist/esm/grid-pro-genesis-datasource/grid-pro-genesis-datasource.js +111 -34
- package/dist/esm/grid-pro.js +116 -2
- package/dist/esm/grid-pro.styles.js +10 -0
- package/dist/esm/grid-pro.types.js +28 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/status-bar-components/index.js +4 -0
- package/dist/esm/status-bar-components/label-value.status-bar.js +33 -0
- package/dist/esm/status-bar-components/load-more.status-bar.js +209 -0
- package/dist/esm/status-bar-components/pagination.status-bar.js +206 -0
- package/dist/esm/status-bar-components/reload.status-bar.js +162 -0
- package/dist/grid-pro.api.json +6872 -3339
- package/dist/grid-pro.d.ts +384 -32
- package/docs/api/grid-pro.criteriadelimiter.md +13 -0
- package/docs/api/grid-pro.criteriajoin.md +13 -0
- package/docs/api/grid-pro.default_status_bar_config.md +13 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.aggrid.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.connect.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.criteria.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.criteriafromfilters.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.datasource.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.datasourceoptions.md +15 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.datasourcestatuschanged.md +23 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.defaultrowidbyresourcetype.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.deferredcolumnstates.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.deferredgridoptions.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.disablepolling.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.fields.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.isrequestserver.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.issnapshot.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.maxrows.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.maxview.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.md +55 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.movingview.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.orderby.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.pollinginterval.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.removefilter.md +22 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.request.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.requestautosetup.md +18 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.resourcename.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.reverse.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.rowdatamapper.md +13 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.rowid.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.rowidattr.md +15 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.setfilter.md +23 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.update.md +11 -0
- package/docs/api/grid-pro.genesisgriddatasourceelement.viewnumber.md +11 -0
- package/docs/api/grid-pro.gridpro.clearlocalgridoptions.md +17 -0
- package/docs/api/grid-pro.gridpro.gridprodatasource.md +2 -2
- package/docs/api/grid-pro.gridpro.md +8 -2
- package/docs/api/grid-pro.gridpro.pagination.md +18 -0
- package/docs/api/grid-pro.gridpro.paginationpagesize.md +18 -0
- package/docs/api/grid-pro.gridpro.persistcolumnstatekey.md +1 -1
- package/docs/api/grid-pro.gridpro.setuppaginationandstatusbar.md +22 -0
- package/docs/api/grid-pro.gridpro.statusbarconfig.md +18 -0
- package/docs/api/grid-pro.gridpro.withstatusbar.md +18 -0
- package/docs/api/grid-pro.gridprobasedatasource.agtransaction.md +11 -0
- package/docs/api/grid-pro.gridprobasedatasource.applyallagtransactions.md +15 -0
- package/docs/api/grid-pro.gridprobasedatasource.applyasyncfuncname.md +11 -0
- package/docs/api/grid-pro.gridprobasedatasource.applyfuncname.md +11 -0
- package/docs/api/grid-pro.gridprobasedatasource.applytransaction.md +22 -0
- package/docs/api/grid-pro.gridprobasedatasource.applytransactionasync.md +23 -0
- package/docs/api/grid-pro.gridprobasedatasource.datasubwasloggedoff.md +11 -0
- package/docs/api/grid-pro.gridprobasedatasource.destroy.md +15 -0
- package/docs/api/grid-pro.gridprobasedatasource.generatecolumndefsfrommetadata.md +23 -0
- package/docs/api/grid-pro.gridprobasedatasource.getdatasourcestatusbarpanels.md +24 -0
- package/docs/api/grid-pro.gridprobasedatasource.handlestreamdeletes.md +22 -0
- package/docs/api/grid-pro.gridprobasedatasource.handlestreaminserts.md +23 -0
- package/docs/api/grid-pro.gridprobasedatasource.handlestreamupdates.md +22 -0
- package/docs/api/grid-pro.gridprobasedatasource.loadmore.md +15 -0
- package/docs/api/grid-pro.gridprobasedatasource.md +42 -0
- package/docs/api/grid-pro.gridprobasedatasource.pagination.md +11 -0
- package/docs/api/grid-pro.gridprobasedatasource.reloadresourcedata.md +15 -0
- package/docs/api/grid-pro.gridprobasedatasource.restart.md +15 -0
- package/docs/api/grid-pro.gridprobasedatasource.rowdata.md +11 -0
- package/docs/api/grid-pro.gridprogenesisdatasource.handlestreamdeletes.md +24 -0
- package/docs/api/grid-pro.gridprogenesisdatasource.handlestreaminserts.md +22 -0
- package/docs/api/grid-pro.gridprogenesisdatasource.handlestreamupdates.md +22 -0
- package/docs/api/grid-pro.gridprogenesisdatasource.loadmore.md +15 -0
- package/docs/api/grid-pro.gridprogenesisdatasource.md +6 -1
- package/docs/api/grid-pro.gridprogenesisdatasource.reloadresourcedata.md +21 -0
- package/docs/api/grid-pro.gridprogenesisdatasource.restart.md +3 -3
- package/docs/api/grid-pro.gridprostatusbarconfig.loadmore.md +18 -0
- package/docs/api/grid-pro.gridprostatusbarconfig.maxrows.md +18 -0
- package/docs/api/grid-pro.gridprostatusbarconfig.md +27 -0
- package/docs/api/grid-pro.gridprostatusbarconfig.reload.md +18 -0
- package/docs/api/grid-pro.gridprostatusbarconfig.rows.md +18 -0
- package/docs/api/grid-pro.gridprostatusbarloadmoreconfig.appearance.md +18 -0
- package/docs/api/grid-pro.gridprostatusbarloadmoreconfig.md +22 -0
- package/docs/api/grid-pro.gridprostatusbarloadmoreconfig.onloadmore.md +13 -0
- package/docs/api/grid-pro.gridprostatusbarloadmoreconfig.tooltip.md +18 -0
- package/docs/api/grid-pro.gridprostatusbarreloadconfig.icon.md +18 -0
- package/docs/api/grid-pro.gridprostatusbarreloadconfig.md +22 -0
- package/docs/api/grid-pro.gridprostatusbarreloadconfig.onreload.md +13 -0
- package/docs/api/grid-pro.gridprostatusbarreloadconfig.tooltip.md +18 -0
- package/docs/api/grid-pro.gridprostatusbartypes.md +27 -0
- package/docs/api/grid-pro.labelvaluestatusbarcomponent.destroy.md +15 -0
- package/docs/api/grid-pro.labelvaluestatusbarcomponent.getgui.md +15 -0
- package/docs/api/grid-pro.labelvaluestatusbarcomponent.init.md +22 -0
- package/docs/api/grid-pro.labelvaluestatusbarcomponent.md +23 -0
- package/docs/api/grid-pro.labelvaluestatusbarparams.md +17 -0
- package/docs/api/grid-pro.loadmorestatusbarcomponent.destroy.md +15 -0
- package/docs/api/grid-pro.loadmorestatusbarcomponent.getgui.md +15 -0
- package/docs/api/grid-pro.loadmorestatusbarcomponent.init.md +22 -0
- package/docs/api/grid-pro.loadmorestatusbarcomponent.md +25 -0
- package/docs/api/grid-pro.loadmorestatusbarcomponent.updatebuttonvisibility.md +15 -0
- package/docs/api/grid-pro.loadmorestatusbarcomponent.updateparams.md +22 -0
- package/docs/api/grid-pro.loadmorestatusbarparams.md +18 -0
- package/docs/api/grid-pro.md +16 -0
- package/docs/api/grid-pro.paginationstatusbarcomponent.destroy.md +15 -0
- package/docs/api/grid-pro.paginationstatusbarcomponent.getgui.md +15 -0
- package/docs/api/grid-pro.paginationstatusbarcomponent.init.md +22 -0
- package/docs/api/grid-pro.paginationstatusbarcomponent.md +23 -0
- package/docs/api/grid-pro.reloadstatusbarcomponent.destroy.md +15 -0
- package/docs/api/grid-pro.reloadstatusbarcomponent.getgui.md +15 -0
- package/docs/api/grid-pro.reloadstatusbarcomponent.init.md +22 -0
- package/docs/api/grid-pro.reloadstatusbarcomponent.md +24 -0
- package/docs/api/grid-pro.reloadstatusbarcomponent.updateparams.md +22 -0
- package/docs/api/grid-pro.reloadstatusbarparams.md +17 -0
- package/docs/api-report.md +256 -6
- package/package.json +13 -13
package/README.md
CHANGED
|
@@ -268,7 +268,7 @@ export class ConnectedGridServerSideExample extends GenesisElement {}
|
|
|
268
268
|
|
|
269
269
|
This folder contains implementations of Genesis `datasource` components, responsible for fetching data for Genesis [Grid Pro](../../README.md) components.
|
|
270
270
|
|
|
271
|
-
This document outlines the available features of our two
|
|
271
|
+
This document outlines the available features of our two "Grid Pro" datasources: `<grid-pro-client-side-datasource>` and `<grid-pro-server-side-datasource>`.
|
|
272
272
|
|
|
273
273
|
## \<grid-pro-client-side-datasource\>
|
|
274
274
|
|
|
@@ -276,7 +276,7 @@ This document outlines the available features of our two “Grid Pro” datasour
|
|
|
276
276
|
|
|
277
277
|
- **Sorting**: Order by any column, ASC or DESC.
|
|
278
278
|
- **Filtering**:
|
|
279
|
-
- Filtering options are automatically generated, based on the resource
|
|
279
|
+
- Filtering options are automatically generated, based on the resource's metadata.
|
|
280
280
|
- String Filters:
|
|
281
281
|
- contains
|
|
282
282
|
- not contains
|
|
@@ -308,11 +308,11 @@ This document outlines the available features of our two “Grid Pro” datasour
|
|
|
308
308
|
### Server-Side Features
|
|
309
309
|
|
|
310
310
|
- **Sorting**: Order by any INDEX column/field, ASC or DESC.
|
|
311
|
-
- This is a server limitation. For each column that needs to have
|
|
312
|
-
- By default, sorting is disabled on ALL columns… BUT if we detect valid
|
|
313
|
-
- If the user attempts to force `sortable` we
|
|
311
|
+
- This is a server limitation. For each column that needs to have "sorting" the developer will need to have an INDEX for it. See more about [Genesis database indexes](https://learn.genesis.global/docs/database/data-types/index-entities/).
|
|
312
|
+
- By default, sorting is disabled on ALL columns… BUT if we detect valid '` indexes" from the metadata those column/fields will be setup to have sorting.
|
|
313
|
+
- If the user attempts to force `sortable` we'll check if it's really ok to do that + warn in the logs about it + try to mention other available indexes.. if any at all.
|
|
314
314
|
- **Filtering**:
|
|
315
|
-
- Filtering options are automatically generated, based on the resource
|
|
315
|
+
- Filtering options are automatically generated, based on the resource's metadata.
|
|
316
316
|
- String filters
|
|
317
317
|
- blank
|
|
318
318
|
- contains
|
|
@@ -344,21 +344,21 @@ This document outlines the available features of our two “Grid Pro” datasour
|
|
|
344
344
|
- Operations like sorting and filtering are pushed to the backend.
|
|
345
345
|
- Filtering uses `CRITERIA_MATCH` param
|
|
346
346
|
- Sorting uses `ORDERY_BY` param
|
|
347
|
-
- Both work the same way, once filtering/sorting is applied the datasource component
|
|
347
|
+
- Both work the same way, once filtering/sorting is applied the datasource component "resets itself", basically starting a new stream with the updated params.
|
|
348
348
|
- **LIMITATIONS**
|
|
349
|
-
- Sorting can only be applied to
|
|
350
|
-
- ROWS_COUNT doesn
|
|
349
|
+
- Sorting can only be applied to "index" fields/columns. Also mentioned [here](https://www.notion.so/Grid-Pro-Datasource-Inventory-d11ca7570ee94847bbcb3e7362025b0a?pvs=21). More details [here](https://genesisglobal.atlassian.net/jira/polaris/projects/GPR/ideas/view/4721227?selectedIssue=GPR-171&focusedCommentId=143757) and [here](https://genesis-global-talk.slack.com/archives/C0416MFG360/p1696456988606789).
|
|
350
|
+
- ROWS_COUNT doesn't reflect the correct amount when a CRITERIA_MATCH (filtering) is applied. Example: X resource has 100 records. A criteria is specified so it returns only 50 records… the rows count sent from the server is still 100. Because of that we have to manually/locally calculate that.
|
|
351
351
|
- Suitable for large datasets where only a subset of data is loaded into the client based on user interactions.
|
|
352
352
|
|
|
353
353
|
---
|
|
354
354
|
|
|
355
355
|
## Supported Row Models
|
|
356
356
|
|
|
357
|
-
We support all of the AG
|
|
357
|
+
We support all of the AG's Row Models. More on [JavaScript Grid: Row Models | AG Grid (ag-grid.com)](https://www.ag-grid.com/javascript-data-grid/row-models/).
|
|
358
358
|
|
|
359
|
-
In the table below you can find a complete
|
|
359
|
+
In the table below you can find a complete "feature list" of all the possibilities of client/server-side row models (and others too.. that can be manually enabled/integrated but we don't expose any components for those yet).
|
|
360
360
|
|
|
361
|
-
It
|
|
361
|
+
It's important to note that any client app can implement the other Row Models to their own needs. Our Grid Pro component is not tied to the datasource, it's the opossite.. so datasources can be as specialized/customized as possible.
|
|
362
362
|
|
|
363
363
|
`Infinite` and `Viewport` row models are also supported but not offered "out of the box" (devs will have to create their own component).
|
|
364
364
|
|
|
@@ -406,7 +406,7 @@ It’s important to note that any client app can implement the other Row Models
|
|
|
406
406
|
|
|
407
407
|
### DOM Virtualisation
|
|
408
408
|
|
|
409
|
-
DOM Virtualisation is a powerful technique that enhances the performance of grid components by only rendering the rows and columns that are currently visible in the viewport. This approach significantly reduces the memory footprint and improves the rendering speed, enabling all of our
|
|
409
|
+
DOM Virtualisation is a powerful technique that enhances the performance of grid components by only rendering the rows and columns that are currently visible in the viewport. This approach significantly reduces the memory footprint and improves the rendering speed, enabling all of our "grid components" to handle larger datasets more efficiently.
|
|
410
410
|
|
|
411
411
|
- **How It Works**: Instead of rendering all rows and columns, the grid dynamically generates the DOM elements for only the visible part of the dataset. As the user scrolls, rows and columns are created or destroyed on the fly, ensuring a smooth scrolling experience.
|
|
412
412
|
- **Benefits**:
|
|
@@ -416,7 +416,7 @@ DOM Virtualisation is a powerful technique that enhances the performance of grid
|
|
|
416
416
|
|
|
417
417
|
For more details, visit the [AG Grid DOM Virtualisation documentation](https://www.ag-grid.com/javascript-data-grid/dom-virtualisation/) (also available in [Tabulator Virtual DOM](https://tabulator.info/docs/6.2/virtual-dom))
|
|
418
418
|
|
|
419
|
-
### Pagination
|
|
419
|
+
### Pagination Performance
|
|
420
420
|
|
|
421
421
|
Pagination is another effective technique to improve performance in AG Grid by breaking down large datasets into smaller, manageable chunks or pages. This allows the grid to load and render only a subset of data at a time, significantly reducing the load on the client.
|
|
422
422
|
|
|
@@ -428,12 +428,425 @@ Pagination is another effective technique to improve performance in AG Grid by b
|
|
|
428
428
|
|
|
429
429
|
### Combined Approach
|
|
430
430
|
|
|
431
|
-
By leveraging both DOM Virtualisation and Pagination, our
|
|
431
|
+
By leveraging both DOM Virtualisation and Pagination, our "grid components" can efficiently manage and display larger datasets on the client-side. Here's how these techniques work together:
|
|
432
432
|
|
|
433
433
|
- **Initial Load**: Only the data for the first page is loaded, minimizing the initial load time.
|
|
434
434
|
- **Scrolling**: As users scroll, DOM Virtualisation ensures only the visible rows and columns are rendered, maintaining performance.
|
|
435
435
|
- **Page Navigation**: Users can navigate through pages to access the full dataset without overwhelming the client.
|
|
436
436
|
|
|
437
|
+
## Status Bar and Pagination
|
|
438
|
+
|
|
439
|
+
The Grid Pro component supports a comprehensive status bar system at the bottom of the grid, along with flexible pagination options. The status bar can be configured with various panels to display information like row counts, custom content, and action buttons.
|
|
440
|
+
|
|
441
|
+
### Enterprise License Requirement
|
|
442
|
+
|
|
443
|
+
**Important**: Status bar functionality requires the AG Grid Enterprise module to be available. Status bar components will only be displayed if the Enterprise module is properly licensed and configured.
|
|
444
|
+
|
|
445
|
+
### Basic Status Bar Usage
|
|
446
|
+
|
|
447
|
+
The status bar can be enabled using the datasource attributes and configured through the `status-bar-config` attribute:
|
|
448
|
+
|
|
449
|
+
```html
|
|
450
|
+
<rapid-grid-pro>
|
|
451
|
+
<grid-pro-client-side-datasource
|
|
452
|
+
resource-name="ALL_TRADES"
|
|
453
|
+
with-status-bar="true"
|
|
454
|
+
status-bar-config='{"rows": true, "reload": true, "loadMore": true}'
|
|
455
|
+
></grid-pro-client-side-datasource>
|
|
456
|
+
</rapid-grid-pro>
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
### Status Bar Configuration Interface
|
|
460
|
+
|
|
461
|
+
The status bar can be configured using the `GridProStatusBarConfig` interface:
|
|
462
|
+
|
|
463
|
+
```typescript
|
|
464
|
+
interface GridProStatusBarConfig {
|
|
465
|
+
rows?: boolean; // Enable row count component (default: true)
|
|
466
|
+
maxRows?: boolean; // Enable max rows label-value component (default: false)
|
|
467
|
+
loadMore?: boolean | GridProStatusBarLoadMoreConfig; // Enable/configure load more button
|
|
468
|
+
reload?: boolean | GridProStatusBarReloadConfig; // Enable/configure reload button
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
interface GridProStatusBarLoadMoreConfig {
|
|
472
|
+
onLoadMore?: () => void; // Custom callback function
|
|
473
|
+
appearance?: string; // Button appearance: 'accent', 'lightweight', 'neutral', 'outline', 'stealth'
|
|
474
|
+
tooltip?: string; // Custom tooltip text (default: 'Load More')
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
interface GridProStatusBarReloadConfig {
|
|
478
|
+
onReload?: () => void; // Custom callback function
|
|
479
|
+
icon?: string; // Custom icon name (default: 'refresh')
|
|
480
|
+
tooltip?: string; // Custom tooltip text (default: 'Reload')
|
|
481
|
+
}
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### Status Bar Configuration Examples
|
|
485
|
+
|
|
486
|
+
#### Basic Configuration
|
|
487
|
+
|
|
488
|
+
```typescript
|
|
489
|
+
// Simple boolean configuration
|
|
490
|
+
const statusBarConfig = {
|
|
491
|
+
rows: true,
|
|
492
|
+
maxRows: true,
|
|
493
|
+
loadMore: true,
|
|
494
|
+
reload: true
|
|
495
|
+
};
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
#### Advanced Configuration with Custom Callbacks
|
|
499
|
+
|
|
500
|
+
```typescript
|
|
501
|
+
// Advanced configuration with custom callbacks and styling
|
|
502
|
+
const statusBarConfig = {
|
|
503
|
+
rows: true,
|
|
504
|
+
maxRows: false,
|
|
505
|
+
loadMore: {
|
|
506
|
+
onLoadMore: () => {
|
|
507
|
+
console.log('Custom load more logic');
|
|
508
|
+
// Your custom load more implementation
|
|
509
|
+
},
|
|
510
|
+
appearance: 'accent',
|
|
511
|
+
tooltip: 'Load 50 more records from server'
|
|
512
|
+
},
|
|
513
|
+
reload: {
|
|
514
|
+
onReload: () => {
|
|
515
|
+
console.log('Custom reload logic');
|
|
516
|
+
// Your custom reload implementation
|
|
517
|
+
},
|
|
518
|
+
icon: 'refresh',
|
|
519
|
+
tooltip: 'Refresh all data from server'
|
|
520
|
+
}
|
|
521
|
+
};
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
#### TypeScript Usage in Component
|
|
525
|
+
|
|
526
|
+
```typescript
|
|
527
|
+
import { GridProStatusBarConfig } from '@genesislcap/grid-pro';
|
|
528
|
+
|
|
529
|
+
@customElement({
|
|
530
|
+
name: 'my-grid-component',
|
|
531
|
+
template: html`
|
|
532
|
+
<rapid-grid-pro with-status-bar>
|
|
533
|
+
<grid-pro-client-side-datasource
|
|
534
|
+
resource-name="ALL_TRADES"
|
|
535
|
+
:status-bar-config=${(x) => x.statusBarConfig}
|
|
536
|
+
></grid-pro-client-side-datasource>
|
|
537
|
+
</rapid-grid-pro>
|
|
538
|
+
`
|
|
539
|
+
})
|
|
540
|
+
export class MyGridComponent extends GenesisElement {
|
|
541
|
+
@observable statusBarConfig: GridProStatusBarConfig = {
|
|
542
|
+
rows: true,
|
|
543
|
+
maxRows: true,
|
|
544
|
+
loadMore: {
|
|
545
|
+
appearance: 'outline',
|
|
546
|
+
tooltip: 'Load more trades from server'
|
|
547
|
+
},
|
|
548
|
+
reload: {
|
|
549
|
+
tooltip: 'Refresh trade data'
|
|
550
|
+
}
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
### Client-Side vs Server-Side Datasource Differences
|
|
556
|
+
|
|
557
|
+
#### Client-Side Datasource (`<grid-pro-client-side-datasource>`)
|
|
558
|
+
|
|
559
|
+
**Available Status Bar Components:**
|
|
560
|
+
|
|
561
|
+
- **Row Count**: Shows total and filtered row count (`agTotalAndFilteredRowCountComponent`)
|
|
562
|
+
- **Max Rows**: Shows the maximum rows limit
|
|
563
|
+
- **Load More**: Button to load additional rows from server
|
|
564
|
+
- **Reload**: Button to reload/refresh the datasource
|
|
565
|
+
- **Pagination**: Full pagination controls when pagination is enabled
|
|
566
|
+
|
|
567
|
+
**Example:**
|
|
568
|
+
|
|
569
|
+
```html
|
|
570
|
+
<rapid-grid-pro with-status-bar>
|
|
571
|
+
<grid-pro-client-side-datasource
|
|
572
|
+
resource-name="ALL_TRADES"
|
|
573
|
+
status-bar-config='{"rows": true, "maxRows": true, "loadMore": true, "reload": true}'
|
|
574
|
+
></grid-pro-client-side-datasource>
|
|
575
|
+
</rapid-grid-pro>
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
#### Server-Side Datasource (`<grid-pro-server-side-datasource>`)
|
|
579
|
+
|
|
580
|
+
**Available Status Bar Components:**
|
|
581
|
+
|
|
582
|
+
- **Row Count**: Shows total row count only (`agTotalRowCountComponent`)
|
|
583
|
+
- **Max Rows**: Shows the maximum rows limit
|
|
584
|
+
- **Load More**: **NOT AVAILABLE** - Server-side uses infinite scroll or pagination instead
|
|
585
|
+
- **Reload**: Button to reload/refresh the datasource
|
|
586
|
+
- **Pagination**: Full pagination controls when pagination is enabled
|
|
587
|
+
|
|
588
|
+
**Important Notes:**
|
|
589
|
+
|
|
590
|
+
- Load More button is **automatically disabled** for server-side datasources
|
|
591
|
+
- Server-side row model handles data loading through infinite scroll or pagination
|
|
592
|
+
- Row count component shows total rows (not filtered count due to server limitations)
|
|
593
|
+
|
|
594
|
+
**Example:**
|
|
595
|
+
|
|
596
|
+
```html
|
|
597
|
+
<rapid-grid-pro with-status-bar>
|
|
598
|
+
<grid-pro-server-side-datasource
|
|
599
|
+
resource-name="ALL_TRADES"
|
|
600
|
+
status-bar-config='{"rows": true, "maxRows": true, "reload": true}'
|
|
601
|
+
pagination="true"
|
|
602
|
+
></grid-pro-server-side-datasource>
|
|
603
|
+
</rapid-grid-pro>
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
### Pagination
|
|
607
|
+
|
|
608
|
+
#### Basic Pagination Setup
|
|
609
|
+
|
|
610
|
+
```html
|
|
611
|
+
<!-- Client-side pagination -->
|
|
612
|
+
<rapid-grid-pro pagination="true" pagination-page-size="25" with-status-bar="true">
|
|
613
|
+
<grid-pro-client-side-datasource
|
|
614
|
+
resource-name="ALL_TRADES"
|
|
615
|
+
></grid-pro-client-side-datasource>
|
|
616
|
+
</rapid-grid-pro>
|
|
617
|
+
|
|
618
|
+
<!-- Server-side pagination -->
|
|
619
|
+
<rapid-grid-pro pagination="true" with-status-bar="true">
|
|
620
|
+
<grid-pro-server-side-datasource
|
|
621
|
+
resource-name="ALL_TRADES"
|
|
622
|
+
max-rows="50"
|
|
623
|
+
></grid-pro-server-side-datasource>
|
|
624
|
+
</rapid-grid-pro>
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
#### Pagination with Custom Status Bar
|
|
628
|
+
|
|
629
|
+
When pagination is enabled, Grid Pro automatically:
|
|
630
|
+
|
|
631
|
+
- Adds pagination controls to the status bar
|
|
632
|
+
- Suppresses the default AG Grid pagination panel
|
|
633
|
+
- Positions pagination controls on the right side of the status bar
|
|
634
|
+
|
|
635
|
+
```html
|
|
636
|
+
<rapid-grid-pro pagination="true" with-status-bar="true">
|
|
637
|
+
<grid-pro-client-side-datasource
|
|
638
|
+
resource-name="ALL_TRADES"
|
|
639
|
+
status-bar-config='{"rows": true, "reload": true}'
|
|
640
|
+
></grid-pro-client-side-datasource>
|
|
641
|
+
</rapid-grid-pro>
|
|
642
|
+
```
|
|
643
|
+
|
|
644
|
+
**Default Status Bar Layout with Pagination:**
|
|
645
|
+
|
|
646
|
+
- Left: Row count component (`agTotalAndFilteredRowCountComponent` for client-side, `agTotalRowCountComponent` for server-side)
|
|
647
|
+
- Right: Pagination controls with navigation buttons and page information
|
|
648
|
+
|
|
649
|
+
### Built-in AG Grid Status Bar Panels
|
|
650
|
+
|
|
651
|
+
Grid Pro supports all standard AG Grid status bar panels:
|
|
652
|
+
|
|
653
|
+
- `agTotalRowCountComponent`: Displays the total row count
|
|
654
|
+
- `agTotalAndFilteredRowCountComponent`: Displays the total and filtered row count
|
|
655
|
+
- `agFilteredRowCountComponent`: Displays the filtered row count
|
|
656
|
+
- `agSelectedRowCountComponent`: Displays the selected row count
|
|
657
|
+
- `agAggregationComponent`: Displays aggregations for the selected range
|
|
658
|
+
|
|
659
|
+
### Custom Status Bar Components
|
|
660
|
+
|
|
661
|
+
Grid Pro provides several custom status bar components accessible through the `GridProStatusBarTypes` enum:
|
|
662
|
+
|
|
663
|
+
#### LabelValueStatusBarComponent
|
|
664
|
+
|
|
665
|
+
A flexible component that displays a label and value pair:
|
|
666
|
+
|
|
667
|
+
```typescript
|
|
668
|
+
import { GridProStatusBarTypes } from '@genesislcap/grid-pro';
|
|
669
|
+
|
|
670
|
+
// In your grid options:
|
|
671
|
+
statusBar: {
|
|
672
|
+
statusPanels: [
|
|
673
|
+
{
|
|
674
|
+
statusPanel: GridProStatusBarTypes.labelValue,
|
|
675
|
+
statusPanelParams: {
|
|
676
|
+
label: 'Max Rows',
|
|
677
|
+
value: 250,
|
|
678
|
+
hide: false
|
|
679
|
+
},
|
|
680
|
+
align: 'left',
|
|
681
|
+
},
|
|
682
|
+
],
|
|
683
|
+
},
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
#### LoadMoreStatusBarComponent
|
|
687
|
+
|
|
688
|
+
A button component that allows users to load additional rows (client-side only):
|
|
689
|
+
|
|
690
|
+
```typescript
|
|
691
|
+
import { GridProStatusBarTypes } from '@genesislcap/grid-pro';
|
|
692
|
+
|
|
693
|
+
// In your grid options:
|
|
694
|
+
statusBar: {
|
|
695
|
+
statusPanels: [
|
|
696
|
+
{
|
|
697
|
+
statusPanel: GridProStatusBarTypes.loadMore,
|
|
698
|
+
statusPanelParams: {
|
|
699
|
+
onLoadMore: () => console.log('Loading more data...'),
|
|
700
|
+
appearance: 'outline',
|
|
701
|
+
tooltip: 'Load more rows from server'
|
|
702
|
+
},
|
|
703
|
+
align: 'right',
|
|
704
|
+
},
|
|
705
|
+
],
|
|
706
|
+
},
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
#### ReloadStatusBarComponent
|
|
710
|
+
|
|
711
|
+
A refresh button component that allows users to reload the grid data:
|
|
712
|
+
|
|
713
|
+
```typescript
|
|
714
|
+
import { GridProStatusBarTypes } from '@genesislcap/grid-pro';
|
|
715
|
+
|
|
716
|
+
// In your grid options:
|
|
717
|
+
statusBar: {
|
|
718
|
+
statusPanels: [
|
|
719
|
+
{
|
|
720
|
+
statusPanel: GridProStatusBarTypes.reload,
|
|
721
|
+
statusPanelParams: {
|
|
722
|
+
onReload: () => console.log('Reloading data...'),
|
|
723
|
+
icon: 'refresh',
|
|
724
|
+
tooltip: 'Reload the datasource'
|
|
725
|
+
},
|
|
726
|
+
align: 'right',
|
|
727
|
+
},
|
|
728
|
+
],
|
|
729
|
+
},
|
|
730
|
+
```
|
|
731
|
+
|
|
732
|
+
#### PaginationStatusBarComponent
|
|
733
|
+
|
|
734
|
+
A pagination control component that provides navigation buttons and page information:
|
|
735
|
+
|
|
736
|
+
```typescript
|
|
737
|
+
import { GridProStatusBarTypes } from '@genesislcap/grid-pro';
|
|
738
|
+
|
|
739
|
+
// In your grid options:
|
|
740
|
+
statusBar: {
|
|
741
|
+
statusPanels: [
|
|
742
|
+
{ statusPanel: 'agTotalAndFilteredRowCountComponent', align: 'left' },
|
|
743
|
+
{ statusPanel: GridProStatusBarTypes.pagination, align: 'right' },
|
|
744
|
+
],
|
|
745
|
+
},
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
### Manual Status Bar Configuration
|
|
749
|
+
|
|
750
|
+
You can also manually configure the status bar using direct grid options:
|
|
751
|
+
|
|
752
|
+
```typescript
|
|
753
|
+
import { GridProStatusBarTypes } from '@genesislcap/grid-pro';
|
|
754
|
+
|
|
755
|
+
const gridOptions = {
|
|
756
|
+
statusBar: {
|
|
757
|
+
statusPanels: [
|
|
758
|
+
{ statusPanel: 'agTotalAndFilteredRowCountComponent', align: 'left' },
|
|
759
|
+
{
|
|
760
|
+
statusPanel: GridProStatusBarTypes.labelValue,
|
|
761
|
+
statusPanelParams: { label: 'Active Records', value: 1250 },
|
|
762
|
+
align: 'center'
|
|
763
|
+
},
|
|
764
|
+
{
|
|
765
|
+
statusPanel: GridProStatusBarTypes.reload,
|
|
766
|
+
statusPanelParams: {
|
|
767
|
+
tooltip: 'Refresh all data'
|
|
768
|
+
},
|
|
769
|
+
align: 'right'
|
|
770
|
+
},
|
|
771
|
+
],
|
|
772
|
+
},
|
|
773
|
+
};
|
|
774
|
+
```
|
|
775
|
+
|
|
776
|
+
### Complete Usage Examples
|
|
777
|
+
|
|
778
|
+
#### Client-Side with Full Status Bar
|
|
779
|
+
|
|
780
|
+
```html
|
|
781
|
+
<rapid-grid-pro
|
|
782
|
+
pagination="true"
|
|
783
|
+
pagination-page-size="50"
|
|
784
|
+
with-status-bar="true">
|
|
785
|
+
<grid-pro-client-side-datasource
|
|
786
|
+
resource-name="ALL_TRADES"
|
|
787
|
+
max-rows="500"
|
|
788
|
+
status-bar-config='{
|
|
789
|
+
"rows": true,
|
|
790
|
+
"maxRows": true,
|
|
791
|
+
"loadMore": {
|
|
792
|
+
"appearance": "accent",
|
|
793
|
+
"tooltip": "Load 50 more trades"
|
|
794
|
+
},
|
|
795
|
+
"reload": {
|
|
796
|
+
"tooltip": "Refresh trade data"
|
|
797
|
+
}
|
|
798
|
+
}'
|
|
799
|
+
></grid-pro-client-side-datasource>
|
|
800
|
+
</rapid-grid-pro>
|
|
801
|
+
```
|
|
802
|
+
|
|
803
|
+
#### Server-Side with Pagination
|
|
804
|
+
|
|
805
|
+
```html
|
|
806
|
+
<rapid-grid-pro
|
|
807
|
+
pagination="true"
|
|
808
|
+
with-status-bar="true">
|
|
809
|
+
<grid-pro-server-side-datasource
|
|
810
|
+
resource-name="ALL_TRADES"
|
|
811
|
+
max-rows="100"
|
|
812
|
+
status-bar-config='{
|
|
813
|
+
"rows": true,
|
|
814
|
+
"maxRows": true,
|
|
815
|
+
"reload": true
|
|
816
|
+
}'
|
|
817
|
+
></grid-pro-server-side-datasource>
|
|
818
|
+
</rapid-grid-pro>
|
|
819
|
+
```
|
|
820
|
+
|
|
821
|
+
#### Infinite Scroll with Minimal Status Bar
|
|
822
|
+
|
|
823
|
+
```html
|
|
824
|
+
<rapid-grid-pro with-status-bar="true">
|
|
825
|
+
<grid-pro-server-side-datasource
|
|
826
|
+
resource-name="ALL_TRADES"
|
|
827
|
+
max-rows="50"
|
|
828
|
+
status-bar-config='{"rows": true, "reload": true}'
|
|
829
|
+
></grid-pro-server-side-datasource>
|
|
830
|
+
</rapid-grid-pro>
|
|
831
|
+
```
|
|
832
|
+
|
|
833
|
+
### Accessibility Features
|
|
834
|
+
|
|
835
|
+
All status bar components include comprehensive accessibility support:
|
|
836
|
+
|
|
837
|
+
- **ARIA labels** and **roles** for screen readers
|
|
838
|
+
- **Keyboard navigation** support (Tab, Enter, Space)
|
|
839
|
+
- **Focus management** and visual indicators
|
|
840
|
+
- **Semantic HTML** structure with proper landmarks
|
|
841
|
+
- **Tooltips** and **descriptions** for interactive elements
|
|
842
|
+
|
|
843
|
+
### Performance Considerations
|
|
844
|
+
|
|
845
|
+
- Status bar components are lightweight and optimized for performance
|
|
846
|
+
- Components are only rendered when enabled in configuration
|
|
847
|
+
- Event listeners are properly cleaned up when components are destroyed
|
|
848
|
+
- Status updates are debounced to prevent excessive re-renders
|
|
849
|
+
|
|
437
850
|
## License
|
|
438
851
|
|
|
439
852
|
Note: this project provides front-end dependencies and uses licensed components listed in the next section; thus, licenses for those components are required during development. Contact [Genesis Global](https://genesis.global/contact-us/) for more details.
|