ballerina-core 1.0.256 → 1.0.258

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 (321) hide show
  1. package/bin/src/api-response-handler/coroutines/runner.js +20 -13
  2. package/bin/src/api-response-handler/state.js +13 -11
  3. package/bin/src/apiResultStatus/state.d.ts +10 -3
  4. package/bin/src/apiResultStatus/state.js +2 -5
  5. package/bin/src/async/domains/mirroring/domains/collection/coroutines/synchronizers.js +314 -196
  6. package/bin/src/async/domains/mirroring/domains/collection/state.js +126 -36
  7. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection/state.js +18 -11
  8. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection-entity/state.js +19 -19
  9. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entities/state.js +1 -1
  10. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entity/state.js +18 -18
  11. package/bin/src/async/domains/mirroring/domains/entity/state.js +18 -9
  12. package/bin/src/async/domains/mirroring/domains/singleton/coroutines/synchronizers.js +134 -83
  13. package/bin/src/async/domains/mirroring/domains/singleton/state.js +52 -8
  14. package/bin/src/async/domains/mirroring/domains/synchronization-result/state.d.ts +15 -9
  15. package/bin/src/async/domains/mirroring/domains/synchronization-result/state.js +1 -1
  16. package/bin/src/async/domains/mirroring/domains/synchronized-entities/state.js +7 -4
  17. package/bin/src/async/domains/promise/state.d.ts +9 -4
  18. package/bin/src/async/domains/promise/state.js +20 -9
  19. package/bin/src/async/domains/synchronized/coroutines/synchronize.js +80 -28
  20. package/bin/src/async/domains/synchronized/state.d.ts +14 -7
  21. package/bin/src/async/domains/synchronized/state.js +16 -6
  22. package/bin/src/async/state.d.ts +56 -45
  23. package/bin/src/async/state.js +115 -97
  24. package/bin/src/baseEntity/domains/identifiable/state.d.ts +15 -11
  25. package/bin/src/baseEntity/domains/identifiable/state.js +9 -9
  26. package/bin/src/collections/domains/array/state.d.ts +7 -7
  27. package/bin/src/collections/domains/array/state.js +5 -5
  28. package/bin/src/collections/domains/errors/state.d.ts +10 -10
  29. package/bin/src/collections/domains/errors/state.js +10 -10
  30. package/bin/src/collections/domains/immutable/domains/list/state.js +46 -44
  31. package/bin/src/collections/domains/immutable/domains/map/state.js +41 -23
  32. package/bin/src/collections/domains/immutable/domains/orderedMap/state.js +84 -65
  33. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.d.ts +6 -6
  34. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.js +6 -6
  35. package/bin/src/collections/domains/maybe/state.d.ts +9 -9
  36. package/bin/src/collections/domains/maybe/state.js +12 -9
  37. package/bin/src/collections/domains/product/state.d.ts +25 -19
  38. package/bin/src/collections/domains/product/state.js +13 -10
  39. package/bin/src/collections/domains/sum/state.d.ts +101 -77
  40. package/bin/src/collections/domains/sum/state.js +49 -32
  41. package/bin/src/collections/domains/valueOrErrors/state.js +81 -56
  42. package/bin/src/coroutines/builder.js +40 -19
  43. package/bin/src/coroutines/state.js +381 -306
  44. package/bin/src/coroutines/template.js +97 -59
  45. package/bin/src/debounced/coroutines/debounce.js +115 -89
  46. package/bin/src/debounced/state.js +62 -25
  47. package/bin/src/diagnostics/domains/message-box/state.d.ts +1 -1
  48. package/bin/src/diagnostics/domains/message-box/state.js +3 -3
  49. package/bin/src/foreignMutations/state.d.ts +3 -3
  50. package/bin/src/foreignMutations/state.js +1 -1
  51. package/bin/src/forms/domains/attachments/views/attachments-view.js +30 -8
  52. package/bin/src/forms/domains/collection/domains/reference/state.js +26 -20
  53. package/bin/src/forms/domains/collection/domains/selection/state.js +1 -1
  54. package/bin/src/forms/domains/dispatched-forms/built-ins/state.js +2007 -754
  55. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.d.ts.map +1 -1
  56. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js +123 -44
  57. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js.map +1 -1
  58. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/enum/state.js +40 -27
  59. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/primitive/state.js +21 -13
  60. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/stream/state.js +43 -27
  61. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sumUnitDate/state.js +39 -22
  62. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.d.ts +167 -0
  63. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.d.ts.map +1 -0
  64. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.js +367 -0
  65. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.js.map +1 -0
  66. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts +7 -29
  67. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts.map +1 -1
  68. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js +1098 -572
  69. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js.map +1 -1
  70. package/bin/src/forms/domains/dispatched-forms/deserializer/state.d.ts +1 -0
  71. package/bin/src/forms/domains/dispatched-forms/deserializer/state.d.ts.map +1 -1
  72. package/bin/src/forms/domains/dispatched-forms/deserializer/state.js +322 -90
  73. package/bin/src/forms/domains/dispatched-forms/deserializer/state.js.map +1 -1
  74. package/bin/src/forms/domains/dispatched-forms/deserializer/template.js +3 -2
  75. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.d.ts +27 -4
  76. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.js +136 -82
  77. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/state.js +3 -3
  78. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/template.js +49 -23
  79. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/state.js +3 -3
  80. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/template.js +52 -24
  81. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/state.js +18 -6
  82. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/template.js +64 -30
  83. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/state.js +9 -6
  84. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/template.js +153 -60
  85. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/state.js +1 -1
  86. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/template.js +127 -50
  87. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/injectables/state.js +40 -22
  88. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.js +31 -13
  89. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js +452 -152
  90. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.js +1 -1
  91. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js +29 -8
  92. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js.map +1 -1
  93. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/state.js +61 -18
  94. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/template.js +329 -90
  95. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/state.js +3 -3
  96. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/template.js +54 -23
  97. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.js +22 -10
  98. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.js +49 -31
  99. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.js +29 -10
  100. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.js +2 -2
  101. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.js +47 -26
  102. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.js +88 -40
  103. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.js +386 -152
  104. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.js +19 -10
  105. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.js +99 -33
  106. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.js +32 -11
  107. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.js +227 -82
  108. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/state.js +35 -13
  109. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/template.js +195 -68
  110. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/state.js +36 -13
  111. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/template.js +246 -106
  112. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/state.js +3 -3
  113. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/template.js +54 -23
  114. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/state.js +40 -27
  115. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/state.js +3 -3
  116. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/template.js +58 -26
  117. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/state.js +22 -7
  118. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/template.js +188 -53
  119. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/builder.js +2 -2
  120. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/infiniteLoader.js +57 -24
  121. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseFiltersAndSorting.js +70 -20
  122. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.d.ts.map +1 -1
  123. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js +88 -48
  124. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js.map +1 -1
  125. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/loadWithRetries.js +40 -20
  126. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/runner.js +43 -15
  127. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js +301 -137
  128. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js.map +1 -1
  129. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js +692 -240
  130. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/state.js +20 -8
  131. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/template.js +132 -35
  132. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/state.js +21 -8
  133. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/template.js +105 -33
  134. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/state.js +12 -9
  135. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/template.js +54 -20
  136. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js +716 -560
  137. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.js +58 -18
  138. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js +45 -14
  139. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.js +76 -18
  140. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/multiSelection/state.js +82 -24
  141. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.js +37 -8
  142. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js +120 -36
  143. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/primitive/state.js +145 -63
  144. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js +44 -12
  145. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.js +14 -4
  146. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.js +81 -25
  147. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/singleSelectionDispatcher/state.js +82 -24
  148. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.js +63 -20
  149. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js +248 -74
  150. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.js +61 -13
  151. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.js +92 -33
  152. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js +144 -45
  153. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_init.js +203 -95
  154. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_sync.js +79 -37
  155. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/builder.js +2 -2
  156. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/runner.js +19 -17
  157. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/state.js +58 -11
  158. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/template.js +73 -25
  159. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_init.js +205 -95
  160. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_sync.js +78 -37
  161. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/builder.js +2 -2
  162. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/runner.js +19 -17
  163. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/state.js +58 -11
  164. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/template.js +71 -25
  165. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/coroutines/runner.js +163 -85
  166. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/state.js +10 -4
  167. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/template.js +72 -27
  168. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.js +796 -436
  169. package/bin/src/forms/domains/dispatched-forms/runner/state.js +62 -38
  170. package/bin/src/forms/domains/dispatched-forms/runner/template.js +78 -25
  171. package/bin/src/forms/domains/launcher/coroutines/runner.js +120 -45
  172. package/bin/src/forms/domains/launcher/domains/create/coroutines/runner.js +240 -101
  173. package/bin/src/forms/domains/launcher/domains/create/state.js +62 -17
  174. package/bin/src/forms/domains/launcher/domains/create/template.js +84 -42
  175. package/bin/src/forms/domains/launcher/domains/edit/coroutines/runner.js +242 -103
  176. package/bin/src/forms/domains/launcher/domains/edit/state.js +62 -17
  177. package/bin/src/forms/domains/launcher/domains/edit/template.js +86 -43
  178. package/bin/src/forms/domains/launcher/domains/merger/state.d.ts +4 -4
  179. package/bin/src/forms/domains/launcher/domains/merger/state.js +35 -26
  180. package/bin/src/forms/domains/launcher/domains/passthrough/coroutines/runner.js +88 -42
  181. package/bin/src/forms/domains/launcher/domains/passthrough/state.js +44 -19
  182. package/bin/src/forms/domains/launcher/domains/passthrough/template.js +56 -34
  183. package/bin/src/forms/domains/launcher/state.js +6 -6
  184. package/bin/src/forms/domains/launcher/template.js +169 -85
  185. package/bin/src/forms/domains/parser/coroutines/runner.js +87 -25
  186. package/bin/src/forms/domains/parser/domains/built-ins/state.js +944 -533
  187. package/bin/src/forms/domains/parser/domains/deltas/state.js +444 -318
  188. package/bin/src/forms/domains/parser/domains/injectables/state.js +29 -26
  189. package/bin/src/forms/domains/parser/domains/layout/state.js +271 -183
  190. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.js +324 -162
  191. package/bin/src/forms/domains/parser/domains/predicates/state.js +1514 -984
  192. package/bin/src/forms/domains/parser/domains/renderer/state.js +1137 -480
  193. package/bin/src/forms/domains/parser/domains/types/state.js +355 -170
  194. package/bin/src/forms/domains/parser/domains/validator/state.js +417 -280
  195. package/bin/src/forms/domains/parser/state.js +612 -373
  196. package/bin/src/forms/domains/parser/template.js +1 -1
  197. package/bin/src/forms/domains/primitives/domains/base-64-file/state.js +5 -5
  198. package/bin/src/forms/domains/primitives/domains/base-64-file/template.js +38 -19
  199. package/bin/src/forms/domains/primitives/domains/boolean/state.js +5 -5
  200. package/bin/src/forms/domains/primitives/domains/boolean/template.js +38 -19
  201. package/bin/src/forms/domains/primitives/domains/date/state.js +18 -9
  202. package/bin/src/forms/domains/primitives/domains/date/template.js +51 -25
  203. package/bin/src/forms/domains/primitives/domains/enum/state.js +6 -6
  204. package/bin/src/forms/domains/primitives/domains/enum/template.js +117 -48
  205. package/bin/src/forms/domains/primitives/domains/enum-multiselect/state.js +1 -1
  206. package/bin/src/forms/domains/primitives/domains/enum-multiselect/template.js +99 -40
  207. package/bin/src/forms/domains/primitives/domains/list/state.js +14 -14
  208. package/bin/src/forms/domains/primitives/domains/list/template.js +200 -71
  209. package/bin/src/forms/domains/primitives/domains/map/state.js +14 -14
  210. package/bin/src/forms/domains/primitives/domains/map/template.js +294 -103
  211. package/bin/src/forms/domains/primitives/domains/number/state.js +5 -5
  212. package/bin/src/forms/domains/primitives/domains/number/template.js +38 -19
  213. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/state.js +33 -16
  214. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/template.js +171 -62
  215. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/state.js +1 -1
  216. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/template.js +182 -69
  217. package/bin/src/forms/domains/primitives/domains/secret/state.js +5 -5
  218. package/bin/src/forms/domains/primitives/domains/secret/template.js +38 -19
  219. package/bin/src/forms/domains/primitives/domains/string/state.js +5 -5
  220. package/bin/src/forms/domains/primitives/domains/string/template.js +42 -22
  221. package/bin/src/forms/domains/primitives/domains/sum/state.js +10 -10
  222. package/bin/src/forms/domains/primitives/domains/sum/template.js +141 -50
  223. package/bin/src/forms/domains/primitives/domains/tuple/state.js +9 -9
  224. package/bin/src/forms/domains/primitives/domains/tuple/template.js +100 -33
  225. package/bin/src/forms/domains/primitives/domains/unit/state.js +8 -8
  226. package/bin/src/forms/domains/primitives/domains/unit/template.js +22 -9
  227. package/bin/src/forms/domains/singleton/domains/form-label/state.d.ts +4 -4
  228. package/bin/src/forms/domains/singleton/domains/form-label/state.js +1 -1
  229. package/bin/src/forms/domains/singleton/state.js +12 -10
  230. package/bin/src/forms/domains/singleton/template.js +288 -113
  231. package/bin/src/fun/domains/curry/state.d.ts +4 -2
  232. package/bin/src/fun/domains/curry/state.js +1 -1
  233. package/bin/src/fun/domains/id/state.d.ts +1 -1
  234. package/bin/src/fun/domains/id/state.js +1 -1
  235. package/bin/src/fun/domains/predicate/domains/bool-expr.d.ts +57 -41
  236. package/bin/src/fun/domains/predicate/domains/bool-expr.js +76 -67
  237. package/bin/src/fun/domains/predicate/state.d.ts +9 -7
  238. package/bin/src/fun/domains/predicate/state.js +14 -10
  239. package/bin/src/fun/domains/simpleCallback/state.d.ts +1 -1
  240. package/bin/src/fun/domains/simpleCallback/state.js +1 -1
  241. package/bin/src/fun/domains/uncurry/state.d.ts +4 -2
  242. package/bin/src/fun/domains/uncurry/state.js +1 -1
  243. package/bin/src/fun/domains/unit/state.d.ts +1 -1
  244. package/bin/src/fun/domains/unit/state.js +1 -1
  245. package/bin/src/fun/domains/updater/domains/caseUpdater/state.d.ts +22 -7
  246. package/bin/src/fun/domains/updater/domains/caseUpdater/state.js +18 -10
  247. package/bin/src/fun/domains/updater/domains/mapUpdater/state.d.ts +24 -13
  248. package/bin/src/fun/domains/updater/domains/mapUpdater/state.js +40 -10
  249. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.d.ts +19 -13
  250. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.js +20 -9
  251. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.d.ts +24 -13
  252. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.js +47 -11
  253. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.d.ts +20 -8
  254. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.js +17 -5
  255. package/bin/src/fun/domains/updater/domains/replaceWith/state.d.ts +1 -1
  256. package/bin/src/fun/domains/updater/domains/replaceWith/state.js +1 -1
  257. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.d.ts +13 -4
  258. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.js +6 -4
  259. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.d.ts +60 -22
  260. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.js +42 -31
  261. package/bin/src/fun/domains/updater/state.d.ts +4 -4
  262. package/bin/src/fun/domains/updater/state.js +12 -10
  263. package/bin/src/fun/state.d.ts +3 -3
  264. package/bin/src/fun/state.js +9 -7
  265. package/bin/src/infinite-data-stream/coroutines/builder.js +1 -1
  266. package/bin/src/infinite-data-stream/coroutines/infiniteLoader.js +47 -20
  267. package/bin/src/infinite-data-stream/coroutines/runner.js +7 -7
  268. package/bin/src/infinite-data-stream/state.d.ts +84 -51
  269. package/bin/src/infinite-data-stream/state.js +125 -61
  270. package/bin/src/infinite-data-stream/template.js +3 -2
  271. package/bin/src/math/domains/DOMRect/state.d.ts +4 -4
  272. package/bin/src/math/domains/DOMRect/state.js +10 -8
  273. package/bin/src/math/domains/number/state.d.ts +5 -5
  274. package/bin/src/math/domains/number/state.js +5 -5
  275. package/bin/src/math/domains/rect/state.d.ts +8 -8
  276. package/bin/src/math/domains/rect/state.js +16 -15
  277. package/bin/src/math/domains/rgba/state.d.ts +17 -17
  278. package/bin/src/math/domains/rgba/state.js +77 -81
  279. package/bin/src/math/domains/size2/state.d.ts +8 -8
  280. package/bin/src/math/domains/size2/state.js +6 -6
  281. package/bin/src/math/domains/vector2/state.d.ts +10 -10
  282. package/bin/src/math/domains/vector2/state.js +8 -8
  283. package/bin/src/queue/state.js +23 -16
  284. package/bin/src/state/domains/repository/state.d.ts +15 -9
  285. package/bin/src/state/domains/repository/state.js +1 -1
  286. package/bin/src/template/state.js +163 -115
  287. package/bin/src/validation/state.js +38 -45
  288. package/bin/src/value/domains/mutable-value/state.js +3 -2
  289. package/bin/src/value/state.d.ts +9 -9
  290. package/bin/src/value/state.js +11 -8
  291. package/bin/src/value-infinite-data-stream/coroutines/builder.js +1 -1
  292. package/bin/src/value-infinite-data-stream/coroutines/infiniteLoader.js +55 -20
  293. package/bin/src/value-infinite-data-stream/coroutines/runner.js +6 -4
  294. package/bin/src/value-infinite-data-stream/state.js +199 -77
  295. package/bin/src/value-infinite-data-stream/template.js +4 -2
  296. package/bin/src/visibility/state.d.ts +5 -2
  297. package/bin/src/visibility/state.js +1 -1
  298. package/main.ts +1 -0
  299. package/package.json +1 -1
  300. package/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.ts +2 -2
  301. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.ts +117 -111
  302. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/list/state.ts +14 -5
  303. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.ts +75 -18
  304. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/map/state.ts +16 -6
  305. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.ts +27 -9
  306. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/one/state.ts +28 -8
  307. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.ts +13 -4
  308. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.ts +18 -7
  309. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/state.ts +40 -14
  310. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sum/state.ts +15 -5
  311. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.ts +20 -6
  312. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.ts +101 -50
  313. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/tuple/state.ts +22 -23
  314. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.ts +37 -19
  315. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.ts +64 -6
  316. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.ts +585 -0
  317. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.ts +592 -340
  318. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.ts +364 -226
  319. package/src/forms/domains/dispatched-forms/deserializer/state.ts +1 -2
  320. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.tsx +1 -1
  321. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.ts +2 -2
