@elaraai/east-ui 1.0.97 → 1.0.98

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 (99) hide show
  1. package/dist/src/collections/index.d.ts +0 -1
  2. package/dist/src/collections/index.d.ts.map +1 -1
  3. package/dist/src/collections/index.js +0 -1
  4. package/dist/src/collections/index.js.map +1 -1
  5. package/dist/src/component.d.ts +0 -999
  6. package/dist/src/component.d.ts.map +1 -1
  7. package/dist/src/component.js +0 -44
  8. package/dist/src/component.js.map +1 -1
  9. package/dist/src/contracts/drag.d.ts +2 -2
  10. package/dist/src/contracts/drag.js +2 -2
  11. package/dist/src/contracts/editing.d.ts +4 -0
  12. package/dist/src/contracts/editing.d.ts.map +1 -1
  13. package/dist/src/contracts/editing.js +2 -1
  14. package/dist/src/contracts/editing.js.map +1 -1
  15. package/dist/src/index.d.ts +2 -1
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +4 -1
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/internal.d.ts +4 -1
  20. package/dist/src/internal.d.ts.map +1 -1
  21. package/dist/src/internal.js +5 -2
  22. package/dist/src/internal.js.map +1 -1
  23. package/dist/src/layout/snap-grid/index.d.ts +1 -0
  24. package/dist/src/layout/snap-grid/index.d.ts.map +1 -1
  25. package/dist/src/pick/panel/index.js +1 -1
  26. package/dist/src/pick/panel/index.js.map +1 -1
  27. package/dist/src/platform/slice/index.d.ts +4 -7
  28. package/dist/src/platform/slice/index.d.ts.map +1 -1
  29. package/dist/src/platform/slice/index.js +5 -8
  30. package/dist/src/platform/slice/index.js.map +1 -1
  31. package/dist/src/platform/slice/record-area.d.ts +181 -0
  32. package/dist/src/platform/slice/record-area.d.ts.map +1 -0
  33. package/dist/src/platform/slice/record-area.js +304 -0
  34. package/dist/src/platform/slice/record-area.js.map +1 -0
  35. package/dist/src/platform/slice/record-chrome.d.ts +138 -0
  36. package/dist/src/platform/slice/record-chrome.d.ts.map +1 -1
  37. package/dist/src/platform/slice/record-plan.d.ts +34 -1
  38. package/dist/src/platform/slice/record-plan.d.ts.map +1 -1
  39. package/dist/src/platform/slice/record-plan.js +126 -3
  40. package/dist/src/platform/slice/record-plan.js.map +1 -1
  41. package/dist/src/platform/slice/record-series.d.ts +166 -0
  42. package/dist/src/platform/slice/record-series.d.ts.map +1 -0
  43. package/dist/src/platform/slice/record-series.js +258 -0
  44. package/dist/src/platform/slice/record-series.js.map +1 -0
  45. package/dist/src/platform/slice/record-types.d.ts +1862 -13
  46. package/dist/src/platform/slice/record-types.d.ts.map +1 -1
  47. package/dist/src/platform/slice/record-types.js +50 -4
  48. package/dist/src/platform/slice/record-types.js.map +1 -1
  49. package/dist/src/platform/slice/record.d.ts +17 -2
  50. package/dist/src/platform/slice/record.d.ts.map +1 -1
  51. package/dist/src/platform/slice/record.js +62 -9
  52. package/dist/src/platform/slice/record.js.map +1 -1
  53. package/dist/src/runtime/collections/index.d.ts +0 -1
  54. package/dist/src/runtime/collections/index.d.ts.map +1 -1
  55. package/dist/src/runtime/collections/index.js +0 -1
  56. package/dist/src/runtime/collections/index.js.map +1 -1
  57. package/dist/src/runtime/record-slice-source.d.ts +298 -0
  58. package/dist/src/runtime/record-slice-source.d.ts.map +1 -1
  59. package/dist/src/runtime/record-slice-source.js +554 -16
  60. package/dist/src/runtime/record-slice-source.js.map +1 -1
  61. package/dist/src/runtime/record-slice.d.ts +87 -3
  62. package/dist/src/runtime/record-slice.d.ts.map +1 -1
  63. package/dist/src/runtime/record-slice.js +175 -12
  64. package/dist/src/runtime/record-slice.js.map +1 -1
  65. package/dist/src/slice/record/index.d.ts +69 -0
  66. package/dist/src/slice/record/index.d.ts.map +1 -1
  67. package/dist/src/style/color.d.ts +237 -0
  68. package/dist/src/style/color.d.ts.map +1 -0
  69. package/dist/src/style/color.js +105 -0
  70. package/dist/src/style/color.js.map +1 -0
  71. package/dist/src/style/namespace.d.ts +151 -1
  72. package/dist/src/style/namespace.d.ts.map +1 -1
  73. package/dist/src/style/namespace.js +9 -1
  74. package/dist/src/style/namespace.js.map +1 -1
  75. package/dist/src/style.d.ts +3 -0
  76. package/dist/src/style.d.ts.map +1 -1
  77. package/dist/src/style.js +3 -0
  78. package/dist/src/style.js.map +1 -1
  79. package/dist/test/style.examples.d.ts +1 -0
  80. package/dist/test/style.examples.d.ts.map +1 -1
  81. package/dist/test/style.examples.js +17 -2
  82. package/dist/test/style.examples.js.map +1 -1
  83. package/package.json +4 -4
  84. package/dist/src/collections/schematic/index.d.ts +0 -1390
  85. package/dist/src/collections/schematic/index.d.ts.map +0 -1
  86. package/dist/src/collections/schematic/index.js +0 -815
  87. package/dist/src/collections/schematic/index.js.map +0 -1
  88. package/dist/src/collections/schematic/types.d.ts +0 -1183
  89. package/dist/src/collections/schematic/types.d.ts.map +0 -1
  90. package/dist/src/collections/schematic/types.js +0 -724
  91. package/dist/src/collections/schematic/types.js.map +0 -1
  92. package/dist/src/runtime/collections/schematic.d.ts +0 -73
  93. package/dist/src/runtime/collections/schematic.d.ts.map +0 -1
  94. package/dist/src/runtime/collections/schematic.js +0 -69
  95. package/dist/src/runtime/collections/schematic.js.map +0 -1
  96. package/dist/test/collections/schematic.examples.d.ts +0 -23
  97. package/dist/test/collections/schematic.examples.d.ts.map +0 -1
  98. package/dist/test/collections/schematic.examples.js +0 -602
  99. package/dist/test/collections/schematic.examples.js.map +0 -1
