@elaraai/e3-ui 1.0.68 → 1.0.70

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.
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @packageDocumentation
9
9
  */
10
- import { NullType, BooleanType, FunctionType, StructType, VariantType, OptionType, type EastType, type ExprType } from '@elaraai/east';
10
+ import { NullType, BooleanType, FunctionType, IntegerType, StringType, StructType, VariantType, OptionType, type EastType, type ExprType } from '@elaraai/east';
11
11
  import type { DatasetDef, TaskDef } from '@elaraai/e3';
12
12
  /**
13
13
  * The two operating modes for {@link Data.bind}.
@@ -43,10 +43,10 @@ export type DataBindModeLiteral = "staged" | "direct";
43
43
  */
44
44
  export declare const DiffBindingType: StructType<{
45
45
  readonly source: import("@elaraai/east").ArrayType<VariantType<{
46
- readonly field: import("@elaraai/east").StringType;
46
+ readonly field: StringType;
47
47
  }>>;
48
48
  readonly patch: OptionType<import("@elaraai/east").ArrayType<VariantType<{
49
- readonly field: import("@elaraai/east").StringType;
49
+ readonly field: StringType;
50
50
  }>>>;
51
51
  readonly mode: VariantType<{
52
52
  readonly staged: NullType;
@@ -100,10 +100,10 @@ export declare const DataBindHandleType: <T extends EastType | string>(t: T) =>
100
100
  }>>;
101
101
  readonly binding: StructType<{
102
102
  readonly source: import("@elaraai/east").ArrayType<VariantType<{
103
- readonly field: import("@elaraai/east").StringType;
103
+ readonly field: StringType;
104
104
  }>>;
105
105
  readonly patch: OptionType<import("@elaraai/east").ArrayType<VariantType<{
106
- readonly field: import("@elaraai/east").StringType;
106
+ readonly field: StringType;
107
107
  }>>>;
108
108
  readonly mode: VariantType<{
109
109
  readonly staged: NullType;
@@ -139,9 +139,9 @@ export type BoundValue<T extends EastType> = ExprType<ReturnType<typeof DataBind
139
139
  * `bindPlatformFn.implement(...)`.
140
140
  */
141
141
  export declare const bindPlatformFn: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
142
- readonly field: import("@elaraai/east").StringType;
142
+ readonly field: StringType;
143
143
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
144
- readonly field: import("@elaraai/east").StringType;
144
+ readonly field: StringType;
145
145
  }>>>, VariantType<{
146
146
  readonly staged: NullType;
147
147
  readonly direct: NullType;
@@ -162,10 +162,10 @@ export declare const bindPlatformFn: import("@elaraai/east").GenericPlatformDefi
162
162
  }>>;
163
163
  readonly binding: StructType<{
164
164
  readonly source: import("@elaraai/east").ArrayType<VariantType<{
165
- readonly field: import("@elaraai/east").StringType;
165
+ readonly field: StringType;
166
166
  }>>;
167
167
  readonly patch: OptionType<import("@elaraai/east").ArrayType<VariantType<{
168
- readonly field: import("@elaraai/east").StringType;
168
+ readonly field: StringType;
169
169
  }>>>;
170
170
  readonly mode: VariantType<{
171
171
  readonly staged: NullType;
@@ -183,90 +183,90 @@ export declare const bindPlatformFn: import("@elaraai/east").GenericPlatformDefi
183
183
  export declare const DataBindPrimitives: {
184
184
  /** `data_read([T], source, patch, mode) -> T` — the binding's view (mode×patch). */
185
185
  readonly read: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
186
- readonly field: import("@elaraai/east").StringType;
186
+ readonly field: StringType;
187
187
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
188
- readonly field: import("@elaraai/east").StringType;
188
+ readonly field: StringType;
189
189
  }>>>, VariantType<{
190
190
  readonly staged: NullType;
191
191
  readonly direct: NullType;
192
192
  }>], "T">;
193
193
  /** `data_source([T], source, patch, mode) -> T` — raw source, no overlay. */
194
194
  readonly source: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
195
- readonly field: import("@elaraai/east").StringType;
195
+ readonly field: StringType;
196
196
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
197
- readonly field: import("@elaraai/east").StringType;
197
+ readonly field: StringType;
198
198
  }>>>, VariantType<{
199
199
  readonly staged: NullType;
200
200
  readonly direct: NullType;
201
201
  }>], "T">;
202
202
  /** `data_write([T], source, patch, mode, value) -> Null`. */
203
203
  readonly write: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
204
- readonly field: import("@elaraai/east").StringType;
204
+ readonly field: StringType;
205
205
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
206
- readonly field: import("@elaraai/east").StringType;
206
+ readonly field: StringType;
207
207
  }>>>, VariantType<{
208
208
  readonly staged: NullType;
209
209
  readonly direct: NullType;
210
210
  }>, "T"], NullType>;
