@elaraai/east-ui 1.0.80 → 1.0.82

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 (353) hide show
  1. package/dist/src/charts/chart/index.d.ts +4 -0
  2. package/dist/src/charts/chart/index.d.ts.map +1 -1
  3. package/dist/src/charts/spec/index.d.ts +8 -0
  4. package/dist/src/charts/spec/index.d.ts.map +1 -1
  5. package/dist/src/collections/deck/index.d.ts +8 -0
  6. package/dist/src/collections/deck/index.d.ts.map +1 -1
  7. package/dist/src/collections/index.d.ts +2 -2
  8. package/dist/src/collections/index.d.ts.map +1 -1
  9. package/dist/src/collections/index.js.map +1 -1
  10. package/dist/src/collections/library/index.d.ts +4 -0
  11. package/dist/src/collections/library/index.d.ts.map +1 -1
  12. package/dist/src/collections/library/types.d.ts +4 -0
  13. package/dist/src/collections/library/types.d.ts.map +1 -1
  14. package/dist/src/collections/matrix/index.d.ts +56 -19
  15. package/dist/src/collections/matrix/index.d.ts.map +1 -1
  16. package/dist/src/collections/matrix/index.js +38 -24
  17. package/dist/src/collections/matrix/index.js.map +1 -1
  18. package/dist/src/collections/plan/assemble.d.ts +655 -2113
  19. package/dist/src/collections/plan/assemble.d.ts.map +1 -1
  20. package/dist/src/collections/plan/assemble.js +159 -136
  21. package/dist/src/collections/plan/assemble.js.map +1 -1
  22. package/dist/src/collections/plan/builders.d.ts +193 -40
  23. package/dist/src/collections/plan/builders.d.ts.map +1 -1
  24. package/dist/src/collections/plan/builders.js +162 -32
  25. package/dist/src/collections/plan/builders.js.map +1 -1
  26. package/dist/src/collections/plan/factories.d.ts +290 -116
  27. package/dist/src/collections/plan/factories.d.ts.map +1 -1
  28. package/dist/src/collections/plan/factories.js +281 -156
  29. package/dist/src/collections/plan/factories.js.map +1 -1
  30. package/dist/src/collections/plan/index.d.ts +111 -58
  31. package/dist/src/collections/plan/index.d.ts.map +1 -1
  32. package/dist/src/collections/plan/index.js +62 -31
  33. package/dist/src/collections/plan/index.js.map +1 -1
  34. package/dist/src/collections/plan/ir.d.ts +759 -1769
  35. package/dist/src/collections/plan/ir.d.ts.map +1 -1
  36. package/dist/src/collections/plan/ir.js +51 -27
  37. package/dist/src/collections/plan/ir.js.map +1 -1
  38. package/dist/src/collections/plan/pick.d.ts +89 -71
  39. package/dist/src/collections/plan/pick.d.ts.map +1 -1
  40. package/dist/src/collections/plan/pick.js +101 -86
  41. package/dist/src/collections/plan/pick.js.map +1 -1
  42. package/dist/src/collections/plan/root.d.ts +164 -77
  43. package/dist/src/collections/plan/root.d.ts.map +1 -1
  44. package/dist/src/collections/plan/root.js +350 -42
  45. package/dist/src/collections/plan/root.js.map +1 -1
  46. package/dist/src/collections/plan/series.d.ts +12524 -10527
  47. package/dist/src/collections/plan/series.d.ts.map +1 -1
  48. package/dist/src/collections/plan/series.js +1596 -298
  49. package/dist/src/collections/plan/series.js.map +1 -1
  50. package/dist/src/collections/plan/types.d.ts +6115 -2802
  51. package/dist/src/collections/plan/types.d.ts.map +1 -1
  52. package/dist/src/collections/plan/types.js +575 -170
  53. package/dist/src/collections/plan/types.js.map +1 -1
  54. package/dist/src/collections/sheet/bridge.d.ts +154 -43
  55. package/dist/src/collections/sheet/bridge.d.ts.map +1 -1
  56. package/dist/src/collections/sheet/bridge.js +383 -240
  57. package/dist/src/collections/sheet/bridge.js.map +1 -1
  58. package/dist/src/collections/sheet/columns.d.ts +66 -16
  59. package/dist/src/collections/sheet/columns.d.ts.map +1 -1
  60. package/dist/src/collections/sheet/columns.js +25 -25
  61. package/dist/src/collections/sheet/columns.js.map +1 -1
  62. package/dist/src/collections/sheet/context-bridge.d.ts +48 -0
  63. package/dist/src/collections/sheet/context-bridge.d.ts.map +1 -0
  64. package/dist/src/collections/sheet/context-bridge.js +216 -0
  65. package/dist/src/collections/sheet/context-bridge.js.map +1 -0
  66. package/dist/src/collections/sheet/draft-bridge.d.ts +37 -0
  67. package/dist/src/collections/sheet/draft-bridge.d.ts.map +1 -0
  68. package/dist/src/collections/sheet/draft-bridge.js +153 -0
  69. package/dist/src/collections/sheet/draft-bridge.js.map +1 -0
  70. package/dist/src/collections/sheet/drafts.d.ts +14 -0
  71. package/dist/src/collections/sheet/drafts.d.ts.map +1 -0
  72. package/dist/src/collections/sheet/drafts.js +14 -0
  73. package/dist/src/collections/sheet/drafts.js.map +1 -0
  74. package/dist/src/collections/sheet/editing-bridge.d.ts +36 -0
  75. package/dist/src/collections/sheet/editing-bridge.d.ts.map +1 -0
  76. package/dist/src/collections/sheet/editing-bridge.js +196 -0
  77. package/dist/src/collections/sheet/editing-bridge.js.map +1 -0
  78. package/dist/src/collections/sheet/editing-types.d.ts +268 -0
  79. package/dist/src/collections/sheet/editing-types.d.ts.map +1 -0
  80. package/dist/src/collections/sheet/editing-types.js +34 -0
  81. package/dist/src/collections/sheet/editing-types.js.map +1 -0
  82. package/dist/src/collections/sheet/edits.d.ts +37 -0
  83. package/dist/src/collections/sheet/edits.d.ts.map +1 -0
  84. package/dist/src/collections/sheet/edits.js +31 -0
  85. package/dist/src/collections/sheet/edits.js.map +1 -0
  86. package/dist/src/collections/sheet/group.d.ts +165 -0
  87. package/dist/src/collections/sheet/group.d.ts.map +1 -0
  88. package/dist/src/collections/sheet/group.js +52 -0
  89. package/dist/src/collections/sheet/group.js.map +1 -0
  90. package/dist/src/collections/sheet/index.d.ts +171 -27
  91. package/dist/src/collections/sheet/index.d.ts.map +1 -1
  92. package/dist/src/collections/sheet/index.js +99 -17
  93. package/dist/src/collections/sheet/index.js.map +1 -1
  94. package/dist/src/collections/sheet/link.d.ts +22 -16
  95. package/dist/src/collections/sheet/link.d.ts.map +1 -1
  96. package/dist/src/collections/sheet/link.js +18 -12
  97. package/dist/src/collections/sheet/link.js.map +1 -1
  98. package/dist/src/collections/sheet/registers.d.ts +152 -5
  99. package/dist/src/collections/sheet/registers.d.ts.map +1 -1
  100. package/dist/src/collections/sheet/registers.js +154 -5
  101. package/dist/src/collections/sheet/registers.js.map +1 -1
  102. package/dist/src/collections/sheet/root.d.ts +175 -26
  103. package/dist/src/collections/sheet/root.d.ts.map +1 -1
  104. package/dist/src/collections/sheet/root.js +150 -26
  105. package/dist/src/collections/sheet/root.js.map +1 -1
  106. package/dist/src/collections/sheet/seed-bridge.d.ts +14 -0
  107. package/dist/src/collections/sheet/seed-bridge.d.ts.map +1 -0
  108. package/dist/src/collections/sheet/seed-bridge.js +51 -0
  109. package/dist/src/collections/sheet/seed-bridge.js.map +1 -0
  110. package/dist/src/collections/sheet/sub-rows.d.ts +249 -0
  111. package/dist/src/collections/sheet/sub-rows.d.ts.map +1 -0
  112. package/dist/src/collections/sheet/sub-rows.js +222 -0
  113. package/dist/src/collections/sheet/sub-rows.js.map +1 -0
  114. package/dist/src/collections/sheet/transactions.d.ts +76 -0
  115. package/dist/src/collections/sheet/transactions.d.ts.map +1 -0
  116. package/dist/src/collections/sheet/transactions.js +40 -0
  117. package/dist/src/collections/sheet/transactions.js.map +1 -0
  118. package/dist/src/collections/sheet/types.d.ts +12034 -3651
  119. package/dist/src/collections/sheet/types.d.ts.map +1 -1
  120. package/dist/src/collections/sheet/types.js +365 -48
  121. package/dist/src/collections/sheet/types.js.map +1 -1
  122. package/dist/src/collections/table/index.d.ts +98 -123
  123. package/dist/src/collections/table/index.d.ts.map +1 -1
  124. package/dist/src/collections/table/index.js +97 -111
  125. package/dist/src/collections/table/index.js.map +1 -1
  126. package/dist/src/collections/table/types.d.ts +87 -31
  127. package/dist/src/collections/table/types.d.ts.map +1 -1
  128. package/dist/src/collections/table/types.js +51 -26
  129. package/dist/src/collections/table/types.js.map +1 -1
  130. package/dist/src/collections/value-tree/flatten.d.ts.map +1 -1
  131. package/dist/src/collections/value-tree/flatten.js +4 -1
  132. package/dist/src/collections/value-tree/flatten.js.map +1 -1
  133. package/dist/src/component.d.ts +5075 -4079
  134. package/dist/src/component.d.ts.map +1 -1
  135. package/dist/src/component.js +46 -46
  136. package/dist/src/component.js.map +1 -1
  137. package/dist/src/contracts/approval.d.ts +10 -8
  138. package/dist/src/contracts/approval.d.ts.map +1 -1
  139. package/dist/src/contracts/approval.js +10 -8
  140. package/dist/src/contracts/approval.js.map +1 -1
  141. package/dist/src/contracts/drag.d.ts +11 -9
  142. package/dist/src/contracts/drag.d.ts.map +1 -1
  143. package/dist/src/contracts/drag.js +28 -21
  144. package/dist/src/contracts/drag.js.map +1 -1
  145. package/dist/src/contracts/editing.d.ts +1283 -0
  146. package/dist/src/contracts/editing.d.ts.map +1 -0
  147. package/dist/src/contracts/editing.js +711 -0
  148. package/dist/src/contracts/editing.js.map +1 -0
  149. package/dist/src/contracts/index.d.ts +2 -1
  150. package/dist/src/contracts/index.d.ts.map +1 -1
  151. package/dist/src/contracts/index.js +2 -1
  152. package/dist/src/contracts/index.js.map +1 -1
  153. package/dist/src/contracts/pick.d.ts +6 -7
  154. package/dist/src/contracts/pick.d.ts.map +1 -1
  155. package/dist/src/contracts/pick.js +6 -7
  156. package/dist/src/contracts/pick.js.map +1 -1
  157. package/dist/src/contracts/review.d.ts +3 -1
  158. package/dist/src/contracts/review.d.ts.map +1 -1
  159. package/dist/src/contracts/review.js +3 -1
  160. package/dist/src/contracts/review.js.map +1 -1
  161. package/dist/src/contracts/source.d.ts +270 -80
  162. package/dist/src/contracts/source.d.ts.map +1 -1
  163. package/dist/src/contracts/source.js +357 -58
  164. package/dist/src/contracts/source.js.map +1 -1
  165. package/dist/src/display/chip-rail/index.d.ts.map +1 -1
  166. package/dist/src/display/chip-rail/index.js +10 -10
  167. package/dist/src/display/chip-rail/index.js.map +1 -1
  168. package/dist/src/extension.d.ts +2 -1
  169. package/dist/src/extension.d.ts.map +1 -1
  170. package/dist/src/extension.js +2 -1
  171. package/dist/src/extension.js.map +1 -1
  172. package/dist/src/format/index.d.ts +1 -154
  173. package/dist/src/format/index.d.ts.map +1 -1
  174. package/dist/src/format/types.d.ts +35 -23
  175. package/dist/src/format/types.d.ts.map +1 -1
  176. package/dist/src/format/types.js +16 -14
  177. package/dist/src/format/types.js.map +1 -1
  178. package/dist/src/forms/field/index.js +4 -4
  179. package/dist/src/forms/field/index.js.map +1 -1
  180. package/dist/src/forms/file-upload/index.js +16 -16
  181. package/dist/src/forms/file-upload/index.js.map +1 -1
  182. package/dist/src/index.d.ts +4 -2
  183. package/dist/src/index.d.ts.map +1 -1
  184. package/dist/src/index.js +12 -5
  185. package/dist/src/index.js.map +1 -1
  186. package/dist/src/internal.d.ts +8 -3
  187. package/dist/src/internal.d.ts.map +1 -1
  188. package/dist/src/internal.js +11 -3
  189. package/dist/src/internal.js.map +1 -1
  190. package/dist/src/layout/box/index.d.ts.map +1 -1
  191. package/dist/src/layout/box/index.js +47 -47
  192. package/dist/src/layout/box/index.js.map +1 -1
  193. package/dist/src/layout/flex/index.d.ts.map +1 -1
  194. package/dist/src/layout/flex/index.js +47 -47
  195. package/dist/src/layout/flex/index.js.map +1 -1
  196. package/dist/src/layout/grid/index.js +11 -11
  197. package/dist/src/layout/grid/index.js.map +1 -1
  198. package/dist/src/layout/scroll-area/index.d.ts.map +1 -1
  199. package/dist/src/layout/scroll-area/index.js +8 -8
  200. package/dist/src/layout/scroll-area/index.js.map +1 -1
  201. package/dist/src/layout/separator/index.d.ts.map +1 -1
  202. package/dist/src/layout/separator/index.js +6 -6
  203. package/dist/src/layout/separator/index.js.map +1 -1
  204. package/dist/src/layout/stack/index.d.ts.map +1 -1
  205. package/dist/src/layout/stack/index.js +46 -46
  206. package/dist/src/layout/stack/index.js.map +1 -1
  207. package/dist/src/layout/sticky/index.d.ts.map +1 -1
  208. package/dist/src/layout/sticky/index.js +8 -8
  209. package/dist/src/layout/sticky/index.js.map +1 -1
  210. package/dist/src/overlays/action-bar/index.d.ts.map +1 -1
  211. package/dist/src/overlays/action-bar/index.js +8 -8
  212. package/dist/src/overlays/action-bar/index.js.map +1 -1
  213. package/dist/src/platform/index.d.ts +1 -1
  214. package/dist/src/platform/index.d.ts.map +1 -1
  215. package/dist/src/platform/index.js +1 -1
  216. package/dist/src/platform/index.js.map +1 -1
  217. package/dist/src/platform/slice/impl.d.ts +62 -51
  218. package/dist/src/platform/slice/impl.d.ts.map +1 -1
  219. package/dist/src/platform/slice/impl.js +155 -72
  220. package/dist/src/platform/slice/impl.js.map +1 -1
  221. package/dist/src/platform/slice/index.d.ts +3744 -2226
  222. package/dist/src/platform/slice/index.d.ts.map +1 -1
  223. package/dist/src/platform/slice/index.js +43 -1
  224. package/dist/src/platform/slice/index.js.map +1 -1
  225. package/dist/src/runtime/collections/deck.d.ts +4 -0
  226. package/dist/src/runtime/collections/deck.d.ts.map +1 -1
  227. package/dist/src/runtime/collections/matrix.d.ts +10 -9
  228. package/dist/src/runtime/collections/matrix.d.ts.map +1 -1
  229. package/dist/src/runtime/collections/matrix.js +11 -6
  230. package/dist/src/runtime/collections/matrix.js.map +1 -1
  231. package/dist/src/runtime/collections/plan.d.ts +148 -65
  232. package/dist/src/runtime/collections/plan.d.ts.map +1 -1
  233. package/dist/src/runtime/collections/plan.js +155 -67
  234. package/dist/src/runtime/collections/plan.js.map +1 -1
  235. package/dist/src/runtime/collections/sheet.d.ts +56 -23
  236. package/dist/src/runtime/collections/sheet.d.ts.map +1 -1
  237. package/dist/src/runtime/collections/sheet.js +30 -22
  238. package/dist/src/runtime/collections/sheet.js.map +1 -1
  239. package/dist/src/runtime/collections/table.d.ts +18 -11
  240. package/dist/src/runtime/collections/table.d.ts.map +1 -1
  241. package/dist/src/runtime/collections/table.js +7 -4
  242. package/dist/src/runtime/collections/table.js.map +1 -1
  243. package/dist/src/shared/reify.d.ts +4 -46
  244. package/dist/src/shared/reify.d.ts.map +1 -1
  245. package/dist/src/shared/reify.js +4 -61
  246. package/dist/src/shared/reify.js.map +1 -1
  247. package/dist/src/shared/tree.d.ts +88 -0
  248. package/dist/src/shared/tree.d.ts.map +1 -0
  249. package/dist/src/shared/tree.js +134 -0
  250. package/dist/src/shared/tree.js.map +1 -0
  251. package/dist/src/slice/breakdown/index.d.ts +4 -0
  252. package/dist/src/slice/breakdown/index.d.ts.map +1 -1
  253. package/dist/src/slice/breakdown/types.d.ts +4 -0
  254. package/dist/src/slice/breakdown/types.d.ts.map +1 -1
  255. package/dist/src/slice/cohort/index.d.ts +24 -4
  256. package/dist/src/slice/cohort/index.d.ts.map +1 -1
  257. package/dist/src/slice/cohort/index.js +8 -4
  258. package/dist/src/slice/cohort/index.js.map +1 -1
  259. package/dist/src/slice/cohort/types.d.ts +11 -0
  260. package/dist/src/slice/cohort/types.d.ts.map +1 -1
  261. package/dist/src/slice/cohort/types.js +7 -0
  262. package/dist/src/slice/cohort/types.js.map +1 -1
  263. package/dist/src/slice/filter/index.d.ts +4 -0
  264. package/dist/src/slice/filter/index.d.ts.map +1 -1
  265. package/dist/src/slice/filter/types.d.ts +4 -0
  266. package/dist/src/slice/filter/types.d.ts.map +1 -1
  267. package/dist/src/slice/index.d.ts +736 -0
  268. package/dist/src/slice/index.d.ts.map +1 -1
  269. package/dist/src/slice/legend/index.d.ts +4 -0
  270. package/dist/src/slice/legend/index.d.ts.map +1 -1
  271. package/dist/src/slice/legend/types.d.ts +4 -0
  272. package/dist/src/slice/legend/types.d.ts.map +1 -1
  273. package/dist/src/slice/rail/index.d.ts +8 -4
  274. package/dist/src/slice/rail/index.d.ts.map +1 -1
  275. package/dist/src/slice/rail/index.js.map +1 -1
  276. package/dist/src/slice/range/index.d.ts +4 -0
  277. package/dist/src/slice/range/index.d.ts.map +1 -1
  278. package/dist/src/slice/range/types.d.ts +4 -0
  279. package/dist/src/slice/range/types.d.ts.map +1 -1
  280. package/dist/src/slice/search/index.d.ts +4 -0
  281. package/dist/src/slice/search/index.d.ts.map +1 -1
  282. package/dist/src/slice/search/types.d.ts +4 -0
  283. package/dist/src/slice/search/types.d.ts.map +1 -1
  284. package/dist/src/slice/summary/index.d.ts +4 -0
  285. package/dist/src/slice/summary/index.d.ts.map +1 -1
  286. package/dist/src/slice/summary/types.d.ts +4 -0
  287. package/dist/src/slice/summary/types.d.ts.map +1 -1
  288. package/dist/src/typography/code/index.js +1 -1
  289. package/dist/src/typography/code/index.js.map +1 -1
  290. package/dist/src/typography/code-block/index.js +7 -7
  291. package/dist/src/typography/code-block/index.js.map +1 -1
  292. package/dist/src/typography/heading/index.js +2 -2
  293. package/dist/src/typography/heading/index.js.map +1 -1
  294. package/dist/src/typography/list/index.js +1 -1
  295. package/dist/src/typography/list/index.js.map +1 -1
  296. package/dist/src/typography/mark/index.js +1 -1
  297. package/dist/src/typography/mark/index.js.map +1 -1
  298. package/dist/src/typography/note/index.js +1 -1
  299. package/dist/src/typography/note/index.js.map +1 -1
  300. package/dist/src/typography/numeric/index.d.ts +3 -308
  301. package/dist/src/typography/numeric/index.d.ts.map +1 -1
  302. package/dist/src/typography/numeric/index.js +4 -4
  303. package/dist/src/typography/numeric/index.js.map +1 -1
  304. package/dist/src/typography/numeric/types.d.ts +1 -154
  305. package/dist/src/typography/numeric/types.d.ts.map +1 -1
  306. package/dist/src/typography/text/index.js +1 -1
  307. package/dist/src/typography/text/index.js.map +1 -1
  308. package/dist/test/collections/matrix.examples.d.ts +7 -3
  309. package/dist/test/collections/matrix.examples.d.ts.map +1 -1
  310. package/dist/test/collections/matrix.examples.js +55 -24
  311. package/dist/test/collections/matrix.examples.js.map +1 -1
  312. package/dist/test/collections/paged-source.examples.d.ts +4 -0
  313. package/dist/test/collections/paged-source.examples.d.ts.map +1 -1
  314. package/dist/test/collections/paged-source.examples.js +98 -13
  315. package/dist/test/collections/paged-source.examples.js.map +1 -1
  316. package/dist/test/collections/plan.examples.d.ts +101 -26
  317. package/dist/test/collections/plan.examples.d.ts.map +1 -1
  318. package/dist/test/collections/plan.examples.js +1481 -755
  319. package/dist/test/collections/plan.examples.js.map +1 -1
  320. package/dist/test/collections/sheet-link.examples.d.ts +7 -0
  321. package/dist/test/collections/sheet-link.examples.d.ts.map +1 -0
  322. package/dist/test/collections/sheet-link.examples.js +41 -0
  323. package/dist/test/collections/sheet-link.examples.js.map +1 -0
  324. package/dist/test/collections/sheet-transactions.examples.d.ts +7 -0
  325. package/dist/test/collections/sheet-transactions.examples.d.ts.map +1 -0
  326. package/dist/test/collections/sheet-transactions.examples.js +58 -0
  327. package/dist/test/collections/sheet-transactions.examples.js.map +1 -0
  328. package/dist/test/collections/sheet.examples.d.ts +52 -5
  329. package/dist/test/collections/sheet.examples.d.ts.map +1 -1
  330. package/dist/test/collections/sheet.examples.js +500 -158
  331. package/dist/test/collections/sheet.examples.js.map +1 -1
  332. package/dist/test/collections/table.examples.d.ts +31 -3
  333. package/dist/test/collections/table.examples.d.ts.map +1 -1
  334. package/dist/test/collections/table.examples.js +188 -28
  335. package/dist/test/collections/table.examples.js.map +1 -1
  336. package/dist/test/contracts/editing.examples.d.ts +7 -0
  337. package/dist/test/contracts/editing.examples.d.ts.map +1 -0
  338. package/dist/test/contracts/editing.examples.js +58 -0
  339. package/dist/test/contracts/editing.examples.js.map +1 -0
  340. package/dist/test/layout/splitter.examples.d.ts.map +1 -1
  341. package/dist/test/layout/splitter.examples.js +3 -1
  342. package/dist/test/layout/splitter.examples.js.map +1 -1
  343. package/dist/test/platform/slice.examples.d.ts.map +1 -1
  344. package/dist/test/platform/slice.examples.js +1 -0
  345. package/dist/test/platform/slice.examples.js.map +1 -1
  346. package/dist/test/slice/slice.examples.d.ts.map +1 -1
  347. package/dist/test/slice/slice.examples.js +5 -2
  348. package/dist/test/slice/slice.examples.js.map +1 -1
  349. package/package.json +4 -3
  350. package/dist/src/collections/plan/data-forms.d.ts +0 -332
  351. package/dist/src/collections/plan/data-forms.d.ts.map +0 -1
  352. package/dist/src/collections/plan/data-forms.js +0 -212
  353. package/dist/src/collections/plan/data-forms.js.map +0 -1