@@ -63,6 +63,39 @@ export declare const RecordSliceChromeType: StructType<{
63
63
  readonly to: import("@elaraai/east").StringType;
64
64
  readonly optional: import("@elaraai/east").BooleanType;
65
65
  }>>;
66
+ readonly area: OptionType<StructType<{
67
+ readonly x: import("@elaraai/east").StringType;
68
+ readonly y: import("@elaraai/east").StringType;
69
+ readonly width: OptionType<import("@elaraai/east").StringType>;
70
+ readonly height: OptionType<import("@elaraai/east").StringType>;
71
+ readonly centre: import("@elaraai/east").BooleanType;
72
+ readonly cell: import("@elaraai/east").FloatType;
73
+ readonly optional: import("@elaraai/east").BooleanType;
74
+ }>>;
75
+ readonly series: OptionType<StructType<{
76
+ readonly key: import("@elaraai/east").StringType;
77
+ readonly from: import("@elaraai/east").StringType;
78
+ readonly to: import("@elaraai/east").StringType;
79
+ readonly tile: VariantType<{
80
+ readonly day: NullType;
81
+ readonly week: NullType;
82
+ readonly month: NullType;
83
+ readonly quarter: NullType;
84
+ readonly year: NullType;
85
+ }>;
86
+ }>>;
87
+ readonly summary: OptionType<StructType<{
88
+ readonly key: import("@elaraai/east").StringType;
89
+ readonly from: import("@elaraai/east").StringType;
90
+ readonly to: import("@elaraai/east").StringType;
91
+ readonly tile: VariantType<{
92
+ readonly day: NullType;
93
+ readonly week: NullType;
94
+ readonly month: NullType;
95
+ readonly quarter: NullType;
96
+ readonly year: NullType;
97
+ }>;
98
+ }>>;
66
99
  }>>;
67
100
  readonly range: OptionType<import("@elaraai/east").StringType>;
68
101
  readonly search: ArrayType<import("@elaraai/east").StringType>;
@@ -76,6 +109,12 @@ export declare const RecordSliceChromeType: StructType<{
76
109
  readonly to: import("@elaraai/east").StringType;
77
110
  }>;
78
111
  readonly prefix: import("@elaraai/east").StringType;
112
+ readonly window: StructType<{
113
+ readonly minX: import("@elaraai/east").FloatType;
114
+ readonly minY: import("@elaraai/east").FloatType;
115
+ readonly maxX: import("@elaraai/east").FloatType;
116
+ readonly maxY: import("@elaraai/east").FloatType;
117
+ }>;
79
118
  }>>;
80
119
  }>>;
81
120
  }>;
@@ -87,6 +126,12 @@ export declare const RecordSliceChromeType: StructType<{
87
126
  readonly to: import("@elaraai/east").StringType;
88
127
  }>;
