ballerina-core 1.0.245 → 1.0.247

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 (326) hide show
  1. package/bin/main.js +1 -1
  2. package/bin/src/api-response-handler/coroutines/runner.js +13 -20
  3. package/bin/src/api-response-handler/state.js +11 -13
  4. package/bin/src/apiResultStatus/state.d.ts +3 -10
  5. package/bin/src/apiResultStatus/state.js +5 -2
  6. package/bin/src/async/domains/mirroring/domains/collection/coroutines/synchronizers.js +196 -314
  7. package/bin/src/async/domains/mirroring/domains/collection/state.js +36 -126
  8. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection/state.js +11 -18
  9. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection-entity/state.js +19 -19
  10. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entities/state.js +1 -1
  11. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entity/state.js +18 -18
  12. package/bin/src/async/domains/mirroring/domains/entity/state.js +9 -18
  13. package/bin/src/async/domains/mirroring/domains/singleton/coroutines/synchronizers.js +83 -134
  14. package/bin/src/async/domains/mirroring/domains/singleton/state.js +8 -52
  15. package/bin/src/async/domains/mirroring/domains/synchronized-entities/state.js +4 -7
  16. package/bin/src/async/domains/promise/state.d.ts +4 -9
  17. package/bin/src/async/domains/promise/state.js +9 -20
  18. package/bin/src/async/domains/synchronized/coroutines/synchronize.js +28 -80
  19. package/bin/src/async/domains/synchronized/state.d.ts +7 -14
  20. package/bin/src/async/domains/synchronized/state.js +6 -16
  21. package/bin/src/async/state.d.ts +45 -56
  22. package/bin/src/async/state.js +97 -115
  23. package/bin/src/baseEntity/domains/identifiable/state.d.ts +11 -15
  24. package/bin/src/baseEntity/domains/identifiable/state.js +9 -9
  25. package/bin/src/collections/domains/array/state.d.ts +7 -7
  26. package/bin/src/collections/domains/array/state.js +5 -5
  27. package/bin/src/collections/domains/errors/state.d.ts +10 -10
  28. package/bin/src/collections/domains/errors/state.js +10 -10
  29. package/bin/src/collections/domains/immutable/domains/list/state.js +44 -46
  30. package/bin/src/collections/domains/immutable/domains/map/state.js +23 -41
  31. package/bin/src/collections/domains/immutable/domains/orderedMap/state.js +65 -84
  32. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.d.ts +6 -6
  33. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.js +6 -6
  34. package/bin/src/collections/domains/maybe/state.d.ts +9 -9
  35. package/bin/src/collections/domains/maybe/state.js +9 -12
  36. package/bin/src/collections/domains/product/state.d.ts +19 -25
  37. package/bin/src/collections/domains/product/state.js +10 -13
  38. package/bin/src/collections/domains/sum/state.d.ts +77 -101
  39. package/bin/src/collections/domains/sum/state.js +32 -49
  40. package/bin/src/collections/domains/valueOrErrors/state.js +56 -81
  41. package/bin/src/coroutines/builder.js +19 -40
  42. package/bin/src/coroutines/state.js +306 -381
  43. package/bin/src/coroutines/template.js +59 -97
  44. package/bin/src/debounced/coroutines/debounce.js +89 -115
  45. package/bin/src/debounced/state.js +25 -62
  46. package/bin/src/diagnostics/domains/message-box/state.d.ts +1 -1
  47. package/bin/src/diagnostics/domains/message-box/state.js +3 -3
  48. package/bin/src/foreignMutations/state.d.ts +3 -3
  49. package/bin/src/foreignMutations/state.js +1 -1
  50. package/bin/src/forms/domains/attachments/views/attachments-view.js +8 -30
  51. package/bin/src/forms/domains/collection/domains/reference/state.js +20 -26
  52. package/bin/src/forms/domains/collection/domains/selection/state.js +1 -1
  53. package/bin/src/forms/domains/dispatched-forms/built-ins/state.js +754 -2007
  54. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js +44 -123
  55. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.js +166 -339
  56. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/enum/state.js +27 -40
  57. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/list/state.js +40 -76
  58. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.js +59 -102
  59. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/map/state.js +29 -64
  60. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.js +30 -64
  61. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/one/state.js +33 -88
  62. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/primitive/state.js +13 -21
  63. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.js +23 -52
  64. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.js +18 -59
  65. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/state.js +55 -129
  66. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/stream/state.js +27 -43
  67. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sum/state.js +23 -63
  68. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sumUnitDate/state.js +22 -39
  69. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.js +11 -46
  70. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.d.ts +6 -1
  71. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.d.ts.map +1 -1
  72. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.js +50 -146
  73. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.js.map +1 -1
  74. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/tuple/state.js +29 -64
  75. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.js +33 -78
  76. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.js +62 -157
  77. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js +569 -977
  78. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.js +94 -255
  79. package/bin/src/forms/domains/dispatched-forms/deserializer/state.js +90 -322
  80. package/bin/src/forms/domains/dispatched-forms/deserializer/template.js +2 -3
  81. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.d.ts +5 -50
  82. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.d.ts.map +1 -1
  83. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.js +88 -7
  84. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.js.map +1 -1
  85. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/state.js +3 -3
  86. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/template.js +23 -49
  87. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/state.js +3 -3
  88. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/template.js +24 -52
  89. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/state.js +6 -18
  90. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/template.js +30 -64
  91. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/state.js +6 -9
  92. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/template.js +60 -153
  93. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/state.js +1 -1
  94. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/template.js +50 -127
  95. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/injectables/state.js +22 -40
  96. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.js +13 -31
  97. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.d.ts +2 -2
  98. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.d.ts.map +1 -1
  99. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js +142 -417
  100. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js.map +1 -1
  101. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.js +1 -1
  102. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js +8 -28
  103. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/state.js +18 -61
  104. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/template.js +90 -329
  105. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/state.js +3 -3
  106. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/template.js +23 -54
  107. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.js +10 -22
  108. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.js +31 -49
  109. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.js +10 -29
  110. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.js +2 -2
  111. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.js +26 -47
  112. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.js +40 -88
  113. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.js +152 -386
  114. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.js +10 -19
  115. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.js +21 -78
  116. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.js +11 -32
  117. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.js +77 -222
  118. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/state.js +13 -35
  119. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/template.js +68 -195
  120. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/state.js +13 -36
  121. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/template.js +106 -246
  122. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/state.js +3 -3
  123. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/template.js +23 -54
  124. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/state.js +27 -40
  125. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/state.js +3 -3
  126. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/template.js +26 -58
  127. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/state.js +7 -22
  128. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/template.js +53 -188
  129. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/builder.js +2 -2
  130. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/infiniteLoader.js +24 -57
  131. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseFiltersAndSorting.js +20 -70
  132. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js +27 -61
  133. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/loadWithRetries.js +19 -38
  134. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/runner.js +15 -43
  135. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.d.ts +4 -0
  136. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.d.ts.map +1 -1
  137. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js +137 -301
  138. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.d.ts +6 -2
  139. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.d.ts.map +1 -1
  140. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js +238 -622
  141. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js.map +1 -1
  142. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/state.js +8 -20
  143. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/template.js +35 -132
  144. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/state.js +8 -21
  145. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/template.js +32 -103
  146. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/state.js +9 -12
  147. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/template.js +20 -54
  148. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.d.ts +22 -0
  149. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.d.ts.map +1 -1
  150. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js +557 -676
  151. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js.map +1 -1
  152. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.js +18 -58
  153. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js +14 -45
  154. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.js +18 -76
  155. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/multiSelection/state.js +24 -82
  156. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.js +8 -37
  157. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js +36 -120
  158. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/primitive/state.js +63 -145
  159. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js +12 -44
  160. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.js +4 -14
  161. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.js +25 -81
  162. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/singleSelectionDispatcher/state.js +24 -82
  163. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.js +20 -63
  164. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.d.ts.map +1 -1
  165. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js +74 -247
  166. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js.map +1 -1
  167. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.js +13 -61
  168. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.js +15 -64
  169. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js +45 -144
  170. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_init.js +95 -203
  171. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_sync.js +37 -79
  172. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/builder.js +2 -2
  173. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/runner.js +17 -19
  174. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/state.js +11 -58
  175. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/template.js +25 -73
  176. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_init.js +95 -205
  177. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_sync.js +37 -78
  178. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/builder.js +2 -2
  179. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/runner.js +17 -19
  180. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/state.js +11 -58
  181. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/template.js +25 -71
  182. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/coroutines/runner.js +85 -163
  183. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/state.js +4 -10
  184. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/template.js +27 -72
  185. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.js +423 -773
  186. package/bin/src/forms/domains/dispatched-forms/runner/state.js +38 -62
  187. package/bin/src/forms/domains/dispatched-forms/runner/template.js +25 -78
  188. package/bin/src/forms/domains/launcher/coroutines/runner.js +45 -120
  189. package/bin/src/forms/domains/launcher/domains/create/coroutines/runner.js +101 -240
  190. package/bin/src/forms/domains/launcher/domains/create/state.js +17 -62
  191. package/bin/src/forms/domains/launcher/domains/create/template.js +42 -84
  192. package/bin/src/forms/domains/launcher/domains/edit/coroutines/runner.js +103 -242
  193. package/bin/src/forms/domains/launcher/domains/edit/state.js +17 -62
  194. package/bin/src/forms/domains/launcher/domains/edit/template.js +43 -86
  195. package/bin/src/forms/domains/launcher/domains/merger/state.d.ts +4 -4
  196. package/bin/src/forms/domains/launcher/domains/merger/state.js +26 -35
  197. package/bin/src/forms/domains/launcher/domains/passthrough/coroutines/runner.js +42 -88
  198. package/bin/src/forms/domains/launcher/domains/passthrough/state.js +19 -44
  199. package/bin/src/forms/domains/launcher/domains/passthrough/template.js +34 -56
  200. package/bin/src/forms/domains/launcher/state.js +6 -6
  201. package/bin/src/forms/domains/launcher/template.js +85 -169
  202. package/bin/src/forms/domains/parser/coroutines/runner.js +25 -87
  203. package/bin/src/forms/domains/parser/domains/built-ins/state.js +533 -944
  204. package/bin/src/forms/domains/parser/domains/deltas/state.js +318 -444
  205. package/bin/src/forms/domains/parser/domains/injectables/state.js +26 -29
  206. package/bin/src/forms/domains/parser/domains/layout/state.d.ts +1 -1
  207. package/bin/src/forms/domains/parser/domains/layout/state.d.ts.map +1 -1
  208. package/bin/src/forms/domains/parser/domains/layout/state.js +183 -265
  209. package/bin/src/forms/domains/parser/domains/layout/state.js.map +1 -1
  210. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.js +162 -324
  211. package/bin/src/forms/domains/parser/domains/predicates/state.js +979 -1509
  212. package/bin/src/forms/domains/parser/domains/renderer/state.js +480 -1137
  213. package/bin/src/forms/domains/parser/domains/types/state.js +170 -355
  214. package/bin/src/forms/domains/parser/domains/validator/state.js +280 -417
  215. package/bin/src/forms/domains/parser/state.js +373 -612
  216. package/bin/src/forms/domains/parser/template.js +1 -1
  217. package/bin/src/forms/domains/primitives/domains/base-64-file/state.js +5 -5
  218. package/bin/src/forms/domains/primitives/domains/base-64-file/template.js +19 -38
  219. package/bin/src/forms/domains/primitives/domains/boolean/state.js +5 -5
  220. package/bin/src/forms/domains/primitives/domains/boolean/template.js +19 -38
  221. package/bin/src/forms/domains/primitives/domains/date/state.js +9 -18
  222. package/bin/src/forms/domains/primitives/domains/date/template.js +25 -51
  223. package/bin/src/forms/domains/primitives/domains/enum/state.js +6 -6
  224. package/bin/src/forms/domains/primitives/domains/enum/template.js +48 -117
  225. package/bin/src/forms/domains/primitives/domains/enum-multiselect/state.js +1 -1
  226. package/bin/src/forms/domains/primitives/domains/enum-multiselect/template.js +40 -99
  227. package/bin/src/forms/domains/primitives/domains/list/state.js +14 -14
  228. package/bin/src/forms/domains/primitives/domains/list/template.js +71 -200
  229. package/bin/src/forms/domains/primitives/domains/map/state.js +14 -14
  230. package/bin/src/forms/domains/primitives/domains/map/template.js +103 -294
  231. package/bin/src/forms/domains/primitives/domains/number/state.js +5 -5
  232. package/bin/src/forms/domains/primitives/domains/number/template.js +19 -38
  233. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/state.js +16 -33
  234. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/template.js +62 -171
  235. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/state.js +1 -1
  236. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/template.js +69 -182
  237. package/bin/src/forms/domains/primitives/domains/secret/state.js +5 -5
  238. package/bin/src/forms/domains/primitives/domains/secret/template.js +19 -38
  239. package/bin/src/forms/domains/primitives/domains/string/state.js +5 -5
  240. package/bin/src/forms/domains/primitives/domains/string/template.js +22 -42
  241. package/bin/src/forms/domains/primitives/domains/sum/state.js +10 -10
  242. package/bin/src/forms/domains/primitives/domains/sum/template.js +50 -141
  243. package/bin/src/forms/domains/primitives/domains/tuple/state.js +9 -9
  244. package/bin/src/forms/domains/primitives/domains/tuple/template.js +33 -100
  245. package/bin/src/forms/domains/primitives/domains/unit/state.js +8 -8
  246. package/bin/src/forms/domains/primitives/domains/unit/template.js +9 -22
  247. package/bin/src/forms/domains/singleton/domains/form-label/state.d.ts +4 -4
  248. package/bin/src/forms/domains/singleton/domains/form-label/state.js +1 -1
  249. package/bin/src/forms/domains/singleton/state.js +10 -12
  250. package/bin/src/forms/domains/singleton/template.js +113 -288
  251. package/bin/src/fun/domains/curry/state.d.ts +2 -4
  252. package/bin/src/fun/domains/curry/state.js +1 -1
  253. package/bin/src/fun/domains/id/state.d.ts +1 -1
  254. package/bin/src/fun/domains/id/state.js +1 -1
  255. package/bin/src/fun/domains/predicate/domains/bool-expr.d.ts +41 -57
  256. package/bin/src/fun/domains/predicate/domains/bool-expr.js +67 -76
  257. package/bin/src/fun/domains/predicate/state.d.ts +7 -9
  258. package/bin/src/fun/domains/predicate/state.js +10 -14
  259. package/bin/src/fun/domains/simpleCallback/state.d.ts +1 -1
  260. package/bin/src/fun/domains/simpleCallback/state.js +1 -1
  261. package/bin/src/fun/domains/uncurry/state.d.ts +2 -4
  262. package/bin/src/fun/domains/uncurry/state.js +1 -1
  263. package/bin/src/fun/domains/unit/state.d.ts +1 -1
  264. package/bin/src/fun/domains/unit/state.js +1 -1
  265. package/bin/src/fun/domains/updater/domains/caseUpdater/state.d.ts +7 -22
  266. package/bin/src/fun/domains/updater/domains/caseUpdater/state.js +10 -18
  267. package/bin/src/fun/domains/updater/domains/mapUpdater/state.d.ts +13 -24
  268. package/bin/src/fun/domains/updater/domains/mapUpdater/state.js +10 -40
  269. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.d.ts +13 -19
  270. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.js +9 -20
  271. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.d.ts +13 -24
  272. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.js +11 -47
  273. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.d.ts +8 -20
  274. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.js +5 -17
  275. package/bin/src/fun/domains/updater/domains/replaceWith/state.d.ts +1 -1
  276. package/bin/src/fun/domains/updater/domains/replaceWith/state.js +1 -1
  277. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.d.ts +4 -13
  278. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.js +4 -6
  279. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.d.ts +22 -60
  280. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.js +31 -42
  281. package/bin/src/fun/domains/updater/state.d.ts +4 -4
  282. package/bin/src/fun/domains/updater/state.js +10 -12
  283. package/bin/src/fun/state.d.ts +3 -3
  284. package/bin/src/fun/state.js +7 -9
  285. package/bin/src/infinite-data-stream/coroutines/builder.js +1 -1
  286. package/bin/src/infinite-data-stream/coroutines/infiniteLoader.js +20 -47
  287. package/bin/src/infinite-data-stream/coroutines/runner.js +7 -7
  288. package/bin/src/infinite-data-stream/state.d.ts +51 -84
  289. package/bin/src/infinite-data-stream/state.js +61 -125
  290. package/bin/src/infinite-data-stream/template.js +2 -3
  291. package/bin/src/math/domains/DOMRect/state.d.ts +4 -4
  292. package/bin/src/math/domains/DOMRect/state.js +8 -10
  293. package/bin/src/math/domains/number/state.d.ts +5 -5
  294. package/bin/src/math/domains/number/state.js +5 -5
  295. package/bin/src/math/domains/rect/state.d.ts +8 -8
  296. package/bin/src/math/domains/rect/state.js +15 -16
  297. package/bin/src/math/domains/rgba/state.d.ts +17 -17
  298. package/bin/src/math/domains/rgba/state.js +81 -77
  299. package/bin/src/math/domains/size2/state.d.ts +8 -8
  300. package/bin/src/math/domains/size2/state.js +6 -6
  301. package/bin/src/math/domains/vector2/state.d.ts +10 -10
  302. package/bin/src/math/domains/vector2/state.js +8 -8
  303. package/bin/src/queue/state.d.ts +2 -2
  304. package/bin/src/queue/state.d.ts.map +1 -1
  305. package/bin/src/queue/state.js +2 -2
  306. package/bin/src/queue/state.js.map +1 -1
  307. package/bin/src/state/domains/repository/state.d.ts +9 -15
  308. package/bin/src/state/domains/repository/state.js +1 -1
  309. package/bin/src/template/state.js +115 -163
  310. package/bin/src/validation/state.js +45 -38
  311. package/bin/src/value/domains/mutable-value/state.js +2 -3
  312. package/bin/src/value/state.d.ts +9 -9
  313. package/bin/src/value/state.js +8 -11
  314. package/bin/src/value-infinite-data-stream/coroutines/builder.js +1 -1
  315. package/bin/src/value-infinite-data-stream/coroutines/infiniteLoader.js +20 -55
  316. package/bin/src/value-infinite-data-stream/coroutines/runner.js +4 -6
  317. package/bin/src/value-infinite-data-stream/state.js +77 -199
  318. package/bin/src/value-infinite-data-stream/template.js +2 -4
  319. package/bin/src/visibility/state.d.ts +2 -5
  320. package/bin/src/visibility/state.js +1 -1
  321. package/package.json +1 -1
  322. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.ts +32 -15
  323. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.tsx +16 -3
  324. package/src/forms/domains/dispatched-forms/runner/domains/deltas/state.ts +46 -0
  325. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.ts +1 -0
  326. package/src/forms/domains/parser/domains/layout/state.ts +11 -4