@@ -8,38 +8,46 @@
8
8
  *
9
9
  * @packageDocumentation
10
10
  */
11
- import { East, ArrayType, BooleanType, DictType, FunctionType, NullType, OptionType, StringType, StructType, variant, some, none, } from "@elaraai/east";
11
+ import { East, Expr, ArrayType, AsyncFunctionType, BlobType, BooleanType, DictType, FunctionType, IntegerType, NullType, OptionType, StringType, StructType, isTypeEqual, ref, toEastTypeValue, variant, some, none, } from "@elaraai/east";
12
12
  import { UIComponentType } from "../../component.js";
13
13
  import { StatusValueType } from "../../feedback/status/types.js";
14
14
  import { DensityType } from "../../style/interaction.js";
15
- import { buildReview } from "../../contracts/review.js";
16
15
  import { DragEventType } from "../../contracts/drag.js";
16
+ import { EditingApplyResultType, EditingChangeSetTypeFor, EditingDraftFieldType, EditingPatchEventTypeWith, EditingReadinessType, EditingWireApplyType, buildKeyedInlineApply, } from "../../contracts/editing.js";
17
17
  import { SliceBindType, SliceChromeType } from "../../platform/slice/index.js";
18
18
  import { SliceAffordanceType } from "../../contracts/slice-affordances.js";