89
128
  readonly prefix: import("@elaraai/east").StringType;
129
+ readonly window: StructType<{
130
+ readonly minX: import("@elaraai/east").FloatType;
131
+ readonly minY: import("@elaraai/east").FloatType;
132
+ readonly maxX: import("@elaraai/east").FloatType;
133
+ readonly maxY: import("@elaraai/east").FloatType;
134
+ }>;
90
135
  }>>;
91
136
  readonly preset: OptionType<import("@elaraai/east").StringType>;
92
137
  readonly resolution: OptionType<VariantType<{
@@ -107,6 +152,12 @@ export declare const RecordSliceChromeType: StructType<{
107
152
  readonly to: import("@elaraai/east").StringType;
108
153
  }>;
109
154
  readonly prefix: import("@elaraai/east").StringType;
155
+ readonly window: StructType<{
156
+ readonly minX: import("@elaraai/east").FloatType;
157
+ readonly minY: import("@elaraai/east").FloatType;
158
+ readonly maxX: import("@elaraai/east").FloatType;
159
+ readonly maxY: import("@elaraai/east").FloatType;
160
+ }>;
110
161
  }>>;
111
162
  readonly preset: OptionType<import("@elaraai/east").StringType>;
112
163
  readonly resolution: OptionType<VariantType<{
@@ -132,6 +183,12 @@ export declare const RecordSliceChromeType: StructType<{
132
183
  readonly to: import("@elaraai/east").StringType;
133
184
  }>;
134
185
  readonly prefix: import("@elaraai/east").StringType;
186
+ readonly window: StructType<{
187
+ readonly minX: import("@elaraai/east").FloatType;
188
+ readonly minY: import("@elaraai/east").FloatType;
189
+ readonly maxX: import("@elaraai/east").FloatType;
190
+ readonly maxY: import("@elaraai/east").FloatType;
191
+ }>;
135
192
  }>>], OptionType<import("@elaraai/east").IntegerType>>;
136
193
  readonly total: import("@elaraai/east").FunctionType<[], OptionType<import("@elaraai/east").IntegerType>>;
137
194
  readonly domain: import("@elaraai/east").FunctionType<[import("@elaraai/east").StringType], OptionType<StructType<{
@@ -173,6 +230,12 @@ export declare const RecordSliceChromeType: StructType<{
173
230
  readonly to: import("@elaraai/east").StringType;
174
231
  }>;
175
232
  readonly prefix: import("@elaraai/east").StringType;
233
+ readonly window: StructType<{
234
+ readonly minX: import("@elaraai/east").FloatType;
235
+ readonly minY: import("@elaraai/east").FloatType;
236
+ readonly maxX: import("@elaraai/east").FloatType;
237
+ readonly maxY: import("@elaraai/east").FloatType;
238
+ }>;
176
239
  }>>, import("@elaraai/east").StringType], OptionType<import("@elaraai/east").BooleanType>>;
177
240
  readonly containsRow: import("@elaraai/east").FunctionType<[import("@elaraai/east").DictType<import("@elaraai/east").StringType, VariantType<{
178
241
  readonly values: ArrayType<import("@elaraai/east").StringType>;
@@ -181,6 +244,12 @@ export declare const RecordSliceChromeType: StructType<{
181
244
  readonly to: import("@elaraai/east").StringType;
182
245
  }>;
183
246
  readonly prefix: import("@elaraai/east").StringType;
247
+ readonly window: StructType<{
248
+ readonly minX: import("@elaraai/east").FloatType;
249
+ readonly minY: import("@elaraai/east").FloatType;
250
+ readonly maxX: import("@elaraai/east").FloatType;
251
+ readonly maxY: import("@elaraai/east").FloatType;
252
+ }>;
184
253
  }>>, import("@elaraai/east").StringType, import("@elaraai/east").BlobType], OptionType<import("@elaraai/east").BooleanType>>;
185
254
  }>;