@@ -1,799 +1,449 @@
1
- import {
2
- Option,
3
- ValueOrErrors,
4
- PredicateValue,
5
- Expr,
6
- Updater,
7
- FormLayout,
8
- unit,
9
- TableLayout,
10
- } from "ballerina-core";
1
+ import { Option, ValueOrErrors, PredicateValue, Expr, Updater, FormLayout, unit, TableLayout, } from "ballerina-core";
11
2
  import { List, Map } from "immutable";
12
3
  import { LookupRenderer } from "../../../deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state";
13
4
  export const RendererTraversal = {
14
- Operations: {
15
- Run: (renderer, traversalContext) => {
16
- const rec = RendererTraversal.Operations.Run;
17
- const mapEvalContext = (f) =>
18
- Updater(Option.Updaters.some((v) => (ctx) => v(f(ctx))));
19
- const traverseNode = traversalContext.traverseSingleType(renderer.type);
20
- if (
21
- renderer.type.kind == "primitive" ||
22
- renderer.type.kind == "singleSelection" ||
23
- renderer.type.kind == "multiSelection"
24
- ) {
25
- return ValueOrErrors.Default.return(traverseNode);
26
- }
27
- if (
28
- renderer.kind == "lookupType-lookupRenderer" ||
29
- renderer.kind == "lookupType-inlinedRenderer" ||
30
- renderer.kind == "inlinedType-lookupRenderer"
31
- ) {
32
- if (
33
- renderer.kind == "lookupType-lookupRenderer" ||
34
- renderer.kind == "lookupType-inlinedRenderer"
35
- ) {
36
- return LookupRenderer.Operations.ResolveRenderer(
37
- renderer,
38
- traversalContext.forms,
39
- ).Then((resolvedRenderer) =>
40
- rec(resolvedRenderer, traversalContext).Then((valueTraversal) =>
41
- ValueOrErrors.Default.return(
42
- // reassign local if it's a lookup renderer
43
- renderer.kind == "lookupType-lookupRenderer"
44
- ? mapEvalContext((ctx) =>
45
- Object.assign(Object.assign({}, ctx), {
46
- local: ctx.traversalIterator,
47
- }),
48
- )(valueTraversal)
49
- : valueTraversal,
50
- ).Then((resolvedTraversal) => {
51
- if (traverseNode.kind == "l" && resolvedTraversal.kind == "l") {
52
- return ValueOrErrors.Default.return(Option.Default.none());
53
- }
54
- if (traverseNode.kind == "l") {
55
- return ValueOrErrors.Default.return(resolvedTraversal);
56
- }
57
- if (resolvedTraversal.kind == "l") {
58
- return ValueOrErrors.Default.return(
59
- Option.Default.some((evalContext) =>
60
- traverseNode
61
- .value(evalContext)
62
- .Then((nodeResult) =>
63
- ValueOrErrors.Default.return(nodeResult),
64
- ),
65
- ),
66
- );
67
- }
68
- return ValueOrErrors.Default.return(
69
- Option.Default.some((evalContext) => {
70
- return resolvedTraversal
71
- .value(evalContext)
72
- .Then((resolvedTraversal) =>
73
- traverseNode
74
- .value(evalContext)
75
- .Then((nodeResult) =>
76
- ValueOrErrors.Default.return(
77
- traversalContext.joinRes([
5
+ Operations: {
6
+ Run: (renderer, traversalContext) => {
7
+ const rec = (RendererTraversal.Operations.Run);
8
+ const mapEvalContext = (f) => Updater(Option.Updaters.some((v) => (ctx) => v(f(ctx))));
9
+ const traverseNode = traversalContext.traverseSingleType(renderer.type);
10
+ if (renderer.type.kind == "primitive" ||
11
+ renderer.type.kind == "singleSelection" ||
12
+ renderer.type.kind == "multiSelection") {
13
+ return ValueOrErrors.Default.return(traverseNode);
14
+ }
15
+ if (renderer.kind == "lookupType-lookupRenderer" ||
16
+ renderer.kind == "lookupType-inlinedRenderer" ||
17
+ renderer.kind == "inlinedType-lookupRenderer") {
18
+ if (renderer.kind == "lookupType-lookupRenderer" ||
19
+ renderer.kind == "lookupType-inlinedRenderer") {
20
+ return LookupRenderer.Operations.ResolveRenderer(renderer, traversalContext.forms).Then((resolvedRenderer) => rec(resolvedRenderer, traversalContext).Then((valueTraversal) => ValueOrErrors.Default.return(
21
+ // reassign local if it's a lookup renderer
22
+ renderer.kind == "lookupType-lookupRenderer"
23
+ ? mapEvalContext((ctx) => (Object.assign(Object.assign({}, ctx), { local: ctx.traversalIterator })))(valueTraversal)
24
+ : valueTraversal).Then((resolvedTraversal) => {
25
+ if (traverseNode.kind == "l" &&
26
+ resolvedTraversal.kind == "l") {
27
+ return ValueOrErrors.Default.return(Option.Default.none());
28
+ }
29
+ if (traverseNode.kind == "l") {
30
+ return ValueOrErrors.Default.return(resolvedTraversal);
31
+ }
32
+ if (resolvedTraversal.kind == "l") {
33
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => traverseNode
34
+ .value(evalContext)
35
+ .Then((nodeResult) => ValueOrErrors.Default.return(nodeResult))));
36
+ }
37
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
38
+ return resolvedTraversal
39
+ .value(evalContext)
40
+ .Then((resolvedTraversal) => traverseNode
41
+ .value(evalContext)
42
+ .Then((nodeResult) => ValueOrErrors.Default.return(traversalContext.joinRes([
78
43
  nodeResult,
79
44
  resolvedTraversal,
80
- ]),
81
- ),
82
- ),
83
- );
84
- }),
85
- );
86
- }),
87
- ),
88
- );
89
- }
90
- return LookupRenderer.Operations.ResolveRenderer(
91
- renderer,
92
- traversalContext.forms,
93
- ).Then((resolvedRenderer) =>
94
- rec(resolvedRenderer, traversalContext).Then((valueTraversal) =>
95
- ValueOrErrors.Default.return(valueTraversal),
96
- ),
97
- );
98
- }
99
- if (
100
- renderer.type.kind == "readOnly" &&
101
- renderer.kind == "readOnlyRenderer"
102
- ) {
103
- return rec(renderer.childRenderer.renderer, traversalContext).Then(
104
- (valueTraversal) => {
105
- if (valueTraversal.kind == "l" && traverseNode.kind == "l") {
106
- return ValueOrErrors.Default.return(Option.Default.none());
107
- }
108
- return ValueOrErrors.Default.return(
109
- Option.Default.some((evalContext) => {
110
- const iterator = evalContext.traversalIterator;
111
- if (!PredicateValue.Operations.IsReadOnly(iterator)) {
112
- return ValueOrErrors.Default.throwOne(
113
- `Error: traversal iterator is not read only, got ${JSON.stringify(iterator, undefined, 2)}`,
114
- );
45
+ ]))));
46
+ }));
47
+ })));
115
48
  }
116
- return (
117
- valueTraversal.kind == "r"
118
- ? valueTraversal.value(
119
- Object.assign(Object.assign({}, evalContext), {
120
- traversalIterator: iterator.ReadOnly,
121
- }),
122
- )
123
- : ValueOrErrors.Default.return(
124
- traversalContext.zeroRes(unit),
125
- )
126
- ).Then((valueResult) =>
127
- traverseNode.kind == "r"
128
- ? traverseNode
129
- .value(evalContext)
130
- .Then((nodeResult) =>
131
- ValueOrErrors.Default.return(
132
- traversalContext.joinRes([valueResult, nodeResult]),
133
- ),
134
- )
135
- : ValueOrErrors.Default.return(valueResult),
136
- );
137
- }),
138
- );
139
- },
140
- );
141
- }
142
- if (renderer.type.kind == "record" && renderer.kind == "recordRenderer") {
143
- return ValueOrErrors.Operations.All(
144
- List(
145
- renderer.fields
146
- .map((fieldRenderer, fieldName) =>
147
- rec(fieldRenderer.renderer, traversalContext).Then(
148
- (fieldTraversal) => {
49
+ return LookupRenderer.Operations.ResolveRenderer(renderer, traversalContext.forms).Then((resolvedRenderer) => rec(resolvedRenderer, traversalContext).Then((valueTraversal) => ValueOrErrors.Default.return(valueTraversal)));
50
+ }
51
+ if (renderer.type.kind == "readOnly" &&
52
+ renderer.kind == "readOnlyRenderer") {
53
+ return rec(renderer.childRenderer.renderer, traversalContext).Then((valueTraversal) => {
54
+ if (valueTraversal.kind == "l" && traverseNode.kind == "l") {
55
+ return ValueOrErrors.Default.return(Option.Default.none());
56
+ }
57
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
58
+ const iterator = evalContext.traversalIterator;
59
+ if (!PredicateValue.Operations.IsReadOnly(iterator)) {
60
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not read only, got ${JSON.stringify(iterator, undefined, 2)}`);
61
+ }
62
+ return (valueTraversal.kind == "r"
63
+ ? valueTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.ReadOnly }))
64
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit))).Then((valueResult) => traverseNode.kind == "r"
65
+ ? traverseNode
66
+ .value(evalContext)
67
+ .Then((nodeResult) => ValueOrErrors.Default.return(traversalContext.joinRes([valueResult, nodeResult])))
68
+ : ValueOrErrors.Default.return(valueResult));
69
+ }));
70
+ });
71
+ }
72
+ if (renderer.type.kind == "record" && renderer.kind == "recordRenderer") {
73
+ return ValueOrErrors.Operations.All(List(renderer.fields
74
+ .map((fieldRenderer, fieldName) => rec(fieldRenderer.renderer, traversalContext).Then((fieldTraversal) => {
149
75
  return ValueOrErrors.Default.return({
150
- fieldName: fieldName,
151
- visibility: fieldRenderer.visible,
152
- fieldTraversal: fieldTraversal,
76
+ fieldName: fieldName,
77
+ visibility: fieldRenderer.visible,
78
+ fieldTraversal: fieldTraversal,
153
79
  });
154
- },
155
- ),
156
- )
157
- .valueSeq(),
158
- ),
159
- ).Then((fieldTraversals) => {
160
- if (
161
- fieldTraversals.every((f) => f.fieldTraversal.kind == "l") &&
162
- traverseNode.kind == "l"
163
- ) {
164
- return ValueOrErrors.Default.return(Option.Default.none());
165
- }
166
- return ValueOrErrors.Default.return(
167
- Option.Default.some((evalContext) => {
168
- if (
169
- !PredicateValue.Operations.IsRecord(
170
- evalContext.traversalIterator,
171
- )
172
- )
173
- return ValueOrErrors.Default.throwOne(
174
- `Error: traversal iterator is not a record, got ${JSON.stringify(evalContext.traversalIterator, undefined, 2)}`,
175
- );
176
- const visibleFieldsRes =
177
- FormLayout.Operations.ComputeVisibleFieldsForRecord(
178
- Map([
179
- ["global", evalContext.global],
180
- ["local", evalContext.local],
181
- ["root", evalContext.root],
182
- ]),
183
- renderer.tabs,
184
- );
185
- // TODO later, make this monadic
186
- if (visibleFieldsRes.kind == "errors") {
187
- return visibleFieldsRes;
188
- }
189
- const visibleFields = visibleFieldsRes.value;
190
- const traversalIteratorFields =
191
- evalContext.traversalIterator.fields;
192
- return ValueOrErrors.Operations.All(
193
- fieldTraversals.flatMap((f) => {
194
- // should be a map and instead of flatmap and [] a VoE.default.return([]) then an All on this and then a flatmap, everything is returned in a VoE
195
- if (
196
- f.fieldTraversal.kind == "l" ||
197
- !visibleFields.includes(f.fieldName)
198
- )
199
- return [];
200
- if (f.visibility != undefined) {
201
- const visible = Expr.Operations.Evaluate(
202
- Map([
203
- ["global", evalContext.global],
204
- ["local", evalContext.local],
205
- ["root", evalContext.root],
206
- ]),
207
- )(f.visibility);
208
- if (visible.kind == "value" && !visible.value) {
209
- return [];
80
+ }))
81
+ .valueSeq())).Then((fieldTraversals) => {
82
+ if (fieldTraversals.every((f) => f.fieldTraversal.kind == "l") &&
83
+ traverseNode.kind == "l") {
84
+ return ValueOrErrors.Default.return(Option.Default.none());
210
85
  }
211
- }
212
- return [
213
- f.fieldTraversal.value(
214
- Object.assign(Object.assign({}, evalContext), {
215
- traversalIterator: traversalIteratorFields.get(
216
- f.fieldName,
217
- ),
218
- }),
219
- ),
220
- ];
221
- }),
222
- ).Then((fieldResults) => {
223
- return traverseNode.kind == "r"
224
- ? traverseNode
225
- .value(evalContext)
226
- .Then((nodeResult) =>
227
- ValueOrErrors.Default.return(
228
- fieldResults.reduce(
229
- (acc, res) => traversalContext.joinRes([acc, res]),
230
- nodeResult,
231
- ),
232
- ),
233
- )
234
- : ValueOrErrors.Default.return(
235
- fieldResults.reduce(
236
- (acc, res) => traversalContext.joinRes([acc, res]),
237
- traversalContext.zeroRes(unit),
238
- ),
239
- );
240
- });
241
- }),
242
- );
243
- });
244
- }
245
- if (
246
- renderer.type.kind == "sum" &&
247
- (renderer.kind == "sumRenderer" ||
248
- renderer.kind == "sumUnitDateRenderer")
249
- ) {
250
- // this will be removed when sums become proper partials
251
- if (renderer.kind == "sumUnitDateRenderer") {
252
- if (traverseNode.kind == "l") {
253
- return ValueOrErrors.Default.return(Option.Default.none());
254
- }
255
- return ValueOrErrors.Default.return(
256
- Option.Default.some((evalContext) =>
257
- traverseNode.value(evalContext),
258
- ),
259
- );
260
- }
261
- if (renderer.kind == "sumRenderer") {
262
- return rec(renderer.leftRenderer.renderer, traversalContext).Then(
263
- (leftTraversal) =>
264
- rec(renderer.rightRenderer.renderer, traversalContext).Then(
265
- (rightTraversal) => {
266
- if (
267
- leftTraversal.kind == "l" &&
268
- rightTraversal.kind == "l" &&
269
- traverseNode.kind == "l"
270
- ) {
271
- return ValueOrErrors.Default.return(Option.Default.none());
272
- }
273
- return ValueOrErrors.Default.return(
274
- Option.Default.some((evalContext) => {
275
- const iterator = evalContext.traversalIterator;
276
- if (!PredicateValue.Operations.IsSum(iterator)) {
277
- return ValueOrErrors.Default.throwOne(
278
- `Error: traversal iterator is not a sum, got ${evalContext.traversalIterator}`,
279
- );
280
- }
281
- const isRight = iterator.value.kind == "r";
282
- if (isRight && rightTraversal.kind == "r") {
283
- if (traverseNode.kind == "r") {
284
- return traverseNode
285
- .value(evalContext)
286
- .Then((nodeResult) => {
287
- return rightTraversal
288
- .value(
289
- Object.assign(
290
- Object.assign({}, evalContext),
291
- { traversalIterator: iterator.value.value },
292
- ),
293
- )
294
- .Then((rightRes) => {
295
- return ValueOrErrors.Default.return(
296
- traversalContext.joinRes([
297
- nodeResult,
298
- rightRes,
299
- ]),
300
- );
301
- });
302
- });
86
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
87
+ if (!PredicateValue.Operations.IsRecord(evalContext.traversalIterator))
88
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not a record, got ${JSON.stringify(evalContext.traversalIterator, undefined, 2)}`);
89
+ const visibleFieldsRes = FormLayout.Operations.ComputeVisibleFieldsForRecord(Map([
90
+ ["global", evalContext.global],
91
+ ["local", evalContext.local],
92
+ ["root", evalContext.root],
93
+ ]), renderer.tabs);
94
+ // TODO later, make this monadic
95
+ if (visibleFieldsRes.kind == "errors") {
96
+ return visibleFieldsRes;
97
+ }
98
+ const visibleFields = visibleFieldsRes.value;
99
+ const traversalIteratorFields = evalContext.traversalIterator.fields;
100
+ return ValueOrErrors.Operations.All(fieldTraversals.flatMap((f) => {
101
+ // should be a map and instead of flatmap and [] a VoE.default.return([]) then an All on this and then a flatmap, everything is returned in a VoE
102
+ if (f.fieldTraversal.kind == "l" ||
103
+ !visibleFields.includes(f.fieldName))
104
+ return [];
105
+ if (f.visibility != undefined) {
106
+ const visible = Expr.Operations.Evaluate(Map([
107
+ ["global", evalContext.global],
108
+ ["local", evalContext.local],
109
+ ["root", evalContext.root],
110
+ ]))(f.visibility);
111
+ if (visible.kind == "value" && !visible.value) {
112
+ return [];
113
+ }
114
+ }
115
+ return [
116
+ f.fieldTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: traversalIteratorFields.get(f.fieldName) })),
117
+ ];
118
+ })).Then((fieldResults) => {
119
+ return traverseNode.kind == "r"
120
+ ? traverseNode
121
+ .value(evalContext)
122
+ .Then((nodeResult) => ValueOrErrors.Default.return(fieldResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), nodeResult)))
123
+ : ValueOrErrors.Default.return(fieldResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), traversalContext.zeroRes(unit)));
124
+ });
125
+ }));
126
+ });
127
+ }
128
+ if (renderer.type.kind == "sum" &&
129
+ (renderer.kind == "sumRenderer" ||
130
+ renderer.kind == "sumUnitDateRenderer")) {
131
+ // this will be removed when sums become proper partials
132
+ if (renderer.kind == "sumUnitDateRenderer") {
133
+ if (traverseNode.kind == "l") {
134
+ return ValueOrErrors.Default.return(Option.Default.none());
135
+ }
136
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => traverseNode.value(evalContext)));
137
+ }
138
+ if (renderer.kind == "sumRenderer") {
139
+ return rec(renderer.leftRenderer.renderer, traversalContext).Then((leftTraversal) => rec(renderer.rightRenderer.renderer, traversalContext).Then((rightTraversal) => {
140
+ if (leftTraversal.kind == "l" &&
141
+ rightTraversal.kind == "l" &&
142
+ traverseNode.kind == "l") {
143
+ return ValueOrErrors.Default.return(Option.Default.none());
303
144
  }
304
- return rightTraversal
305
- .value(
306
- Object.assign(Object.assign({}, evalContext), {
307
- traversalIterator: iterator.value.value,
308
- }),
309
- )
310
- .Then((rightRes) => {
311
- return ValueOrErrors.Default.return(rightRes);
312
- });
313
- }
314
- if (!isRight && leftTraversal.kind == "r") {
315
- if (traverseNode.kind == "r") {
316
- return traverseNode
317
- .value(evalContext)
318
- .Then((nodeResult) => {
319
- return leftTraversal
320
- .value(
321
- Object.assign(
322
- Object.assign({}, evalContext),
323
- { traversalIterator: iterator.value.value },
324
- ),
325
- )
326
- .Then((leftRes) => {
327
- return ValueOrErrors.Default.return(
328
- traversalContext.joinRes([
329
- nodeResult,
330
- leftRes,
331
- ]),
332
- );
145
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
146
+ const iterator = evalContext.traversalIterator;
147
+ if (!PredicateValue.Operations.IsSum(iterator)) {
148
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not a sum, got ${evalContext.traversalIterator}`);
149
+ }
150
+ const isRight = iterator.value.kind == "r";
151
+ if (isRight && rightTraversal.kind == "r") {
152
+ if (traverseNode.kind == "r") {
153
+ return traverseNode
154
+ .value(evalContext)
155
+ .Then((nodeResult) => {
156
+ return rightTraversal
157
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value.value }))
158
+ .Then((rightRes) => {
159
+ return ValueOrErrors.Default.return(traversalContext.joinRes([
160
+ nodeResult,
161
+ rightRes,
162
+ ]));
163
+ });
164
+ });
165
+ }
166
+ return rightTraversal
167
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value.value }))
168
+ .Then((rightRes) => {
169
+ return ValueOrErrors.Default.return(rightRes);
333
170
  });
334
- });
171
+ }
172
+ if (!isRight && leftTraversal.kind == "r") {
173
+ if (traverseNode.kind == "r") {
174
+ return traverseNode
175
+ .value(evalContext)
176
+ .Then((nodeResult) => {
177
+ return leftTraversal
178
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value.value }))
179
+ .Then((leftRes) => {
180
+ return ValueOrErrors.Default.return(traversalContext.joinRes([
181
+ nodeResult,
182
+ leftRes,
183
+ ]));
184
+ });
185
+ });
186
+ }
187
+ return leftTraversal
188
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value.value }))
189
+ .Then((leftRes) => {
190
+ return ValueOrErrors.Default.return(leftRes);
191
+ });
192
+ }
193
+ return ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
194
+ }));
195
+ }));
196
+ }
197
+ }
198
+ if (renderer.type.kind == "tuple" && renderer.kind == "tupleRenderer") {
199
+ return ValueOrErrors.Operations.All(List(renderer.itemRenderers.map((itemRenderer, index) => {
200
+ return rec(itemRenderer.renderer, traversalContext).Then((itemTraversal) => {
201
+ return ValueOrErrors.Default.return({
202
+ index: index,
203
+ itemTraversal: itemTraversal,
204
+ });
205
+ });
206
+ }))).Then((itemTraversals) => {
207
+ if (itemTraversals.every((i) => i.itemTraversal.kind == "l") &&
208
+ traverseNode.kind == "l") {
209
+ return ValueOrErrors.Default.return(Option.Default.none());
210
+ }
211
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
212
+ const iterator = evalContext.traversalIterator;
213
+ if (!PredicateValue.Operations.IsTuple(iterator)) {
214
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not a tuple, got ${evalContext.traversalIterator}`);
335
215
  }
336
- return leftTraversal
337
- .value(
338
- Object.assign(Object.assign({}, evalContext), {
339
- traversalIterator: iterator.value.value,
340
- }),
341
- )
342
- .Then((leftRes) => {
343
- return ValueOrErrors.Default.return(leftRes);
344
- });
345
- }
346
- return ValueOrErrors.Default.return(
347
- traversalContext.zeroRes(unit),
348
- );
349
- }),
350
- );
351
- },
352
- ),
353
- );
354
- }
355
- }
356
- if (renderer.type.kind == "tuple" && renderer.kind == "tupleRenderer") {
357
- return ValueOrErrors.Operations.All(
358
- List(
359
- renderer.itemRenderers.map((itemRenderer, index) => {
360
- return rec(itemRenderer.renderer, traversalContext).Then(
361
- (itemTraversal) => {
362
- return ValueOrErrors.Default.return({
363
- index: index,
364
- itemTraversal: itemTraversal,
365
- });
366
- },
367
- );
368
- }),
369
- ),
370
- ).Then((itemTraversals) => {
371
- if (
372
- itemTraversals.every((i) => i.itemTraversal.kind == "l") &&
373
- traverseNode.kind == "l"
374
- ) {
375
- return ValueOrErrors.Default.return(Option.Default.none());
376
- }
377
- return ValueOrErrors.Default.return(
378
- Option.Default.some((evalContext) => {
379
- const iterator = evalContext.traversalIterator;
380
- if (!PredicateValue.Operations.IsTuple(iterator)) {
381
- return ValueOrErrors.Default.throwOne(
382
- `Error: traversal iterator is not a tuple, got ${evalContext.traversalIterator}`,
383
- );
384
- }
385
- return ValueOrErrors.Operations.All(
386
- itemTraversals.flatMap((i) =>
387
- i.itemTraversal.kind == "r"
388
- ? [
389
- i.itemTraversal.value(
390
- Object.assign(Object.assign({}, evalContext), {
391
- traversalIterator: iterator.values.get(i.index),
392
- }),
393
- ),
394
- ]
395
- : [],
396
- ),
397
- ).Then((itemResults) => {
398
- return traverseNode.kind == "r"
399
- ? traverseNode
400
- .value(evalContext)
401
- .Then((nodeResult) =>
402
- ValueOrErrors.Default.return(
403
- itemResults.reduce(
404
- (acc, res) => traversalContext.joinRes([acc, res]),
405
- nodeResult,
406
- ),
407
- ),
408
- )
409
- : ValueOrErrors.Default.return(
410
- itemResults.reduce(
411
- (acc, res) => traversalContext.joinRes([acc, res]),
412
- traversalContext.zeroRes(unit),
413
- ),
414
- );
415
- });
416
- }),
417
- );
418
- });
419
- }
420
- if (renderer.type.kind == "union" && renderer.kind == "unionRenderer") {
421
- return ValueOrErrors.Operations.All(
422
- List(
423
- renderer.cases
424
- .map((caseRenderer, caseName) =>
425
- rec(caseRenderer, traversalContext).Then((caseTraversal) =>
426
- ValueOrErrors.Default.return({
216
+ return ValueOrErrors.Operations.All(itemTraversals.flatMap((i) => i.itemTraversal.kind == "r"
217
+ ? [
218
+ i.itemTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.values.get(i.index) })),
219
+ ]
220
+ : [])).Then((itemResults) => {
221
+ return traverseNode.kind == "r"
222
+ ? traverseNode
223
+ .value(evalContext)
224
+ .Then((nodeResult) => ValueOrErrors.Default.return(itemResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), nodeResult)))
225
+ : ValueOrErrors.Default.return(itemResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), traversalContext.zeroRes(unit)));
226
+ });
227
+ }));
228
+ });
229
+ }
230
+ if (renderer.type.kind == "union" && renderer.kind == "unionRenderer") {
231
+ return ValueOrErrors.Operations.All(List(renderer.cases
232
+ .map((caseRenderer, caseName) => rec(caseRenderer, traversalContext).Then((caseTraversal) => ValueOrErrors.Default.return({
427
233
  caseName: caseName,
428
234
  caseTraversal: caseTraversal,
429
- }),
430
- ),
431
- )
432
- .valueSeq(),
433
- ),
434
- ).Then((caseTraversals) => {
435
- if (
436
- caseTraversals.every((c) => c.caseTraversal.kind == "l") &&
437
- traverseNode.kind == "l"
438
- ) {
439
- return ValueOrErrors.Default.return(Option.Default.none());
440
- }
441
- return ValueOrErrors.Default.return(
442
- Option.Default.some((evalContext) => {
443
- var _a;
444
- const iterator = evalContext.traversalIterator;
445
- if (!PredicateValue.Operations.IsUnionCase(iterator)) {
446
- return ValueOrErrors.Default.throwOne(
447
- `Error: traversal iterator is not a union case, got ${evalContext.traversalIterator}`,
448
- );
449
- }
450
- const caseName = iterator.caseName;
451
- const caseTraversal =
452
- (_a = caseTraversals.find((c) => c.caseName == caseName)) ===
453
- null || _a === void 0
454
- ? void 0
455
- : _a.caseTraversal;
456
- if (!caseTraversal) {
457
- return ValueOrErrors.Default.throwOne(
458
- `Error: cannot find case traversal for case ${caseName}`,
459
- );
460
- }
461
- return caseTraversal.kind == "r"
462
- ? caseTraversal
463
- .value(
464
- Object.assign(Object.assign({}, evalContext), {
465
- traversalIterator: iterator.fields,
466
- }),
467
- )
468
- .Then((caseRes) => {
469
- return traverseNode.kind == "r"
470
- ? traverseNode.value(evalContext).Then((nodeResult) => {
471
- return ValueOrErrors.Default.return(
472
- traversalContext.joinRes([nodeResult, caseRes]),
473
- );
474
- })
475
- : ValueOrErrors.Default.return(caseRes);
476
- })
477
- : traverseNode.kind == "r"
478
- ? traverseNode.value(evalContext).Then((nodeResult) => {
479
- return ValueOrErrors.Default.return(nodeResult);
480
- })
481
- : ValueOrErrors.Default.return(
482
- traversalContext.zeroRes(unit),
483
- );
484
- }),
485
- );
486
- });
487
- }
488
- // TODO -- add recursion for the detailsRenderer, but requires state
489
- if (renderer.type.kind == "table" && renderer.kind == "tableRenderer") {
490
- return ValueOrErrors.Operations.All(
491
- List(
492
- renderer.columns
493
- .map((column, columnName) => {
494
- return rec(column.renderer, traversalContext).Then(
495
- (columnTraversal) => {
496
- return ValueOrErrors.Default.return({
497
- columnName: columnName,
498
- columnTraversal: columnTraversal,
499
- });
500
- },
501
- );
502
- })
503
- .valueSeq(),
504
- ),
505
- ).Then((columnTraversals) => {
506
- if (
507
- columnTraversals.every((c) => c.columnTraversal.kind == "l") &&
508
- traverseNode.kind == "l"
509
- ) {
510
- return ValueOrErrors.Default.return(Option.Default.none());
511
- }
512
- return ValueOrErrors.Default.return(
513
- Option.Default.some((evalContext) => {
514
- const iterator = evalContext.traversalIterator;
515
- if (!PredicateValue.Operations.IsTable(iterator)) {
516
- return ValueOrErrors.Default.throwOne(
517
- `Error: traversal iterator is not a table, got ${evalContext.traversalIterator}`,
518
- );
519
- }
520
- return TableLayout.Operations.ComputeLayout(
521
- Map([
522
- ["global", evalContext.global],
523
- ["local", evalContext.local],
524
- ["root", evalContext.root],
525
- ]),
526
- renderer.visibleColumns,
527
- ).Then((visibleColumns) => {
528
- // Note: we do not allow visiblity predicates on individual column cells
529
- return ValueOrErrors.Operations.All(
530
- columnTraversals.flatMap((c) => {
531
- const colTraversal = c.columnTraversal;
532
- if (
533
- colTraversal.kind == "l" ||
534
- !visibleColumns.columns.includes(c.columnName)
535
- ) {
536
- return [];
235
+ })))
236
+ .valueSeq())).Then((caseTraversals) => {
237
+ if (caseTraversals.every((c) => c.caseTraversal.kind == "l") &&
238
+ traverseNode.kind == "l") {
239
+ return ValueOrErrors.Default.return(Option.Default.none());
537
240
  }
538
- return iterator.data.valueSeq().flatMap((row) => {
539
- // TODO make this monadic
540
- const columnValue = row.fields.get(c.columnName);
541
- if (!columnValue) {
542
- return [
543
- ValueOrErrors.Default.throwOne(
544
- `Error: cannot find column ${c.columnName} in row ${JSON.stringify(row)}`,
545
- ),
546
- ];
547
- }
548
- return [
549
- colTraversal.value(
550
- Object.assign(Object.assign({}, evalContext), {
551
- traversalIterator: columnValue,
552
- }),
553
- ),
554
- ];
241
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
242
+ var _a;
243
+ const iterator = evalContext.traversalIterator;
244
+ if (!PredicateValue.Operations.IsUnionCase(iterator)) {
245
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not a union case, got ${evalContext.traversalIterator}`);
246
+ }
247
+ const caseName = iterator.caseName;
248
+ const caseTraversal = (_a = caseTraversals.find((c) => c.caseName == caseName)) === null || _a === void 0 ? void 0 : _a.caseTraversal;
249
+ if (!caseTraversal) {
250
+ return ValueOrErrors.Default.throwOne(`Error: cannot find case traversal for case ${caseName}`);
251
+ }
252
+ return caseTraversal.kind == "r"
253
+ ? caseTraversal
254
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.fields }))
255
+ .Then((caseRes) => {
256
+ return traverseNode.kind == "r"
257
+ ? traverseNode
258
+ .value(evalContext)
259
+ .Then((nodeResult) => {
260
+ return ValueOrErrors.Default.return(traversalContext.joinRes([nodeResult, caseRes]));
261
+ })
262
+ : ValueOrErrors.Default.return(caseRes);
263
+ })
264
+ : traverseNode.kind == "r"
265
+ ? traverseNode.value(evalContext).Then((nodeResult) => {
266
+ return ValueOrErrors.Default.return(nodeResult);
267
+ })
268
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
269
+ }));
270
+ });
271
+ }
272
+ // TODO -- add recursion for the detailsRenderer, but requires state
273
+ if (renderer.type.kind == "table" && renderer.kind == "tableRenderer") {
274
+ return ValueOrErrors.Operations.All(List(renderer.columns
275
+ .map((column, columnName) => {
276
+ return rec(column.renderer, traversalContext).Then((columnTraversal) => {
277
+ return ValueOrErrors.Default.return({
278
+ columnName: columnName,
279
+ columnTraversal: columnTraversal,
280
+ });
555
281
  });
556
- }),
557
- ).Then((columnResults) => {
558
- return traverseNode.kind == "r"
559
- ? traverseNode
560
- .value(evalContext)
561
- .Then((nodeResult) =>
562
- ValueOrErrors.Default.return(
563
- columnResults.reduce(
564
- (acc, res) =>
565
- traversalContext.joinRes([acc, res]),
566
- nodeResult,
567
- ),
568
- ),
569
- )
570
- : ValueOrErrors.Default.return(
571
- columnResults.reduce(
572
- (acc, res) => traversalContext.joinRes([acc, res]),
573
- traversalContext.zeroRes(unit),
574
- ),
575
- );
282
+ })
283
+ .valueSeq())).Then((columnTraversals) => {
284
+ if (columnTraversals.every((c) => c.columnTraversal.kind == "l") &&
285
+ traverseNode.kind == "l") {
286
+ return ValueOrErrors.Default.return(Option.Default.none());
287
+ }
288
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
289
+ const iterator = evalContext.traversalIterator;
290
+ if (!PredicateValue.Operations.IsTable(iterator)) {
291
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not a table, got ${evalContext.traversalIterator}`);
292
+ }
293
+ return TableLayout.Operations.ComputeLayout(Map([
294
+ ["global", evalContext.global],
295
+ ["local", evalContext.local],
296
+ ["root", evalContext.root],
297
+ ]), renderer.visibleColumns).Then((visibleColumns) => {
298
+ // Note: we do not allow visiblity predicates on individual column cells
299
+ return ValueOrErrors.Operations.All(columnTraversals.flatMap((c) => {
300
+ const colTraversal = c.columnTraversal;
301
+ if (colTraversal.kind == "l" ||
302
+ !visibleColumns.columns.includes(c.columnName)) {
303
+ return [];
304
+ }
305
+ return iterator.data.valueSeq().flatMap((row) => {
306
+ // TODO make this monadic
307
+ const columnValue = row.fields.get(c.columnName);
308
+ if (!columnValue) {
309
+ return [
310
+ ValueOrErrors.Default.throwOne(`Error: cannot find column ${c.columnName} in row ${JSON.stringify(row)}`),
311
+ ];
312
+ }
313
+ return [
314
+ colTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: columnValue })),
315
+ ];
316
+ });
317
+ })).Then((columnResults) => {
318
+ return traverseNode.kind == "r"
319
+ ? traverseNode
320
+ .value(evalContext)
321
+ .Then((nodeResult) => ValueOrErrors.Default.return(columnResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), nodeResult)))
322
+ : ValueOrErrors.Default.return(columnResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), traversalContext.zeroRes(unit)));
323
+ });
324
+ });
325
+ }));
576
326
  });
