@elaraai/e3-ui 1.0.97 → 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 (491) 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 +232 -25
  5. package/dist/src/allocation/index.d.ts.map +1 -1
  6. package/dist/src/allocation/index.js +35 -6
  7. package/dist/src/allocation/index.js.map +1 -1
  8. package/dist/src/allocation/types.d.ts +41 -0
  9. package/dist/src/allocation/types.d.ts.map +1 -1
  10. package/dist/src/allocation/types.js +35 -0
  11. package/dist/src/allocation/types.js.map +1 -1
  12. package/dist/src/bind/data-indexed.d.ts +286 -37
  13. package/dist/src/bind/data-indexed.d.ts.map +1 -1
  14. package/dist/src/bind/data-indexed.js +259 -38
  15. package/dist/src/bind/data-indexed.js.map +1 -1
  16. package/dist/src/bind/data.d.ts +48 -9
  17. package/dist/src/bind/data.d.ts.map +1 -1
  18. package/dist/src/bind/data.js +48 -3
  19. package/dist/src/bind/data.js.map +1 -1
  20. package/dist/src/bind/record.d.ts +61 -24
  21. package/dist/src/bind/record.d.ts.map +1 -1
  22. package/dist/src/bind/record.js +17 -57
  23. package/dist/src/bind/record.js.map +1 -1
  24. package/dist/src/calendar/index.d.ts +522 -36
  25. package/dist/src/calendar/index.d.ts.map +1 -1
  26. package/dist/src/calendar/index.js +53 -13
  27. package/dist/src/calendar/index.js.map +1 -1
  28. package/dist/src/calendar/paged.d.ts +89 -0
  29. package/dist/src/calendar/paged.d.ts.map +1 -0
  30. package/dist/src/calendar/paged.js +148 -0
  31. package/dist/src/calendar/paged.js.map +1 -0
  32. package/dist/src/flowchart/index.d.ts +35 -31
  33. package/dist/src/flowchart/index.d.ts.map +1 -1
  34. package/dist/src/flowchart/index.js +35 -31
  35. package/dist/src/flowchart/index.js.map +1 -1
  36. package/dist/src/flowchart/library.d.ts +108 -84
  37. package/dist/src/flowchart/library.d.ts.map +1 -1
  38. package/dist/src/flowchart/library.js +108 -84
  39. package/dist/src/flowchart/library.js.map +1 -1
  40. package/dist/src/flowchart/payload.d.ts +105 -17
  41. package/dist/src/flowchart/payload.d.ts.map +1 -1
  42. package/dist/src/flowchart/payload.js +3 -3
  43. package/dist/src/flowchart/payload.js.map +1 -1
  44. package/dist/src/flowchart/values.d.ts +35 -31
  45. package/dist/src/flowchart/values.d.ts.map +1 -1
  46. package/dist/src/flowchart/values.js +35 -31
  47. package/dist/src/flowchart/values.js.map +1 -1
  48. package/dist/src/flowchart/window.d.ts.map +1 -1
  49. package/dist/src/flowchart/window.js +3 -2
  50. package/dist/src/flowchart/window.js.map +1 -1
  51. package/dist/src/index.d.ts +13 -4
  52. package/dist/src/index.d.ts.map +1 -1
  53. package/dist/src/index.js +20 -1
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/internal.d.ts +18 -8
  56. package/dist/src/internal.d.ts.map +1 -1
  57. package/dist/src/internal.js +40 -10
  58. package/dist/src/internal.js.map +1 -1
  59. package/dist/src/plan/assemble.d.ts +8 -0
  60. package/dist/src/plan/assemble.d.ts.map +1 -1
  61. package/dist/src/plan/assemble.js +1 -1
  62. package/dist/src/plan/assemble.js.map +1 -1
  63. package/dist/src/plan/builders.d.ts +1530 -10
  64. package/dist/src/plan/builders.d.ts.map +1 -1
  65. package/dist/src/plan/builders.js +260 -122
  66. package/dist/src/plan/builders.js.map +1 -1
  67. package/dist/src/plan/event-rows.d.ts +224 -157
  68. package/dist/src/plan/event-rows.d.ts.map +1 -1
  69. package/dist/src/plan/event-rows.js +201 -56
  70. package/dist/src/plan/event-rows.js.map +1 -1
  71. package/dist/src/plan/factories.d.ts +72 -4
  72. package/dist/src/plan/factories.d.ts.map +1 -1
  73. package/dist/src/plan/factories.js +147 -1
  74. package/dist/src/plan/factories.js.map +1 -1
  75. package/dist/src/plan/index.d.ts +152 -125
  76. package/dist/src/plan/index.d.ts.map +1 -1
  77. package/dist/src/plan/index.js +138 -122
  78. package/dist/src/plan/index.js.map +1 -1
  79. package/dist/src/plan/ir.d.ts +1139 -8
  80. package/dist/src/plan/ir.d.ts.map +1 -1
  81. package/dist/src/plan/ir.js +5 -0
  82. package/dist/src/plan/ir.js.map +1 -1
  83. package/dist/src/plan/library.d.ts +65 -42
  84. package/dist/src/plan/library.d.ts.map +1 -1
  85. package/dist/src/plan/library.js +65 -42
  86. package/dist/src/plan/library.js.map +1 -1
  87. package/dist/src/plan/nested-checks.d.ts +146 -0
  88. package/dist/src/plan/nested-checks.d.ts.map +1 -0
  89. package/dist/src/plan/nested-checks.js +468 -0
  90. package/dist/src/plan/nested-checks.js.map +1 -0
  91. package/dist/src/plan/nested-patch.d.ts +35 -0
  92. package/dist/src/plan/nested-patch.d.ts.map +1 -0
  93. package/dist/src/plan/nested-patch.js +143 -0
  94. package/dist/src/plan/nested-patch.js.map +1 -0
  95. package/dist/src/plan/nested-read.d.ts +3250 -0
  96. package/dist/src/plan/nested-read.d.ts.map +1 -0
  97. package/dist/src/plan/nested-read.js +163 -0
  98. package/dist/src/plan/nested-read.js.map +1 -0
  99. package/dist/src/plan/nested.d.ts +280 -0
  100. package/dist/src/plan/nested.d.ts.map +1 -0
  101. package/dist/src/plan/nested.js +6 -0
  102. package/dist/src/plan/nested.js.map +1 -0
  103. package/dist/src/plan/ordered-source.d.ts +3067 -1
  104. package/dist/src/plan/ordered-source.d.ts.map +1 -1
  105. package/dist/src/plan/ordered-source.js +67 -17
  106. package/dist/src/plan/ordered-source.js.map +1 -1
  107. package/dist/src/plan/over.d.ts +111 -75
  108. package/dist/src/plan/over.d.ts.map +1 -1
  109. package/dist/src/plan/over.js +111 -75
  110. package/dist/src/plan/over.js.map +1 -1
  111. package/dist/src/plan/pick.d.ts +15 -3
  112. package/dist/src/plan/pick.d.ts.map +1 -1
  113. package/dist/src/plan/pick.js +75 -36
  114. package/dist/src/plan/pick.js.map +1 -1
  115. package/dist/src/plan/plan.d.ts +3143 -501
  116. package/dist/src/plan/plan.d.ts.map +1 -1
  117. package/dist/src/plan/plan.js +133 -34
  118. package/dist/src/plan/plan.js.map +1 -1
  119. package/dist/src/plan/reads.d.ts +421 -0
  120. package/dist/src/plan/reads.d.ts.map +1 -0
  121. package/dist/src/plan/reads.js +143 -0
  122. package/dist/src/plan/reads.js.map +1 -0
  123. package/dist/src/plan/refs.d.ts +111 -75
  124. package/dist/src/plan/refs.d.ts.map +1 -1
  125. package/dist/src/plan/refs.js +111 -75
  126. package/dist/src/plan/refs.js.map +1 -1
  127. package/dist/src/plan/root.d.ts +14 -7
  128. package/dist/src/plan/root.d.ts.map +1 -1
  129. package/dist/src/plan/root.js +82 -17
  130. package/dist/src/plan/root.js.map +1 -1
  131. package/dist/src/plan/series.d.ts +5153 -4331
  132. package/dist/src/plan/series.d.ts.map +1 -1
  133. package/dist/src/plan/series.js +1082 -266
  134. package/dist/src/plan/series.js.map +1 -1
  135. package/dist/src/plan/shade.d.ts +981 -0
  136. package/dist/src/plan/shade.d.ts.map +1 -0
  137. package/dist/src/plan/shade.js +60 -0
  138. package/dist/src/plan/shade.js.map +1 -0
  139. package/dist/src/plan/types.d.ts +192 -18
  140. package/dist/src/plan/types.d.ts.map +1 -1
  141. package/dist/src/plan/types.js +77 -19
  142. package/dist/src/plan/types.js.map +1 -1
  143. package/dist/src/query/builder.d.ts +3 -3
  144. package/dist/src/query/builder.d.ts.map +1 -1
  145. package/dist/src/query/builder.js +1 -1
  146. package/dist/src/query/library.d.ts +3 -3
  147. package/dist/src/query/library.d.ts.map +1 -1
  148. package/dist/src/query/library.js +1 -1
  149. package/dist/src/query/queries.d.ts +2 -2
  150. package/dist/src/query/queries.js +1 -1
  151. package/dist/src/query/saved.d.ts +8 -4
  152. package/dist/src/query/saved.d.ts.map +1 -1
  153. package/dist/src/query/saved.js +8 -4
  154. package/dist/src/query/saved.js.map +1 -1
  155. package/dist/src/query/types.d.ts +8 -3
  156. package/dist/src/query/types.d.ts.map +1 -1
  157. package/dist/src/query/types.js +8 -3
  158. package/dist/src/query/types.js.map +1 -1
  159. package/dist/src/roster/index.d.ts +583 -39
  160. package/dist/src/roster/index.d.ts.map +1 -1
  161. package/dist/src/roster/index.js +109 -35
  162. package/dist/src/roster/index.js.map +1 -1
  163. package/dist/src/roster/library.d.ts +12 -2
  164. package/dist/src/roster/library.d.ts.map +1 -1
  165. package/dist/src/roster/library.js +8 -0
  166. package/dist/src/roster/library.js.map +1 -1
  167. package/dist/src/roster/lists.d.ts +59 -12
  168. package/dist/src/roster/lists.d.ts.map +1 -1
  169. package/dist/src/roster/lists.js +51 -58
  170. package/dist/src/roster/lists.js.map +1 -1
  171. package/dist/src/roster/targets.d.ts +8 -4
  172. package/dist/src/roster/targets.d.ts.map +1 -1
  173. package/dist/src/roster/targets.js +9 -5
  174. package/dist/src/roster/targets.js.map +1 -1
  175. package/dist/src/roster/times.d.ts +402 -0
  176. package/dist/src/roster/times.d.ts.map +1 -1
  177. package/dist/src/roster/types.d.ts +913 -1
  178. package/dist/src/roster/types.d.ts.map +1 -1
  179. package/dist/src/roster/types.js +43 -3
  180. package/dist/src/roster/types.js.map +1 -1
  181. package/dist/src/schedule/cell-checks.d.ts +85 -0
  182. package/dist/src/schedule/cell-checks.d.ts.map +1 -0
  183. package/dist/src/schedule/cell-checks.js +211 -0
  184. package/dist/src/schedule/cell-checks.js.map +1 -0
  185. package/dist/src/schedule/days.d.ts +1 -1
  186. package/dist/src/schedule/days.js +1 -1
  187. package/dist/src/schedule/events.d.ts +52 -16
  188. package/dist/src/schedule/events.d.ts.map +1 -1
  189. package/dist/src/schedule/events.js +574 -356
  190. package/dist/src/schedule/events.js.map +1 -1
  191. package/dist/src/schedule/fields.d.ts +134 -0
  192. package/dist/src/schedule/fields.d.ts.map +1 -0
  193. package/dist/src/schedule/fields.js +207 -0
  194. package/dist/src/schedule/fields.js.map +1 -0
  195. package/dist/src/schedule/library.d.ts +11 -3
  196. package/dist/src/schedule/library.d.ts.map +1 -1
  197. package/dist/src/schedule/library.js +9 -6
  198. package/dist/src/schedule/library.js.map +1 -1
  199. package/dist/src/schedule/optimise.d.ts +124 -0
  200. package/dist/src/schedule/optimise.d.ts.map +1 -0
  201. package/dist/src/schedule/optimise.js +140 -0
  202. package/dist/src/schedule/optimise.js.map +1 -0
  203. package/dist/src/schedule/pages.d.ts +76 -0
  204. package/dist/src/schedule/pages.d.ts.map +1 -0
  205. package/dist/src/schedule/pages.js +86 -0
  206. package/dist/src/schedule/pages.js.map +1 -0
  207. package/dist/src/schedule/patch.d.ts +1 -1
  208. package/dist/src/schedule/patch.js +1 -1
  209. package/dist/src/schedule/periods.d.ts +8 -4
  210. package/dist/src/schedule/periods.d.ts.map +1 -1
  211. package/dist/src/schedule/periods.js +1 -1
  212. package/dist/src/schedule/periods.js.map +1 -1
  213. package/dist/src/schedule/record-window.d.ts +115 -22
  214. package/dist/src/schedule/record-window.d.ts.map +1 -1
  215. package/dist/src/schedule/record-window.js +140 -62
  216. package/dist/src/schedule/record-window.js.map +1 -1
  217. package/dist/src/schedule/resources.d.ts +9 -5
  218. package/dist/src/schedule/resources.d.ts.map +1 -1
  219. package/dist/src/schedule/resources.js +35 -15
  220. package/dist/src/schedule/resources.js.map +1 -1
  221. package/dist/src/schedule/session.d.ts +15 -1
  222. package/dist/src/schedule/session.d.ts.map +1 -1
  223. package/dist/src/schedule/session.js +30 -18
  224. package/dist/src/schedule/session.js.map +1 -1
  225. package/dist/src/schedule/types.d.ts +455 -37
  226. package/dist/src/schedule/types.d.ts.map +1 -1
  227. package/dist/src/schedule/types.js +79 -18
  228. package/dist/src/schedule/types.js.map +1 -1
  229. package/dist/src/schedule/window.d.ts +30 -9
  230. package/dist/src/schedule/window.d.ts.map +1 -1
  231. package/dist/src/schedule/window.js +101 -49
  232. package/dist/src/schedule/window.js.map +1 -1
  233. package/dist/src/schematic/index.d.ts +287 -0
  234. package/dist/src/schematic/index.d.ts.map +1 -0
  235. package/dist/src/schematic/index.js +216 -0
  236. package/dist/src/schematic/index.js.map +1 -0
  237. package/dist/src/schematic/kinds.d.ts +501 -0
  238. package/dist/src/schematic/kinds.d.ts.map +1 -0
  239. package/dist/src/schematic/kinds.js +1027 -0
  240. package/dist/src/schematic/kinds.js.map +1 -0
  241. package/dist/src/schematic/layers.d.ts +74 -0
  242. package/dist/src/schematic/layers.d.ts.map +1 -0
  243. package/dist/src/schematic/layers.js +99 -0
  244. package/dist/src/schematic/layers.js.map +1 -0
  245. package/dist/src/schematic/library.d.ts +202 -0
  246. package/dist/src/schematic/library.d.ts.map +1 -0
  247. package/dist/src/schematic/library.js +244 -0
  248. package/dist/src/schematic/library.js.map +1 -0
  249. package/dist/src/schematic/payload.d.ts +8310 -0
  250. package/dist/src/schematic/payload.d.ts.map +1 -0
  251. package/dist/src/schematic/payload.js +446 -0
  252. package/dist/src/schematic/payload.js.map +1 -0
  253. package/dist/src/schematic/schematic.d.ts +27 -0
  254. package/dist/src/schematic/schematic.d.ts.map +1 -0
  255. package/dist/src/schematic/schematic.js +17 -0
  256. package/dist/src/schematic/schematic.js.map +1 -0
  257. package/dist/src/schematic/shapes.d.ts +150 -0
  258. package/dist/src/schematic/shapes.d.ts.map +1 -0
  259. package/dist/src/schematic/shapes.js +171 -0
  260. package/dist/src/schematic/shapes.js.map +1 -0
  261. package/dist/src/schematic/templates.d.ts +96 -0
  262. package/dist/src/schematic/templates.d.ts.map +1 -0
  263. package/dist/src/schematic/templates.js +91 -0
  264. package/dist/src/schematic/templates.js.map +1 -0
  265. package/dist/src/schematic/types.d.ts +5766 -0
  266. package/dist/src/schematic/types.d.ts.map +1 -0
  267. package/dist/src/schematic/types.js +688 -0
  268. package/dist/src/schematic/types.js.map +1 -0
  269. package/dist/src/schematic/window.d.ts +213 -0
  270. package/dist/src/schematic/window.d.ts.map +1 -0
  271. package/dist/src/schematic/window.js +340 -0
  272. package/dist/src/schematic/window.js.map +1 -0
  273. package/dist/src/sheet/bridge.d.ts +19 -0
  274. package/dist/src/sheet/bridge.d.ts.map +1 -1
  275. package/dist/src/sheet/bridge.js +28 -21
  276. package/dist/src/sheet/bridge.js.map +1 -1
  277. package/dist/src/sheet/editing-bridge.d.ts +4 -2
  278. package/dist/src/sheet/editing-bridge.d.ts.map +1 -1
  279. package/dist/src/sheet/editing-bridge.js +8 -2
  280. package/dist/src/sheet/editing-bridge.js.map +1 -1
  281. package/dist/src/sheet/editing-types.d.ts +9 -5
  282. package/dist/src/sheet/editing-types.d.ts.map +1 -1
  283. package/dist/src/sheet/editing-types.js +9 -5
  284. package/dist/src/sheet/editing-types.js.map +1 -1
  285. package/dist/src/sheet/index.d.ts +84 -54
  286. package/dist/src/sheet/index.d.ts.map +1 -1
  287. package/dist/src/sheet/index.js +81 -53
  288. package/dist/src/sheet/index.js.map +1 -1
  289. package/dist/src/sheet/library.d.ts +13 -8
  290. package/dist/src/sheet/library.d.ts.map +1 -1
  291. package/dist/src/sheet/library.js +13 -8
  292. package/dist/src/sheet/library.js.map +1 -1
  293. package/dist/src/sheet/optimise.d.ts +69 -0
  294. package/dist/src/sheet/optimise.d.ts.map +1 -0
  295. package/dist/src/sheet/optimise.js +81 -0
  296. package/dist/src/sheet/optimise.js.map +1 -0
  297. package/dist/src/sheet/record.d.ts +1 -1
  298. package/dist/src/sheet/record.js +2 -2
  299. package/dist/src/sheet/record.js.map +1 -1
  300. package/dist/src/sheet/registers.d.ts +157 -133
  301. package/dist/src/sheet/registers.d.ts.map +1 -1
  302. package/dist/src/sheet/registers.js +157 -133
  303. package/dist/src/sheet/registers.js.map +1 -1
  304. package/dist/src/sheet/root.d.ts +6 -1
  305. package/dist/src/sheet/root.d.ts.map +1 -1
  306. package/dist/src/sheet/root.js +17 -5
  307. package/dist/src/sheet/root.js.map +1 -1
  308. package/dist/src/sheet/sheet.d.ts +696 -590
  309. package/dist/src/sheet/sheet.d.ts.map +1 -1
  310. package/dist/src/sheet/sheet.js +49 -15
  311. package/dist/src/sheet/sheet.js.map +1 -1
  312. package/dist/src/sheet/sub-rows.d.ts +106 -76
  313. package/dist/src/sheet/sub-rows.d.ts.map +1 -1
  314. package/dist/src/sheet/sub-rows.js +106 -76
  315. package/dist/src/sheet/sub-rows.js.map +1 -1
  316. package/dist/src/sheet/types.d.ts +57 -20
  317. package/dist/src/sheet/types.d.ts.map +1 -1
  318. package/dist/src/sheet/types.js +4 -8
  319. package/dist/src/sheet/types.js.map +1 -1
  320. package/dist/src/studio/builder.d.ts +3 -153
  321. package/dist/src/studio/builder.d.ts.map +1 -1
  322. package/dist/src/studio/builder.js +1 -1
  323. package/dist/src/studio/canvas.d.ts +5 -4
  324. package/dist/src/studio/canvas.d.ts.map +1 -1
  325. package/dist/src/studio/canvas.js +8 -7
  326. package/dist/src/studio/canvas.js.map +1 -1
  327. package/dist/src/studio/component.d.ts +30 -20
  328. package/dist/src/studio/component.d.ts.map +1 -1
  329. package/dist/src/studio/component.js +26 -61
  330. package/dist/src/studio/component.js.map +1 -1
  331. package/dist/src/studio/index.d.ts +2 -2
  332. package/dist/src/studio/index.d.ts.map +1 -1
  333. package/dist/src/studio/index.js +1 -1
  334. package/dist/src/studio/index.js.map +1 -1
  335. package/dist/src/studio/inspector.d.ts +10 -39
  336. package/dist/src/studio/inspector.d.ts.map +1 -1
  337. package/dist/src/studio/inspector.js +11 -31
  338. package/dist/src/studio/inspector.js.map +1 -1
  339. package/dist/src/studio/library.d.ts +3 -169
  340. package/dist/src/studio/library.d.ts.map +1 -1
  341. package/dist/src/studio/library.js +1 -1
  342. package/dist/src/studio/page.d.ts +0 -8
  343. package/dist/src/studio/page.d.ts.map +1 -1
  344. package/dist/src/studio/pages.d.ts +17 -591
  345. package/dist/src/studio/pages.d.ts.map +1 -1
  346. package/dist/src/studio/pages.js +17 -44
  347. package/dist/src/studio/pages.js.map +1 -1
  348. package/dist/src/studio/palette.d.ts +2 -7
  349. package/dist/src/studio/palette.d.ts.map +1 -1
  350. package/dist/src/studio/palette.js +4 -5
  351. package/dist/src/studio/palette.js.map +1 -1
  352. package/dist/src/studio/publish.d.ts +8 -18
  353. package/dist/src/studio/publish.d.ts.map +1 -1
  354. package/dist/src/studio/publish.js +10 -36
  355. package/dist/src/studio/publish.js.map +1 -1
  356. package/dist/src/utils/derive.d.ts +12 -12
  357. package/dist/src/utils/derive.d.ts.map +1 -1
  358. package/dist/src/utils/derive.js +5 -2
  359. package/dist/src/utils/derive.js.map +1 -1
  360. package/dist/src/utils/keyed-rows.d.ts +41 -0
  361. package/dist/src/utils/keyed-rows.d.ts.map +1 -0
  362. package/dist/src/utils/keyed-rows.js +64 -0
  363. package/dist/src/utils/keyed-rows.js.map +1 -0
  364. package/dist/src/utils/optimise.d.ts +79 -0
  365. package/dist/src/utils/optimise.d.ts.map +1 -0
  366. package/dist/src/utils/optimise.js +46 -0
  367. package/dist/src/utils/optimise.js.map +1 -0
  368. package/dist/src/utils/ordered-source.d.ts.map +1 -1
  369. package/dist/src/utils/ordered-source.js +14 -5
  370. package/dist/src/utils/ordered-source.js.map +1 -1
  371. package/dist/test/allocation/allocation.examples.d.ts +1900 -1610
  372. package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
  373. package/dist/test/allocation/allocation.examples.js +179 -89
  374. package/dist/test/allocation/allocation.examples.js.map +1 -1
  375. package/dist/test/allocation/optimise.examples.d.ts +109 -0
  376. package/dist/test/allocation/optimise.examples.d.ts.map +1 -0
  377. package/dist/test/allocation/optimise.examples.js +223 -0
  378. package/dist/test/allocation/optimise.examples.js.map +1 -0
  379. package/dist/test/bind/data/data.examples.d.ts +1172 -514
  380. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  381. package/dist/test/bind/data/data.examples.js +284 -164
  382. package/dist/test/bind/data/data.examples.js.map +1 -1
  383. package/dist/test/bind/record/record.examples.d.ts +457 -428
  384. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  385. package/dist/test/bind/record/record.examples.js +41 -21
  386. package/dist/test/bind/record/record.examples.js.map +1 -1
  387. package/dist/test/calendar/calendar-records.examples.d.ts +162 -170
  388. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
  389. package/dist/test/calendar/calendar-records.examples.js +20 -12
  390. package/dist/test/calendar/calendar-records.examples.js.map +1 -1
  391. package/dist/test/calendar/calendar-windows.examples.d.ts +9 -0
  392. package/dist/test/calendar/calendar-windows.examples.d.ts.map +1 -0
  393. package/dist/test/calendar/calendar-windows.examples.js +111 -0
  394. package/dist/test/calendar/calendar-windows.examples.js.map +1 -0
  395. package/dist/test/calendar/calendar.examples.d.ts +1172 -915
  396. package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
  397. package/dist/test/calendar/calendar.examples.js +211 -124
  398. package/dist/test/calendar/calendar.examples.js.map +1 -1
  399. package/dist/test/calendar/optimise.examples.d.ts +132 -0
  400. package/dist/test/calendar/optimise.examples.d.ts.map +1 -0
  401. package/dist/test/calendar/optimise.examples.js +75 -0
  402. package/dist/test/calendar/optimise.examples.js.map +1 -0
  403. package/dist/test/examples-package.d.ts +49 -16
  404. package/dist/test/examples-package.d.ts.map +1 -1
  405. package/dist/test/examples-package.js +138 -49
  406. package/dist/test/examples-package.js.map +1 -1
  407. package/dist/test/flowchart/flowchart.examples.d.ts +3841 -2840
  408. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
  409. package/dist/test/flowchart/flowchart.examples.js +211 -121
  410. package/dist/test/flowchart/flowchart.examples.js.map +1 -1
  411. package/dist/test/plan/optimise.examples.d.ts +207 -0
  412. package/dist/test/plan/optimise.examples.d.ts.map +1 -0
  413. package/dist/test/plan/optimise.examples.js +98 -0
  414. package/dist/test/plan/optimise.examples.js.map +1 -0
  415. package/dist/test/plan/plan-events.examples.d.ts +4055 -3279
  416. package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
  417. package/dist/test/plan/plan-events.examples.js +492 -319
  418. package/dist/test/plan/plan-events.examples.js.map +1 -1
  419. package/dist/test/plan/plan-nested.examples.d.ts +1829 -0
  420. package/dist/test/plan/plan-nested.examples.d.ts.map +1 -0
  421. package/dist/test/plan/plan-nested.examples.js +321 -0
  422. package/dist/test/plan/plan-nested.examples.js.map +1 -0
  423. package/dist/test/plan/plan-records.examples.d.ts +391 -244
  424. package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
  425. package/dist/test/plan/plan-records.examples.js +186 -65
  426. package/dist/test/plan/plan-records.examples.js.map +1 -1
  427. package/dist/test/plan/plan-windows.examples.d.ts +1978 -803
  428. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
  429. package/dist/test/plan/plan-windows.examples.js +269 -99
  430. package/dist/test/plan/plan-windows.examples.js.map +1 -1
  431. package/dist/test/plan/plan.examples.d.ts +2238 -5726
  432. package/dist/test/plan/plan.examples.d.ts.map +1 -1
  433. package/dist/test/plan/plan.examples.js +846 -973
  434. package/dist/test/plan/plan.examples.js.map +1 -1
  435. package/dist/test/query/query.examples.d.ts +5221 -3005
  436. package/dist/test/query/query.examples.d.ts.map +1 -1
  437. package/dist/test/query/query.examples.js +169 -118
  438. package/dist/test/query/query.examples.js.map +1 -1
  439. package/dist/test/roster/domain.examples.d.ts +804 -0
  440. package/dist/test/roster/domain.examples.d.ts.map +1 -1
  441. package/dist/test/roster/domain.examples.js +3 -3
  442. package/dist/test/roster/domain.examples.js.map +1 -1
  443. package/dist/test/roster/optimise.examples.d.ts +485 -0
  444. package/dist/test/roster/optimise.examples.d.ts.map +1 -0
  445. package/dist/test/roster/optimise.examples.js +155 -0
  446. package/dist/test/roster/optimise.examples.js.map +1 -0
  447. package/dist/test/roster/roster-records.examples.d.ts +364 -404
  448. package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
  449. package/dist/test/roster/roster-records.examples.js +40 -26
  450. package/dist/test/roster/roster-records.examples.js.map +1 -1
  451. package/dist/test/roster/roster.examples.d.ts +5091 -1424
  452. package/dist/test/roster/roster.examples.d.ts.map +1 -1
  453. package/dist/test/roster/roster.examples.js +255 -109
  454. package/dist/test/roster/roster.examples.js.map +1 -1
  455. package/dist/test/roster/warehouse.d.ts +150 -7
  456. package/dist/test/roster/warehouse.d.ts.map +1 -1
  457. package/dist/test/roster/warehouse.js +36 -11
  458. package/dist/test/roster/warehouse.js.map +1 -1
  459. package/dist/test/schedule/schedule.examples.d.ts +2646 -2473
  460. package/dist/test/schedule/schedule.examples.d.ts.map +1 -1
  461. package/dist/test/schedule/schedule.examples.js +144 -88
  462. package/dist/test/schedule/schedule.examples.js.map +1 -1
  463. package/dist/test/schematic/schematic-records.examples.d.ts +454 -0
  464. package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -0
  465. package/dist/test/schematic/schematic-records.examples.js +219 -0
  466. package/dist/test/schematic/schematic-records.examples.js.map +1 -0
  467. package/dist/test/schematic/schematic.examples.d.ts +2640 -0
  468. package/dist/test/schematic/schematic.examples.d.ts.map +1 -0
  469. package/dist/test/schematic/schematic.examples.js +559 -0
  470. package/dist/test/schematic/schematic.examples.js.map +1 -0
  471. package/dist/test/sheet/optimise.examples.d.ts +184 -0
  472. package/dist/test/sheet/optimise.examples.d.ts.map +1 -0
  473. package/dist/test/sheet/optimise.examples.js +79 -0
  474. package/dist/test/sheet/optimise.examples.js.map +1 -0
  475. package/dist/test/sheet/sheet-records.examples.d.ts +208 -356
  476. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
  477. package/dist/test/sheet/sheet-records.examples.js +66 -29
  478. package/dist/test/sheet/sheet-records.examples.js.map +1 -1
  479. package/dist/test/sheet/sheet.examples.d.ts +3650 -3377
  480. package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
  481. package/dist/test/sheet/sheet.examples.js +406 -296
  482. package/dist/test/sheet/sheet.examples.js.map +1 -1
  483. package/dist/test/studio/component.examples.js +2 -2
  484. package/dist/test/studio/component.examples.js.map +1 -1
  485. package/dist/test/studio/page.examples.js +6 -6
  486. package/dist/test/studio/page.examples.js.map +1 -1
  487. package/dist/test/studio/studio.examples.d.ts +2329 -873
  488. package/dist/test/studio/studio.examples.d.ts.map +1 -1
  489. package/dist/test/studio/studio.examples.js +155 -107
  490. package/dist/test/studio/studio.examples.js.map +1 -1
  491. 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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"}
