@genesislcap/grid-pro 15.20.2 → 15.21.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 (47) hide show
  1. package/dist/custom-elements.json +2161 -163
  2. package/dist/dts/datasource/base.datasource.d.ts +17 -3
  3. package/dist/dts/datasource/base.datasource.d.ts.map +1 -1
  4. package/dist/dts/datasource/base.types.d.ts +1 -1
  5. package/dist/dts/datasource/base.types.d.ts.map +1 -1
  6. package/dist/dts/datasource/datasource.types.d.ts +5 -2
  7. package/dist/dts/datasource/datasource.types.d.ts.map +1 -1
  8. package/dist/dts/datasource/filter.utils.d.ts +40 -0
  9. package/dist/dts/datasource/filter.utils.d.ts.map +1 -0
  10. package/dist/dts/datasource/index.d.ts +2 -0
  11. package/dist/dts/datasource/index.d.ts.map +1 -1
  12. package/dist/dts/datasource/infinite.datasource.d.ts +464 -0
  13. package/dist/dts/datasource/infinite.datasource.d.ts.map +1 -0
  14. package/dist/dts/datasource/infinite.resource.d.ts +231 -0
  15. package/dist/dts/datasource/infinite.resource.d.ts.map +1 -0
  16. package/dist/dts/datasource/server-side.datasource.d.ts +0 -2
  17. package/dist/dts/datasource/server-side.datasource.d.ts.map +1 -1
  18. package/dist/dts/datasource/server-side.resource-base.d.ts +1 -1
  19. package/dist/dts/datasource/server-side.resource-base.d.ts.map +1 -1
  20. package/dist/dts/grid-pro-beta.d.ts +37 -2
  21. package/dist/dts/grid-pro-beta.d.ts.map +1 -1
  22. package/dist/dts/grid-pro-genesis-datasource/datasource-events.types.d.ts +20 -1
  23. package/dist/dts/grid-pro-genesis-datasource/datasource-events.types.d.ts.map +1 -1
  24. package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts +0 -1
  25. package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts.map +1 -1
  26. package/dist/dts/grid-pro.d.ts +6 -0
  27. package/dist/dts/grid-pro.d.ts.map +1 -1
  28. package/dist/dts/react.d.ts +25 -1
  29. package/dist/dts/utils/map.d.ts +2 -2
  30. package/dist/dts/utils/map.d.ts.map +1 -1
  31. package/dist/esm/datasource/base.datasource.js +39 -2
  32. package/dist/esm/datasource/filter.utils.js +241 -0
  33. package/dist/esm/datasource/index.js +2 -0
  34. package/dist/esm/datasource/infinite.datasource.js +373 -0
  35. package/dist/esm/datasource/infinite.resource.js +581 -0
  36. package/dist/esm/datasource/server-side.datasource.js +0 -38
  37. package/dist/esm/datasource/server-side.grid-definitions.js +1 -1
  38. package/dist/esm/datasource/server-side.resource-base.js +7 -105
  39. package/dist/esm/grid-pro-beta.js +73 -6
  40. package/dist/esm/grid-pro-genesis-datasource/datasource-events.types.js +3 -0
  41. package/dist/esm/grid-pro-genesis-datasource/grid-pro-genesis-datasource.js +0 -3
  42. package/dist/esm/grid-pro.js +12 -1
  43. package/dist/grid-pro.api.json +1355 -477
  44. package/dist/grid-pro.d.ts +962 -165
  45. package/dist/react.cjs +84 -0
  46. package/dist/react.mjs +83 -0
  47. package/package.json +13 -13
@@ -35,6 +35,7 @@ import { ColumnsMenuParams } from '@ag-grid-community/core';
35
35
  import { ColumnState } from '@ag-grid-community/core';
36
36
  import type { ColumnState as ColumnState_2 } from 'ag-grid-community';
37
37
  import { Connect } from '@genesislcap/foundation-comms';
38
+ import { ConnectEvents } from '@genesislcap/foundation-comms';
38
39
  import type { Container } from '@microsoft/fast-foundation';
39
40
  import { Controller } from '@microsoft/fast-element';
40
41
  import { CountdownUnit } from '@genesislcap/foundation-ui';
@@ -93,7 +94,10 @@ import { ICellEditorParams } from '@ag-grid-community/core';
93
94
  import { ICellRendererComp } from '@ag-grid-community/core';
94
95
  import { ICellRendererFunc } from '@ag-grid-community/core';
95
96
  import { ICellRendererParams } from '@ag-grid-community/core';
97
+ import type { IDatasource } from 'ag-grid-community';
98
+ import type { IGetRowsParams } from 'ag-grid-community';
96
99
  import { ILoadingCellRendererSelectorFunc } from 'ag-grid-community';
100
+ import { IndexDetail } from '@genesislcap/foundation-comms';
97
101
  import { InterfaceSymbol } from '@microsoft/fast-foundation';
98
102
  import { IRowDragItem } from '@ag-grid-community/core';
99
103
  import { IRowNode } from '@ag-grid-community/core';
@@ -664,6 +668,49 @@ export declare function convertColDefsToColumnStates(colDefs: ColDef[]): ColumnS
664
668
  */
665
669
  export declare function convertColDefToColumnState(colDef: ColDef): ColumnState;
666
670
 
671
+ /**
672
+ * Converts date filters to Genesis criteria strings.
673
+ * @param filterModel - The AG Grid filter model
674
+ * @param fieldName - The field name being filtered
675
+ * @returns Genesis criteria string or null
676
+ */
677
+ export declare function convertDateFilterToCriteria(filterModel: any, fieldName: string): string | null;
678
+
679
+ /**
680
+ * Converts AG Grid filter model to Genesis criteria string.
681
+ * This is the main entry point for converting filters.
682
+ * Handles both simple filters and multi-filters (filterType: "multi" with filterModels array).
683
+ * @param filterModel - The AG Grid filter model
684
+ * @param colDefs - Column definitions for metadata (optional but recommended)
685
+ * @returns Genesis criteria string
686
+ */
687
+ export declare function convertFilterModelToCriteria(filterModel: any, colDefs?: MetadataDetail[]): string;
688
+
689
+ /**
690
+ * Converts number filters to Genesis criteria strings.
691
+ * @param filterModel - The AG Grid filter model
692
+ * @param fieldName - The field name being filtered
693
+ * @returns Genesis criteria string or null
694
+ */
695
+ export declare function convertNumberFilterToCriteria(filterModel: any, fieldName: string): string | null;
696
+
697
+ /**
698
+ * Converts set filters (for enum fields) to Genesis criteria strings.
699
+ * @param filterModel - The AG Grid filter model
700
+ * @param fieldName - The field name being filtered
701
+ * @param colMeta - Column metadata for detecting all values
702
+ * @returns Genesis criteria string or null
703
+ */
704
+ export declare function convertSetFilterToCriteria(filterModel: any, fieldName: string, colMeta?: MetadataDetail): string | null;
705
+
706
+ /**
707
+ * Converts text filters to Genesis criteria strings.
708
+ * @param filterModel - The AG Grid filter model
709
+ * @param fieldName - The field name being filtered
710
+ * @returns Genesis criteria string or null
711
+ */
712
+ export declare function convertTextFilterToCriteria(filterModel: any, fieldName: string): string | null;
713
+
667
714
  /**
668
715
  * Convert string values from 'camelCase' to 'kebab-case'
669
716
  * @param value - The value to convert to Kebab case.
@@ -803,7 +850,7 @@ export declare interface DatasourceEvent<T = DatasourceEventDetail> extends Cust
803
850
  /**
804
851
  * Union type for all datasource event details
805
852
  */
806
- export declare type DatasourceEventDetail = InitializeEventDetail | DataLoadedEventDetail | DataChangedEventDetail | SchemaUpdatedEventDetail | MoreDataAvailableEventDetail | SizeChangedEventDetail | DataClearedEventDetail | DatasourceErrorEventDetail | RefreshServerSideEventDetail | GridCssClassEventDetail;
853
+ export declare type DatasourceEventDetail = InitializeEventDetail | DataLoadedEventDetail | DataChangedEventDetail | SchemaUpdatedEventDetail | MoreDataAvailableEventDetail | SizeChangedEventDetail | DataClearedEventDetail | DatasourceErrorEventDetail | RefreshServerSideEventDetail | GridCssClassEventDetail | SetInfiniteDatasourceEventDetail | RefreshInfiniteCacheEventDetail;
807
854
 