19
- import { PlanAxisType, PlanGrainType, PlanLinkType, PlanRowRefType, PlanRunClickEventType, PlanEventClickEventType, PlanMarkClickEventType, PlanChipClickEventType, PlanCellClickEventType, PlanGroupToggleEventType, PlanFooterItemType, PlanStyleType, PlanElementRefType, PlanRowsCollectionType, PlanRowsType, } from "./types.js";
19
+ import { PlanAxisType, PlanGrainType, PlanLinkType, PlanRowIdType, PlanGroupToggleEventType, PlanFooterItemType, PlanStyleType, PlanElementRefType, PlanBlocksType, PlanRowsType, PlanUiBindType, PlanEditingType, PlanReadyEntryType, PlanWriteRequestType, PLAN_PAGE_SIZE, } from "./types.js";
20
20
  import { PlanReviewType } from "./ir.js";
21
- import { resolveTag } from "./builders.js";
22
- import { applySeries, PlanSeriesType } from "./series.js";
23
- import { seriesSignature } from "./pick.js";
21
+ import { resolveTag, WINDOWLESS_AXES } from "./builders.js";
22
+ import { applySeries, checkSeries, seriesWriteFn, PlanCarriedType, PlanSeriesType } from "./series.js";
24
23
  import { pickActive, PickBindType } from "../../contracts/pick.js";