1
+ {"version":3,"file":"roster.examples.d.ts","sourceRoot":"","sources":["../../../test/roster/roster.examples.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM3B,CAAC;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMtB,CAAC;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM1B,CAAC;AACH,oFAA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"}
@@ -6,44 +6,104 @@ 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
- import { WarehouseActivity, WarehouseAgency, WarehouseCover, WarehouseDuty, WarehousePerson, WarehousePosition, WarehouseShift, WarehouseSuggestion, WarehouseTeam, WarehouseWeek, warehouseActivities, warehouseAgencies, warehouseCover, warehouseDuties, warehousePayRates, warehousePeople, warehousePositions, warehouseShifts, warehouseSuggestions, warehouseTeams, warehouseWeeks, } from "./warehouse.js";
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).
13
13
  export { WarehouseCover, WarehouseDuty, WarehouseRosterWeek, warehouseNextStart, warehousePrevious, warehousePreviousStart, warehouseStart, warehouseWeek, } from "./warehouse.js";
14
14
  // The warehouse's own records (`Builder Interfaces Spec.md` §5.7): its duties, the weeks of its rota and its cover
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("roster_duties_by_time", rosterDuties, { interval: { 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);
39
- // 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.
40
- export const rosterStaffByTeamName = e3.recordIndex("roster_staff_by_team_name", rosterStaff, { on: ["team", "name"] });
41
- export const rosterStaffByPosition = e3.recordIndex("roster_staff_by_position", rosterStaff, { on: ["position"] });
42
- export const rosterStaffByTrainer = e3.recordIndex("roster_staff_by_trainer", rosterStaff, { on: ["trainer"] });
43
- export const rosterStaffByAgency = e3.recordIndex("roster_staff_by_agency", rosterStaff, { on: ["agency"] });
44
- export const rosterStaffBySkill = e3.recordIndex("roster_staff_by_skill", rosterStaff, { on: ["skills"] });
45
- export const rosterStaffByName = e3.recordIndex("roster_staff_by_name", rosterStaff, { on: ["name"] });
46
- export const rosterActivitiesByGroup = e3.recordIndex("roster_activities_by_group", rosterActivities, { on: ["group"] });
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
+ });
99
+ /** The week patterns (#1406): the thirteen a planner drops on a person's week, the warehouse's own record. */
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
+ });
47
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. */
48
108
  export const rosterStaffFitBody = East.function([Roster.Types.FitRequest(WarehouseDuty)], Roster.Types.FitResult, ($, req) => {
49
109
  const answer = $.const(Roster.answer(WarehouseDuty));
@@ -60,27 +120,21 @@ export const rosterStaffFitBody = East.function([Roster.Types.FitRequest(Warehou
60
120
  });
61
121
  // The warehouse's fit, on e3: who fits a Find fix's need on its slot.
62
122
  export const rosterStaffFit = e3.function("roster_staff_fit", rosterStaffFitBody);
63
- // What the renderer's tests on e3 write and ask beside the examples (#1376): another session's edits of the
64
- // reference data, a roster the warehouse has locked, and another app's fit over the same staff.
65
- /** The staff's patch door: another session's edit of the staff. */
66
- export const rosterStaffPatch = e3.mutation.patch(rosterStaff);
67
- /** The shift times' patch door: another session's edit of them. */
68
- export const rosterShiftTimesPatch = e3.mutation.patch(rosterShiftTimes);
69
- /** The teams' patch door: another session's edit of them. */
70
- export const rosterTeamsPatch = e3.mutation.patch(rosterTeams);
71
- /** The positions' patch door: another session's edit of them. */
72
- export const rosterPositionsPatch = e3.mutation.patch(rosterPositions);
73
- /** The suggestions' patch door: another session's edit of them. */
74
- export const rosterSuggestionsPatch = e3.mutation.patch(rosterSuggestions);
75
123
  /** The duties of a roster the warehouse has locked: the warehouse's own duties, which no Save changes. */
76
- export const rosterLockedDuties = e3.record("roster_locked_duties", DictType(StringType, WarehouseDuty), warehouseDuties);
77
- /** The locked duties by their times: what a roster over them reads a week of them through. */
78
- export const rosterLockedDutiesByTime = e3.recordIndex("roster_locked_duties_by_time", rosterLockedDuties, { interval: { from: "start", to: "end" } });
79
- /** The locked roster's door, a checked one: it refuses every change, naming why — what a Save over it is answered. */
80
- export const rosterLockedDutiesPatch = e3.mutation.reduce("patch", rosterLockedDuties, East.function([DictType(StringType, WarehouseDuty), PatchType(DictType(StringType, WarehouseDuty))], DictType(StringType, WarehouseDuty), ($, duties, _patch) => {
81
- $.error("the roster is locked for the week");
82
- return duties;
83
- }));
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
+ });
84
138
  /**
85
139
  * Another app's fit over the same staff: the warehouse's order — the most spare contract hours first, whatever
86
140
  * their group — and a warning on whoever the slot's shift would take past their contract.
@@ -109,16 +163,16 @@ export const rosterWarehouse = example({
109
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"],
110
164
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
111
165
  // What the Roster writes: the duties, the weeks of the rota and the cover targets, each through its patch door.
112
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
166
+ const rota = $.let(Record.bind(rosterDuties));
113
167
  const entries = $.let(Data.bindPaged(rosterDuties));
114
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
115
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
116
- 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));
117
171
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
118
172
  const people = $.let(Data.bind(rosterStaff));
119
173
  const acts = $.let(Data.bind(rosterActivities));
120
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
121
- 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"] }));
122
176
  const slice = $.let(Slice.bindRecords("ex.rosterWarehouse", {
123
177
  // The week's duties: the Roster's navigation writes the range; no chip picks the week.
124
178
  duty: { source: byTime, range: "start" },
@@ -207,16 +261,16 @@ export const rosterMobile = example({
207
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.",
208
262
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "mobile", "Save", "Publish", "FieldForm"],
209
263
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
210
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
264
+ const rota = $.let(Record.bind(rosterDuties));
211
265
  const entries = $.let(Data.bindPaged(rosterDuties));
212
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
213
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
214
- 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));
215
269
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
216
270
  const people = $.let(Data.bind(rosterStaff));
217
271
  const acts = $.let(Data.bind(rosterActivities));
218
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
219
- 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"] }));
220
274
  const slice = $.let(Slice.bindRecords("ex.rosterMobile", {
221
275
  duty: { source: byTime, range: "start" },
222
276
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -246,19 +300,19 @@ export const rosterMobile = example({
246
300
  } })),
247
301
  });
248
302
  export const rosterPeople = example({
249
- inputs: [], description: "Weekly people layout over the same records: each person keeps their original key, contract hours and daily duties, with a separate agency-requests row.",
250
- keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "people", "Save", "Publish", "FieldForm"],
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.",
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"],
251
305
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
252
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
306
+ const rota = $.let(Record.bind(rosterDuties));
253
307
  const entries = $.let(Data.bindPaged(rosterDuties));
254
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
255
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
256
- 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));
257
311
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
258
312
  const people = $.let(Data.bind(rosterStaff));
259
313
  const acts = $.let(Data.bind(rosterActivities));
260
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
261
- 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"] }));
262
316
  const slice = $.let(Slice.bindRecords("ex.rosterPeople", {
263
317
  duty: { source: byTime, range: "start" },
264
318
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -271,7 +325,9 @@ export const rosterPeople = example({
271
325
  const teams = $.let(Data.bind(rosterTeams));
272
326
  const roles = $.let(Data.bind(rosterPositions));
273
327
  const ideas = $.let(Data.bind(rosterSuggestions));
274
- return _jsx(Box, { width: "100%", height: "760px", children: _jsx(Roster, { id: "rosterPeople", week: { start: "sunday" }, slice: { slice }, inspector: true, view: { layout: "people", period: "week", date: new Date("2028-03-09T00:00:00Z") }, events: { duty: Schedule.events(rota, {
328
+ // The warehouse's week patterns: the cards of the Patterns tab, each dropped on a person's week.
329
+ const weekPatterns = $.let(Data.bind(rosterPatterns));
330
+ return _jsx(Box, { width: "100%", height: "760px", children: _jsx(Roster, { id: "rosterPeople", week: { start: "sunday" }, slice: { slice }, inspector: true, view: { layout: "people", period: "week", date: new Date("2028-03-09T00:00:00Z") }, tileTimes: "different", events: { duty: Schedule.events(rota, {
275
331
  name: "Duty", icon: "user-clock", entries,
276
332
  start: "start", end: "end", resource: { field: "who", of: { staff: "people", agency: "agencies" } },
277
333
  shift: "shift", group: "team", position: "role", activity: "task",
@@ -281,26 +337,67 @@ export const rosterPeople = example({
281
337
  position: p => p.position, skills: p => p.skills, contract: p => p.contract, agency: p => p.agency,
282
338
  trainer: p => p.trainer, trainee: p => p.trainee, usual: p => p.usual }),
283
339
  agencies: Schedule.resources(firms.read(), { name: "Agencies", icon: "building", label: a => a.name }),
284
- }, periods: Schedule.periods(weeks, { every: "week", status: { field: "state", draft: "open", published: "issued" }, dismissed: "dismissed" }), targets: Roster.targets(cover, { day: "day", group: "team", shift: "shift", positions: "heads", hours: "hours" }), shifts: Roster.shifts(times.read(), { label: s => s.label, code: s => s.code, start: s => s.start, hours: s => s.hours, order: s => s.order }), groups: Roster.groups(teams.read(), { label: t => t.label, order: t => t.order }), positions: Roster.positions(roles.read(), { label: p => p.label, code: p => p.code, lead: p => p.lead, order: p => p.order }), activities: Roster.activities(acts.read(), { label: a => a.label, code: a => a.code, group: a => a.group, order: a => a.order }), proposals: Roster.proposals(ideas.read(), { person: s => s.person, day: s => s.day, group: s => s.team, shift: s => s.shift, reason: s => s.why }), rules: { rest: 10.0 }, library: [Roster.library.people(), Roster.library.activities(), Roster.library.tab(roles.read(), {
340
+ }, periods: Schedule.periods(weeks, { every: "week", status: { field: "state", draft: "open", published: "issued" }, dismissed: "dismissed" }), targets: Roster.targets(cover, { day: "day", group: "team", shift: "shift", positions: "heads", hours: "hours" }),
341
+ // Each shift's colour token, the warehouse's own: the tiles' and the marks' fill.
342
+ shifts: Roster.shifts(times.read(), { label: s => s.label, code: s => s.code, start: s => s.start, hours: s => s.hours, order: s => s.order, color: s => s.colour }), groups: Roster.groups(teams.read(), { label: t => t.label, order: t => t.order }), positions: Roster.positions(roles.read(), { label: p => p.label, code: p => p.code, lead: p => p.lead, order: p => p.order }), activities: Roster.activities(acts.read(), { label: a => a.label, code: a => a.code, group: a => a.group, order: a => a.order }), proposals: Roster.proposals(ideas.read(), { person: s => s.person, day: s => s.day, group: s => s.team, shift: s => s.shift, reason: s => s.why }), patterns: Roster.patterns(weekPatterns.read(), { name: "Patterns", icon: "calendar-week", label: w => w.label, days: w => w.days, order: w => w.order }), rules: { rest: 10.0 }, library: [Roster.library.people(), Roster.library.patterns(), Roster.library.activities(), Roster.library.tab(roles.read(), {
285
343
  name: "Positions", icon: "id-badge", label: p => p.label, meta: p => some(p.code),
286
344
  drop: (_p, key) => Schedule.patch(WarehouseDuty, { role: key }),
287
345
  })] }) });
288
346
  } })),
289
347
  });
348
+ export const rosterPeopleMonth = example({
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.",
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"],
351
+ fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
352
+ const rota = $.let(Record.bind(rosterDuties));
353
+ const entries = $.let(Data.bindPaged(rosterDuties));
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));
357
+ const people = $.let(Data.bind(rosterStaff));
358
+ const acts = $.let(Data.bind(rosterActivities));
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"] }));
361
+ const slice = $.let(Slice.bindRecords("ex.rosterPeopleMonth", {
362
+ duty: { source: byTime, range: "start" },
363
+ people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
364
+ fields: { team: { label: "Group", hints: ["inbound", "picking", "dispatch"] }, position: { label: "Position", hints: ["lead", "deputy", "acting", "crew"] },
365
+ trainer: { label: "Trainer" }, agency: { label: "Agency" }, skills: { label: "Skill" }, name: { label: "Name" } } },
366
+ activities: { source: actIndex, icon: { prefix: "fas", name: "list-check" }, fields: { group: { label: "Group", hints: ["inbound", "picking", "dispatch", null] } } },
367
+ }, { presets: [{ id: "leads", name: "Leads", where: { people: { position: ["lead", "deputy", "acting"] } } }] }));
368
+ const firms = $.let(Data.bind(rosterAgencies));
369
+ const times = $.let(Data.bind(rosterShiftTimes));
370
+ const teams = $.let(Data.bind(rosterTeams));
371
+ const roles = $.let(Data.bind(rosterPositions));
372
+ const ideas = $.let(Data.bind(rosterSuggestions));
373
+ const weekPatterns = $.let(Data.bind(rosterPatterns));
374
+ return _jsx(Box, { width: "100%", height: "760px", children: _jsx(Roster, { id: "rosterPeopleMonth", week: { start: "sunday" }, slice: { slice }, inspector: true, view: { layout: "people", period: "month", date: new Date("2028-03-09T00:00:00Z") }, letters: true, events: { duty: Schedule.events(rota, {
375
+ name: "Duty", icon: "user-clock", entries,
376
+ start: "start", end: "end", resource: { field: "who", of: { staff: "people", agency: "agencies" } },
377
+ shift: "shift", group: "team", position: "role", activity: "task",
378
+ hours: d => d.start.durationMinutes(d.end).subtract(d.unpaidBreak).divide(60.0),
379
+ }) }, resources: {
380
+ people: Schedule.resources(people.read(), { name: "People", icon: "user", label: p => p.name, group: p => p.team,
381
+ position: p => p.position, skills: p => p.skills, contract: p => p.contract, agency: p => p.agency,
382
+ trainer: p => p.trainer, trainee: p => p.trainee, usual: p => p.usual }),
383
+ agencies: Schedule.resources(firms.read(), { name: "Agencies", icon: "building", label: a => a.name }),
384
+ }, periods: Schedule.periods(weeks, { every: "week", status: { field: "state", draft: "open", published: "issued" }, dismissed: "dismissed" }), targets: Roster.targets(cover, { day: "day", group: "team", shift: "shift", positions: "heads", hours: "hours" }), shifts: Roster.shifts(times.read(), { label: s => s.label, code: s => s.code, start: s => s.start, hours: s => s.hours, order: s => s.order, color: s => s.colour }), groups: Roster.groups(teams.read(), { label: t => t.label, order: t => t.order }), positions: Roster.positions(roles.read(), { label: p => p.label, code: p => p.code, lead: p => p.lead, order: p => p.order }), activities: Roster.activities(acts.read(), { label: a => a.label, code: a => a.code, group: a => a.group, order: a => a.order }), proposals: Roster.proposals(ideas.read(), { person: s => s.person, day: s => s.day, group: s => s.team, shift: s => s.shift, reason: s => s.why }), patterns: Roster.patterns(weekPatterns.read(), { name: "Patterns", icon: "calendar-week", label: w => w.label, days: w => w.days, order: w => w.order }), rules: { rest: 10.0 }, library: [Roster.library.people(), Roster.library.patterns(), Roster.library.activities()] }) });
385
+ } })),
386
+ });
290
387
  export const rosterWeek = example({
291
388
  inputs: [], description: "Seven days of group-by-shift coverage over the warehouse's own records, opening any day for detailed staffing.",
292
389
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "week", "Save", "Publish", "FieldForm"],
293
390
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
294
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
391
+ const rota = $.let(Record.bind(rosterDuties));
295
392
  const entries = $.let(Data.bindPaged(rosterDuties));
296
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
297
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
298
- 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));
299
396
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
300
397
  const people = $.let(Data.bind(rosterStaff));
301
398
  const acts = $.let(Data.bind(rosterActivities));
302
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
303
- 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"] }));
304
401
  const slice = $.let(Slice.bindRecords("ex.rosterWeek", {
305
402
  duty: { source: byTime, range: "start" },
306
403
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -331,15 +428,15 @@ export const rosterWeek = example({
331
428
  });
332
429
  export const rosterWindowed = example({
333
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.",
334
- 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"],
335
432
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
336
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
433
+ const rota = $.let(Record.bind(rosterDuties));
337
434
  const entries = $.let(Data.bindPaged(rosterDuties));
338
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
435
+ const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
339
436
  // The weeks of the rota read by key: the week, the week before it and the open picker's month.
340
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
437
+ const weeks = $.let(Record.bind(rosterWeeks));
341
438
  const weekEntries = $.let(Data.bindPaged(rosterWeeks));
342
- const cover = $.let(Record.bind(rosterCover, [rosterCoverPatch]));
439
+ const cover = $.let(Record.bind(rosterCover));
343
440
  const people = $.let(Data.bind(rosterStaff));
344
441
  const acts = $.let(Data.bind(rosterActivities));
345
442
  // One source: the week's duties, its range the Roster's navigation.
@@ -374,28 +471,38 @@ export const MinimalWorker = StructType({ name: StringType, team: StringType });
374
471
  export const MinimalShiftTime = StructType({ name: StringType, code: StringType, starts: Schedule.Types.Clock, hours: FloatType, order: IntegerType });
375
472
  /** One of its teams: a name. */
376
473
  export const MinimalTeam = StructType({ name: StringType });
377
- export const minimalDuties = e3.record("rota_minimal_duties", DictType(StringType, MinimalDuty), new Map([
378
- ["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" }],
379
- ["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" }],
380
- ["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" }],
381
- ]));
382
- export const minimalDutiesPatch = e3.mutation.patch(minimalDuties);
383
- export const minimalWorkers = e3.record("rota_minimal_workers", DictType(StringType, MinimalWorker), new Map([
384
- ["w-01", { name: "Ada Brook", team: "inbound" }],
385
- ["w-02", { name: "Tom Vale", team: "dispatch" }],
386
- ]));
387
- export const minimalShiftTimes = e3.record("rota_minimal_shift_times", DictType(StringType, MinimalShiftTime), new Map([
388
- ["early", { name: "Early", code: "E", starts: { hour: 6n, minute: 0n }, hours: 8.0, order: 1n }],
389
- ["late", { name: "Late", code: "L", starts: { hour: 14n, minute: 0n }, hours: 8.0, order: 2n }],
390
- ]));
391
- export const minimalTeams = e3.record("rota_minimal_teams", DictType(StringType, MinimalTeam), new Map([
392
- ["inbound", { name: "Inbound" }], ["dispatch", { name: "Dispatch" }],
393
- ]));
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
+ });
394
501
  export const rosterMinimal = example({
395
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.",
396
503
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Roster.shifts", "Roster.groups", "Record.bind", "minimal"],
397
504
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
398
- const rota = $.let(Record.bind(minimalDuties, [minimalDutiesPatch]));
505
+ const rota = $.let(Record.bind(minimalDuties));
399
506
  const staff = $.let(Data.bind(minimalWorkers));
400
507
  const times = $.let(Data.bind(minimalShiftTimes));
401
508
  const groups = $.let(Data.bind(minimalTeams));
@@ -410,16 +517,16 @@ export const rosterPublished = example({
410
517
  inputs: [], description: "The week before, published, is read-only: navigation, staff filtering, coverage and inspection remain available.",
411
518
  keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "published", "read-only", "Publish"],
412
519
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
413
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
520
+ const rota = $.let(Record.bind(rosterDuties));
414
521
  const entries = $.let(Data.bindPaged(rosterDuties));
415
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
416
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
417
- 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));
418
525
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
419
526
  const people = $.let(Data.bind(rosterStaff));
420
527
  const acts = $.let(Data.bind(rosterActivities));
421
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
422
- 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"] }));
423
530
  const slice = $.let(Slice.bindRecords("ex.rosterPublished", {
424
531
  duty: { source: byTime, range: "start" },
425
532
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -452,16 +559,16 @@ export const rosterCustomInspector = example({
452
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.",
453
560
  keywords: ["Roster", "Schedule.events", "inspector", "Roster.targets", "Schedule.resources", "Schedule.periods", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "Save", "Publish", "FieldForm"],
454
561
  fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
455
- const rota = $.let(Record.bind(rosterDuties, [rosterDutiesPatch]));
562
+ const rota = $.let(Record.bind(rosterDuties));
456
563
  const entries = $.let(Data.bindPaged(rosterDuties));
457
- const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [rosterDutiesByTime] }));
458
- const weeks = $.let(Record.bind(rosterWeeks, [rosterWeeksPatch]));
459
- 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));
460
567
  // Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
461
568
  const people = $.let(Data.bind(rosterStaff));
462
569
  const acts = $.let(Data.bind(rosterActivities));
463
- const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [rosterStaffByTeamName, rosterStaffByPosition, rosterStaffByTrainer, rosterStaffByAgency, rosterStaffBySkill, rosterStaffByName] }));
464
- 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"] }));
465
572
  const slice = $.let(Slice.bindRecords("ex.rosterCustomInspector", {
466
573
  duty: { source: byTime, range: "start" },
467
574
  people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
@@ -503,4 +610,43 @@ export const rosterCustomInspector = example({
503
610
  })] }) });
504
611
  } })),
505
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
+ });
506
652
  //# sourceMappingURL=roster.examples.js.map