@elaraai/e3-ui 1.0.98 → 1.0.99

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
@@ -1 +1 @@
1
- {"version":3,"file":"roster.examples.d.ts","sourceRoot":"","sources":["../../../test/roster/roster.examples.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"roster.examples.d.ts","sourceRoot":"","sources":["../../../test/roster/roster.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EACH,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAQ,SAAS,EAAgB,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAa,UAAU,EAAE,UAAU,EAC9H,OAAO,EAC/B,MAAM,eAAe,CAAC;AAWvB,OAAO,EACH,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,cAAc,EAAE,aAAa,GACnJ,MAAM,gBAAgB,CAAC;AAMxB,6DAA6D;AAC7D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KASvB,CAAC;AACH,mEAAmE;AACnE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKtB,CAAC;AACH,+GAA+G;AAC/G,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKtB,CAAC;AACH,oDAAoD;AACpD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM5B,CAAC;AACH,gEAAgE;AAChE,eAAO,MAAM,cAAc,yTAAiG,CAAC;AAC7H,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiBtB,CAAC;AACH,eAAO,MAAM,cAAc;;;;;;KAAsG,CAAC;AAClI,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM3B,CAAC;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMtB,CAAC;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM1B,CAAC;AACH,oFAA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"}
@@ -6,7 +6,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@elaraai/e3-ui/jsx-runtime";
6
6
  /** @jsxImportSource @elaraai/e3-ui */
7
7
  import { ArrayType, BooleanType, DateTimeType, DictType, East, FloatType, FunctionType, IntegerType, NullType, OptionType, PatchType, StringType, StructType, example, none, some, variant, } from "@elaraai/east";
8
8
  import e3 from "@elaraai/e3";
9
- import { Box, Field, Reactive, Slice, UIComponentType, VStack } from "@elaraai/east-ui";
9
+ import { Box, Button, Field, HStack, Reactive, Slice, Text, UIComponentType, VStack } from "@elaraai/east-ui";
10
10
  import { Data, Func, Record, Roster, Schedule } from "@elaraai/e3-ui";
11
11
  import { WarehouseActivity, WarehouseAgency, WarehouseCover, WarehouseDuty, WarehousePattern, WarehousePerson, WarehousePosition, WarehouseShift, WarehouseSuggestion, WarehouseTeam, WarehouseWeek, warehouseActivities, warehouseAgencies, warehouseCover, warehouseDuties, warehousePatterns, warehousePayRates, warehousePeople, warehousePositions, warehouseShifts, warehouseSuggestions, warehouseTeams, warehouseWeeks, } from "./warehouse.js";
12
12
  // The warehouse's row types, and its seeded weeks as the Roster reads them, for the renderer's specs on e3 (#1368).
@@ -15,39 +15,95 @@ export { WarehouseCover, WarehouseDuty, WarehouseRosterWeek, warehouseNextStart,
15
15
  // targets, which the Roster writes, each through its patch door; and what it reads — its suggestions, its pay rates,
16
16
  // its staff and agencies, and its shift times, teams, positions and activities.
17
17
  /** The duties, both weeks', each the warehouse's own row. */
18
- export const rosterDuties = e3.record("roster_duties", DictType(StringType, WarehouseDuty), warehouseDuties);
19
- export const rosterDutiesPatch = e3.mutation.patch(rosterDuties);
20
- /** The duties by their times: what the Roster's slice reads a week of them through, its navigation writing the range. */
21
- export const rosterDutiesByTime = e3.recordIndex.interval("roster_duties_by_time", rosterDuties, { from: "start", to: "end" });
18
+ export const rosterDuties = e3.record("roster_duties", DictType(StringType, WarehouseDuty), {
19
+ initial: warehouseDuties,
20
+ indexes: (index) => ({
21
+ // The duties by their times: what the Roster's slice reads a week of them through, its navigation writing the range.
22
+ roster_duties_by_time: index.interval({ from: "start", to: "end" }),
23
+ }),
24
+ mutations: (mutation) => ({
25
+ patch: mutation.patch(),
26
+ }),
27
+ });
22
28
  /** The weeks of the rota: the one before issued, this one open. */
23
- export const rosterWeeks = e3.record("roster_rota_weeks", DictType(DateTimeType, WarehouseWeek), warehouseWeeks);
24
- export const rosterWeeksPatch = e3.mutation.patch(rosterWeeks);
29
+ export const rosterWeeks = e3.record("roster_rota_weeks", DictType(DateTimeType, WarehouseWeek), {
30
+ initial: warehouseWeeks,
31
+ mutations: (mutation) => ({
32
+ patch: mutation.patch(),
33
+ }),
34
+ });
25
35
  /** The cover targets, a row per slot: the week before's, this week's and the forecast's for the week after. */
26
- export const rosterCover = e3.record("roster_cover", DictType(StringType, WarehouseCover), warehouseCover);
27
- export const rosterCoverPatch = e3.mutation.patch(rosterCover);
36
+ export const rosterCover = e3.record("roster_cover", DictType(StringType, WarehouseCover), {
37
+ initial: warehouseCover,
38
+ mutations: (mutation) => ({
39
+ patch: mutation.patch(),
40
+ }),
41
+ });
28
42
  /** The suggestions: someone for a slot, and why. */
29
- export const rosterSuggestions = e3.record("roster_suggestions", DictType(StringType, WarehouseSuggestion), warehouseSuggestions);
43
+ export const rosterSuggestions = e3.record("roster_suggestions", DictType(StringType, WarehouseSuggestion), {
44
+ initial: warehouseSuggestions,
45
+ mutations: (mutation) => ({
46
+ // The suggestions' patch door: another session's edit of them.
47
+ patch: mutation.patch(),
48
+ }),
49
+ });
30
50
  /** The pay rates, an hour, by the warehouse's own pay codes. */
31
- export const rosterPayRates = e3.record("roster_pay_rates", DictType(StringType, FloatType), warehousePayRates);
32
- export const rosterStaff = e3.record("roster_staff", DictType(StringType, WarehousePerson), warehousePeople);
33
- export const rosterAgencies = e3.record("roster_agencies", DictType(StringType, WarehouseAgency), warehouseAgencies);
34
- export const rosterShiftTimes = e3.record("roster_shift_times", DictType(StringType, WarehouseShift), warehouseShifts);
35
- export const rosterTeams = e3.record("roster_teams", DictType(StringType, WarehouseTeam), warehouseTeams);
36
- export const rosterPositions = e3.record("roster_positions", DictType(StringType, WarehousePosition), warehousePositions);
51
+ export const rosterPayRates = e3.record("roster_pay_rates", DictType(StringType, FloatType), { initial: warehousePayRates });
52
+ export const rosterStaff = e3.record("roster_staff", DictType(StringType, WarehousePerson), {
53
+ initial: warehousePeople,
54
+ indexes: (index) => ({
55
+ // The rail's fields, each on an index of its own: the staff by group then name, position, trainer, agency, skill and name, the activities by group.
56
+ roster_staff_by_team_name: index.on(["team", "name"]),
57
+ roster_staff_by_position: index.on(["position"]),
58
+ roster_staff_by_trainer: index.on(["trainer"]),
59
+ roster_staff_by_agency: index.on(["agency"]),
60
+ roster_staff_by_skill: index.on(["skills"]),
61
+ roster_staff_by_name: index.on(["name"]),
62
+ }),
63
+ mutations: (mutation) => ({
64
+ // What the renderer's tests on e3 write and ask beside the examples (#1376): another session's edits of the
65
+ // reference data, a roster the warehouse has locked, and another app's fit over the same staff.
66
+ // The staff's patch door: another session's edit of the staff.
67
+ patch: mutation.patch(),
68
+ }),
69
+ });
70
+ export const rosterAgencies = e3.record("roster_agencies", DictType(StringType, WarehouseAgency), { initial: warehouseAgencies });
71
+ export const rosterShiftTimes = e3.record("roster_shift_times", DictType(StringType, WarehouseShift), {
72
+ initial: warehouseShifts,
73
+ mutations: (mutation) => ({
74
+ // The shift times' patch door: another session's edit of them.
75
+ patch: mutation.patch(),
76
+ }),
77
+ });
78
+ export const rosterTeams = e3.record("roster_teams", DictType(StringType, WarehouseTeam), {
79
+ initial: warehouseTeams,
80
+ mutations: (mutation) => ({
81
+ // The teams' patch door: another session's edit of them.
82
+ patch: mutation.patch(),
83
+ }),
84
+ });
85
+ export const rosterPositions = e3.record("roster_positions", DictType(StringType, WarehousePosition), {
86
+ initial: warehousePositions,
87
+ mutations: (mutation) => ({
88
+ // The positions' patch door: another session's edit of them.
89
+ patch: mutation.patch(),
90
+ }),
91
+ });
37
92
  /** Every activity by its key: each group's skills, and the duty of none (#1342). */
38
- export const rosterActivities = e3.record("roster_activities", DictType(StringType, WarehouseActivity), warehouseActivities);
93
+ export const rosterActivities = e3.record("roster_activities", DictType(StringType, WarehouseActivity), {
94
+ initial: warehouseActivities,
95
+ indexes: (index) => ({
96
+ roster_activities_by_group: index.on(["group"]),
97
+ }),
98
+ });
39
99
  /** The week patterns (#1406): the thirteen a planner drops on a person's week, the warehouse's own record. */
40
- export const rosterPatterns = e3.record("roster_week_patterns", DictType(StringType, WarehousePattern), warehousePatterns);
41
- /** The week patterns' patch door: another session's edit of them. */
42
- export const rosterPatternsPatch = e3.mutation.patch(rosterPatterns);
43
- // The rail's fields, each on an index of its own: the staff by group then name, position, trainer, agency, skill and name, the activities by group.
44
- export const rosterStaffByTeamName = e3.recordIndex("roster_staff_by_team_name", rosterStaff, { on: ["team", "name"] });
45
- export const rosterStaffByPosition = e3.recordIndex("roster_staff_by_position", rosterStaff, { on: ["position"] });
46
- export const rosterStaffByTrainer = e3.recordIndex("roster_staff_by_trainer", rosterStaff, { on: ["trainer"] });
47
- export const rosterStaffByAgency = e3.recordIndex("roster_staff_by_agency", rosterStaff, { on: ["agency"] });
48
- export const rosterStaffBySkill = e3.recordIndex("roster_staff_by_skill", rosterStaff, { on: ["skills"] });
49
- export const rosterStaffByName = e3.recordIndex("roster_staff_by_name", rosterStaff, { on: ["name"] });
50
- export const rosterActivitiesByGroup = e3.recordIndex("roster_activities_by_group", rosterActivities, { on: ["group"] });
100
+ export const rosterPatterns = e3.record("roster_week_patterns", DictType(StringType, WarehousePattern), {
101
+ initial: warehousePatterns,
102
+ mutations: (mutation) => ({
103
+ // The week patterns' patch door: another session's edit of them.
104
+ patch: mutation.patch(),
105
+ }),
106
+ });
51
107
  /** The warehouse's fit's body: the ready-made rule, then a greedy order — the people off that day with the most spare contract hours first, whatever their group. */
52
108
  export const rosterStaffFitBody = East.function([Roster.Types.FitRequest(WarehouseDuty)], Roster.Types.FitResult, ($, req) => {
53
109
  const answer = $.const(Roster.answer(WarehouseDuty));
@@ -64,27 +120,21 @@ export const rosterStaffFitBody = East.function([Roster.Types.FitRequest(Warehou
64
120
  });
65
121
  // The warehouse's fit, on e3: who fits a Find fix's need on its slot.
66
122
  export const rosterStaffFit = e3.function("roster_staff_fit", rosterStaffFitBody);
67
- // What the renderer's tests on e3 write and ask beside the examples (#1376): another session's edits of the
68
- // reference data, a roster the warehouse has locked, and another app's fit over the same staff.
69
- /** The staff's patch door: another session's edit of the staff. */
70
- export const rosterStaffPatch = e3.mutation.patch(rosterStaff);
71
- /** The shift times' patch door: another session's edit of them. */
72
- export const rosterShiftTimesPatch = e3.mutation.patch(rosterShiftTimes);
73
- /** The teams' patch door: another session's edit of them. */
74
- export const rosterTeamsPatch = e3.mutation.patch(rosterTeams);
75
- /** The positions' patch door: another session's edit of them. */
76
- export const rosterPositionsPatch = e3.mutation.patch(rosterPositions);
77
- /** The suggestions' patch door: another session's edit of them. */
78
- export const rosterSuggestionsPatch = e3.mutation.patch(rosterSuggestions);
79
123
  /** The duties of a roster the warehouse has locked: the warehouse's own duties, which no Save changes. */
80
- export const rosterLockedDuties = e3.record("roster_locked_duties", DictType(StringType, WarehouseDuty), warehouseDuties);
81
- /** The locked duties by their times: what a roster over them reads a week of them through. */
82
- export const rosterLockedDutiesByTime = e3.recordIndex.interval("roster_locked_duties_by_time", rosterLockedDuties, { from: "start", to: "end" });
83
- /** The locked roster's door, a checked one: it refuses every change, naming why — what a Save over it is answered. */
84
- export const rosterLockedDutiesPatch = e3.mutation.reduce("patch", rosterLockedDuties, East.function([DictType(StringType, WarehouseDuty), PatchType(DictType(StringType, WarehouseDuty))], DictType(StringType, WarehouseDuty), ($, duties, _patch) => {
85
- $.error("the roster is locked for the week");
86
- return duties;
87
- }));
124
+ export const rosterLockedDuties = e3.record("roster_locked_duties", DictType(StringType, WarehouseDuty), {
125
+ initial: warehouseDuties,
126
+ indexes: (index) => ({
127
+ // The locked duties by their times: what a roster over them reads a week of them through.
128
+ roster_locked_duties_by_time: index.interval({ from: "start", to: "end" }),
129
+ }),
130
+ mutations: (mutation) => ({
131
+ // The locked roster's door, a checked one: it refuses every change, naming why — what a Save over it is answered.
132
+ patch: mutation.reduce(East.function([DictType(StringType, WarehouseDuty), PatchType(DictType(StringType, WarehouseDuty))], DictType(StringType, WarehouseDuty), ($, duties, _patch) => {
133
+ $.error("the roster is locked for the week");
134
+ return duties;
135
+ })),
136
+ }),
137
+ });
88
138
  /**
89
139
  * Another app's fit over the same staff: the warehouse's order — the most spare contract hours first, whatever
90
140
  * their group — and a warning on whoever the slot's shift would take past their contract.
@@ -113,16 +163,16 @@ export const rosterWarehouse = example({
113
163
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Roster.shifts", "Roster.groups", "Roster.positions", "Roster.activities", "Roster.proposals", "pay", "check", "Slice", "Slice.bindRecords", "Data.bindPaged", "Func.bind", "e3.function", "fit", "Find", "BuilderFrame", "Save", "Publish", "FieldForm"],
114
164
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
115
165
  // What the Roster writes: the duties, the weeks of the rota and the cover targets, each through its patch door.
116
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
166
+ const rota = $.let(Record.bind(rosterDuties));
117
167
  const entries = $.let(Data.bindPaged(rosterDuties));
118
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
119
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
120
- const cover = $.let(Record.bind(rosterCover, [rosterCoverPatch]));
168
+ const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
169
+ const weeks = $.let(Record.bind(rosterWeeks));
170
+ const cover = $.let(Record.bind(rosterCover));
121
171
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
122
172
  const people = $.let(Data.bind(rosterStaff));
123
173
  const acts = $.let(Data.bind(rosterActivities));
124
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
125
- const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [rosterActivitiesByGroup] }));
174
+ const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
175
+ const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
126
176
  const slice = $.let(Slice.bindRecords("ex.rosterWarehouse", {
127
177
  // The week's duties: the Roster's navigation writes the range; no chip picks the week.
128
178
  duty: { source: byTime, range: "start" },
@@ -211,16 +261,16 @@ export const rosterMobile = example({
211
261
  inputs: [], description: "The warehouse roster in a phone-width container: explicit Assign, Move, Edit, Remove, Restore, Request, Accept, Reject and target actions over the warehouse's own records. The same session survives resizing; mobile cards register no drag sources or targets.",
212
262
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "mobile", "Save", "Publish", "FieldForm"],
213
263
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
214
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
264
+ const rota = $.let(Record.bind(rosterDuties));
215
265
  const entries = $.let(Data.bindPaged(rosterDuties));
216
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
217
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
218
- const cover = $.let(Record.bind(rosterCover, [rosterCoverPatch]));
266
+ const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
267
+ const weeks = $.let(Record.bind(rosterWeeks));
268
+ const cover = $.let(Record.bind(rosterCover));
219
269
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
220
270
  const people = $.let(Data.bind(rosterStaff));
221
271
  const acts = $.let(Data.bind(rosterActivities));
222
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
223
- const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [rosterActivitiesByGroup] }));
272
+ const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
273
+ const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
224
274
  const slice = $.let(Slice.bindRecords("ex.rosterMobile", {
225
275
  duty: { source: byTime, range: "start" },
226
276
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -253,16 +303,16 @@ export const rosterPeople = example({
253
303
  inputs: [], description: "The People layout by week over the same records (#1406): a row per person under their group's band, a tile per duty in each day cell in the shift's colour token — its hours only where a duty's own times differ (tileTimes=\"different\") — the week's hours and a meter in the name cell, `+ Assign` on an off day opening a menu of the home group's shifts, and the warehouse's week patterns in a Patterns tab, each dropped on a person's week as one undo step; the agency's requests their own row.",
254
304
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Roster.shifts", "color", "ColorToken", "Roster.patterns", "Roster.library.patterns", "tileTimes", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "people", "week", "Save", "Publish", "FieldForm"],
255
305
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
256
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
306
+ const rota = $.let(Record.bind(rosterDuties));
257
307
  const entries = $.let(Data.bindPaged(rosterDuties));
258
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
259
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
260
- const cover = $.let(Record.bind(rosterCover, [rosterCoverPatch]));
308
+ const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
309
+ const weeks = $.let(Record.bind(rosterWeeks));
310
+ const cover = $.let(Record.bind(rosterCover));
261
311
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
262
312
  const people = $.let(Data.bind(rosterStaff));
263
313
  const acts = $.let(Data.bind(rosterActivities));
264
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
265
- const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [rosterActivitiesByGroup] }));
314
+ const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
315
+ const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
266
316
  const slice = $.let(Slice.bindRecords("ex.rosterPeople", {
267
317
  duty: { source: byTime, range: "start" },
268
318
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -299,15 +349,15 @@ export const rosterPeopleMonth = example({
299
349
  inputs: [], description: "The People layout by month (#1406): a column per week touching the month, four to six, each cell seven marks in the shifts' colours lettered where a day is wide enough; a column's header opens its week, a cell's click selects the person-week the inspector's Details then read, and a pattern dropped on a cell replaces that week as one undo step. Week · Month in the Period segment; ‹ › step a month.",
300
350
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.shifts", "color", "ColorToken", "Roster.patterns", "Roster.library.patterns", "letters", "month", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "people", "Save", "Publish"],
301
351
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
302
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
352
+ const rota = $.let(Record.bind(rosterDuties));
303
353
  const entries = $.let(Data.bindPaged(rosterDuties));
304
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
305
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
306
- const cover = $.let(Record.bind(rosterCover, [rosterCoverPatch]));
354
+ const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
355
+ const weeks = $.let(Record.bind(rosterWeeks));
356
+ const cover = $.let(Record.bind(rosterCover));
307
357
  const people = $.let(Data.bind(rosterStaff));
308
358
  const acts = $.let(Data.bind(rosterActivities));
309
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
310
- const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [rosterActivitiesByGroup] }));
359
+ const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
360
+ const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
311
361
  const slice = $.let(Slice.bindRecords("ex.rosterPeopleMonth", {
312
362
  duty: { source: byTime, range: "start" },
313
363
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -338,16 +388,16 @@ export const rosterWeek = example({
338
388
  inputs: [], description: "Seven days of group-by-shift coverage over the warehouse's own records, opening any day for detailed staffing.",
339
389
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "week", "Save", "Publish", "FieldForm"],
340
390
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
341
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
391
+ const rota = $.let(Record.bind(rosterDuties));
342
392
  const entries = $.let(Data.bindPaged(rosterDuties));
343
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
344
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
345
- const cover = $.let(Record.bind(rosterCover, [rosterCoverPatch]));
393
+ const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
394
+ const weeks = $.let(Record.bind(rosterWeeks));
395
+ const cover = $.let(Record.bind(rosterCover));
346
396
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
347
397
  const people = $.let(Data.bind(rosterStaff));
348
398
  const acts = $.let(Data.bind(rosterActivities));
349
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
350
- const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [rosterActivitiesByGroup] }));
399
+ const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
400
+ const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
351
401
  const slice = $.let(Slice.bindRecords("ex.rosterWeek", {
352
402
  duty: { source: byTime, range: "start" },
353
403
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -378,15 +428,15 @@ export const rosterWeek = example({
378
428
  });
379
429
  export const rosterWindowed = example({
380
430
  inputs: [], description: "The duties read a week at a time through the slice's duty source — an interval index over their times, its range the Roster's own navigation — and the rota's weeks by key: only the week, the week before it (Copy's source) and the open picker's month are requested, never a record whole.",
381
- keywords: ["Roster", "Schedule.events", "Schedule.periods", "Slice.bindRecords", "Data.bindPaged", "recordIndex", "interval", "history", "BuilderFrame", "Save", "Publish"],
431
+ keywords: ["Roster", "Schedule.events", "Schedule.periods", "Slice.bindRecords", "Data.bindPaged", "indexes", "interval", "history", "BuilderFrame", "Save", "Publish"],
382
432
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
383
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
433
+ const rota = $.let(Record.bind(rosterDuties));
384
434
  const entries = $.let(Data.bindPaged(rosterDuties));
385
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
435
+ const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
386
436
  // The weeks of the rota read by key: the week, the week before it and the open picker's month.
387
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
437
+ const weeks = $.let(Record.bind(rosterWeeks));
388
438
  const weekEntries = $.let(Data.bindPaged(rosterWeeks));
389
- const cover = $.let(Record.bind(rosterCover, [rosterCoverPatch]));
439
+ const cover = $.let(Record.bind(rosterCover));
390
440
  const people = $.let(Data.bind(rosterStaff));
391
441
  const acts = $.let(Data.bind(rosterActivities));
392
442
  // One source: the week's duties, its range the Roster's navigation.
@@ -421,28 +471,38 @@ export const MinimalWorker = StructType({ name: StringType, team: StringType });
421
471
  export const MinimalShiftTime = StructType({ name: StringType, code: StringType, starts: Schedule.Types.Clock, hours: FloatType, order: IntegerType });
422
472
  /** One of its teams: a name. */
423
473
  export const MinimalTeam = StructType({ name: StringType });
424
- export const minimalDuties = e3.record("rota_minimal_duties", DictType(StringType, MinimalDuty), new Map([
425
- ["d-1", { person: "w-01", start: new Date("2028-03-06T06:00:00Z"), end: new Date("2028-03-06T14:00:00Z"), shift: "early", team: "inbound" }],
426
- ["d-2", { person: "w-02", start: new Date("2028-03-06T14:00:00Z"), end: new Date("2028-03-06T22:00:00Z"), shift: "late", team: "dispatch" }],
427
- ["d-3", { person: "w-01", start: new Date("2028-03-07T05:30:00Z"), end: new Date("2028-03-07T14:00:00Z"), shift: "early", team: "inbound" }],
428
- ]));
429
- export const minimalDutiesPatch = e3.mutation.patch(minimalDuties);
430
- export const minimalWorkers = e3.record("rota_minimal_workers", DictType(StringType, MinimalWorker), new Map([
431
- ["w-01", { name: "Ada Brook", team: "inbound" }],
432
- ["w-02", { name: "Tom Vale", team: "dispatch" }],
433
- ]));
434
- export const minimalShiftTimes = e3.record("rota_minimal_shift_times", DictType(StringType, MinimalShiftTime), new Map([
435
- ["early", { name: "Early", code: "E", starts: { hour: 6n, minute: 0n }, hours: 8.0, order: 1n }],
436
- ["late", { name: "Late", code: "L", starts: { hour: 14n, minute: 0n }, hours: 8.0, order: 2n }],
437
- ]));
438
- export const minimalTeams = e3.record("rota_minimal_teams", DictType(StringType, MinimalTeam), new Map([
439
- ["inbound", { name: "Inbound" }], ["dispatch", { name: "Dispatch" }],
440
- ]));
474
+ export const minimalDuties = e3.record("rota_minimal_duties", DictType(StringType, MinimalDuty), {
475
+ initial: new Map([
476
+ ["d-1", { person: "w-01", start: new Date("2028-03-06T06:00:00Z"), end: new Date("2028-03-06T14:00:00Z"), shift: "early", team: "inbound" }],
477
+ ["d-2", { person: "w-02", start: new Date("2028-03-06T14:00:00Z"), end: new Date("2028-03-06T22:00:00Z"), shift: "late", team: "dispatch" }],
478
+ ["d-3", { person: "w-01", start: new Date("2028-03-07T05:30:00Z"), end: new Date("2028-03-07T14:00:00Z"), shift: "early", team: "inbound" }],
479
+ ]),
480
+ mutations: (mutation) => ({
481
+ patch: mutation.patch(),
482
+ }),
483
+ });
484
+ export const minimalWorkers = e3.record("rota_minimal_workers", DictType(StringType, MinimalWorker), {
485
+ initial: new Map([
486
+ ["w-01", { name: "Ada Brook", team: "inbound" }],
487
+ ["w-02", { name: "Tom Vale", team: "dispatch" }],
488
+ ]),
489
+ });
490
+ export const minimalShiftTimes = e3.record("rota_minimal_shift_times", DictType(StringType, MinimalShiftTime), {
491
+ initial: new Map([
492
+ ["early", { name: "Early", code: "E", starts: { hour: 6n, minute: 0n }, hours: 8.0, order: 1n }],
493
+ ["late", { name: "Late", code: "L", starts: { hour: 14n, minute: 0n }, hours: 8.0, order: 2n }],
494
+ ]),
495
+ });
496
+ export const minimalTeams = e3.record("rota_minimal_teams", DictType(StringType, MinimalTeam), {
497
+ initial: new Map([
498
+ ["inbound", { name: "Inbound" }], ["dispatch", { name: "Dispatch" }],
499
+ ]),
500
+ });
441
501
  export const rosterMinimal = example({
442
502
  inputs: [], description: "The smallest roster over the app's own records: duties with their times, shift and team; staff; shift times; teams. No library or inspector pane, and no Publish; explicit assignment actions still use the shared session.",
443
503
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Roster.shifts", "Roster.groups", "Record.bind", "minimal"],
444
504
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
445
- const rota = $.let(Record.bind(minimalDuties, [minimalDutiesPatch]));
505
+ const rota = $.let(Record.bind(minimalDuties));
446
506
  const staff = $.let(Data.bind(minimalWorkers));
447
507
  const times = $.let(Data.bind(minimalShiftTimes));
448
508
  const groups = $.let(Data.bind(minimalTeams));
@@ -457,16 +517,16 @@ export const rosterPublished = example({
457
517
  inputs: [], description: "The week before, published, is read-only: navigation, staff filtering, coverage and inspection remain available.",
458
518
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "published", "read-only", "Publish"],
459
519
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
460
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
520
+ const rota = $.let(Record.bind(rosterDuties));
461
521
  const entries = $.let(Data.bindPaged(rosterDuties));
462
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
463
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
464
- const cover = $.let(Record.bind(rosterCover, [rosterCoverPatch]));
522
+ const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
523
+ const weeks = $.let(Record.bind(rosterWeeks));
524
+ const cover = $.let(Record.bind(rosterCover));
465
525
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
466
526
  const people = $.let(Data.bind(rosterStaff));
467
527
  const acts = $.let(Data.bind(rosterActivities));
468
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
469
- const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [rosterActivitiesByGroup] }));
528
+ const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
529
+ const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
470
530
  const slice = $.let(Slice.bindRecords("ex.rosterPublished", {
471
531
  duty: { source: byTime, range: "start" },
472
532
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -499,16 +559,16 @@ export const rosterCustomInspector = example({
499
559
  inputs: [], description: "The duty kind's own inspector and the targets' own form replace the built-in fields while preserving the shared headers, coverage, actions and undo history.",
500
560
  keywords: ["Roster", "Schedule.events", "inspector", "Roster.targets", "Schedule.resources", "Schedule.periods", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "Save", "Publish", "FieldForm"],
501
561
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
502
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
562
+ const rota = $.let(Record.bind(rosterDuties));
503
563
  const entries = $.let(Data.bindPaged(rosterDuties));
504
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
505
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
506
- const cover = $.let(Record.bind(rosterCover, [rosterCoverPatch]));
564
+ const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
565
+ const weeks = $.let(Record.bind(rosterWeeks));
566
+ const cover = $.let(Record.bind(rosterCover));
507
567
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
508
568
  const people = $.let(Data.bind(rosterStaff));
509
569
  const acts = $.let(Data.bind(rosterActivities));
510
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
511
- const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [rosterActivitiesByGroup] }));
570
+ const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
571
+ const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
512
572
  const slice = $.let(Slice.bindRecords("ex.rosterCustomInspector", {
513
573
  duty: { source: byTime, range: "start" },
514
574
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -550,4 +610,43 @@ export const rosterCustomInspector = example({
550
610
  })] }) });
551
611
  } })),
552
612
  });
