@genesislcap/foundation-ui 15.50.0-BACE-0.1 → 15.50.1

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.
@@ -13653,6 +13653,60 @@
13653
13653
  "module": "src/utils/base-datasource.ts"
13654
13654
  }
13655
13655
  },
13656
+ {
13657
+ "kind": "field",
13658
+ "name": "pendingMoreRows",
13659
+ "type": {
13660
+ "text": "number"
13661
+ },
13662
+ "privacy": "private",
13663
+ "default": "0",
13664
+ "description": "How many DATASERVER MORE_ROWS sent by `requestMoreRows` are awaiting their reply, so a reply\ncan be told apart from the logon batch.",
13665
+ "inheritedFrom": {
13666
+ "name": "<local>_BaseDatasource",
13667
+ "module": "src/utils/base-datasource.ts"
13668
+ }
13669
+ },
13670
+ {
13671
+ "kind": "field",
13672
+ "name": "serverMoreRows",
13673
+ "type": {
13674
+ "text": "boolean | undefined"
13675
+ },
13676
+ "privacy": "private",
13677
+ "description": "The latest MORE_ROWS the DATASERVER stream sent.",
13678
+ "inheritedFrom": {
13679
+ "name": "<local>_BaseDatasource",
13680
+ "module": "src/utils/base-datasource.ts"
13681
+ }
13682
+ },
13683
+ {
13684
+ "kind": "field",
13685
+ "name": "viewRowCount",
13686
+ "type": {
13687
+ "text": "number"
13688
+ },
13689
+ "privacy": "private",
13690
+ "default": "0",
13691
+ "description": "Rows in the server's view, counted off the stream (INSERTs in, DELETEs out). Kept apart from\nthe rendered rows, which a subclass may not trim on a DELETE.",
13692
+ "inheritedFrom": {
13693
+ "name": "<local>_BaseDatasource",
13694
+ "module": "src/utils/base-datasource.ts"
13695
+ }
13696
+ },
13697
+ {
13698
+ "kind": "field",
13699
+ "name": "pagingStopped",
13700
+ "type": {
13701
+ "text": "'view-full' | 'stalled' | undefined"
13702
+ },
13703
+ "privacy": "private",
13704
+ "description": "Set when DATASERVER paging stops short of MORE_ROWS false - see updateStreamPagingState.",
13705
+ "inheritedFrom": {
13706
+ "name": "<local>_BaseDatasource",
13707
+ "module": "src/utils/base-datasource.ts"
13708
+ }
13709
+ },
13656
13710
  {
13657
13711
  "kind": "field",
13658
13712
  "name": "nextRequestOffset",
@@ -13831,6 +13885,35 @@
13831
13885
  "module": "src/utils/base-datasource.ts"
13832
13886
  }
13833
13887
  },
13888
+ {
13889
+ "kind": "method",
13890
+ "name": "updateStreamPagingState",
13891
+ "privacy": "private",
13892
+ "return": {
13893
+ "type": {
13894
+ "text": "void"
13895
+ }
13896
+ },
13897
+ "parameters": [
13898
+ {
13899
+ "name": "result",
13900
+ "type": {
13901
+ "text": "{ MORE_ROWS?: unknown; ROW?: unknown[] }"
13902
+ }
13903
+ },
13904
+ {
13905
+ "name": "rows",
13906
+ "type": {
13907
+ "text": "FilteredDataServerResult | undefined"
13908
+ }
13909
+ }
13910
+ ],
13911
+ "description": "Re-evaluates paging from a stream message.",
13912
+ "inheritedFrom": {
13913
+ "name": "<local>_BaseDatasource",
13914
+ "module": "src/utils/base-datasource.ts"
13915
+ }
13916
+ },
13834
13917
  {
13835
13918
  "kind": "method",
13836
13919
  "name": "updateRequestPagingState",
@@ -36686,6 +36769,60 @@
36686
36769
  "module": "src/utils/base-datasource.ts"
36687
36770
  }
36688
36771
  },
