ballerina-core 1.0.193 → 1.0.194

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 (116) hide show
  1. package/bin/main.d.ts +2 -0
  2. package/bin/main.d.ts.map +1 -1
  3. package/bin/main.js +2 -0
  4. package/bin/main.js.map +1 -1
  5. package/bin/src/forms/domains/dispatched-forms/built-ins/state.d.ts +19 -0
  6. package/bin/src/forms/domains/dispatched-forms/built-ins/state.d.ts.map +1 -1
  7. package/bin/src/forms/domains/dispatched-forms/built-ins/state.js +80 -11
  8. package/bin/src/forms/domains/dispatched-forms/built-ins/state.js.map +1 -1
  9. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.d.ts +59 -0
  10. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.d.ts.map +1 -0
  11. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.js +56 -0
  12. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.js.map +1 -0
  13. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.d.ts +6 -0
  14. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.d.ts.map +1 -1
  15. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.js +26 -18
  16. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.js.map +1 -1
  17. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts +18 -1
  18. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts.map +1 -1
  19. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js +49 -33
  20. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js.map +1 -1
  21. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.d.ts +2 -1
  22. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.d.ts.map +1 -1
  23. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.js.map +1 -1
  24. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.d.ts.map +1 -1
  25. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js +12 -10
  26. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js.map +1 -1
  27. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.d.ts +4 -2
  28. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.d.ts.map +1 -1
  29. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.d.ts +2 -1
  30. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.d.ts.map +1 -1
  31. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js +3 -1
  32. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js.map +1 -1
  33. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.d.ts +55 -0
  34. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.d.ts.map +1 -0
  35. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.js +24 -0
  36. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.js.map +1 -0
  37. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.d.ts +61 -0
  38. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.d.ts.map +1 -0
  39. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.js +78 -0
  40. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.js.map +1 -0
  41. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.d.ts +52 -0
  42. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.d.ts.map +1 -0
  43. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.js +36 -0
  44. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.js.map +1 -0
  45. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.d.ts +4004 -0
  46. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.d.ts.map +1 -0
  47. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.js +6 -0
  48. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.js.map +1 -0
  49. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.d.ts +22 -58
  50. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.d.ts.map +1 -1
  51. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.js +24 -182
  52. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.js.map +1 -1
  53. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.d.ts +63 -243
  54. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.d.ts.map +1 -1
  55. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.js +39 -29
  56. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.js.map +1 -1
  57. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.d.ts +4 -13
  58. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.d.ts.map +1 -1
  59. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.js +62 -305
  60. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.js.map +1 -1
  61. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.d.ts +74 -0
  62. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.d.ts.map +1 -0
  63. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.js +22 -0
  64. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.js.map +1 -0
  65. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.d.ts +50 -0
  66. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.d.ts.map +1 -0
  67. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.js +66 -0
  68. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.js.map +1 -0
  69. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.d.ts +2 -1
  70. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.d.ts.map +1 -1
  71. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.js.map +1 -1
  72. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.d.ts.map +1 -1
  73. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.js +9 -4
  74. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.js.map +1 -1
  75. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.d.ts.map +1 -1
  76. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js +0 -3
  77. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js.map +1 -1
  78. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.d.ts +4 -1
  79. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.d.ts.map +1 -1
  80. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js +9 -12
  81. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js.map +1 -1
  82. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.d.ts.map +1 -1
  83. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js +1 -0
  84. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js.map +1 -1
  85. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.d.ts.map +1 -1
  86. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js +2 -0
  87. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js.map +1 -1
  88. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.d.ts +28 -0
  89. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.d.ts.map +1 -0
  90. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js +41 -0
  91. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js.map +1 -0
  92. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.d.ts.map +1 -1
  93. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js +1 -0
  94. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js.map +1 -1
  95. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.d.ts.map +1 -1
  96. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js +25 -15
  97. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js.map +1 -1
  98. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.d.ts.map +1 -1
  99. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.js +90 -11
  100. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.js.map +1 -1
  101. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.d.ts.map +1 -1
  102. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.js +1 -0
  103. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.js.map +1 -1
  104. package/bin/src/forms/domains/parser/domains/predicates/state.d.ts +9 -2
  105. package/bin/src/forms/domains/parser/domains/predicates/state.d.ts.map +1 -1
  106. package/bin/src/forms/domains/parser/domains/predicates/state.js +11 -0
  107. package/bin/src/forms/domains/parser/domains/predicates/state.js.map +1 -1
  108. package/package.json +1 -1
  109. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.ts +36 -0
  110. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.ts +108 -0
  111. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.ts +41 -0
  112. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.ts +53 -0
  113. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.ts +30 -237
  114. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.ts +94 -101
  115. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.tsx +70 -313
  116. package/src/forms/domains/dispatched-forms/runner/domains/deltas/state.ts +2 -0