808
855
  /**
809
856
  * Event names for datasource-grid communication
@@ -830,6 +877,8 @@ export declare const datasourceEventNames: {
830
877
  readonly addGridCssClass: "add-grid-css-class";
831
878
  readonly removeGridCssClass: "remove-grid-css-class";
832
879
  readonly applyServerSideTransaction: "apply-server-side-transaction";
880
+ readonly setInfiniteDatasource: "set-infinite-datasource";
881
+ readonly refreshInfiniteCache: "refresh-infinite-cache";
833
882
  };
834
883
 
835
884
  /**
@@ -894,10 +943,13 @@ export declare class DatasourceRowMatchTracker {
894
943
  /**
895
944
  * Available datasource types
896
945
  * @remarks - This type is used to define what kind of datasource will be used in components like entity manager.
897
- * Currently there are two options: 'client' for `grid-pro-client-side-datasource` and 'server' for `grid-pro-server-side-datasource`
946
+ * Available options:
947
+ * - 'client' for `grid-pro-client-side-datasource` (Client-Side Row Model - loads all data into browser)
948
+ * - 'server' for `grid-pro-server-side-datasource` (Server-Side Row Model - Enterprise lazy loading)
949
+ * - 'infinite' for `grid-pro-infinite-datasource` (Infinite Row Model - Community lazy loading)
898
950
  * @public
899
951
  */
900
- export declare type DatasourceType = 'client' | 'server';
952
+ export declare type DatasourceType = 'client' | 'server' | 'infinite';
901
953
 
902
954
  /**
903
955
  * The AG Date Editor element.
@@ -1723,7 +1775,12 @@ declare const GenesisGridDatasourceElement_base: new () => {
1723
1775
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1724
1776
  addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1725
1777
  removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1726
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1778
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options
1779
+ /**
1780
+ * Optional parameter that allows you to select a subset of fields from the query if the client is not interested in receiving all of them.
1781
+ * @remarks DATASERVER only.
1782
+ */
1783
+ ?: boolean | EventListenerOptions): void;
1727
1784
  readonly attributes: NamedNodeMap;
1728
1785
  get classList(): DOMTokenList;
1729
1786
  set classList(value: string): any;
@@ -2048,6 +2105,219 @@ declare const GenesisGridDatasourceElement_base: new () => {
2048
2105
  attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
2049
2106
  };
2050
2107
 
2108
+ /**
2109
+ * AG Grid Infinite Row Model datasource implementation.
2110
+ * This class implements the IDatasource interface required by AG Grid's Infinite Row Model.
2111
+ */
2112
+ declare class GenesisInfiniteDatasource implements IDatasource {
2113
+ rowCount?: number;
2114
+ private resourceName;
2115
+ private resourceParams;
2116
+ private resourceIndexes;
2117
+ private resourceColDefs;
2118
+ private maxRows;
2119
+ private rowId;
2120
+ private baseCriteria;
2121
+ private isRequestServer;
2122
+ private createSnapshotFunc;
2123
+ private createDataserverStreamFunc;
2124
+ private getMoreRowsFunc;
2125
+ /**
2126
+ * Called when an unsolicited batch changes which rows exist or their order (an INSERT or a
2127
+ * DELETE). The cache cannot be patched in place for those - a created row arrives at the end
2128
+ * rather than in sort position, and a delete below the delivered watermark is skipped to keep
2129
+ * slice offsets stable - so the rows have to be re-read.
2130
+ * @internal
2131
+ */
2132
+ private onRowsInvalidatedFunc?;
2133
+ /**
2134
+ * Called when an unsolicited batch only modified rows already held. The cache is patched in
2135
+ * place, so the grid just needs to re-render its blocks.
2136
+ * @internal
2137
+ */
2138
+ private onRowsUpdatedFunc?;
2139
+ private errorHandlerFunc;
2140
+ /**
2141
+ * Max time a DATASERVER block may stay pending before the safety valve resolves it with the
2142
+ * rows accumulated so far.
2143
+ * @internal
2144
+ */
2145
+ private static readonly BLOCK_RESOLVE_TIMEOUT_MS;
2146
+ /** MORE_ROWS answered 404: the connection has no such endpoint (HTTP mode). @internal */
2147
+ private static readonly HTTP_NOT_FOUND;
2148
+ /**
2149
+ * The DATASERVER subscription - one per session, opened on the first block.
2150
+ * @remarks Rows are pulled sequentially with MORE_ROWS rather than addressed by VIEW_NUMBER.
2151
+ * A non-zero VIEW_NUMBER puts the server in pagination mode, where the page offset is applied
2152
+ * as a database range skip *before* CRITERIA_MATCH is evaluated
2153
+ * (NextRowsStrategy.nextRows -> getRowsFromIndex -> table.getRange), so paged reads of a
2154
+ * filtered view overlap and silently drop rows. With no VIEW_NUMBER the server keeps a cursor
2155
+ * on the last row it actually delivered, which stays correct under a filter.
2156
+ * @internal
2157
+ */
2158
+ private dataserverStream;
2159
+ private dataserverStreamSubscription;
2160
+ private sourceRef;
2161
+ /**
2162
+ * Identifies the CRITERIA_MATCH/ORDER_BY the current subscription was opened with; a change
2163
+ * means the subscription has to be re-opened, as those are DATA_LOGON parameters.
2164
+ * @internal
2165
+ */
2166
+ private subscriptionKey;
2167
+ /**
2168
+ * Session-cumulative row cache, keyed by row id. A Map preserves insertion order, so the
2169
+ * cache can be sliced by block range; Genesis splits batches across messages and later
2170
+ * batches append.
2171
+ * @internal
2172
+ */
2173
+ private rowData;
2174
+ /** Blocks waiting for the cache to reach their range. @internal */
2175
+ private pendingBlocks;
2176
+ /** Highest absolute row index already handed to AG Grid. @internal */
2177
+ private deliveredRowCount;
2178
+ /** False until the first message arrives on the subscription. @internal */
2179
+ private streamStarted;
2180
+ /** MORE_ROWS from the most recent batch. @internal */
2181
+ private moreRows;
2182
+ /** Whether a MORE_ROWS request is awaiting its batch. @internal */
2183
+ private moreRowsInFlight;
2184
+ /**
2185
+ * Total row count, reported by the server on the initial logon only.
2186
+ * @remarks Only usable as `lastRow` when no criteria is in effect: ROWS_COUNT does not account
2187
+ * for CRITERIA_MATCH (the SSRM datasources keep the same distinction between serverRowsCount
2188
+ * and clientRowsCount), so under a filter it would give the grid a scrollbar over thousands
2189
+ * of rows that will never arrive.
2190
+ * @internal
2191
+ */
2192
+ private serverRowsCount;
2193
+ /** Whether the current subscription was opened with a CRITERIA_MATCH. @internal */
2194
+ private hasCriteria;
2195
+ /** So the MAX_VIEW truncation warning is logged once per subscription. @internal */
2196
+ private viewTruncationWarned;
2197
+ constructor(options: {
2198
+ createSnapshotFunc: (params?: any) => Promise<RequestServerResult | FilteredDataServerResult>;
2199
+ createDataserverStreamFunc?: (params?: any) => SocketObservable<FilteredDataServerResult>;
2200
+ getMoreRowsFunc?: (sourceRef: string) => Promise<unknown>;
2201
+ onRowsInvalidatedFunc?: () => void;
2202
+ onRowsUpdatedFunc?: () => void;
2203
+ errorHandlerFunc: (message: string, type: string) => void;
2204
+ resourceName: string;
2205
+ resourceParams: any;
2206
+ resourceIndexes: Map<string, string[]>;
2207
+ resourceColDefs: MetadataDetail[];
2208
+ maxRows: number;
2209
+ rowId: string;
2210
+ baseCriteria?: string;
2211
+ isRequestServer: boolean;
2212
+ });
2213
+ /**
2214
+ * Builds request parameters for REQUEST_SERVER resources.
2215
+ * Uses OFFSET-based pagination.
2216
+ */
2217
+ private buildRequestServerParams;
2218
+ /**
2219
+ * Builds the DATA_LOGON parameters for the DATASERVER subscription.
2220
+ * @remarks No VIEW_NUMBER is sent: any non-zero value switches the server into pagination
2221
+ * mode, which is not safe to combine with CRITERIA_MATCH (see dataserverStream). MAX_VIEW is
2222
+ * passed through from the resource params and still caps how many rows one view will hold.
2223
+ */
2224
+ private buildDataserverLogonParams;
2225
+ /**
2226
+ * Determines the last row index from the server response.
2227
+ * @remarks ROWS_COUNT is only trusted when no criteria is in effect - the same rule the
2228
+ * DATASERVER path applies to serverRowsCount - because a server-reported total may ignore
2229
+ * CRITERIA_MATCH, which would give a filtered grid a scrollbar over rows that never arrive.
2230
+ * Under a filter the count stays open-ended until MORE_ROWS reports the end.
2231
+ */
2232
+ private getLastRow;
2233
+ /**
2234
+ * Called by AG Grid when more rows are needed.
2235
+ * Implements the IDatasource.getRows method.
2236
+ */
2237
+ getRows(params: IGetRowsParams): Promise<void>;
2238
+ /**
2239
+ * Loads one AG Grid block from a DATASERVER resource.
2240
+ * @remarks Blocks are served out of the session-cumulative cache. When the cache does not yet
2241
+ * reach the block, MORE_ROWS pulls the next batch and the block waits; several blocks can be
2242
+ * outstanding at once, and each settles as soon as the cache covers its range.
2243
+ * @internal
2244
+ */
2245
+ private getDataserverRows;
2246
+ /**
2247
+ * Keeps pulling batches while blocks are still waiting.
2248
+ * @remarks Sequential paging cannot seek, so reaching a block the cache does not cover means
2249
+ * walking to it one batch at a time. One request is kept in flight; each arriving batch drives
2250
+ * the next, until the blocks are covered or the stream ends.
2251
+ * @internal
2252
+ */
2253
+ private pumpMoreRows;
2254
+ /**
2255
+ * Asks the server for the next batch of rows on the current subscription.
2256
+ * @internal
2257
+ */
2258
+ private requestMoreRows;
2259
+ /**
2260
+ * Accumulates a stream batch into the cumulative cache and settles whatever it covers.
2261
+ * @internal
2262
+ */
2263
+ private handleDataserverMessage;
2264
+ /**
2265
+ * Reports a server-pushed change to the host so the grid can catch up.
2266
+ * @internal
2267
+ */
2268
+ private notifyLiveChange;
2269
+ /**
2270
+ * Restarts the safety valve for every block still waiting.
2271
+ * @internal
2272
+ */
2273
+ private refreshPendingDeadlines;
2274
+ /** @internal */
2275
+ private createBlockTimer;
2276
+ /**
2277
+ * Merges a batch into the cumulative cache.
2278
+ * @internal
2279
+ */
2280
+ private accumulate;
2281
+ /** Position of a key in the cache, or -1. @internal */
2282
+ private cacheIndexOf;
2283
+ /**
2284
+ * Settles every pending block the cache now covers.
2285
+ * @internal
2286
+ */
2287
+ private settleCoveredBlocks;
2288
+ /**
2289
+ * Hands a block its slice of the cache, or fails it.
2290
+ * @internal
2291
+ */
2292
+ private settleBlock;
2293
+ /**
2294
+ * Warns when the view filled up before the data ran out.
2295
+ * @remarks The server stops sending at MAX_VIEW rows and reports MORE_ROWS false, which is
2296
+ * indistinguishable from the end of the data - the grid would silently show a truncated view
2297
+ * and a row count smaller than the resource's. Raising `max-view` past the row count is the
2298
+ * fix, so say so rather than leaving it to be discovered.
2299
+ * @internal
2300
+ */
2301
+ private warnIfViewTruncated;
2302
+ /** @internal */
2303
+ private failAllPendingBlocks;
2304
+ /**
2305
+ * Drops the accumulated rows and the subscription, so the next block re-reads from the server.
2306
+ * @remarks Needed after a write: the cumulative cache is what blocks are served from, so a
2307
+ * created row would otherwise appear only at the end of the cache (the server pushes it as an
2308
+ * INSERT, not in sort position) and a deleted row that has already been displayed would never
2309
+ * disappear, because dropping it from the cache would shift later blocks' slice offsets.
2310
+ * @public
2311
+ */
2312
+ reset(): void;
2313
+ /**
2314
+ * Drops the subscription and its cache so the next block re-logs on with fresh parameters.
2315
+ * @internal
2316
+ */
2317
+ private teardownDataserverSubscription;
2318
+ destroy?(): void;
2319
+ }
2320
+
2051
2321
  /**
2052
2322
  * Helper function to get ColDef {@link https://www.ag-grid.com/javascript-data-grid/column-properties/} for Actions Menu Renderer.
2053
2323
  * Will take the parameter values for a base ColDef and merge them with the overrideDef (if specified).
@@ -2106,7 +2376,7 @@ export declare const getAgEditableRendererTemplate: (designSystem?: string) => V
2106
2376
  * @returns the keys of the map
2107
2377
  * @public
2108
2378
  */