25
- import { resolveRowSource, buildRowSource } from "../../contracts/source.js";
24
+ import { resolveRowSource, buildRowSource, buildPagedWindow, } from "../../contracts/source.js";
26
25
  // ============================================================================
27
26
  // Root
28
27
  // ============================================================================
29
28
  /** The default slice affordance list (§1 toolbar). */
30
29
  const DEFAULT_PLAN_AFFORDANCES = ["cohort", "filter", "search", "range", "resolution", "brush", "summary"];
30
+ /** The source collection a series list's East type reads — its `derive`'s input, when the list's element is a series variant. */
31
+ function seriesSourceOf(list) {
32
+ const element = Expr.type(list).value;
33
+ if (element?.type !== "Variant")
34
+ return undefined;
35
+ return element.cases?.["span"]?.fields?.["derive"]?.inputs?.[0];
36
+ }
31
37
  /**
32
38
  * Creates the Plan root — the whole canvas.
33
39
  *
34
40
  * @typeParam K - The canvas's axis kind, inferred from `config.axis`; every series must lie within it
35
41
  * @param config - The Plan configuration ({@link PlanConfig})
36
42
  * @returns An East expression of `UIComponentType`
43
+ * @throws {Error} When `data` is not a keyed source, `series` / `pick` are both or neither given, two series share a
44
+ * key, a bound series list reads another key type than `data`, or the axis states no window and no slice is bound
37
45
  *
38
46
  * @remarks
39
47
  * Window and resolution have no callbacks by design: they are slice writes
40
- * (`setRange` / `setResolution`) — hosts observe the slice. Dragging a
41
- * proposal is a Modify on its decision, not a free edit — host semantics
42
- * behind `onDrag`; the surface only reports.
48
+ * (`setRange` / `setResolution`) — hosts observe the slice. A change to the
49
+ * data — a verdict, a dropped card, a moved or resized element — is a draft of
50
+ * the `editing` session, applied as one checked batch (#880, #825).
43
51
  */
