@genesislcap/grid-pro 14.275.3 → 14.276.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +428 -15
  2. package/dist/custom-elements.json +1306 -141
  3. package/dist/dts/datasource/base.datasource.d.ts +38 -1
  4. package/dist/dts/datasource/base.datasource.d.ts.map +1 -1
  5. package/dist/dts/datasource/index.d.ts +1 -0
  6. package/dist/dts/datasource/index.d.ts.map +1 -1
  7. package/dist/dts/datasource/server-side.datasource.d.ts +6 -5
  8. package/dist/dts/datasource/server-side.datasource.d.ts.map +1 -1
  9. package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts +34 -12
  10. package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts.map +1 -1
  11. package/dist/dts/grid-pro.d.ts +65 -16
  12. package/dist/dts/grid-pro.d.ts.map +1 -1
  13. package/dist/dts/grid-pro.styles.d.ts.map +1 -1
  14. package/dist/dts/grid-pro.types.d.ts +91 -0
  15. package/dist/dts/grid-pro.types.d.ts.map +1 -1
  16. package/dist/dts/index.d.ts +1 -0
  17. package/dist/dts/index.d.ts.map +1 -1
  18. package/dist/dts/status-bar-components/index.d.ts +5 -0
  19. package/dist/dts/status-bar-components/index.d.ts.map +1 -0
  20. package/dist/dts/status-bar-components/label-value.status-bar.d.ts +21 -0
  21. package/dist/dts/status-bar-components/label-value.status-bar.d.ts.map +1 -0
  22. package/dist/dts/status-bar-components/load-more.status-bar.d.ts +43 -0
  23. package/dist/dts/status-bar-components/load-more.status-bar.d.ts.map +1 -0
  24. package/dist/dts/status-bar-components/pagination.status-bar.d.ts +32 -0
  25. package/dist/dts/status-bar-components/pagination.status-bar.d.ts.map +1 -0
  26. package/dist/dts/status-bar-components/reload.status-bar.d.ts +36 -0
  27. package/dist/dts/status-bar-components/reload.status-bar.d.ts.map +1 -0
  28. package/dist/esm/datasource/base.datasource.js +124 -7
  29. package/dist/esm/datasource/index.js +1 -0
  30. package/dist/esm/datasource/server-side.datasource.js +9 -9
  31. package/dist/esm/grid-pro-genesis-datasource/grid-pro-genesis-datasource.js +111 -34
  32. package/dist/esm/grid-pro.js +116 -2
  33. package/dist/esm/grid-pro.styles.js +10 -0
  34. package/dist/esm/grid-pro.types.js +28 -0
  35. package/dist/esm/index.js +1 -0
  36. package/dist/esm/status-bar-components/index.js +4 -0
  37. package/dist/esm/status-bar-components/label-value.status-bar.js +33 -0
  38. package/dist/esm/status-bar-components/load-more.status-bar.js +209 -0
  39. package/dist/esm/status-bar-components/pagination.status-bar.js +206 -0
  40. package/dist/esm/status-bar-components/reload.status-bar.js +162 -0
  41. package/dist/grid-pro.api.json +6872 -3339
  42. package/dist/grid-pro.d.ts +384 -32
  43. package/docs/api/grid-pro.criteriadelimiter.md +13 -0
  44. package/docs/api/grid-pro.criteriajoin.md +13 -0
  45. package/docs/api/grid-pro.default_status_bar_config.md +13 -0
  46. package/docs/api/grid-pro.genesisgriddatasourceelement.aggrid.md +11 -0
  47. package/docs/api/grid-pro.genesisgriddatasourceelement.connect.md +11 -0
  48. package/docs/api/grid-pro.genesisgriddatasourceelement.criteria.md +11 -0
  49. package/docs/api/grid-pro.genesisgriddatasourceelement.criteriafromfilters.md +11 -0
  50. package/docs/api/grid-pro.genesisgriddatasourceelement.datasource.md +11 -0
  51. package/docs/api/grid-pro.genesisgriddatasourceelement.datasourceoptions.md +15 -0
  52. package/docs/api/grid-pro.genesisgriddatasourceelement.datasourcestatuschanged.md +23 -0
  53. package/docs/api/grid-pro.genesisgriddatasourceelement.defaultrowidbyresourcetype.md +11 -0
  54. package/docs/api/grid-pro.genesisgriddatasourceelement.deferredcolumnstates.md +11 -0
  55. package/docs/api/grid-pro.genesisgriddatasourceelement.deferredgridoptions.md +11 -0
  56. package/docs/api/grid-pro.genesisgriddatasourceelement.disablepolling.md +11 -0
  57. package/docs/api/grid-pro.genesisgriddatasourceelement.fields.md +11 -0
  58. package/docs/api/grid-pro.genesisgriddatasourceelement.isrequestserver.md +11 -0
  59. package/docs/api/grid-pro.genesisgriddatasourceelement.issnapshot.md +11 -0
  60. package/docs/api/grid-pro.genesisgriddatasourceelement.maxrows.md +11 -0
  61. package/docs/api/grid-pro.genesisgriddatasourceelement.maxview.md +11 -0
  62. package/docs/api/grid-pro.genesisgriddatasourceelement.md +55 -0
  63. package/docs/api/grid-pro.genesisgriddatasourceelement.movingview.md +11 -0
  64. package/docs/api/grid-pro.genesisgriddatasourceelement.orderby.md +11 -0
  65. package/docs/api/grid-pro.genesisgriddatasourceelement.pollinginterval.md +11 -0
  66. package/docs/api/grid-pro.genesisgriddatasourceelement.removefilter.md +22 -0
  67. package/docs/api/grid-pro.genesisgriddatasourceelement.request.md +11 -0
  68. package/docs/api/grid-pro.genesisgriddatasourceelement.requestautosetup.md +18 -0
  69. package/docs/api/grid-pro.genesisgriddatasourceelement.resourcename.md +11 -0
  70. package/docs/api/grid-pro.genesisgriddatasourceelement.reverse.md +11 -0
  71. package/docs/api/grid-pro.genesisgriddatasourceelement.rowdatamapper.md +13 -0
  72. package/docs/api/grid-pro.genesisgriddatasourceelement.rowid.md +11 -0
  73. package/docs/api/grid-pro.genesisgriddatasourceelement.rowidattr.md +15 -0
  74. package/docs/api/grid-pro.genesisgriddatasourceelement.setfilter.md +23 -0
  75. package/docs/api/grid-pro.genesisgriddatasourceelement.update.md +11 -0
  76. package/docs/api/grid-pro.genesisgriddatasourceelement.viewnumber.md +11 -0
  77. package/docs/api/grid-pro.gridpro.clearlocalgridoptions.md +17 -0
  78. package/docs/api/grid-pro.gridpro.gridprodatasource.md +2 -2
  79. package/docs/api/grid-pro.gridpro.md +8 -2
  80. package/docs/api/grid-pro.gridpro.pagination.md +18 -0
  81. package/docs/api/grid-pro.gridpro.paginationpagesize.md +18 -0
  82. package/docs/api/grid-pro.gridpro.persistcolumnstatekey.md +1 -1
  83. package/docs/api/grid-pro.gridpro.setuppaginationandstatusbar.md +22 -0
  84. package/docs/api/grid-pro.gridpro.statusbarconfig.md +18 -0
  85. package/docs/api/grid-pro.gridpro.withstatusbar.md +18 -0
  86. package/docs/api/grid-pro.gridprobasedatasource.agtransaction.md +11 -0
  87. package/docs/api/grid-pro.gridprobasedatasource.applyallagtransactions.md +15 -0
  88. package/docs/api/grid-pro.gridprobasedatasource.applyasyncfuncname.md +11 -0
  89. package/docs/api/grid-pro.gridprobasedatasource.applyfuncname.md +11 -0
  90. package/docs/api/grid-pro.gridprobasedatasource.applytransaction.md +22 -0
  91. package/docs/api/grid-pro.gridprobasedatasource.applytransactionasync.md +23 -0
  92. package/docs/api/grid-pro.gridprobasedatasource.datasubwasloggedoff.md +11 -0
  93. package/docs/api/grid-pro.gridprobasedatasource.destroy.md +15 -0
  94. package/docs/api/grid-pro.gridprobasedatasource.generatecolumndefsfrommetadata.md +23 -0
  95. package/docs/api/grid-pro.gridprobasedatasource.getdatasourcestatusbarpanels.md +24 -0
  96. package/docs/api/grid-pro.gridprobasedatasource.handlestreamdeletes.md +22 -0
  97. package/docs/api/grid-pro.gridprobasedatasource.handlestreaminserts.md +23 -0
  98. package/docs/api/grid-pro.gridprobasedatasource.handlestreamupdates.md +22 -0
  99. package/docs/api/grid-pro.gridprobasedatasource.loadmore.md +15 -0
  100. package/docs/api/grid-pro.gridprobasedatasource.md +42 -0
  101. package/docs/api/grid-pro.gridprobasedatasource.pagination.md +11 -0
  102. package/docs/api/grid-pro.gridprobasedatasource.reloadresourcedata.md +15 -0
  103. package/docs/api/grid-pro.gridprobasedatasource.restart.md +15 -0
  104. package/docs/api/grid-pro.gridprobasedatasource.rowdata.md +11 -0
  105. package/docs/api/grid-pro.gridprogenesisdatasource.handlestreamdeletes.md +24 -0
  106. package/docs/api/grid-pro.gridprogenesisdatasource.handlestreaminserts.md +22 -0
  107. package/docs/api/grid-pro.gridprogenesisdatasource.handlestreamupdates.md +22 -0
  108. package/docs/api/grid-pro.gridprogenesisdatasource.loadmore.md +15 -0
  109. package/docs/api/grid-pro.gridprogenesisdatasource.md +6 -1
  110. package/docs/api/grid-pro.gridprogenesisdatasource.reloadresourcedata.md +21 -0
  111. package/docs/api/grid-pro.gridprogenesisdatasource.restart.md +3 -3
  112. package/docs/api/grid-pro.gridprostatusbarconfig.loadmore.md +18 -0
  113. package/docs/api/grid-pro.gridprostatusbarconfig.maxrows.md +18 -0
  114. package/docs/api/grid-pro.gridprostatusbarconfig.md +27 -0
  115. package/docs/api/grid-pro.gridprostatusbarconfig.reload.md +18 -0
  116. package/docs/api/grid-pro.gridprostatusbarconfig.rows.md +18 -0
  117. package/docs/api/grid-pro.gridprostatusbarloadmoreconfig.appearance.md +18 -0
  118. package/docs/api/grid-pro.gridprostatusbarloadmoreconfig.md +22 -0
  119. package/docs/api/grid-pro.gridprostatusbarloadmoreconfig.onloadmore.md +13 -0
  120. package/docs/api/grid-pro.gridprostatusbarloadmoreconfig.tooltip.md +18 -0
  121. package/docs/api/grid-pro.gridprostatusbarreloadconfig.icon.md +18 -0
  122. package/docs/api/grid-pro.gridprostatusbarreloadconfig.md +22 -0
  123. package/docs/api/grid-pro.gridprostatusbarreloadconfig.onreload.md +13 -0
  124. package/docs/api/grid-pro.gridprostatusbarreloadconfig.tooltip.md +18 -0
  125. package/docs/api/grid-pro.gridprostatusbartypes.md +27 -0
  126. package/docs/api/grid-pro.labelvaluestatusbarcomponent.destroy.md +15 -0
  127. package/docs/api/grid-pro.labelvaluestatusbarcomponent.getgui.md +15 -0
  128. package/docs/api/grid-pro.labelvaluestatusbarcomponent.init.md +22 -0
  129. package/docs/api/grid-pro.labelvaluestatusbarcomponent.md +23 -0
  130. package/docs/api/grid-pro.labelvaluestatusbarparams.md +17 -0
  131. package/docs/api/grid-pro.loadmorestatusbarcomponent.destroy.md +15 -0
  132. package/docs/api/grid-pro.loadmorestatusbarcomponent.getgui.md +15 -0
  133. package/docs/api/grid-pro.loadmorestatusbarcomponent.init.md +22 -0
  134. package/docs/api/grid-pro.loadmorestatusbarcomponent.md +25 -0
  135. package/docs/api/grid-pro.loadmorestatusbarcomponent.updatebuttonvisibility.md +15 -0
  136. package/docs/api/grid-pro.loadmorestatusbarcomponent.updateparams.md +22 -0
  137. package/docs/api/grid-pro.loadmorestatusbarparams.md +18 -0
  138. package/docs/api/grid-pro.md +16 -0
  139. package/docs/api/grid-pro.paginationstatusbarcomponent.destroy.md +15 -0
  140. package/docs/api/grid-pro.paginationstatusbarcomponent.getgui.md +15 -0
  141. package/docs/api/grid-pro.paginationstatusbarcomponent.init.md +22 -0
  142. package/docs/api/grid-pro.paginationstatusbarcomponent.md +23 -0
  143. package/docs/api/grid-pro.reloadstatusbarcomponent.destroy.md +15 -0
  144. package/docs/api/grid-pro.reloadstatusbarcomponent.getgui.md +15 -0
  145. package/docs/api/grid-pro.reloadstatusbarcomponent.init.md +22 -0
  146. package/docs/api/grid-pro.reloadstatusbarcomponent.md +24 -0
  147. package/docs/api/grid-pro.reloadstatusbarcomponent.updateparams.md +22 -0
  148. package/docs/api/grid-pro.reloadstatusbarparams.md +17 -0
  149. package/docs/api-report.md +256 -6
  150. 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 Grid Pro datasources: `<grid-pro-client-side-datasource>` and `<grid-pro-server-side-datasource>`.
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 resources metadata.
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 sorting the developer will need to have an INDEX for it. See more about indexes [here](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` well check if its really ok to do that + warn in the logs about it + try to mention other available indexes.. if any at all.
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 resources metadata.
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 resets itself”, basically starting a new stream with the updated params.
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 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 doesnt 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.
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 AGs Row Models. More on [JavaScript Grid: Row Models | AG Grid (ag-grid.com)](https://www.ag-grid.com/javascript-data-grid/row-models/).
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 feature list of all the possibilities of client/server-side row models (and others too.. that can be manually enabled/integrated but we dont expose any components for those yet).
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
- Its 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, its the opossite.. so datasources can be as specialized/customized as possible.
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 grid components to handle larger datasets more efficiently.
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 grid components can efficiently manage and display larger datasets on the client-side. Heres how these techniques work together:
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.