36772
+ {
36773
+ "kind": "field",
36774
+ "name": "pendingMoreRows",
36775
+ "type": {
36776
+ "text": "number"
36777
+ },
36778
+ "privacy": "private",
36779
+ "default": "0",
36780
+ "description": "How many DATASERVER MORE_ROWS sent by `requestMoreRows` are awaiting their reply, so a reply\ncan be told apart from the logon batch.",
36781
+ "inheritedFrom": {
36782
+ "name": "<local>_BaseDatasource",
36783
+ "module": "src/utils/base-datasource.ts"
36784
+ }
36785
+ },
36786
+ {
36787
+ "kind": "field",
36788
+ "name": "serverMoreRows",
36789
+ "type": {
36790
+ "text": "boolean | undefined"
36791
+ },
36792
+ "privacy": "private",
36793
+ "description": "The latest MORE_ROWS the DATASERVER stream sent.",
36794
+ "inheritedFrom": {
36795
+ "name": "<local>_BaseDatasource",
36796
+ "module": "src/utils/base-datasource.ts"
36797
+ }
36798
+ },
36799
+ {
36800
+ "kind": "field",
36801
+ "name": "viewRowCount",
36802
+ "type": {
36803
+ "text": "number"
36804
+ },
36805
+ "privacy": "private",
36806
+ "default": "0",
36807
+ "description": "Rows in the server's view, counted off the stream (INSERTs in, DELETEs out). Kept apart from\nthe rendered rows, which a subclass may not trim on a DELETE.",
36808
+ "inheritedFrom": {
36809
+ "name": "<local>_BaseDatasource",
36810
+ "module": "src/utils/base-datasource.ts"
36811
+ }
36812
+ },
36813
+ {
36814
+ "kind": "field",
36815
+ "name": "pagingStopped",
36816
+ "type": {
36817
+ "text": "'view-full' | 'stalled' | undefined"
36818
+ },
36819
+ "privacy": "private",
36820
+ "description": "Set when DATASERVER paging stops short of MORE_ROWS false - see updateStreamPagingState.",
36821
+ "inheritedFrom": {
36822
+ "name": "<local>_BaseDatasource",
36823
+ "module": "src/utils/base-datasource.ts"
36824
+ }
36825
+ },
36689
36826
  {
36690
36827
  "kind": "field",
36691
36828
  "name": "nextRequestOffset",
@@ -36864,6 +37001,35 @@
36864
37001
  "module": "src/utils/base-datasource.ts"
36865
37002
  }
36866
37003
  },
37004
+ {
37005
+ "kind": "method",
37006
+ "name": "updateStreamPagingState",
37007
+ "privacy": "private",
37008
+ "return": {
37009
+ "type": {
37010
+ "text": "void"
37011
+ }
37012
+ },
37013
+ "parameters": [
37014
+ {
37015
+ "name": "result",
37016
+ "type": {
37017
+ "text": "{ MORE_ROWS?: unknown; ROW?: unknown[] }"
37018
+ }
37019
+ },
37020
+ {
37021
+ "name": "rows",
37022
+ "type": {
37023
+ "text": "FilteredDataServerResult | undefined"
37024
+ }
37025
+ }
37026
+ ],
37027
+ "description": "Re-evaluates paging from a stream message.",
37028
+ "inheritedFrom": {
37029
+ "name": "<local>_BaseDatasource",
37030
+ "module": "src/utils/base-datasource.ts"
37031
+ }
37032
+ },
36867
37033
  {
36868
37034
  "kind": "method",
36869
37035
  "name": "updateRequestPagingState",
@@ -38123,6 +38289,60 @@
38123
38289
  "module": "src/utils/base-datasource.ts"
38124
38290
  }
38125
38291
  },