@@ -1,10 +1,11 @@
1
- import { List, Map } from "immutable";
1
+ import { Map } from "immutable";
2
2
  import {
3
3
  ConcreteRenderers,
4
4
  DispatchInjectablesTypes,
5
5
  DispatchParsedType,
6
6
  isObject,
7
7
  ListType,
8
+ Renderer,
8
9
  ValueOrErrors,
9
10
  } from "../../../../../../../../../../../../../main";
10
11
  import { NestedRenderer } from "../nestedRenderer/state";
@@ -115,7 +116,9 @@ export const ListRenderer = {
115
116
  ExtraContext
116
117
  >,
117
118
  types: Map<string, DispatchParsedType<T>>,
118
- ): ValueOrErrors<ListRenderer<T>, string> =>
119
+ forms: object,
120
+ alreadyParsedForms: Map<string, Renderer<T>>,
121
+ ): ValueOrErrors<[ListRenderer<T>, Map<string, Renderer<T>>], string> =>
119
122
  ListRenderer.Operations.tryAsValidBaseListRenderer(serialized, type)
120
123
  .Then((serializedRenderer) =>
121
124
  NestedRenderer.Operations.DeserializeAs(
@@ -124,18 +127,24 @@ export const ListRenderer = {
124
127
  concreteRenderers,
125
128
  "list element",
126
129
  types,
127
- ).Then((elementRenderer) =>
130
+ forms,
131
+ alreadyParsedForms,
132
+ ).Then(([elementRenderer, newAlreadyParsedForms]) =>
128
133
  ListMethods.Operations.fromRawValue(
129
134
  serializedRenderer.actions,
130
135
  ).Then((methods) =>
131
- ValueOrErrors.Default.return(
136
+ ValueOrErrors.Default.return<
137
+ [ListRenderer<T>, Map<string, Renderer<T>>],
138
+ string
139
+ >([
132
140
  ListRenderer.Default(
133
141
  type,
134
142
  serializedRenderer.renderer,
135
143
  elementRenderer,
136
144
  methods,
137
145
  ),
138
- ),
146
+ newAlreadyParsedForms,
147
+ ]),
139
148
  ),
140
149
  ),
141
150
  )
@@ -5,10 +5,10 @@ import {
5
5
  DispatchParsedType,
6
6
  LookupType,
7
7
  MapRepo,
8
- Renderer,
9
8
  ValueOrErrors,
10
9
  } from "../../../../../../../../../../../../../main";
11
10
  import { Map } from "immutable";
11
+ import { Renderer } from "../../state";
12
12
 
13
13
  export type SerializedLookup<T> =
14
14
  | { kind: "lookupType-lookupRenderer"; renderer: string; type: LookupType }
@@ -156,8 +156,10 @@ export const LookupRenderer = {
156
156
  ExtraContext
157
157
  >,
158
158
  types: Map<string, DispatchParsedType<T>>,
159
- ): ValueOrErrors<LookupRenderer<T>, string> =>
160
- serialized.kind == "lookupType-inlinedRenderer"
159
+ forms: object,
160
+ alreadyParsedForms: Map<string, Renderer<T>>,
161
+ ): ValueOrErrors<[LookupRenderer<T>, Map<string, Renderer<T>>], string> => {
162
+ return serialized.kind == "lookupType-inlinedRenderer"
161
163
  ? DispatchParsedType.Operations.ResolveLookupType(
162
164
  serialized.type.name,
163
165
  types,
@@ -168,30 +170,85 @@ export const LookupRenderer = {
168
170
  concreteRenderers,
169
171
  types,
170
172
  tableApi,
171
- ).Then((renderer) =>
172
- ValueOrErrors.Default.return(
173
+ forms,
174
+ alreadyParsedForms,
175
+ ).Then(([renderer, alreadyParsedForms]) =>
176
+ ValueOrErrors.Default.return([
173
177
  LookupRenderer.Default.LookupTypeInlinedRenderer(
174
178
  serialized.type,
175
179
  renderer,
176
180
  tableApi,
177
181
  ),
178
- ),
182
+ alreadyParsedForms,
183
+ ]),
179
184
  ),
180
185
  )
181
186
  : serialized.kind == "lookupType-lookupRenderer"
182
- ? ValueOrErrors.Default.return(
183
- LookupRenderer.Default.LookupTypeLookupRenderer(
184
- serialized.type,
185
- serialized.renderer,
186
- tableApi,
187
- ),
188
- )
189
- : ValueOrErrors.Default.return(
190
- LookupRenderer.Default.InlinedTypeLookupRenderer(
187
+ ? alreadyParsedForms.has(serialized.renderer)
188
+ ? ValueOrErrors.Default.return<
189
+ [LookupRenderer<T>, Map<string, Renderer<T>>],
190
+ string
191
+ >([
192
+ LookupRenderer.Default.LookupTypeLookupRenderer(
193
+ serialized.type,
194
+ serialized.renderer,
195
+ tableApi,
196
+ ),
197
+ alreadyParsedForms,
198
+ ])
199
+ : DispatchParsedType.Operations.ResolveLookupType(
200
+ serialized.type.name,
201
+ types,
202
+ ).Then((resolvedType) =>
203
+ Renderer.Operations.Deserialize(
204
+ resolvedType,
205
+ Reflect.get(forms, serialized.renderer),
206
+ concreteRenderers,
207
+ types,
208
+ tableApi,
209
+ forms,
210
+ alreadyParsedForms,
211
+ ).Then(([renderer, alreadyParsedForms]) =>
212
+ ValueOrErrors.Default.return([
213
+ LookupRenderer.Default.LookupTypeLookupRenderer(
214
+ serialized.type,
215
+ serialized.renderer,
216
+ tableApi,
217
+ ),
218
+ alreadyParsedForms.set(serialized.renderer, renderer),
219
+ ]),
220
+ ),
221
+ )
222
+ : alreadyParsedForms.has(serialized.renderer)
223
+ ? ValueOrErrors.Default.return<
224
+ [LookupRenderer<T>, Map<string, Renderer<T>>],
225
+ string
226
+ >([
227
+ LookupRenderer.Default.InlinedTypeLookupRenderer(
228
+ serialized.type,
229
+ serialized.renderer,
230
+ tableApi,
231
+ ),
232
+ alreadyParsedForms,
233
+ ])
234
+ : Renderer.Operations.Deserialize(
191
235
  serialized.type,
192
- serialized.renderer,
236
+ Reflect.get(forms, serialized.renderer),
237
+ concreteRenderers,
238
+ types,
193
239
  tableApi,
194
- ),
195
- ),
240
+ forms,
241
+ alreadyParsedForms,
242
+ ).Then(([renderer, alreadyParsedForms]) =>
243
+ ValueOrErrors.Default.return([
244
+ LookupRenderer.Default.InlinedTypeLookupRenderer(
245
+ serialized.type,
246
+ serialized.renderer,
247
+ tableApi,
248
+ ),
249
+ alreadyParsedForms.set(serialized.renderer, renderer),
250
+ ]),
251
+ );
252
+ },
196
253
  },
