@elaraai/e3-ui 1.0.98 → 1.0.100

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 (381) hide show
  1. package/README.md +0 -2
  2. package/dist/src/allocation/adapters.d.ts +1 -1
  3. package/dist/src/allocation/adapters.js +1 -1
  4. package/dist/src/allocation/index.d.ts +46 -90
  5. package/dist/src/allocation/index.d.ts.map +1 -1
  6. package/dist/src/allocation/index.js +5 -5
  7. package/dist/src/allocation/index.js.map +1 -1
  8. package/dist/src/bind/data-indexed.d.ts +273 -51
  9. package/dist/src/bind/data-indexed.d.ts.map +1 -1
  10. package/dist/src/bind/data-indexed.js +233 -56
  11. package/dist/src/bind/data-indexed.js.map +1 -1
  12. package/dist/src/bind/data.d.ts +48 -9
  13. package/dist/src/bind/data.d.ts.map +1 -1
  14. package/dist/src/bind/data.js +48 -3
  15. package/dist/src/bind/data.js.map +1 -1
  16. package/dist/src/bind/record.d.ts +61 -24
  17. package/dist/src/bind/record.d.ts.map +1 -1
  18. package/dist/src/bind/record.js +17 -57
  19. package/dist/src/bind/record.js.map +1 -1
  20. package/dist/src/calendar/index.d.ts +55 -95
  21. package/dist/src/calendar/index.d.ts.map +1 -1
  22. package/dist/src/calendar/index.js +10 -6
  23. package/dist/src/calendar/index.js.map +1 -1
  24. package/dist/src/flowchart/index.d.ts +35 -31
  25. package/dist/src/flowchart/index.d.ts.map +1 -1
  26. package/dist/src/flowchart/index.js +35 -31
  27. package/dist/src/flowchart/index.js.map +1 -1
  28. package/dist/src/flowchart/library.d.ts +108 -84
  29. package/dist/src/flowchart/library.d.ts.map +1 -1
  30. package/dist/src/flowchart/library.js +108 -84
  31. package/dist/src/flowchart/library.js.map +1 -1
  32. package/dist/src/flowchart/payload.d.ts +39 -107
  33. package/dist/src/flowchart/payload.d.ts.map +1 -1
  34. package/dist/src/flowchart/payload.js +3 -3
  35. package/dist/src/flowchart/payload.js.map +1 -1
  36. package/dist/src/flowchart/values.d.ts +35 -31
  37. package/dist/src/flowchart/values.d.ts.map +1 -1
  38. package/dist/src/flowchart/values.js +35 -31
  39. package/dist/src/flowchart/values.js.map +1 -1
  40. package/dist/src/flowchart/window.d.ts +0 -12
  41. package/dist/src/flowchart/window.d.ts.map +1 -1
  42. package/dist/src/flowchart/window.js +3 -2
  43. package/dist/src/flowchart/window.js.map +1 -1
  44. package/dist/src/index.d.ts +2 -2
  45. package/dist/src/index.d.ts.map +1 -1
  46. package/dist/src/index.js +1 -1
  47. package/dist/src/index.js.map +1 -1
  48. package/dist/src/internal.d.ts +7 -3
  49. package/dist/src/internal.d.ts.map +1 -1
  50. package/dist/src/internal.js +12 -3
  51. package/dist/src/internal.js.map +1 -1
  52. package/dist/src/plan/assemble.d.ts +8 -0
  53. package/dist/src/plan/assemble.d.ts.map +1 -1
  54. package/dist/src/plan/assemble.js +1 -1
  55. package/dist/src/plan/assemble.js.map +1 -1
  56. package/dist/src/plan/builders.d.ts +1518 -2
  57. package/dist/src/plan/builders.d.ts.map +1 -1
  58. package/dist/src/plan/builders.js +248 -114
  59. package/dist/src/plan/builders.js.map +1 -1
  60. package/dist/src/plan/event-rows.d.ts +9 -14
  61. package/dist/src/plan/event-rows.d.ts.map +1 -1
  62. package/dist/src/plan/event-rows.js +6 -46
  63. package/dist/src/plan/event-rows.js.map +1 -1
  64. package/dist/src/plan/factories.d.ts +72 -4
  65. package/dist/src/plan/factories.d.ts.map +1 -1
  66. package/dist/src/plan/factories.js +147 -1
  67. package/dist/src/plan/factories.js.map +1 -1
  68. package/dist/src/plan/index.d.ts +147 -125
  69. package/dist/src/plan/index.d.ts.map +1 -1
  70. package/dist/src/plan/index.js +135 -122
  71. package/dist/src/plan/index.js.map +1 -1
  72. package/dist/src/plan/ir.d.ts +1105 -44
  73. package/dist/src/plan/ir.d.ts.map +1 -1
  74. package/dist/src/plan/ir.js +5 -0
  75. package/dist/src/plan/ir.js.map +1 -1
  76. package/dist/src/plan/library.d.ts +65 -42
  77. package/dist/src/plan/library.d.ts.map +1 -1
  78. package/dist/src/plan/library.js +65 -42
  79. package/dist/src/plan/library.js.map +1 -1
  80. package/dist/src/plan/nested-checks.d.ts +146 -0
  81. package/dist/src/plan/nested-checks.d.ts.map +1 -0
  82. package/dist/src/plan/nested-checks.js +468 -0
  83. package/dist/src/plan/nested-checks.js.map +1 -0
  84. package/dist/src/plan/nested-patch.d.ts +35 -0
  85. package/dist/src/plan/nested-patch.d.ts.map +1 -0
  86. package/dist/src/plan/nested-patch.js +143 -0
  87. package/dist/src/plan/nested-patch.js.map +1 -0
  88. package/dist/src/plan/nested-read.d.ts +3250 -0
  89. package/dist/src/plan/nested-read.d.ts.map +1 -0
  90. package/dist/src/plan/nested-read.js +163 -0
  91. package/dist/src/plan/nested-read.js.map +1 -0
  92. package/dist/src/plan/nested.d.ts +280 -0
  93. package/dist/src/plan/nested.d.ts.map +1 -0
  94. package/dist/src/plan/nested.js +6 -0
  95. package/dist/src/plan/nested.js.map +1 -0
  96. package/dist/src/plan/ordered-source.d.ts +1030 -1
  97. package/dist/src/plan/ordered-source.d.ts.map +1 -1
  98. package/dist/src/plan/ordered-source.js +48 -6
  99. package/dist/src/plan/ordered-source.js.map +1 -1
  100. package/dist/src/plan/over.d.ts +111 -75
  101. package/dist/src/plan/over.d.ts.map +1 -1
  102. package/dist/src/plan/over.js +111 -75
  103. package/dist/src/plan/over.js.map +1 -1
  104. package/dist/src/plan/pick.d.ts +15 -3
  105. package/dist/src/plan/pick.d.ts.map +1 -1
  106. package/dist/src/plan/pick.js +75 -36
  107. package/dist/src/plan/pick.js.map +1 -1
  108. package/dist/src/plan/plan.d.ts +2719 -558
  109. package/dist/src/plan/plan.d.ts.map +1 -1
  110. package/dist/src/plan/plan.js +14 -2
  111. package/dist/src/plan/plan.js.map +1 -1
  112. package/dist/src/plan/reads.d.ts +421 -0
  113. package/dist/src/plan/reads.d.ts.map +1 -0
  114. package/dist/src/plan/reads.js +143 -0
  115. package/dist/src/plan/reads.js.map +1 -0
  116. package/dist/src/plan/refs.d.ts +111 -75
  117. package/dist/src/plan/refs.d.ts.map +1 -1
  118. package/dist/src/plan/refs.js +111 -75
  119. package/dist/src/plan/refs.js.map +1 -1
  120. package/dist/src/plan/root.d.ts +10 -5
  121. package/dist/src/plan/root.d.ts.map +1 -1
  122. package/dist/src/plan/root.js +76 -13
  123. package/dist/src/plan/root.js.map +1 -1
  124. package/dist/src/plan/series.d.ts +5140 -4331
  125. package/dist/src/plan/series.d.ts.map +1 -1
  126. package/dist/src/plan/series.js +1026 -264
  127. package/dist/src/plan/series.js.map +1 -1
  128. package/dist/src/plan/shade.d.ts +981 -0
  129. package/dist/src/plan/shade.d.ts.map +1 -0
  130. package/dist/src/plan/shade.js +60 -0
  131. package/dist/src/plan/shade.js.map +1 -0
  132. package/dist/src/plan/types.d.ts +178 -18
  133. package/dist/src/plan/types.d.ts.map +1 -1
  134. package/dist/src/plan/types.js +69 -19
  135. package/dist/src/plan/types.js.map +1 -1
  136. package/dist/src/query/builder.d.ts +3 -3
  137. package/dist/src/query/builder.d.ts.map +1 -1
  138. package/dist/src/query/builder.js +1 -1
  139. package/dist/src/query/library.d.ts +3 -3
  140. package/dist/src/query/library.d.ts.map +1 -1
  141. package/dist/src/query/library.js +1 -1
  142. package/dist/src/query/queries.d.ts +2 -2
  143. package/dist/src/query/queries.js +1 -1
  144. package/dist/src/query/saved.d.ts +8 -4
  145. package/dist/src/query/saved.d.ts.map +1 -1
  146. package/dist/src/query/saved.js +8 -4
  147. package/dist/src/query/saved.js.map +1 -1
  148. package/dist/src/query/types.d.ts +8 -3
  149. package/dist/src/query/types.d.ts.map +1 -1
  150. package/dist/src/query/types.js +8 -3
  151. package/dist/src/query/types.js.map +1 -1
  152. package/dist/src/roster/index.d.ts +47 -91
  153. package/dist/src/roster/index.d.ts.map +1 -1
  154. package/dist/src/roster/index.js +6 -6
  155. package/dist/src/roster/index.js.map +1 -1
  156. package/dist/src/roster/targets.d.ts +8 -4
  157. package/dist/src/roster/targets.d.ts.map +1 -1
  158. package/dist/src/roster/targets.js +9 -5
  159. package/dist/src/roster/targets.js.map +1 -1
  160. package/dist/src/schedule/cell-checks.js +3 -3
  161. package/dist/src/schedule/cell-checks.js.map +1 -1
  162. package/dist/src/schedule/days.d.ts +1 -1
  163. package/dist/src/schedule/days.js +1 -1
  164. package/dist/src/schedule/events.d.ts +10 -6
  165. package/dist/src/schedule/events.d.ts.map +1 -1
  166. package/dist/src/schedule/events.js +252 -228
  167. package/dist/src/schedule/events.js.map +1 -1
  168. package/dist/src/schedule/patch.d.ts +1 -1
  169. package/dist/src/schedule/patch.js +1 -1
  170. package/dist/src/schedule/periods.d.ts +8 -4
  171. package/dist/src/schedule/periods.d.ts.map +1 -1
  172. package/dist/src/schedule/periods.js +1 -1
  173. package/dist/src/schedule/periods.js.map +1 -1
  174. package/dist/src/schedule/record-window.d.ts +38 -58
  175. package/dist/src/schedule/record-window.d.ts.map +1 -1
  176. package/dist/src/schedule/record-window.js +15 -16
  177. package/dist/src/schedule/record-window.js.map +1 -1
  178. package/dist/src/schedule/resources.d.ts +1 -1
  179. package/dist/src/schedule/session.d.ts +1 -1
  180. package/dist/src/schedule/session.js +1 -1
  181. package/dist/src/schedule/types.d.ts +29 -1
  182. package/dist/src/schedule/types.d.ts.map +1 -1
  183. package/dist/src/schedule/types.js +16 -1
  184. package/dist/src/schedule/types.js.map +1 -1
  185. package/dist/src/schematic/index.d.ts +19 -9
  186. package/dist/src/schematic/index.d.ts.map +1 -1
  187. package/dist/src/schematic/index.js +19 -9
  188. package/dist/src/schematic/index.js.map +1 -1
  189. package/dist/src/schematic/kinds.d.ts +4 -4
  190. package/dist/src/schematic/kinds.js +9 -9
  191. package/dist/src/schematic/kinds.js.map +1 -1
  192. package/dist/src/schematic/payload.d.ts +38 -88
  193. package/dist/src/schematic/payload.d.ts.map +1 -1
  194. package/dist/src/schematic/payload.js +4 -4
  195. package/dist/src/schematic/payload.js.map +1 -1
  196. package/dist/src/schematic/window.d.ts +8 -7
  197. package/dist/src/schematic/window.d.ts.map +1 -1
  198. package/dist/src/schematic/window.js +22 -19
  199. package/dist/src/schematic/window.js.map +1 -1
  200. package/dist/src/sheet/bridge.d.ts +19 -0
  201. package/dist/src/sheet/bridge.d.ts.map +1 -1
  202. package/dist/src/sheet/bridge.js +28 -21
  203. package/dist/src/sheet/bridge.js.map +1 -1
  204. package/dist/src/sheet/index.d.ts +66 -46
  205. package/dist/src/sheet/index.d.ts.map +1 -1
  206. package/dist/src/sheet/index.js +66 -46
  207. package/dist/src/sheet/index.js.map +1 -1
  208. package/dist/src/sheet/library.d.ts +13 -8
  209. package/dist/src/sheet/library.d.ts.map +1 -1
  210. package/dist/src/sheet/library.js +13 -8
  211. package/dist/src/sheet/library.js.map +1 -1
  212. package/dist/src/sheet/record.d.ts +1 -1
  213. package/dist/src/sheet/record.js +2 -2
  214. package/dist/src/sheet/record.js.map +1 -1
  215. package/dist/src/sheet/registers.d.ts +152 -128
  216. package/dist/src/sheet/registers.d.ts.map +1 -1
  217. package/dist/src/sheet/registers.js +152 -128
  218. package/dist/src/sheet/registers.js.map +1 -1
  219. package/dist/src/sheet/root.d.ts +4 -1
  220. package/dist/src/sheet/root.d.ts.map +1 -1
  221. package/dist/src/sheet/root.js +15 -3
  222. package/dist/src/sheet/root.js.map +1 -1
  223. package/dist/src/sheet/sheet.d.ts +39 -113
  224. package/dist/src/sheet/sheet.d.ts.map +1 -1
  225. package/dist/src/sheet/sheet.js +7 -5
  226. package/dist/src/sheet/sheet.js.map +1 -1
  227. package/dist/src/sheet/sub-rows.d.ts +106 -76
  228. package/dist/src/sheet/sub-rows.d.ts.map +1 -1
  229. package/dist/src/sheet/sub-rows.js +106 -76
  230. package/dist/src/sheet/sub-rows.js.map +1 -1
  231. package/dist/src/sheet/types.d.ts +19 -62
  232. package/dist/src/sheet/types.d.ts.map +1 -1
  233. package/dist/src/studio/builder.d.ts +3 -153
  234. package/dist/src/studio/builder.d.ts.map +1 -1
  235. package/dist/src/studio/builder.js +1 -1
  236. package/dist/src/studio/canvas.d.ts +5 -4
  237. package/dist/src/studio/canvas.d.ts.map +1 -1
  238. package/dist/src/studio/canvas.js +8 -7
  239. package/dist/src/studio/canvas.js.map +1 -1
  240. package/dist/src/studio/component.d.ts +30 -20
  241. package/dist/src/studio/component.d.ts.map +1 -1
  242. package/dist/src/studio/component.js +26 -61
  243. package/dist/src/studio/component.js.map +1 -1
  244. package/dist/src/studio/index.d.ts +2 -2
  245. package/dist/src/studio/index.d.ts.map +1 -1
  246. package/dist/src/studio/index.js +1 -1
  247. package/dist/src/studio/index.js.map +1 -1
  248. package/dist/src/studio/inspector.d.ts +10 -39
  249. package/dist/src/studio/inspector.d.ts.map +1 -1
  250. package/dist/src/studio/inspector.js +11 -31
  251. package/dist/src/studio/inspector.js.map +1 -1
  252. package/dist/src/studio/library.d.ts +3 -169
  253. package/dist/src/studio/library.d.ts.map +1 -1
  254. package/dist/src/studio/library.js +1 -1
  255. package/dist/src/studio/page.d.ts +0 -8
  256. package/dist/src/studio/page.d.ts.map +1 -1
  257. package/dist/src/studio/pages.d.ts +17 -591
  258. package/dist/src/studio/pages.d.ts.map +1 -1
  259. package/dist/src/studio/pages.js +17 -44
  260. package/dist/src/studio/pages.js.map +1 -1
  261. package/dist/src/studio/palette.d.ts +2 -7
  262. package/dist/src/studio/palette.d.ts.map +1 -1
  263. package/dist/src/studio/palette.js +4 -5
  264. package/dist/src/studio/palette.js.map +1 -1
  265. package/dist/src/studio/publish.d.ts +8 -18
  266. package/dist/src/studio/publish.d.ts.map +1 -1
  267. package/dist/src/studio/publish.js +10 -36
  268. package/dist/src/studio/publish.js.map +1 -1
  269. package/dist/src/utils/derive.d.ts +12 -12
  270. package/dist/src/utils/derive.d.ts.map +1 -1
  271. package/dist/src/utils/derive.js +5 -2
  272. package/dist/src/utils/derive.js.map +1 -1
  273. package/dist/src/utils/ordered-source.d.ts.map +1 -1
  274. package/dist/src/utils/ordered-source.js +14 -5
  275. package/dist/src/utils/ordered-source.js.map +1 -1
  276. package/dist/test/allocation/allocation.examples.d.ts +1900 -1598
  277. package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
  278. package/dist/test/allocation/allocation.examples.js +179 -89
  279. package/dist/test/allocation/allocation.examples.js.map +1 -1
  280. package/dist/test/allocation/optimise.examples.d.ts.map +1 -1
  281. package/dist/test/allocation/optimise.examples.js +7 -7
  282. package/dist/test/allocation/optimise.examples.js.map +1 -1
  283. package/dist/test/bind/data/data.examples.d.ts +1057 -903
  284. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  285. package/dist/test/bind/data/data.examples.js +260 -204
  286. package/dist/test/bind/data/data.examples.js.map +1 -1
  287. package/dist/test/bind/record/record.examples.d.ts +457 -426
  288. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  289. package/dist/test/bind/record/record.examples.js +41 -21
  290. package/dist/test/bind/record/record.examples.js.map +1 -1
  291. package/dist/test/calendar/calendar-records.examples.d.ts +162 -170
  292. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
  293. package/dist/test/calendar/calendar-records.examples.js +20 -12
  294. package/dist/test/calendar/calendar-records.examples.js.map +1 -1
  295. package/dist/test/calendar/calendar-windows.examples.d.ts.map +1 -1
  296. package/dist/test/calendar/calendar-windows.examples.js +12 -12
  297. package/dist/test/calendar/calendar-windows.examples.js.map +1 -1
  298. package/dist/test/calendar/calendar.examples.d.ts +1172 -901
  299. package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
  300. package/dist/test/calendar/calendar.examples.js +211 -124
  301. package/dist/test/calendar/calendar.examples.js.map +1 -1
  302. package/dist/test/calendar/optimise.examples.js +2 -2
  303. package/dist/test/calendar/optimise.examples.js.map +1 -1
  304. package/dist/test/examples-package.d.ts +6 -9
  305. package/dist/test/examples-package.d.ts.map +1 -1
  306. package/dist/test/examples-package.js +11 -32
  307. package/dist/test/examples-package.js.map +1 -1
  308. package/dist/test/flowchart/flowchart.examples.d.ts +3841 -2820
  309. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
  310. package/dist/test/flowchart/flowchart.examples.js +211 -121
  311. package/dist/test/flowchart/flowchart.examples.js.map +1 -1
  312. package/dist/test/plan/optimise.examples.js +2 -2
  313. package/dist/test/plan/optimise.examples.js.map +1 -1
  314. package/dist/test/plan/plan-events.examples.d.ts +4055 -3263
  315. package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
  316. package/dist/test/plan/plan-events.examples.js +492 -319
  317. package/dist/test/plan/plan-events.examples.js.map +1 -1
  318. package/dist/test/plan/plan-nested.examples.d.ts +1829 -0
  319. package/dist/test/plan/plan-nested.examples.d.ts.map +1 -0
  320. package/dist/test/plan/plan-nested.examples.js +321 -0
  321. package/dist/test/plan/plan-nested.examples.js.map +1 -0
  322. package/dist/test/plan/plan-records.examples.d.ts +328 -362
  323. package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
  324. package/dist/test/plan/plan-records.examples.js +81 -57
  325. package/dist/test/plan/plan-records.examples.js.map +1 -1
  326. package/dist/test/plan/plan-windows.examples.d.ts +1756 -1398
  327. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
  328. package/dist/test/plan/plan-windows.examples.js +161 -128
  329. package/dist/test/plan/plan-windows.examples.js.map +1 -1
  330. package/dist/test/plan/plan.examples.d.ts +2238 -5712
  331. package/dist/test/plan/plan.examples.d.ts.map +1 -1
  332. package/dist/test/plan/plan.examples.js +839 -968
  333. package/dist/test/plan/plan.examples.js.map +1 -1
  334. package/dist/test/query/query.examples.d.ts +5221 -3005
  335. package/dist/test/query/query.examples.d.ts.map +1 -1
  336. package/dist/test/query/query.examples.js +169 -118
  337. package/dist/test/query/query.examples.js.map +1 -1
  338. package/dist/test/roster/optimise.examples.d.ts.map +1 -1
  339. package/dist/test/roster/optimise.examples.js +7 -7
  340. package/dist/test/roster/optimise.examples.js.map +1 -1
  341. package/dist/test/roster/roster-records.examples.d.ts +364 -392
  342. package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
  343. package/dist/test/roster/roster-records.examples.js +40 -26
  344. package/dist/test/roster/roster-records.examples.js.map +1 -1
  345. package/dist/test/roster/roster.examples.d.ts +4605 -4308
  346. package/dist/test/roster/roster.examples.d.ts.map +1 -1
  347. package/dist/test/roster/roster.examples.js +212 -113
  348. package/dist/test/roster/roster.examples.js.map +1 -1
  349. package/dist/test/schedule/schedule.examples.d.ts +2646 -2471
  350. package/dist/test/schedule/schedule.examples.d.ts.map +1 -1
  351. package/dist/test/schedule/schedule.examples.js +144 -88
  352. package/dist/test/schedule/schedule.examples.js.map +1 -1
  353. package/dist/test/schematic/schematic-records.examples.d.ts +286 -276
  354. package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -1
  355. package/dist/test/schematic/schematic-records.examples.js +52 -38
  356. package/dist/test/schematic/schematic-records.examples.js.map +1 -1
  357. package/dist/test/schematic/schematic.examples.d.ts +1842 -1491
  358. package/dist/test/schematic/schematic.examples.d.ts.map +1 -1
  359. package/dist/test/schematic/schematic.examples.js +240 -134
  360. package/dist/test/schematic/schematic.examples.js.map +1 -1
  361. package/dist/test/sheet/optimise.examples.d.ts +102 -95
  362. package/dist/test/sheet/optimise.examples.d.ts.map +1 -1
  363. package/dist/test/sheet/optimise.examples.js +7 -3
  364. package/dist/test/sheet/optimise.examples.js.map +1 -1
  365. package/dist/test/sheet/sheet-records.examples.d.ts +175 -214
  366. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
  367. package/dist/test/sheet/sheet-records.examples.js +29 -17
  368. package/dist/test/sheet/sheet-records.examples.js.map +1 -1
  369. package/dist/test/sheet/sheet.examples.d.ts +3642 -3353
  370. package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
  371. package/dist/test/sheet/sheet.examples.js +389 -282
  372. package/dist/test/sheet/sheet.examples.js.map +1 -1
  373. package/dist/test/studio/component.examples.js +2 -2
  374. package/dist/test/studio/component.examples.js.map +1 -1
  375. package/dist/test/studio/page.examples.js +6 -6
  376. package/dist/test/studio/page.examples.js.map +1 -1
  377. package/dist/test/studio/studio.examples.d.ts +2329 -873
  378. package/dist/test/studio/studio.examples.d.ts.map +1 -1
  379. package/dist/test/studio/studio.examples.js +155 -107
  380. package/dist/test/studio/studio.examples.js.map +1 -1
  381. package/package.json +15 -11