577
- });
578
- }),
579
- );
580
- });
581
- }
582
- // TODO -- should we also look at the previewRenderer? Woud also requite state
583
- if (renderer.type.kind == "one" && renderer.kind == "oneRenderer") {
584
- return rec(renderer.detailsRenderer.renderer, traversalContext).Then(
585
- (itemTraversal) => {
586
- if (itemTraversal.kind == "l" && traverseNode.kind == "l") {
587
- return ValueOrErrors.Default.return(Option.Default.none());
588
327
  }
589
- return ValueOrErrors.Default.return(
590
- Option.Default.some((evalContext) => {
591
- const iterator = evalContext.traversalIterator;
592
- // Handle partial ones
593
- if (PredicateValue.Operations.IsUnit(iterator)) {
594
- return traverseNode.kind == "r"
595
- ? traverseNode.value(evalContext)
596
- : ValueOrErrors.Default.return(
597
- traversalContext.zeroRes(unit),
598
- );
599
- }
600
- if (!PredicateValue.Operations.IsOption(iterator)) {
601
- return ValueOrErrors.Default.throwOne(
602
- `Error: traversal iterator for one is not an option, got ${iterator}`,
603
- );
604
- }
605
- const isSome =
606
- PredicateValue.Operations.IsOption(iterator) &&
607
- iterator.isSome;
608
- if (!isSome) {
609
- return traverseNode.kind == "r"
610
- ? traverseNode.value(evalContext)
611
- : ValueOrErrors.Default.return(
612
- traversalContext.zeroRes(unit),
613
- );
614
- }
615
- return traverseNode.kind == "r"
616
- ? traverseNode.value(evalContext).Then((nodeResult) => {
617
- return itemTraversal.kind == "r"
618
- ? itemTraversal
619
- .value(
620
- Object.assign(Object.assign({}, evalContext), {
621
- traversalIterator: iterator.value,
622
- }),
623
- )
624
- .Then((itemResult) => {
625
- return ValueOrErrors.Default.return(
626
- traversalContext.joinRes([
627
- nodeResult,
628
- itemResult,
629
- ]),
630
- );
328
+ // TODO -- should we also look at the previewRenderer? Woud also requite state
329
+ if (renderer.type.kind == "one" && renderer.kind == "oneRenderer") {
330
+ return rec(renderer.detailsRenderer.renderer, traversalContext).Then((itemTraversal) => {
331
+ if (itemTraversal.kind == "l" && traverseNode.kind == "l") {
332
+ return ValueOrErrors.Default.return(Option.Default.none());
333
+ }
334
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
335
+ const iterator = evalContext.traversalIterator;
336
+ // Handle partial ones
337
+ if (PredicateValue.Operations.IsUnit(iterator)) {
338
+ return traverseNode.kind == "r"
339
+ ? traverseNode.value(evalContext)
340
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
341
+ }
342
+ if (!PredicateValue.Operations.IsOption(iterator)) {
343
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator for one is not an option, got ${iterator}`);
344
+ }
345
+ const isSome = PredicateValue.Operations.IsOption(iterator) &&
346
+ iterator.isSome;
347
+ if (!isSome) {
348
+ return traverseNode.kind == "r"
349
+ ? traverseNode.value(evalContext)
350
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
351
+ }
352
+ return traverseNode.kind == "r"
353
+ ? traverseNode
354
+ .value(evalContext)
355
+ .Then((nodeResult) => {
356
+ return itemTraversal.kind == "r"
357
+ ? itemTraversal
358
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value }))
359
+ .Then((itemResult) => {
360
+ return ValueOrErrors.Default.return(traversalContext.joinRes([
361
+ nodeResult,
362
+ itemResult,
363
+ ]));
364
+ })
365
+ : ValueOrErrors.Default.return(nodeResult);
631
366
  })
632
- : ValueOrErrors.Default.return(nodeResult);
633
- })
634
- : itemTraversal.kind == "r"
635
- ? itemTraversal.value(
636
- Object.assign(Object.assign({}, evalContext), {
637
- traversalIterator: iterator.value,
638
- }),
639
- )
640
- : ValueOrErrors.Default.return(
641
- traversalContext.zeroRes(unit),
642
- );
643
- }),
644
- );
645
- },
646
- );
647
- }
648
- if (renderer.type.kind == "list" && renderer.kind == "listRenderer") {
649
- return rec(renderer.elementRenderer.renderer, traversalContext).Then(
650
- (elementTraversal) => {
651
- if (elementTraversal.kind == "l" && traverseNode.kind == "l") {
652
- return ValueOrErrors.Default.return(Option.Default.none());
367
+ : itemTraversal.kind == "r"
368
+ ? itemTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value }))
369
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
370
+ }));
371
+ });
653
372
  }
654
- return ValueOrErrors.Default.return(
655
- Option.Default.some((evalContext) => {
656
- const iterator = evalContext.traversalIterator;
657
- if (!PredicateValue.Operations.IsTuple(iterator)) {
658
- return ValueOrErrors.Default.throwOne(
659
- `Error: traversal iterator for list is not a tuple, got ${JSON.stringify(iterator, null, 2)}`,
660
- );
661
- }
662
- return ValueOrErrors.Operations.All(
663
- iterator.values.map((value) =>
664
- elementTraversal.kind == "r"
665
- ? elementTraversal.value(
666
- Object.assign(Object.assign({}, evalContext), {
667
- traversalIterator: value,
668
- }),
669
- )
670
- : ValueOrErrors.Default.return(
671
- traversalContext.zeroRes(unit),
672
- ),
673
- ),
674
- ).Then((elementResults) =>
675
- traverseNode.kind == "r"
676
- ? traverseNode
677
- .value(evalContext)
678
- .Then((nodeResult) =>
679
- ValueOrErrors.Default.return(
680
- elementResults.reduce(
681
- (acc, res) =>
682
- traversalContext.joinRes([acc, res]),
683
- nodeResult,
684
- ),
685
- ),
686
- )
687
- : ValueOrErrors.Default.return(
688
- elementResults.reduce(
689
- (acc, res) => traversalContext.joinRes([acc, res]),
690
- traversalContext.zeroRes(unit),
691
- ),
692
- ),
693
- );
694
- }),
695
- );
696
- },
697
- );
698
- }
699
- if (renderer.type.kind == "map" && renderer.kind == "mapRenderer") {
700
- return rec(renderer.keyRenderer.renderer, traversalContext).Then(
701
- (keyTraversal) => {
702
- return rec(renderer.valueRenderer.renderer, traversalContext).Then(
703
- (valueTraversal) => {
704
- if (
705
- keyTraversal.kind == "l" &&
706
- valueTraversal.kind == "l" &&
707
- traverseNode.kind == "l"
708
- ) {
709
- return ValueOrErrors.Default.return(Option.Default.none());
710
- }
711
- return ValueOrErrors.Default.return(
712
- Option.Default.some((evalContext) => {
713
- if (
714
- keyTraversal.kind == "l" &&
715
- valueTraversal.kind == "l"
716
- ) {
717
- return traverseNode.kind == "r"
718
- ? traverseNode.value(evalContext)
719
- : ValueOrErrors.Default.return(
720
- traversalContext.zeroRes(unit),
721
- );
373
+ if (renderer.type.kind == "list" && renderer.kind == "listRenderer") {
374
+ return rec(renderer.elementRenderer.renderer, traversalContext).Then((elementTraversal) => {
375
+ if (elementTraversal.kind == "l" && traverseNode.kind == "l") {
376
+ return ValueOrErrors.Default.return(Option.Default.none());
722
377
  }
723
- const iterator = evalContext.traversalIterator;
724
- if (!PredicateValue.Operations.IsTuple(iterator)) {
725
- return ValueOrErrors.Default.throwOne(
726
- `Error: traversal iterator for map is not a tuple, got ${JSON.stringify(iterator, null, 2)}`,
727
- );
728
- }
729
- return ValueOrErrors.Operations.All(
730
- iterator.values.map((value) => {
731
- if (!PredicateValue.Operations.IsTuple(value)) {
732
- return ValueOrErrors.Default.throwOne(
733
- `Error: traversal iterator for map keyValue is not a tuple, got ${JSON.stringify(value, null, 2)}`,
734
- );
735
- }
736
- const keyRes =
737
- keyTraversal.kind == "r"
738
- ? keyTraversal.value(
739
- Object.assign(Object.assign({}, evalContext), {
740
- traversalIterator: value.values.get(0),
741
- }),
742
- )
743
- : ValueOrErrors.Default.return(
744
- traversalContext.zeroRes(unit),
745
- );
746
- const valueRes =
747
- valueTraversal.kind == "r"
748
- ? valueTraversal.value(
749
- Object.assign(Object.assign({}, evalContext), {
750
- traversalIterator: value.values.get(1),
751
- }),
752
- )
753
- : ValueOrErrors.Default.return(
754
- traversalContext.zeroRes(unit),
755
- );
756
- if (keyRes.kind == "errors") {
757
- return keyRes;
378
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
379
+ const iterator = evalContext.traversalIterator;
380
+ if (!PredicateValue.Operations.IsTuple(iterator)) {
381
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator for list is not a tuple, got ${JSON.stringify(iterator, null, 2)}`);
758
382
  }
759
- if (valueRes.kind == "errors") {
760
- return valueRes;
383
+ return ValueOrErrors.Operations.All(iterator.values.map((value) => elementTraversal.kind == "r"
384
+ ? elementTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: value }))
385
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit)))).Then((elementResults) => traverseNode.kind == "r"
386
+ ? traverseNode
387
+ .value(evalContext)
388
+ .Then((nodeResult) => ValueOrErrors.Default.return(elementResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), nodeResult)))
389
+ : ValueOrErrors.Default.return(elementResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), traversalContext.zeroRes(unit))));
390
+ }));
391
+ });
392
+ }
393
+ if (renderer.type.kind == "map" && renderer.kind == "mapRenderer") {
394
+ return rec(renderer.keyRenderer.renderer, traversalContext).Then((keyTraversal) => {
395
+ return rec(renderer.valueRenderer.renderer, traversalContext).Then((valueTraversal) => {
396
+ if (keyTraversal.kind == "l" &&
397
+ valueTraversal.kind == "l" &&
398
+ traverseNode.kind == "l") {
399
+ return ValueOrErrors.Default.return(Option.Default.none());
761
400
  }
762
- return ValueOrErrors.Default.return(
763
- traversalContext.joinRes([
764
- keyRes.value,
765
- valueRes.value,
766
- ]),
767
- );
768
- }),
769
- ).Then((keyValueResults) => {
770
- return traverseNode.kind == "r"
771
- ? traverseNode.value(evalContext).Then((nodeResult) => {
772
- return ValueOrErrors.Default.return(
773
- keyValueResults.reduce(
774
- (acc, res) =>
775
- traversalContext.joinRes([acc, res]),
776
- nodeResult,
777
- ),
778
- );
779
- })
780
- : ValueOrErrors.Default.return(
781
- keyValueResults.reduce(
782
- (acc, res) =>
783
- traversalContext.joinRes([acc, res]),
784
- traversalContext.zeroRes(unit),
785
- ),
786
- );
401
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
402
+ if (keyTraversal.kind == "l" &&
403
+ valueTraversal.kind == "l") {
404
+ return traverseNode.kind == "r"
405
+ ? traverseNode.value(evalContext)
406
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
407
+ }
408
+ const iterator = evalContext.traversalIterator;
409
+ if (!PredicateValue.Operations.IsTuple(iterator)) {
410
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator for map is not a tuple, got ${JSON.stringify(iterator, null, 2)}`);
411
+ }
412
+ return ValueOrErrors.Operations.All(iterator.values.map((value) => {
413
+ if (!PredicateValue.Operations.IsTuple(value)) {
414
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator for map keyValue is not a tuple, got ${JSON.stringify(value, null, 2)}`);
415
+ }
416
+ const keyRes = keyTraversal.kind == "r"
417
+ ? keyTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: value.values.get(0) }))
418
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
419
+ const valueRes = valueTraversal.kind == "r"
420
+ ? valueTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: value.values.get(1) }))
421
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
422
+ if (keyRes.kind == "errors") {
423
+ return keyRes;
424
+ }
425
+ if (valueRes.kind == "errors") {
426
+ return valueRes;
427
+ }
428
+ return ValueOrErrors.Default.return(traversalContext.joinRes([
429
+ keyRes.value,
430
+ valueRes.value,
431
+ ]));
432
+ })).Then((keyValueResults) => {
433
+ return traverseNode.kind == "r"
434
+ ? traverseNode
435
+ .value(evalContext)
436
+ .Then((nodeResult) => {
437
+ return ValueOrErrors.Default.return(keyValueResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), nodeResult));
438
+ })
439
+ : ValueOrErrors.Default.return(keyValueResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), traversalContext.zeroRes(unit)));
440
+ });
441
+ }));
787
442
  });
788
- }),
789
- );
790
- },
791
- );
792
- },
793
- );
794
- }
795
- return ValueOrErrors.Default.return(Option.Default.none());
443
+ });
444
+ }
445
+ return ValueOrErrors.Default.return(Option.Default.none());
446
+ },
796
447
  },
797
- },
798
448
  };
799
- //# sourceMappingURL=state.js.map
449
+ //# sourceMappingURL=state.js.map