197
254
  };
@@ -5,11 +5,11 @@ import {
5
5
  DispatchParsedType,
6
6
  isObject,
7
7
  isString,
8
+ Renderer,
8
9
  ValueOrErrors,
9
10
  } from "../../../../../../../../../../../../../main";
10
11
  import { MapType } from "../../../../../types/state";
11
12
  import { NestedRenderer } from "../nestedRenderer/state";
12
- import { Renderer } from "../../state";
13
13
 
14
14
  export type SerializedMapRenderer = {
15
15
  renderer: string;
@@ -74,7 +74,9 @@ export const MapRenderer = {
74
74
  ExtraContext
75
75
  >,
76
76
  types: Map<string, DispatchParsedType<T>>,
77
- ): ValueOrErrors<MapRenderer<T>, string> =>
77
+ forms: object,
78
+ alreadyParsedForms: Map<string, Renderer<T>>,
79
+ ): ValueOrErrors<[MapRenderer<T>, Map<string, Renderer<T>>], string> =>
78
80
  MapRenderer.Operations.tryAsValidMapBaseRenderer(serialized)
79
81
  .Then((renderer) =>
80
82
  NestedRenderer.Operations.DeserializeAs(
@@ -83,22 +85,30 @@ export const MapRenderer = {
83
85
  concreteRenderers,
84
86
  "Map key",
85
87
  types,
86
- ).Then((deserializedKeyRenderer) =>
88
+ forms,
89
+ alreadyParsedForms,
90
+ ).Then(([deserializedKeyRenderer, keyAlreadyParsedForms]) =>
87
91
  NestedRenderer.Operations.DeserializeAs(
88
92
  type.args[1],
89
93
  renderer.valueRenderer,
90
94
  concreteRenderers,
91
95
  "Map value",
92
96
  types,
93
- ).Then((deserializedValueRenderer) =>
94
- ValueOrErrors.Default.return(
97
+ forms,
98
+ keyAlreadyParsedForms,
99
+ ).Then(([deserializedValueRenderer, valueAlreadyParsedForms]) =>
100
+ ValueOrErrors.Default.return<
101
+ [MapRenderer<T>, Map<string, Renderer<T>>],
102
+ string
103
+ >([
95
104
  MapRenderer.Default(
96
105
  type,
97
106
  renderer.renderer,
98
107
  deserializedKeyRenderer,
99
108
  deserializedValueRenderer,
100
109
  ),
101
- ),
110
+ valueAlreadyParsedForms,
111
+ ]),
102
112
  ),
103
113
  ),
104
114
  )
@@ -92,12 +92,16 @@ export const NestedRenderer = {
92
92
  >,
93
93
  as: string,
94
94
  types: Map<string, DispatchParsedType<T>>,
95
- ): ValueOrErrors<NestedRenderer<T>, string> =>
95
+ forms: object,
96
+ alreadyParsedForms: Map<string, Renderer<T>>,
97
+ ): ValueOrErrors<[NestedRenderer<T>, Map<string, Renderer<T>>], string> =>
96
98
  NestedRenderer.Operations.Deserialize(
97
99
  type,
98
100
  serialized,
99
101
  concreteRenderers,
100
102
  types,
103
+ forms,
104
+ alreadyParsedForms,
101
105
  ).MapErrors((errors) =>
102
106
  errors.map((error) => `${error}\n...When parsing as ${as}`),
103
107
  ),