2109
- export declare function getAvailableIndexes(data: Map<string, [string]>): string[];
2379
+ export declare function getAvailableIndexes(data: Map<string, string[]>): string[];
2110
2380
 
2111
2381
  /**
2112
2382
  * Get the values of the Metadata indexes map
@@ -2115,7 +2385,7 @@ export declare function getAvailableIndexes(data: Map<string, [string]>): string
2115
2385
  * @returns the values of the map
2116
2386
  * @public
2117
2387
  */
2118
- export declare function getAvailableIndexFields(data: Map<string, [string]>): string[];
2388
+ export declare function getAvailableIndexFields(data: Map<string, string[]>): string[];
2119
2389
 
2120
2390
  /**
2121
2391
  * Return a column type base on each field's metadata from the selected resource.
@@ -2459,6 +2729,12 @@ export declare class GridPro extends GridPro_base {
2459
2729
  */
2460
2730
  gridOptionsConfig: GridOptionsConfig;
2461
2731
  constructor();
2732
+ /**
2733
+ * The Infinite Row Model is only wired into the beta grid, so an infinite datasource placed
2734
+ * inside this element can never load data. Report it instead of ignoring the event.
2735
+ * @internal
2736
+ */
2737
+ private refuseInfiniteDatasource;
2462
2738
  /**
2463
2739
  * Adds an event listener to the grid element.
2464
2740
  * @param eventType - The event type to listen for. Recommened to use the `Events` from AG Grid.
@@ -3117,7 +3393,16 @@ export declare class GridProBaseDatasource extends GenesisGridDatasourceElement
3117
3393
  protected handleStreamUpdates(updatedRows: any[]): void;
3118
3394
  protected applyAllTransactions(): void;
3119
3395
  private applyMappedTransaction;
3120
- protected applyTransaction(transaction: any): any;
3396
+ /**
3397
+ * Builds the index map used for server-side sorting from the resource's metadata.
3398
+ * @remarks Real DATASERVER indexes keep their names; when the resource also (or only) reports
3399
+ * SORTABLE_FIELDS - the synthetic bucket a req/rep resource uses for its sortable columns -
3400
+ * those fields are merged in under the synthetic `SORTABLE_FIELDS` key. Note an index with no
3401
+ * NAME lands under `undefined`: its fields count as indexed, but it cannot be named in an
3402
+ * ORDER_BY, so sorting-related consumers must consider named entries only.
3403
+ * @internal
3404
+ */
3405
+ protected getResourceIndexes(availableIndexes: IndexDetail[], availableSortableFields: string[]): Map<string, string[]>;
3121
3406
  /**
3122
3407
  * Maps the transaction data to the row data mapper function, if it exists.
3123
3408
  * @param transaction - The transaction data to be mapped.
@@ -3428,6 +3713,18 @@ export declare class GridProBeta extends GridProBeta_base {
3428
3713
  * @internal
3429
3714
  */
3430
3715
  private handleApplyServerSideTransaction;
3716
+ /**
3717
+ * Handles setting infinite datasource
3718
+ * @internal
3719
+ */
3720
+ private handleSetInfiniteDatasource;
3721
+ /**
3722
+ * Handles refreshing the infinite cache.
3723
+ * @remarks Mirrors {@link GridProBeta.handleRefreshServerSide}: `purge` drops the block cache
3724
+ * and re-reads, otherwise the loaded blocks are re-read in place.
3725
+ * @internal
3726
+ */
3727
+ private handleRefreshInfiniteCache;
3431
3728
  combineAllGridComponents(gridOptionsComponents: GridComponents): GridComponents;
3432
3729
  statePersistanceEnabled(): boolean;
3433
3730
  /**
@@ -3502,6 +3799,10 @@ export declare class GridProBeta extends GridProBeta_base {
3502
3799
  * @public
3503
3800
  */
3504
3801
  get gridProDatasource(): GridProBaseDatasource;
3802
+ /**
3803
+ * @public
3804
+ */
3805
+ get isInfiniteRowModel(): boolean;
3505
3806
  /**
3506
3807
  * Reports the currently visible columns to the datasource. The datasource decides what to do with
3507
3808
  * them (e.g. narrowing the server request); the grid stays agnostic of that behaviour.
@@ -3817,7 +4118,21 @@ declare const GridProBeta_base: (new (...args: any[]) => {
3817
4118
  removeAttributeNS(namespace: string | null, localName: string): void;
3818
4119
  removeAttributeNode(attr: Attr): Attr;
3819
4120
  requestFullscreen(options?: FullscreenOptions): Promise<void>;
3820
- requestPointerLock(options?: PointerLockOptions): Promise<void>;
4121
+ requestPointerLock(options
4122
+ /**
4123
+ * Enables or disables the grid status bar.
4124
+ * @remarks
4125
+ * Default is false.
4126
+ * When disabled, no status bar will be displayed regardless of statusBarConfig.
4127
+ * This requires AG Grid Enterprise module to be available for the status bar to be displayed when enabled.
4128
+ */
4129
+ ? /**
4130
+ * Enables or disables the grid status bar.
4131
+ * @remarks
4132
+ * Default is false.
4133
+ * When disabled, no status bar will be displayed regardless of statusBarConfig.
4134
+ * This requires AG Grid Enterprise module to be available for the status bar to be displayed when enabled.
4135
+ */: PointerLockOptions): Promise<void>;
3821
4136
  scroll(options?: ScrollToOptions): void;
