@elaraai/e3-ui 1.0.86 → 1.0.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/dist/src/bind/data-indexed.d.ts +159 -0
  2. package/dist/src/bind/data-indexed.d.ts.map +1 -0
  3. package/dist/src/bind/data-indexed.js +105 -0
  4. package/dist/src/bind/data-indexed.js.map +1 -0
  5. package/dist/src/bind/data.d.ts +5 -3
  6. package/dist/src/bind/data.d.ts.map +1 -1
  7. package/dist/src/bind/data.js +6 -0
  8. package/dist/src/bind/data.js.map +1 -1
  9. package/dist/src/bind/record.d.ts +34 -23
  10. package/dist/src/bind/record.d.ts.map +1 -1
  11. package/dist/src/bind/record.js +46 -19
  12. package/dist/src/bind/record.js.map +1 -1
  13. package/dist/src/calendar/index.d.ts +2923 -0
  14. package/dist/src/calendar/index.d.ts.map +1 -0
  15. package/dist/src/calendar/index.js +135 -0
  16. package/dist/src/calendar/index.js.map +1 -0
  17. package/dist/src/decision/queue.d.ts +3 -3
  18. package/dist/src/decision/queue.d.ts.map +1 -1
  19. package/dist/src/decision/queue.js +2 -2
  20. package/dist/src/decision/queue.js.map +1 -1
  21. package/dist/src/decision/types.d.ts +4 -0
  22. package/dist/src/decision/types.d.ts.map +1 -1
  23. package/dist/src/decision/types.js +4 -0
  24. package/dist/src/decision/types.js.map +1 -1
  25. package/dist/src/flowchart/canvas.d.ts +114 -0
  26. package/dist/src/flowchart/canvas.d.ts.map +1 -0
  27. package/dist/src/flowchart/canvas.js +84 -0
  28. package/dist/src/flowchart/canvas.js.map +1 -0
  29. package/dist/src/flowchart/flowchart.d.ts +79 -0
  30. package/dist/src/flowchart/flowchart.d.ts.map +1 -0
  31. package/dist/src/flowchart/flowchart.js +9 -0
  32. package/dist/src/flowchart/flowchart.js.map +1 -0
  33. package/dist/src/flowchart/index.d.ts +305 -0
  34. package/dist/src/flowchart/index.d.ts.map +1 -0
  35. package/dist/src/flowchart/index.js +267 -0
  36. package/dist/src/flowchart/index.js.map +1 -0
  37. package/dist/src/flowchart/library.d.ts +720 -0
  38. package/dist/src/flowchart/library.d.ts.map +1 -0
  39. package/dist/src/flowchart/library.js +611 -0
  40. package/dist/src/flowchart/library.js.map +1 -0
  41. package/dist/src/flowchart/over.d.ts +234 -0
  42. package/dist/src/flowchart/over.d.ts.map +1 -0
  43. package/dist/src/flowchart/over.js +220 -0
  44. package/dist/src/flowchart/over.js.map +1 -0
  45. package/dist/src/flowchart/patch.d.ts +64 -0
  46. package/dist/src/flowchart/patch.d.ts.map +1 -0
  47. package/dist/src/flowchart/patch.js +67 -0
  48. package/dist/src/flowchart/patch.js.map +1 -0
  49. package/dist/src/flowchart/payload.d.ts +8220 -0
  50. package/dist/src/flowchart/payload.d.ts.map +1 -0
  51. package/dist/src/flowchart/payload.js +521 -0
  52. package/dist/src/flowchart/payload.js.map +1 -0
  53. package/dist/src/flowchart/types.d.ts +393 -0
  54. package/dist/src/flowchart/types.d.ts.map +1 -0
  55. package/dist/src/flowchart/types.js +216 -0
  56. package/dist/src/flowchart/types.js.map +1 -0
  57. package/dist/src/flowchart/values.d.ts +267 -0
  58. package/dist/src/flowchart/values.d.ts.map +1 -0
  59. package/dist/src/flowchart/values.js +216 -0
  60. package/dist/src/flowchart/values.js.map +1 -0
  61. package/dist/src/flowchart/window.d.ts +521 -0
  62. package/dist/src/flowchart/window.d.ts.map +1 -0
  63. package/dist/src/flowchart/window.js +69 -0
  64. package/dist/src/flowchart/window.js.map +1 -0
  65. package/dist/src/index.d.ts +25 -1
  66. package/dist/src/index.d.ts.map +1 -1
  67. package/dist/src/index.js +48 -1
  68. package/dist/src/index.js.map +1 -1
  69. package/dist/src/internal.d.ts +35 -3
  70. package/dist/src/internal.d.ts.map +1 -1
  71. package/dist/src/internal.js +72 -3
  72. package/dist/src/internal.js.map +1 -1
  73. package/dist/src/plan/assemble.d.ts +2224 -0
  74. package/dist/src/plan/assemble.d.ts.map +1 -0
  75. package/dist/src/plan/assemble.js +210 -0
  76. package/dist/src/plan/assemble.js.map +1 -0
  77. package/dist/src/plan/builders.d.ts +790 -0
  78. package/dist/src/plan/builders.d.ts.map +1 -0
  79. package/dist/src/plan/builders.js +749 -0
  80. package/dist/src/plan/builders.js.map +1 -0
  81. package/dist/src/plan/event-rows.d.ts +2565 -0
  82. package/dist/src/plan/event-rows.d.ts.map +1 -0
  83. package/dist/src/plan/event-rows.js +689 -0
  84. package/dist/src/plan/event-rows.js.map +1 -0
  85. package/dist/src/plan/factories.d.ts +458 -0
  86. package/dist/src/plan/factories.d.ts.map +1 -0
  87. package/dist/src/plan/factories.js +484 -0
  88. package/dist/src/plan/factories.js.map +1 -0
  89. package/dist/src/plan/index.d.ts +672 -0
  90. package/dist/src/plan/index.d.ts.map +1 -0
  91. package/dist/src/plan/index.js +532 -0
  92. package/dist/src/plan/index.js.map +1 -0
  93. package/dist/src/plan/ir.d.ts +2594 -0
  94. package/dist/src/plan/ir.d.ts.map +1 -0
  95. package/dist/src/plan/ir.js +78 -0
  96. package/dist/src/plan/ir.js.map +1 -0
  97. package/dist/src/plan/library.d.ts +772 -0
  98. package/dist/src/plan/library.d.ts.map +1 -0
  99. package/dist/src/plan/library.js +424 -0
  100. package/dist/src/plan/library.js.map +1 -0
  101. package/dist/src/plan/ordered-source.d.ts +27 -0
  102. package/dist/src/plan/ordered-source.d.ts.map +1 -0
  103. package/dist/src/plan/ordered-source.js +48 -0
  104. package/dist/src/plan/ordered-source.js.map +1 -0
  105. package/dist/src/plan/over.d.ts +247 -0
  106. package/dist/src/plan/over.d.ts.map +1 -0
  107. package/dist/src/plan/over.js +266 -0
  108. package/dist/src/plan/over.js.map +1 -0
  109. package/dist/src/plan/pick.d.ts +78 -0
  110. package/dist/src/plan/pick.d.ts.map +1 -0
  111. package/dist/src/plan/pick.js +146 -0
  112. package/dist/src/plan/pick.js.map +1 -0
  113. package/dist/src/plan/plan.d.ts +11611 -0
  114. package/dist/src/plan/plan.d.ts.map +1 -0
  115. package/dist/src/plan/plan.js +428 -0
  116. package/dist/src/plan/plan.js.map +1 -0
  117. package/dist/src/plan/refs.d.ts +218 -0
  118. package/dist/src/plan/refs.d.ts.map +1 -0
  119. package/dist/src/plan/refs.js +226 -0
  120. package/dist/src/plan/refs.js.map +1 -0
  121. package/dist/src/plan/root.d.ts +290 -0
  122. package/dist/src/plan/root.d.ts.map +1 -0
  123. package/dist/src/plan/root.js +463 -0
  124. package/dist/src/plan/root.js.map +1 -0
  125. package/dist/src/plan/series.d.ts +13554 -0
  126. package/dist/src/plan/series.d.ts.map +1 -0
  127. package/dist/src/plan/series.js +1921 -0
  128. package/dist/src/plan/series.js.map +1 -0
  129. package/dist/src/plan/types.d.ts +12400 -0
  130. package/dist/src/plan/types.d.ts.map +1 -0
  131. package/dist/src/plan/types.js +1335 -0
  132. package/dist/src/plan/types.js.map +1 -0
  133. package/dist/src/roster/coverage.d.ts +240 -0
  134. package/dist/src/roster/coverage.d.ts.map +1 -0
  135. package/dist/src/roster/coverage.js +109 -0
  136. package/dist/src/roster/coverage.js.map +1 -0
  137. package/dist/src/roster/index.d.ts +4028 -0
  138. package/dist/src/roster/index.d.ts.map +1 -0
  139. package/dist/src/roster/index.js +115 -0
  140. package/dist/src/roster/index.js.map +1 -0
  141. package/dist/src/roster/library.d.ts +106 -0
  142. package/dist/src/roster/library.d.ts.map +1 -0
  143. package/dist/src/roster/library.js +78 -0
  144. package/dist/src/roster/library.js.map +1 -0
  145. package/dist/src/roster/people.d.ts +50 -0
  146. package/dist/src/roster/people.d.ts.map +1 -0
  147. package/dist/src/roster/people.js +32 -0
  148. package/dist/src/roster/people.js.map +1 -0
  149. package/dist/src/roster/rules.d.ts +275 -0
  150. package/dist/src/roster/rules.d.ts.map +1 -0
  151. package/dist/src/roster/rules.js +162 -0
  152. package/dist/src/roster/rules.js.map +1 -0
  153. package/dist/src/roster/types.d.ts +672 -0
  154. package/dist/src/roster/types.d.ts.map +1 -0
  155. package/dist/src/roster/types.js +248 -0
  156. package/dist/src/roster/types.js.map +1 -0
  157. package/dist/src/roster/visibility.d.ts +66 -0
  158. package/dist/src/roster/visibility.d.ts.map +1 -0
  159. package/dist/src/roster/visibility.js +25 -0
  160. package/dist/src/roster/visibility.js.map +1 -0
  161. package/dist/src/schedule/days.d.ts +54 -0
  162. package/dist/src/schedule/days.d.ts.map +1 -0
  163. package/dist/src/schedule/days.js +68 -0
  164. package/dist/src/schedule/days.js.map +1 -0
  165. package/dist/src/schedule/events.d.ts +433 -0
  166. package/dist/src/schedule/events.d.ts.map +1 -0
  167. package/dist/src/schedule/events.js +851 -0
  168. package/dist/src/schedule/events.js.map +1 -0
  169. package/dist/src/schedule/index.d.ts +150 -0
  170. package/dist/src/schedule/index.d.ts.map +1 -0
  171. package/dist/src/schedule/index.js +132 -0
  172. package/dist/src/schedule/index.js.map +1 -0
  173. package/dist/src/schedule/library.d.ts +70 -0
  174. package/dist/src/schedule/library.d.ts.map +1 -0
  175. package/dist/src/schedule/library.js +102 -0
  176. package/dist/src/schedule/library.js.map +1 -0
  177. package/dist/src/schedule/patch.d.ts +74 -0
  178. package/dist/src/schedule/patch.d.ts.map +1 -0
  179. package/dist/src/schedule/patch.js +68 -0
  180. package/dist/src/schedule/patch.js.map +1 -0
  181. package/dist/src/schedule/record-window.d.ts +189 -0
  182. package/dist/src/schedule/record-window.d.ts.map +1 -0
  183. package/dist/src/schedule/record-window.js +95 -0
  184. package/dist/src/schedule/record-window.js.map +1 -0
  185. package/dist/src/schedule/resources.d.ts +165 -0
  186. package/dist/src/schedule/resources.d.ts.map +1 -0
  187. package/dist/src/schedule/resources.js +234 -0
  188. package/dist/src/schedule/resources.js.map +1 -0
  189. package/dist/src/schedule/templates.d.ts +47 -0
  190. package/dist/src/schedule/templates.d.ts.map +1 -0
  191. package/dist/src/schedule/templates.js +61 -0
  192. package/dist/src/schedule/templates.js.map +1 -0
  193. package/dist/src/schedule/types.d.ts +1677 -0
  194. package/dist/src/schedule/types.d.ts.map +1 -0
  195. package/dist/src/schedule/types.js +374 -0
  196. package/dist/src/schedule/types.js.map +1 -0
  197. package/dist/src/schedule/window.d.ts +154 -0
  198. package/dist/src/schedule/window.d.ts.map +1 -0
  199. package/dist/src/schedule/window.js +363 -0
  200. package/dist/src/schedule/window.js.map +1 -0
  201. package/dist/src/sheet/bridge.d.ts +385 -0
  202. package/dist/src/sheet/bridge.d.ts.map +1 -0
  203. package/dist/src/sheet/bridge.js +809 -0
  204. package/dist/src/sheet/bridge.js.map +1 -0
  205. package/dist/src/sheet/columns.d.ts +410 -0
  206. package/dist/src/sheet/columns.d.ts.map +1 -0
  207. package/dist/src/sheet/columns.js +99 -0
  208. package/dist/src/sheet/columns.js.map +1 -0
  209. package/dist/src/sheet/context-bridge.d.ts +48 -0
  210. package/dist/src/sheet/context-bridge.d.ts.map +1 -0
  211. package/dist/src/sheet/context-bridge.js +216 -0
  212. package/dist/src/sheet/context-bridge.js.map +1 -0
  213. package/dist/src/sheet/draft-bridge.d.ts +37 -0
  214. package/dist/src/sheet/draft-bridge.d.ts.map +1 -0
  215. package/dist/src/sheet/draft-bridge.js +153 -0
  216. package/dist/src/sheet/draft-bridge.js.map +1 -0
  217. package/dist/src/sheet/drafts.d.ts +14 -0
  218. package/dist/src/sheet/drafts.d.ts.map +1 -0
  219. package/dist/src/sheet/drafts.js +14 -0
  220. package/dist/src/sheet/drafts.js.map +1 -0
  221. package/dist/src/sheet/editing-bridge.d.ts +40 -0
  222. package/dist/src/sheet/editing-bridge.d.ts.map +1 -0
  223. package/dist/src/sheet/editing-bridge.js +231 -0
  224. package/dist/src/sheet/editing-bridge.js.map +1 -0
  225. package/dist/src/sheet/editing-types.d.ts +268 -0
  226. package/dist/src/sheet/editing-types.d.ts.map +1 -0
  227. package/dist/src/sheet/editing-types.js +34 -0
  228. package/dist/src/sheet/editing-types.js.map +1 -0
  229. package/dist/src/sheet/edits.d.ts +37 -0
  230. package/dist/src/sheet/edits.d.ts.map +1 -0
  231. package/dist/src/sheet/edits.js +31 -0
  232. package/dist/src/sheet/edits.js.map +1 -0
  233. package/dist/src/sheet/fields.d.ts +693 -0
  234. package/dist/src/sheet/fields.d.ts.map +1 -0
  235. package/dist/src/sheet/fields.js +280 -0
  236. package/dist/src/sheet/fields.js.map +1 -0
  237. package/dist/src/sheet/group.d.ts +165 -0
  238. package/dist/src/sheet/group.d.ts.map +1 -0
  239. package/dist/src/sheet/group.js +52 -0
  240. package/dist/src/sheet/group.js.map +1 -0
  241. package/dist/src/sheet/index.d.ts +542 -0
  242. package/dist/src/sheet/index.d.ts.map +1 -0
  243. package/dist/src/sheet/index.js +387 -0
  244. package/dist/src/sheet/index.js.map +1 -0
  245. package/dist/src/sheet/library.d.ts +284 -0
  246. package/dist/src/sheet/library.d.ts.map +1 -0
  247. package/dist/src/sheet/library.js +259 -0
  248. package/dist/src/sheet/library.js.map +1 -0
  249. package/dist/src/sheet/link.d.ts +398 -0
  250. package/dist/src/sheet/link.d.ts.map +1 -0
  251. package/dist/src/sheet/link.js +228 -0
  252. package/dist/src/sheet/link.js.map +1 -0
  253. package/dist/src/sheet/record.d.ts +75 -0
  254. package/dist/src/sheet/record.d.ts.map +1 -0
  255. package/dist/src/sheet/record.js +128 -0
  256. package/dist/src/sheet/record.js.map +1 -0
  257. package/dist/src/sheet/registers.d.ts +681 -0
  258. package/dist/src/sheet/registers.d.ts.map +1 -0
  259. package/dist/src/sheet/registers.js +671 -0
  260. package/dist/src/sheet/registers.js.map +1 -0
  261. package/dist/src/sheet/root.d.ts +329 -0
  262. package/dist/src/sheet/root.d.ts.map +1 -0
  263. package/dist/src/sheet/root.js +511 -0
  264. package/dist/src/sheet/root.js.map +1 -0
  265. package/dist/src/sheet/seed-bridge.d.ts +14 -0
  266. package/dist/src/sheet/seed-bridge.d.ts.map +1 -0
  267. package/dist/src/sheet/seed-bridge.js +51 -0
  268. package/dist/src/sheet/seed-bridge.js.map +1 -0
  269. package/dist/src/sheet/sheet.d.ts +11819 -0
  270. package/dist/src/sheet/sheet.d.ts.map +1 -0
  271. package/dist/src/sheet/sheet.js +236 -0
  272. package/dist/src/sheet/sheet.js.map +1 -0
  273. package/dist/src/sheet/sub-rows.d.ts +299 -0
  274. package/dist/src/sheet/sub-rows.d.ts.map +1 -0
  275. package/dist/src/sheet/sub-rows.js +272 -0
  276. package/dist/src/sheet/sub-rows.js.map +1 -0
  277. package/dist/src/sheet/templates.d.ts +161 -0
  278. package/dist/src/sheet/templates.d.ts.map +1 -0
  279. package/dist/src/sheet/templates.js +122 -0
  280. package/dist/src/sheet/templates.js.map +1 -0
  281. package/dist/src/sheet/transactions.d.ts +76 -0
  282. package/dist/src/sheet/transactions.d.ts.map +1 -0
  283. package/dist/src/sheet/transactions.js +40 -0
  284. package/dist/src/sheet/transactions.js.map +1 -0
  285. package/dist/src/sheet/types.d.ts +15226 -0
  286. package/dist/src/sheet/types.d.ts.map +1 -0
  287. package/dist/src/sheet/types.js +1070 -0
  288. package/dist/src/sheet/types.js.map +1 -0
  289. package/dist/src/sheet/views.d.ts +29 -0
  290. package/dist/src/sheet/views.d.ts.map +1 -0
  291. package/dist/src/sheet/views.js +43 -0
  292. package/dist/src/sheet/views.js.map +1 -0
  293. package/dist/src/studio/component.d.ts.map +1 -1
  294. package/dist/src/studio/component.js +11 -8
  295. package/dist/src/studio/component.js.map +1 -1
  296. package/dist/src/utils/derive.d.ts +134 -8
  297. package/dist/src/utils/derive.d.ts.map +1 -1
  298. package/dist/src/utils/derive.js +409 -7
  299. package/dist/src/utils/derive.js.map +1 -1
  300. package/dist/src/utils/ordered-source.d.ts +38 -0
  301. package/dist/src/utils/ordered-source.d.ts.map +1 -0
  302. package/dist/src/utils/ordered-source.js +45 -0
  303. package/dist/src/utils/ordered-source.js.map +1 -0
  304. package/dist/src/utils/row-inspector.d.ts +36 -0
  305. package/dist/src/utils/row-inspector.d.ts.map +1 -0
  306. package/dist/src/utils/row-inspector.js +49 -0
  307. package/dist/src/utils/row-inspector.js.map +1 -0
  308. package/dist/test/bind/data/data.examples.d.ts +21 -19
  309. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  310. package/dist/test/bind/data/data.examples.js +122 -122
  311. package/dist/test/bind/data/data.examples.js.map +1 -1
  312. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  313. package/dist/test/bind/record/record.examples.js +9 -9
  314. package/dist/test/bind/record/record.examples.js.map +1 -1
  315. package/dist/test/calendar/calendar-records.examples.d.ts +228 -0
  316. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -0
  317. package/dist/test/calendar/calendar-records.examples.js +91 -0
  318. package/dist/test/calendar/calendar-records.examples.js.map +1 -0
  319. package/dist/test/calendar/calendar.examples.d.ts +776 -0
  320. package/dist/test/calendar/calendar.examples.d.ts.map +1 -0
  321. package/dist/test/calendar/calendar.examples.js +336 -0
  322. package/dist/test/calendar/calendar.examples.js.map +1 -0
  323. package/dist/test/decision/journal.examples.d.ts +28 -28
  324. package/dist/test/decision/journal.examples.d.ts.map +1 -1
  325. package/dist/test/decision/journal.examples.js +4 -4
  326. package/dist/test/decision/journal.examples.js.map +1 -1
  327. package/dist/test/decision/queue.examples.d.ts.map +1 -1
  328. package/dist/test/decision/queue.examples.js +5 -7
  329. package/dist/test/decision/queue.examples.js.map +1 -1
  330. package/dist/test/flowchart/flowchart.examples.d.ts +3713 -0
  331. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -0
  332. package/dist/test/flowchart/flowchart.examples.js +465 -0
  333. package/dist/test/flowchart/flowchart.examples.js.map +1 -0
  334. package/dist/test/plan/plan-events.examples.d.ts +3666 -0
  335. package/dist/test/plan/plan-events.examples.d.ts.map +1 -0
  336. package/dist/test/plan/plan-events.examples.js +773 -0
  337. package/dist/test/plan/plan-events.examples.js.map +1 -0
  338. package/dist/test/plan/plan-records.examples.d.ts +3 -0
  339. package/dist/test/plan/plan-records.examples.d.ts.map +1 -0
  340. package/dist/test/plan/plan-records.examples.js +45 -0
  341. package/dist/test/plan/plan-records.examples.js.map +1 -0
  342. package/dist/test/plan/plan-windows.examples.d.ts +588 -0
  343. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -0
  344. package/dist/test/plan/plan-windows.examples.js +170 -0
  345. package/dist/test/plan/plan-windows.examples.js.map +1 -0
  346. package/dist/test/plan/plan.examples.d.ts +8095 -0
  347. package/dist/test/plan/plan.examples.d.ts.map +1 -0
  348. package/dist/test/plan/plan.examples.js +2500 -0
  349. package/dist/test/plan/plan.examples.js.map +1 -0
  350. package/dist/test/roster/domain.examples.d.ts +367 -0
  351. package/dist/test/roster/domain.examples.d.ts.map +1 -0
  352. package/dist/test/roster/domain.examples.js +72 -0
  353. package/dist/test/roster/domain.examples.js.map +1 -0
  354. package/dist/test/roster/roster-records.examples.d.ts +729 -0
  355. package/dist/test/roster/roster-records.examples.d.ts.map +1 -0
  356. package/dist/test/roster/roster-records.examples.js +86 -0
  357. package/dist/test/roster/roster-records.examples.js.map +1 -0
  358. package/dist/test/roster/roster.examples.d.ts +750 -0
  359. package/dist/test/roster/roster.examples.d.ts.map +1 -0
  360. package/dist/test/roster/roster.examples.js +198 -0
  361. package/dist/test/roster/roster.examples.js.map +1 -0
  362. package/dist/test/roster/warehouse.d.ts +87 -0
  363. package/dist/test/roster/warehouse.d.ts.map +1 -0
  364. package/dist/test/roster/warehouse.js +883 -0
  365. package/dist/test/roster/warehouse.js.map +1 -0
  366. package/dist/test/sheet/sheet-link.examples.d.ts +7 -0
  367. package/dist/test/sheet/sheet-link.examples.d.ts.map +1 -0
  368. package/dist/test/sheet/sheet-link.examples.js +41 -0
  369. package/dist/test/sheet/sheet-link.examples.js.map +1 -0
  370. package/dist/test/sheet/sheet-records.examples.d.ts +421 -0
  371. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -0
  372. package/dist/test/sheet/sheet-records.examples.js +79 -0
  373. package/dist/test/sheet/sheet-records.examples.js.map +1 -0
  374. package/dist/test/sheet/sheet-transactions.examples.d.ts +7 -0
  375. package/dist/test/sheet/sheet-transactions.examples.d.ts.map +1 -0
  376. package/dist/test/sheet/sheet-transactions.examples.js +58 -0
  377. package/dist/test/sheet/sheet-transactions.examples.js.map +1 -0
  378. package/dist/test/sheet/sheet.examples.d.ts +5562 -0
  379. package/dist/test/sheet/sheet.examples.d.ts.map +1 -0
  380. package/dist/test/sheet/sheet.examples.js +1178 -0
  381. package/dist/test/sheet/sheet.examples.js.map +1 -0
  382. package/dist/test/studio/studio.examples.d.ts.map +1 -1
  383. package/dist/test/studio/studio.examples.js +11 -11
  384. package/dist/test/studio/studio.examples.js.map +1 -1
  385. package/package.json +12 -9