@@ -3,18 +3,47 @@
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
5
  /** Field-indexed record bindings for Slice; all reads use the paged runtime. */
6
- import { BooleanType, East, StructType, VariantType, NullType, StringType, IntegerType, ArrayType, OptionType, FunctionType, DictType, SetType, isSubtype, isTypeEqual, printType, } from "@elaraai/east";
6
+ import { BlobType, BooleanType, East, Expr, StructType, VariantType, NullType, StringType, IntegerType, ArrayType, OptionType, FunctionType, DictType, SetType, isSubtype, isTypeEqual, none, printType, some, variant, } from "@elaraai/east";
7
+ // The browser-safe entry: the components' runtime imports this module (#99).
8
+ import { builtIndex, indexMaintenance } from "@elaraai/e3/browser";
7
9
  import { TreePathType } from "@elaraai/e3-types";
8
10
  import { SeekQueryType, SeekRangeType } from "@elaraai/east-ui";
9
- import { AREA_FIELD, IndexedEntryType, IndexedSourceType, TILE_FIELD, areaMarkerFields, tileMarkerFields, } from "@elaraai/east-ui/internal";
11
+ import { IndexedEntryType, IndexedSourceType, areaMarkerFields, intervalMarkerFields, tileMarkerFields, } from "@elaraai/east-ui/internal";
12
+ /**
13
+ * A binding's nested part's type (#1434, #1435): its nested series index's
14
+ * name, its tile and its summary tile, each a struct whose one field is it,
15
+ * and how each collection the index files is declared, as structure
16
+ * ({@link NestedMarker}); none where the binding lists none, its parts then the
17
+ * empty struct, as a summary tile is where the index keeps no totals.
18
+ *
19
+ * @typeParam C - The collections' marker type
20
+ * @typeParam I - The index's name, as a struct of one field
21
+ * @typeParam T - Its tile, as a struct of one field
22
+ * @typeParam U - Its summary tile, as a struct of one field, or the empty struct
23
+ * @param collections - The collections' marker type
24
+ * @param index - The index's name
25
+ * @param tile - Its tile
26
+ * @param summary - Its summary tile
27
+ * @returns The part's type
28
+ */
29
+ export function NestedPartType(collections, index, tile, summary) {
30
+ return OptionType(StructType({ index, tile, summary, collections }));
31
+ }
10
32
  /**
11
33
  * New platform contract for indexed record bindings. The previously released
12
- * paged calls and their return types remain unchanged.
34
+ * paged calls and their return types remain unchanged. `NestedValue` is what
35
+ * the listed nested series index's entries carry, as its definition declares
36
+ * it (#1435), or Null where none is listed: the runtime reads its cells by it,
37
+ * and the handle's type never names it. `Maintenance` is each listed nested
38
+ * series and summary index's maintenance for one row (#1437), which the
39
+ * handle carries, as it does the listed nested series index's fill of a page
40
+ * (#1438), the last argument.
13
41
  * @internal
14
42
  */