186
255
  readonly affordances: ArrayType<VariantType<{
@@ -342,6 +411,39 @@ export declare const RecordSlicesChromeType: StructType<{
342
411
  readonly to: import("@elaraai/east").StringType;
343
412
  readonly optional: import("@elaraai/east").BooleanType;
344
413
  }>>;
414
+ readonly area: OptionType<StructType<{
415
+ readonly x: import("@elaraai/east").StringType;
416
+ readonly y: import("@elaraai/east").StringType;
417
+ readonly width: OptionType<import("@elaraai/east").StringType>;
418
+ readonly height: OptionType<import("@elaraai/east").StringType>;
419
+ readonly centre: import("@elaraai/east").BooleanType;
420
+ readonly cell: import("@elaraai/east").FloatType;
421
+ readonly optional: import("@elaraai/east").BooleanType;
422
+ }>>;
423
+ readonly series: OptionType<StructType<{
424
+ readonly key: import("@elaraai/east").StringType;
425
+ readonly from: import("@elaraai/east").StringType;
426
+ readonly to: import("@elaraai/east").StringType;
427
+ readonly tile: VariantType<{
428
+ readonly day: NullType;
429
+ readonly week: NullType;
430
+ readonly month: NullType;
431
+ readonly quarter: NullType;
432
+ readonly year: NullType;
433
+ }>;
434
+ }>>;
435
+ readonly summary: OptionType<StructType<{
436
+ readonly key: import("@elaraai/east").StringType;
437
+ readonly from: import("@elaraai/east").StringType;
438
+ readonly to: import("@elaraai/east").StringType;
439
+ readonly tile: VariantType<{
440
+ readonly day: NullType;
441
+ readonly week: NullType;
442
+ readonly month: NullType;
443
+ readonly quarter: NullType;
444
+ readonly year: NullType;
445
+ }>;
446
+ }>>;
345
447
  }>>;
346
448
  readonly range: OptionType<import("@elaraai/east").StringType>;
347
449
  readonly search: ArrayType<import("@elaraai/east").StringType>;
@@ -355,6 +457,12 @@ export declare const RecordSlicesChromeType: StructType<{
355
457
  readonly to: import("@elaraai/east").StringType;
356
458
  }>;
357
459
  readonly prefix: import("@elaraai/east").StringType;
460
+ readonly window: StructType<{
461
+ readonly minX: import("@elaraai/east").FloatType;
462
+ readonly minY: import("@elaraai/east").FloatType;
463
+ readonly maxX: import("@elaraai/east").FloatType;
464
+ readonly maxY: import("@elaraai/east").FloatType;
465
+ }>;
358
466
  }>>;
359
467
  }>>;
360
468
  }>;
@@ -366,6 +474,12 @@ export declare const RecordSlicesChromeType: StructType<{
366
474
  readonly to: import("@elaraai/east").StringType;
367
475
  }>;
368
476
  readonly prefix: import("@elaraai/east").StringType;
477
+ readonly window: StructType<{
478
+ readonly minX: import("@elaraai/east").FloatType;
479
+ readonly minY: import("@elaraai/east").FloatType;
480
+ readonly maxX: import("@elaraai/east").FloatType;
481
+ readonly maxY: import("@elaraai/east").FloatType;
482
+ }>;
369
483
  }>>;
370
484
  readonly preset: OptionType<import("@elaraai/east").StringType>;
371
485
  readonly resolution: OptionType<VariantType<{
@@ -386,6 +500,12 @@ export declare const RecordSlicesChromeType: StructType<{
386
500
  readonly to: import("@elaraai/east").StringType;
387
501
  }>;
388
502
  readonly prefix: import("@elaraai/east").StringType;
503
+ readonly window: StructType<{
504
+ readonly minX: import("@elaraai/east").FloatType;
505
+ readonly minY: import("@elaraai/east").FloatType;
506
+ readonly maxX: import("@elaraai/east").FloatType;
507
+ readonly maxY: import("@elaraai/east").FloatType;
508
+ }>;
389
509
  }>>;
390
510
  readonly preset: OptionType<import("@elaraai/east").StringType>;
391
511
  readonly resolution: OptionType<VariantType<{
@@ -411,6 +531,12 @@ export declare const RecordSlicesChromeType: StructType<{
411
531
  readonly to: import("@elaraai/east").StringType;
412
532
  }>;
413
533
  readonly prefix: import("@elaraai/east").StringType;
534
+ readonly window: StructType<{
535
+ readonly minX: import("@elaraai/east").FloatType;
536
+ readonly minY: import("@elaraai/east").FloatType;
537
+ readonly maxX: import("@elaraai/east").FloatType;
538
+ readonly maxY: import("@elaraai/east").FloatType;
539
+ }>;
414
540
  }>>], OptionType<import("@elaraai/east").IntegerType>>;
415
541
  readonly total: import("@elaraai/east").FunctionType<[], OptionType<import("@elaraai/east").IntegerType>>;
416
542
  readonly domain: import("@elaraai/east").FunctionType<[import("@elaraai/east").StringType], OptionType<StructType<{
@@ -452,6 +578,12 @@ export declare const RecordSlicesChromeType: StructType<{
452
578
  readonly to: import("@elaraai/east").StringType;
453
579
  }>;
454
580
  readonly prefix: import("@elaraai/east").StringType;
581
+ readonly window: StructType<{
582
+ readonly minX: import("@elaraai/east").FloatType;
583
+ readonly minY: import("@elaraai/east").FloatType;
584
+ readonly maxX: import("@elaraai/east").FloatType;
585
+ readonly maxY: import("@elaraai/east").FloatType;
586
+ }>;
455
587
  }>>, import("@elaraai/east").StringType], OptionType<import("@elaraai/east").BooleanType>>;