44
52
  export function createPlanRoot(config) {
45
53
  // A canvas is DEFINED as data + series (+ the root resolvers) — there
@@ -48,40 +56,67 @@ export function createPlanRoot(config) {
48
56
  if (config.data === undefined) {
49
57
  throw new Error("Plan: `data` is required — a canvas is its data plus the series over it");
50
58
  }
59
+ // The removed callbacks, named (#880) — a plain JS caller would otherwise
60
+ // lose them silently.
61
+ if ("onDrag" in config) {
62
+ throw new Error("Plan: `onDrag` is removed (#880) — a card dropped on a row is a draft of the `editing` session: declare " +
63
+ "`edit: { items, create }` on the series it lands on, and commit with `editing.onApply` (or `onUpdate`)");
64
+ }
65
+ const removedVerbs = ["onApprove", "onReject", "onApproveAll", "onRejectAll"]
66
+ .filter((k) => config.review !== undefined && k in config.review);
67
+ if (removedVerbs.length > 0) {
68
+ throw new Error(`Plan: review.${removedVerbs.join(" / review.")} ${removedVerbs.length > 1 ? "are" : "is"} removed (#880) — a verdict is a ` +
69
+ "draft of the `editing` session: name the field it writes on the reviewed series (`review: { verdict: \"approval\" }`), " +
70
+ "and commit with `editing.onApply` (or `onUpdate`)");
71
+ }
51
72
  if ((config.series === undefined) === (config.pick === undefined)) {
52
73
  throw new Error("Plan: give exactly one of `series` or `pick` — `series` for a fixed canvas, " +
53
74
  "`pick` for a pickable one. A `Plan.pick` handle already carries the series list, " +
54
75
  "so passing both says it twice and lets the two disagree.");
55
76
  }
56
- // A pick feeds the canvas its SURVIVING series; everything downstream —
57
- // application, the paged signature — sees one series input either way.
77
+ // There is no fit to the data (#822): every canvas states its window, or
78
+ // binds a slice whose range supplies it — inline and paged alike.
79
+ if (WINDOWLESS_AXES.has(config.axis) && config.slice === undefined) {
80
+ throw new Error("Plan: the axis states no `window` and no `slice` is bound — declare the window " +
81
+ "(`Plan.axis({ window: { min, max }, … })`), or bind a slice whose range supplies it. " +
82
+ "A canvas never fits its axis to the data, so it reads the same inline and paged.");
83
+ }
84
+ if (config.series !== undefined)
85
+ checkSeries(config.series, "Plan");
86
+ // A pick feeds the canvas its SURVIVING series; everything downstream sees
87
+ // one series input either way.
58
88
  const seriesInput = config.pick !== undefined
59
89
  ? pickActive(config.pick)
60
90
  : config.series;
61
91
  // The shared row-source resolution (#567): inline collection, paged
62
92
  // source, or a whole-value bind handle — one dispatch, one vocabulary,
63
- // and the series pipeline is the `make` that turns each window's domain
64
- // rows into canvas rows (the single R-erasure point).
93
+ // and the series pipeline is the `make` that turns each window's entries
94
+ // into canvas rows (the single R-erasure point).
65
95
  const resolved = resolveRowSource(config.data, "Plan");
66
- // The canvas is KEYED, so its source must be: a leaf row's key is its data
67
- // key, which is what keeps the canvas addressable by the keys the source is
68
- // searched and windowed by (#568). Refuse anything else here rather than
69
- // inventing keys the source does not have.
70
- const keyType = resolved.keyType?.type;
71
- if (keyType !== "String") {
72
- const got = resolved.collectionType.type;
73
- const keyed = keyType !== undefined ? ` keyed by ${keyType}` : "";
74
- throw new Error("Plan: `data` must be a keyed collection (`Dict<String, R>`) — its keys become the " +
75
- "canvas row keys, so the canvas is ordered and addressed the same way the source is " +
76
- "(the row space a paged source windows and seeks). " +
77
- `Got a ${got}${keyed}; key it at the call site, e.g. ` +
96
+ // The canvas is KEYED: a row's path starts with its entry's key, which is
97
+ // what keeps the canvas addressable by the keys the source is searched and
98
+ // windowed by (#568). Refuse anything else rather than inventing keys.
99
+ const collectionType = resolved.collectionType;
100
+ if (collectionType.type !== "Dict") {
101
+ throw new Error("Plan: `data` must be a keyed collection (`Dict<K, R>`) — a row's path starts with its entry's " +
102
+ "key, so the canvas is addressed the same way the source is (the row space a paged source windows " +
103
+ `and seeks). Got a ${collectionType.type}; key it at the call site, e.g. ` +
78
104
  "`data={rows.toDict((_$, r) => r.id)}`.");
79
105
  }
80
- const rowsValue = buildRowSource(resolved, PlanRowsCollectionType, (source) => applySeries(seriesInput, source),
81
- // The paged source's rows depend on WHICH series are active — a pick
82
- // narrows the list — so the derived id has to say which. Without it a
83
- // toggle leaves resident windows serving rows nobody asked for.
84
- seriesSignature(seriesInput));
106
+ // A series list bound as an East value was built for its declared key
107
+ // type — it must read the source's.
108
+ if (!Array.isArray(seriesInput)) {
109
+ const reads = seriesSourceOf(seriesInput);
110
+ if (reads !== undefined && !isTypeEqual(reads, resolved.collectionType)) {
111
+ throw new Error("Plan: the series list is typed for another source than `data` — a list bound as an East value " +
112
+ "(a `$.const` list, a `Plan.pick`) is built for the entries' declared key type, String unless a " +
113
+ "series says `keyType`. Declare `keyType` on each series and type the list " +
114
+ "`Plan.Types.Series(R, keyType)`, or pass the series as a TS array, which is built for `data` itself.");
115
+ }
116
+ }
117
+ // The canvas's BLOCKS, in layout order (#823): inline, the whole source's;
118
+ // paged, each window's share of every block — one read serves them all.
119
+ const rowsValue = buildRowSource(resolved, PlanBlocksType, (source) => applySeries(seriesInput, source));
85
120
  const style = config.style;
86
121
  const styleValue = style !== undefined
87
122
  ? some(East.value({
@@ -111,12 +146,18 @@ export function createPlanRoot(config) {
111
146
  ? some(East.value(config.hover, FunctionType([PlanElementRefType], OptionType(UIComponentType))))
112
147
  : none,
113
148
  expandRender: config.expandRender !== undefined
114
- ? some(East.value(config.expandRender, FunctionType([PlanRowRefType], UIComponentType)))
149
+ ? some(East.value(config.expandRender, FunctionType([PlanRowIdType], UIComponentType)))
115
150
  : none,
116
151
  expandGutter: config.expandGutter !== undefined
117
- ? some(East.value(config.expandGutter, FunctionType([PlanRowRefType], UIComponentType)))
152
+ ? some(East.value(config.expandGutter, FunctionType([PlanRowIdType], UIComponentType)))
118
153
  : none,
119
- review: config.review !== undefined ? some(buildReview(config.review, PlanReviewType)) : none,
154
+ review: config.review !== undefined ? some(East.value({
155
+ columnLabel: config.review.columnLabel ?? "Decision",
156
+ summary: config.review.summary !== undefined ? some(config.review.summary) : none,
157
+ onRerun: config.review.onRerun !== undefined ? some(config.review.onRerun) : none,
158
+ rerunLabel: config.review.rerunLabel ?? "Rerun",
159
+ }, PlanReviewType)) : none,
160
+ editing: config.editing !== undefined ? some(buildPlanEditing(resolved, seriesInput, config.editing)) : none,
120
161
  // The library rides as chrome, like the slice rail: the non-generic
121
162
  // contract only, since the arm must stay a closed East type.
122
163
  pick: config.pick !== undefined
@@ -126,21 +167,288 @@ export function createPlanRoot(config) {
126
167
  footer: (config.footer ?? []).map(f => East.value({
127
168
  text: f.text,
128
169
  tone: f.tone !== undefined ? some(resolveTag(f.tone, StatusValueType)) : none,
129
- end: f.end !== undefined ? some(f.end) : none,
170
+ end: f.end ?? false,
130
171
  }, PlanFooterItemType)),
131
- id: config.id ?? "",
172
+ id: config.id !== undefined ? some(config.id) : none,
132
173
  sources: East.value(config.sources ?? [], ArrayType(StringType)),
133
- onDrag: config.onDrag !== undefined ? some(config.onDrag) : none,
134
174
  canDrop: config.canDrop !== undefined ? some(config.canDrop) : none,
135
175
  onSelect: config.onSelect !== undefined ? some(config.onSelect) : none,
136
- onRunClick: config.onRunClick !== undefined ? some(config.onRunClick) : none,
137
- onEventClick: config.onEventClick !== undefined ? some(config.onEventClick) : none,
138
- onMarkClick: config.onMarkClick !== undefined ? some(config.onMarkClick) : none,
139
- onChipClick: config.onChipClick !== undefined ? some(config.onChipClick) : none,
140
- onCellClick: config.onCellClick !== undefined ? some(config.onCellClick) : none,
176
+ onElementClick: config.onElementClick !== undefined
177
+ ? some(East.value(config.onElementClick, FunctionType([PlanElementRefType], NullType)))
178
+ : none,
141
179
  onGroupToggle: config.onGroupToggle !== undefined ? some(config.onGroupToggle) : none,
142
180
  onGrainChange: config.onGrainChange !== undefined ? some(config.onGrainChange) : none,
181
+ ui: config.ui !== undefined ? some(East.value(config.ui, PlanUiBindType)) : none,
143
182
  style: styleValue,
144
183
  }), UIComponentType);
145
184
  }
185
+ // ============================================================================
186
+ // Editing (#880) — the canvas's side of the shared session
187
+ // ============================================================================
188
+ /**
189
+ * An author callback, held to its exact East signature: a function of
190
+ * `inputs` returning `output` — sync, or async where allowed.
191
+ *
192
+ * @param value - The author's function
193
+ * @param inputs - Its parameter types
194
+ * @param output - Its result type
195
+ * @param name - The `editing` field, for the message
196
+ * @param allowAsync - Whether an async function is accepted
197
+ * @param expected - The signature in words, for the message
198
+ * @returns The function
199
+ * @throws {Error} Naming the field and the signature it must have
200
+ */
201
+ function checkedCallback(value, inputs, output, name, allowAsync, expected) {
202
+ const fn = East.value(value);
203
+ const type = Expr.type(fn);
204
+ const callable = type.type === "Function" || (allowAsync && type.type === "AsyncFunction");
205
+ const matches = callable && type.inputs !== undefined && type.inputs.length === inputs.length
206
+ && type.inputs.every((t, i) => isTypeEqual(t, inputs[i]))
207
+ && type.output !== undefined && isTypeEqual(type.output, output);
208
+ if (!matches) {
209
+ throw new Error(`Plan: editing.${name} must be an East ${allowAsync ? "sync or async " : ""}function ${expected}`);
210
+ }
211
+ return fn;
212
+ }
213
+ /**
214
+ * The canvas's editing declaration (#880) — the shared session's fields over
215
+ * the source's top-level entries, and the canvas's own: its blocks with the
216
+ * drafted entries in place, one entry's blocks, the gestures written into
217
+ * entries, a window's entry ids and the author's readiness check.
218
+ *
219
+ * @remarks
220
+ * Everything crosses as bytes at the exact entry type the wire names, so the
221
+ * arm stays closed. The entries are read where the canvas reads them — the
222
+ * inline `Dict`, or the very windows the canvas pages (`buildPagedWindow`), so
223
+ * an entry read back for a gesture is a window the canvas already holds.
224
+ *
225
+ * @param resolved - The resolved `data` — a keyed collection, inline or paged
226
+ * @param series - The series input the canvas applies
227
+ * @param input - The author's editing declaration
228
+ * @returns The editing declaration, on the wire
229
+ * @throws {Error} When the declaration is inconsistent, or a callback has another signature
230
+ */
231
+ function buildPlanEditing(resolved, series, input) {
232
+ const sourceType = resolved.collectionType;
233
+ const entryType = sourceType.value;
234
+ const keyType = sourceType.key;
235
+ const draftType = EditingDraftFieldType(entryType);
236
+ const batchType = EditingChangeSetTypeFor(entryType, keyType);
237
+ const eventType = EditingPatchEventTypeWith(entryType, draftType);
238
+ const DraftsType = DictType(StringType, BlobType);
239
+ if (input.onApply !== undefined && input.onUpdate !== undefined) {
240
+ throw new Error("Plan: editing takes onApply or the inline onUpdate adapter, not both");
241
+ }
242
+ if (input.onUpdate !== undefined && (resolved.kind !== "inline" || resolved.live === undefined)) {
243
+ throw new Error("Plan: editing.onUpdate requires data={liveHandle}, so each batch reads the latest entries — pass the bound " +
244
+ "handle itself, or commit with onApply");
245
+ }
246
+ if (input.mode === "auto" && input.onApply === undefined && input.onUpdate === undefined) {
247
+ throw new Error("Plan: editing.mode \"auto\" applies each ready gesture at once — it needs onApply or onUpdate to apply it with");
248
+ }
249
+ if (resolved.kind !== "inline" && !resolved.pinned && input.onApply !== undefined) {
250
+ throw new Error("Plan: editing a paged source needs its revision and refresh — a pinned source (Data.bindPaged's handle, " +
251
+ "Paged.pinned): a batch is checked against the revision it began at, and the drafts retire once the source " +
252
+ "reads back at the revision it committed");
253
+ }
254
+ // An entry's id is its key's text — the first segment of its rows' paths:
255
+ // a String key as it is, any other key its `.east` text.
256
+ const keyOf = (keyType.type === "String"
257
+ ? East.function([StringType], StringType, (_$, id) => id)
258
+ : East.function([StringType], keyType, (_$, id) => id.parse(keyType)));
259
+ const idOf = (keyType.type === "String"
260
+ ? East.function([StringType], StringType, (_$, key) => key)
261
+ : East.function([keyType], StringType, (_$, key) => East.print(key)));
262
+ // Where the entries are read: the inline Dict, or the canvas's own windows.
263
+ const inline = resolved.kind === "inline" ? resolved.rows : undefined;
264
+ const window = resolved.kind === "paged"
265
+ ? buildPagedWindow(resolved)
266
+ : undefined;
267
+ const pageSize = BigInt(PLAN_PAGE_SIZE);
268
+ // One entry, read back: inline by key; paged from the window it came from
269
+ // (aligned to the canvas's page), the very request the canvas made.
270
+ const readEntry = East.function([StringType, IntegerType], OptionType(BlobType), ($, id, offset) => {
271
+ const parse = $.const(keyOf);
272
+ const key = $.let(parse(id));
273
+ const result = $.let(none, OptionType(BlobType));
274
+ if (inline !== undefined) {
275
+ const all = $.const(inline);
276
+ $.match(all.tryGet(key), {
277
+ some: ($2, entry) => { $2.assign(result, some(East.Blob.encodeBeast(entry, "v2"))); },
278
+ });
279
+ }
280
+ else {
281
+ const read = $.const(window);
282
+ const start = $.let(offset.subtract(offset.remainder(pageSize)));
283
+ const piece = $.let(read(start, pageSize));
284
+ $.match(piece, {
285
+ some: ($2, entries) => {
286
+ $2.match(entries.tryGet(key), {
287
+ some: ($3, entry) => { $3.assign(result, some(East.Blob.encodeBeast(entry, "v2"))); },
288
+ });
289
+ },
290
+ });
291
+ }
292
+ return result;
293
+ });
294
+ // The entries with the drafted ones in their place — a new collection, the
295
+ // source's untouched — and the series applied to it: a draft draws exactly
296
+ // as the applied batch will.
297
+ const withDrafts = East.function([sourceType, DraftsType], sourceType, ($, entries, drafts) => {
298
+ const idText = $.const(idOf);
299
+ return entries.map(($2, value, key) => {
300
+ const id = $2.let(idText(key));
301
+ return drafts.has(id).ifElse(() => drafts.get(id).decodeBeast(entryType, "v2"), () => value);
302
+ });
303
+ });
304
+ const derive = East.function([IntegerType, IntegerType, DraftsType], OptionType(PlanBlocksType), ($, offset, limit, drafts) => {
305
+ const draft = $.const(withDrafts);
306
+ const result = $.let(none, OptionType(PlanBlocksType));
307
+ if (inline !== undefined) {
308
+ const all = $.const(inline);
309
+ const drafted = $.let(draft(all, drafts));
310
+ $.assign(result, some(applySeries(series, drafted)));
311
+ }
312
+ else {
313
+ const read = $.const(window);
314
+ const piece = $.let(read(offset, limit));
315
+ $.match(piece, {
316
+ some: ($2, entries) => {
317
+ const drafted = $2.let(draft(entries, drafts));
318
+ $2.assign(result, some(applySeries(series, drafted)));
319
+ },
320
+ });
321
+ }
322
+ return result;
323
+ });
324
+ // One entry's blocks — what a draft is compared by, row by row.
325
+ const deriveEntry = East.function([StringType, BlobType], PlanBlocksType, ($, id, bytes) => {
326
+ const parse = $.const(keyOf);
327
+ const one = $.let(new Map(), sourceType);
328
+ $(one.insert(parse(id), bytes.decodeBeast(entryType, "v2")));
329
+ return applySeries(series, one);
330
+ });
331
+ // Gestures written into their entries, through the series that made each
332
+ // row; `none` for an entry no series took the gesture on. A move to
333
+ // another row carries its item from the row that gives it up to the row
334
+ // that takes it — the requests are in that order (#825) — and an item
335
+ // still carried at the end is a move that landed nowhere: the batch is
336
+ // refused whole, so an item is never taken without being put.
337
+ const writeOne = seriesWriteFn(series, sourceType);
338
+ const write = East.function([ArrayType(PlanWriteRequestType)], ArrayType(OptionType(BlobType)), ($, requests) => {
339
+ const writeRow = $.const(writeOne);
340
+ const parse = $.const(keyOf);
341
+ const carried = $.let(ref(East.value(none, OptionType(BlobType))), PlanCarriedType);
342
+ const written = $.let(requests.map(($2, request) => {
343
+ const key = $2.let(parse(request.id));
344
+ const entry = $2.let(request.entry.decodeBeast(entryType, "v2"), entryType);
345
+ const out = $2.let(none, OptionType(BlobType));
346
+ $2.for(request.rows, ($3, row) => {
347
+ const next = $3.let(writeRow(entry, key, row, request.gesture, carried));
348
+ $3.match(next, { some: ($4, value) => { $4.assign(entry, value); } });
349
+ $3.if(next.hasTag("some"), ($4) => { $4.assign(out, some(East.Blob.encodeBeast(entry, "v2"))); });
350
+ });
351
+ return out;
352
+ }), ArrayType(OptionType(BlobType)));
353
+ const stranded = $.let(carried.get(), OptionType(BlobType));
354
+ return stranded.hasTag("some").ifElse(() => written.map((_$2) => East.value(none, OptionType(BlobType))), () => written);
355
+ });
356
+ // A window's entry ids, in the source's order.
357
+ const entryIds = East.function([IntegerType, IntegerType], OptionType(ArrayType(StringType)), ($, offset, limit) => {
358
+ const idText = $.const(idOf);
359
+ const result = $.let(none, OptionType(ArrayType(StringType)));
360
+ if (inline !== undefined) {
361
+ const all = $.const(inline);
362
+ const ids = $.let(all.toArray(($2, _value, key) => idText(key)));
363
+ const n = $.let(ids.size());
364
+ const start = $.let(offset.less(n).ifElse(() => offset, () => n));
365
+ const end = $.let(offset.add(limit).less(n).ifElse(() => offset.add(limit), () => n));
366
+ $.assign(result, some(ids.slice(start, end)));
367
+ }
368
+ else {
369
+ const read = $.const(window);
370
+ const piece = $.let(read(offset, limit));
371
+ $.match(piece, {
372
+ some: ($2, entries) => { $2.assign(result, some(entries.toArray(($3, _value, key) => idText(key)))); },
373
+ });
374
+ }
375
+ return result;
376
+ });
377
+ // The author's readiness check, one result per drafted entry, in order. A
378
+ // check that throws refuses its own entry alone.
379
+ const authorReady = input.ready === undefined ? undefined : checkedCallback(input.ready, [entryType, keyType], EditingReadinessType, "ready", false, "over this canvas's entry and key (R, K), returning Editing.Types.Readiness");
380
+ const ready = authorReady === undefined ? undefined : East.function([ArrayType(PlanReadyEntryType)], ArrayType(EditingReadinessType), ($, batch) => {
381
+ const check = $.const(authorReady);
382
+ const parse = $.const(keyOf);
383
+ return batch.map(($2, item) => {
384
+ const result = $2.let(variant("ready", null), EditingReadinessType);
385
+ $2.try(($3) => {
386
+ $3.assign(result, check(item.entry.decodeBeast(entryType, "v2"), parse(item.id)));
387
+ }).catch(($3, message) => {
388
+ $3.assign(result, variant("invalid", [{ field: "", message: East.str `Readiness check failed: ${message}` }]));
389
+ });
390
+ return result;
391
+ });
392
+ });
393
+ // The authoritative apply: the author's, or the inline adapter over the
394
+ // live handle's latest Dict (#879's protocol, keyed).
395
+ const live = resolved.kind === "inline" ? resolved.live : undefined;
396
+ const reader = live !== undefined
397
+ ? live.read
398
+ : undefined;
399
+ const authorApply = input.onApply === undefined ? undefined : checkedCallback(input.onApply, [batchType], EditingApplyResultType, "onApply", true, "over Editing.Types.ChangeSet(R, K) — this canvas's entry and key types — returning Editing.Types.ApplyResult");
400
+ const sourceFields = resolved.kind === "paged" ? Expr.type(resolved.source).fields : {};
401
+ const sourceId = resolved.kind === "paged"
402
+ ? (sourceFields["id"] !== undefined
403
+ ? resolved.source.id
404
+ : East.value("", StringType))
405
+ : reader !== undefined ? East.print(East.Blob.encodeBeast(reader, "v2"))
406
+ : authorApply !== undefined ? East.print(East.Blob.encodeBeast(authorApply, "v2"))
407
+ : East.value("readonly-inline", StringType);
408
+ let onApply;
409
+ if (input.onUpdate !== undefined && reader !== undefined) {
410
+ const writer = checkedCallback(input.onUpdate, [sourceType], NullType, "onUpdate", false, "over the whole Dict<K, R> the batch leaves, returning Null");
411
+ onApply = East.value(variant("sync", buildKeyedInlineApply(sourceType, sourceId, reader, writer)), EditingWireApplyType);
412
+ }
413
+ else if (authorApply !== undefined) {
414
+ const typedBatch = batchType;
415
+ if (Expr.type(authorApply).type === "AsyncFunction") {
416
+ const fn = authorApply;
417
+ onApply = East.value(variant("async", East.asyncFunction([BlobType], EditingApplyResultType, ($, blob) => {
418
+ const apply = $.const(fn);
419
+ return apply(blob.decodeBeast(typedBatch, "v2"));
420
+ })), EditingWireApplyType);
421
+ }
422
+ else {
423
+ const fn = authorApply;
424
+ onApply = East.value(variant("sync", East.function([BlobType], EditingApplyResultType, ($, blob) => {
425
+ const apply = $.const(fn);
426
+ return apply(blob.decodeBeast(typedBatch, "v2"));
427
+ })), EditingWireApplyType);
428
+ }
429
+ }
430
+ const authorPatch = input.onPatch === undefined ? undefined : checkedCallback(input.onPatch, [eventType], NullType, "onPatch", false, "over Plan.Types.PatchEvent(R), returning Null");
431
+ const onPatch = authorPatch === undefined ? undefined : East.function([BlobType], NullType, ($, blob) => {
432
+ const observe = $.const(authorPatch);
433
+ $(observe(blob.decodeBeast(eventType, "v2")));
434
+ });
435
+ return East.value({
436
+ sourceId,
437
+ entryType: toEastTypeValue(entryType),
438
+ idField: none,
439
+ draftType: toEastTypeValue(draftType),
440
+ children: none,
441
+ keyType: some(toEastTypeValue(keyType)),
442
+ snapshot: inline !== undefined ? some(East.Blob.encodeBeast(inline, "v2")) : none,
443
+ readEntry,
444
+ onPatch: onPatch !== undefined ? some(onPatch) : none,
445
+ onApply: onApply !== undefined ? some(onApply) : none,
446
+ mode: variant(input.mode ?? "batch", null),
447
+ derive,
448
+ deriveEntry,
449
+ write,
450
+ entryIds,
451
+ ready: ready !== undefined ? some(ready) : none,
452
+ }, PlanEditingType);
453
+ }
146
454
  //# sourceMappingURL=root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../../src/collections/plan/root.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../../src/collections/plan/root.ts"],"names":[],"mappings":"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"}