38292
+ {
38293
+ "kind": "field",
38294
+ "name": "pendingMoreRows",
38295
+ "type": {
38296
+ "text": "number"
38297
+ },
38298
+ "privacy": "private",
38299
+ "default": "0",
38300
+ "description": "How many DATASERVER MORE_ROWS sent by `requestMoreRows` are awaiting their reply, so a reply\ncan be told apart from the logon batch.",
38301
+ "inheritedFrom": {
38302
+ "name": "<local>_BaseDatasource",
38303
+ "module": "src/utils/base-datasource.ts"
38304
+ }
38305
+ },
38306
+ {
38307
+ "kind": "field",
38308
+ "name": "serverMoreRows",
38309
+ "type": {
38310
+ "text": "boolean | undefined"
38311
+ },
38312
+ "privacy": "private",
38313
+ "description": "The latest MORE_ROWS the DATASERVER stream sent.",
38314
+ "inheritedFrom": {
38315
+ "name": "<local>_BaseDatasource",
38316
+ "module": "src/utils/base-datasource.ts"
38317
+ }
38318
+ },
38319
+ {
38320
+ "kind": "field",
38321
+ "name": "viewRowCount",
38322
+ "type": {
38323
+ "text": "number"
38324
+ },
38325
+ "privacy": "private",
38326
+ "default": "0",
38327
+ "description": "Rows in the server's view, counted off the stream (INSERTs in, DELETEs out). Kept apart from\nthe rendered rows, which a subclass may not trim on a DELETE.",
38328
+ "inheritedFrom": {
38329
+ "name": "<local>_BaseDatasource",
38330
+ "module": "src/utils/base-datasource.ts"
38331
+ }
38332
+ },
38333
+ {
38334
+ "kind": "field",
38335
+ "name": "pagingStopped",
38336
+ "type": {
38337
+ "text": "'view-full' | 'stalled' | undefined"
38338
+ },
38339
+ "privacy": "private",
38340
+ "description": "Set when DATASERVER paging stops short of MORE_ROWS false - see updateStreamPagingState.",
38341
+ "inheritedFrom": {
38342
+ "name": "<local>_BaseDatasource",
38343
+ "module": "src/utils/base-datasource.ts"
38344
+ }
38345
+ },
38126
38346
  {
38127
38347
  "kind": "field",
38128
38348
  "name": "nextRequestOffset",
@@ -38301,6 +38521,35 @@
38301
38521
  "module": "src/utils/base-datasource.ts"
38302
38522
  }
38303
38523
  },
38524
+ {
38525
+ "kind": "method",
38526
+ "name": "updateStreamPagingState",
38527
+ "privacy": "private",
38528
+ "return": {
38529
+ "type": {
38530
+ "text": "void"
38531
+ }
38532
+ },
38533
+ "parameters": [
38534
+ {
38535
+ "name": "result",
38536
+ "type": {
38537
+ "text": "{ MORE_ROWS?: unknown; ROW?: unknown[] }"
38538
+ }
38539
+ },
38540
+ {
38541
+ "name": "rows",
38542
+ "type": {
38543
+ "text": "FilteredDataServerResult | undefined"
38544
+ }
38545
+ }
38546
+ ],
38547
+ "description": "Re-evaluates paging from a stream message.",
38548
+ "inheritedFrom": {
38549
+ "name": "<local>_BaseDatasource",
38550
+ "module": "src/utils/base-datasource.ts"
38551
+ }
38552
+ },
38304
38553
  {
38305
38554
  "kind": "method",
38306
38555
  "name": "updateRequestPagingState",
@@ -58387,6 +58636,44 @@
58387
58636
  "default": "false",
58388
58637
  "description": "Whether the server reported more rows are available beyond the ones already fetched."
58389
58638
  },
58639
+ {
58640
+ "kind": "field",
58641
+ "name": "pendingMoreRows",
58642
+ "type": {
58643
+ "text": "number"
58644
+ },
58645
+ "privacy": "private",
58646
+ "default": "0",
58647
+ "description": "How many DATASERVER MORE_ROWS sent by `requestMoreRows` are awaiting their reply, so a reply\ncan be told apart from the logon batch."
58648
+ },
58649
+ {
58650
+ "kind": "field",
58651
+ "name": "serverMoreRows",
58652
+ "type": {
58653
+ "text": "boolean | undefined"
58654
+ },
58655
+ "privacy": "private",
58656
+ "description": "The latest MORE_ROWS the DATASERVER stream sent."
58657
+ },
58658
+ {
58659
+ "kind": "field",
58660
+ "name": "viewRowCount",
58661
+ "type": {
58662
+ "text": "number"
58663
+ },
58664
+ "privacy": "private",
58665
+ "default": "0",
58666
+ "description": "Rows in the server's view, counted off the stream (INSERTs in, DELETEs out). Kept apart from\nthe rendered rows, which a subclass may not trim on a DELETE."
58667
+ },
58668
+ {
58669
+ "kind": "field",
58670
+ "name": "pagingStopped",
58671
+ "type": {
58672
+ "text": "'view-full' | 'stalled' | undefined"
58673
+ },
58674
+ "privacy": "private",
58675
+ "description": "Set when DATASERVER paging stops short of MORE_ROWS false - see updateStreamPagingState."
58676
+ },
58390
58677
  {
58391
58678
  "kind": "field",
58392
58679
  "name": "nextRequestOffset",
@@ -58591,6 +58878,31 @@
58591
58878
  ],