3822
4137
  scroll(x: number, y: number): void;
3823
4138
  scrollBy(options?: ScrollToOptions): void;
@@ -4052,7 +4367,12 @@ declare const GridProBeta_base: (new (...args: any[]) => {
4052
4367
  ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
4053
4368
  ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
4054
4369
  ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
4055
- ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
4370
+ ontouchstart
4371
+ /**
4372
+ * Handles schema updates from datasource
4373
+ * @internal
4374
+ */
4375
+ ?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
4056
4376
  ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
4057
4377
  ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
4058
4378
  ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
@@ -4723,7 +5043,6 @@ export declare class GridProGenesisDatasource extends GridProGenesisDatasource_b
4723
5043
  private getAgColumnDefs;
4724
5044
  setFilter(fieldName: string, newFilter: string): void;
4725
5045
  removeFilter(fieldName: string): void;
4726
- applyTransaction(transaction: any): void;
4727
5046
  private handleSizeChanged;
4728
5047
  handleStreamInserts(inserts?: any[]): void;
4729
5048
  handleStreamUpdates(updates?: any[]): void;
@@ -5165,72 +5484,52 @@ export declare const gridProGenesisDatasourceEventNames: {
5165
5484
  };
5166
5485
 
5167
5486
  /**
5168
- * The available Grid Pro Renderer Types
5169
- * @public
5170
- */
5171
- export declare enum GridProRendererTypes {
5172
- action = "action",
5173
- actionsMenu = "actionsMenu",
5174
- boolean = "boolean",
5175
- editable = "editable",
5176
- icon = "icon",
5177
- text = "text",// TODO: textField :(
5178
- select = "select",
5179
- statusPill = "statusPill",
5180
- dateEditor = "dateEditor",
5181
- selectEditor = "selectEditor",
5182
- numberEditor = "numberEditor",
5183
- stringEditor = "stringEditor",
5184
- multiselectEditor = "multiselectEditor"
5185
- }
5186
-
5187
- /**
5188
- * A Genesis Datasource element, for server-side | SSRM-compatible data fetching and used exclusively by the GridPro element.
5189
- * @remarks Only supports Server-Side Row Model. Requires `@ag-grid-enterprise/server-side-row-model` setup and valid AG Grid Enterprise license.
5487
+ * A Genesis Datasource element for AG Grid's Infinite Row Model.
5488
+ * @remarks
5489
+ * The Infinite Row Model is part of AG Grid Community (free) and provides:
5490
+ * - Lazy loading of data as user scrolls
5491
+ * - Server-side sorting and filtering
5492
+ * - Simple infinite scroll without grouping/aggregation
5493
+ * - Live updates for DATASERVER resources: the DATA_LOGON stream the grid pages over pushes
5494
+ * every change, so no flag or second subscription is needed
5190
5495
  *
5191
- * **Supported resources**: DATASERVER resources, and REQUEST_SERVER (req/rep) resources that declare
5192
- * `criteriaOnlyRequest`. A req/rep resource without it reports a `resource-type` error and no
5193
- * datasource is attached to the grid.
5496
+ * REQUEST_SERVER resources are read on demand only - a change on the server shows up when the
5497
+ * grid re-reads (scroll, filter/sort change, or an explicit refresh), not live. The exception
5498
+ * is a write made through this session: a commit ACK for an event listed in `pollTriggerEvents`
5499
+ * re-reads the loaded blocks, so entity-management CRUD is reflected immediately.
5194
5500
  *
5195
- * **Custom Sort Indicators**: This datasource automatically applies custom sort indicators that are always visible (instead of only on hover).
5196
- * Sortable columns will show a subtle sort icon even when not sorted, and active sort indicators will be more prominent.
5197
- * The custom styling uses AG Grid's native icon font for consistency with the grid theme.
5501
+ * Unlike the other datasources, this element deliberately does not consume `deferredGridOptions`
5502
+ * (the mechanism is being retired): grid options set there - including via entity-management's
5503
+ * `gridOptions` with `datasource-type="infinite"` - are not applied. Set options on the grid
5504
+ * element itself instead.
5198
5505
  *
5506
+ * Use this instead of Server-Side Row Model when you don't need Enterprise features
5507
+ * like row grouping, aggregation, or pivoting.
5508
+ *
5509
+ * @see https://www.ag-grid.com/javascript-data-grid/infinite-scrolling/
5199
5510
  * @beta
5200
5511
  *
5201
5512
  * @fires base-datasource-error - Fired when a datasource error is reported. detail: `BaseDatasourceErrorEventDetail`
5202
5513
  * @fires datasource-error - Fired when a datasource error occurs (for grid integration). detail: `DatasourceErrorEventDetail`
5203
5514
  * @fires base-datasource-connected - Fired when error state is cleared after connection succeeds
5204
- * @fires datasource-loading-finished - Fired when pending stream transactions are flushed with no row changes
5205
- * @fires datasource-no-data-available - Fired when loading finishes with an empty row set
5206
- * @fires datasource-data-changed - Fired when row data changes from applied stream transactions. detail: `DataChangedEventDetail`
5207
- * @fires cache-filter-config - Fired to persist filter configuration for the grid
5208
- * @fires refresh-server-side - Fired to request a server-side refresh. detail: `RefreshServerSideEventDetail`
5209
- * @fires set-server-side-datasource - Fired to attach or clear the server-side row model datasource
5210
- * @fires datasource-loading-started - Fired when a server-side load cycle starts
5211
- * @fires add-grid-css-class - Fired to add a CSS class on the grid host (e.g. server-side styling). detail: `GridCssClassEventDetail`
5212
- * @fires remove-grid-css-class - Fired to remove a CSS class from the grid host. detail: `GridCssClassEventDetail`
5213
- * @fires datasource-initialize - Fired to hand off server-side grid options. detail: `InitializeEventDetail`
5214
- * @fires datasource-init - Fired when the server-side grid model should initialize data
5515
+ * @fires datasource-initialize - Fired to hand off infinite row model grid options. detail: `InitializeEventDetail`
5516
+ * @fires datasource-init - Fired when the infinite grid model should initialize data
5215
5517
  * @fires datasource-schema-updated - Fired when column metadata or defs are updated. detail: `SchemaUpdatedEventDetail`
5518
+ * @fires set-infinite-datasource - Fired to attach or clear the infinite row model datasource. detail: `SetInfiniteDatasourceEventDetail`
5519
+ * @fires refresh-infinite-cache - Fired to request an infinite row model refresh; `purge` drops the block cache and re-reads. detail: `RefreshInfiniteCacheEventDetail`
5520
+ * @fires cache-filter-config - Fired to persist filter configuration for the grid
5521
+ * @fires datasource-data-cleared - Fired when infinite row data is cleared. detail: `DataClearedEventDetail`
5216
5522
  * @fires datasource-filters-restored - Fired when persisted filters are reapplied
5217
- * @fires datasource-data-cleared - Fired when server-side row data is cleared. detail: `DataClearedEventDetail`
5218
- * @fires apply-server-side-transaction - Fired to apply a server-side row transaction
5219
- * @fires datasource-ready - Fired when the host grid is ready to start loading data
5220
5523
  */
5221
- export declare class GridProServerSideDatasource extends GridProServerSideDatasource_base {
5222
- serializer: JSONSerializer;
5223
- pollingDatasource: Datasource;
5224
- /**
5225
- * Enable live updates for the grid.
5226
- * @remarks Only works with DATASERVER resources (StreamDatasource) right now.
5227
- */
5228
- liveUpdates: boolean;
5524
+ export declare class GridProInfiniteDatasource extends GridProInfiniteDatasource_base {
5525
+ connect: Connect;
5526
+ connectEvents: ConnectEvents;
5527
+ datasource: Datasource;
5229
5528
  request: any;
5230
5529
  private indexes;
5231
- private ssrmDatasource;
5232
- private liveUpdatesStream;
5233
- private sortIndicatorCSSDestroy;
5530
+ private infiniteDatasource;
5531
+ /** Unsubscribes the commit-response listener behind `pollTriggerEvents`. @internal */
5532
+ private commitResponseUnsubscribe?;
5234
5533
  resourceNameChanged(oldValue: string, newValue: string): void;
5235
5534
  criteriaChanged(oldCriteria: string, newCriteria: string): void;
5236
5535
  connectedCallback(): void;
@@ -5241,110 +5540,44 @@ export declare class GridProServerSideDatasource extends GridProServerSideDataso
5241
5540
  * @remarks This is used when the grid is already initialized and we want to reload the data due to a criteria/filter change.
5242
5541
  * @beta
5243
5542
  */
5244
- reloadResourceData(params?: DatasourceOptions): Promise<void>;
5245
- /**
5246
- * Applies custom sort indicator styling for server-side datasource
5247
- * @internal
5248
- */
5249
- private applyServerSideSortIndicatorStyling;
5250
- /**
5251
- * Removes custom sort indicator styling
5252
- * @internal
5253
- */
5254
- private removeServerSideSortIndicatorStyling;
5543
+ reloadResourceData(): Promise<void>;
5255
5544
  init(): Promise<void>;
5545
+ /** @internal */
5256
5546
  private clearReadyListener;
5547
+ /** @internal */
5257
5548
  private onDatasourceReady;
5258
5549
  destroy(): Promise<void>;
5259
5550
  restart(): Promise<void>;
5260
5551
  private clearRowData;
5261
5552
  /**
5262
- * Checks whether the resolved resource can be served through the Server-Side Row Model.
5263
- * @remarks
5264
- * REQUEST_SERVER (req/rep) resources are only supported when the request reply declares
5265
- * `criteriaOnlyRequest` (`CRITERIA_ONLY_REQUEST` in its metadata). SSRM drives a req/rep
5266
- * resource purely through `DETAILS` - `CRITERIA_MATCH` for the grid filter model, `ORDER_BY`
5267
- * for the sort model and `OFFSET` for paging - and sends an empty `REQUEST`
5268
- * payload. A request reply without `criteriaOnlyRequest` expects its inputs in `REQUEST`
5269
- * instead, so filtering, sorting and paging would silently do nothing.
5270
- *
5271
- * DATASERVER resources are always supported.
5272
- * @returns `true` when SSRM can be used, `false` after reporting a `resource-type` error.
5273
- * @internal
5274
- */
5275
- private isSsrmSupportedForResource;
5276
- /**
5277
- * Leaves the grid with no server-side datasource, for a resource SSRM cannot serve.
5278
- * @remarks
5279
- * Clears any rows and hands the grid a `null` datasource, so AG Grid never calls `getRows()` for
5280
- * this resource.
5281
- * @internal
5282
- */
5283
- private refuseServerSideDatasource;
5284
- private getResourceIndexes;
5285
- private createReqRepRequest;
5286
- /**
5287
- * Creates a polling stream for REQUEST_SERVER resources.
5288
- * @remarks
5289
- * Creates a separate `Datasource` instance configured to poll all currently loaded rows
5290
- * (from offset 0 to current offset + maxRows). This enables change detection across all
5291
- * loaded data, not just the current page.
5292
- *
5293
- * The separate datasource instance has built-in polling logic (pollingInterval, pollTriggerEvents)
5294
- * and manages its own lifecycle independently of the snapshot datasource.
5295
- * @param existingParams - The current request parameters (includes OFFSET, MAX_ROWS, etc.)
5296
- * @returns Object containing the polling stream and the datasource instance
5297
- * @internal
5298
- */
5299
- private createReqRepStream;
5300
- /**
5301
- * Stores the previous poll result for comparison (poll N vs poll N-1).
5302
- * @remarks
5303
- * This enables efficient change detection by comparing consecutive polls instead of
5304
- * maintaining the entire dataset in memory. Only stores the last poll result.
5305
- * @internal
5306
- */
5307
- private previousPollResult;
5308
- /**
5309
- * Tracks whether the baseline poll has been captured for the current polling stream.
5310
- * @remarks
5311
- * Used to distinguish "no baseline yet" from "baseline is empty". Without this flag,
5312
- * an empty initial poll (e.g. resource starts with zero rows) leaves
5313
- * `previousPollResult.size === 0`, so the next poll — which contains newly-inserted
5314
- * rows — is treated as another "first poll" and stored as baseline instead of being
5315
- * applied. The first inserted row would then never appear in the grid.
5553
+ * Honours `pollTriggerEvents` without polling: a commit ACK for one of the listed events
5554
+ * means a write went through this session, so the loaded blocks are re-read in place - the
5555
+ * same action as `applyTransaction`, which keeps the grid's row count and scroll position.
5556
+ * @remarks REQUEST_SERVER only. DATASERVER already receives every change on the paging
5557
+ * subscription, so a commit-triggered re-read there would just duplicate the live push.
5316
5558
  * @internal
5317
5559
  */
5318
- private hasCapturedFirstPollResult;
5560
+ private setupCommitTriggeredRefresh;
5561
+ /** Safe to call when the listener was never registered. @internal */
5562
+ private teardownCommitTriggeredRefresh;
5319
5563
  /**
5320
- * Resets the previous poll result comparison state.
5321
- * @remarks
5322
- * Called when the polling stream is destroyed or recreated with new parameters
5323
- * (e.g., user scrolls to a different page, or filters/sorting changes).
5324
- * @internal
5564
+ * Creates a snapshot request to the server.
5565
+ * @param existingParams - Optional existing parameters to include
5566
+ * @returns The server response
5325
5567
  */
5326
- resetPreviousPollResult(): void;
5568
+ private createSnapshot;
5327
5569
  /**
5328
- * Applies polling updates for REQUEST_SERVER resources in SSRM.
5329
- * @remarks
5330
- * Compares the current poll result (poll N) with the previous poll result (poll N-1)
5331
- * to detect inserts, updates, and deletes. Changes are applied to the grid using
5332
- * `applyServerSideTransaction` to avoid interfering with SSRM's cache management.
5333
- *
5334
- * The first poll is stored without applying changes (nothing to compare yet).
5335
- * Subsequent polls are compared to detect changes efficiently.
5336
- * @param result - The polling result from the REQUEST_SERVER resource
5570
+ * Opens the paged DATASERVER subscription used to serve grid blocks.
5571
+ * @remarks Deliberately a stream and not a snapshot: paging is a MORE_ROWS request against a
5572
+ * live subscription, and a fresh DATA_LOGON would always come back with page 1.
5337
5573
  * @internal
5338
5574
  */
5339
- private applyReqRepPollingUpdate;
5340
- private applyLiveServerSideUpdate;
5341
5575
  private createDataserverStream;
5342
5576
  private getAgColumnDefs;
5343
- applyTransaction(transaction: any): any;
5344
5577
  loadMore(): void;
5345
5578
  }
5346
5579
 
5347
- declare const GridProServerSideDatasource_base: (new (...args: any[]) => {
5580
+ declare const GridProInfiniteDatasource_base: (new (...args: any[]) => {
5348
5581
  #_container: FoundationLayoutContainer | LayoutCacheContainer | DOMContainer;
5349
5582
  #_latestTokenCode: string;
5350
5583
  #_hasFirstLoaded: boolean;
@@ -5713,24 +5946,570 @@ declare const GridProServerSideDatasource_base: (new (...args: any[]) => {
5713
5946
  }) & typeof GridProBaseDatasource;
5714
5947
 
5715
5948
  /**
5716
- * Configuration options for the grid status bar components
5949
+ * The available Grid Pro Renderer Types
5717
5950
  * @public
5718
- * @remarks
5719
- * This requires AG Grid Enterprise module to be enabled.
5720
- * Status bar components will only be displayed if the Enterprise module is available.
5721
- * @see https://www.ag-grid.com/javascript-data-grid/component-status-bar/
5722
5951
  */
5723
- export declare interface GridProStatusBarConfig {
5724
- /**
5725
- * Enable row count status bar component.
5726
- * @remarks Default is false.
5727
- */
5728
- rows?: boolean;
5729
- /**
5730
- * Enable max rows status bar component.
5731
- * @remarks Default is false.
5732
- */
5733
- maxRows?: boolean;
5952
+ export declare enum GridProRendererTypes {
5953
+ action = "action",
5954
+ actionsMenu = "actionsMenu",
5955
+ boolean = "boolean",
5956
+ editable = "editable",
5957
+ icon = "icon",
5958
+ text = "text",// TODO: textField :(
5959
+ select = "select",
5960
+ statusPill = "statusPill",
5961
+ dateEditor = "dateEditor",
5962
+ selectEditor = "selectEditor",
5963
+ numberEditor = "numberEditor",
5964
+ stringEditor = "stringEditor",
5965
+ multiselectEditor = "multiselectEditor"
5966
+ }
5967
+
5968
+ /**
5969
+ * A Genesis Datasource element, for server-side | SSRM-compatible data fetching and used exclusively by the GridPro element.
5970
+ * @remarks Only supports Server-Side Row Model. Requires `@ag-grid-enterprise/server-side-row-model` setup and valid AG Grid Enterprise license.
5971
+ *
5972
+ * **Supported resources**: DATASERVER resources, and REQUEST_SERVER (req/rep) resources that declare
5973
+ * `criteriaOnlyRequest`. A req/rep resource without it reports a `resource-type` error and no
5974
+ * datasource is attached to the grid.
5975
+ *
5976
+ * **Custom Sort Indicators**: This datasource automatically applies custom sort indicators that are always visible (instead of only on hover).
5977
+ * Sortable columns will show a subtle sort icon even when not sorted, and active sort indicators will be more prominent.
5978
+ * The custom styling uses AG Grid's native icon font for consistency with the grid theme.
5979
+ *
5980
+ * @beta
5981
+ *
5982
+ * @fires base-datasource-error - Fired when a datasource error is reported. detail: `BaseDatasourceErrorEventDetail`
5983
+ * @fires datasource-error - Fired when a datasource error occurs (for grid integration). detail: `DatasourceErrorEventDetail`
5984
+ * @fires base-datasource-connected - Fired when error state is cleared after connection succeeds
5985
+ * @fires datasource-loading-finished - Fired when pending stream transactions are flushed with no row changes
5986
+ * @fires datasource-no-data-available - Fired when loading finishes with an empty row set
5987
+ * @fires datasource-data-changed - Fired when row data changes from applied stream transactions. detail: `DataChangedEventDetail`
5988
+ * @fires cache-filter-config - Fired to persist filter configuration for the grid
5989
+ * @fires refresh-server-side - Fired to request a server-side refresh. detail: `RefreshServerSideEventDetail`
5990
+ * @fires set-server-side-datasource - Fired to attach or clear the server-side row model datasource
5991
+ * @fires datasource-loading-started - Fired when a server-side load cycle starts
5992
+ * @fires add-grid-css-class - Fired to add a CSS class on the grid host (e.g. server-side styling). detail: `GridCssClassEventDetail`
5993
+ * @fires remove-grid-css-class - Fired to remove a CSS class from the grid host. detail: `GridCssClassEventDetail`
5994
+ * @fires datasource-initialize - Fired to hand off server-side grid options. detail: `InitializeEventDetail`
5995
+ * @fires datasource-init - Fired when the server-side grid model should initialize data
5996
+ * @fires datasource-schema-updated - Fired when column metadata or defs are updated. detail: `SchemaUpdatedEventDetail`
5997
+ * @fires datasource-filters-restored - Fired when persisted filters are reapplied
5998
+ * @fires datasource-data-cleared - Fired when server-side row data is cleared. detail: `DataClearedEventDetail`
5999
+ * @fires apply-server-side-transaction - Fired to apply a server-side row transaction
6000
+ * @fires datasource-ready - Fired when the host grid is ready to start loading data
6001
+ */
6002
+ export declare class GridProServerSideDatasource extends GridProServerSideDatasource_base {
6003
+ serializer: JSONSerializer;
6004
+ pollingDatasource: Datasource;
6005
+ /**
6006
+ * Enable live updates for the grid.
6007
+ * @remarks Only works with DATASERVER resources (StreamDatasource) right now.
6008
+ */
6009
+ liveUpdates: boolean;
6010
+ request: any;
6011
+ private indexes;
6012
+ private ssrmDatasource;
6013
+ private liveUpdatesStream;
6014
+ private sortIndicatorCSSDestroy;
6015
+ resourceNameChanged(oldValue: string, newValue: string): void;
6016
+ criteriaChanged(oldCriteria: string, newCriteria: string): void;
6017
+ connectedCallback(): void;
6018
+ disconnectedCallback(): void;
6019
+ deepClone(): Node;
6020
+ /**
6021
+ * Resets the grid data while keeping columnDefs and reloads data.
6022
+ * @remarks This is used when the grid is already initialized and we want to reload the data due to a criteria/filter change.
6023
+ * @beta
6024
+ */
6025
+ reloadResourceData(params?: DatasourceOptions): Promise<void>;
6026
+ /**
6027
+ * Applies custom sort indicator styling for server-side datasource
6028
+ * @internal
6029
+ */
6030
+ private applyServerSideSortIndicatorStyling;
6031
+ /**
6032
+ * Removes custom sort indicator styling
6033
+ * @internal
6034
+ */
6035
+ private removeServerSideSortIndicatorStyling;
6036
+ init(): Promise<void>;
6037
+ private clearReadyListener;
6038
+ private onDatasourceReady;
6039
+ destroy(): Promise<void>;
6040
+ restart(): Promise<void>;
6041
+ private clearRowData;
6042
+ /**
6043
+ * Checks whether the resolved resource can be served through the Server-Side Row Model.
6044
+ * @remarks
6045
+ * REQUEST_SERVER (req/rep) resources are only supported when the request reply declares
6046
+ * `criteriaOnlyRequest` (`CRITERIA_ONLY_REQUEST` in its metadata). SSRM drives a req/rep
6047
+ * resource purely through `DETAILS` - `CRITERIA_MATCH` for the grid filter model, `ORDER_BY`
6048
+ * for the sort model and `OFFSET` for paging - and sends an empty `REQUEST`
6049
+ * payload. A request reply without `criteriaOnlyRequest` expects its inputs in `REQUEST`
6050
+ * instead, so filtering, sorting and paging would silently do nothing.
6051
+ *
6052
+ * DATASERVER resources are always supported.
6053
+ * @returns `true` when SSRM can be used, `false` after reporting a `resource-type` error.
6054
+ * @internal
6055
+ */
6056
+ private isSsrmSupportedForResource;
6057
+ /**
6058
+ * Leaves the grid with no server-side datasource, for a resource SSRM cannot serve.
6059
+ * @remarks
6060
+ * Clears any rows and hands the grid a `null` datasource, so AG Grid never calls `getRows()` for
6061
+ * this resource.
6062
+ * @internal
6063
+ */
6064
+ private refuseServerSideDatasource;
6065
+ private createReqRepRequest;
6066
+ /**
6067
+ * Creates a polling stream for REQUEST_SERVER resources.
6068
+ * @remarks
6069
+ * Creates a separate `Datasource` instance configured to poll all currently loaded rows
6070
+ * (from offset 0 to current offset + maxRows). This enables change detection across all
6071
+ * loaded data, not just the current page.
6072
+ *
6073
+ * The separate datasource instance has built-in polling logic (pollingInterval, pollTriggerEvents)
6074
+ * and manages its own lifecycle independently of the snapshot datasource.
6075
+ * @param existingParams - The current request parameters (includes OFFSET, MAX_ROWS, etc.)
6076
+ * @returns Object containing the polling stream and the datasource instance
6077
+ * @internal
6078
+ */
6079
+ private createReqRepStream;
6080
+ /**
6081
+ * Stores the previous poll result for comparison (poll N vs poll N-1).
6082
+ * @remarks
6083
+ * This enables efficient change detection by comparing consecutive polls instead of
6084
+ * maintaining the entire dataset in memory. Only stores the last poll result.
6085
+ * @internal
6086
+ */
6087
+ private previousPollResult;
6088
+ /**
6089
+ * Tracks whether the baseline poll has been captured for the current polling stream.
6090
+ * @remarks
6091
+ * Used to distinguish "no baseline yet" from "baseline is empty". Without this flag,
6092
+ * an empty initial poll (e.g. resource starts with zero rows) leaves
6093
+ * `previousPollResult.size === 0`, so the next poll — which contains newly-inserted
6094
+ * rows — is treated as another "first poll" and stored as baseline instead of being
6095
+ * applied. The first inserted row would then never appear in the grid.
6096
+ * @internal
6097
+ */
6098
+ private hasCapturedFirstPollResult;
6099
+ /**
6100
+ * Resets the previous poll result comparison state.
6101
+ * @remarks
6102
+ * Called when the polling stream is destroyed or recreated with new parameters
6103
+ * (e.g., user scrolls to a different page, or filters/sorting changes).
6104
+ * @internal
6105
+ */
6106
+ resetPreviousPollResult(): void;
6107
+ /**
6108
+ * Applies polling updates for REQUEST_SERVER resources in SSRM.
6109
+ * @remarks
6110
+ * Compares the current poll result (poll N) with the previous poll result (poll N-1)
6111
+ * to detect inserts, updates, and deletes. Changes are applied to the grid using
6112
+ * `applyServerSideTransaction` to avoid interfering with SSRM's cache management.
6113
+ *
6114
+ * The first poll is stored without applying changes (nothing to compare yet).
6115
+ * Subsequent polls are compared to detect changes efficiently.
6116
+ * @param result - The polling result from the REQUEST_SERVER resource
6117
+ * @internal
6118
+ */
6119
+ private applyReqRepPollingUpdate;
6120
+ private applyLiveServerSideUpdate;
6121
+ private createDataserverStream;
6122
+ private getAgColumnDefs;
6123
+ loadMore(): void;
6124
+ }
6125
+
6126
+ declare const GridProServerSideDatasource_base: (new (...args: any[]) => {
6127
+ #_container: FoundationLayoutContainer | LayoutCacheContainer | DOMContainer;
6128
+ #_latestTokenCode: string;
6129
+ #_hasFirstLoaded: boolean;
6130
+ #_cleanupTimeout: NodeJS.Timeout;
6131
+ #_shouldForceLifecycle: boolean;
6132
+ #_blockedDisconnectSurvivedGracePeriod: boolean;
6133
+ cloneNode(deep?: boolean): Node;
6134
+ deepClone(): Node;
6135
+ get shouldRunDisconnect(): boolean;
6136
+ get shouldRunConnect(): boolean;
6137
+ #_blockLifecycleDueToTokenChange(lifecycleType: "connect" | "disconnect" | "reconnect"): boolean;
6138
+ #_tryFindContainingLayout(e: Element): FoundationLayoutContainer | LayoutCacheContainer | DOMContainer;
6139
+ connectedCallback(): void;
6140
+ readonly $fastController: Controller;
6141
+ $emit(type: string, detail?: any, options?: Omit<CustomEventInit, "detail">): boolean | void;
6142
+ disconnectedCallback(): void;
6143
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
6144
+ accessKey: string;
6145
+ readonly accessKeyLabel: string;
6146
+ autocapitalize: string;
6147
+ autocorrect: boolean;
6148
+ dir: string;
6149
+ draggable: boolean;
6150
+ hidden: boolean;
6151
+ inert: boolean;
6152
+ innerText: string;
6153
+ lang: string;
6154
+ readonly offsetHeight: number;
6155
+ readonly offsetLeft: number;
6156
+ readonly offsetParent: Element | null;
6157
+ readonly offsetTop: number;
6158
+ readonly offsetWidth: number;
6159
+ outerText: string;
6160
+ popover: string | null;
6161
+ spellcheck: boolean;
6162
+ title: string;
6163
+ translate: boolean;
6164
+ writingSuggestions: string;
6165
+ attachInternals(): ElementInternals;
6166
+ click(): void;
6167
+ hidePopover(): void;
6168
+ showPopover(): void;
6169
+ togglePopover(options?: boolean): boolean;
6170
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6171
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
6172
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6173
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
6174
+ readonly attributes: NamedNodeMap;
6175
+ get classList(): DOMTokenList;
6176
+ set classList(value: string): any;
6177
+ className: string;
6178
+ readonly clientHeight: number;
6179
+ readonly clientLeft: number;
6180
+ readonly clientTop: number;
6181
+ readonly clientWidth: number;
6182
+ readonly currentCSSZoom: number;
6183
+ id: string;
6184
+ innerHTML: string;
6185
+ readonly localName: string;
6186
+ readonly namespaceURI: string | null;
6187
+ onfullscreenchange: (this: Element, ev: Event) => any;
6188
+ onfullscreenerror: (this: Element, ev: Event) => any;
6189
+ outerHTML: string;
6190
+ readonly ownerDocument: Document;
6191
+ get part(): DOMTokenList;
6192
+ set part(value: string): any;
6193
+ readonly prefix: string | null;
6194
+ readonly scrollHeight: number;
6195
+ scrollLeft: number;
6196
+ scrollTop: number;
6197
+ readonly scrollWidth: number;
6198
+ readonly shadowRoot: ShadowRoot | null;
6199
+ slot: string;
6200
+ readonly tagName: string;
6201
+ attachShadow(init: ShadowRootInit): ShadowRoot;
6202
+ checkVisibility(options?: CheckVisibilityOptions): boolean;
6203
+ closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K];
6204
+ closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K];
6205
+ closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K];
6206
+ closest<E extends Element = Element>(selectors: string): E;
6207
+ computedStyleMap(): StylePropertyMapReadOnly;
6208
+ getAttribute(qualifiedName: string): string | null;
6209
+ getAttributeNS(namespace: string | null, localName: string): string | null;
6210
+ getAttributeNames(): string[];
6211
+ getAttributeNode(qualifiedName: string): Attr | null;
6212
+ getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
6213
+ getBoundingClientRect(): DOMRect;
6214
+ getClientRects(): DOMRectList;
6215
+ getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
6216
+ getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
6217
+ getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
6218
+ getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
6219
+ getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
6220
+ getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
6221
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
6222
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
6223
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
6224
+ getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
6225
+ getHTML(options?: GetHTMLOptions): string;
6226
+ hasAttribute(qualifiedName: string): boolean;
6227
+ hasAttributeNS(namespace: string | null, localName: string): boolean;
6228
+ hasAttributes(): boolean;
6229
+ hasPointerCapture(pointerId: number): boolean;
6230
+ insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
6231
+ insertAdjacentHTML(position: InsertPosition, string: string): void;
6232
+ insertAdjacentText(where: InsertPosition, data: string): void;
6233
+ matches(selectors: string): boolean;
6234
+ releasePointerCapture(pointerId: number): void;
6235
+ removeAttribute(qualifiedName: string): void;
6236
+ removeAttributeNS(namespace: string | null, localName: string): void;
6237
+ removeAttributeNode(attr: Attr): Attr;
6238
+ requestFullscreen(options?: FullscreenOptions): Promise<void>;
6239
+ requestPointerLock(options?: PointerLockOptions): Promise<void>;
6240
+ scroll(options?: ScrollToOptions): void;
6241
+ scroll(x: number, y: number): void;
6242
+ scrollBy(options?: ScrollToOptions): void;
6243
+ scrollBy(x: number, y: number): void;
6244
+ scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
6245
+ scrollTo(options?: ScrollToOptions): void;
6246
+ scrollTo(x: number, y: number): void;
6247
+ setAttribute(qualifiedName: string, value: string): void;
6248
+ setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
6249
+ setAttributeNode(attr: Attr): Attr | null;
6250
+ setAttributeNodeNS(attr: Attr): Attr | null;
6251
+ setHTMLUnsafe(html: string): void;
6252
+ setPointerCapture(pointerId: number): void;
6253
+ toggleAttribute(qualifiedName: string, force?: boolean): boolean;
6254
+ webkitMatchesSelector(selectors: string): boolean;
6255
+ textContent: string;
6256
+ readonly baseURI: string;
6257
+ readonly childNodes: NodeListOf<ChildNode>;
6258
+ readonly firstChild: ChildNode | null;
6259
+ readonly isConnected: boolean;
6260
+ readonly lastChild: ChildNode | null;
6261
+ readonly nextSibling: ChildNode | null;
6262
+ readonly nodeName: string;
6263
+ readonly nodeType: number;
6264
+ nodeValue: string | null;
6265
+ readonly parentElement: HTMLElement | null;
6266
+ readonly parentNode: ParentNode | null;
6267
+ readonly previousSibling: ChildNode | null;
6268
+ appendChild<T_1 extends Node>(node: T_1): T_1;
6269
+ compareDocumentPosition(other: Node): number;
6270
+ contains(other: Node | null): boolean;
6271
+ getRootNode(options?: GetRootNodeOptions): Node;
6272
+ hasChildNodes(): boolean;
6273
+ insertBefore<T_1 extends Node>(node: T_1, child: Node | null): T_1;
6274
+ isDefaultNamespace(namespace: string | null): boolean;
6275
+ isEqualNode(otherNode: Node | null): boolean;
6276
+ isSameNode(otherNode: Node | null): boolean;
6277
+ lookupNamespaceURI(prefix: string | null): string | null;
6278
+ lookupPrefix(namespace: string | null): string | null;
6279
+ normalize(): void;
6280
+ removeChild<T_1 extends Node>(child: T_1): T_1;
6281
+ replaceChild<T_1 extends Node>(node: Node, child: T_1): T_1;
6282
+ readonly ELEMENT_NODE: 1;
6283
+ readonly ATTRIBUTE_NODE: 2;
6284
+ readonly TEXT_NODE: 3;
6285
+ readonly CDATA_SECTION_NODE: 4;
6286
+ readonly ENTITY_REFERENCE_NODE: 5;
6287
+ readonly ENTITY_NODE: 6;
6288
+ readonly PROCESSING_INSTRUCTION_NODE: 7;
6289
+ readonly COMMENT_NODE: 8;
6290
+ readonly DOCUMENT_NODE: 9;
6291
+ readonly DOCUMENT_TYPE_NODE: 10;
6292
+ readonly DOCUMENT_FRAGMENT_NODE: 11;
6293
+ readonly NOTATION_NODE: 12;
6294
+ readonly DOCUMENT_POSITION_DISCONNECTED: 1;
6295
+ readonly DOCUMENT_POSITION_PRECEDING: 2;
6296
+ readonly DOCUMENT_POSITION_FOLLOWING: 4;
6297
+ readonly DOCUMENT_POSITION_CONTAINS: 8;
6298
+ readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
6299
+ readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
6300
+ dispatchEvent(event: Event): boolean;
6301
+ ariaActiveDescendantElement: Element | null;
6302
+ ariaAtomic: string | null;
6303
+ ariaAutoComplete: string | null;
6304
+ ariaBrailleLabel: string | null;
6305
+ ariaBrailleRoleDescription: string | null;
6306
+ ariaBusy: string | null;
6307
+ ariaChecked: string | null;
6308
+ ariaColCount: string | null;
6309
+ ariaColIndex: string | null;
6310
+ ariaColIndexText: string | null;
6311
+ ariaColSpan: string | null;
6312
+ ariaControlsElements: ReadonlyArray<Element> | null;
6313
+ ariaCurrent: string | null;
6314
+ ariaDescribedByElements: ReadonlyArray<Element> | null;
6315
+ ariaDescription: string | null;
6316
+ ariaDetailsElements: ReadonlyArray<Element> | null;
6317
+ ariaDisabled: string | null;
6318
+ ariaErrorMessageElements: ReadonlyArray<Element> | null;
6319
+ ariaExpanded: string | null;
6320
+ ariaFlowToElements: ReadonlyArray<Element> | null;
6321
+ ariaHasPopup: string | null;
6322
+ ariaHidden: string | null;
6323
+ ariaInvalid: string | null;
6324
+ ariaKeyShortcuts: string | null;
6325
+ ariaLabel: string | null;
6326
+ ariaLabelledByElements: ReadonlyArray<Element> | null;
6327
+ ariaLevel: string | null;
6328
+ ariaLive: string | null;
6329
+ ariaModal: string | null;
6330
+ ariaMultiLine: string | null;
6331
+ ariaMultiSelectable: string | null;
6332
+ ariaOrientation: string | null;
6333
+ ariaOwnsElements: ReadonlyArray<Element> | null;
6334
+ ariaPlaceholder: string | null;
6335
+ ariaPosInSet: string | null;
6336
+ ariaPressed: string | null;
6337
+ ariaReadOnly: string | null;
6338
+ ariaRelevant: string | null;
6339
+ ariaRequired: string | null;
6340
+ ariaRoleDescription: string | null;
6341
+ ariaRowCount: string | null;
6342
+ ariaRowIndex: string | null;
6343
+ ariaRowIndexText: string | null;
6344
+ ariaRowSpan: string | null;
6345
+ ariaSelected: string | null;
6346
+ ariaSetSize: string | null;
6347
+ ariaSort: string | null;
6348
+ ariaValueMax: string | null;
6349
+ ariaValueMin: string | null;
6350
+ ariaValueNow: string | null;
6351
+ ariaValueText: string | null;
6352
+ role: string | null;
6353
+ animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
6354
+ getAnimations(options?: GetAnimationsOptions): Animation[];
6355
+ after(...nodes: (Node | string)[]): void;
6356
+ before(...nodes: (Node | string)[]): void;
6357
+ remove(): void;
6358
+ replaceWith(...nodes: (Node | string)[]): void;
6359
+ readonly nextElementSibling: Element | null;
6360
+ readonly previousElementSibling: Element | null;
6361
+ readonly childElementCount: number;
6362
+ readonly children: HTMLCollection;
6363
+ readonly firstElementChild: Element | null;
6364
+ readonly lastElementChild: Element | null;
6365
+ append(...nodes: (Node | string)[]): void;
6366
+ prepend(...nodes: (Node | string)[]): void;
6367
+ querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
6368
+ querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
6369
+ querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
6370
+ querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
6371
+ querySelector<E extends Element = Element>(selectors: string): E | null;
6372
+ querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
6373
+ querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
6374
+ querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
6375
+ querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
6376
+ querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
6377
+ replaceChildren(...nodes: (Node | string)[]): void;
6378
+ readonly assignedSlot: HTMLSlotElement | null;
6379
+ readonly attributeStyleMap: StylePropertyMap;
6380
+ get style(): CSSStyleDeclaration;
6381
+ set style(cssText: string): any;
6382
+ contentEditable: string;
6383
+ enterKeyHint: string;
6384
+ inputMode: string;
6385
+ readonly isContentEditable: boolean;
6386
+ onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
6387
+ onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
6388
+ onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
6389
+ onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
6390
+ onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
6391
+ onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6392
+ onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
6393
+ onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6394
+ onbeforetoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
6395
+ onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
6396
+ oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6397
+ oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6398
+ oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6399
+ onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6400
+ onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6401
+ onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6402
+ oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6403
+ oncontextmenu: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6404
+ oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6405
+ oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
6406
+ oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6407
+ oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
6408
+ ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
6409
+ ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
6410
+ ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
6411
+ ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
6412
+ ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
6413
+ ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
6414
+ ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
6415
+ ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
6416
+ ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6417
+ onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6418
+ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6419
+ onerror: OnErrorEventHandler;
6420
+ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
6421
+ onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
6422
+ ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6423
+ oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6424
+ oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6425
+ onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
6426
+ onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
6427
+ onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
6428
+ onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6429
+ onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6430
+ onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6431
+ onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6432
+ onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6433
+ onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
6434
+ onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
6435
+ onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
6436
+ onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
6437
+ onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
6438
+ onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
6439
+ onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
6440
+ onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
6441
+ onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6442
+ onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6443
+ onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6444
+ onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6445
+ onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6446
+ onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6447
+ onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6448
+ onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6449
+ onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6450
+ onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6451
+ onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6452
+ onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
6453
+ onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
6454
+ onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6455
+ onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6456
+ onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
6457
+ onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6458
+ onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6459
+ onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
6460
+ onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6461
+ onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6462
+ onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6463
+ onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6464
+ onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6465
+ onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6466
+ onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6467
+ onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
6468
+ onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6469
+ ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6470
+ ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
6471
+ ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
6472
+ ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
6473
+ ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
6474
+ ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
6475
+ ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
6476
+ ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
6477
+ ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
6478
+ ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
6479
+ onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6480
+ onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6481
+ onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6482
+ onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6483
+ onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6484
+ onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
6485
+ onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
6486
+ autofocus: boolean;
6487
+ readonly dataset: DOMStringMap;
6488
+ nonce?: string;
6489
+ tabIndex: number;
6490
+ blur(): void;
6491
+ focus(options?: FocusOptions): void;
6492
+ }) & typeof GridProBaseDatasource;
6493
+
6494
+ /**
6495
+ * Configuration options for the grid status bar components
6496
+ * @public
6497
+ * @remarks
6498
+ * This requires AG Grid Enterprise module to be enabled.
6499
+ * Status bar components will only be displayed if the Enterprise module is available.
6500
+ * @see https://www.ag-grid.com/javascript-data-grid/component-status-bar/
6501
+ */
6502
+ export declare interface GridProStatusBarConfig {
6503
+ /**
6504
+ * Enable row count status bar component.
6505
+ * @remarks Default is false.
6506
+ */
6507
+ rows?: boolean;
6508
+ /**
6509
+ * Enable max rows status bar component.
6510
+ * @remarks Default is false.
6511
+ */
6512
+ maxRows?: boolean;
5734
6513
  /**
5735
6514
  * Configure load more button status bar component.
5736
6515
  * @remarks Can be boolean for simple enable/disable or object for detailed configuration.
@@ -6674,6 +7453,16 @@ export declare enum OperationType {
6674
7453
  /** The CSS class to use for the options element's class in the dropdown */
6675
7454
  export declare const optionsClass = "options";
6676
7455
 
7456
+ /**
7457
+ * Event detail for requesting an infinite row model refresh.
7458
+ * @remarks Mirrors {@link RefreshServerSideEventDetail}: `purge` drops the grid's block cache
7459
+ * and re-reads the rows; without it the loaded blocks are re-read in place, keeping the row
7460
+ * count and scroll position.
7461
+ */
7462
+ export declare interface RefreshInfiniteCacheEventDetail {
7463
+ purge: boolean;
7464
+ }
7465
+
6677
7466
  /**
6678
7467
  * Event detail for requesting a server-side row model refresh.
6679
7468
  */
@@ -7129,7 +7918,7 @@ export declare type ServerSideDatasourceOptions = {
7129
7918
  onDataAvailableFunc?: () => void;
7130
7919
  resourceName: string;
7131
7920
  resourceParams?: DataserverParams | RequestParams;
7132
- resourceIndexes?: Map<string, [string]>;
7921
+ resourceIndexes?: Map<string, string[]>;
7133
7922
  resourceColDefs?: MetadataDetail[];
7134
7923
  maxRows?: number;
7135
7924
  maxView?: number;
@@ -7137,6 +7926,14 @@ export declare type ServerSideDatasourceOptions = {
7137
7926
  usePolling?: boolean;
7138
7927
  };
7139
7928
 
7929
+ /**
7930
+ * Event detail for attaching or clearing the Infinite Row Model datasource.
7931
+ * @remarks `null` clears the datasource from the grid on teardown.
7932
+ */
7933
+ export declare interface SetInfiniteDatasourceEventDetail {
7934
+ datasource: GenesisInfiniteDatasource | null;
7935
+ }
7936
+
7140
7937
  /**
7141
7938
  * Event detail for size changes
7142
7939
  */