15
- export const bindIndexedPagedPlatformFn = East.genericPlatform("data_bind_indexed", ["K", "R", "P", "Indexes", "IK"], [TreePathType, "Indexes", BooleanType, FunctionType([StringType, "K", "R"], ArrayType(StringType)), StringType], IndexedSourceType("K", "R", "P", "Indexes", "IK"), { optional: true });
16
- const descriptor = [TreePathType, "Indexes", BooleanType];
17
- const arguments_ = ["K", "R", "P", "Indexes", "IK"];
43
+ export const bindIndexedPagedPlatformFn = East.genericPlatform("data_bind_indexed", ["K", "R", "P", "Indexes", "IK", "N", "NestedValue", "Maintenance"], [TreePathType, "Indexes", "N", BooleanType, FunctionType([StringType, "K", "R"], ArrayType(StringType)), StringType, "Maintenance",
44
+ OptionType(FunctionType([DictType("K", "R"), BlobType], DictType("K", "R")))], IndexedSourceType("K", "R", "P", "Indexes", "IK", "N", "Maintenance"), { optional: true });
45
+ const descriptor = [TreePathType, "Indexes", "N", BooleanType];
46
+ const arguments_ = ["K", "R", "P", "Indexes", "IK", "N", "NestedValue"];
18
47
  /** Serializable primitives backing the indexed handle; all reuse paged reads. @internal */
