@elaraai/e3-ui 1.0.86 → 1.0.88

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,48 @@
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
+ /** Draft-aware callback contexts; no domain values are synthesized. @packageDocumentation */
6
+ import { BlobType, DictType, FunctionType, IntegerType, OptionType, StringType, StructType, type EastType, type ExprType } from "@elaraai/east";
7
+ import type { SheetBridge } from "./bridge.js";
8
+ type RecordType = StructType;
9
+ /** A row's cells over its draft — the line decoder, or a loose row's, which writes the row's id. */
10
+ type DecodeRow = ExprType<FunctionType<[StringType, DictType<StringType, import("./types.js").SheetCellType>, OptionType<RecordType>], RecordType>>;
11
+ /**
12
+ * Lift an authoritative value into supplied field drafts, preserving hidden
13
+ * fields — a row, a group with its children, or an entry of a source with
14
+ * loose rows (#846), each arm as its own.
15
+ */
16
+ export declare function buildDraftLift(type: EastType, children?: string): ExprType<FunctionType<[EastType], EastType>>;
17
+ /** Return the existing draft, or lift the exact authoritative entry if resident. */
18
+ export declare function buildDraftBase(rowType: EastType, field: string | undefined, rowById: SheetBridge["rowById"]): import("@elaraai/east").CallableFunctionExpr<[DictType<StringType, BlobType>, StringType, IntegerType], OptionType<EastType>>;
19
+ /** Build a callback context from the current draft and a provisional cell edit. */
20
+ export declare function buildDraftContextBridge(rowType: EastType, lineType: StructType, field: string | undefined, ctxType: StructType, driverType: EastType, rowById: SheetBridge["rowById"], draftDecode: SheetBridge["draftDecode"], draftRow: DecodeRow, lookupDriver: ExprType<FunctionType>, looseRow?: DecodeRow): SheetBridge["bridgeCtx"];
21
+ /**
22
+ * Build a readiness batch's typed contexts (#882): the rows are built once,
23
+ * then there is one context per check over them, in the checks' order.
24
+ *
25
+ * @remarks
26
+ * A check's row is the draft built at its place: the row's own cells over
27
+ * its own draft. A wire context substitutes its provisional row into the
28
+ * rows it builds ({@link buildDraftContextBridge}). For a check, that would
29
+ * put back the very draft it replaces, so every context shares the rows
30
+ * unchanged. On a grouped sheet a check's `group` is its group's draft,
31
+ * `rows` that group's lines and `groups` the batch's groups; a LOOSE row's
32
+ * (#846) has no group, and its `rows` are the batch's loose rows. Every check
33
+ * of a batch reads the same rows, so a check that edits them in place changes
34
+ * what the checks after it see.
35
+ *
36
+ * @param rowType - The source row's type (a grouped sheet: the group's; with loose rows, the entry)
37
+ * @param field - A grouped sheet's lines field
38
+ * @param ctxType - The typed context — `DraftContext(R, D)`, or `DraftContext(P, "lines", D)`
39
+ * @param driverType - The driver's row type
40
+ * @param rowById - The real source row by id and offset
41
+ * @param draftDecode - A row's cells over its draft
42
+ * @param lookupDriver - The driver row by key
43
+ * @param loose - Whether the source holds loose rows between its groups (#846)
44
+ * @returns The batch → one typed context per check
45
+ */
46
+ export declare function buildReadyContexts(rowType: EastType, field: string | undefined, ctxType: StructType, driverType: EastType, rowById: SheetBridge["rowById"], draftDecode: SheetBridge["draftDecode"], lookupDriver: ExprType<FunctionType>, loose?: boolean): SheetBridge["bridgeReady"];
47
+ export {};
48
+ //# sourceMappingURL=context-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-bridge.d.ts","sourceRoot":"","sources":["../../../src/sheet/context-bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6FAA6F;AAC7F,OAAO,EAAa,QAAQ,EAAE,QAAQ,EAAQ,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAA0C,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAA6C,MAAM,eAAe,CAAC;AAIpP,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,KAAK,UAAU,GAAG,UAAU,CAAC;AAG7B,oGAAoG;AACpG,KAAK,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,YAAY,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AAEpJ;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CA6B9G;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,iIAc3G;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CACnC,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,QAAQ,EACpB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,EAC/B,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,EACvC,QAAQ,EAAE,SAAS,EACnB,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,EACpC,QAAQ,CAAC,EAAE,SAAS,GACrB,WAAW,CAAC,WAAW,CAAC,CAgF1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,QAAQ,EACpB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,EAC/B,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,EACvC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,EACpC,KAAK,UAAQ,GACd,WAAW,CAAC,aAAa,CAAC,CAiD5B"}
@@ -0,0 +1,216 @@
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
+ /** Draft-aware callback contexts; no domain values are synthesized. @packageDocumentation */
6
+ import { ArrayType, BlobType, DictType, East, FunctionType, IntegerType, OptionType, StringType, StructType, none, some, variant } from "@elaraai/east";
7
+ import { SheetContextType, SheetReadyBatchType } from "./types.js";
8
+ import { SheetDraftTypeFor } from "./transactions.js";
9
+ import { SheetDraftEntryTypeFor, SheetDraftGroupTypeFor } from "./drafts.js";
10
+ /**
11
+ * Lift an authoritative value into supplied field drafts, preserving hidden
12
+ * fields — a row, a group with its children, or an entry of a source with
13
+ * loose rows (#846), each arm as its own.
14
+ */
15
+ export function buildDraftLift(type, children) {
16
+ if (type.type === "Variant") {
17
+ const entry = type;
18
+ const draft = SheetDraftEntryTypeFor(entry, children);
19
+ const liftGroup = buildDraftLift(entry.cases.group, children);
20
+ const liftRow = buildDraftLift(entry.cases.row);
21
+ return East.function([entry], draft, ($, value) => {
22
+ const group = $.const(liftGroup);
23
+ const row = $.const(liftRow);
24
+ return value.match({
25
+ group: ($2, g) => $2.const(variant("group", group(g)), draft),
26
+ row: ($2, r) => $2.const(variant("row", row(r)), draft),
27
+ });
28
+ });
29
+ }
30
+ const record = type;
31
+ const draft = (children === undefined ? SheetDraftTypeFor(record) : SheetDraftGroupTypeFor(record, children));
32
+ const childType = children === undefined ? undefined : record.fields[children];
33
+ const liftChild = childType?.type === "Array" && childType.value.type === "Struct" ? buildDraftLift(childType.value) : undefined;
34
+ return East.function([record], draft, ($, value) => {
35
+ const out = {};
36
+ for (const field of Object.keys(record.fields)) {
37
+ if (field === children && liftChild !== undefined) {
38
+ const lift = $.const(liftChild);
39
+ out[field] = value[field].map((_$, row) => lift(row));
40
+ }
41
+ else
42
+ out[field] = variant("value", value[field]);
43
+ }
44
+ return $.const(out, draft);
45
+ });
46
+ }
47
+ /** Return the existing draft, or lift the exact authoritative entry if resident. */
48
+ export function buildDraftBase(rowType, field, rowById) {
49
+ const draftType = SheetDraftEntryTypeFor(rowType, field);
50
+ const lift = buildDraftLift(rowType, field);
51
+ return East.function([DictType(StringType, BlobType), StringType, IntegerType], OptionType(draftType), ($, drafts, id, offset) => {
52
+ const read = $.const(rowById);
53
+ const supplied = $.const(lift);
54
+ return drafts.tryGet(id).match({
55
+ some: ($, bytes) => $.const(some(bytes.decodeBeast(draftType, "v2")), OptionType(draftType)),
56
+ none: () => read(id, offset).match({
57
+ none: ($) => $.const(none, OptionType(draftType)),
58
+ some: ($, value) => $.const(some(supplied(value)), OptionType(draftType)),
59
+ }),
60
+ });
61
+ });
62
+ }
63
+ /** Build a callback context from the current draft and a provisional cell edit. */
64
+ export function buildDraftContextBridge(rowType, lineType, field, ctxType, driverType, rowById, draftDecode, draftRow, lookupDriver, looseRow) {
65
+ const rowDraft = SheetDraftTypeFor(lineType);
66
+ const entryDraft = SheetDraftEntryTypeFor(rowType, field);
67
+ const base = buildDraftBase(rowType, field, rowById);
68
+ // A source with loose rows (#846): a group's draft is its entry's group arm.
69
+ const groupDraft = (looseRow !== undefined && field !== undefined ? SheetDraftGroupTypeFor(rowType.cases.group, field) : entryDraft);
70
+ return East.function([SheetContextType], ctxType, ($, ctx) => {
71
+ const readBase = $.const(base);
72
+ const dec = $.const(draftRow);
73
+ const decEntry = $.const(draftDecode);
74
+ const lookup = $.const(lookupDriver);
75
+ // Every resident row's current draft — a readiness batch builds its rows the same way (`buildReadyContexts`).
76
+ const entries = $.const(ctx.rows.map((_$, wire, index) => decEntry(wire, readBase(ctx.drafts, wire.id, ctx.rowsOffset.add(index)), some(wire))), ArrayType(entryDraft));
77
+ const driver = $.const(ctx.driver.match({ none: () => none, some: (_$, key) => lookup(key) }), OptionType(driverType));
78
+ if (field === undefined) {
79
+ const row = $.const(dec(ctx.rowId, ctx.row, readBase(ctx.drafts, ctx.rowId, ctx.offset)), rowDraft);
80
+ const rows = $.const(entries.map((_$, entry, index) => ctx.rows.get(index).id.equal(ctx.rowId).ifElse(() => row, () => entry)));
81
+ return $.const({ rowIndex: ctx.rowIndex, row, rows, group: none, partial: ctx.partial, driver, today: ctx.today }, ctxType);
82
+ }
83
+ // On a source with loose rows (#846) the entries are variants: a group's draft is its entry's group arm.
84
+ const asEntries = entries;
85
+ /** A line's context: the line as it would be over its prior draft, its group's lines with it in place, every group. */
86
+ const lineContext = ($2) => {
87
+ const group = $2.const(ctx.rows.firstMap(($3, wire, index) => wire.id.equal(ctx.rowId).ifElse(($4) => looseRow === undefined
88
+ ? $4.const(some(entries.get(index)), OptionType(groupDraft))
89
+ : $4.const(asEntries.get(index).match({ group: (_$5, g) => some(g), row: () => none }), OptionType(groupDraft)), ($4) => $4.const(none, OptionType(groupDraft)))), OptionType(groupDraft));
90
+ const prior = $2.const(group.match({
91
+ none: () => none,
92
+ some: (_$, value) => {
93
+ const children = value[field];
94
+ return ctx.rowIndex.greaterEqual(0n).and(() => ctx.rowIndex.less(children.size())).ifElse(() => some(children.get(ctx.rowIndex)), () => none);
95
+ },
96
+ }), OptionType(rowDraft));
97
+ const row = $2.const(dec("", ctx.row, prior), rowDraft);
98
+ const edited = $2.const(group.match({
99
+ none: () => none,
100
+ some: ($, value) => {
101
+ const children = value[field];
102
+ const updated = $.const(children.map((_$, child, index) => index.equal(ctx.rowIndex).ifElse(() => row, () => child)));
103
+ const rows = $.const(ctx.rowIndex.equal(children.size()).ifElse(() => updated.concat([row]), () => updated));
104
+ const result = $.const({ ...Object.fromEntries(Object.keys(groupDraft.fields).map(key => [key, key === field ? rows : value[key]])) }, groupDraft);
105
+ return some(result);
106
+ },
107
+ }), OptionType(groupDraft));
108
+ const rows = $2.const(edited.match({ none: ($) => $.const([], ArrayType(rowDraft)), some: (_$, value) => value[field] }), ArrayType(rowDraft));
109
+ const groups = looseRow === undefined
110
+ ? $2.const(entries.map((_$, entry, index) => ctx.rows.get(index).id.equal(ctx.rowId).ifElse(() => edited.match({ none: () => entry, some: (_$3, value) => value }), () => entry)))
111
+ : $2.const(asEntries.filterMap((_$, entry, index) => entry.match({
112
+ group: (_$3, g) => some(ctx.rows.get(index).id.equal(ctx.rowId).ifElse(() => edited.match({ none: () => g, some: (_$4, value) => value }), () => g)),
113
+ row: () => none,
114
+ })), ArrayType(groupDraft));
115
+ return $2.const({ rowIndex: ctx.rowIndex, row, rows, group: edited, groups, partial: ctx.partial, driver, today: ctx.today }, ctxType);
116
+ };
117
+ if (looseRow === undefined)
118
+ return lineContext($);
119
+ // A LOOSE row (#846) — no line address: its own draft over its cells,
120
+ // among the resident loose rows, beside every group.
121
+ const decLoose = $.const(looseRow);
122
+ return ctx.line.match({
123
+ some: ($2) => lineContext($2),
124
+ none: ($2) => {
125
+ const own = $2.const(readBase(ctx.drafts, ctx.rowId, ctx.offset).match({
126
+ none: () => none,
127
+ some: (_$, entry) => entry.match({ row: (_$2, r) => some(r), group: () => none }),
128
+ }), OptionType(rowDraft));
129
+ const row = $2.const(decLoose(ctx.rowId, ctx.row, own), rowDraft);
130
+ const asEntry = $2.const(variant("row", row), entryDraft);
131
+ const edited = $2.const(asEntries.map((_$, entry, index) => ctx.rows.get(index).id.equal(ctx.rowId).ifElse(() => asEntry, () => entry)), ArrayType(entryDraft));
132
+ const rows = $2.const(edited.filterMap((_$, entry) => entry.match({ row: (_$2, r) => some(r), group: () => none })), ArrayType(rowDraft));
133
+ const groups = $2.const(edited.filterMap((_$, entry) => entry.match({ group: (_$2, g) => some(g), row: () => none })), ArrayType(groupDraft));
134
+ // Its index among the loose rows: the loose rows before it in `rows`.
135
+ const rowIndex = $2.const(ctx.rows.slice(0n, ctx.rowIndex).filter((_$, wire) => wire.band.hasTag("none")).size());
136
+ return $2.const({ rowIndex, row, rows, group: none, groups, partial: ctx.partial, driver, today: ctx.today }, ctxType);
137
+ },
138
+ });
139
+ });
140
+ }
141
+ /**
142
+ * Build a readiness batch's typed contexts (#882): the rows are built once,
143
+ * then there is one context per check over them, in the checks' order.
144
+ *
145
+ * @remarks
146
+ * A check's row is the draft built at its place: the row's own cells over
147
+ * its own draft. A wire context substitutes its provisional row into the
148
+ * rows it builds ({@link buildDraftContextBridge}). For a check, that would
149
+ * put back the very draft it replaces, so every context shares the rows
150
+ * unchanged. On a grouped sheet a check's `group` is its group's draft,
151
+ * `rows` that group's lines and `groups` the batch's groups; a LOOSE row's
152
+ * (#846) has no group, and its `rows` are the batch's loose rows. Every check
153
+ * of a batch reads the same rows, so a check that edits them in place changes
154
+ * what the checks after it see.
155
+ *
156
+ * @param rowType - The source row's type (a grouped sheet: the group's; with loose rows, the entry)
157
+ * @param field - A grouped sheet's lines field
158
+ * @param ctxType - The typed context — `DraftContext(R, D)`, or `DraftContext(P, "lines", D)`
159
+ * @param driverType - The driver's row type
160
+ * @param rowById - The real source row by id and offset
161
+ * @param draftDecode - A row's cells over its draft
162
+ * @param lookupDriver - The driver row by key
163
+ * @param loose - Whether the source holds loose rows between its groups (#846)
164
+ * @returns The batch → one typed context per check
165
+ */
166
+ export function buildReadyContexts(rowType, field, ctxType, driverType, rowById, draftDecode, lookupDriver, loose = false) {
167
+ const entryDraft = SheetDraftEntryTypeFor(rowType, field);
168
+ const base = buildDraftBase(rowType, field, rowById);
169
+ const groupDraft = (loose && field !== undefined ? SheetDraftGroupTypeFor(rowType.cases.group, field) : entryDraft);
170
+ const rowDraft = (loose ? SheetDraftTypeFor(rowType.cases.row) : entryDraft);
171
+ return East.function([SheetReadyBatchType], ArrayType(ctxType), ($, batch) => {
172
+ const readBase = $.const(base);
173
+ const decEntry = $.const(draftDecode);
174
+ const lookup = $.const(lookupDriver);
175
+ // The rows, once for every check — as a wire context builds its `entries`.
176
+ const entries = $.const(batch.rows.map((_$, wire, index) => decEntry(wire, readBase(batch.drafts, wire.id, batch.rowsOffset.add(index)), some(wire))), ArrayType(entryDraft));
177
+ if (field === undefined || !loose) {
178
+ return batch.checks.map(($, check) => {
179
+ const driver = $.const(check.driver.match({ none: () => none, some: (_$, key) => lookup(key) }), OptionType(driverType));
180
+ if (field === undefined) {
181
+ return $.const({ rowIndex: check.index, row: entries.get(check.index), rows: entries, group: none, partial: batch.partial, driver, today: batch.today }, ctxType);
182
+ }
183
+ const group = $.const(entries.get(check.index), entryDraft);
184
+ const lines = $.const(group[field]);
185
+ const line = $.const(check.line.unwrap("some"));
186
+ return $.const({ rowIndex: line, row: lines.get(line), rows: lines, group: some(group), groups: entries, partial: batch.partial, driver, today: batch.today }, ctxType);
187
+ });
188
+ }
189
+ // Loose rows between the groups (#846): the groups and the loose rows,
190
+ // and each entry's index among the loose rows — counted once for the batch.
191
+ const asEntries = entries;
192
+ const groups = $.const(asEntries.filterMap((_$, entry) => entry.match({ group: (_$2, g) => some(g), row: () => none })), ArrayType(groupDraft));
193
+ const looseRows = $.const(asEntries.filterMap((_$, entry) => entry.match({ row: (_$2, r) => some(r), group: () => none })), ArrayType(rowDraft));
194
+ const looseAt = $.let([], ArrayType(IntegerType));
195
+ const counted = $.let(0n);
196
+ $.for(batch.rows, ($2, wire) => {
197
+ $2(looseAt.pushLast(counted));
198
+ $2.if(wire.band.hasTag("none"), ($3) => { $3.assign(counted, counted.add(1n)); });
199
+ });
200
+ return batch.checks.map(($, check) => {
201
+ const driver = $.const(check.driver.match({ none: () => none, some: (_$, key) => lookup(key) }), OptionType(driverType));
202
+ return check.line.match({
203
+ none: ($2) => {
204
+ const at = $2.const(looseAt.get(check.index));
205
+ return $2.const({ rowIndex: at, row: looseRows.get(at), rows: looseRows, group: none, groups, partial: batch.partial, driver, today: batch.today }, ctxType);
206
+ },
207
+ some: ($2, line) => {
208
+ const group = $2.const(asEntries.get(check.index).unwrap("group"), groupDraft);
209
+ const lines = $2.const(group[field]);
210
+ return $2.const({ rowIndex: line, row: lines.get(line), rows: lines, group: some(group), groups, partial: batch.partial, driver, today: batch.today }, ctxType);
211
+ },
212
+ });
213
+ });
214
+ });
215
+ }
216
+ //# sourceMappingURL=context-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-bridge.js","sourceRoot":"","sources":["../../../src/sheet/context-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
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
+ /** Typed draft decoding without domain defaults. @packageDocumentation */
6
+ import { FunctionType, OptionType, StringType, StructType, type EastType, type ExprType, type VariantType } from "@elaraai/east";
7
+ import { SheetRowType } from "./types.js";
8
+ import { SheetCellsType, type SheetColumnMeta } from "./bridge.js";
9
+ import type { SheetRegisterValue } from "./registers.js";
10
+ type DraftRecord = StructType;
11
+ type DecodeRow = ExprType<FunctionType<[StringType, typeof SheetCellsType, OptionType<DraftRecord>], DraftRecord>>;
12
+ /** Compile a row's cells into field drafts, preserving every undeclared field. */
13
+ export declare function buildDraftRowDecoder(rowType: StructType, metas: readonly SheetColumnMeta[], registers: Record<string, SheetRegisterValue>, idField?: string): DecodeRow;
14
+ /**
15
+ * Decode a group against its previous draft and wire row. Child lookup uses
16
+ * the previous wire keys to find draft array positions; keys never become
17
+ * fields or identifiers in the author's child schema.
18
+ */
19
+ export declare function buildDraftGroupDecoder(groupType: StructType, field: string, metas: readonly SheetColumnMeta[], rowDecoder: DecodeRow, registers: Record<string, SheetRegisterValue>, idField?: string): ExprType<FunctionType<[SheetRowType, OptionType<StructType>, OptionType<SheetRowType>], StructType>>;
20
+ /**
21
+ * Decode one entry of a source with LOOSE rows between its groups (#846) —
22
+ * `Sheet.Types.Entry(P, "lines")`: a wire row with a band is a group, decoded
23
+ * against its entry's group arm; one without is a loose row, its cells over
24
+ * its row arm, its id field written from the wire row's id.
25
+ *
26
+ * @param entryType - The entry variant
27
+ * @param field - The group's lines field
28
+ * @param groupDecoder - A group's cells and lines over its draft ({@link buildDraftGroupDecoder})
29
+ * @param looseDecoder - A loose row's cells over its draft ({@link buildDraftRowDecoder} with the id field)
30
+ * @returns The wire row, its previous draft entry and wire row → its draft entry
31
+ */
32
+ export declare function buildDraftEntryDecoder(entryType: VariantType<{
33
+ group: StructType;
34
+ row: StructType;
35
+ }>, field: string, groupDecoder: ReturnType<typeof buildDraftGroupDecoder>, looseDecoder: DecodeRow): ExprType<FunctionType<[SheetRowType, OptionType<EastType>, OptionType<SheetRowType>], EastType>>;
36
+ export {};
37
+ //# sourceMappingURL=draft-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-bridge.d.ts","sourceRoot":"","sources":["../../../src/sheet/draft-bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,0EAA0E;AAC1E,OAAO,EAAmB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAA0C,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAA2B,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACnN,OAAO,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAInE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,KAAK,WAAW,GAAG,UAAU,CAAC;AAC9B,KAAK,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,OAAO,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAEnH,kFAAkF;AAClF,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7C,OAAO,CAAC,EAAE,MAAM,GACjB,SAAS,CA8DX;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAClC,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7C,OAAO,CAAC,EAAE,MAAM,GACjB,QAAQ,CAAC,YAAY,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAiCtG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAClC,SAAS,EAAE,WAAW,CAAC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC,EAC9D,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,EACvD,YAAY,EAAE,SAAS,GACxB,QAAQ,CAAC,YAAY,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAmBlG"}
@@ -0,0 +1,153 @@
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
+ /** Typed draft decoding without domain defaults. @packageDocumentation */
6
+ import { ArrayType, East, FunctionType, OptionType, StringType, StructType, none, some, variant } from "@elaraai/east";
7
+ import { SheetCellType, SheetRowType } from "./types.js";
8
+ import { SheetCellsType } from "./bridge.js";
9
+ import { SheetDraftFieldType, SheetDraftTypeFor } from "./transactions.js";
10
+ import { SheetDraftEntryTypeFor, SheetDraftGroupTypeFor } from "./drafts.js";
11
+ import { printLink, printLinkWith, SheetRegisterMembersType } from "./link.js";
12
+ /** Compile a row's cells into field drafts, preserving every undeclared field. */
13
+ export function buildDraftRowDecoder(rowType, metas, registers, idField) {
14
+ const draftType = SheetDraftTypeFor(rowType);
15
+ const fields = Object.entries(rowType.fields);
16
+ const decoders = new Map();
17
+ for (const [field, fieldType] of fields) {
18
+ const meta = metas.find(m => m.field === field || m.otherField === field);
19
+ if (!meta || !meta.editable || meta.derived !== undefined)
20
+ continue;
21
+ const draftField = SheetDraftFieldType(fieldType);
22
+ const own = meta.field === field;
23
+ const decoder = East.function([SheetCellType, draftField], draftField, ($, cell, base) => {
24
+ const members = meta.register !== undefined && registers[meta.register] !== undefined
25
+ ? $.const(registers[meta.register], SheetRegisterMembersType) : undefined;
26
+ const missing = $.const(variant("missing", null), draftField);
27
+ $.if(cell.hasTag("Null"), ($) => {
28
+ // An existing explicit none remains a value, while a fresh
29
+ // untouched optional field remains missing until normalization.
30
+ if (meta.optional) {
31
+ $.if(base.hasTag("value"), ($) => {
32
+ const value = base.unwrap("value");
33
+ $.if(value.hasTag("none"), ($) => { $.return(base); });
34
+ });
35
+ }
36
+ $.return(missing);
37
+ });
38
+ return cell.match({
39
+ Invalid: ($, text) => $.const(variant("invalid", text), draftField),
40
+ [meta.cellTag]: ($, payload) => {
41
+ let value = payload;
42
+ if (meta.form === "array") {
43
+ const link = payload;
44
+ const half = own ? meta.ownHalf : meta.ownHalf === "from" ? "to" : "from";
45
+ value = half === "from" ? link.from : link.to;
46
+ }
47
+ else if (meta.form === "string") {
48
+ const link = payload;
49
+ value = meta.config.store === "canonical" && members !== undefined ? printLinkWith(link, members) : printLink(link);
50
+ }
51
+ return $.const(variant("value", meta.optional ? some(value) : value), draftField);
52
+ },
53
+ }, ($) => $.const(variant("invalid", cell.hasTag("String").ifElse(() => cell.unwrap("String"), () => East.print(cell))), draftField));
54
+ });
55
+ decoders.set(field, decoder);
56
+ }
57
+ return East.function([StringType, SheetCellsType, OptionType(draftType)], draftType, ($, id, cells, base) => {
58
+ const out = {};
59
+ for (const [field, fieldType] of fields) {
60
+ const draftField = SheetDraftFieldType(fieldType);
61
+ if (field === idField) {
62
+ out[field] = $.const(variant("value", id), draftField);
63
+ continue;
64
+ }
65
+ const previous = $.const(base.match({
66
+ none: ($) => $.const(variant("missing", null), draftField),
67
+ some: (_$, record) => record[field],
68
+ }));
69
+ const fn = decoders.get(field);
70
+ const meta = metas.find(m => m.field === field || m.otherField === field);
71
+ if (!fn || !meta) {
72
+ out[field] = previous;
73
+ continue;
74
+ }
75
+ const decode = $.const(fn);
76
+ out[field] = cells.tryGet(meta.key).match({ none: () => previous, some: (_$, cell) => decode(cell, previous) });
77
+ }
78
+ return $.const(out, draftType);
79
+ });
80
+ }
81
+ /**
82
+ * Decode a group against its previous draft and wire row. Child lookup uses
83
+ * the previous wire keys to find draft array positions; keys never become
84
+ * fields or identifiers in the author's child schema.
85
+ */
86
+ export function buildDraftGroupDecoder(groupType, field, metas, rowDecoder, registers, idField) {
87
+ const childType = groupType.fields[field];
88
+ if (childType?.type !== "Array" || childType.value.type !== "Struct")
89
+ throw new Error("Sheet groups require Array child rows");
90
+ const rowDraft = SheetDraftTypeFor(childType.value);
91
+ const draftType = SheetDraftGroupTypeFor(groupType, field);
92
+ const ownType = StructType(Object.fromEntries(Object.entries(groupType.fields).filter(([key]) => key !== field)));
93
+ const ownDraft = SheetDraftTypeFor(ownType);
94
+ const ownDecoder = buildDraftRowDecoder(ownType, metas, registers, idField);
95
+ return East.function([SheetRowType, OptionType(draftType), OptionType(SheetRowType)], draftType, ($, row, base, previous) => {
96
+ const decodeOwn = $.const(ownDecoder);
97
+ const decodeRow = $.const(rowDecoder);
98
+ const ownBase = $.const(base.match({
99
+ none: ($) => $.const(none, OptionType(ownDraft)),
100
+ some: ($, group) => $.const(some($.const(Object.fromEntries(Object.keys(ownType.fields).map(key => [key, group[key]])), ownDraft)), OptionType(ownDraft)),
101
+ }));
102
+ const own = $.const(decodeOwn(row.id, row.cells, ownBase));
103
+ const children = $.const(row.lines.map(($, line) => {
104
+ const old = $.const(previous.match({
105
+ none: ($) => $.const(none, OptionType(rowDraft)),
106
+ some: (_$, previousRow) => previousRow.lines.firstMap(($, candidate, index) => {
107
+ return candidate.key.equal(line.key).ifElse((_$) => base.match({
108
+ none: ($) => $.const(none, OptionType(rowDraft)),
109
+ some: ($, group) => {
110
+ const rows = group[field];
111
+ return index.less(rows.size()).ifElse(($) => $.const(some(rows.get(index)), OptionType(rowDraft)), ($) => $.const(none, OptionType(rowDraft)));
112
+ },
113
+ }), ($) => $.const(none, OptionType(rowDraft)));
114
+ }),
115
+ }));
116
+ return decodeRow("", line.cells, old);
117
+ }), ArrayType(rowDraft));
118
+ return $.const({ ...Object.fromEntries(Object.keys(ownType.fields).map(key => [key, own[key]])), [field]: children }, draftType);
119
+ });
120
+ }
121
+ /**
122
+ * Decode one entry of a source with LOOSE rows between its groups (#846) —
123
+ * `Sheet.Types.Entry(P, "lines")`: a wire row with a band is a group, decoded
124
+ * against its entry's group arm; one without is a loose row, its cells over
125
+ * its row arm, its id field written from the wire row's id.
126
+ *
127
+ * @param entryType - The entry variant
128
+ * @param field - The group's lines field
129
+ * @param groupDecoder - A group's cells and lines over its draft ({@link buildDraftGroupDecoder})
130
+ * @param looseDecoder - A loose row's cells over its draft ({@link buildDraftRowDecoder} with the id field)
131
+ * @returns The wire row, its previous draft entry and wire row → its draft entry
132
+ */
133
+ export function buildDraftEntryDecoder(entryType, field, groupDecoder, looseDecoder) {
134
+ const draftType = SheetDraftEntryTypeFor(entryType, field);
135
+ const groupDraft = SheetDraftGroupTypeFor(entryType.cases.group, field);
136
+ const rowDraft = SheetDraftTypeFor(entryType.cases.row);
137
+ return East.function([SheetRowType, OptionType(draftType), OptionType(SheetRowType)], draftType, ($, row, base, previous) => {
138
+ const decodeGroup = $.const(groupDecoder);
139
+ const decodeLoose = $.const(looseDecoder);
140
+ const prior = base;
141
+ return row.band.match({
142
+ some: ($2) => {
143
+ const own = $2.const(prior.match({ none: () => none, some: (_$3, entry) => entry.match({ group: (_$4, g) => some(g), row: () => none }) }), OptionType(groupDraft));
144
+ return $2.const(variant("group", decodeGroup(row, own, previous)), draftType);
145
+ },
146
+ none: ($2) => {
147
+ const own = $2.const(prior.match({ none: () => none, some: (_$3, entry) => entry.match({ row: (_$4, r) => some(r), group: () => none }) }), OptionType(rowDraft));
148
+ return $2.const(variant("row", decodeLoose(row.id, row.cells, own)), draftType);
149
+ },
150
+ });
151
+ });
152
+ }
153
+ //# sourceMappingURL=draft-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-bridge.js","sourceRoot":"","sources":["../../../src/sheet/draft-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
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 Sheet's names for the shared editing contract's draft entries
7
+ * (`contracts/editing.ts`, #879) — groups carrying their rows, loose rows
8
+ * beside them — and for the `onPatch` event. Each is the `Editing` namespace's
9
+ * own value: `Sheet.Types.Entry` is `Editing.Types.Entry`.
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ export { type EditingChildrenField as SheetChildrenField, type EditingChildOf as SheetChildOf, type EditingDraftGroupOf as SheetDraftGroupOf, type EditingDraftEntryOf as SheetDraftEntryOf, EditingDraftGroupTypeFor as SheetDraftGroupTypeFor, EditingEntryTypeFor as SheetEntryTypeFor, EditingDraftEntryTypeFor as SheetDraftEntryTypeFor, EditingPatchEventTypeFor as SheetPatchEventTypeFor, EditingDraftChangeTypeFor as SheetDraftChangeTypeFor, } from "@elaraai/east-ui/internal";
14
+ //# sourceMappingURL=drafts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drafts.d.ts","sourceRoot":"","sources":["../../../src/sheet/drafts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,OAAO,EACH,KAAK,oBAAoB,IAAI,kBAAkB,EAC/C,KAAK,cAAc,IAAI,YAAY,EACnC,KAAK,mBAAmB,IAAI,iBAAiB,EAC7C,KAAK,mBAAmB,IAAI,iBAAiB,EAC7C,wBAAwB,IAAI,sBAAsB,EAClD,mBAAmB,IAAI,iBAAiB,EACxC,wBAAwB,IAAI,sBAAsB,EAClD,wBAAwB,IAAI,sBAAsB,EAClD,yBAAyB,IAAI,uBAAuB,GACvD,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,14 @@
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 Sheet's names for the shared editing contract's draft entries
7
+ * (`contracts/editing.ts`, #879) — groups carrying their rows, loose rows
8
+ * beside them — and for the `onPatch` event. Each is the `Editing` namespace's
9
+ * own value: `Sheet.Types.Entry` is `Editing.Types.Entry`.
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ export { EditingDraftGroupTypeFor as SheetDraftGroupTypeFor, EditingEntryTypeFor as SheetEntryTypeFor, EditingDraftEntryTypeFor as SheetDraftEntryTypeFor, EditingPatchEventTypeFor as SheetPatchEventTypeFor, EditingDraftChangeTypeFor as SheetDraftChangeTypeFor, } from "@elaraai/east-ui/internal";
14
+ //# sourceMappingURL=drafts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drafts.js","sourceRoot":"","sources":["../../../src/sheet/drafts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,OAAO,EAKH,wBAAwB,IAAI,sBAAsB,EAClD,mBAAmB,IAAI,iBAAiB,EACxC,wBAAwB,IAAI,sBAAsB,EAClD,wBAAwB,IAAI,sBAAsB,EAClD,yBAAyB,IAAI,uBAAuB,GACvD,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,40 @@
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
+ /** Typed author callbacks behind a closed renderer transport. @packageDocumentation */
6
+ import { type ExprType } from "@elaraai/east";
7
+ import { type ResolvedRowSource } from "@elaraai/east-ui/internal";
8
+ import { type SheetBridge } from "./bridge.js";
9
+ import { SheetEditingType } from "./editing-types.js";
10
+ import { type SheetEditsInput } from "./edits.js";
11
+ /** Author editing behavior, erased only at the factory boundary. @internal */
12
+ export interface SheetEditingInput {
13
+ edits?: SheetEditsInput;
14
+ ready?: {
15
+ row?: unknown;
16
+ group?: unknown;
17
+ };
18
+ newRow?: unknown;
19
+ newGroup?: unknown;
20
+ onPatch?: unknown;
21
+ onApply?: unknown;
22
+ onUpdate?: unknown;
23
+ applyMode?: "batch" | "auto";
24
+ /** The Apply over the session's keyed batches as they come — e3-ui's record forms only (#1182). */
25
+ applyKeyed?: unknown;
26
+ /** The session's source identity, when e3-ui's record forms name it (#1182). */
27
+ sourceId?: unknown;
28
+ }
29
+ /**
30
+ * Captures source identity, codecs and authoritative callbacks for one Sheet.
31
+ * @internal
32
+ * @param source - Resolved rows, retaining the live handle when provided
33
+ * @param bridge - The typed column bridge
34
+ * @param idField - Positional entry identity field
35
+ * @param input - Author editing behavior
36
+ * @param driverColumn - The lookup field used to resolve a row readiness context
37
+ * @returns The closed transaction transport stored in the root IR
38
+ */
39
+ export declare function buildSheetEditing(source: ResolvedRowSource, bridge: SheetBridge, idField: string | undefined, input: SheetEditingInput, driverColumn?: string): ExprType<typeof SheetEditingType>;
40
+ //# sourceMappingURL=editing-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editing-bridge.d.ts","sourceRoot":"","sources":["../../../src/sheet/editing-bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,uFAAuF;AACvF,OAAO,EAG2B,KAAK,QAAQ,EAC9C,MAAM,eAAe,CAAC;AACvB,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAErF,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAsB,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAErE,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,mGAAmG;IACnG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAaD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CA0LjM"}