@elaraai/e3-ui 1.0.85 → 1.0.87

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 (385) hide show
  1. package/dist/src/bind/data-indexed.d.ts +159 -0
  2. package/dist/src/bind/data-indexed.d.ts.map +1 -0
  3. package/dist/src/bind/data-indexed.js +105 -0
  4. package/dist/src/bind/data-indexed.js.map +1 -0
  5. package/dist/src/bind/data.d.ts +5 -3
  6. package/dist/src/bind/data.d.ts.map +1 -1
  7. package/dist/src/bind/data.js +6 -0
  8. package/dist/src/bind/data.js.map +1 -1
  9. package/dist/src/bind/record.d.ts +34 -23
  10. package/dist/src/bind/record.d.ts.map +1 -1
  11. package/dist/src/bind/record.js +46 -19
  12. package/dist/src/bind/record.js.map +1 -1
  13. package/dist/src/calendar/index.d.ts +2923 -0
  14. package/dist/src/calendar/index.d.ts.map +1 -0
  15. package/dist/src/calendar/index.js +135 -0
  16. package/dist/src/calendar/index.js.map +1 -0
  17. package/dist/src/decision/queue.d.ts +3 -3
  18. package/dist/src/decision/queue.d.ts.map +1 -1
  19. package/dist/src/decision/queue.js +2 -2
  20. package/dist/src/decision/queue.js.map +1 -1
  21. package/dist/src/decision/types.d.ts +4 -0
  22. package/dist/src/decision/types.d.ts.map +1 -1
  23. package/dist/src/decision/types.js +4 -0
  24. package/dist/src/decision/types.js.map +1 -1
  25. package/dist/src/flowchart/canvas.d.ts +114 -0
  26. package/dist/src/flowchart/canvas.d.ts.map +1 -0
  27. package/dist/src/flowchart/canvas.js +84 -0
  28. package/dist/src/flowchart/canvas.js.map +1 -0
  29. package/dist/src/flowchart/flowchart.d.ts +79 -0
  30. package/dist/src/flowchart/flowchart.d.ts.map +1 -0
  31. package/dist/src/flowchart/flowchart.js +9 -0
  32. package/dist/src/flowchart/flowchart.js.map +1 -0
  33. package/dist/src/flowchart/index.d.ts +305 -0
  34. package/dist/src/flowchart/index.d.ts.map +1 -0
  35. package/dist/src/flowchart/index.js +267 -0
  36. package/dist/src/flowchart/index.js.map +1 -0
  37. package/dist/src/flowchart/library.d.ts +720 -0
  38. package/dist/src/flowchart/library.d.ts.map +1 -0
  39. package/dist/src/flowchart/library.js +611 -0
  40. package/dist/src/flowchart/library.js.map +1 -0
  41. package/dist/src/flowchart/over.d.ts +234 -0
  42. package/dist/src/flowchart/over.d.ts.map +1 -0
  43. package/dist/src/flowchart/over.js +220 -0
  44. package/dist/src/flowchart/over.js.map +1 -0
  45. package/dist/src/flowchart/patch.d.ts +64 -0
  46. package/dist/src/flowchart/patch.d.ts.map +1 -0
  47. package/dist/src/flowchart/patch.js +67 -0
  48. package/dist/src/flowchart/patch.js.map +1 -0
  49. package/dist/src/flowchart/payload.d.ts +8220 -0
  50. package/dist/src/flowchart/payload.d.ts.map +1 -0
  51. package/dist/src/flowchart/payload.js +521 -0
  52. package/dist/src/flowchart/payload.js.map +1 -0
  53. package/dist/src/flowchart/types.d.ts +393 -0
  54. package/dist/src/flowchart/types.d.ts.map +1 -0
  55. package/dist/src/flowchart/types.js +216 -0
  56. package/dist/src/flowchart/types.js.map +1 -0
  57. package/dist/src/flowchart/values.d.ts +267 -0
  58. package/dist/src/flowchart/values.d.ts.map +1 -0
  59. package/dist/src/flowchart/values.js +216 -0
  60. package/dist/src/flowchart/values.js.map +1 -0
  61. package/dist/src/flowchart/window.d.ts +521 -0
  62. package/dist/src/flowchart/window.d.ts.map +1 -0
  63. package/dist/src/flowchart/window.js +69 -0
  64. package/dist/src/flowchart/window.js.map +1 -0
  65. package/dist/src/index.d.ts +25 -1
  66. package/dist/src/index.d.ts.map +1 -1
  67. package/dist/src/index.js +48 -1
  68. package/dist/src/index.js.map +1 -1
  69. package/dist/src/internal.d.ts +35 -3
  70. package/dist/src/internal.d.ts.map +1 -1
  71. package/dist/src/internal.js +72 -3
  72. package/dist/src/internal.js.map +1 -1
  73. package/dist/src/plan/assemble.d.ts +2224 -0
  74. package/dist/src/plan/assemble.d.ts.map +1 -0
  75. package/dist/src/plan/assemble.js +210 -0
  76. package/dist/src/plan/assemble.js.map +1 -0
  77. package/dist/src/plan/builders.d.ts +790 -0
  78. package/dist/src/plan/builders.d.ts.map +1 -0
  79. package/dist/src/plan/builders.js +749 -0
  80. package/dist/src/plan/builders.js.map +1 -0
  81. package/dist/src/plan/event-rows.d.ts +2565 -0
  82. package/dist/src/plan/event-rows.d.ts.map +1 -0
  83. package/dist/src/plan/event-rows.js +689 -0
  84. package/dist/src/plan/event-rows.js.map +1 -0
  85. package/dist/src/plan/factories.d.ts +458 -0
  86. package/dist/src/plan/factories.d.ts.map +1 -0
  87. package/dist/src/plan/factories.js +484 -0
  88. package/dist/src/plan/factories.js.map +1 -0
  89. package/dist/src/plan/index.d.ts +672 -0
  90. package/dist/src/plan/index.d.ts.map +1 -0
  91. package/dist/src/plan/index.js +532 -0
  92. package/dist/src/plan/index.js.map +1 -0
  93. package/dist/src/plan/ir.d.ts +2594 -0
  94. package/dist/src/plan/ir.d.ts.map +1 -0
  95. package/dist/src/plan/ir.js +78 -0
  96. package/dist/src/plan/ir.js.map +1 -0
  97. package/dist/src/plan/library.d.ts +772 -0
  98. package/dist/src/plan/library.d.ts.map +1 -0
  99. package/dist/src/plan/library.js +424 -0
  100. package/dist/src/plan/library.js.map +1 -0
  101. package/dist/src/plan/ordered-source.d.ts +27 -0
  102. package/dist/src/plan/ordered-source.d.ts.map +1 -0
  103. package/dist/src/plan/ordered-source.js +48 -0
  104. package/dist/src/plan/ordered-source.js.map +1 -0
  105. package/dist/src/plan/over.d.ts +247 -0
  106. package/dist/src/plan/over.d.ts.map +1 -0
  107. package/dist/src/plan/over.js +266 -0
  108. package/dist/src/plan/over.js.map +1 -0
  109. package/dist/src/plan/pick.d.ts +78 -0
  110. package/dist/src/plan/pick.d.ts.map +1 -0
  111. package/dist/src/plan/pick.js +146 -0
  112. package/dist/src/plan/pick.js.map +1 -0
  113. package/dist/src/plan/plan.d.ts +11611 -0
  114. package/dist/src/plan/plan.d.ts.map +1 -0
  115. package/dist/src/plan/plan.js +428 -0
  116. package/dist/src/plan/plan.js.map +1 -0
  117. package/dist/src/plan/refs.d.ts +218 -0
  118. package/dist/src/plan/refs.d.ts.map +1 -0
  119. package/dist/src/plan/refs.js +226 -0
  120. package/dist/src/plan/refs.js.map +1 -0
  121. package/dist/src/plan/root.d.ts +290 -0
  122. package/dist/src/plan/root.d.ts.map +1 -0
  123. package/dist/src/plan/root.js +463 -0
  124. package/dist/src/plan/root.js.map +1 -0
  125. package/dist/src/plan/series.d.ts +13554 -0
  126. package/dist/src/plan/series.d.ts.map +1 -0
  127. package/dist/src/plan/series.js +1921 -0
  128. package/dist/src/plan/series.js.map +1 -0
  129. package/dist/src/plan/types.d.ts +12400 -0
  130. package/dist/src/plan/types.d.ts.map +1 -0
  131. package/dist/src/plan/types.js +1335 -0
  132. package/dist/src/plan/types.js.map +1 -0
  133. package/dist/src/roster/coverage.d.ts +240 -0
  134. package/dist/src/roster/coverage.d.ts.map +1 -0
  135. package/dist/src/roster/coverage.js +109 -0
  136. package/dist/src/roster/coverage.js.map +1 -0
  137. package/dist/src/roster/index.d.ts +4028 -0
  138. package/dist/src/roster/index.d.ts.map +1 -0
  139. package/dist/src/roster/index.js +115 -0
  140. package/dist/src/roster/index.js.map +1 -0
  141. package/dist/src/roster/library.d.ts +106 -0
  142. package/dist/src/roster/library.d.ts.map +1 -0
  143. package/dist/src/roster/library.js +78 -0
  144. package/dist/src/roster/library.js.map +1 -0
  145. package/dist/src/roster/people.d.ts +50 -0
  146. package/dist/src/roster/people.d.ts.map +1 -0
  147. package/dist/src/roster/people.js +32 -0
  148. package/dist/src/roster/people.js.map +1 -0
  149. package/dist/src/roster/rules.d.ts +275 -0
  150. package/dist/src/roster/rules.d.ts.map +1 -0
  151. package/dist/src/roster/rules.js +162 -0
  152. package/dist/src/roster/rules.js.map +1 -0
  153. package/dist/src/roster/types.d.ts +672 -0
  154. package/dist/src/roster/types.d.ts.map +1 -0
  155. package/dist/src/roster/types.js +248 -0
  156. package/dist/src/roster/types.js.map +1 -0
  157. package/dist/src/roster/visibility.d.ts +66 -0
  158. package/dist/src/roster/visibility.d.ts.map +1 -0
  159. package/dist/src/roster/visibility.js +25 -0
  160. package/dist/src/roster/visibility.js.map +1 -0
  161. package/dist/src/schedule/days.d.ts +54 -0
  162. package/dist/src/schedule/days.d.ts.map +1 -0
  163. package/dist/src/schedule/days.js +68 -0
  164. package/dist/src/schedule/days.js.map +1 -0
  165. package/dist/src/schedule/events.d.ts +433 -0
  166. package/dist/src/schedule/events.d.ts.map +1 -0
  167. package/dist/src/schedule/events.js +851 -0
  168. package/dist/src/schedule/events.js.map +1 -0
  169. package/dist/src/schedule/index.d.ts +150 -0
  170. package/dist/src/schedule/index.d.ts.map +1 -0
  171. package/dist/src/schedule/index.js +132 -0
  172. package/dist/src/schedule/index.js.map +1 -0
  173. package/dist/src/schedule/library.d.ts +70 -0
  174. package/dist/src/schedule/library.d.ts.map +1 -0
  175. package/dist/src/schedule/library.js +102 -0
  176. package/dist/src/schedule/library.js.map +1 -0
  177. package/dist/src/schedule/patch.d.ts +74 -0
  178. package/dist/src/schedule/patch.d.ts.map +1 -0
  179. package/dist/src/schedule/patch.js +68 -0
  180. package/dist/src/schedule/patch.js.map +1 -0
  181. package/dist/src/schedule/record-window.d.ts +189 -0
  182. package/dist/src/schedule/record-window.d.ts.map +1 -0
  183. package/dist/src/schedule/record-window.js +95 -0
  184. package/dist/src/schedule/record-window.js.map +1 -0
  185. package/dist/src/schedule/resources.d.ts +165 -0
  186. package/dist/src/schedule/resources.d.ts.map +1 -0
  187. package/dist/src/schedule/resources.js +234 -0
  188. package/dist/src/schedule/resources.js.map +1 -0
  189. package/dist/src/schedule/templates.d.ts +47 -0
  190. package/dist/src/schedule/templates.d.ts.map +1 -0
  191. package/dist/src/schedule/templates.js +61 -0
  192. package/dist/src/schedule/templates.js.map +1 -0
  193. package/dist/src/schedule/types.d.ts +1677 -0
  194. package/dist/src/schedule/types.d.ts.map +1 -0
  195. package/dist/src/schedule/types.js +374 -0
  196. package/dist/src/schedule/types.js.map +1 -0
  197. package/dist/src/schedule/window.d.ts +154 -0
  198. package/dist/src/schedule/window.d.ts.map +1 -0
  199. package/dist/src/schedule/window.js +363 -0
  200. package/dist/src/schedule/window.js.map +1 -0
  201. package/dist/src/sheet/bridge.d.ts +385 -0
  202. package/dist/src/sheet/bridge.d.ts.map +1 -0
  203. package/dist/src/sheet/bridge.js +809 -0
  204. package/dist/src/sheet/bridge.js.map +1 -0
  205. package/dist/src/sheet/columns.d.ts +410 -0
  206. package/dist/src/sheet/columns.d.ts.map +1 -0
  207. package/dist/src/sheet/columns.js +99 -0
  208. package/dist/src/sheet/columns.js.map +1 -0
  209. package/dist/src/sheet/context-bridge.d.ts +48 -0
  210. package/dist/src/sheet/context-bridge.d.ts.map +1 -0
  211. package/dist/src/sheet/context-bridge.js +216 -0
  212. package/dist/src/sheet/context-bridge.js.map +1 -0
  213. package/dist/src/sheet/draft-bridge.d.ts +37 -0
  214. package/dist/src/sheet/draft-bridge.d.ts.map +1 -0
  215. package/dist/src/sheet/draft-bridge.js +153 -0
  216. package/dist/src/sheet/draft-bridge.js.map +1 -0
  217. package/dist/src/sheet/drafts.d.ts +14 -0
  218. package/dist/src/sheet/drafts.d.ts.map +1 -0
  219. package/dist/src/sheet/drafts.js +14 -0
  220. package/dist/src/sheet/drafts.js.map +1 -0
  221. package/dist/src/sheet/editing-bridge.d.ts +40 -0
  222. package/dist/src/sheet/editing-bridge.d.ts.map +1 -0
  223. package/dist/src/sheet/editing-bridge.js +231 -0
  224. package/dist/src/sheet/editing-bridge.js.map +1 -0
  225. package/dist/src/sheet/editing-types.d.ts +268 -0
  226. package/dist/src/sheet/editing-types.d.ts.map +1 -0
  227. package/dist/src/sheet/editing-types.js +34 -0
  228. package/dist/src/sheet/editing-types.js.map +1 -0
  229. package/dist/src/sheet/edits.d.ts +37 -0
  230. package/dist/src/sheet/edits.d.ts.map +1 -0
  231. package/dist/src/sheet/edits.js +31 -0
  232. package/dist/src/sheet/edits.js.map +1 -0
  233. package/dist/src/sheet/fields.d.ts +693 -0
  234. package/dist/src/sheet/fields.d.ts.map +1 -0
  235. package/dist/src/sheet/fields.js +280 -0
  236. package/dist/src/sheet/fields.js.map +1 -0
  237. package/dist/src/sheet/group.d.ts +165 -0
  238. package/dist/src/sheet/group.d.ts.map +1 -0
  239. package/dist/src/sheet/group.js +52 -0
  240. package/dist/src/sheet/group.js.map +1 -0
  241. package/dist/src/sheet/index.d.ts +542 -0
  242. package/dist/src/sheet/index.d.ts.map +1 -0
  243. package/dist/src/sheet/index.js +387 -0
  244. package/dist/src/sheet/index.js.map +1 -0
  245. package/dist/src/sheet/library.d.ts +284 -0
  246. package/dist/src/sheet/library.d.ts.map +1 -0
  247. package/dist/src/sheet/library.js +259 -0
  248. package/dist/src/sheet/library.js.map +1 -0
  249. package/dist/src/sheet/link.d.ts +398 -0
  250. package/dist/src/sheet/link.d.ts.map +1 -0
  251. package/dist/src/sheet/link.js +228 -0
  252. package/dist/src/sheet/link.js.map +1 -0
  253. package/dist/src/sheet/record.d.ts +75 -0
  254. package/dist/src/sheet/record.d.ts.map +1 -0
  255. package/dist/src/sheet/record.js +128 -0
  256. package/dist/src/sheet/record.js.map +1 -0
  257. package/dist/src/sheet/registers.d.ts +681 -0
  258. package/dist/src/sheet/registers.d.ts.map +1 -0
  259. package/dist/src/sheet/registers.js +671 -0
  260. package/dist/src/sheet/registers.js.map +1 -0
  261. package/dist/src/sheet/root.d.ts +329 -0
  262. package/dist/src/sheet/root.d.ts.map +1 -0
  263. package/dist/src/sheet/root.js +511 -0
  264. package/dist/src/sheet/root.js.map +1 -0
  265. package/dist/src/sheet/seed-bridge.d.ts +14 -0
  266. package/dist/src/sheet/seed-bridge.d.ts.map +1 -0
  267. package/dist/src/sheet/seed-bridge.js +51 -0
  268. package/dist/src/sheet/seed-bridge.js.map +1 -0
  269. package/dist/src/sheet/sheet.d.ts +11819 -0
  270. package/dist/src/sheet/sheet.d.ts.map +1 -0
  271. package/dist/src/sheet/sheet.js +236 -0
  272. package/dist/src/sheet/sheet.js.map +1 -0
  273. package/dist/src/sheet/sub-rows.d.ts +299 -0
  274. package/dist/src/sheet/sub-rows.d.ts.map +1 -0
  275. package/dist/src/sheet/sub-rows.js +272 -0
  276. package/dist/src/sheet/sub-rows.js.map +1 -0
  277. package/dist/src/sheet/templates.d.ts +161 -0
  278. package/dist/src/sheet/templates.d.ts.map +1 -0
  279. package/dist/src/sheet/templates.js +122 -0
  280. package/dist/src/sheet/templates.js.map +1 -0
  281. package/dist/src/sheet/transactions.d.ts +76 -0
  282. package/dist/src/sheet/transactions.d.ts.map +1 -0
  283. package/dist/src/sheet/transactions.js +40 -0
  284. package/dist/src/sheet/transactions.js.map +1 -0
  285. package/dist/src/sheet/types.d.ts +15226 -0
  286. package/dist/src/sheet/types.d.ts.map +1 -0
  287. package/dist/src/sheet/types.js +1070 -0
  288. package/dist/src/sheet/types.js.map +1 -0
  289. package/dist/src/sheet/views.d.ts +29 -0
  290. package/dist/src/sheet/views.d.ts.map +1 -0
  291. package/dist/src/sheet/views.js +43 -0
  292. package/dist/src/sheet/views.js.map +1 -0
  293. package/dist/src/studio/component.d.ts.map +1 -1
  294. package/dist/src/studio/component.js +11 -8
  295. package/dist/src/studio/component.js.map +1 -1
  296. package/dist/src/utils/derive.d.ts +134 -8
  297. package/dist/src/utils/derive.d.ts.map +1 -1
  298. package/dist/src/utils/derive.js +409 -7
  299. package/dist/src/utils/derive.js.map +1 -1
  300. package/dist/src/utils/ordered-source.d.ts +38 -0
  301. package/dist/src/utils/ordered-source.d.ts.map +1 -0
  302. package/dist/src/utils/ordered-source.js +45 -0
  303. package/dist/src/utils/ordered-source.js.map +1 -0
  304. package/dist/src/utils/row-inspector.d.ts +36 -0
  305. package/dist/src/utils/row-inspector.d.ts.map +1 -0
  306. package/dist/src/utils/row-inspector.js +49 -0
  307. package/dist/src/utils/row-inspector.js.map +1 -0
  308. package/dist/test/bind/data/data.examples.d.ts +21 -19
  309. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  310. package/dist/test/bind/data/data.examples.js +122 -122
  311. package/dist/test/bind/data/data.examples.js.map +1 -1
  312. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  313. package/dist/test/bind/record/record.examples.js +9 -9
  314. package/dist/test/bind/record/record.examples.js.map +1 -1
  315. package/dist/test/calendar/calendar-records.examples.d.ts +228 -0
  316. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -0
  317. package/dist/test/calendar/calendar-records.examples.js +91 -0
  318. package/dist/test/calendar/calendar-records.examples.js.map +1 -0
  319. package/dist/test/calendar/calendar.examples.d.ts +776 -0
  320. package/dist/test/calendar/calendar.examples.d.ts.map +1 -0
  321. package/dist/test/calendar/calendar.examples.js +336 -0
  322. package/dist/test/calendar/calendar.examples.js.map +1 -0
  323. package/dist/test/decision/journal.examples.d.ts +28 -28
  324. package/dist/test/decision/journal.examples.d.ts.map +1 -1
  325. package/dist/test/decision/journal.examples.js +4 -4
  326. package/dist/test/decision/journal.examples.js.map +1 -1
  327. package/dist/test/decision/queue.examples.d.ts.map +1 -1
  328. package/dist/test/decision/queue.examples.js +5 -7
  329. package/dist/test/decision/queue.examples.js.map +1 -1
  330. package/dist/test/flowchart/flowchart.examples.d.ts +3713 -0
  331. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -0
  332. package/dist/test/flowchart/flowchart.examples.js +465 -0
  333. package/dist/test/flowchart/flowchart.examples.js.map +1 -0
  334. package/dist/test/plan/plan-events.examples.d.ts +3666 -0
  335. package/dist/test/plan/plan-events.examples.d.ts.map +1 -0
  336. package/dist/test/plan/plan-events.examples.js +773 -0
  337. package/dist/test/plan/plan-events.examples.js.map +1 -0
  338. package/dist/test/plan/plan-records.examples.d.ts +3 -0
  339. package/dist/test/plan/plan-records.examples.d.ts.map +1 -0
  340. package/dist/test/plan/plan-records.examples.js +45 -0
  341. package/dist/test/plan/plan-records.examples.js.map +1 -0
  342. package/dist/test/plan/plan-windows.examples.d.ts +588 -0
  343. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -0
  344. package/dist/test/plan/plan-windows.examples.js +170 -0
  345. package/dist/test/plan/plan-windows.examples.js.map +1 -0
  346. package/dist/test/plan/plan.examples.d.ts +8095 -0
  347. package/dist/test/plan/plan.examples.d.ts.map +1 -0
  348. package/dist/test/plan/plan.examples.js +2500 -0
  349. package/dist/test/plan/plan.examples.js.map +1 -0
  350. package/dist/test/roster/domain.examples.d.ts +367 -0
  351. package/dist/test/roster/domain.examples.d.ts.map +1 -0
  352. package/dist/test/roster/domain.examples.js +72 -0
  353. package/dist/test/roster/domain.examples.js.map +1 -0
  354. package/dist/test/roster/roster-records.examples.d.ts +729 -0
  355. package/dist/test/roster/roster-records.examples.d.ts.map +1 -0
  356. package/dist/test/roster/roster-records.examples.js +86 -0
  357. package/dist/test/roster/roster-records.examples.js.map +1 -0
  358. package/dist/test/roster/roster.examples.d.ts +750 -0
  359. package/dist/test/roster/roster.examples.d.ts.map +1 -0
  360. package/dist/test/roster/roster.examples.js +198 -0
  361. package/dist/test/roster/roster.examples.js.map +1 -0
  362. package/dist/test/roster/warehouse.d.ts +87 -0
  363. package/dist/test/roster/warehouse.d.ts.map +1 -0
  364. package/dist/test/roster/warehouse.js +883 -0
  365. package/dist/test/roster/warehouse.js.map +1 -0
  366. package/dist/test/sheet/sheet-link.examples.d.ts +7 -0
  367. package/dist/test/sheet/sheet-link.examples.d.ts.map +1 -0
  368. package/dist/test/sheet/sheet-link.examples.js +41 -0
  369. package/dist/test/sheet/sheet-link.examples.js.map +1 -0
  370. package/dist/test/sheet/sheet-records.examples.d.ts +421 -0
  371. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -0
  372. package/dist/test/sheet/sheet-records.examples.js +79 -0
  373. package/dist/test/sheet/sheet-records.examples.js.map +1 -0
  374. package/dist/test/sheet/sheet-transactions.examples.d.ts +7 -0
  375. package/dist/test/sheet/sheet-transactions.examples.d.ts.map +1 -0
  376. package/dist/test/sheet/sheet-transactions.examples.js +58 -0
  377. package/dist/test/sheet/sheet-transactions.examples.js.map +1 -0
  378. package/dist/test/sheet/sheet.examples.d.ts +5562 -0
  379. package/dist/test/sheet/sheet.examples.d.ts.map +1 -0
  380. package/dist/test/sheet/sheet.examples.js +1178 -0
  381. package/dist/test/sheet/sheet.examples.js.map +1 -0
  382. package/dist/test/studio/studio.examples.d.ts.map +1 -1
  383. package/dist/test/studio/studio.examples.js +11 -11
  384. package/dist/test/studio/studio.examples.js.map +1 -1
  385. package/package.json +12 -9