19
48
  export const DataIndexedPrimitives = {
20
49
  page: East.genericPlatform("data_indexed_page", arguments_, [...descriptor, StringType, IntegerType, IntegerType], OptionType(ArrayType(IndexedEntryType("K", "R", "P", "IK"))), { optional: true }),
@@ -64,16 +93,21 @@ export function bindDataIndexed(record, options) {
64
93
  }
65
94
  if (options.indexes.length === 0)
66
95
  throw new Error("Data.bindPaged: indexes must list at least one field index");
96
+ for (const index of options.indexes) {
97
+ if (index.record.name !== record.name || !isSubtype(index.record.type, type) || !isSubtype(type, index.record.type)) {
98
+ throw new Error(`Data.bindPaged: index '${index.name}' belongs to a different record`);
99
+ }
100
+ }
101
+ // Beside a record's nested series index, its other indexes carry each row without its collections (#1434, #1435).
102
+ const nested = listedNested(record, options);
103
+ const rail = options.indexes.filter((index) => index.nested === undefined);
67
104
  const names = new Set();
68
105
  const fields = {};
69
106
  const metadata = {};
70
107
  const keyTypes = { primary: type.key };
71
- const projection = bindingProjection(options.indexes);
108
+ const projection = nested === undefined ? bindingProjection(options.indexes) : type.value;
72
109
  let singleEntryIndex = false;
73
- for (const index of options.indexes) {
74
- if (index.record.name !== record.name || !isSubtype(index.record.type, type) || !isSubtype(type, index.record.type)) {
75
- throw new Error(`Data.bindPaged: index '${index.name}' belongs to a different record`);
76
- }
110
+ for (const index of rail) {
77
111
  const computed = index.on === undefined;
78
112
  if (computed && index.keyType.type === "Struct" && Object.keys(index.keyType.fields).length === 0) {
79
113
  throw new Error(`Data.bindPaged: computed index '${index.name}' needs at least one key field for Slice`);
@@ -81,69 +115,212 @@ export function bindDataIndexed(record, options) {
81
115
  if (computed && index.multi && index.keyType.type === "Struct" && Object.keys(index.keyType.fields).length !== 1) {
82
116
  throw new Error(`Data.bindPaged: computed keys index '${index.name}' needs one named field for Slice so exact membership cannot duplicate records; use { index } for an arbitrary compound fan-out`);
83
117
  }
84
- if (index.on?.length === 0)
118
+ // A generated index may be led by no field: its key's `on` is then empty (#1432).
119
+ const generated = index.interval !== undefined || index.area !== undefined || index.series !== undefined || index.summary !== undefined;
120
+ if (!generated && index.on?.length === 0)
85
121
  throw new Error(`Data.bindPaged: index '${index.name}' needs at least one field`);
86
122
  if (names.has(index.name))
87
123
  throw new Error(`Data.bindPaged: repeated index '${index.name}'`);
88
124
  names.add(index.name);
125
+ // An index's metadata (#1432): the row fields it is led by, and its
126
+ // kind's one case — `plain`, or a generated index's, a struct naming
127
+ // the kind's own parts by role: an interval's start and end, an area
128
+ // index's box and its cell, a series or a summary index's key, times
129
+ // and tile (#1039). Slice.bindRecord reads them back; e3's parts are
130
+ // never a field's name.
131
+ const tiling = index.series ?? index.summary;
132
+ const [kind, parts] = index.interval !== undefined
133
+ ? ["interval", intervalMarkerFields({ from: index.interval.from, to: index.interval.to })]
134
+ : index.area !== undefined
135
+ ? ["area", areaMarkerFields({ x: index.area.x, y: index.area.y,
136
+ ...(index.area.width !== undefined && index.area.height !== undefined && { width: index.area.width, height: index.area.height }),
137
+ centre: index.area.at === "centre", cell: index.area.cell })]
138
+ : tiling !== undefined
139
+ ? [index.summary !== undefined ? "summary" : "series",
140
+ tileMarkerFields({ key: tiling.key, from: tiling.from, to: tiling.to, tile: tiling.tile, summary: index.summary !== undefined })]
141
+ : ["plain", undefined];
142
+ const kindType = VariantType({ [kind]: parts === undefined ? NullType : StructType(Object.fromEntries(parts.map(name => [name, NullType]))) });
143
+ const kindValue = variant(kind, parts === undefined ? null : Object.fromEntries(parts.map(name => [name, null])));
89
144
  if (computed) {
90
145
  const entries = index.keyType.type === "Struct"
91
146
  ? Object.entries(index.keyType.fields) : [[index.name, index.keyType]];
92
- fields[index.name] = StructType(Object.fromEntries(entries.map(([field, type]) => [field, index.multi ? SetType(type) : ArrayType(type)])));
93
- metadata[index.name] = Object.fromEntries(entries.map(([field]) => [field, index.multi ? new Set() : []]));
147
+ fields[index.name] = StructType({ fields: StructType(Object.fromEntries(entries.map(([field, type]) => [field, index.multi ? SetType(type) : ArrayType(type)]))), kind: kindType });
148
+ metadata[index.name] = { fields: Object.fromEntries(entries.map(([field]) => [field, index.multi ? new Set() : []])), kind: kindValue };
94
149
  }
95
150
  else {
96
- // A generated index marks a field: an interval's start with a struct
97
- // naming its end, an area index's `__area` with one naming its box's
98
- // fields and its cell, and a series or a summary index's `__tile`
99
- // with one naming its key, its times and its tile (#1039), which
100
- // Slice.bindRecord reads back.
101
- const tiling = index.series ?? index.summary;
102
- const marked = index.on.map(field => {
103
- const names = index.area !== undefined && field === AREA_FIELD
104
- ? areaMarkerFields({ x: index.area.x, y: index.area.y,
105
- ...(index.area.width !== undefined && index.area.height !== undefined && { width: index.area.width, height: index.area.height }),
106
- centre: index.area.at === "centre", cell: index.area.cell })
107
- : tiling !== undefined && field === TILE_FIELD
108
- ? tileMarkerFields({ key: tiling.key, from: tiling.from, to: tiling.to, tile: tiling.tile, summary: index.summary !== undefined })
109
- : index.interval?.from === field ? [index.interval.to] : undefined;
110
- return [field, names];
111
- });
112
- fields[index.name] = StructType(Object.fromEntries(marked.map(([field, names]) => [field,
113
- names === undefined ? NullType : StructType(Object.fromEntries(names.map(name => [name, NullType])))])));
114
- metadata[index.name] = Object.fromEntries(marked.map(([field, names]) => [field,
115
- names === undefined ? null : Object.fromEntries(names.map(name => [name, null]))]));
151
+ fields[index.name] = StructType({ fields: StructType(Object.fromEntries(index.on.map(field => [field, NullType]))), kind: kindType });
152
+ metadata[index.name] = { fields: Object.fromEntries(index.on.map(field => [field, null])), kind: kindValue };
116
153
  }
117
154
  keyTypes[index.name] = index.keyType;
118
155
  singleEntryIndex ||= !index.multi;
119
156
  }
120
- if (options.join === false && !singleEntryIndex) {
157
+ if (nested !== undefined)
158
+ keyTypes[nested.name] = nested.keyType;
159
+ const joined = nested === undefined && options.join !== false;
160
+ if (!joined && !singleEntryIndex) {
161
+ if (nested !== undefined) {
162
+ throw new Error(`Data.bindPaged: '${nested.name}' is listed, and no index listed beside it pages the rows of '${record.name}' — a page reads each ` +
163
+ `row through an index carrying it without its collections: list one, index.on([field, …]) among the record's indexes`);
164
+ }
121
165
  throw new Error("Data.bindPaged with join: false needs an index without Set fields for its unfiltered view; add a one-entry-per-row field index or use join: true");
122
166
  }
123
167
  const indexFields = StructType(fields);
124
- // Reuse the SDK's exact maintained-key functions. A Save checks individual
125
- // primary identities with indexed seeks; it never scans a narrowed run.
126
- const keyFunctions = new Map(options.indexes.map(index => {
127
- const keys = East.function([type.key, type.value], ArrayType(StringType), ($, key, row) => {
128
- if (index.summary !== undefined) {
129
- // A summary's key function is a row's contributions (#1039): the keys of the totals it adds to.
130
- const fn = $.const(index.keyFn);
131
- return fn(key, row).keys().toArray((_$, ik) => East.print(ik));
132
- }
133
- if (index.multi) {
134
- const fn = $.const(index.keyFn);
135
- return fn(key, row).toArray((_$, ik) => East.print(ik));
136
- }
137
- const fn = $.const(index.keyFn);
138
- return East.value([East.print(fn(key, row))], ArrayType(StringType));
139
- });
140
- return [index.name, keys];
141
- }));
168
+ // The nested index's part (#1435): its declaration as structure, its tile and its summary tile.
169
+ const declared = nested?.nested;
170
+ const marker = declared === undefined ? { type: StructType({}), value: {} } : nestedMarker(declared.declaration);
171
+ const one = (name) => markerStruct(name === undefined ? [] : [[name, LEAF]]);
172
+ const index = one(nested?.name);
173
+ const tile = one(declared?.tile);
174
+ const summary = one(declared?.summary);
175
+ const nestedType = NestedPartType(marker.type, index.type, tile.type, summary.type);
176
+ const nestedValue = declared === undefined ? none
177
+ : some({ index: index.value, tile: tile.value, summary: summary.value, collections: marker.value });
178
+ // Each listed nested series and summary index's maintenance for one row (#1437): e3's own, the function its commit
179
+ // runs, so a page previews a drafted row's Save with it. A reader of the record's other indexes reads them as saved.
180
+ const maintained = options.indexes
181
+ .filter((index) => index.nested !== undefined || index.summary !== undefined)
182
+ .map((index) => [index.name, indexMaintenance(record, builtIndex(record, index))]);
183
+ const maintenanceType = OptionType(StructType(Object.fromEntries(maintained.map(([name, maintain]) => [name, Expr.type(maintain)]))));
184
+ // The listed nested series index's fill of a page (#1438): its lean rows filled with the entries read of it, by e3's own program.
185
+ const fillType = OptionType(FunctionType([DictType(type.key, type.value), BlobType], DictType(type.key, type.value)));
186
+ const rowPatchType = East.patchesFor(type.value).patchType;
142
187
  const keyFunctionsType = DictType(StringType, FunctionType([type.key, type.value], ArrayType(StringType)));
143
- const entryKeys = East.function([StringType, type.key, type.value], ArrayType(StringType), ($, index, key, row) => {
188
+ // Built in a block of its own, which holds each index's maintenance once: a Save reads the keys a nested series or a
189
+ // summary index files a row under through it, rather than through the index's own key function written out again.
190
+ return Expr.block(($) => {
191
+ const held = new Map(maintained.map(([name, maintain]) => [name, $.const(maintain)]));
192
+ // Reuse the SDK's exact maintained-key functions. A Save checks individual
193
+ // primary identities with indexed seeks; it never scans a narrowed run.
194
+ const keyFunctions = new Map(options.indexes.map(index => {
195
+ const maintain = held.get(index.name);
196
+ const keys = East.function([type.key, type.value], ArrayType(StringType), ($2, key, row) => {
197
+ if (maintain !== undefined) {
198
+ // A summary's maintenance moves a row's contributions (#1039), a nested series index's its entries (#1434):
199
+ // a row come gives an `add` or an `insert` under each key it files under.
200
+ const ops = $2.const(maintain(key, East.value(none, OptionType(type.value)), East.value(some(row), OptionType(type.value)), East.value(none, OptionType(rowPatchType))));
201
+ return ops.keys().toArray((_$3, entry) => East.print(entry.ik));
202
+ }
203
+ if (index.multi) {
204
+ const fn = $2.const(index.keyFn);
205
+ return fn(key, row).toArray((_$3, ik) => East.print(ik));
206
+ }
207
+ const fn = $2.const(index.keyFn);
208
+ return East.value([East.print(fn(key, row))], ArrayType(StringType));
209
+ });
210
+ return [index.name, keys];
211
+ }));
144
212
  const keys = $.const(keyFunctions, keyFunctionsType);
145
- return keys.get(index)(key, row);
213
+ const entryKeys = East.function([StringType, type.key, type.value], ArrayType(StringType), (_$2, name, key, row) => keys.get(name)(key, row));
214
+ return bindIndexedPagedPlatformFn([type.key, type.value, projection, indexFields, VariantType(keyTypes), nestedType, nested?.valueType ?? NullType, maintenanceType], East.value(record.path, TreePathType), East.value(metadata, indexFields), East.value(nestedValue, nestedType), joined, entryKeys, record.name, East.value(held.size === 0 ? none : some(Object.fromEntries(held)), maintenanceType), East.value(nested === undefined ? none : some(nestedPageFill(type.key, type.value, nested)), fillType));
146
215
  });
147
- return bindIndexedPagedPlatformFn([type.key, type.value, projection, indexFields, VariantType(keyTypes)], East.value(record.path, TreePathType), East.value(metadata, indexFields), options.join !== false, entryKeys, record.name);
216
+ }
217
+ /**
218
+ * The nested series index a binding lists (#1435), where its record has one.
219
+ * Beside it, each of the record's other indexes carries the row without its
220
+ * collections (e3's `builtIndex`), but one with a value of its own, which
221
+ * carries its own and may be bound apart. Refused, in its words: an index
222
+ * carrying the lean row listed without it, and beside it `join: true` or an
223
+ * index carrying a value of its own.
224
+ *
225
+ * @param record - The record bound
226
+ * @param options - The binding's indexes and join
227
+ * @returns The nested series index listed; `undefined` where none is, the record declaring none, or every index listed carrying its own
228
+ * @throws {Error} Naming the index, the record and what to write
229
+ */
230
+ function listedNested(record, options) {
231
+ const declared = Object.values(record.indexes).find((index) => index.nested !== undefined);
232
+ if (declared === undefined)
233
+ return undefined;
234
+ // e3 builds an index as declared where it carries its own — a value of its own, a summary's totals, the nested
235
+ // index's entries — and otherwise to carry the lean row.
236
+ const lean = (index) => builtIndex(record, index) !== index;
237
+ const nestedListed = options.indexes.filter((index) => index.nested !== undefined);
238
+ if (nestedListed.length > 1)
239
+ throw new Error(`Data.bindPaged: repeated index '${nestedListed[1].name}'`);
240
+ const listed = nestedListed[0];
241
+ if (listed === undefined) {
242
+ const carrying = options.indexes.find(lean);
243
+ if (carrying === undefined)
244
+ return undefined;
245
+ throw new Error(`Data.bindPaged: record '${record.name}' has a nested series index, '${declared.name}', and '${carrying.name}' carries ` +
246
+ `each row without the collections it declares — list '${declared.name}' beside it`);
247
+ }
248
+ if (options.join === true) {
249
+ throw new Error(`Data.bindPaged: '${listed.name}' is listed, so the other indexes carry each row without its collections and a page joins ` +
250
+ "none — leave join out: a join would read each row whole");
251
+ }
252
+ const valued = options.indexes.find((index) => index.nested === undefined && index.summary === undefined && !lean(index));
253
+ if (valued !== undefined) {
254
+ throw new Error(`Data.bindPaged: '${valued.name}' carries a value of its own beside '${listed.name}', whose record's other indexes carry each ` +
255
+ "row without its collections — leave its value out, or bind it apart");
256
+ }
257
+ return listed;
258
+ }
259
+ /**
260
+ * A nested series index's fill of a page (#1438): `(Dict<K, R>, Blob) → Dict<K,
261
+ * R>`, the Blob a beast2 Array of the index's entries, `{ ik, value }`; each
262
+ * lean row filled with the items read of it, by e3's own program
263
+ * (`nested.fill`).
264
+ *
265
+ * @param keyType - The record's key type
266
+ * @param rowType - The record's row type
267
+ * @param index - Its nested series index
268
+ * @returns The fill
269
+ */
270
+ function nestedPageFill(keyType, rowType, index) {
271
+ const entry = StructType({ ik: index.keyType, value: index.valueType });
272
+ const rows = DictType(keyType, rowType);
273
+ const fillRow = index.nested.fill;
274
+ return East.function([rows, BlobType], rows, ($, page, items) => {
275
+ const fill = $.const(fillRow);
276
+ const read = $.let(items.decodeBeast(ArrayType(entry), "v2"));
277
+ const byRow = $.let(read.groupToArrays((_$, filed) => East.field(East.field(filed, "ik"), "row", keyType)));
278
+ return page.map((_$, row, key) => fill(key, row, byRow.get(key, () => East.value([], ArrayType(entry)))));
279
+ });
280
+ }
281
+ /** A marker of no value: a leaf of the structure. */
282
+ const LEAF = { type: NullType, value: null };
283
+ /** A struct of markers, each by its name. */
284
+ function markerStruct(parts) {
285
+ return { type: StructType(Object.fromEntries(parts.map(([name, part]) => [name, part.type]))), value: Object.fromEntries(parts.map(([name, part]) => [name, part.value])) };
286
+ }
287
+ /**
288
+ * A nested series index's collections as a binding carries them
289
+ * ({@link NestedMarker}), from the declaration the definition holds: each
290
+ * collection by its field, what it holds, its times and its rollups as
291
+ * structure.
292
+ *
293
+ * @param declaration - The definition's declaration (e3-types' `RecordNestedDeclType`)
294
+ * @returns The marker's type and value
295
+ */
296
+ function nestedMarker(declaration) {
297
+ return markerStruct([...declaration].map(([field, declared]) => [field, collectionMarker(declared)]));
298
+ }
299
+ /** One collection's declaration as a binding carries it ({@link CollectionMarker}). */
300
+ function collectionMarker(declared) {
301
+ const named = (field) => markerStruct([[field, LEAF]]);
302
+ switch (declared.type) {
303
+ case "items": {
304
+ const { times, rollup } = declared.value;
305
+ const parts = times.type === "span"
306
+ ? [["from", named(times.value.from)], ["to", named(times.value.to)]]
307
+ : [["at", named(times.value)]];
308
+ if (rollup)
309
+ parts.push(["rollup", LEAF]);
310
+ return markerStruct([["items", markerStruct(parts)]]);
311
+ }
312
+ case "values": {
313
+ // Each fold a struct of its aggregates, in the order declared.
314
+ const folds = new Map();
315
+ for (const { fold, aggregate } of declared.value.rollups)
316
+ folds.set(fold.type, [...(folds.get(fold.type) ?? []), aggregate.type]);
317
+ return markerStruct([["values", folds.size === 0 ? LEAF : markerStruct([["rollup",
318
+ markerStruct([...folds].map(([fold, aggregates]) => [fold, markerStruct(aggregates.map((aggregate) => [aggregate, LEAF]))]))]])]]);
319
+ }
320
+ case "rows":
321
+ return markerStruct([["rows", nestedMarker(declared.value)]]);
322
+ case "recursive":
323
+ return markerStruct([["recursive", LEAF]]);
324
+ }
148
325
  }
149
326
  //# sourceMappingURL=data-indexed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-indexed.js","sourceRoot":"","sources":["../../../src/bind/data-indexed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-indexed.js","sourceRoot":"","sources":["../../../src/bind/data-indexed.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  * @packageDocumentation
9
9
  */
10
10
  import { ArrayType, NullType, BooleanType, FunctionType, IntegerType, StringType, StructType, VariantType, OptionType, type DictType, type EastType, type ExprType } from '@elaraai/east';
11
+ import { type TreePath } from '@elaraai/e3-types';
11
12
  import type { DatasetDef, RecordDef, RecordIndexDef, TaskDef } from '@elaraai/e3';
12
13
  import { type BindPagedIndexesOptions, type FieldIndexes, type IndexedPagedValue } from './data-indexed.js';
13
14
  /**
@@ -429,18 +430,43 @@ export type IndexWindowType<T extends EastType, IK extends EastType, P extends E
429
430
  value: P;
430
431
  row: OptionType<V>;
431
432
  }>> : never;
433
+ /**
434
+ * A record's index names, as its declaration carries them.
435
+ *
436
+ * @typeParam R - The record
437
+ */
438
+ export type IndexNameOf<R> = R extends {
439
+ readonly indexes: infer I;
440
+ } ? keyof I & string : never;
441
+ /**
442
+ * The indexes a list of a record's index names names, in its order: each the
443
+ * declaration the record holds under the name.
444
+ *
445
+ * @typeParam R - The record
446
+ * @typeParam N - The names
447
+ */
448
+ export type IndexesNamed<R, N extends readonly string[]> = R extends {
449
+ readonly indexes: infer I;
450
+ } ? {
451
+ readonly [K in keyof N]: N[K] extends keyof I ? I[N[K]] : never;
452
+ } : never;
453
+ /** The window a record's index serves, by the index's name: its key and what its entries carry, from its declaration. */
454
+ type IndexWindowOf<R extends {
455
+ readonly type: EastType;
456
+ readonly indexes: object;
457
+ }, N> = R['indexes'] extends infer I ? N extends keyof I ? I[N] extends RecordIndexDef<string, EastType, infer IK, infer P> ? IndexWindowType<R['type'], IK, P> : never : never : never;
432
458
  /** Reading a record through one of its secondary indexes. */
433
- export interface BindPagedIndexOptions<T extends EastType, IK extends EastType, P extends EastType> {
459
+ export interface BindPagedIndexOptions<N extends string> {
434
460
  /**
435
- * The index to read through, as the `e3.recordIndex` declaration.
461
+ * The index to read through, by the name the record declares it under.
436
462
  *
437
463
  * @remarks
438
- * The declaration rather than the name: the window's type — the index key
439
- * and the covering projection — comes from it, so a component binding an
440
- * index gets the row shape it will actually render, checked at compile
441
- * time. Only the NAME travels in the IR.
464
+ * The window's type — the index key and the covering projection — comes
465
+ * from the declaration the record holds under the name, so a component
466
+ * binding an index gets the row shape it will actually render, checked at
467
+ * compile time. Only the name travels in the IR.
442
468
  */
443
- index: RecordIndexDef<string, T, IK, P>;
469
+ index: N;
444
470
  /**
445
471
  * Read each entry's row from the record too.
446
472
  *
@@ -617,6 +643,19 @@ export declare const DataPagedPrimitives: {
617
643
  * whole: it is declared in the UI task's manifest under `pages`, and follows
618
644
  * its dataset by content hash alone, which is the point of binding it paged.
619
645
  *
646
+ * A record bound with its indexes, by the names it declares them under —
647
+ * `Data.bindPaged(record, { indexes: ["by_status", "by_due"] })` — pages its
648
+ * rows in each index's order (#1378, #1432). Beside a record's nested series
649
+ * index (`index.nested({ collections, tile, summary })` among its indexes,
650
+ * #1434), e3 builds each of its other indexes to carry the
651
+ * row without the collections the nested index declares, and a binding lists
652
+ * the nested index with them (#1435): it pages those lean rows, never joining
653
+ * a row whole (`join: true` is refused, and so is an index carrying a value of
654
+ * its own, which is bound apart), reads a row whole by its key, and carries
655
+ * how each collection is declared — what it holds, its times and its rollups
656
+ * — in its type, for a Plan's series to be held to. The nested index's own
657
+ * entries are items, totals and subtotals, read a cell at a time, never paged.
658
+ *
620
659
  * @example
621
660
  * ```ts
622
661
  * import { ArrayType, DictType, East, StringType, variant } from "@elaraai/east";
@@ -643,9 +682,9 @@ export declare const DataPagedPrimitives: {
643
682
  * });
644
683
  * ```
645
684
  */
646
- declare function bindDataPaged<T extends EastType, const I extends FieldIndexes<T>>(record: RecordDef<T>, options: BindPagedIndexesOptions<T, I>): IndexedPagedValue<T, I>;
685
+ declare function bindDataPaged<R extends RecordDef<EastType, TreePath, object, object>, const N extends readonly IndexNameOf<R>[]>(record: R, options: BindPagedIndexesOptions<N>): IndexedPagedValue<R['type'], Extract<IndexesNamed<R, N>, FieldIndexes<R['type']>>>;
647
686
  declare function bindDataPaged<T extends EastType>(dataset: DatasetDef<T> | TaskDef<T>): PagedValue<T>;
648
- declare function bindDataPaged<T extends EastType, IK extends EastType, P extends EastType>(record: RecordDef<T>, options: BindPagedIndexOptions<T, IK, P>): PagedValue<IndexWindowType<T, IK, P>>;
687
+ declare function bindDataPaged<R extends RecordDef<EastType, TreePath, object, object>, const N extends IndexNameOf<R>>(record: R, options: BindPagedIndexOptions<N>): PagedValue<IndexWindowOf<R, N>>;
649
688
  /**
650
689
  * The Data namespace — reactive dataset binding for e3 UI tasks.
651
690
  *
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/bind/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/bind/data.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ import { TreePathType, DatasetStatusType, indexWindowType } from '@elaraai/e3-ty
14
14
  // so Plan / Table / Sheet recognise it by its East type without either package
15
15
  // importing the other's data layer. Paged data is bound: this is its producer.
16
16
  import { SeekQueryType, SeekRangeType } from '@elaraai/east-ui';
17
+ // The browser-safe entry: the components' runtime imports this module (#99).
18
+ import { builtIndex } from '@elaraai/e3/browser';
17
19
  import { bindDataIndexed } from './data-indexed.js';
18
20
  // ============================================================================
19
21
  // Mode + binding descriptor types — shared with the Diff component.
@@ -375,7 +377,13 @@ function bindDataPaged(dataset, options) {
375
377
  if (options !== undefined && "indexes" in options) {
376
378
  if (!("recordKind" in dataset) || dataset.recordKind !== "record")
377
379
  throw new Error("Data.bindPaged with indexes requires an e3.record");
378
- return bindDataIndexed(dataset, options);
380
+ const rec = dataset;
381
+ if (!Array.isArray(options.indexes))
382
+ throw new Error(`Data.bindPaged: indexes lists the names of record '${rec.name}''s indexes — ${indexNames(rec)}`);
383
+ return bindDataIndexed(rec, {
384
+ indexes: options.indexes.map((name) => indexNamed(rec, name)),
385
+ ...(options.join !== undefined && { join: options.join }),
386
+ });
379
387
  }
380
388
  // A TaskDef binds its output dataset; a DatasetDef binds itself.
381
389
  const def = dataset.kind === 'task' ? dataset.output : dataset;
@@ -383,8 +391,8 @@ function bindDataPaged(dataset, options) {
383
391
  // construction — `deriveManifest` reads it back as a single literal
384
392
  // `Value` IR node, which `East.value(...)` forces.
385
393
  const sourceValue = East.value(def.path, TreePathType);
386
- const index = options?.index;
387
- if (index === undefined) {
394
+ const indexName = options?.index;
395
+ if (indexName === undefined) {
388
396
  return bindPagedPinnedPlatformFn([def.type], sourceValue, East.value(none, OptionType(StringType)), East.value(false, BooleanType));
389
397
  }
390
398
  // An index window is the index's OWN order: ORDERED rows, each carrying
@@ -397,8 +405,45 @@ function bindDataPaged(dataset, options) {
397
405
  if (record.type !== 'Dict') {
398
406
  throw new Error(`Data.bindPaged: an index reads a Dict record; this one holds ${record.type}`);
399
407
  }
408
+ if (!("recordKind" in dataset) || dataset.recordKind !== "record")
409
+ throw new Error("Data.bindPaged with an index requires an e3.record");
410
+ const rec = dataset;
411
+ const index = indexNamed(rec, indexName);
412
+ // Beside a record's nested series index, e3 builds its other indexes to carry each row without its collections
413
+ // (#1434): a window of one is read through a binding listing the nested index too, and the nested index's own
414
+ // entries a cell at a time (#1435).
415
+ const nested = Object.values(rec.indexes).find((declared) => declared.nested !== undefined);
416
+ if (nested !== undefined && index.nested !== undefined) {
417
+ throw new Error(`Data.bindPaged: '${index.name}' is a nested series index, whose entries are items, totals and subtotals: a reader reads its ` +
418
+ `cells — list it in Data.bindPaged(${rec.name}, { indexes })`);
419
+ }
420
+ if (nested !== undefined && builtIndex(rec, index) !== index) {
421
+ throw new Error(`Data.bindPaged: record '${rec.name}' has a nested series index, '${nested.name}', and '${index.name}' carries each row ` +
422
+ `without the collections it declares — bind them together: Data.bindPaged(${rec.name}, { indexes: ["${index.name}", "${nested.name}"] })`);
423
+ }
400
424
  return bindPagedPinnedPlatformFn([indexWindowType(record.key, index.keyType, index.valueType, record.value)], sourceValue, East.value(some(index.name), OptionType(StringType)), East.value(options?.join === true, BooleanType));
401
425
  }
426
+ /** A record's index names, for a refusal: each quoted, or none. */
427
+ function indexNames(rec) {
428
+ const names = Object.keys(rec.indexes);
429
+ return names.length === 0 ? "it declares none" : `it declares ${names.map((name) => `'${name}'`).join(", ")}`;
430
+ }
431
+ /**
432
+ * A record's index by the name it declares it under.
433
+ *
434
+ * @param rec - The record
435
+ * @param name - The index's name
436
+ * @returns The record's declaration of it
437
+ * @throws {Error} Naming the record and its indexes, for a name it does not declare, or an index given as other than a name
438
+ */
439
+ function indexNamed(rec, name) {
440
+ if (typeof name !== "string")
441
+ throw new Error(`Data.bindPaged: an index is given by its name, as record '${rec.name}' declares it — ${indexNames(rec)}`);
442
+ const index = rec.indexes[name];
443
+ if (index === undefined)
444
+ throw new Error(`Data.bindPaged: record '${rec.name}' declares no index '${name}' — ${indexNames(rec)}`);
445
+ return index;
446
+ }
402
447
  /**
403
448
  * The Data namespace — reactive dataset binding for e3 UI tasks.
404
449
  *