@@ -0,0 +1,248 @@
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
+ import { ArrayType, BooleanType, DateTimeType, DictType, FloatType, IntegerType, NullType, OptionType, SetType, StringType, StructType, VariantType, } from "@elaraai/east";
6
+ import { StatusTokenType } from "@elaraai/east-ui";
7
+ import { ScheduleClockType } from "../schedule/types.js";
8
+ /**
9
+ * One shift of one group on one day. Day zero is the record key's UTC date.
10
+ * @remarks Slot keys compare by East value, including when decoded in the browser.
11
+ * @property day - Day within the week, from zero to six
12
+ * @property group - Group key
13
+ * @property shift - Shift key
14
+ */
15
+ export const RosterSlotType = StructType({ day: IntegerType, group: StringType, shift: StringType });
16
+ /**
17
+ * The subject of an assignment.
18
+ * @remarks Requests reserve positions without pretending an agency has supplied a named person.
19
+ * @property person - The original staff record key
20
+ * @property request - The agency asked to supply someone
21
+ */
22
+ export const RosterWhoType = VariantType({ person: StringType, request: StringType });
23
+ /**
24
+ * An assignment stored within one week.
25
+ * @remarks A start offset moves the start; overtime extends the end. Agreement is absent for an unchanged shift.
26
+ * @property slot - The day, group and shift
27
+ * @property who - A named person or an agency request
28
+ * @property position - Position held on this assignment
29
+ * @property activity - One skill or duty, or none
30
+ * @property offset - Start offset in hours, negative for an early start
31
+ * @property overtime - Additional hours after the shift
32
+ * @property agreed - Whether the person agreed to changed hours
33
+ */
34
+ export const RosterAssignmentType = StructType({
35
+ slot: RosterSlotType, who: RosterWhoType, position: StringType, activity: OptionType(StringType),
36
+ offset: FloatType, overtime: FloatType, agreed: OptionType(BooleanType),
37
+ });
38
+ /**
39
+ * A slot's staffing and work targets.
40
+ * @remarks A duty needs assigned hours, whereas a skill also has holder capacity.
41
+ * @property positions - Positions to fill
42
+ * @property hours - Hours required by skill or duty key
43
+ */
44
+ export const RosterRequirementType = StructType({ positions: IntegerType, hours: DictType(StringType, FloatType) });
45
+ /** Targets keyed by the complete slot. @remarks Use East's comparator for these struct keys. */
46
+ export const RosterRequirementsType = DictType(RosterSlotType, RosterRequirementType);
47
+ /**
48
+ * The durable status of a week.
49
+ * @remarks Publishing saves the complete week and its status atomically.
50
+ * @property draft - An editable week
51
+ * @property published - A read-only week and its publication instant
52
+ */
53
+ export const RosterStatusType = VariantType({ draft: NullType, published: StructType({ at: DateTimeType }) });
54
+ /**
55
+ * The single atomic entry in the roster record.
56
+ * @remarks Assignments, targets, dismissals and publication share one optimistic patch baseline.
57
+ * @property status - Draft or published
58
+ * @property assignments - Assignments by stable identifier
59
+ * @property requirements - Targets by slot
60
+ * @property dismissed - Proposal identifiers rejected for this week
61
+ */
62
+ export const RosterWeekType = StructType({
63
+ status: RosterStatusType, assignments: DictType(StringType, RosterAssignmentType),
64
+ requirements: RosterRequirementsType, dismissed: SetType(StringType),
65
+ });
66
+ /** Weeks keyed by their first day at UTC midnight. @remarks This is the roster record's stored wire type. */
67
+ export const RosterWeeksType = DictType(DateTimeType, RosterWeekType);
68
+ /**
69
+ * A skill within a group, or a duty available to every group.
70
+ * @remarks Keys are unique across all skills and duties.
71
+ * @property key - Stable identifier
72
+ * @property label - Display name
73
+ * @property code - Short code on assignment chips
74
+ */
75
+ export const RosterSkillType = StructType({ key: StringType, label: StringType, code: StringType });
76
+ /**
77
+ * A group of people and the skills its work requires.
78
+ * @remarks The array order controls the grid and library order.
79
+ * @property key - Stable identifier
80
+ * @property label - Display name
81
+ * @property skills - Skills in display order
82
+ */
83
+ export const RosterGroupType = StructType({ key: StringType, label: StringType, skills: ArrayType(RosterSkillType) });
84
+ /**
85
+ * A recurring shift's time and nominal hours.
86
+ * @remarks An end past midnight belongs to the following day; the assignment still belongs to its start day.
87
+ * @property key - Stable identifier
88
+ * @property label - Display name
89
+ * @property code - Short code in the week layout
90
+ * @property start - Start time in UTC, shared with Schedule
91
+ * @property hours - Nominal shift duration
92
+ */
93
+ export const RosterShiftType = StructType({
94
+ key: StringType, label: StringType, code: StringType, start: ScheduleClockType, hours: FloatType,
95
+ });
96
+ /**
97
+ * A position someone may hold on a shift.
98
+ * @remarks Position order determines lead ordering in the grid.
99
+ * @property key - Stable identifier
100
+ * @property label - Display name
101
+ * @property code - Chip badge
102
+ * @property lead - Whether this position satisfies the lead rule
103
+ */
104
+ export const RosterPositionType = StructType({ key: StringType, label: StringType, code: StringType, lead: BooleanType });
105
+ /**
106
+ * An agency from which positions may be requested.
107
+ * @remarks The first agency supplies the suggested open-position fix.
108
+ * @property key - Stable identifier
109
+ * @property name - Display name
110
+ */
111
+ export const RosterAgencyType = StructType({ key: StringType, name: StringType });
112
+ /**
113
+ * A person resolved from the author's keyed staff data.
114
+ * @remarks Roster reads staff; all edits go to the weeks record.
115
+ * @property key - Original staff key
116
+ * @property name - Display name
117
+ * @property group - Home group
118
+ * @property position - Default position
119
+ * @property skills - Skill keys held
120
+ * @property contract - Contracted weekly hours
121
+ * @property agency - Whether this is a named agency worker
122
+ * @property trainer - Whether this person trains others
123
+ * @property trainee - Whether this person needs a trainer
124
+ * @property usual - Usual shift, or none
125
+ */
126
+ export const RosterPersonType = StructType({
127
+ key: StringType, name: StringType, group: StringType, position: StringType, skills: SetType(StringType),
128
+ contract: FloatType, agency: BooleanType, trainer: BooleanType, trainee: BooleanType, usual: OptionType(StringType),
129
+ });
130
+ /**
131
+ * Built-in checks enabled for the roster.
132
+ * @remarks Rest reads this week only; double booking is always reported.
133
+ * @property rest - Minimum hours between shifts; zero disables the rest check
134
+ * @property lead - Check staffed slots for a lead
135
+ * @property trainer - Check trainees have a trainer
136
+ * @property skill - Check activities against held skills
137
+ * @property agree - Report unagreed changed hours
138
+ */
139
+ export const RosterRulesType = StructType({ rest: FloatType, lead: BooleanType, trainer: BooleanType, skill: BooleanType, agree: BooleanType });
140
+ /**
141
+ * Optional costing configuration.
142
+ * @remarks Omitting costs hides monetary readouts; it does not affect staffing checks.
143
+ * @property currency - Currency identifier for the shared formatter
144
+ * @property rates - Permanent, overtime and agency hourly rates
145
+ * @property budget - Daily budget, or none
146
+ */
147
+ export const RosterCostsType = StructType({
148
+ currency: StringType, rates: StructType({ permanent: FloatType, overtime: FloatType, agency: FloatType }), budget: OptionType(FloatType),
149
+ });
150
+ /**
151
+ * Complete reference data used by coverage and checks.
152
+ * @remarks Visibility filters never remove people from this context.
153
+ * @property people - All resolved staff by original key
154
+ * @property groups - Groups and their skills
155
+ * @property duties - Activities available to every group
156
+ * @property shifts - Shift definitions
157
+ * @property positions - Position definitions
158
+ * @property agencies - Agencies available for gap fixes
159
+ * @property rules - Enabled rules
160
+ * @property costs - Optional monetary configuration
161
+ */
162
+ export const RosterContextType = StructType({
163
+ people: DictType(StringType, RosterPersonType), groups: ArrayType(RosterGroupType), duties: ArrayType(RosterSkillType),
164
+ shifts: ArrayType(RosterShiftType), positions: ArrayType(RosterPositionType), agencies: ArrayType(RosterAgencyType),
165
+ rules: RosterRulesType, costs: OptionType(RosterCostsType),
166
+ });
167
+ /**
168
+ * Coverage for one required activity.
169
+ * @remarks Duties have no holder count or capacity and no skill gap.
170
+ * @property skill - Skill or duty key
171
+ * @property needed - Required hours
172
+ * @property holders - Number of people holding the skill, or none for a duty
173
+ * @property capacity - Nominal hours available from holders, or none for a duty
174
+ * @property gap - Positive shortfall in skill capacity
175
+ * @property assigned - Hours explicitly assigned to this activity
176
+ */
177
+ export const RosterCoverageLineType = StructType({
178
+ skill: StringType, needed: FloatType, holders: OptionType(IntegerType), capacity: OptionType(FloatType), gap: FloatType, assigned: FloatType,
179
+ });
180
+ /**
181
+ * Staffing, work and costs for a complete slot.
182
+ * @remarks Requests fill positions and contribute requested hours, but never count as named people or skilled holders.
183
+ * @property positions - Required positions
184
+ * @property filled - Assignments including requests
185
+ * @property open - Unfilled positions, at least zero
186
+ * @property people - Named people assigned
187
+ * @property hours - Permanent, agency, overtime, requested, needed and total rostered hours
188
+ * @property lines - Required skills in group order, then duties
189
+ * @property cost - Total cost, zero when costs are absent
190
+ * @property lead - A named person holds a lead position
191
+ * @property trainer - A trainer is assigned
192
+ */
193
+ export const RosterCoverageType = StructType({
194
+ positions: IntegerType, filled: IntegerType, open: IntegerType, people: IntegerType,
195
+ hours: StructType({ permanent: FloatType, agency: FloatType, overtime: FloatType, requested: FloatType, needed: FloatType, rostered: FloatType }),
196
+ lines: ArrayType(RosterCoverageLineType), cost: FloatType, lead: BooleanType, trainer: BooleanType,
197
+ });
198
+ /**
199
+ * An externally computed staffing proposal.
200
+ * @remarks Acceptance creates an assignment; rejection stores this key in the week's dismissed set.
201
+ * @property key - Proposal identifier
202
+ * @property week - Week's first day
203
+ * @property slot - Suggested destination
204
+ * @property person - Original staff key
205
+ * @property reason - Explanation presented to the planner
206
+ */
207
+ export const RosterProposalType = StructType({ key: StringType, week: DateTimeType, slot: RosterSlotType, person: StringType, reason: StringType });
208
+ /**
209
+ * A corrective action offered for an issue.
210
+ * @remarks Every data-changing action is one gesture of the shared edit session.
211
+ * @property request - Request someone from this agency
212
+ * @property agree - Mark the assignment agreed
213
+ * @property accept - Accept this proposal key
214
+ * @property move - Move the assignment to this shift
215
+ * @property start - Set this start offset in hours
216
+ * @property find - Show leads, trainers or holders of a skill in the library
217
+ */
218
+ export const RosterFixType = VariantType({
219
+ request: StringType, agree: NullType, accept: StringType, move: StringType, start: FloatType,
220
+ find: VariantType({ leads: NullType, trainers: NullType, skill: StringType }),
221
+ });
222
+ /**
223
+ * One explanation or warning about the drafted roster.
224
+ * @remarks Warnings do not introduce a separate validation barrier to Save or Publish.
225
+ * @property kind - Breach, gap, agreement or proposal
226
+ * @property tone - Shared semantic tone
227
+ * @property title - Short explanation
228
+ * @property detail - Supporting explanation
229
+ * @property slot - Affected slot, or none
230
+ * @property assignment - Affected assignment key, or none
231
+ * @property flag - Short text on a chip, or none
232
+ * @property fix - Offered action, or none
233
+ */
234
+ export const RosterIssueType = StructType({
235
+ kind: VariantType({ breach: NullType, gap: NullType, agree: NullType, proposal: NullType }),
236
+ tone: StatusTokenType, title: StringType, detail: StringType, slot: OptionType(RosterSlotType),
237
+ assignment: OptionType(StringType), flag: OptionType(StringType), fix: OptionType(RosterFixType),
238
+ });
239
+ /**
240
+ * Input to an application's additional roster checks.
241
+ * @remarks The built-in coverage has already been calculated for the same draft.
242
+ * @property start - Week's first day
243
+ * @property week - Drafted week
244
+ * @property context - Complete reference data
245
+ * @property coverage - Coverage for every configured slot
246
+ */
247
+ export const RosterCheckContextType = StructType({ start: DateTimeType, week: RosterWeekType, context: RosterContextType, coverage: DictType(RosterSlotType, RosterCoverageType) });
248
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/roster/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
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
+ /** Project indexed staff windows to their original identities, never a row predicate. */
6
+ import { ArrayType, SetType, StringType, type ExprType, type StructType } from "@elaraai/east";
7
+ /**
8
+ * Preserve inline key sets and adapt Slice.rows(recordSlice) through shared paging.
9
+ * Full staff remains a separate input for coverage, costs and validation.
10
+ * @param input - Original staff keys, or indexed staff windows.
11
+ * @returns The existing inline set or a source of original keys.
12
+ */
13
+ export declare function rosterVisibility(input: unknown): {
14
+ inline: ExprType<SetType<StringType>>;
15
+ source?: never;
16
+ } | {
17
+ source: import("@elaraai/east").VariantExpr<{
18
+ readonly inline: ArrayType<StringType>;
19
+ readonly paged: StructType<{
20
+ readonly id: StringType;
21
+ readonly page: import("@elaraai/east").FunctionType<[import("@elaraai/east").IntegerType, import("@elaraai/east").IntegerType], import("@elaraai/east").OptionType<ArrayType<StringType>>>;
22
+ readonly total: import("@elaraai/east").FunctionType<[], import("@elaraai/east").OptionType<import("@elaraai/east").IntegerType>>;
23
+ readonly seek: import("@elaraai/east").OptionType<import("@elaraai/east").FunctionType<[import("@elaraai/east").VariantType<{
24
+ readonly key: StringType;
25
+ readonly prefix: StringType;
26
+ readonly fields: StructType<{
27
+ readonly values: ArrayType<StringType>;
28
+ readonly prefix: import("@elaraai/east").OptionType<StringType>;
29
+ }>;
30
+ readonly range: StructType<{
31
+ readonly from: ArrayType<StringType>;
32
+ readonly to: ArrayType<StringType>;
33
+ }>;
34
+ }>], import("@elaraai/east").OptionType<StructType<{
35
+ readonly found: import("@elaraai/east").BooleanType;
36
+ readonly row: import("@elaraai/east").IntegerType;
37
+ readonly count: import("@elaraai/east").IntegerType;
38
+ }>>>>;
39
+ }>;
40
+ readonly pinned: StructType<{
41
+ readonly id: StringType;
42
+ readonly page: import("@elaraai/east").FunctionType<[import("@elaraai/east").IntegerType, import("@elaraai/east").IntegerType], import("@elaraai/east").OptionType<ArrayType<StringType>>>;
43
+ readonly total: import("@elaraai/east").FunctionType<[], import("@elaraai/east").OptionType<import("@elaraai/east").IntegerType>>;
44
+ readonly seek: import("@elaraai/east").OptionType<import("@elaraai/east").FunctionType<[import("@elaraai/east").VariantType<{
45
+ readonly key: StringType;
46
+ readonly prefix: StringType;
47
+ readonly fields: StructType<{
48
+ readonly values: ArrayType<StringType>;
49
+ readonly prefix: import("@elaraai/east").OptionType<StringType>;
50
+ }>;
51
+ readonly range: StructType<{
52
+ readonly from: ArrayType<StringType>;
53
+ readonly to: ArrayType<StringType>;
54
+ }>;
55
+ }>], import("@elaraai/east").OptionType<StructType<{
56
+ readonly found: import("@elaraai/east").BooleanType;
57
+ readonly row: import("@elaraai/east").IntegerType;
58
+ readonly count: import("@elaraai/east").IntegerType;
59
+ }>>>>;
60
+ readonly revision: import("@elaraai/east").FunctionType<[], import("@elaraai/east").OptionType<StringType>>;
61
+ readonly refresh: import("@elaraai/east").FunctionType<[import("@elaraai/east").OptionType<StringType>], import("@elaraai/east").NullType>;
62
+ }>;
63
+ }>;
64
+ inline?: never;
65
+ };
66
+ //# sourceMappingURL=visibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../../src/roster/visibility.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,yFAAyF;AACzF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAe,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAG5G;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO;YAGL,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQtE"}
@@ -0,0 +1,25 @@
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
+ /** Project indexed staff windows to their original identities, never a row predicate. */
6
+ import { ArrayType, SetType, StringType, isTypeEqual } from "@elaraai/east";
7
+ import { buildRowSource, resolveRowSource } from "@elaraai/east-ui/internal";
8
+ /**
9
+ * Preserve inline key sets and adapt Slice.rows(recordSlice) through shared paging.
10
+ * Full staff remains a separate input for coverage, costs and validation.
11
+ * @param input - Original staff keys, or indexed staff windows.
12
+ * @returns The existing inline set or a source of original keys.
13
+ */
14
+ export function rosterVisibility(input) {
15
+ const resolved = resolveRowSource(input, "Roster.visiblePeople");
16
+ if (resolved.kind === "inline" && isTypeEqual(resolved.collectionType, SetType(StringType))) {
17
+ return { inline: resolved.rows };
18
+ }
19
+ if (resolved.kind !== "ordered" || !resolved.pinned || !isTypeEqual(resolved.keyType, StringType)) {
20
+ throw new Error("Roster.visiblePeople requires a Set of staff keys or Slice.rows of a record Slice with String primary keys");
21
+ }
22
+ const source = buildRowSource(resolved, ArrayType(StringType), rows => rows.map((_$, entry) => entry.key));
23
+ return { source };
24
+ }
25
+ //# sourceMappingURL=visibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../../src/roster/visibility.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,yFAAyF;AACzF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAkC,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IACjE,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAqC,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,4GAA4G,CAAC,CAAC;IAClI,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,EAAE,CACjE,IAAwC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAA2B,CAAC,CAAC,CAAC;IACrG,OAAO,EAAE,MAAM,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,54 @@
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 keys a large record's day index files an event under (#1218,
7
+ * `Calendar Spec.md` §3.4): East functions an `e3.recordIndex`'s `keys`
8
+ * calls, so a builder reads the days in view, and the backlog, through the
9
+ * index instead of the whole record.
10
+ *
11
+ * Times are UTC, as every time a schedule shows is: a day is a UTC day.
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+ import { DateTimeType, OptionType, SetType } from "@elaraai/east";
16
+ /**
17
+ * The days an event touches: the UTC midnight of every day from its start's
18
+ * to its end's, leaving out an end that falls exactly on midnight. An event
19
+ * of no length, or one ending before it starts, touches its start's day.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { DateTimeType, DictType, East, SetType, StringType, StructType } from "@elaraai/east";
24
+ * import { Schedule } from "@elaraai/e3-ui";
25
+ *
26
+ * const ShiftType = StructType({ title: StringType, start: DateTimeType, end: DateTimeType });
27
+ *
28
+ * // A night shift from 22:00 to 06:00 touches two days.
29
+ * const touched = East.function([], SetType(DateTimeType), ($) => {
30
+ * const days = $.const(Schedule.days);
31
+ * return days(new Date("2026-10-01T22:00:00Z"), new Date("2026-10-02T06:00:00Z"));
32
+ * });
33
+ * ```
34
+ */
35
+ export declare const scheduleDays: import("@elaraai/east").CallableFunctionExpr<[DateTimeType, DateTimeType], SetType<DateTimeType>>;
36
+ /**
37
+ * The key a backlog index files a row under: its due date when it has no
38
+ * start (`none` when it has no due date either), and nothing once it is
39
+ * scheduled — so the index holds exactly the backlog, ordered by due date.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * import { DateTimeType, East, OptionType, SetType, none, some } from "@elaraai/east";
44
+ * import { Schedule } from "@elaraai/e3-ui";
45
+ *
46
+ * // An unscheduled job due on Friday is filed under Friday.
47
+ * const filed = East.function([], SetType(OptionType(DateTimeType)), ($) => {
48
+ * const unscheduled = $.const(Schedule.unscheduled);
49
+ * return unscheduled(none, some(new Date("2026-10-02T00:00:00Z")));
50
+ * });
51
+ * ```
52
+ */
53
+ export declare const scheduleUnscheduled: import("@elaraai/east").CallableFunctionExpr<[OptionType<DateTimeType>, OptionType<DateTimeType>], SetType<OptionType<DateTimeType>>>;
54
+ //# sourceMappingURL=days.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"days.d.ts","sourceRoot":"","sources":["../../../src/schedule/days.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAQ,UAAU,EAAE,OAAO,EAAe,MAAM,eAAe,CAAC;AAErF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,mGAUvB,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,mBAAmB,uIAO/B,CAAC"}
@@ -0,0 +1,68 @@
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 keys a large record's day index files an event under (#1218,
7
+ * `Calendar Spec.md` §3.4): East functions an `e3.recordIndex`'s `keys`
8
+ * calls, so a builder reads the days in view, and the backlog, through the
9
+ * index instead of the whole record.
10
+ *
11
+ * Times are UTC, as every time a schedule shows is: a day is a UTC day.
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+ import { DateTimeType, East, OptionType, SetType } from "@elaraai/east";
16
+ /**
17
+ * The days an event touches: the UTC midnight of every day from its start's
18
+ * to its end's, leaving out an end that falls exactly on midnight. An event
19
+ * of no length, or one ending before it starts, touches its start's day.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { DateTimeType, DictType, East, SetType, StringType, StructType } from "@elaraai/east";
24
+ * import { Schedule } from "@elaraai/e3-ui";
25
+ *
26
+ * const ShiftType = StructType({ title: StringType, start: DateTimeType, end: DateTimeType });
27
+ *
28
+ * // A night shift from 22:00 to 06:00 touches two days.
29
+ * const touched = East.function([], SetType(DateTimeType), ($) => {
30
+ * const days = $.const(Schedule.days);
31
+ * return days(new Date("2026-10-01T22:00:00Z"), new Date("2026-10-02T06:00:00Z"));
32
+ * });
33
+ * ```
34
+ */
35
+ export const scheduleDays = East.function([DateTimeType, DateTimeType], SetType(DateTimeType), ($, start, end) => {
36
+ const days = $.let(new Set(), SetType(DateTimeType));
37
+ const day = $.let(East.DateTime.roundDownDay(start, 1n));
38
+ $(days.insert(day));
39
+ $.assign(day, day.addDays(1n));
40
+ $.while(East.less(day, end), ($) => {
41
+ $(days.insert(day));
42
+ $.assign(day, day.addDays(1n));
43
+ });
44
+ return days;
45
+ });
46
+ /**
47
+ * The key a backlog index files a row under: its due date when it has no
48
+ * start (`none` when it has no due date either), and nothing once it is
49
+ * scheduled — so the index holds exactly the backlog, ordered by due date.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * import { DateTimeType, East, OptionType, SetType, none, some } from "@elaraai/east";
54
+ * import { Schedule } from "@elaraai/e3-ui";
55
+ *
56
+ * // An unscheduled job due on Friday is filed under Friday.
57
+ * const filed = East.function([], SetType(OptionType(DateTimeType)), ($) => {
58
+ * const unscheduled = $.const(Schedule.unscheduled);
59
+ * return unscheduled(none, some(new Date("2026-10-02T00:00:00Z")));
60
+ * });
61
+ * ```
62
+ */
63
+ export const scheduleUnscheduled = East.function([OptionType(DateTimeType), OptionType(DateTimeType)], SetType(OptionType(DateTimeType)), ($, start, due) => {
64
+ const keys = $.let(new Set(), SetType(OptionType(DateTimeType)));
65
+ $.if(start.hasTag("none"), ($) => { $(keys.insert(due)); });
66
+ return keys;
67
+ });
68
+ //# sourceMappingURL=days.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"days.js","sourceRoot":"","sources":["../../../src/schedule/days.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAe,MAAM,eAAe,CAAC;AAErF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC7G,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QAC/B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAC5C,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EACvF,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IACd,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC;AAChB,CAAC,CACJ,CAAC"}