58592
58879
  "description": "Row extraction identical to `Datasource.snapshotFiltered`, kept local so the raw\nresponse (with MORE_ROWS/NEXT_OFFSET paging metadata) remains available."
58593
58880
  },
58881
+ {
58882
+ "kind": "method",
58883
+ "name": "updateStreamPagingState",
58884
+ "privacy": "private",
58885
+ "return": {
58886
+ "type": {
58887
+ "text": "void"
58888
+ }
58889
+ },
58890
+ "parameters": [
58891
+ {
58892
+ "name": "result",
58893
+ "type": {
58894
+ "text": "{ MORE_ROWS?: unknown; ROW?: unknown[] }"
58895
+ }
58896
+ },
58897
+ {
58898
+ "name": "rows",
58899
+ "type": {
58900
+ "text": "FilteredDataServerResult | undefined"
58901
+ }
58902
+ }
58903
+ ],
58904
+ "description": "Re-evaluates paging from a stream message."
58905
+ },
58594
58906
  {
58595
58907
  "kind": "method",
58596
58908
  "name": "updateRequestPagingState",
@@ -416,6 +416,20 @@ export declare abstract class BaseDatasource extends BaseDatasource_base {
416
416
  * Whether the server reported more rows are available beyond the ones already fetched.
417
417
  */
418
418
  protected moreRowsAvailable: boolean;
419
+ /**
420
+ * How many DATASERVER MORE_ROWS sent by `requestMoreRows` are awaiting their reply, so a reply
421
+ * can be told apart from the logon batch.
422
+ */
423
+ private pendingMoreRows;
424
+ /** The latest MORE_ROWS the DATASERVER stream sent. */
425
+ private serverMoreRows;
426
+ /**
427
+ * Rows in the server's view, counted off the stream (INSERTs in, DELETEs out). Kept apart from
428
+ * the rendered rows, which a subclass may not trim on a DELETE.
429
+ */
430
+ private viewRowCount;
431
+ /** Set when DATASERVER paging stops short of MORE_ROWS false - see updateStreamPagingState. */
432
+ private pagingStopped;
419
433
  /**
420
434
  * The OFFSET to request the next page from, for REQUEST_SERVER paging.
421
435
  */
@@ -468,6 +482,14 @@ export declare abstract class BaseDatasource extends BaseDatasource_base {
468
482
  * response (with MORE_ROWS/NEXT_OFFSET paging metadata) remains available.
469
483
  */
470
484
  private filterSnapshotResult;
485
+ /**
486
+ * Re-evaluates paging from a stream message.
487
+ * @remarks On DATASERVER, paging stops once the view is full at MAX_VIEW, as every further
488
+ * MORE_ROWS would come back empty (see `dataserverPagingStatus`), or after a MORE_ROWS came back
489
+ * empty while the view had room. It resumes when a full view shrinks, since GSF fills the freed
490
+ * room on the next MORE_ROWS.
491
+ */
492
+ private updateStreamPagingState;
471
493
  private updateRequestPagingState;
472
494
  private initialRequestOffset;
473
495
  private datasourceOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"base-datasource.d.ts","sourceRoot":"","sources":["../../../src/utils/base-datasource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-datasource.d.ts","sourceRoot":"","sources":["../../../src/utils/base-datasource.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { __awaiter, __decorate } from "tslib";
2
- import { Connect, dataServerResultFilter, Datasource, DatasourceDefaults, DatasourceEventHandler, FieldTypeEnum, MessageType, normaliseCriteria, ResourceType, } from '@genesislcap/foundation-comms';
2
+ import { Connect, dataServerResultFilter, dataserverPagingStatus, Datasource, DatasourceDefaults, DatasourceEventHandler, describeDataserverPagingStop, FieldTypeEnum, MessageType, normaliseCriteria, ResourceType, } from '@genesislcap/foundation-comms';
3
3
  import { formatTimestamp } from '@genesislcap/foundation-utils';
4
4
  import { attr, observable } from '@microsoft/fast-element';
5
5
  import { FoundationElement } from '@microsoft/fast-foundation';
@@ -27,6 +27,16 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
27
27
  * Whether the server reported more rows are available beyond the ones already fetched.
28
28
  */
29
29
  this.moreRowsAvailable = false;
30
+ /**
31
+ * How many DATASERVER MORE_ROWS sent by `requestMoreRows` are awaiting their reply, so a reply
32
+ * can be told apart from the logon batch.
33
+ */
34
+ this.pendingMoreRows = 0;
35
+ /**
36
+ * Rows in the server's view, counted off the stream (INSERTs in, DELETEs out). Kept apart from
37
+ * the rendered rows, which a subclass may not trim on a DELETE.
38
+ */
39
+ this.viewRowCount = 0;
30
40
  /**
31
41
  * The OFFSET to request the next page from, for REQUEST_SERVER paging.
32
42
  */
@@ -112,6 +122,10 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
112
122
  (_a = this.dataSub) === null || _a === void 0 ? void 0 : _a.unsubscribe();
113
123
  this.dataSub = undefined;
114
124
  this.moreRowsAvailable = false;
125
+ this.pendingMoreRows = 0;
126
+ this.serverMoreRows = undefined;
127
+ this.viewRowCount = 0;
128
+ this.pagingStopped = undefined;
115
129
  this.nextRequestOffset = 0;
116
130
  this.fetchGeneration += 1;
117
131
  const generation = this.fetchGeneration;
@@ -156,17 +170,15 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
156
170
  });
157
171
  }
158
172
  this.sourceRef = result.SOURCE_REF;
159
- if (typeof result.MORE_ROWS === 'boolean') {
160
- this.moreRowsAvailable = result.MORE_ROWS;
161
- }
173
+ const nextMessage = result.ROW ? dataServerResultFilter(result) : undefined;
174
+ this.updateStreamPagingState(result, nextMessage);
162
175
  const messageType = result.MESSAGE_TYPE;
163
176
  if (messageType && messageType === MessageType.LOGOFF_ACK) {
164
177
  this.dataSubWasLoggedOff = true;
165
178
  return;
166
179
  }
167
180
  this.dataSubWasLoggedOff = false;
168
- if (result.ROW) {
169
- const nextMessage = dataServerResultFilter(result);
181
+ if (nextMessage) {
170
182
  this.handleStreamUpdate(nextMessage);
171
183
  }
172
184
  else {
@@ -217,6 +229,7 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
217
229
  }
218
230
  try {
219
231
  if (this.datasource.resourceType === ResourceType.DATASERVER) {
232
+ this.pendingMoreRows += 1;
220
233
  yield this.connect.getMoreRows(this.sourceRef);
221
234
  return;
222
235
  }
@@ -241,6 +254,8 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
241
254
  // failed request. Leaving it false would permanently stop REQUEST_SERVER paging,
242
255
  // since nothing else re-evaluates it until the next full refetch.
243
256
  this.moreRowsAvailable = true;
257
+ // No reply is coming, so the next message carrying MORE_ROWS does not answer this one.
258
+ this.pendingMoreRows = Math.max(0, this.pendingMoreRows - 1);
244
259
  this.handleError({
245
260
  message: `Failed to request more rows for ${this.resourceName}`,
246
261
  loggerType: 'error',
@@ -269,6 +284,58 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
269
284
  return dataServerResultFilter(result).inserts;
270
285
  }
271
286
  }
287
+ /**
288
+ * Re-evaluates paging from a stream message.
289
+ * @remarks On DATASERVER, paging stops once the view is full at MAX_VIEW, as every further
290
+ * MORE_ROWS would come back empty (see `dataserverPagingStatus`), or after a MORE_ROWS came back
291
+ * empty while the view had room. It resumes when a full view shrinks, since GSF fills the freed
292
+ * room on the next MORE_ROWS.
293
+ */
294
+ updateStreamPagingState(result, rows) {
295
+ var _a, _b, _c, _d, _e;
296
+ const hasMoreRows = typeof (result === null || result === void 0 ? void 0 : result.MORE_ROWS) === 'boolean';
297
+ if (this.datasource.resourceType !== ResourceType.DATASERVER) {
298
+ if (hasMoreRows) {
299
+ this.moreRowsAvailable = result.MORE_ROWS;
300
+ }
301
+ return;
302
+ }
303
+ this.viewRowCount = Math.max(0, this.viewRowCount + ((_b = (_a = rows === null || rows === void 0 ? void 0 : rows.inserts) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) - ((_d = (_c = rows === null || rows === void 0 ? void 0 : rows.deletes) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0));
304
+ let answersRequest = false;
305
+ if (hasMoreRows) {
306
+ answersRequest = this.pendingMoreRows > 0;
307
+ this.pendingMoreRows = Math.max(0, this.pendingMoreRows - 1);
308
+ this.serverMoreRows = result.MORE_ROWS;
309
+ }
310
+ if (this.serverMoreRows === undefined) {
311
+ return;
312
+ }
313
+ const emptyReply = answersRequest && result.MORE_ROWS === true && !((_e = result.ROW) === null || _e === void 0 ? void 0 : _e.length);
314
+ const status = dataserverPagingStatus({
315
+ moreRows: this.serverMoreRows,
316
+ emptyReply,
317
+ rowsHeld: this.viewRowCount,
318
+ maxView: this.maxView,
319
+ });
320
+ if (status === 'more' && this.pagingStopped === 'view-full') {
321
+ this.pagingStopped = undefined;
322
+ }
323
+ else if ((status === 'view-full' || status === 'stalled') && !this.pagingStopped) {
324
+ this.pagingStopped = status;
325
+ const warning = describeDataserverPagingStop({
326
+ status,
327
+ resourceName: this.resourceName,
328
+ rowsHeld: this.viewRowCount,
329
+ maxView: this.maxView,
330
+ emptyReply,
331
+ attribute: 'maxView',
332
+ });
333
+ if (warning) {
334
+ logger.warn(warning);
335
+ }
336
+ }
337
+ this.moreRowsAvailable = status === 'more' && !this.pagingStopped;
338
+ }
272
339
  updateRequestPagingState(result, rowCount, requestedOffset) {
273
340
  if (Array.isArray(result) || !result) {
274
341
  this.moreRowsAvailable = false;
@@ -977,6 +977,20 @@ export declare abstract class BaseDatasource extends BaseDatasource_base {
977
977
  * Whether the server reported more rows are available beyond the ones already fetched.
978
978
  */
979
979
  protected moreRowsAvailable: boolean;
980
+ /**
981
+ * How many DATASERVER MORE_ROWS sent by `requestMoreRows` are awaiting their reply, so a reply
982
+ * can be told apart from the logon batch.
983
+ */
984
+ private pendingMoreRows;
985
+ /** The latest MORE_ROWS the DATASERVER stream sent. */
986
+ private serverMoreRows;
987
+ /**
988
+ * Rows in the server's view, counted off the stream (INSERTs in, DELETEs out). Kept apart from
989
+ * the rendered rows, which a subclass may not trim on a DELETE.
990
+ */
991
+ private viewRowCount;
992
+ /** Set when DATASERVER paging stops short of MORE_ROWS false - see updateStreamPagingState. */
993
+ private pagingStopped;
980
994
  /**
981
995
  * The OFFSET to request the next page from, for REQUEST_SERVER paging.
982
996
  */
@@ -1029,6 +1043,14 @@ export declare abstract class BaseDatasource extends BaseDatasource_base {
1029
1043
  * response (with MORE_ROWS/NEXT_OFFSET paging metadata) remains available.
1030
1044
  */
1031
1045
  private filterSnapshotResult;
1046
+ /**
1047
+ * Re-evaluates paging from a stream message.
1048
+ * @remarks On DATASERVER, paging stops once the view is full at MAX_VIEW, as every further
1049
+ * MORE_ROWS would come back empty (see `dataserverPagingStatus`), or after a MORE_ROWS came back
1050
+ * empty while the view had room. It resumes when a full view shrinks, since GSF fills the freed
1051
+ * room on the next MORE_ROWS.
1052
+ */
1053
+ private updateStreamPagingState;
1032
1054
  private updateRequestPagingState;
1033
1055
  private initialRequestOffset;
1034
1056
  private datasourceOptions;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-ui",
3
3
  "description": "Genesis Foundation UI",
4
- "version": "15.50.0-BACE-0.1",
4
+ "version": "15.50.1",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -82,12 +82,12 @@
82
82
  }
83
83
  },
84
84
  "devDependencies": {
85
- "@genesislcap/foundation-testing": "15.50.0-BACE-0.1",
86
- "@genesislcap/genx": "15.50.0-BACE-0.1",
87
- "@genesislcap/ts-builder": "15.50.0-BACE-0.1",
88
- "@genesislcap/uvu-playwright-builder": "15.50.0-BACE-0.1",
89
- "@genesislcap/vite-builder": "15.50.0-BACE-0.1",
90
- "@genesislcap/webpack-builder": "15.50.0-BACE-0.1",
85
+ "@genesislcap/foundation-testing": "15.50.1",
86
+ "@genesislcap/genx": "15.50.1",
87
+ "@genesislcap/ts-builder": "15.50.1",
88
+ "@genesislcap/uvu-playwright-builder": "15.50.1",
89
+ "@genesislcap/vite-builder": "15.50.1",
90
+ "@genesislcap/webpack-builder": "15.50.1",
91
91
  "copyfiles": "^2.4.1"
92
92
  },
93
93
  "dependencies": {
@@ -96,16 +96,16 @@
96
96
  "@fortawesome/free-regular-svg-icons": "^6.2.1",
97
97
  "@fortawesome/free-solid-svg-icons": "^6.2.1",
98
98
  "@genesiscommunitysuccess/analyzer-import-alias-plugin": "^5.0.3",
99
- "@genesislcap/expression-builder": "15.50.0-BACE-0.1",
100
- "@genesislcap/foundation-ai": "15.50.0-BACE-0.1",
101
- "@genesislcap/foundation-comms": "15.50.0-BACE-0.1",
102
- "@genesislcap/foundation-criteria": "15.50.0-BACE-0.1",
103
- "@genesislcap/foundation-errors": "15.50.0-BACE-0.1",
104
- "@genesislcap/foundation-events": "15.50.0-BACE-0.1",
105
- "@genesislcap/foundation-logger": "15.50.0-BACE-0.1",
106
- "@genesislcap/foundation-notifications": "15.50.0-BACE-0.1",
107
- "@genesislcap/foundation-user": "15.50.0-BACE-0.1",
108
- "@genesislcap/foundation-utils": "15.50.0-BACE-0.1",
99
+ "@genesislcap/expression-builder": "15.50.1",
100
+ "@genesislcap/foundation-ai": "15.50.1",
101
+ "@genesislcap/foundation-comms": "15.50.1",
102
+ "@genesislcap/foundation-criteria": "15.50.1",
103
+ "@genesislcap/foundation-errors": "15.50.1",
104
+ "@genesislcap/foundation-events": "15.50.1",
105
+ "@genesislcap/foundation-logger": "15.50.1",
106
+ "@genesislcap/foundation-notifications": "15.50.1",
107
+ "@genesislcap/foundation-user": "15.50.1",
108
+ "@genesislcap/foundation-utils": "15.50.1",
109
109
  "@microsoft/fast-colors": "5.3.1",
110
110
  "@microsoft/fast-components": "2.30.6",
111
111
  "@microsoft/fast-element": "1.14.0",