@@ -1,7 +1,6 @@
1
1
  import { Map } from "immutable";
2
2
  import React from "react";
3
3
  import {
4
- AsyncState,
5
4
  BasicUpdater,
6
5
  DispatchCommonFormState,
7
6
  DispatchDelta,
@@ -10,7 +9,6 @@ import {
10
9
  RecordAbstractRendererState,
11
10
  RecordType,
12
11
  replaceWith,
13
- Synchronized,
14
12
  Template,
15
13
  ValueInfiniteStreamState,
16
14
  ValueOption,
@@ -25,6 +23,8 @@ import {
25
23
  Unit,
26
24
  MapRepo,
27
25
  DispatchParsedType,
26
+ BaseFlags,
27
+ Sum,
28
28
  } from "../../../../../../../../main";
29
29
  import {
30
30
  OneAbstractRendererForeignMutationsExpected,
@@ -35,9 +35,9 @@ import {
35
35
  } from "./state";
36
36
  import {
37
37
  initializeOneRunner,
38
+ initializeStreamRunner,
38
39
  oneTableDebouncerRunner,
39
40
  oneTableLoaderRunner,
40
- reinitializeOneRunner,
41
41
  } from "./coroutines/runner";
42
42
 
43
43
  /*
@@ -56,7 +56,7 @@ import {
56
56
 
57
57
  export const OneAbstractRenderer = <
58
58
  CustomPresentationContext = Unit,
59
- Flags = Unit,
59
+ Flags extends BaseFlags = BaseFlags,
60
60
  ExtraContext = Unit,
61
61
  >(
62
62
  DetailsRenderer: Template<any, any, any, any>,
@@ -65,12 +65,12 @@ export const OneAbstractRenderer = <
65
65
  ErrorRenderer: (props: ErrorRendererProps) => React.ReactNode,
66
66
  oneEntityType: RecordType<any>,
67
67
  ) => {
68
- const typedInitializeOneRunner = initializeOneRunner<
68
+ const typedInitializeStreamRunner = initializeStreamRunner<
69
69
  CustomPresentationContext,
70
70
  Flags,
71
71
  ExtraContext
72
72
  >();
73
- const typedReinitializeOneRunner = reinitializeOneRunner<
73
+ const typedInitializeOneRunner = initializeOneRunner<
74
74
  CustomPresentationContext,
75
75
  Flags,
76
76
  ExtraContext
@@ -86,35 +86,19 @@ export const OneAbstractRenderer = <
86
86
  ExtraContext
87
87
  >();
88
88
 
89
+ // value is Unit -> partial one, dont'run
90
+ // value is Option<none> -> signal to run the initialization
91
+ // value is Option<some> -> there is a value, we do not care about what's inside
92
+
89
93
  const embeddedDetailsRenderer = (flags: Flags | undefined) =>
90
94
  DetailsRenderer.mapContext<
91
- Omit<
95
+ OneAbstractRendererState &
92
96
  OneAbstractRendererReadonlyContext<
93
97
  CustomPresentationContext,
94
98
  ExtraContext
95
- >,
96
- "value"
97
- > & {
98
- value: ValueRecord | ValueUnit;
99
- } & OneAbstractRendererState
99
+ >
100
100
  >((_) => {
101
- if (
102
- !AsyncState.Operations.hasValue(_.customFormState.selectedValue.sync)
103
- ) {
104
- return undefined;
105
- }
106
- if (_.customFormState.selectedValue.sync.value.kind == "errors") {
107
- console.error(
108
- _.customFormState.selectedValue.sync.value.errors
109
- .join("\n")
110
- .concat(`\n...When parsing the "one" field value\n...`),
111
- );
112
- return undefined;
113
- }
114
-
115
- const value = _.customFormState.selectedValue.sync.value.value;
116
-
117
- if (PredicateValue.Operations.IsUnit(value)) {
101
+ if (PredicateValue.Operations.IsUnit(_.value)) {
118
102
  return undefined;
119
103
  }
120
104
 
@@ -123,7 +107,7 @@ export const OneAbstractRenderer = <
123
107
  RecordAbstractRendererState.Default.zero();
124
108
 
125
109
  return {
126
- value,
110
+ value: _.value.value,
127
111
  ...state,
128
112
  disabled: _.disabled,
129
113
  bindings: _.bindings,
@@ -164,38 +148,7 @@ export const OneAbstractRenderer = <
164
148
  ),
165
149
  ),
166
150
  ),
167
- )
168
- .then((__) => {
169
- if (
170
- __.customFormState.selectedValue.sync.kind != "loaded" ||
171
- __.customFormState.selectedValue.sync.value.kind ==
172
- "errors" ||
173
- !PredicateValue.Operations.IsRecord(
174
- __.customFormState.selectedValue.sync.value.value,
175
- ) ||
176
- updater.kind == "l"
177
- ) {
178
- return __;
179
- }
180
- return {
181
- ...__,
182
- customFormState: {
183
- ...__.customFormState,
184
- selectedValue: {
185
- ...__.customFormState.selectedValue,
186
- sync: {
187
- ...__.customFormState.selectedValue.sync,
188
- value: {
189
- ...__.customFormState.selectedValue.sync.value,
190
- value: updater.value(
191
- __.customFormState.selectedValue.sync.value.value,
192
- ),
193
- },
194
- },
195
- },
196
- },
197
- };
198
- }),
151
+ ),
199
152
  );
200
153
 
201
154
  const delta: DispatchDelta<Flags> = {
@@ -228,15 +181,11 @@ export const OneAbstractRenderer = <
228
181
  const embeddedPreviewRenderer = PreviewRenderer
229
182
  ? (value: ValueRecord) => (id: string) => (flags: Flags | undefined) =>
230
183
  PreviewRenderer.mapContext<
231
- Omit<
184
+ OneAbstractRendererState &
232
185
  OneAbstractRendererReadonlyContext<
233
186
  CustomPresentationContext,
234
187
  ExtraContext
235
- >,
236
- "value"
237
- > & {
238
- value: ValueRecord | ValueUnit;
239
- } & OneAbstractRendererState
188
+ >
240
189
  >((_) => {
241
190
  const state =
242
191
  _.customFormState?.previewStates.get(id) ??
@@ -287,39 +236,7 @@ export const OneAbstractRenderer = <
287
236
  ),
288
237
  ),
289
238
  ),
290
- )
291
- .then((__) => {
292
- if (
293
- __.customFormState.selectedValue.sync.kind != "loaded" ||
294
- __.customFormState.selectedValue.sync.value.kind ==
295
- "errors" ||
296
- !PredicateValue.Operations.IsRecord(
297
- __.customFormState.selectedValue.sync.value.value,
298
- ) ||
299
- updater.kind == "l"
300
- ) {
301
- return __;
302
- }
303
- return {
304
- ...__,
305
- customFormState: {
306
- ...__.customFormState,
307
- selectedValue: {
308
- ...__.customFormState.selectedValue,
309
- sync: {
310
- ...__.customFormState.selectedValue.sync,
311
- value: {
312
- ...__.customFormState.selectedValue.sync.value,
313
- value: updater.value(
314
- __.customFormState.selectedValue.sync.value
315
- .value,
316
- ),
317
- },
318
- },
319
- },
320
- },
321
- };
322
- }),
239
+ ),
323
240
  );
324
241
 
325
242
  const delta: DispatchDelta<Flags> = {
@@ -354,8 +271,8 @@ export const OneAbstractRenderer = <
354
271
  OneAbstractRendererView<CustomPresentationContext, Flags, ExtraContext>
355
272
  >((props) => {
356
273
  const domNodeId = props.context.domNodeAncestorPath + "[one]";
357
-
358
274
  const value = props.context.value;
275
+
359
276
  if (
360
277
  !PredicateValue.Operations.IsUnit(value) &&
361
278
  (!PredicateValue.Operations.IsOption(value) ||
@@ -363,117 +280,41 @@ export const OneAbstractRenderer = <
363
280
  value.isSome &&
364
281
  !PredicateValue.Operations.IsRecord(value.value)))
365
282
  ) {
366
- <ErrorRenderer
367
- message={`${domNodeId}: Option of record or unit expected but got ${JSON.stringify(
368
- props.context.value,
369
- )}`}
370
- />;
371
- }
372
-
373
- const local = props.context.bindings.get("local");
374
- if (local == undefined) {
375
- console.error(
376
- `local binding is undefined when intialising one\n
377
- ...when rendering \n
378
- ...${domNodeId}`,
379
- );
380
283
  return (
381
284
  <ErrorRenderer
382
- message={`local binding is undefined when intialising one\n...${domNodeId}`}
285
+ message={`${domNodeId}: Option of record or unit expected but got ${JSON.stringify(
286
+ props.context.value,
287
+ )}`}
383
288
  />
384
289
  );
385
290
  }
386
291
 
387
- if (!PredicateValue.Operations.IsRecord(local)) {
388
- console.error(
389
- `local binding is not a record when intialising one\n...${domNodeId}`,
390
- );
391
- return (
392
- <ErrorRenderer
393
- message={`local binding is not a record when intialising one\n...${domNodeId}`}
394
- />
395
- );
396
- }
292
+ const maybeId = OneAbstractRendererState.Operations.GetIdFromContext(
293
+ props.context,
294
+ ).MapErrors((_) => _.concat(`\n...${domNodeId}`));
397
295
 
398
- if (!local.fields.has("Id")) {
399
- console.error(
400
- `local binding is missing Id (check casing) when intialising one\n...${domNodeId}`,
401
- );
402
- return (
403
- <ErrorRenderer
404
- message={`local binding is missing Id (check casing) when intialising one\n...${domNodeId}`}
405
- />
406
- );
407
- }
408
-
409
- const Id = local.fields.get("Id")!; // safe because of above check;
410
- if (!PredicateValue.Operations.IsString(Id)) {
411
- console.error(
412
- `local Id is not a string when intialising one\n...${domNodeId}`,
413
- );
414
- return (
415
- <ErrorRenderer
416
- message={`local Id is not a string when intialising one\n...${domNodeId}`}
417
- />
418
- );
419
- }
420
-
421
- if (
422
- !AsyncState.Operations.hasValue(
423
- props.context.customFormState.selectedValue.sync,
424
- )
425
- ) {
426
- return (
427
- <>
428
- <IdProvider domNodeId={domNodeId}>
429
- <props.view
430
- {...props}
431
- context={{
432
- ...props.context,
433
- domNodeId,
434
- kind: "uninitialized",
435
- }}
436
- kind="uninitialized"
437
- foreignMutations={{
438
- kind: "uninitialized",
439
- }}
440
- />
441
- </IdProvider>
442
- </>
443
- );
444
- }
445
-
446
- if (
447
- props.context.customFormState.selectedValue.sync.value.kind == "errors"
448
- ) {
449
- console.error(
450
- props.context.customFormState.selectedValue.sync.value.errors.join(
451
- "\n",
452
- ),
453
- );
454
- return <></>;
296
+ if (maybeId.kind === "errors") {
297
+ const errorMsg = maybeId.errors.join("\n");
298
+ return <ErrorRenderer message={errorMsg} />;
455
299
  }
456
- const syncValue =
457
- props.context.customFormState.selectedValue.sync.value.value;
458
300
 
459
301
  return (
460
302
  <>
461
303
  <IdProvider domNodeId={domNodeId}>
462
304
  <props.view
463
305
  {...props}
464
- kind="initialized"
465
306
  context={{
466
307
  ...props.context,
467
- kind: "initialized",
468
308
  domNodeId,
469
- value: syncValue,
309
+ value,
470
310
  hasMoreValues:
471
- !!props.context.customFormState.stream.loadedElements.last()
472
- ?.hasMoreValues,
311
+ props.context.customFormState.stream.kind === "r"
312
+ ? false
313
+ : !!props.context.customFormState.stream.value.loadedElements.last()
314
+ ?.hasMoreValues,
473
315
  }}
474
316
  foreignMutations={{
475
317
  ...props.foreignMutations,
476
- kind: "initialized",
477
318
  toggleOpen: () =>
478
319
  props.setState(
479
320
  OneAbstractRendererState.Updaters.Core.customFormState.children
@@ -485,10 +326,13 @@ export const OneAbstractRenderer = <
485
326
  ),
486
327
  )
487
328
  .then(
488
- props.context.customFormState.stream.loadedElements.count() ==
489
- 0
329
+ props.context.customFormState.stream.kind === "l" &&
330
+ props.context.customFormState.stream.value.loadedElements.count() ==
331
+ 0
490
332
  ? OneAbstractRendererState.Updaters.Core.customFormState.children.stream(
491
- ValueInfiniteStreamState.Updaters.Template.loadMore(),
333
+ Sum.Updaters.left(
334
+ ValueInfiniteStreamState.Updaters.Template.loadMore(),
335
+ ),
492
336
  )
493
337
  : id,
494
338
  ),
@@ -503,40 +347,14 @@ export const OneAbstractRenderer = <
503
347
  loadMore: () =>
504
348
  props.setState(
505
349
  OneAbstractRendererState.Updaters.Core.customFormState.children.stream(
506
- ValueInfiniteStreamState.Updaters.Template.loadMore(),
507
- ),
508
- ),
509
- reload: () =>
510
- props.setState(
511
- OneAbstractRendererState.Updaters.Core.customFormState.children.streamParams(
512
- Debounced.Updaters.Template.value(
513
- Value.Updaters.value(replaceWith(Map())),
350
+ Sum.Updaters.left(
351
+ ValueInfiniteStreamState.Updaters.Template.loadMore(),
514
352
  ),
515
353
  ),
516
354
  ),
517
355
  clear: () =>
518
356
  // See comment at top of file
519
- // TODO: test the reinitialization behaviour
520
- props.foreignMutations.clear &&
521
- (props.foreignMutations.clear(),
522
- props.setState(
523
- OneAbstractRendererState.Updaters.Core.customFormState.children
524
- .selectedValue(
525
- Synchronized.Updaters.sync(
526
- AsyncState.Updaters.toLoaded(
527
- ValueOrErrors.Default.return<
528
- ValueRecord | ValueUnit,
529
- string
530
- >(PredicateValue.Default.unit()),
531
- ),
532
- ),
533
- )
534
- .then(
535
- OneAbstractRendererState.Updaters.Template.shouldReinitialize(
536
- true,
537
- ),
538
- ),
539
- )),
357
+ props.foreignMutations.clear && props.foreignMutations.clear(),
540
358
  delete: (flags) => {
541
359
  const delta: DispatchDelta<Flags> = {
542
360
  kind: "OneDeleteValue",
@@ -545,25 +363,7 @@ export const OneAbstractRenderer = <
545
363
  props.context.lookupTypeAncestorNames,
546
364
  };
547
365
  props.foreignMutations.delete &&
548
- (props.foreignMutations.delete(delta),
549
- props.setState(
550
- OneAbstractRendererState.Updaters.Core.customFormState.children
551
- .selectedValue(
552
- Synchronized.Updaters.sync(
553
- AsyncState.Updaters.toLoaded(
554
- ValueOrErrors.Default.return<
555
- ValueRecord | ValueUnit,
556
- string
557
- >(PredicateValue.Default.unit()),
558
- ),
559
- ),
560
- )
561
- .then(
562
- OneAbstractRendererState.Updaters.Template.shouldReinitialize(
563
- true,
564
- ),
565
- ),
566
- ));
366
+ props.foreignMutations.delete(delta);
567
367
  },
568
368
  select: (value, flags) => {
569
369
  const delta: DispatchDelta<Flags> = {
@@ -586,25 +386,6 @@ export const OneAbstractRenderer = <
586
386
  Option.Default.some(updater),
587
387
  delta,
588
388
  );
589
-
590
- props.setState(
591
- OneAbstractRendererState.Updaters.Core.customFormState.children
592
- .selectedValue(
593
- Synchronized.Updaters.sync(
594
- AsyncState.Updaters.toLoaded(
595
- ValueOrErrors.Default.return<
596
- ValueRecord | ValueUnit,
597
- string
598
- >(value),
599
- ),
600
- ),
601
- )
602
- .then(
603
- OneAbstractRendererState.Updaters.Template.shouldReinitialize(
604
- true,
605
- ),
606
- ),
607
- );
608
389
  },
609
390
  create: (value, flags) => {
610
391
  const delta: DispatchDelta<Flags> = {
@@ -627,75 +408,51 @@ export const OneAbstractRenderer = <
627
408
  Option.Default.some(updater),
628
409
  delta,
629
410
  );
630
-
631
- props.setState(
632
- OneAbstractRendererState.Updaters.Core.customFormState.children
633
- .selectedValue(
634
- Synchronized.Updaters.sync(
635
- AsyncState.Updaters.toLoaded(
636
- ValueOrErrors.Default.return<
637
- ValueRecord | ValueUnit,
638
- string
639
- >(value),
640
- ),
641
- ),
642
- )
643
- .then(
644
- OneAbstractRendererState.Updaters.Template.shouldReinitialize(
645
- true,
646
- ),
647
- ),
648
- );
649
411
  },
650
412
  }}
651
- DetailsRenderer={embeddedDetailsRenderer}
652
- PreviewRenderer={embeddedPreviewRenderer}
413
+ DetailsRenderer={
414
+ value.kind === "unit" || value.isSome
415
+ ? embeddedDetailsRenderer
416
+ : undefined
417
+ }
418
+ PreviewRenderer={
419
+ value.kind === "unit" || value.isSome
420
+ ? embeddedPreviewRenderer
421
+ : undefined
422
+ }
653
423
  />
654
424
  </IdProvider>
655
425
  </>
656
426
  );
657
427
  }).any([
658
- typedInitializeOneRunner,
659
- typedReinitializeOneRunner,
428
+ typedInitializeStreamRunner,
660
429
  typedOneTableLoaderRunner,
430
+ typedInitializeOneRunner.mapContextFromProps((props) => ({
431
+ ...props.context,
432
+ onChange: props.foreignMutations.onChange,
433
+ })),
661
434
  typedOneTableDebouncerRunner.mapContextFromProps((props) => {
662
- const local = props.context.bindings.get("local");
663
- if (local == undefined) {
664
- console.error(
665
- `local binding is undefined when intialising one\n...${props.context.domNodeAncestorPath + "[one]"}`,
666
- );
667
- return undefined;
668
- }
669
-
670
- if (!PredicateValue.Operations.IsRecord(local)) {
671
- console.error(
672
- `local binding is not a record when intialising one\n...${props.context.domNodeAncestorPath + "[one]"}`,
673
- );
674
- return undefined;
675
- }
435
+ const maybeId = OneAbstractRendererState.Operations.GetIdFromContext(
436
+ props.context,
437
+ ).MapErrors((_) =>
438
+ _.concat(`\n...${props.context.domNodeAncestorPath + "[one]"}`),
439
+ );
676
440
 
677
- if (!local.fields.has("Id")) {
678
- console.error(
679
- `local binding is missing Id (check casing) when intialising one\n...${props.context.domNodeAncestorPath + "[one]"}`,
680
- );
441
+ if (maybeId.kind === "errors") {
442
+ console.error(maybeId.errors.join("\n"));
681
443
  return undefined;
682
444
  }
683
445
 
684
- const Id = local.fields.get("Id")!; // safe because of above check;
685
- if (!PredicateValue.Operations.IsString(Id)) {
686
- console.error(
687
- `local Id is not a string when intialising one\n...${props.context.domNodeAncestorPath + "[one]"}`,
688
- );
689
- return undefined;
690
- }
691
446
  return {
692
447
  ...props.context,
693
448
  onDebounce: () => {
694
449
  props.setState(
695
450
  OneAbstractRendererState.Updaters.Core.customFormState.children.stream(
696
- ValueInfiniteStreamState.Updaters.Template.reload(
697
- props.context.customFormState.getChunkWithParams(Id)(
698
- props.context.customFormState.streamParams.value,
451
+ Sum.Updaters.left(
452
+ ValueInfiniteStreamState.Updaters.Template.reload(
453
+ props.context.customFormState.getChunkWithParams(
454
+ maybeId.value,
455
+ )(props.context.customFormState.streamParams.value),
699
456
  ),
700
457
  ),
701
458
  ),
@@ -9,6 +9,8 @@ import {
9
9
  TupleType,
10
10
  } from "../../../deserializer/domains/specification/domains/types/state";
11
11
 
12
+ export type BaseFlags = { kind: "localOnly" };
13
+
12
14
  export type DispatchDelta<T = Unit> =
13
15
  | DispatchDeltaPrimitive<T>
14
16
  | DispatchDeltaOption<T>