211
211
  /** `data_write_and_start([T], source, patch, mode, value) -> Null`. */
212
212
  readonly writeAndStart: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
213
- readonly field: import("@elaraai/east").StringType;
213
+ readonly field: StringType;
214
214
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
215
- readonly field: import("@elaraai/east").StringType;
215
+ readonly field: StringType;
216
216
  }>>>, VariantType<{
217
217
  readonly staged: NullType;
218
218
  readonly direct: NullType;
219
219
  }>, "T"], NullType>;
220
220
  /** `data_start([T], source, patch, mode) -> Null`. */
221
221
  readonly start: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
222
- readonly field: import("@elaraai/east").StringType;
222
+ readonly field: StringType;
223
223
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
224
- readonly field: import("@elaraai/east").StringType;
224
+ readonly field: StringType;
225
225
  }>>>, VariantType<{
226
226
  readonly staged: NullType;
227
227
  readonly direct: NullType;
228
228
  }>], NullType>;
229
229
  /** `data_pending([T], source, patch, mode) -> Bool`. */
230
230
  readonly pending: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
231
- readonly field: import("@elaraai/east").StringType;
231
+ readonly field: StringType;
232
232
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
233
- readonly field: import("@elaraai/east").StringType;
233
+ readonly field: StringType;
234
234
  }>>>, VariantType<{
235
235
  readonly staged: NullType;
236
236
  readonly direct: NullType;
237
237
  }>], BooleanType>;
238
238
  /** `data_commit([T], source, patch, mode) -> Null`. */
239
239
  readonly commit: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
240
- readonly field: import("@elaraai/east").StringType;
240
+ readonly field: StringType;
241
241
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
242
- readonly field: import("@elaraai/east").StringType;
242
+ readonly field: StringType;
243
243
  }>>>, VariantType<{
244
244
  readonly staged: NullType;
245
245
  readonly direct: NullType;
246
246
  }>], NullType>;
247
247
  /** `data_discard([T], source, patch, mode) -> Null`. */
248
248
  readonly discard: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
249
- readonly field: import("@elaraai/east").StringType;
249
+ readonly field: StringType;
250
250
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
251
- readonly field: import("@elaraai/east").StringType;
251
+ readonly field: StringType;
252
252
  }>>>, VariantType<{
253
253
  readonly staged: NullType;
254
254
  readonly direct: NullType;
255
255
  }>], NullType>;
256
256
  /** `data_has([T], source, patch, mode) -> Bool`. */
257
257
  readonly has: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
258
- readonly field: import("@elaraai/east").StringType;
258
+ readonly field: StringType;
259
259
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
260
- readonly field: import("@elaraai/east").StringType;
260
+ readonly field: StringType;
261
261
  }>>>, VariantType<{
262
262
  readonly staged: NullType;
263
263
  readonly direct: NullType;
264
264
  }>], BooleanType>;
265
265
  /** `data_status([T], source, patch, mode) -> DatasetStatus`. */
266
266
  readonly status: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