456
588
  readonly containsRow: import("@elaraai/east").FunctionType<[import("@elaraai/east").DictType<import("@elaraai/east").StringType, VariantType<{
457
589
  readonly values: ArrayType<import("@elaraai/east").StringType>;
@@ -460,6 +592,12 @@ export declare const RecordSlicesChromeType: StructType<{
460
592
  readonly to: import("@elaraai/east").StringType;
461
593
  }>;
462
594
  readonly prefix: import("@elaraai/east").StringType;
595
+ readonly window: StructType<{
596
+ readonly minX: import("@elaraai/east").FloatType;
597
+ readonly minY: import("@elaraai/east").FloatType;
598
+ readonly maxX: import("@elaraai/east").FloatType;
599
+ readonly maxY: import("@elaraai/east").FloatType;
600
+ }>;
463
601
  }>>, import("@elaraai/east").StringType, import("@elaraai/east").BlobType], OptionType<import("@elaraai/east").BooleanType>>;
464
602
  }>;
465
603
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"record-chrome.d.ts","sourceRoot":"","sources":["../../../../src/platform/slice/record-chrome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qEAAqE;AACrE,OAAO,EAAE,SAAS,EAAc,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAkC,KAAK,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7K,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,sEAAsE;AACtE,eAAO,MAAM,yBAAyB;;;;;;;;EAGpC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAC;AACzE,8EAA8E;AAC9E,MAAM,MAAM,qBAAqB,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE7E;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIhC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAEjE,6DAA6D;AAC7D,MAAM,WAAW,wBAAwB;IACrC,iEAAiE;IACjE,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAC/C,uEAAuE;IACvE,WAAW,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC/C,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGrD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAapG;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC;AAEnE,8EAA8E;AAC9E,MAAM,WAAW,yBAAyB;IACtC,wEAAwE;IACxE,KAAK,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAChD,uEAAuE;IACvE,WAAW,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC/C,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAgBvG"}
1
+ {"version":3,"file":"record-chrome.d.ts","sourceRoot":"","sources":["../../../../src/platform/slice/record-chrome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qEAAqE;AACrE,OAAO,EAAE,SAAS,EAAc,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAkC,KAAK,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7K,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,sEAAsE;AACtE,eAAO,MAAM,yBAAyB;;;;;;;;EAGpC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAC;AACzE,8EAA8E;AAC9E,MAAM,MAAM,qBAAqB,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE7E;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIhC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAEjE,6DAA6D;AAC7D,MAAM,WAAW,wBAAwB;IACrC,iEAAiE;IACjE,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAC/C,uEAAuE;IACvE,WAAW,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC/C,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGrD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAapG;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC;AAEnE,8EAA8E;AAC9E,MAAM,WAAW,yBAAyB;IACtC,wEAAwE;IACxE,KAAK,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAChD,uEAAuE;IACvE,WAAW,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC/C,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAgBvG"}
@@ -19,6 +19,11 @@ export interface RecordSlicePlan {
19
19
  }
20
20
  /**
21
21
  * Whether one index can answer every clause without scanning or duplicate rows.
22
+ * A clause under `__area` — a window, or the unplaced clause — is answered only
23
+ * by an area index whose leading fields the other clauses fill exactly. A
24
+ * series or a summary index answers none (#1039): the one files a row under
25
+ * each tile it touches, and the other's entries name no row; a reader reads
26
+ * their cells (`record-series.ts`).
22
27
  * @param index - Available field path.
23
28
  * @param where - Current narrowing.
24
29
  * @returns Whether it is a supported path.
@@ -31,13 +36,41 @@ export declare function recordPlanIndex(indexes: readonly Index[], where: Readon
31
36
  * prefix or half-open range. The server answers every query; no predicate runs
32
37
  * over a fetched row. Completed ranges are sorted by their actual source offsets.
33
38
  *
39
+ * A clause under `__area` reads through an area index whose leading fields the
40
+ * other clauses fill exactly: a `window`, the disjoint searches of
41
+ * {@link areaQueries} a combination of their values, or the unplaced clause, the
42
+ * rows with no place.
43
+ *
34
44
  * @param indexes - Available paths.
35
45
  * @param where - Field choices, in any authored order.
36
46
  * @param defaultIndex - Unfiltered source containing every primary row once.
37
47
  * @returns One path and its key searches; null when no index answers it.
38
- * @throws When a choice would exceed the bounded number of disjoint runs.
48
+ * @throws When a choice would exceed the bounded number of disjoint runs; when a
49
+ * clause under `__area` has no area index to read it, naming the one to
50
+ * declare; or when a window or the unplaced clause is malformed.
39
51
  */
40
52
  export declare function planRecordSlice(indexes: readonly Index[], where: ReadonlyMap<string, Choice>, defaultIndex: string): RecordSlicePlan | null;
53
+ /**
54
+ * What a field's choice of a kind needs chosen first, by the narrowing as it
55
+ * stands: the fields an index that takes that kind of choice on the field
56
+ * takes exact choices of beside it — those before it on its path, every
57
+ * leading field of an interval index, and every Set field it fans out over —
58
+ * less those the narrowing already chooses so, the index needing the fewest.
59
+ * An index counts only where each of those is a field the rail offers, and
60
+ * where the matcher ({@link recordPathMatches}) takes what it would then hold.
61
+ * `null` where no index takes that kind of choice on the field at all,
62
+ * whatever else is chosen: a prefix of a field only an interval index leads,
63
+ * whose leading fields take exact values alone, is one no field chosen first
64
+ * makes possible.
65
+ *
66
+ * @param indexes - Available field paths.
67
+ * @param current - Current narrowing.
68
+ * @param field - The field being chosen.
69
+ * @param kind - The kind of its choice: exact values, a range or a prefix (a window is a read's, never the rail's).
70
+ * @param offered - The fields the rail offers: one it does not can never be chosen first.
71
+ * @returns The fields still to choose, in their index's order — none where none is — or null.
72
+ */
73
+ export declare function recordChoiceNeeds(indexes: readonly Index[], current: ReadonlyMap<string, Choice>, field: string, kind: Choice["type"], offered: ReadonlySet<string>): string[] | null;
41
74
  /**
42
75
  * Keep the largest supported leading path after a choice changes. A new field
43
76
  * that cannot follow replaces incompatible clauses; a trailing field with no
@@ -1 +1 @@
1
- {"version":3,"file":"record-plan.d.ts","sourceRoot":"","sources":["../../../../src/platform/slice/record-plan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kFAAkF;AAClF,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAErF,KAAK,MAAM,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAGjD,KAAK,KAAK,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAE/C,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC5B,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;CACzC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAmB3F;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,GAAG,SAAS,CAIhH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAsC3I;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAiBxK"}
1
+ {"version":3,"file":"record-plan.d.ts","sourceRoot":"","sources":["../../../../src/platform/slice/record-plan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kFAAkF;AAClF,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAIrF,KAAK,MAAM,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;AACjD,KAAK,KAAK,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAE/C,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC5B,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;CACzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CA2B3F;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,GAAG,SAAS,CAIhH;AA0BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CA4D3I;AASD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAC5G,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAmBvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAiBxK"}
@@ -5,20 +5,38 @@
5
5
  /** Query planning shared by authoring validation and the record Slice runtime. */
6
6
  import { none, some, variant } from "@elaraai/east";
7
7
  import { intervalQueries } from "./record-interval.js";
8
+ import { AREA_FIELD, AREA_UNPLACED, areaQueries } from "./record-area.js";
8
9
  /** Bound the fan-out of a multi-choice path; never replace it with a row scan. */
9
10
  export const MAX_RECORD_SLICE_RUNS = 64;
10
11
  /**
11
12
  * Whether one index can answer every clause without scanning or duplicate rows.
13
+ * A clause under `__area` — a window, or the unplaced clause — is answered only
14
+ * by an area index whose leading fields the other clauses fill exactly. A
15
+ * series or a summary index answers none (#1039): the one files a row under
16
+ * each tile it touches, and the other's entries name no row; a reader reads
17
+ * their cells (`record-series.ts`).
12
18
  * @param index - Available field path.
13
19
  * @param where - Current narrowing.
14
20
  * @returns Whether it is a supported path.
15
21
  */
16
22
  export function recordPathMatches(index, where) {
23
+ if (index.series.type === "some" || index.summary.type === "some")
24
+ return false;
17
25
  for (const field of index.sets) {
18
26
  const choice = where.get(field);
19
27
  if (choice?.type !== "values" || choice.value.length !== 1)
20
28
  return false;
21
29
  }
30
+ for (const [field, choice] of where)
31
+ if (choice.type === "window" && field !== AREA_FIELD)
32
+ return false;
33
+ const area = where.get(AREA_FIELD);
34
+ if (area !== undefined) {
35
+ if (index.area.type !== "some" || (area.type !== "window" && area.type !== "values"))
36
+ return false;
37
+ const leading = index.fields.slice(0, -1);
38
+ return leading.every(field => where.get(field)?.type === "values") && where.size === leading.length + 1;
39
+ }
22
40
  if (index.interval.type === "some") {
23
41
  const leading = index.fields.slice(0, -1);
24
42
  if (leading.some(field => where.get(field)?.type !== "values"))
@@ -43,16 +61,46 @@ export function recordPlanIndex(indexes, where) {
43
61
  return indexes.find(index => recordPathMatches(index, where) && (overlaps.size === 0
44
62
  || index.interval.type === "some" && overlaps.has(index.interval.value.from)));
45
63
  }
64
+ /**
65
+ * Why no listed index answers a narrowing with a clause under `__area`: the
66
+ * choice it cannot take beside it, or the area index it needs, by the fields
67
+ * the other clauses choose.
68
+ */
69
+ function areaRefusal(indexes, where) {
70
+ const beside = [...where.keys()].filter(field => field !== AREA_FIELD);
71
+ const named = (fields) => fields.map(field => `'${field}'`).join(", ");
72
+ const inexact = beside.filter(field => where.get(field).type !== "values");
73
+ if (inexact.length > 0) {
74
+ return `A read by area takes exact choices beside it, and ${named(inexact)} ${inexact.length === 1 ? "holds" : "hold"} a range or a prefix`;
75
+ }
76
+ const areas = indexes.filter(index => index.area.type === "some");
77
+ const fanned = beside.filter(field => areas.some(index => index.sets.has(field)) && where.get(field).value.length !== 1);
78
+ if (fanned.length > 0) {
79
+ return `A read by area takes one value of ${named(fanned)}, which ${fanned.length === 1 ? "fans" : "fan"} out over a Set`;
80
+ }
81
+ const on = beside.length === 0 ? "" : `on: [${beside.map(field => JSON.stringify(field)).join(", ")}], `;
82
+ return `A read by area${beside.length === 0 ? "" : ` beside ${named(beside)}`} needs an area index led by ` +
83
+ `${beside.length === 0 ? "no field" : `exactly ${named(beside)}`} — e3.recordIndex.area(name, record, { ${on}x, y, … }), ` +
84
+ `listed in Data.bindPaged's indexes` + (areas.length === 0 ? "; this binding lists none"
85
+ : `; ${named(areas.map(index => index.name))} ${areas.length === 1 ? "is" : "are"} led by other fields`);
86
+ }
46
87
  /**
47
88
  * Plan the record's narrowing as exact leading values followed by at most one
48
89
  * prefix or half-open range. The server answers every query; no predicate runs
49
90
  * over a fetched row. Completed ranges are sorted by their actual source offsets.
50
91
  *
92
+ * A clause under `__area` reads through an area index whose leading fields the
93
+ * other clauses fill exactly: a `window`, the disjoint searches of
94
+ * {@link areaQueries} a combination of their values, or the unplaced clause, the
95
+ * rows with no place.
96
+ *
51
97
  * @param indexes - Available paths.
52
98
  * @param where - Field choices, in any authored order.
53
99
  * @param defaultIndex - Unfiltered source containing every primary row once.
54
100
  * @returns One path and its key searches; null when no index answers it.
55
- * @throws When a choice would exceed the bounded number of disjoint runs.
101
+ * @throws When a choice would exceed the bounded number of disjoint runs; when a
102
+ * clause under `__area` has no area index to read it, naming the one to
103
+ * declare; or when a window or the unplaced clause is malformed.
56
104
  */
57
105
  export function planRecordSlice(indexes, where, defaultIndex) {
58
106
  if (where.size === 0) {
@@ -60,12 +108,24 @@ export function planRecordSlice(indexes, where, defaultIndex) {
60
108
  return { index: defaultIndex, queries: index?.interval.type === "some" && index.fields.length === 1
61
109
  ? intervalQueries([], undefined, index.interval.value) : [] };
62
110
  }
111
+ for (const [field, choice] of where) {
112
+ if (choice.type === "window" && field !== AREA_FIELD)
113
+ throw new Error(`A window reads through an area index's ${AREA_FIELD}, not '${field}'`);
114
+ }
115
+ const area = where.get(AREA_FIELD);
116
+ if (area !== undefined && area.type !== "window" && area.type !== "values") {
117
+ throw new Error(`Under ${AREA_FIELD}, choose a window or the unplaced clause, not a ${area.type}`);
118
+ }
63
119
  const index = recordPlanIndex(indexes, where);
64
- if (index === undefined)
120
+ if (index === undefined) {
121
+ if (area !== undefined)
122
+ throw new Error(areaRefusal(indexes, where));
65
123
  return null;
124
+ }
66
125
  let prefixes = [[]];
67
126
  let tail;
68
- for (const field of index.interval.type === "some" ? index.fields.slice(0, -1) : index.fields) {
127
+ const generated = index.interval.type === "some" || (area !== undefined && index.area.type === "some");
128
+ for (const field of generated ? index.fields.slice(0, -1) : index.fields) {
69
129
  const choice = where.get(field);
70
130
  if (choice === undefined)
71
131
  break;
@@ -81,6 +141,18 @@ export function planRecordSlice(indexes, where, defaultIndex) {
81
141
  }
82
142
  prefixes = prefixes.flatMap(prefix => values.map(value => [...prefix, value]));
83
143
  }
144
+ if (area !== undefined && index.area.type === "some") {
145
+ const box = index.area.value;
146
+ if (area.type === "window") {
147
+ return { index: index.name, queries: prefixes.flatMap(values => areaQueries(values, area.value, box.cell)) };
148
+ }
149
+ if (area.type !== "values" || area.value.length !== 1 || area.value[0] !== AREA_UNPLACED) {
150
+ throw new Error(`Under ${AREA_FIELD}, the one value is the unplaced clause, ${AREA_UNPLACED}`);
151
+ }
152
+ if (!box.optional)
153
+ throw new Error(`'${index.name}' places every row: its '${box.x}' and '${box.y}' are not Options, so none is unplaced`);
154
+ return { index: index.name, queries: prefixes.map(values => variant("fields", { values: [...values, AREA_UNPLACED], prefix: none })) };
155
+ }
84
156
  if (index.interval.type === "some") {
85
157
  const interval = index.interval.value;
86
158
  const choice = where.get(interval.from);
@@ -101,6 +173,57 @@ export function planRecordSlice(indexes, where, defaultIndex) {
101
173
  : variant("fields", { values, prefix: none });
102
174
  }) };
103
175
  }
176
+ /** A choice of each kind the rail makes, as the matcher reads it: its kind and how many values, never what they are. */
177
+ const SAMPLES = {
178
+ values: variant("values", [""]),
179
+ range: variant("range", { from: "", to: "" }),
180
+ prefix: variant("prefix", ""),
181
+ };
182
+ /**
183
+ * What a field's choice of a kind needs chosen first, by the narrowing as it
184
+ * stands: the fields an index that takes that kind of choice on the field
185
+ * takes exact choices of beside it — those before it on its path, every
186
+ * leading field of an interval index, and every Set field it fans out over —
187
+ * less those the narrowing already chooses so, the index needing the fewest.
188
+ * An index counts only where each of those is a field the rail offers, and
189
+ * where the matcher ({@link recordPathMatches}) takes what it would then hold.
190
+ * `null` where no index takes that kind of choice on the field at all,
191
+ * whatever else is chosen: a prefix of a field only an interval index leads,
192
+ * whose leading fields take exact values alone, is one no field chosen first
193
+ * makes possible.
194
+ *
195
+ * @param indexes - Available field paths.
196
+ * @param current - Current narrowing.
197
+ * @param field - The field being chosen.
198
+ * @param kind - The kind of its choice: exact values, a range or a prefix (a window is a read's, never the rail's).
199
+ * @param offered - The fields the rail offers: one it does not can never be chosen first.
200
+ * @returns The fields still to choose, in their index's order — none where none is — or null.
201
+ */
202
+ export function recordChoiceNeeds(indexes, current, field, kind, offered) {
203
+ if (kind === "window")
204
+ return null;
205
+ let best = null;
206
+ for (const index of indexes) {
207
+ const at = index.fields.indexOf(field);
208
+ if (at < 0 || index.series.type === "some" || index.summary.type === "some")
209
+ continue;
210
+ const before = index.interval.type === "some" ? index.fields.slice(0, -1) : index.fields.slice(0, at);
211
+ const needed = [...new Set([...before, ...index.sets])].filter(name => name !== field);
212
+ if (needed.some(name => !offered.has(name)))
213
+ continue;
214
+ const candidate = new Map(needed.map(name => [name, SAMPLES.values]));
215
+ candidate.set(field, SAMPLES[kind]);
216
+ if (!recordPathMatches(index, candidate))
217
+ continue;
218
+ const missing = needed.filter(name => {
219
+ const chosen = current.get(name);
220
+ return chosen?.type !== "values" || (index.sets.has(name) && chosen.value.length !== 1);
221
+ });
222
+ if (best === null || missing.length < best.length)
223
+ best = missing;
224
+ }
225
+ return best;
226
+ }
104
227
  /**
105
228
  * Keep the largest supported leading path after a choice changes. A new field
106
229
  * that cannot follow replaces incompatible clauses; a trailing field with no
@@ -1 +1 @@
1
- {"version":3,"file":"record-plan.js","sourceRoot":"","sources":["../../../../src/platform/slice/record-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record-plan.js","sourceRoot":"","sources":["../../../../src/platform/slice/record-plan.ts"],"names":[],"mappings":"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"}