613
+ /** The duties the conflicts example edits, in a record of their own, so no other example's edits meet them. */
614
+ export const rosterConflictDuties = e3.record("rota_conflict_duties", DictType(StringType, MinimalDuty), {
615
+ initial: new Map([
616
+ ["d-1", { person: "w-01", start: new Date("2028-03-06T06:00:00Z"), end: new Date("2028-03-06T14:00:00Z"), shift: "early", team: "inbound" }],
617
+ ["d-2", { person: "w-02", start: new Date("2028-03-06T14:00:00Z"), end: new Date("2028-03-06T22:00:00Z"), shift: "late", team: "dispatch" }],
618
+ ["d-3", { person: "w-01", start: new Date("2028-03-07T06:00:00Z"), end: new Date("2028-03-07T14:00:00Z"), shift: "early", team: "inbound" }],
619
+ ]),
620
+ mutations: (mutation) => ({
621
+ patch: mutation.patch(),
622
+ // Someone else's save: every duty half an hour later, its person, shift and team as they were.
623
+ elsewhere: mutation.reduce(East.function([DictType(StringType, MinimalDuty)], DictType(StringType, MinimalDuty), (_$, duties) => duties.map((_$2, duty) => ({
624
+ person: duty.person, start: duty.start.addMinutes(30n), end: duty.end.addMinutes(30n), shift: duty.shift, team: duty.team,
625
+ })))),
626
+ }),
627
+ });
628
+ /**
629
+ * Your edits meeting someone else's save, in one window: edit, then press
630
+ * Someone else saves, which saves another person's change to the same duties —
631
+ * every duty half an hour later. A duty you moved to another day or shift is a
632
+ * conflict, its times one card to choose; a duty you gave to another person
633
+ * combines with theirs. Each press saves their change again.
634
+ */
635
+ export const rosterConflicts = example({
636
+ inputs: [], description: "Your edits meeting someone else's save, in one window — move a duty to another day or shift, then press Someone else saves, which saves another person's change to the same duties (every duty half an hour later), so yours conflict, its times one card to choose; a duty you give to another person combines with theirs",
637
+ keywords: ["Roster", "conflict", "conflicts", "combine", "someone else", "Choose", "dates", "Schedule.events", "Record.bind", "mutate", "Button", "Save"],
638
+ fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
639
+ const rota = $.let(Record.bind(rosterConflictDuties, ["patch"]));
640
+ const others = $.let(Record.bind(rosterConflictDuties, ["elsewhere"]));
641
+ const theirs = $.const(East.function([], NullType, ($) => { $(others.mutate.elsewhere()); }));
642
+ const staff = $.let(Data.bind(minimalWorkers));
643
+ const times = $.let(Data.bind(minimalShiftTimes));
644
+ const groups = $.let(Data.bind(minimalTeams));
645
+ return _jsxs(VStack, { gap: "3", align: "stretch", children: [_jsxs(HStack, { gap: "3", children: [_jsx(Button, { variant: "outline", onClick: theirs, loading: others.mutate.pending(), children: "Someone else saves" }), _jsx(Text, { color: "fg.muted", children: "Their change: every duty half an hour later" })] }), _jsx(Box, { width: "100%", height: "760px", children: _jsx(Roster, { id: "rosterConflicts", view: { date: new Date("2028-03-06T00:00:00Z") }, events: { duty: Schedule.events(rota, {
646
+ name: "Duty", icon: "user-clock",
647
+ start: "start", end: "end", resource: { field: "person", of: "people" },
648
+ shift: "shift", group: "team",
649
+ }) }, resources: { people: Schedule.resources(staff.read(), { name: "People", icon: "user", label: w => w.name, group: w => w.team }) }, shifts: Roster.shifts(times.read(), { label: s => s.name, code: s => s.code, start: s => s.starts, hours: s => s.hours, order: s => s.order }), groups: Roster.groups(groups.read(), { label: t => t.name }) }) })] });
650
+ } })),
651
+ });
553
652
  //# sourceMappingURL=roster.examples.js.map