267
- readonly field: import("@elaraai/east").StringType;
267
+ readonly field: StringType;
268
268
  }>>, OptionType<import("@elaraai/east").ArrayType<VariantType<{
269
- readonly field: import("@elaraai/east").StringType;
269
+ readonly field: StringType;
270
270
  }>>>, VariantType<{
271
271
  readonly staged: NullType;
272
272
  readonly direct: NullType;
@@ -361,6 +361,166 @@ export interface DataBindOptions {
361
361
  * ```
362
362
  */
363
363
  declare function bindData<T extends EastType>(dataset: DatasetDef<T> | TaskDef<T>, options?: DataBindOptions): BoundValue<T>;
364
+ /**
365
+ * The struct returned by every {@link Data.bindPaged} call — a WINDOWED view
366
+ * of a collection dataset, for sources too large to hold whole.
367
+ *
368
+ * @remarks
369
+ * Deliberately read-only: there is no `write` / `commit` / `binding`, because
370
+ * a window is not a value you can diff or stage. Bind the same dataset with
371
+ * {@link Data.bind} when you need to edit it.
372
+ *
373
+ * @property page - Read one window: `(offset, limit)` → the window's elements
374
+ * as a value of the dataset's own type. `none` means the window is still in
375
+ * flight — the call re-fires when it lands (use inside `Reactive.Root`). An
376
+ * EMPTY window means the source is exhausted at that offset, so a reader
377
+ * that walks offsets terminates on `some([])`, never on `none`.
378
+ * @property total - The source's total element count, once any window has
379
+ * landed; `none` until then.
380
+ * @property seek - Key search over the dataset, backed by the server's fence
381
+ * search (`datasetFindKey`). `none` for an Array-typed dataset: stream order
382
+ * has nothing to binary-search. Decided at bind time from the dataset's own
383
+ * type, so a component renders the affordance only where it works.
384
+ */
385
+ export declare const DataPagedHandleType: <T extends EastType | string>(t: T) => StructType<{
386
+ readonly id: StringType;
387
+ readonly page: FunctionType<[IntegerType, IntegerType], OptionType<T>>;
388
+ readonly total: FunctionType<[], OptionType<IntegerType>>;
389
+ readonly seek: OptionType<FunctionType<[VariantType<{
390
+ readonly key: StringType;
391
+ readonly prefix: StringType;
392
+ readonly fields: StructType<{
393
+ readonly values: import("@elaraai/east").ArrayType<StringType>;
394
+ readonly prefix: OptionType<StringType>;
395
+ }>;
396
+ }>], OptionType<StructType<{
397
+ readonly found: BooleanType;
398
+ readonly row: IntegerType;
399
+ readonly count: IntegerType;
400
+ }>>>>;
401
+ }>;
402
+ /**
403
+ * The TypeScript type of a {@link Data.bindPaged} handle bound to source type
404
+ * `T` — the paged sibling of {@link BoundValue}.
405
+ *
406
+ * @remarks
407
+ * As with `BoundValue`, `T` rides **structurally** in the handle's method
408
+ * signatures, so a component requiring `PagedValue<ArrayType<OpsRow>>` rejects
409
+ * a handle bound to any other type at compile time. Components that consume a
410
+ * paged source structurally (east-ui's `Plan`, which must never import e3-ui)
411
+ * match on the `page` / `total` fields alone.
412
+ *
413
+ * @typeParam T - The East type of the bound dataset value (a collection type).
414
+ */
415
+ export type PagedValue<T extends EastType> = ExprType<ReturnType<typeof DataPagedHandleType<T>>>;
416
+ /**
417
+ * The underlying `Data.bindPaged` platform-function definition. End-users
418
+ * should call {@link Data.bindPaged}; runtime implementations register
419
+ * against this raw definition via `bindPagedPlatformFn.implement(...)`.
420
+ */
421
+ export declare const bindPagedPlatformFn: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
422
+ readonly field: StringType;
423
+ }>>], StructType<{
424
+ readonly id: StringType;
425
+ readonly page: FunctionType<[IntegerType, IntegerType], OptionType<string>>;
426
+ readonly total: FunctionType<[], OptionType<IntegerType>>;
427
+ readonly seek: OptionType<FunctionType<[VariantType<{
428
+ readonly key: StringType;
429
+ readonly prefix: StringType;
430
+ readonly fields: StructType<{
431
+ readonly values: import("@elaraai/east").ArrayType<StringType>;
432
+ readonly prefix: OptionType<StringType>;
433
+ }>;
434
+ }>], OptionType<StructType<{
435
+ readonly found: BooleanType;
436
+ readonly row: IntegerType;
437
+ readonly count: IntegerType;
438
+ }>>>>;
439
+ }>>;
440
+ /**
441
+ * Low-level platform primitives that back {@link Data.bindPaged}'s handle
442
+ * methods.
443
+ *
444
+ * @internal Not for direct use — author against {@link Data.bindPaged}.
445
+ */
446
+ export declare const DataPagedPrimitives: {
447
+ /** `data_page([T], source, offset, limit) -> Option<T>` — one window (`none` = in flight). */
448
+ readonly page: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
449
+ readonly field: StringType;
450
+ }>>, IntegerType, IntegerType], OptionType<string>>;
451
+ /** `data_page_total([T], source) -> Option<Integer>` — total elements, once known. */
452
+ readonly total: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
453
+ readonly field: StringType;
454
+ }>>], OptionType<IntegerType>>;
455
+ /** `data_page_seek([T], source, query) -> Option<SeekRange>` — where a key
456
+ * query lands in the source's row order (`none` = search in flight). */
457
+ readonly seek: import("@elaraai/east").GenericPlatformDefinition<readonly ["T"], readonly [import("@elaraai/east").ArrayType<VariantType<{
458
+ readonly field: StringType;
459
+ }>>, VariantType<{
460
+ readonly key: StringType;
461
+ readonly prefix: StringType;
462
+ readonly fields: StructType<{
463
+ readonly values: import("@elaraai/east").ArrayType<StringType>;
464
+ readonly prefix: OptionType<StringType>;
465
+ }>;
466
+ }>], OptionType<StructType<{
467
+ readonly found: BooleanType;
468
+ readonly row: IntegerType;
469
+ readonly count: IntegerType;
470
+ }>>>;
471
+ };
472
+ /**
473
+ * Bind a collection dataset (Array / Set / Dict) to a WINDOWED reactive view
474
+ * of its contents — the paged sibling of {@link Data.bind}, for sources too
475
+ * large to fetch whole.
476
+ *
477
+ * Takes the {@link DatasetDef} returned by `e3.input` (or a {@link TaskDef},
478
+ * which binds its output dataset), exactly like {@link Data.bind}: the path
479
+ * and the value type both come from the def.
480
+ *
481
+ * @typeParam T - The East type of the source dataset value (a collection type).
482
+ * @param dataset - The dataset (or task) definition to bind.
483
+ * @returns A handle struct described by {@link DataPagedHandleType} — `page`
484
+ * and `total`.
485
+ *
486
+ * @remarks
487
+ * Each `page(offset, limit)` fetches exactly that window and decodes it
488
+ * against the dataset's own type — no blobs, no beast2, no manual fetch in
489
+ * user code. A window still in flight reads `none` and the call re-fires when
490
+ * it lands, so use it inside `Reactive.Root`; an empty window means the source
491
+ * is exhausted, which is how a walking reader terminates.
492
+ *
493
+ * Unlike {@link Data.bind}, a paged source is NOT preloaded or polled as a
494
+ * whole value — it is declared in the UI task's manifest under `pages`, which
495
+ * is the entire point of binding it paged.
496
+ *
497
+ * @example
498
+ * ```ts
499
+ * import { ArrayType, DictType, East, StringType } from "@elaraai/east";
500
+ * import { Plan, Reactive, UIComponentType } from "@elaraai/east-ui";
501
+ * import { Data } from "@elaraai/e3-ui";
502
+ * import * as e3 from "@elaraai/e3";
503
+ *
504
+ * // KEYED, because the Plan's canvas rows inherit the dataset's keys — the
505
+ * // same key space `page` windows and `seek` searches.
506
+ * const ops = e3.input("ops", DictType(StringType, OpsRow), new Map());
507
+ *
508
+ * // Mirrors `dataBindPagedPlan` in test/bind/data/data.examples.tsx.
509
+ * const dataBindPagedPlan = East.function([], UIComponentType, _$ => {
510
+ * return Reactive.Root(East.function([], UIComponentType, $ => {
511
+ * const paged = $.let(Data.bindPaged(ops));
512
+ * const series = $.const([…], ArrayType(Plan.Types.Series(OpsRow)));
513
+ * // A paged canvas DECLARES its window: fitting the axis to whatever
514
+ * // prefix has landed re-fits it on every window (#567 D8).
515
+ * const axis = $.const(Plan.axis({
516
+ * window: { min: week(24n), max: week(42n) }, resolution: "week",
517
+ * }));
518
+ * return Plan.Root({ axis, data: paged, series });
519
+ * }));
520
+ * });
521
+ * ```
522
+ */
523
+ declare function bindDataPaged<T extends EastType>(dataset: DatasetDef<T> | TaskDef<T>): PagedValue<T>;
364
524
  /**
365
525
  * The Data namespace — reactive dataset binding for e3 UI tasks.
366
526
  *
@@ -369,11 +529,15 @@ declare function bindData<T extends EastType>(dataset: DatasetDef<T> | TaskDef<T
369
529
  * combinations of `mode` (staged | direct) and `patch` (absent | present).
370
530
  * The full per-mode semantics matrix is documented on {@link Data.bind}.
371
531
  *
532
+ * `Data.bindPaged` is its read-only, windowed sibling for collection datasets
533
+ * too large to hold whole — see {@link Data.bindPaged}.
534
+ *
372
535
  * Use inside `Reactive.Root` for reactive re-rendering when the underlying
373
536
  * datasets change.
374
537
  */
375
538
  export declare const Data: {
376
539
  readonly bind: typeof bindData;
540
+ readonly bindPaged: typeof bindDataPaged;
377
541
  };
378
542
  export {};
379
543
  //# sourceMappingURL=data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/bind/data.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EAEH,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EAIV,KAAK,QAAQ,EACb,KAAK,QAAQ,EAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAMvD;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB;;;EAG3B,CAAC;AACH,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC;AAEvD,uDAAuD;AACvD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;EAI1B,CAAC;AACH,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC;AAMrD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,QAAQ,GAAG,MAAM,EAAE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYlE,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAMhG;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkB1B,CAAC;AAsBF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;IAC3B,oFAAoF;;;;;;;;;IAEpF,6EAA6E;;;;;;;;;IAE7E,6DAA6D;;;;;;;;;IAE7D,uEAAuE;;;;;;;;;IAEvE,sDAAsD;;;;;;;;;IAEtD,wDAAwD;;;;;;;;;IAExD,uDAAuD;;;;;;;;;IAEvD,wDAAwD;;;;;;;;;IAExD,oDAAoD;;;;;;;;;IAEpD,gEAAgE;;;;;;;;;;;;;CAE1D,CAAC;AAMX;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC5B,2DAA2D;IAC3D,IAAI,CAAC,EAAG,mBAAmB,CAAC;IAC5B;0EACsE;IACtE,KAAK,CAAC,EAAE,UAAU,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,iBAAS,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAChC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACnC,OAAO,CAAC,EAAE,eAAe,GAC1B,UAAU,CAAC,CAAC,CAAC,CAYf;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI;;CAEP,CAAC"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/bind/data.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,12 @@
7
7
  *
8
8
  * @packageDocumentation
9
9
  */
10
- import { East, NullType, BooleanType, FunctionType, StructType, VariantType, OptionType, none, some, variant, } from '@elaraai/east';
10
+ import { East, NullType, BooleanType, FunctionType, IntegerType, StringType, StructType, VariantType, OptionType, none, some, variant, } from '@elaraai/east';
11
11
  import { TreePathType, DatasetStatusType } from '@elaraai/e3-types';
12
+ // The row-source contract is east-ui's (#567): a paged handle IS a
13
+ // `PagedSourceType` — same fields, same order — so Plan / Table / ValueTree
14
+ // take it without either package importing the other's data layer.
15
+ import { SeekQueryType, SeekRangeType } from '@elaraai/east-ui';
12
16
  // ============================================================================
13
17
  // Mode + binding descriptor types — shared with the Diff component.
14
18
  // ============================================================================
@@ -238,6 +242,139 @@ function bindData(dataset, options) {
238
242
  : East.value(some(options.patch.path), OptionType(TreePathType));
239
243
  return bindPlatformFn([def.type], sourceValue, patchValue, modeValue);
240
244
  }
245
+ // ============================================================================
246
+ // Paged binding — read a collection dataset one window at a time.
247
+ // ============================================================================
248
+ /**
249
+ * The struct returned by every {@link Data.bindPaged} call — a WINDOWED view
250
+ * of a collection dataset, for sources too large to hold whole.
251
+ *
252
+ * @remarks
253
+ * Deliberately read-only: there is no `write` / `commit` / `binding`, because
254
+ * a window is not a value you can diff or stage. Bind the same dataset with
255
+ * {@link Data.bind} when you need to edit it.
256
+ *
257
+ * @property page - Read one window: `(offset, limit)` → the window's elements
258
+ * as a value of the dataset's own type. `none` means the window is still in
259
+ * flight — the call re-fires when it lands (use inside `Reactive.Root`). An
260
+ * EMPTY window means the source is exhausted at that offset, so a reader
261
+ * that walks offsets terminates on `some([])`, never on `none`.
262
+ * @property total - The source's total element count, once any window has
263
+ * landed; `none` until then.
264
+ * @property seek - Key search over the dataset, backed by the server's fence
265
+ * search (`datasetFindKey`). `none` for an Array-typed dataset: stream order
266
+ * has nothing to binary-search. Decided at bind time from the dataset's own
267
+ * type, so a component renders the affordance only where it works.
268
+ */
269
+ export const DataPagedHandleType = (t) => StructType({
270
+ id: StringType,
271
+ page: FunctionType([IntegerType, IntegerType], OptionType(t)),
272
+ total: FunctionType([], OptionType(IntegerType)),
273
+ seek: OptionType(FunctionType([SeekQueryType], OptionType(SeekRangeType))),
274
+ });
275
+ /**
276
+ * The underlying `Data.bindPaged` platform-function definition. End-users
277
+ * should call {@link Data.bindPaged}; runtime implementations register
278
+ * against this raw definition via `bindPagedPlatformFn.implement(...)`.
279
+ */
280
+ export const bindPagedPlatformFn = East.genericPlatform("data_bind_paged", ["T"], [TreePathType], StructType({
281
+ id: StringType,
282
+ page: FunctionType([IntegerType, IntegerType], OptionType("T")),
283
+ total: FunctionType([], OptionType(IntegerType)),
284
+ seek: OptionType(FunctionType([SeekQueryType], OptionType(SeekRangeType))),
285
+ }), { optional: true });
286
+ // Low-level primitives backing a `Data.bindPaged` handle's methods — the same
287
+ // shape as the `Data.bind` primitives (issue #106): each handle method is a
288
+ // thin `East.function` over one of these, capturing only the plain-data source
289
+ // path (the value type rides as a type-arg), so a paged handle is ordinary
290
+ // serializable East data. Implemented by `PagedRuntime` in
291
+ // `@elaraai/e3-ui-components`.
292
+ const PAGED_DESCRIPTOR = [TreePathType];
293
+ const data_page = East.genericPlatform("data_page", ["T"], [...PAGED_DESCRIPTOR, IntegerType, IntegerType], OptionType("T"), { optional: true });
294
+ const data_page_total = East.genericPlatform("data_page_total", ["T"], [...PAGED_DESCRIPTOR], OptionType(IntegerType), { optional: true });
295
+ // Key search rides the SAME in-flight convention as a window: `none` while the
296
+ // server's fence search is running, `some(range)` when it lands. The row it
297
+ // returns is a global element index in the row space `data_page` windows serve.
298
+ const data_page_seek = East.genericPlatform("data_page_seek", ["T"], [...PAGED_DESCRIPTOR, SeekQueryType], OptionType(SeekRangeType), { optional: true });
299
+ /**
300
+ * Low-level platform primitives that back {@link Data.bindPaged}'s handle
301
+ * methods.
302
+ *
303
+ * @internal Not for direct use — author against {@link Data.bindPaged}.
304
+ */
305
+ export const DataPagedPrimitives = {
306
+ /** `data_page([T], source, offset, limit) -> Option<T>` — one window (`none` = in flight). */
307
+ page: data_page,
308
+ /** `data_page_total([T], source) -> Option<Integer>` — total elements, once known. */
309
+ total: data_page_total,
310
+ /** `data_page_seek([T], source, query) -> Option<SeekRange>` — where a key
311
+ * query lands in the source's row order (`none` = search in flight). */
312
+ seek: data_page_seek,
313
+ };
314
+ /**
315
+ * Bind a collection dataset (Array / Set / Dict) to a WINDOWED reactive view
316
+ * of its contents — the paged sibling of {@link Data.bind}, for sources too
317
+ * large to fetch whole.
318
+ *
319
+ * Takes the {@link DatasetDef} returned by `e3.input` (or a {@link TaskDef},
320
+ * which binds its output dataset), exactly like {@link Data.bind}: the path
321
+ * and the value type both come from the def.
322
+ *
323
+ * @typeParam T - The East type of the source dataset value (a collection type).
324
+ * @param dataset - The dataset (or task) definition to bind.
325
+ * @returns A handle struct described by {@link DataPagedHandleType} — `page`
326
+ * and `total`.
327
+ *
328
+ * @remarks
329
+ * Each `page(offset, limit)` fetches exactly that window and decodes it
330
+ * against the dataset's own type — no blobs, no beast2, no manual fetch in
331
+ * user code. A window still in flight reads `none` and the call re-fires when
332
+ * it lands, so use it inside `Reactive.Root`; an empty window means the source
333
+ * is exhausted, which is how a walking reader terminates.
334
+ *
335
+ * Unlike {@link Data.bind}, a paged source is NOT preloaded or polled as a
336
+ * whole value — it is declared in the UI task's manifest under `pages`, which
337
+ * is the entire point of binding it paged.
338
+ *
339
+ * @example
340
+ * ```ts
341
+ * import { ArrayType, DictType, East, StringType } from "@elaraai/east";
342
+ * import { Plan, Reactive, UIComponentType } from "@elaraai/east-ui";
343
+ * import { Data } from "@elaraai/e3-ui";
344
+ * import * as e3 from "@elaraai/e3";
345
+ *
346
+ * // KEYED, because the Plan's canvas rows inherit the dataset's keys — the
347
+ * // same key space `page` windows and `seek` searches.
348
+ * const ops = e3.input("ops", DictType(StringType, OpsRow), new Map());
349
+ *
350
+ * // Mirrors `dataBindPagedPlan` in test/bind/data/data.examples.tsx.
351
+ * const dataBindPagedPlan = East.function([], UIComponentType, _$ => {
352
+ * return Reactive.Root(East.function([], UIComponentType, $ => {
353
+ * const paged = $.let(Data.bindPaged(ops));
354
+ * const series = $.const([…], ArrayType(Plan.Types.Series(OpsRow)));
355
+ * // A paged canvas DECLARES its window: fitting the axis to whatever
356
+ * // prefix has landed re-fits it on every window (#567 D8).
357
+ * const axis = $.const(Plan.axis({
358
+ * window: { min: week(24n), max: week(42n) }, resolution: "week",
359
+ * }));
360
+ * return Plan.Root({ axis, data: paged, series });
361
+ * }));
362
+ * });
363
+ * ```
364
+ */
365
+ function bindDataPaged(dataset) {
366
+ // A TaskDef binds its output dataset; a DatasetDef binds itself.
367
+ const def = dataset.kind === 'task' ? dataset.output : dataset;
368
+ // The source path comes from the def, so it is statically known by
369
+ // construction — `deriveManifest` reads it back as a single literal
370
+ // `Value` IR node, which `East.value(...)` forces.
371
+ const sourceValue = East.value(def.path, TreePathType);
372
+ // Two-step cast: the platform definition spells its window type with the
373
+ // `"T"` type-var, which TS reads as `some: string` inside the nested
374
+ // `Option`, so it does not overlap the instantiated handle directly. The
375
+ // East-side substitution is what actually types the value.
376
+ return bindPagedPlatformFn([def.type], sourceValue);
377
+ }
241
378
  /**
242
379
  * The Data namespace — reactive dataset binding for e3 UI tasks.
243
380
  *
@@ -246,10 +383,14 @@ function bindData(dataset, options) {
246
383
  * combinations of `mode` (staged | direct) and `patch` (absent | present).
247
384
  * The full per-mode semantics matrix is documented on {@link Data.bind}.
248
385
  *
386
+ * `Data.bindPaged` is its read-only, windowed sibling for collection datasets
387
+ * too large to hold whole — see {@link Data.bindPaged}.
388
+ *
249
389
  * Use inside `Reactive.Root` for reactive re-rendering when the underlying
250
390
  * datasets change.
251
391
  */
252
392
  export const Data = {
253
393
  bind: bindData,
394
+ bindPaged: bindDataPaged,
254
395
  };
255
396
  //# sourceMappingURL=data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/bind/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/bind/data.ts"],"names":[],"mappings":"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"}