@@ -0,0 +1,463 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * The Plan's canvas — `Plan.Root`, which assembles the canvas's root
7
+ * ({@link PlanRootType}): its rows over `data`, its axis, links, editing
8
+ * session and the rest. `<Plan>` carries it in its payload (#1191),
9
+ * beside the event kinds and their resources.
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ import { East, Expr, ArrayType, AsyncFunctionType, BlobType, BooleanType, DictType, FunctionType, IntegerType, NullType, OptionType, StringType, StructType, isTypeEqual, ref, toEastTypeValue, variant, some, none, } from "@elaraai/east";
14
+ import { DensityType, DragEventType, PickBindType, StatusValueType, UIComponentType, } from "@elaraai/east-ui";
15
+ import { EditingApplyResultType, EditingChangeSetTypeFor, EditingDraftFieldType, EditingPatchEventTypeWith, EditingReadinessType, EditingWireApplyType, SliceAffordanceType, SliceBindType, SliceChromeType, localSliceHandle, isRecordSlice, recordSliceChrome, buildKeyedInlineApply, buildPagedWindow, buildRowSource, checkedEditingCallback, pickActive, resolveRowSource, resolveTag, } from "@elaraai/east-ui/internal";
16
+ import { PlanAxisType, PlanGrainType, PlanLinkType, PlanRowIdType, PlanGroupToggleEventType, PlanFooterItemType, PlanStyleType, PlanElementRefType, PlanBlocksType, PlanRowsType, PlanUiBindType, PlanEditingType, PlanReadyEntryType, PlanWriteRequestType, PLAN_PAGE_SIZE, } from "./types.js";
17
+ import { orderedPlanSource } from "./ordered-source.js";
18
+ import { PlanRootType } from "./ir.js";
19
+ import { WINDOWLESS_AXES } from "./builders.js";
20
+ import { applySeries, checkSeries, seriesWriteFn, PlanCarriedType, PlanSeriesType } from "./series.js";
21
+ // ============================================================================
22
+ // Root
23
+ // ============================================================================
24
+ /** The default slice affordance list (§1 toolbar). */
25
+ const DEFAULT_PLAN_AFFORDANCES = ["cohort", "filter", "search", "range", "resolution", "brush", "summary"];
26
+ /** The source collection a series list's East type reads — its `derive`'s input, when the list's element is a series variant. */
27
+ function seriesSourceOf(list) {
28
+ const element = Expr.type(list).value;
29
+ if (element?.type !== "Variant")
30
+ return undefined;
31
+ return element.cases?.["span"]?.fields?.["derive"]?.inputs?.[0];
32
+ }
33
+ /**
34
+ * Creates the canvas's root — the {@link PlanRootType} value `<Plan>`
35
+ * carries as its payload's `plan` — for the tests and the renderer's own
36
+ * fixtures, which read it whole.
37
+ *
38
+ * @typeParam K - The canvas's axis kind, inferred from `config.axis`; every series must lie within it
39
+ * @param config - The canvas's configuration ({@link PlanConfig})
40
+ * @returns An East expression of {@link PlanRootType}
41
+ * @throws {Error} When `data` is not a keyed source, `series` / `pick` are both or neither given, two series share a
42
+ * key, a bound series list reads another key type than `data`, or the axis states no window and no slice is bound
43
+ *
44
+ * @remarks
45
+ * Window and resolution have no callbacks by design: they are slice writes
46
+ * (`setRange` / `setResolution`) — hosts observe the slice. A change to the
47
+ * data — a dropped card, a moved or resized element — is a draft of the
48
+ * `editing` session, saved as one checked batch (#880, #825).
49
+ */
50
+ export function createPlanRoot(config) {
51
+ return buildPlanRoot(config, undefined);
52
+ }
53
+ /**
54
+ * Builds the canvas's root (#1191): its rows over `data`, and then `extra`,
55
+ * fixed blocks every window serves alike — or, with no `data`, `extra`
56
+ * alone.
57
+ *
58
+ * @param config - The canvas's configuration, `data` optional
59
+ * @param extra - The fixed blocks after `data`'s: a Plan's `rows`
60
+ * @returns An East expression of {@link PlanRootType}
61
+ * @throws {Error} As {@link createPlanRoot} does; and with no `data`, a `series`, `pick` or `editing`, each of which reads it
62
+ * @internal
63
+ */
64
+ export function buildPlanRoot(config, extra) {
65
+ // A canvas is DEFINED as data + series (+ the root resolvers) — there
66
+ // is no rows-authoring channel; the IR's inline arm is what inline
67
+ // application collapses to. A Plan of event kinds or `rows` alone has no data.
68
+ if (config.data === undefined && extra === undefined) {
69
+ throw new Error("Plan: `data` is required — a canvas is its data plus the series over it");
70
+ }
71
+ // The removed callbacks, named (#880) — a plain JS caller would otherwise
72
+ // lose them silently.
73
+ if ("onDrag" in config) {
74
+ throw new Error("Plan: `onDrag` is removed (#880) — a card dropped on a row is a draft of the `editing` session: declare " +
75
+ "`edit: { items, create }` on the series it lands on, and commit with `editing.onApply` (or `onUpdate`)");
76
+ }
77
+ if ("review" in config) {
78
+ throw new Error("Plan: `review` is removed (#1260) — a Plan approves and rejects nothing: its changes are drafts of the " +
79
+ "`editing` session, undone, redone, discarded or saved together");
80
+ }
81
+ if (config.data === undefined) {
82
+ for (const prop of ["series", "pick", "editing"]) {
83
+ if (config[prop] !== undefined) {
84
+ throw new Error(`Plan: \`${prop}\` reads \`data\`'s entries — pass \`data\` with it, or place read-only rows with \`rows\``);
85
+ }
86
+ }
87
+ }
88
+ else if ((config.series === undefined) === (config.pick === undefined)) {
89
+ throw new Error("Plan: give exactly one of `series` or `pick` — `series` for a fixed canvas, " +
90
+ "`pick` for a pickable one. A `Plan.pick` handle already carries the series list, " +
91
+ "so passing both says it twice and lets the two disagree.");
92
+ }
93
+ // There is no fit to the data (#822): every canvas states its window, or
94
+ // binds a slice whose range supplies it — inline and paged alike.
95
+ if (WINDOWLESS_AXES.has(config.axis) && config.slice === undefined) {
96
+ throw new Error("Plan: the axis states no `window` and no `slice` is bound — declare the window " +
97
+ "(`Plan.axis({ window: { min, max }, … })`), or bind a slice whose range supplies it. " +
98
+ "A canvas never fits its axis to the data, so it reads the same inline and paged.");
99
+ }
100
+ if (config.series !== undefined)
101
+ checkSeries(config.series, "Plan");
102
+ const data = config.data;
103
+ if (data === undefined)
104
+ return rootOf(config, East.value(variant("inline", extra), PlanRowsType), undefined);
105
+ // A pick feeds the canvas its SURVIVING series; everything downstream sees
106
+ // one series input either way.
107
+ const seriesInput = config.pick !== undefined
108
+ ? pickActive(config.pick)
109
+ : config.series;
110
+ // The shared row-source resolution (#567): inline collection, paged
111
+ // source, or a whole-value bind handle — one dispatch, one vocabulary,
112
+ // and the series pipeline is the `make` that turns each window's entries
113
+ // into canvas rows (the single R-erasure point).
114
+ const incoming = resolveRowSource(data, "Plan");
115
+ const ordered = incoming.kind === "ordered" ? orderedPlanSource(incoming) : undefined;
116
+ const resolved = ordered?.resolved ?? incoming;
117
+ // The canvas is KEYED: a row's path starts with its entry's key, which is
118
+ // what keeps the canvas addressable by the keys the source is searched and
119
+ // windowed by (#568). Refuse anything else rather than inventing keys.
120
+ const collectionType = resolved.collectionType;
121
+ if (collectionType.type !== "Dict") {
122
+ throw new Error("Plan: `data` must be a keyed collection (`Dict<K, R>`) — a row's path starts with its entry's " +
123
+ "key, so the canvas is addressed the same way the source is (the row space a paged source windows " +
124
+ `and seeks). Got a ${collectionType.type}; key it at the call site, e.g. ` +
125
+ "`data={rows.toDict((_$, r) => r.id)}`.");
126
+ }
127
+ // A series list bound as an East value was built for its declared key
128
+ // type — it must read the source's.
129
+ if (!Array.isArray(seriesInput)) {
130
+ const reads = seriesSourceOf(seriesInput);
131
+ if (reads !== undefined && !isTypeEqual(reads, resolved.collectionType)) {
132
+ throw new Error("Plan: the series list is typed for another source than `data` — a list bound as an East value " +
133
+ "(a `$.const` list, a `Plan.pick`) is built for the entries' declared key type, String unless a " +
134
+ "series says `keyType`. Declare `keyType` on each series and type the list " +
135
+ "`Plan.Types.Series(R, keyType)`, or pass the series as a TS array, which is built for `data` itself.");
136
+ }
137
+ }
138
+ // The canvas's BLOCKS, in layout order (#823): inline, the whole source's;
139
+ // paged, each window's share of every block — one read serves them all.
140
+ // A Plan's `rows` follow as fixed blocks, which every window serves alike.
141
+ const rowsValue = buildRowSource(incoming, PlanBlocksType, (source) => {
142
+ const blocks = ordered === undefined ? applySeries(seriesInput, source) : ordered.make(seriesInput, source);
143
+ return extra === undefined ? blocks : blocks.concat(extra);
144
+ });
145
+ const editing = config.editing === undefined ? undefined : buildPlanEditing(resolved, seriesInput, config.editing);
146
+ return rootOf(config, rowsValue, editing === undefined ? undefined : ordered?.editing(editing) ?? editing);
147
+ }
148
+ /**
149
+ * The canvas's root around its rows and its editing session.
150
+ *
151
+ * @param config - The canvas's configuration
152
+ * @param rowsValue - Its rows: inline blocks, or a paged source of them
153
+ * @param editing - Its editing session over `data`, if it has one
154
+ * @returns An East expression of {@link PlanRootType}
155
+ */
156
+ function rootOf(config, rowsValue, editing) {
157
+ const style = config.style;
158
+ const styleValue = style !== undefined
159
+ ? some(East.value({
160
+ height: style.height !== undefined ? some(style.height) : none,
161
+ maxHeight: style.maxHeight !== undefined ? some(style.maxHeight) : none,
162
+ density: style.density !== undefined ? some(resolveTag(style.density, DensityType)) : none,
163
+ gutterWidth: style.gutterWidth !== undefined ? some(style.gutterWidth) : none,
164
+ }, PlanStyleType))
165
+ : none;
166
+ const record = config.slice !== undefined && isRecordSlice(config.slice.slice);
167
+ const recordOptions = record ? config.slice : undefined;
168
+ const sliceChrome = config.slice !== undefined && !record
169
+ ? some(East.value({
170
+ slice: localSliceHandle(config.slice.slice),
171
+ affordances: East.value((config.slice.affordances ?? DEFAULT_PLAN_AFFORDANCES).map(a => variant(a, null)), ArrayType(SliceAffordanceType)),
172
+ }, SliceChromeType))
173
+ : none;
174
+ return East.value({
175
+ rows: rowsValue,
176
+ links: East.value(config.links ?? [], ArrayType(PlanLinkType)),
177
+ axis: config.axis,
178
+ grain: config.grain !== undefined ? some(resolveTag(config.grain, PlanGrainType)) : none,
179
+ // East.value pins the exact function type (the Schematic `itemHover`
180
+ // pattern), so a resolver's result is the payload's UIComponentType.
181
+ popover: config.popover !== undefined
182
+ ? some(East.value(config.popover, FunctionType([PlanElementRefType], OptionType(UIComponentType))))
183
+ : none,
184
+ hover: config.hover !== undefined
185
+ ? some(East.value(config.hover, FunctionType([PlanElementRefType], OptionType(UIComponentType))))
186
+ : none,
187
+ expandRender: config.expandRender !== undefined
188
+ ? some(East.value(config.expandRender, FunctionType([PlanRowIdType], UIComponentType)))
189
+ : none,
190
+ expandGutter: config.expandGutter !== undefined
191
+ ? some(East.value(config.expandGutter, FunctionType([PlanRowIdType], UIComponentType)))
192
+ : none,
193
+ editing: editing !== undefined ? some(editing) : none,
194
+ // The library rides as chrome, like the slice rail: the non-generic
195
+ // contract only, since the payload must stay a closed East type.
196
+ pick: config.pick !== undefined
197
+ ? some(East.value(config.pick.pick, PickBindType))
198
+ : none,
199
+ slice: sliceChrome,
200
+ footer: (config.footer ?? []).map(f => East.value({
201
+ text: f.text,
202
+ tone: f.tone !== undefined ? some(resolveTag(f.tone, StatusValueType)) : none,
203
+ end: f.end ?? false,
204
+ }, PlanFooterItemType)),
205
+ id: config.id !== undefined ? some(config.id) : none,
206
+ sources: East.value(config.sources ?? [], ArrayType(StringType)),
207
+ canDrop: config.canDrop !== undefined ? some(config.canDrop) : none,
208
+ onSelect: config.onSelect !== undefined ? some(config.onSelect) : none,
209
+ onElementClick: config.onElementClick !== undefined
210
+ ? some(East.value(config.onElementClick, FunctionType([PlanElementRefType], NullType)))
211
+ : none,
212
+ onGroupToggle: config.onGroupToggle !== undefined ? some(config.onGroupToggle) : none,
213
+ onGrainChange: config.onGrainChange !== undefined ? some(config.onGrainChange) : none,
214
+ ui: config.ui !== undefined ? some(East.value(config.ui, PlanUiBindType)) : none,
215
+ style: styleValue,
216
+ recordSlice: recordOptions === undefined ? none : some(recordSliceChrome({ ...recordOptions,
217
+ affordances: recordOptions.affordances ?? ["fields", "presets", "summary", "brush"],
218
+ })),
219
+ }, PlanRootType);
220
+ }
221
+ // ============================================================================
222
+ // Editing (#880) — the canvas's side of the shared session
223
+ // ============================================================================
224
+ /**
225
+ * The canvas's editing declaration (#880) — the shared session's fields over
226
+ * the source's top-level entries, and the canvas's own: its blocks with the
227
+ * drafted entries in place, one entry's blocks, the gestures written into
228
+ * entries, a window's entry ids and the author's readiness check.
229
+ *
230
+ * @remarks
231
+ * Everything crosses as bytes at the exact entry type the wire names, so the
232
+ * payload stays closed. The entries are read where the canvas reads them — the
233
+ * inline `Dict`, or the very windows the canvas pages (`buildPagedWindow`), so
234
+ * an entry read back for a gesture is a window the canvas already holds.
235
+ *
236
+ * @param resolved - The resolved `data` — a keyed collection, inline or paged
237
+ * @param series - The series input the canvas applies
238
+ * @param input - The author's editing declaration
239
+ * @returns The editing declaration, on the wire
240
+ * @throws {Error} When the declaration is inconsistent, or a callback has another signature
241
+ */
242
+ function buildPlanEditing(resolved, series, input) {
243
+ const sourceType = resolved.collectionType;
244
+ const entryType = sourceType.value;
245
+ const keyType = sourceType.key;
246
+ const draftType = EditingDraftFieldType(entryType);
247
+ const batchType = EditingChangeSetTypeFor(entryType, keyType);
248
+ const eventType = EditingPatchEventTypeWith(entryType, draftType);
249
+ const DraftsType = DictType(StringType, BlobType);
250
+ if (input.onApply !== undefined && input.onUpdate !== undefined) {
251
+ throw new Error("Plan: editing takes onApply or the inline onUpdate adapter, not both");
252
+ }
253
+ if (input.onUpdate !== undefined && (resolved.kind !== "inline" || resolved.live === undefined)) {
254
+ throw new Error("Plan: editing.onUpdate requires data={liveHandle}, so each batch reads the latest entries — pass the bound " +
255
+ "handle itself, or commit with onApply");
256
+ }
257
+ if (input.mode === "auto" && input.onApply === undefined && input.onUpdate === undefined) {
258
+ throw new Error("Plan: editing.mode \"auto\" applies each ready gesture at once — it needs onApply or onUpdate to apply it with");
259
+ }
260
+ if (resolved.kind !== "inline" && !resolved.pinned && input.onApply !== undefined) {
261
+ throw new Error("Plan: editing a paged source needs its revision and refresh — a pinned source (Data.bindPaged's handle): " +
262
+ "a batch is checked against the revision it began at, and the drafts retire once the source reads back at " +
263
+ "the revision it committed");
264
+ }
265
+ // An entry's id is its key's text — the first segment of its rows' paths:
266
+ // a String key as it is, any other key its `.east` text.
267
+ const keyOf = (keyType.type === "String"
268
+ ? East.function([StringType], StringType, (_$, id) => id)
269
+ : East.function([StringType], keyType, (_$, id) => id.parse(keyType)));
270
+ const idOf = (keyType.type === "String"
271
+ ? East.function([StringType], StringType, (_$, key) => key)
272
+ : East.function([keyType], StringType, (_$, key) => East.print(key)));
273
+ // Where the entries are read: the inline Dict, or the canvas's own windows.
274
+ const inline = resolved.kind === "inline" ? resolved.rows : undefined;
275
+ const window = resolved.kind === "paged"
276
+ ? buildPagedWindow(resolved)
277
+ : undefined;
278
+ const pageSize = BigInt(PLAN_PAGE_SIZE);
279
+ // One entry, read back: inline by key; paged from the window it came from
280
+ // (aligned to the canvas's page), the very request the canvas made.
281
+ const readEntry = East.function([StringType, IntegerType], OptionType(BlobType), ($, id, offset) => {
282
+ const parse = $.const(keyOf);
283
+ const key = $.let(parse(id));
284
+ const result = $.let(none, OptionType(BlobType));
285
+ if (inline !== undefined) {
286
+ const all = $.const(inline);
287
+ $.match(all.tryGet(key), {
288
+ some: ($2, entry) => { $2.assign(result, some(East.Blob.encodeBeast(entry, "v2"))); },
289
+ });
290
+ }
291
+ else {
292
+ const read = $.const(window);
293
+ const start = $.let(offset.subtract(offset.remainder(pageSize)));
294
+ const piece = $.let(read(start, pageSize));
295
+ $.match(piece, {
296
+ some: ($2, entries) => {
297
+ $2.match(entries.tryGet(key), {
298
+ some: ($3, entry) => { $3.assign(result, some(East.Blob.encodeBeast(entry, "v2"))); },
299
+ });
300
+ },
301
+ });
302
+ }
303
+ return result;
304
+ });
305
+ // The entries with the drafted ones in their place — a new collection, the
306
+ // source's untouched — and the series applied to it: a draft draws exactly
307
+ // as the applied batch will.
308
+ const withDrafts = East.function([sourceType, DraftsType], sourceType, ($, entries, drafts) => {
309
+ const idText = $.const(idOf);
310
+ return entries.map(($2, value, key) => {
311
+ const id = $2.let(idText(key));
312
+ return drafts.has(id).ifElse(() => drafts.get(id).decodeBeast(entryType, "v2"), () => value);
313
+ });
314
+ });
315
+ const derive = East.function([IntegerType, IntegerType, DraftsType], OptionType(PlanBlocksType), ($, offset, limit, drafts) => {
316
+ const draft = $.const(withDrafts);
317
+ const result = $.let(none, OptionType(PlanBlocksType));
318
+ if (inline !== undefined) {
319
+ const all = $.const(inline);
320
+ const drafted = $.let(draft(all, drafts));
321
+ $.assign(result, some(applySeries(series, drafted)));
322
+ }
323
+ else {
324
+ const read = $.const(window);
325
+ const piece = $.let(read(offset, limit));
326
+ $.match(piece, {
327
+ some: ($2, entries) => {
328
+ const drafted = $2.let(draft(entries, drafts));
329
+ $2.assign(result, some(applySeries(series, drafted)));
330
+ },
331
+ });
332
+ }
333
+ return result;
334
+ });
335
+ // One entry's blocks — what a draft is compared by, row by row.
336
+ const deriveEntry = East.function([StringType, BlobType], PlanBlocksType, ($, id, bytes) => {
337
+ const parse = $.const(keyOf);
338
+ const one = $.let(new Map(), sourceType);
339
+ $(one.insert(parse(id), bytes.decodeBeast(entryType, "v2")));
340
+ return applySeries(series, one);
341
+ });
342
+ // Gestures written into their entries, through the series that made each
343
+ // row; `none` for an entry no series took the gesture on. A move to
344
+ // another row carries its item from the row that gives it up to the row
345
+ // that takes it — the requests are in that order (#825) — and an item
346
+ // still carried at the end is a move that landed nowhere: the batch is
347
+ // refused whole, so an item is never taken without being put.
348
+ const writeOne = seriesWriteFn(series, sourceType);
349
+ const write = East.function([ArrayType(PlanWriteRequestType)], ArrayType(OptionType(BlobType)), ($, requests) => {
350
+ const writeRow = $.const(writeOne);
351
+ const parse = $.const(keyOf);
352
+ const carried = $.let(ref(East.value(none, OptionType(BlobType))), PlanCarriedType);
353
+ const written = $.let(requests.map(($2, request) => {
354
+ const key = $2.let(parse(request.id));
355
+ const entry = $2.let(request.entry.decodeBeast(entryType, "v2"), entryType);
356
+ const out = $2.let(none, OptionType(BlobType));
357
+ $2.for(request.rows, ($3, row) => {
358
+ const next = $3.let(writeRow(entry, key, row, request.gesture, carried));
359
+ $3.match(next, { some: ($4, value) => { $4.assign(entry, value); } });
360
+ $3.if(next.hasTag("some"), ($4) => { $4.assign(out, some(East.Blob.encodeBeast(entry, "v2"))); });
361
+ });
362
+ return out;
363
+ }), ArrayType(OptionType(BlobType)));
364
+ const stranded = $.let(carried.get(), OptionType(BlobType));
365
+ return stranded.hasTag("some").ifElse(() => written.map((_$2) => East.value(none, OptionType(BlobType))), () => written);
366
+ });
367
+ // A window's entry ids, in the source's order.
368
+ const entryIds = East.function([IntegerType, IntegerType], OptionType(ArrayType(StringType)), ($, offset, limit) => {
369
+ const idText = $.const(idOf);
370
+ const result = $.let(none, OptionType(ArrayType(StringType)));
371
+ if (inline !== undefined) {
372
+ const all = $.const(inline);
373
+ const ids = $.let(all.toArray(($2, _value, key) => idText(key)));
374
+ const n = $.let(ids.size());
375
+ const start = $.let(offset.less(n).ifElse(() => offset, () => n));
376
+ const end = $.let(offset.add(limit).less(n).ifElse(() => offset.add(limit), () => n));
377
+ $.assign(result, some(ids.slice(start, end)));
378
+ }
379
+ else {
380
+ const read = $.const(window);
381
+ const piece = $.let(read(offset, limit));
382
+ $.match(piece, {
383
+ some: ($2, entries) => { $2.assign(result, some(entries.toArray(($3, _value, key) => idText(key)))); },
384
+ });
385
+ }
386
+ return result;
387
+ });
388
+ // The author's readiness check, one result per drafted entry, in order. A
389
+ // check that throws refuses its own entry alone.
390
+ const authorReady = input.ready === undefined ? undefined : checkedEditingCallback("Plan", input.ready, [entryType, keyType], EditingReadinessType, "ready", false, "over this canvas's entry and key (R, K), returning Editing.Types.Readiness");
391
+ const ready = authorReady === undefined ? undefined : East.function([ArrayType(PlanReadyEntryType)], ArrayType(EditingReadinessType), ($, batch) => {
392
+ const check = $.const(authorReady);
393
+ const parse = $.const(keyOf);
394
+ return batch.map(($2, item) => {
395
+ const result = $2.let(variant("ready", null), EditingReadinessType);
396
+ $2.try(($3) => {
397
+ $3.assign(result, check(item.entry.decodeBeast(entryType, "v2"), parse(item.id)));
398
+ }).catch(($3, message) => {
399
+ $3.assign(result, variant("invalid", [{ field: "", message: East.str `Readiness check failed: ${message}` }]));
400
+ });
401
+ return result;
402
+ });
403
+ });
404
+ // The authoritative apply: the author's, or the inline adapter over the
405
+ // live handle's latest Dict (#879's protocol, keyed).
406
+ const live = resolved.kind === "inline" ? resolved.live : undefined;
407
+ const reader = live !== undefined
408
+ ? live.read
409
+ : undefined;
410
+ const authorApply = input.onApply === undefined ? undefined : checkedEditingCallback("Plan", input.onApply, [batchType], EditingApplyResultType, "onApply", true, "over Editing.Types.ChangeSet(R, K) — this canvas's entry and key types — returning Editing.Types.ApplyResult");
411
+ // A paged source is one of the contract's shapes, both of which carry `id`.
412
+ const sourceId = resolved.kind === "paged"
413
+ ? resolved.source.id
414
+ : reader !== undefined ? East.print(East.Blob.encodeBeast(reader, "v2"))
415
+ : authorApply !== undefined ? East.print(East.Blob.encodeBeast(authorApply, "v2"))
416
+ : East.value("readonly-inline", StringType);
417
+ let onApply;
418
+ if (input.onUpdate !== undefined && reader !== undefined) {
419
+ const writer = checkedEditingCallback("Plan", input.onUpdate, [sourceType], NullType, "onUpdate", false, "over the whole Dict<K, R> the batch leaves, returning Null");
420
+ onApply = East.value(variant("sync", buildKeyedInlineApply(sourceType, sourceId, reader, writer)), EditingWireApplyType);
421
+ }
422
+ else if (authorApply !== undefined) {
423
+ const typedBatch = batchType;
424
+ if (Expr.type(authorApply).type === "AsyncFunction") {
425
+ const fn = authorApply;
426
+ onApply = East.value(variant("async", East.asyncFunction([BlobType], EditingApplyResultType, ($, blob) => {
427
+ const apply = $.const(fn);
428
+ return apply(blob.decodeBeast(typedBatch, "v2"));
429
+ })), EditingWireApplyType);
430
+ }
431
+ else {
432
+ const fn = authorApply;
433
+ onApply = East.value(variant("sync", East.function([BlobType], EditingApplyResultType, ($, blob) => {
434
+ const apply = $.const(fn);
435
+ return apply(blob.decodeBeast(typedBatch, "v2"));
436
+ })), EditingWireApplyType);
437
+ }
438
+ }
439
+ const authorPatch = input.onPatch === undefined ? undefined : checkedEditingCallback("Plan", input.onPatch, [eventType], NullType, "onPatch", false, "over Plan.Types.PatchEvent(R), returning Null");
440
+ const onPatch = authorPatch === undefined ? undefined : East.function([BlobType], NullType, ($, blob) => {
441
+ const observe = $.const(authorPatch);
442
+ $(observe(blob.decodeBeast(eventType, "v2")));
443
+ });
444
+ return East.value({
445
+ sourceId,
446
+ entryType: toEastTypeValue(entryType),
447
+ idField: none,
448
+ draftType: toEastTypeValue(draftType),
449
+ children: none,
450
+ keyType: some(toEastTypeValue(keyType)),
451
+ snapshot: inline !== undefined ? some(East.Blob.encodeBeast(inline, "v2")) : none,
452
+ readEntry,
453
+ onPatch: onPatch !== undefined ? some(onPatch) : none,
454
+ onApply: onApply !== undefined ? some(onApply) : none,
455
+ mode: variant(input.mode ?? "batch", null),
456
+ derive,
457
+ deriveEntry,
458
+ write,
459
+ entryIds,
460
+ ready: ready !== undefined ? some(ready) : none,
461
+ }, PlanEditingType);
462
+ }
463
+ //# sourceMappingURL=root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/plan/root.ts"],"names":[],"mappings":"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"}