@@ -116,7 +120,9 @@ export const NestedRenderer = {
116
120
  ExtraContext
117
121
  >,
118
122
  types: Map<string, DispatchParsedType<T>>,
119
- ): ValueOrErrors<NestedRenderer<T>, string> =>
123
+ forms: object,
124
+ alreadyParsedForms: Map<string, Renderer<T>>,
125
+ ): ValueOrErrors<[NestedRenderer<T>, Map<string, Renderer<T>>], string> =>
120
126
  NestedRenderer.Operations.tryAsValidSerializedNestedRenderer(
121
127
  serialized,
122
128
  ).Then((validatedSerialized) =>
@@ -134,13 +140,25 @@ export const NestedRenderer = {
134
140
  "api" in validatedSerialized && isString(validatedSerialized.api)
135
141
  ? validatedSerialized.api
136
142
  : undefined,
137
- ).Then((renderer) =>
138
- ValueOrErrors.Default.return<NestedRenderer<T>, string>({
139
- renderer,
140
- label: validatedSerialized.label,
141
- tooltip: validatedSerialized.tooltip,
142
- details: validatedSerialized.details,
143
- }).MapErrors<NestedRenderer<T>, string, string>((errors) =>
143
+ forms,
144
+ alreadyParsedForms,
145
+ ).Then(([renderer, newAlreadyParsedForms]) =>
146
+ ValueOrErrors.Default.return<
147
+ [NestedRenderer<T>, Map<string, Renderer<T>>],
148
+ string
149
+ >([
150
+ {
151
+ renderer,
152
+ label: validatedSerialized.label,
153
+ tooltip: validatedSerialized.tooltip,
154
+ details: validatedSerialized.details,
155
+ },
156
+ newAlreadyParsedForms,
157
+ ]).MapErrors<
158
+ [NestedRenderer<T>, Map<string, Renderer<T>>],
159
+ string,
160
+ string
161
+ >((errors) =>
144
162
  errors.map(
145
163
  (error) =>
146
164
  `${error}\n...When parsing as ${renderer.kind} nested renderer`,
@@ -5,11 +5,11 @@ import {
5
5
  DispatchParsedType,
6
6
  isObject,
7
7
  isString,
8
+ Renderer,
8
9
  ValueOrErrors,
9
10
  } from "../../../../../../../../../../../../../main";
10
11
  import { OneType } from "../../../../../types/state";
11
12
  import { NestedRenderer } from "../nestedRenderer/state";
12
- import { Renderer } from "../../state";
13
13
 
14
14
  export type SerializedOneRenderer = {
15
15
  renderer: string;
@@ -93,15 +93,25 @@ export const OneRenderer = {
93
93
  ExtraContext
94
94
  >,
95
95
  types: Map<string, DispatchParsedType<T>>,
96
- ): ValueOrErrors<NestedRenderer<T> | undefined, string> =>
96
+ forms: object,
97
+ alreadyParsedForms: Map<string, Renderer<T>>,
98
+ ): ValueOrErrors<
99
+ [NestedRenderer<T> | undefined, Map<string, Renderer<T>>],
100
+ string
101
+ > =>
97
102
  serialized.previewRenderer == undefined
98
- ? ValueOrErrors.Default.return(undefined)
103
+ ? ValueOrErrors.Default.return<
104
+ [NestedRenderer<T> | undefined, Map<string, Renderer<T>>],
105
+ string
106
+ >([undefined, alreadyParsedForms])
99
107
  : NestedRenderer.Operations.DeserializeAs(
100
108
  type.arg,
101
109
  serialized.previewRenderer,
102
110
  concreteRenderers,
103
111
  "preview renderer",
104
112
  types,
113
+ forms,
114
+ alreadyParsedForms,
105
115
  ),
106
116
  Deserialize: <
107
117
  T extends DispatchInjectablesTypes<T>,
@@ -118,7 +128,9 @@ export const OneRenderer = {
118
128
  ExtraContext
119
129
  >,
120
130
  types: Map<string, DispatchParsedType<T>>,
121
- ): ValueOrErrors<OneRenderer<T>, string> =>
131
+ forms: object,
132
+ alreadyParsedForms: Map<string, Renderer<T>>,
133
+ ): ValueOrErrors<[OneRenderer<T>, Map<string, Renderer<T>>], string> =>
122
134
  OneRenderer.Operations.tryAsValidOneRenderer(serialized).Then(
123
135
  (validatedSerialized) =>
124
136
  NestedRenderer.Operations.DeserializeAs(
@@ -127,14 +139,21 @@ export const OneRenderer = {
127
139
  concreteRenderers,
128
140
  "details renderer",
129
141
  types,
130
- ).Then((detailsRenderer) =>
142
+ forms,
143
+ alreadyParsedForms,
144
+ ).Then(([detailsRenderer, detailsAlreadyParsedForms]) =>
131
145
  OneRenderer.Operations.DeserializePreviewRenderer(
132
146
  type,
133
147
  validatedSerialized,
134
148
  concreteRenderers,
135
149
  types,
136
- ).Then((previewRenderer) =>
137
- ValueOrErrors.Default.return(
150
+ forms,
151
+ detailsAlreadyParsedForms,
152
+ ).Then(([previewRenderer, previewAlreadyParsedForms]) =>
153
+ ValueOrErrors.Default.return<
154
+ [OneRenderer<T>, Map<string, Renderer<T>>],
155
+ string
156
+ >([
138
157
  OneRenderer.Default(
139
158
  type,
140
159
  validatedSerialized.api,
@@ -142,7 +161,8 @@ export const OneRenderer = {
142
161
  detailsRenderer,
143
162
  previewRenderer,
144
163
  ),
145
- ),
164
+ previewAlreadyParsedForms,
165
+ ]),
146
166
  ),
147
167
  ),
148
168
  ),
@@ -5,6 +5,7 @@ import {
5
5
  DispatchParsedType,
6
6
  isObject,
7
7
  ReadOnlyType,
8
+ Renderer,
8
9
  ValueOrErrors,
9
10
  } from "../../../../../../../../../../../../../main";
10
11
  import { NestedRenderer } from "../nestedRenderer/state";
@@ -77,7 +78,9 @@ export const ReadOnlyRenderer = {
77
78
  ExtraContext
78
79
  >,
79
80
  types: Map<string, DispatchParsedType<T>>,
80
- ): ValueOrErrors<ReadOnlyRenderer<T>, string> =>
81
+ forms: object,
82
+ alreadyParsedForms: Map<string, Renderer<T>>,
83
+ ): ValueOrErrors<[ReadOnlyRenderer<T>, Map<string, Renderer<T>>], string> =>
81
84
  ReadOnlyRenderer.Operations.tryAsValidBaseReadOnlyRenderer(
82
85
  serialized,
83
86
  type,
@@ -89,14 +92,20 @@ export const ReadOnlyRenderer = {
89
92
  concreteRenderers,
90
93
  "readOnly child",
91
94
  types,
92
- ).Then((childRenderer) =>
93
- ValueOrErrors.Default.return(
95
+ forms,
96
+ alreadyParsedForms,
97
+ ).Then(([childRenderer, childAlreadyParsedForms]) =>
98
+ ValueOrErrors.Default.return<
99
+ [ReadOnlyRenderer<T>, Map<string, Renderer<T>>],
100
+ string
101
+ >([
94
102
  ReadOnlyRenderer.Default(
95
103
  type,
96
104
  serializedRenderer.renderer,
97
105
  childRenderer,
98
106
  ),
99
- ),
107
+ childAlreadyParsedForms,
108
+ ]),
100
109
  ),
101
110
  )
102
111
  .MapErrors((errors) =>
@@ -5,6 +5,7 @@ import {
5
5
  DispatchParsedType,
6
6
  Expr,
7
7
  isObject,
8
+ Renderer,
8
9
  ValueOrErrors,
9
10
  } from "../../../../../../../../../../../../../../../main";
10
11
 
@@ -70,7 +71,12 @@ export const RecordFieldRenderer = {
70
71
  >,
71
72
  types: Map<string, DispatchParsedType<T>>,
72
73
  fieldName: string,
73
- ): ValueOrErrors<RecordFieldRenderer<T>, string> =>
74
+ forms: object,
75
+ alreadyParsedForms: Map<string, Renderer<T>>,
76
+ ): ValueOrErrors<
77
+ [RecordFieldRenderer<T>, Map<string, Renderer<T>>],
78
+ string
79
+ > =>
74
80
  RecordFieldRenderer.tryAsValidRecordFieldRenderer(serialized).Then(
75
81
  (validatedSerialized) => {
76
82
  return NestedRenderer.Operations.DeserializeAs(
@@ -79,18 +85,23 @@ export const RecordFieldRenderer = {
79
85
  concreteRenderers,
80
86
  `Record field renderer for field ${fieldName}`,
81
87
  types,
82
- ).Then((deserializedNestedRenderer) =>
88
+ forms,
89
+ alreadyParsedForms,
90
+ ).Then(([deserializedNestedRenderer, newAlreadyParsedForms]) =>
83
91
  RecordFieldRenderer.ComputeVisibility(
84
92
  validatedSerialized.visible,
85
93
  ).Then((visible) =>
86
94
  RecordFieldRenderer.ComputeDisabled(
87
95
  validatedSerialized.disabled,
88
96
  ).Then((disabled) =>
89
- ValueOrErrors.Default.return({
90
- ...deserializedNestedRenderer,
91
- visible,
92
- disabled,
93
- }),
97
+ ValueOrErrors.Default.return([
98
+ {
99
+ ...deserializedNestedRenderer,
100
+ visible,
101
+ disabled,
102
+ },
103
+ newAlreadyParsedForms,
104
+ ]),
94
105
  ),
95
106
  ),
96
107
  );
@@ -12,6 +12,7 @@ import {
12
12
  PredicateFormLayout,
13
13
  PredicateComputedOrInlined,
14
14
  ValueOrErrors,
15
+ Renderer,
15
16
  } from "../../../../../../../../../../../../../main";
16
17
  import { RecordType } from "../../../../../../../../../../../../../main";
17
18
  import { RecordFieldRenderer } from "./domains/recordFieldRenderer/state";
@@ -122,14 +123,21 @@ export const RecordRenderer = {
122
123
  ExtraContext
123
124
  >,
124
125
  types: Map<string, DispatchParsedType<T>>,
125
- ): ValueOrErrors<RecordRenderer<T>, string> =>
126
+ forms: object,
127
+ alreadyParsedForms: Map<string, Renderer<T>>,
128
+ ): ValueOrErrors<[RecordRenderer<T>, Map<string, Renderer<T>>], string> =>
126
129
  RecordRenderer.Operations.tryAsValidRecordForm(serialized).Then(
127
130
  (validRecordForm) =>
128
- ValueOrErrors.Operations.All(
129
- List<ValueOrErrors<[string, RecordFieldRenderer<T>], string>>(
130
- validRecordForm.fields
131
- .toArray()
132
- .map(([fieldName, recordFieldRenderer]: [string, unknown]) =>
131
+ validRecordForm.fields
132
+ .toArray()
133
+ .reduce<
134
+ ValueOrErrors<
135
+ [Map<string, RecordFieldRenderer<T>>, Map<string, Renderer<T>>],
136
+ string
137
+ >
138
+ >(
139
+ (acc, [fieldName, recordFieldRenderer]: [string, unknown]) =>
140
+ acc.Then(([fieldsMap, accumulatedAlreadyParsedForms]) =>
133
141
  MapRepo.Operations.tryFindWithError(
134
142
  fieldName,
135
143
  type.fields,
@@ -141,14 +149,28 @@ export const RecordRenderer = {
141
149
  concreteRenderers,
142
150
  types,
143
151
  fieldName,
144
- ).Then((renderer) =>
145
- ValueOrErrors.Default.return([fieldName, renderer]),
152
+ forms,
153
+ accumulatedAlreadyParsedForms,
154
+ ).Then(([renderer, newAlreadyParsedForms]) =>
155
+ ValueOrErrors.Default.return<
156
+ [
157
+ Map<string, RecordFieldRenderer<T>>,
158
+ Map<string, Renderer<T>>,
159
+ ],
160
+ string
161
+ >([
162
+ fieldsMap.set(fieldName, renderer),
163
+ newAlreadyParsedForms,
164
+ ]),
146
165
  ),
147
166
  ),
148
167
  ),
149
- ),
150
- )
151
- .Then((fieldTuples) =>
168
+ ValueOrErrors.Default.return<
169
+ [Map<string, RecordFieldRenderer<T>>, Map<string, Renderer<T>>],
170
+ string
171
+ >([Map<string, RecordFieldRenderer<T>>(), alreadyParsedForms]),
172
+ )
173
+ .Then(([fieldsMap, accumulatedAlreadyParsedForms]) =>
152
174
  ValueOrErrors.Operations.All(
153
175
  List<
154
176
  ValueOrErrors<
@@ -169,15 +191,19 @@ export const RecordRenderer = {
169
191
  ),
170
192
  ]),
171
193
  ).Then(([tabs, disabledFields]) =>
172
- ValueOrErrors.Default.return(
194
+ ValueOrErrors.Default.return<
195
+ [RecordRenderer<T>, Map<string, Renderer<T>>],
196
+ string
197
+ >([
173
198
  RecordRenderer.Default(
174
199
  type,
175
- Map(fieldTuples.toArray()),
200
+ fieldsMap,
176
201
  tabs as PredicateFormLayout,
177
202
  disabledFields as PredicateComputedOrInlined,
178
203
  validRecordForm.renderer,
179
204
  ),
180
- ),
205
+ accumulatedAlreadyParsedForms,
206
+ ]),
181
207
  ),
182
208
  )
183
209
  .MapErrors((errors) =>
@@ -78,7 +78,9 @@ export const SumRenderer = {
78
78
  ExtraContext
79
79
  >,
80
80
  types: Map<string, DispatchParsedType<T>>,
81
- ): ValueOrErrors<SumRenderer<T>, string> =>
81
+ forms: object,
82
+ alreadyParsedForms: Map<string, Renderer<T>>,
83
+ ): ValueOrErrors<[SumRenderer<T>, Map<string, Renderer<T>>], string> =>
82
84
  SumRenderer.Operations.tryAsValidSumBaseRenderer(serialized)
83
85
  .Then((validatedSerialized) =>
84
86
  NestedRenderer.Operations.DeserializeAs(
@@ -87,22 +89,30 @@ export const SumRenderer = {
87
89
  concreteRenderers,
88
90
  "Left renderer",
89
91
  types,
90
- ).Then((deserializedLeftRenderer) =>
92
+ forms,
93
+ alreadyParsedForms,
94
+ ).Then(([deserializedLeftRenderer, leftAlreadyParsedForms]) =>
91
95
  NestedRenderer.Operations.DeserializeAs(
92
96
  type.args[1],
93
97
  validatedSerialized.rightRenderer,
94
98
  concreteRenderers,
95
99
  "Right renderer",
96
100
  types,
97
- ).Then((deserializedRightRenderer) =>
98
- ValueOrErrors.Default.return(
101
+ forms,
102
+ leftAlreadyParsedForms,
103
+ ).Then(([deserializedRightRenderer, rightAlreadyParsedForms]) =>
104
+ ValueOrErrors.Default.return<
105
+ [SumRenderer<T>, Map<string, Renderer<T>>],
106
+ string
107
+ >([
99
108
  SumRenderer.Default(
100
109
  type,
101
110
  validatedSerialized.renderer,
102
111
  deserializedLeftRenderer,
103
112
  deserializedRightRenderer,
104
113
  ),
105
- ),
114
+ rightAlreadyParsedForms,
115
+ ]),
106
116
  ),
107
117
  ),
108
118
  )
@@ -5,6 +5,7 @@ import {
5
5
  DispatchParsedType,
6
6
  Expr,
7
7
  isObject,
8
+ Renderer,
8
9
  ValueOrErrors,
9
10
  } from "../../../../../../../../../../../../../../../main";
10
11
 
@@ -59,7 +60,12 @@ export const TableCellRenderer = {
59
60
  >,
60
61
  types: Map<string, DispatchParsedType<T>>,
61
62
  columnName: string,
62
- ): ValueOrErrors<TableCellRenderer<T>, string> =>
63
+ forms: object,
64
+ alreadyParsedForms: Map<string, Renderer<T>>,
65
+ ): ValueOrErrors<
66
+ [TableCellRenderer<T>, Map<string, Renderer<T>>],
67
+ string
68
+ > =>
63
69
  TableCellRenderer.Operations.tryAsValidTableCellRenderer(serialized).Then(
64
70
  (validatedSerialized) =>
65
71
  NestedRenderer.Operations.DeserializeAs(
@@ -68,14 +74,22 @@ export const TableCellRenderer = {
68
74
  concreteRenderers,
69
75
  `Table cell renderer for column ${columnName}`,
70
76
  types,
71
- ).Then((deserializedNestedRenderer) =>
77
+ forms,
78
+ alreadyParsedForms,
79
+ ).Then(([deserializedNestedRenderer, newAlreadyParsedForms]) =>
72
80
  TableCellRenderer.Operations.ComputeDisabled(
73
81
  validatedSerialized.disabled,
74
82
  ).Then((disabled) =>
75
- ValueOrErrors.Default.return({
76
- ...deserializedNestedRenderer,
77
- disabled,
78
- }),
83
+ ValueOrErrors.Default.return<
84
+ [TableCellRenderer<T>, Map<string, Renderer<T>>],
85
+ string
86
+ >([
87
+ {
88
+ ...deserializedNestedRenderer,
89
+ disabled,
90
+ },
91
+ newAlreadyParsedForms,
92
+ ]),
79
93
  ),
80
94
  ),
81
95
  ),