@elaraai/e3-ui 1.0.93 → 1.0.95

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 (303) hide show
  1. package/dist/src/allocation/adapters.d.ts +159 -0
  2. package/dist/src/allocation/adapters.d.ts.map +1 -0
  3. package/dist/src/allocation/adapters.js +241 -0
  4. package/dist/src/allocation/adapters.js.map +1 -0
  5. package/dist/src/allocation/functions.d.ts +664 -0
  6. package/dist/src/allocation/functions.d.ts.map +1 -0
  7. package/dist/src/allocation/functions.js +782 -0
  8. package/dist/src/allocation/functions.js.map +1 -0
  9. package/dist/src/allocation/index.d.ts +2985 -0
  10. package/dist/src/allocation/index.d.ts.map +1 -0
  11. package/dist/src/allocation/index.js +499 -0
  12. package/dist/src/allocation/index.js.map +1 -0
  13. package/dist/src/allocation/types.d.ts +832 -0
  14. package/dist/src/allocation/types.d.ts.map +1 -0
  15. package/dist/src/allocation/types.js +360 -0
  16. package/dist/src/allocation/types.js.map +1 -0
  17. package/dist/src/bind/func.d.ts +14 -0
  18. package/dist/src/bind/func.d.ts.map +1 -1
  19. package/dist/src/bind/func.js +22 -1
  20. package/dist/src/bind/func.js.map +1 -1
  21. package/dist/src/calendar/index.d.ts +510 -1639
  22. package/dist/src/calendar/index.d.ts.map +1 -1
  23. package/dist/src/calendar/index.js +56 -29
  24. package/dist/src/calendar/index.js.map +1 -1
  25. package/dist/src/flowchart/canvas.d.ts +9 -21
  26. package/dist/src/flowchart/canvas.d.ts.map +1 -1
  27. package/dist/src/flowchart/canvas.js +10 -22
  28. package/dist/src/flowchart/canvas.js.map +1 -1
  29. package/dist/src/flowchart/flowchart.d.ts +19 -13
  30. package/dist/src/flowchart/flowchart.d.ts.map +1 -1
  31. package/dist/src/flowchart/flowchart.js.map +1 -1
  32. package/dist/src/flowchart/index.d.ts +44 -21
  33. package/dist/src/flowchart/index.d.ts.map +1 -1
  34. package/dist/src/flowchart/index.js +43 -20
  35. package/dist/src/flowchart/index.js.map +1 -1
  36. package/dist/src/flowchart/library.d.ts +166 -81
  37. package/dist/src/flowchart/library.d.ts.map +1 -1
  38. package/dist/src/flowchart/library.js +232 -105
  39. package/dist/src/flowchart/library.js.map +1 -1
  40. package/dist/src/flowchart/over.d.ts +9 -16
  41. package/dist/src/flowchart/over.d.ts.map +1 -1
  42. package/dist/src/flowchart/over.js +9 -16
  43. package/dist/src/flowchart/over.js.map +1 -1
  44. package/dist/src/flowchart/payload.d.ts +710 -508
  45. package/dist/src/flowchart/payload.d.ts.map +1 -1
  46. package/dist/src/flowchart/payload.js +128 -74
  47. package/dist/src/flowchart/payload.js.map +1 -1
  48. package/dist/src/flowchart/window.d.ts +132 -347
  49. package/dist/src/flowchart/window.d.ts.map +1 -1
  50. package/dist/src/flowchart/window.js +48 -55
  51. package/dist/src/flowchart/window.js.map +1 -1
  52. package/dist/src/index.d.ts +11 -7
  53. package/dist/src/index.d.ts.map +1 -1
  54. package/dist/src/index.js +14 -6
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/internal.d.ts +18 -7
  57. package/dist/src/internal.d.ts.map +1 -1
  58. package/dist/src/internal.js +28 -9
  59. package/dist/src/internal.js.map +1 -1
  60. package/dist/src/plan/event-rows.d.ts +26 -10
  61. package/dist/src/plan/event-rows.d.ts.map +1 -1
  62. package/dist/src/plan/event-rows.js +39 -13
  63. package/dist/src/plan/event-rows.js.map +1 -1
  64. package/dist/src/plan/ir.d.ts +244 -815
  65. package/dist/src/plan/ir.d.ts.map +1 -1
  66. package/dist/src/plan/ir.js +8 -6
  67. package/dist/src/plan/ir.js.map +1 -1
  68. package/dist/src/plan/library.d.ts +3 -0
  69. package/dist/src/plan/library.d.ts.map +1 -1
  70. package/dist/src/plan/library.js +1 -1
  71. package/dist/src/plan/library.js.map +1 -1
  72. package/dist/src/plan/ordered-source.d.ts +1 -0
  73. package/dist/src/plan/ordered-source.d.ts.map +1 -1
  74. package/dist/src/plan/plan.d.ts +559 -1667
  75. package/dist/src/plan/plan.d.ts.map +1 -1
  76. package/dist/src/plan/plan.js +123 -45
  77. package/dist/src/plan/plan.js.map +1 -1
  78. package/dist/src/plan/root.d.ts +16 -20
  79. package/dist/src/plan/root.d.ts.map +1 -1
  80. package/dist/src/plan/root.js +23 -33
  81. package/dist/src/plan/root.js.map +1 -1
  82. package/dist/src/roster/coverage.d.ts +17 -231
  83. package/dist/src/roster/coverage.d.ts.map +1 -1
  84. package/dist/src/roster/coverage.js +94 -90
  85. package/dist/src/roster/coverage.js.map +1 -1
  86. package/dist/src/roster/fit.d.ts +59 -0
  87. package/dist/src/roster/fit.d.ts.map +1 -0
  88. package/dist/src/roster/fit.js +155 -0
  89. package/dist/src/roster/fit.js.map +1 -0
  90. package/dist/src/roster/index.d.ts +2862 -3662
  91. package/dist/src/roster/index.d.ts.map +1 -1
  92. package/dist/src/roster/index.js +383 -81
  93. package/dist/src/roster/index.js.map +1 -1
  94. package/dist/src/roster/library.d.ts +37 -92
  95. package/dist/src/roster/library.d.ts.map +1 -1
  96. package/dist/src/roster/library.js +25 -64
  97. package/dist/src/roster/library.js.map +1 -1
  98. package/dist/src/roster/lists.d.ts +195 -0
  99. package/dist/src/roster/lists.d.ts.map +1 -0
  100. package/dist/src/roster/lists.js +233 -0
  101. package/dist/src/roster/lists.js.map +1 -0
  102. package/dist/src/roster/rules.d.ts +17 -260
  103. package/dist/src/roster/rules.d.ts.map +1 -1
  104. package/dist/src/roster/rules.js +135 -132
  105. package/dist/src/roster/rules.js.map +1 -1
  106. package/dist/src/roster/targets.d.ts +115 -0
  107. package/dist/src/roster/targets.d.ts.map +1 -0
  108. package/dist/src/roster/targets.js +213 -0
  109. package/dist/src/roster/targets.js.map +1 -0
  110. package/dist/src/roster/times.d.ts +251 -0
  111. package/dist/src/roster/times.d.ts.map +1 -0
  112. package/dist/src/roster/times.js +174 -0
  113. package/dist/src/roster/times.js.map +1 -0
  114. package/dist/src/roster/types.d.ts +828 -183
  115. package/dist/src/roster/types.d.ts.map +1 -1
  116. package/dist/src/roster/types.js +224 -97
  117. package/dist/src/roster/types.js.map +1 -1
  118. package/dist/src/schedule/accessor.d.ts +28 -0
  119. package/dist/src/schedule/accessor.d.ts.map +1 -0
  120. package/dist/src/schedule/accessor.js +39 -0
  121. package/dist/src/schedule/accessor.js.map +1 -0
  122. package/dist/src/schedule/events.d.ts +170 -42
  123. package/dist/src/schedule/events.d.ts.map +1 -1
  124. package/dist/src/schedule/events.js +431 -171
  125. package/dist/src/schedule/events.js.map +1 -1
  126. package/dist/src/schedule/index.d.ts +41 -4
  127. package/dist/src/schedule/index.d.ts.map +1 -1
  128. package/dist/src/schedule/index.js +35 -3
  129. package/dist/src/schedule/index.js.map +1 -1
  130. package/dist/src/schedule/library.d.ts +13 -3
  131. package/dist/src/schedule/library.d.ts.map +1 -1
  132. package/dist/src/schedule/library.js +11 -4
  133. package/dist/src/schedule/library.js.map +1 -1
  134. package/dist/src/schedule/periods.d.ts +115 -0
  135. package/dist/src/schedule/periods.d.ts.map +1 -0
  136. package/dist/src/schedule/periods.js +215 -0
  137. package/dist/src/schedule/periods.js.map +1 -0
  138. package/dist/src/schedule/record-window.d.ts +25 -3
  139. package/dist/src/schedule/record-window.d.ts.map +1 -1
  140. package/dist/src/schedule/record-window.js +31 -18
  141. package/dist/src/schedule/record-window.js.map +1 -1
  142. package/dist/src/schedule/resources.d.ts +82 -4
  143. package/dist/src/schedule/resources.d.ts.map +1 -1
  144. package/dist/src/schedule/resources.js +44 -14
  145. package/dist/src/schedule/resources.js.map +1 -1
  146. package/dist/src/schedule/session.d.ts +69 -0
  147. package/dist/src/schedule/session.d.ts.map +1 -0
  148. package/dist/src/schedule/session.js +121 -0
  149. package/dist/src/schedule/session.js.map +1 -0
  150. package/dist/src/schedule/templates.d.ts +14 -2
  151. package/dist/src/schedule/templates.d.ts.map +1 -1
  152. package/dist/src/schedule/templates.js +5 -3
  153. package/dist/src/schedule/templates.js.map +1 -1
  154. package/dist/src/schedule/types.d.ts +1671 -37
  155. package/dist/src/schedule/types.d.ts.map +1 -1
  156. package/dist/src/schedule/types.js +196 -5
  157. package/dist/src/schedule/types.js.map +1 -1
  158. package/dist/src/schedule/window.d.ts +14 -0
  159. package/dist/src/schedule/window.d.ts.map +1 -1
  160. package/dist/src/schedule/window.js +14 -4
  161. package/dist/src/schedule/window.js.map +1 -1
  162. package/dist/src/schedule/words.d.ts +22 -0
  163. package/dist/src/schedule/words.d.ts.map +1 -0
  164. package/dist/src/schedule/words.js +25 -0
  165. package/dist/src/schedule/words.js.map +1 -0
  166. package/dist/src/sheet/index.d.ts +61 -27
  167. package/dist/src/sheet/index.d.ts.map +1 -1
  168. package/dist/src/sheet/index.js +59 -25
  169. package/dist/src/sheet/index.js.map +1 -1
  170. package/dist/src/sheet/library.d.ts +21 -3
  171. package/dist/src/sheet/library.d.ts.map +1 -1
  172. package/dist/src/sheet/library.js +23 -6
  173. package/dist/src/sheet/library.js.map +1 -1
  174. package/dist/src/sheet/registers.d.ts +100 -85
  175. package/dist/src/sheet/registers.d.ts.map +1 -1
  176. package/dist/src/sheet/registers.js +100 -85
  177. package/dist/src/sheet/registers.js.map +1 -1
  178. package/dist/src/sheet/root.d.ts +8 -12
  179. package/dist/src/sheet/root.d.ts.map +1 -1
  180. package/dist/src/sheet/root.js +6 -40
  181. package/dist/src/sheet/root.js.map +1 -1
  182. package/dist/src/sheet/sheet.d.ts +598 -2349
  183. package/dist/src/sheet/sheet.d.ts.map +1 -1
  184. package/dist/src/sheet/sheet.js +124 -37
  185. package/dist/src/sheet/sheet.js.map +1 -1
  186. package/dist/src/sheet/sub-rows.d.ts +74 -28
  187. package/dist/src/sheet/sub-rows.d.ts.map +1 -1
  188. package/dist/src/sheet/sub-rows.js +74 -28
  189. package/dist/src/sheet/sub-rows.js.map +1 -1
  190. package/dist/src/sheet/templates.d.ts +98 -34
  191. package/dist/src/sheet/templates.d.ts.map +1 -1
  192. package/dist/src/sheet/templates.js +102 -58
  193. package/dist/src/sheet/templates.js.map +1 -1
  194. package/dist/src/sheet/types.d.ts +289 -1359
  195. package/dist/src/sheet/types.d.ts.map +1 -1
  196. package/dist/src/sheet/types.js +20 -26
  197. package/dist/src/sheet/types.js.map +1 -1
  198. package/dist/src/sheet/views.d.ts +10 -11
  199. package/dist/src/sheet/views.d.ts.map +1 -1
  200. package/dist/src/sheet/views.js +15 -20
  201. package/dist/src/sheet/views.js.map +1 -1
  202. package/dist/src/{roster/visibility.d.ts → utils/key-visibility.d.ts} +42 -7
  203. package/dist/src/utils/key-visibility.d.ts.map +1 -0
  204. package/dist/src/utils/key-visibility.js +36 -0
  205. package/dist/src/utils/key-visibility.js.map +1 -0
  206. package/dist/src/utils/ordered-source.d.ts +1 -0
  207. package/dist/src/utils/ordered-source.d.ts.map +1 -1
  208. package/dist/src/utils/ordered-source.js +8 -3
  209. package/dist/src/utils/ordered-source.js.map +1 -1
  210. package/dist/src/utils/record-sources.d.ts +107 -0
  211. package/dist/src/utils/record-sources.d.ts.map +1 -0
  212. package/dist/src/utils/record-sources.js +132 -0
  213. package/dist/src/utils/record-sources.js.map +1 -0
  214. package/dist/test/allocation/allocation.examples.d.ts +2902 -0
  215. package/dist/test/allocation/allocation.examples.d.ts.map +1 -0
  216. package/dist/test/allocation/allocation.examples.js +643 -0
  217. package/dist/test/allocation/allocation.examples.js.map +1 -0
  218. package/dist/test/allocation/fit.examples.d.ts +546 -0
  219. package/dist/test/allocation/fit.examples.d.ts.map +1 -0
  220. package/dist/test/allocation/fit.examples.js +171 -0
  221. package/dist/test/allocation/fit.examples.js.map +1 -0
  222. package/dist/test/allocation/kiln-yard.d.ts +181 -0
  223. package/dist/test/allocation/kiln-yard.d.ts.map +1 -0
  224. package/dist/test/allocation/kiln-yard.js +228 -0
  225. package/dist/test/allocation/kiln-yard.js.map +1 -0
  226. package/dist/test/bind/data/data.examples.d.ts +651 -1
  227. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  228. package/dist/test/bind/data/data.examples.js +140 -2
  229. package/dist/test/bind/data/data.examples.js.map +1 -1
  230. package/dist/test/bind/func/func.examples.d.ts +10 -1
  231. package/dist/test/bind/func/func.examples.d.ts.map +1 -1
  232. package/dist/test/bind/func/func.examples.js +8 -1
  233. package/dist/test/bind/func/func.examples.js.map +1 -1
  234. package/dist/test/bind/record/record.examples.d.ts +633 -1
  235. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  236. package/dist/test/bind/record/record.examples.js +26 -2
  237. package/dist/test/bind/record/record.examples.js.map +1 -1
  238. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
  239. package/dist/test/calendar/calendar-records.examples.js +18 -14
  240. package/dist/test/calendar/calendar-records.examples.js.map +1 -1
  241. package/dist/test/calendar/calendar.examples.d.ts +521 -16
  242. package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
  243. package/dist/test/calendar/calendar.examples.js +182 -135
  244. package/dist/test/calendar/calendar.examples.js.map +1 -1
  245. package/dist/test/examples-package.d.ts +75 -0
  246. package/dist/test/examples-package.d.ts.map +1 -0
  247. package/dist/test/examples-package.js +263 -0
  248. package/dist/test/examples-package.js.map +1 -0
  249. package/dist/test/flowchart/flowchart.examples.d.ts +211 -19
  250. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
  251. package/dist/test/flowchart/flowchart.examples.js +102 -75
  252. package/dist/test/flowchart/flowchart.examples.js.map +1 -1
  253. package/dist/test/plan/plan-events.examples.d.ts +1439 -209
  254. package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
  255. package/dist/test/plan/plan-events.examples.js +199 -59
  256. package/dist/test/plan/plan-events.examples.js.map +1 -1
  257. package/dist/test/plan/plan-records.examples.d.ts +420 -0
  258. package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
  259. package/dist/test/plan/plan-records.examples.js +70 -19
  260. package/dist/test/plan/plan-records.examples.js.map +1 -1
  261. package/dist/test/plan/plan-windows.examples.d.ts +636 -55
  262. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
  263. package/dist/test/plan/plan-windows.examples.js +69 -33
  264. package/dist/test/plan/plan-windows.examples.js.map +1 -1
  265. package/dist/test/plan/plan.examples.d.ts +153 -31
  266. package/dist/test/plan/plan.examples.d.ts.map +1 -1
  267. package/dist/test/plan/plan.examples.js +178 -101
  268. package/dist/test/plan/plan.examples.js.map +1 -1
  269. package/dist/test/roster/domain.examples.d.ts +467 -250
  270. package/dist/test/roster/domain.examples.d.ts.map +1 -1
  271. package/dist/test/roster/domain.examples.js +92 -29
  272. package/dist/test/roster/domain.examples.js.map +1 -1
  273. package/dist/test/roster/roster-records.examples.d.ts +430 -586
  274. package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
  275. package/dist/test/roster/roster-records.examples.js +102 -43
  276. package/dist/test/roster/roster-records.examples.js.map +1 -1
  277. package/dist/test/roster/roster.examples.d.ts +2319 -606
  278. package/dist/test/roster/roster.examples.d.ts.map +1 -1
  279. package/dist/test/roster/roster.examples.js +456 -148
  280. package/dist/test/roster/roster.examples.js.map +1 -1
  281. package/dist/test/roster/warehouse.d.ts +172 -63
  282. package/dist/test/roster/warehouse.d.ts.map +1 -1
  283. package/dist/test/roster/warehouse.js +172 -39
  284. package/dist/test/roster/warehouse.js.map +1 -1
  285. package/dist/test/schedule/schedule.examples.d.ts +3499 -0
  286. package/dist/test/schedule/schedule.examples.d.ts.map +1 -0
  287. package/dist/test/schedule/schedule.examples.js +192 -0
  288. package/dist/test/schedule/schedule.examples.js.map +1 -0
  289. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
  290. package/dist/test/sheet/sheet-records.examples.js +22 -18
  291. package/dist/test/sheet/sheet-records.examples.js.map +1 -1
  292. package/dist/test/sheet/sheet.examples.d.ts +715 -26
  293. package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
  294. package/dist/test/sheet/sheet.examples.js +204 -130
  295. package/dist/test/sheet/sheet.examples.js.map +1 -1
  296. package/package.json +17 -10
  297. package/dist/src/roster/people.d.ts +0 -50
  298. package/dist/src/roster/people.d.ts.map +0 -1
  299. package/dist/src/roster/people.js +0 -32
  300. package/dist/src/roster/people.js.map +0 -1
  301. package/dist/src/roster/visibility.d.ts.map +0 -1
  302. package/dist/src/roster/visibility.js +0 -25
  303. package/dist/src/roster/visibility.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/roster/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe5B,CAAC;AACH,8CAA8C;AAC9C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/roster/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACH,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAc,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAE5I,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EACxD,MAAM,eAAe,CAAC;AACvB,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAA0B,aAAa,EAAE,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAClH,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAmD,MAAM,sBAAsB,CAAC;AAE1G,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7G,OAAO,EACW,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAC5F,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EACnF,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAmB,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAMhC,gEAAgE;AAChE,eAAO,MAAM,gBAAgB;;;EAAsD,CAAC;AACpF,qEAAqE;AACrE,eAAO,MAAM,gBAAgB;;;EAAiD,CAAC;AAC/E,0HAA0H;AAC1H,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;EAAsF,CAAC;AAExH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B5B,CAAC;AACH,8CAA8C;AAC9C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -2,114 +2,416 @@
2
2
  * Copyright (c) 2025 Elara AI Pty Ltd
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
- import { ArrayType, AsyncFunctionType, BooleanType, DateTimeType, DictType, East, FloatType, FunctionType, NullType, OptionType, SetType, StringType, StructType, VariantType, none, some, variant, } from "@elaraai/east";
6
- import { EastUI, Editing, UIComponentType } from "@elaraai/east-ui";
7
- import { isRecordSlice, recordSliceChrome, RecordSliceChromeType, RowSourceType, localSliceHandle, SliceAffordanceType, SliceBindType, SliceChromeType } from "@elaraai/east-ui/internal";
8
- import { DataPagedHandleType } from "../bind/data.js";
9
- import { Record, RecordBindingType } from "../bind/record.js";
10
- import * as T from "./types.js";
11
- import { ScheduleClockType } from "../schedule/types.js";
5
+ /**
6
+ * `<Roster>` (#1368, `Builder Interfaces Spec.md` §5): staffing over the
7
+ * app's own records, in the renderer's BuilderFrame. It writes the app's
8
+ * duties through the duty kind's roles (`Schedule.events`), reads its people
9
+ * and agencies (`Schedule.resources`), publishes its weeks
10
+ * (`Schedule.periods`) and writes its targets (`Roster.targets`), with the
11
+ * lists it reads over the app's rows (`Roster.shifts`, `groups`, `positions`,
12
+ * `activities`, `proposals`). It stores nothing in a shape of its own.
13
+ *
14
+ * The tag validates, builds the people and agencies from their kinds'
15
+ * accessors, and assembles the closed payload; it composes no East UI
16
+ * component and emits no layout, session or gesture program. The app's duty
17
+ * row type `R` crosses the payload as beast2 bytes, as Schedule's kinds' rows
18
+ * do: the app's `pay` and `check` over bytes at `PayRequest(R)` and
19
+ * `CheckContext(R)`, and the fit's binding checked against `FitRequest(R)`.
20
+ * The renderer compiles the Roster's functions over `R`, the duty kind's
21
+ * `rowType`.
22
+ *
23
+ * @packageDocumentation
24
+ */
25
+ import { ArrayType, BlobType, BooleanType, DateTimeType, East, Expr, FunctionType, NullType, OptionType, SetType, StringType, StructType, VariantType, isTypeEqual, none, printType, some, variant, } from "@elaraai/east";
26
+ import { EastUI } from "@elaraai/east-ui";
27
+ import { RecordSlicesChromeType, RowSourceType } from "@elaraai/east-ui/internal";
28
+ import { FuncBindingType, boundFuncSignature } from "../bind/func.js";
29
+ import { scheduleCheck } from "../schedule/index.js";
30
+ import { ScheduleAuthorTabType, buildScheduleTab } from "../schedule/library.js";
31
+ import { ScheduleClockType, SchedulePeriodsKindType, ScheduleRosterKindType } from "../schedule/types.js";
32
+ import { recordSources } from "../utils/record-sources.js";
12
33
  import { rosterCoverage, rosterWeekHours } from "./coverage.js";
34
+ import { rosterAnswer, rosterFit } from "./fit.js";
35
+ import { rosterActivitiesTab, rosterLibraryTab, rosterPeopleTab } from "./library.js";
36
+ import { isRosterList, rosterActivities, rosterGroups, rosterPositions, rosterProposals, rosterShifts, } from "./lists.js";
13
37
  import { rosterCheck, rosterRest } from "./rules.js";
14
- import { rosterPeople } from "./people.js";
15
- import { rosterVisibility } from "./visibility.js";
16
- import { RosterAuthorTabType, RosterPatchType, buildRosterTab, rosterActivitiesTab, rosterLibraryTab, rosterPatch, rosterPeopleTab, } from "./library.js";
38
+ import { isRosterTargets, rosterTargets } from "./targets.js";
39
+ import * as T from "./types.js";
40
+ // ============================================================================
41
+ // The payload
42
+ // ============================================================================
17
43
  /** Roster's layout: group shifts, or people across the week. */
18
44
  export const RosterLayoutType = VariantType({ shifts: NullType, people: NullType });
19
45
  /** Roster's displayed period. People always shows the whole week. */
20
46
  export const RosterPeriodType = VariantType({ day: NullType, week: NullType });
21
- /** A declared built-in or author-defined library tab. */
22
- export const RosterLibraryTabType = VariantType({ people: NullType, activities: NullType, tab: RosterAuthorTabType });
23
- /** A custom assignment form receives the value and an update callback, as Plan does. */
24
- export const RosterAssignmentFormType = FunctionType([T.RosterAssignmentType, FunctionType([T.RosterAssignmentType], NullType)], UIComponentType);
25
- /** A custom requirement form receives the value and an update callback. */
26
- export const RosterRequirementFormType = FunctionType([T.RosterRequirementType, FunctionType([T.RosterRequirementType], NullType)], UIComponentType);
27
- /** Optional forms; absent forms use the shared FieldForm inspector. */
28
- export const RosterInspectorType = StructType({
29
- assignment: OptionType(RosterAssignmentFormType), requirement: OptionType(RosterRequirementFormType),
30
- });
31
- /** Optional paged history, over the same weeks record. */
32
- export const RosterWindowType = DataPagedHandleType(T.RosterWeeksType);
33
- /** The closed renderer payload. BuilderFrame is internal to the renderer. */
47
+ /** A declared library tab: the People tab, the Activities tab, or an app's tab, its cards resolved over the duty kind. */
48
+ export const RosterLibraryTabType = VariantType({ people: NullType, activities: NullType, tab: ScheduleAuthorTabType });
49
+ /**
50
+ * The closed renderer payload. BuilderFrame is internal to the renderer.
51
+ * @property duty - The duty kind: the app's duties read and written through their roles, over bytes at the row type
52
+ * @property people - Every person, from the `people` resource kind's accessors: the calculation scope, whatever the slice shows
53
+ * @property agencies - Every agency, from the `agencies` resource kind's
54
+ * @property periods - The app's weeks: their status and dismissals, and Publish; `none`, no Publish
55
+ * @property targets - The app's targets, a row per slot; `none`, no slot has a target
56
+ * @property groups - The groups, in their order
57
+ * @property shifts - The shifts, in their order
58
+ * @property activities - Every activity: each group's skills and the duties of no group
59
+ * @property positions - The positions, in their order; none for a duty kind with no `position` role
60
+ * @property proposals - The app's suggestions, in key order
61
+ * @property rules - The built-in rules
62
+ * @property pay - The app's pay, from a `PayRequest(R)` as bytes to each duty's cost by code; `none`, no costs show
63
+ * @property currency - How costs print
64
+ * @property check - The app's issues, from a `CheckContext(R)` as bytes
65
+ * @property fit - The app's fit, by its `e3.function`'s name: who fits a Find fix's need; `none`, no Find fix is offered (#1334)
66
+ * @property library - The library's tabs, in order
67
+ * @property inspector - Whether the inspector pane shows
68
+ * @property narrowed - Each narrowed source's keys, paged through its part of `slice`: the people and the activities that show (#1342)
69
+ * @property slice - The narrowing's chrome: a Slice over the duties', the targets', the staff's and the activities' records, one rail
70
+ * @property settings - The first view and the view settings
71
+ * @property id - The viewer's identity
72
+ */
34
73
  export const RosterPayloadType = StructType({
35
- sourceId: StringType, read: FunctionType([], T.RosterWeeksType),
36
- apply: AsyncFunctionType([Editing.Types.ChangeSet(T.RosterWeekType, DateTimeType)], Editing.Types.ApplyResult),
37
- window: OptionType(RosterWindowType), people: ArrayType(T.RosterPersonType), visiblePeople: OptionType(SetType(StringType)),
38
- groups: ArrayType(T.RosterGroupType), duties: ArrayType(T.RosterSkillType), shifts: ArrayType(T.RosterShiftType),
39
- positions: ArrayType(T.RosterPositionType), agencies: ArrayType(T.RosterAgencyType), rules: T.RosterRulesType,
40
- costs: OptionType(T.RosterCostsType), forecast: DictType(DateTimeType, T.RosterRequirementsType), proposals: ArrayType(T.RosterProposalType),
41
- check: OptionType(FunctionType([T.RosterCheckContextType], ArrayType(T.RosterIssueType))),
42
- library: ArrayType(RosterLibraryTabType), inspector: OptionType(RosterInspectorType), slice: OptionType(SliceChromeType),
74
+ duty: ScheduleRosterKindType,
75
+ people: ArrayType(T.RosterPersonType),
76
+ agencies: ArrayType(T.RosterAgencyType),
77
+ periods: OptionType(SchedulePeriodsKindType),
78
+ targets: OptionType(T.RosterTargetsKindType),
79
+ groups: ArrayType(T.RosterGroupType),
80
+ shifts: ArrayType(T.RosterShiftType),
81
+ activities: ArrayType(T.RosterSkillType),
82
+ positions: ArrayType(T.RosterPositionType),
83
+ proposals: ArrayType(T.RosterProposalType),
84
+ rules: T.RosterRulesType,
85
+ pay: OptionType(FunctionType([BlobType], T.RosterPayType)),
86
+ currency: OptionType(StringType),
87
+ check: OptionType(FunctionType([BlobType], ArrayType(T.RosterIssueType))),
88
+ fit: OptionType(FuncBindingType),
89
+ library: ArrayType(RosterLibraryTabType),
90
+ inspector: BooleanType,
91
+ narrowed: StructType({ people: OptionType(RowSourceType(ArrayType(StringType))), activities: OptionType(RowSourceType(ArrayType(StringType))) }),
92
+ slice: OptionType(RecordSlicesChromeType),
43
93
  settings: StructType({
44
94
  layout: RosterLayoutType, period: RosterPeriodType, date: OptionType(DateTimeType),
45
95
  weekStart: VariantType({ monday: NullType, sunday: NullType }),
46
96
  density: VariantType({ compact: NullType, comfortable: NullType }), chipSkills: BooleanType, requirements: BooleanType, readOnly: BooleanType,
47
- }), id: OptionType(StringType),
48
- recordSlice: OptionType(RecordSliceChromeType), visibleSource: OptionType(RowSourceType(ArrayType(StringType))),
97
+ }),
98
+ id: OptionType(StringType),
49
99
  });
50
100
  /** Carrier registered by e3-ui-components. */
51
101
  export const RosterComponent = EastUI.component("Roster", RosterPayloadType, { optional: true });
52
- /** Assembles a payload; domain and interaction programs live outside the tag. @internal */
102
+ /** The props §2 removed, each refused by name with the form that replaces it. */
103
+ const REMOVED = [
104
+ ["weeks", "`weeks` is gone — the Roster writes the app's own duties, events={{ duty: Schedule.events(Record.bind(duties, [dutiesPatch]), " +
105
+ "{ start, end, resource, shift, group }) }}, and publishes the app's own weeks, periods={Schedule.periods(Record.bind(weeks, [weeksPatch]), { every: \"week\", status })}"],
106
+ ["window", "`window` is gone — the Roster reads a week's duties through the duty kind's source of its slice, an interval index from the start to the " +
107
+ "end: slice={{ slice: Slice.bindRecords(key, { duty: { source: Data.bindPaged(duties, { indexes: [byTime] }), range: \"start\" } }) }}, the kind given " +
108
+ "`entries`; or the record whole"],
109
+ ["people", "`people` moves to `resources`: resources={{ people: Schedule.resources(staff.read(), { name, icon, label, group, … }) }}, every person's " +
110
+ "position, skills, contract and flags its accessors"],
111
+ ["agencies", "`agencies` moves to `resources`: resources={{ people, agencies: Schedule.resources(firms.read(), { name, icon, label }) }}"],
112
+ ["forecast", "`forecast` is gone — the targets are the app's own record, which its forecast fills: " +
113
+ "targets={Roster.targets(Record.bind(cover, [coverPatch]), { day, group, shift, positions, hours })}"],
114
+ ["costs", "`costs` is gone — pay is the app's own, in its own pay codes: pay={…} currency=\"…\", an East function from " +
115
+ "Roster.Types.PayRequest(R) to Roster.Types.Pay"],
116
+ ["visiblePeople", "`visiblePeople` is gone — the Roster reads its people from `slice`'s `people` source: " +
117
+ "slice={{ slice: Slice.bindRecords(key, { people, activities }) }}"],
118
+ ["duties", "`duties` is gone — a duty is an activity of no group in `activities` (Roster.activities)"],
119
+ ];
120
+ /** The lists the Roster reads, each its declaration's words. */
121
+ const LISTS = [
122
+ ["shifts", "Roster.shifts(rows, { label, code, start, hours, order? }) over the app's shift rows"],
123
+ ["groups", "Roster.groups(rows, { label, order? }) over the app's group rows"],
124
+ ["positions", "Roster.positions(rows, { label, code, lead, order? }) over the app's position rows"],
125
+ ["proposals", "Roster.proposals(rows, { person, day, group, shift, reason }) over the app's suggestion rows"],
126
+ ];
127
+ /**
128
+ * The people, built from the `people` resource kind's accessors, each called
129
+ * once per row, in key order (§4.2).
130
+ *
131
+ * @param kind - The `people` resource kind, read whole
132
+ * @returns Every person
133
+ * @internal
134
+ */
135
+ export function rosterPeopleOf(kind) {
136
+ const a = kind.accessors;
137
+ const group = a.group;
138
+ const person = East.function([kind.rowType, kind.keyType], T.RosterPersonType, ($, row, key) => {
139
+ const call = (fn, otherwise) => {
140
+ if (fn === undefined)
141
+ return otherwise;
142
+ const bound = $.const(fn);
143
+ return bound(row, key);
144
+ };
145
+ const labelOf = $.const(a.label);
146
+ const groupOf = $.const(group);
147
+ return {
148
+ key: key, name: labelOf(row, key), group: groupOf(row, key),
149
+ position: call(a.position, ""), skills: call(a.skills, East.value(new Set(), SetType(StringType))),
150
+ contract: call(a.contract, 0.0), agency: call(a.agency, false), trainer: call(a.trainer, false), trainee: call(a.trainee, false),
151
+ usual: call(a.usual, East.value(none, OptionType(StringType))),
152
+ };
153
+ });
154
+ return kind.source.toArray(($, row, key) => {
155
+ const make = $.const(person);
156
+ return make(row, key);
157
+ });
158
+ }
159
+ /**
160
+ * The agencies, built from the `agencies` resource kind's accessors, in key order.
161
+ *
162
+ * @param kind - The `agencies` resource kind, read whole
163
+ * @returns Every agency
164
+ * @internal
165
+ */
166
+ export function rosterAgenciesOf(kind) {
167
+ const label = kind.accessors.label;
168
+ const agency = East.function([kind.rowType, kind.keyType], T.RosterAgencyType, ($, row, key) => {
169
+ const labelOf = $.const(label);
170
+ return { key: key, name: labelOf(row, key) };
171
+ });
172
+ return kind.source.toArray(($, row, key) => {
173
+ const make = $.const(agency);
174
+ return make(row, key);
175
+ });
176
+ }
177
+ /**
178
+ * An app's function over a request of the duty row type, checked, then wrapped
179
+ * so the request crosses as bytes.
180
+ *
181
+ * @param fn - The app's function
182
+ * @param asks - The request type over the duty row type
183
+ * @param answers - What it answers
184
+ * @param refusal - What a function of another type is refused with, naming the prop
185
+ * @returns The function over bytes
186
+ * @throws {Error} With `refusal` when the function asks or answers another type
187
+ */
188
+ function overBytes(fn, asks, answers, refusal) {
189
+ const author = East.value(fn);
190
+ const type = Expr.type(author);
191
+ if (type.type !== "Function" || type.inputs.length !== 1 || !isTypeEqual(type.inputs[0], asks) || !isTypeEqual(type.output, answers)) {
192
+ throw new Error(refusal);
193
+ }
194
+ return East.function([BlobType], answers, ($, bytes) => {
195
+ const call = $.const(author);
196
+ return call(bytes.decodeBeast(asks, "v2"));
197
+ });
198
+ }
199
+ /**
200
+ * The fit's binding, checked: `Func.bind` of an `e3.function` from `Roster.Types.FitRequest(R)` to `Roster.Types.FitResult`.
201
+ *
202
+ * @param fit - What the app passed as `fit`
203
+ * @param rowType - The duty kind's row type
204
+ * @returns The binding's descriptor, which names the function
205
+ * @throws {Error} When it is not a `Func.bind` handle, or its function asks or answers another type, naming it
206
+ */
207
+ function fitBinding(fit, rowType) {
208
+ const signature = boundFuncSignature(fit);
209
+ if (signature === undefined) {
210
+ throw new Error("Roster: `fit` is Func.bind of the app's e3.function from Roster.Types.FitRequest(R) to Roster.Types.FitResult, R the duties' row type");
211
+ }
212
+ const asked = signature.asks;
213
+ if (!isTypeEqual(asked, T.RosterFitRequestTypeFor(rowType))) {
214
+ // A FitRequest over another row: its week's duties' row.
215
+ const week = asked.type === "Struct" ? asked.fields["week"] : undefined;
216
+ const duties = week?.type === "Struct" ? week.fields["assignments"] : undefined;
217
+ const theirs = duties?.type === "Dict" && duties.value.type === "Struct" ? duties.value.fields["row"] : undefined;
218
+ throw new Error(theirs !== undefined && isTypeEqual(asked, T.RosterFitRequestTypeFor(theirs))
219
+ ? `Roster: \`fit\` is bound over duty rows ${printType(theirs)}, and the duty kind's rows are ${printType(rowType)} — bind a fit over Roster.Types.FitRequest of the duties' row type`
220
+ : `Roster: \`fit\` asks ${printType(asked)}, not Roster.Types.FitRequest(${printType(rowType)})`);
221
+ }
222
+ if (!isTypeEqual(signature.answers, T.RosterFitResultType)) {
223
+ throw new Error(`Roster: \`fit\` answers ${printType(signature.answers)}, not Roster.Types.FitResult`);
224
+ }
225
+ return fit.binding;
226
+ }
227
+ /**
228
+ * Validates the declarations and assembles the Roster's interface. View and
229
+ * interaction behaviour belong to the renderer, not this factory.
230
+ *
231
+ * @typeParam R - The app's duty row type
232
+ * @param props - The Roster's props
233
+ * @returns The closed payload
234
+ * @throws {Error} Naming the change to make (B4): a removed prop — `weeks`, `window`, `people`, `agencies`, `forecast`,
235
+ * `costs`, `visiblePeople`, `duties`, `inspector={{ assignment, requirement }}` or `rules.agree` — or a list given as
236
+ * Roster values rather than its declaration; `events` holding other than one kind, or `resources` other than `people`
237
+ * and `agencies`; a duty kind whose resource names no `people`, or a resource kind read a window at a time; a `people`
238
+ * kind with no `group`; `positions` beside a duty kind with no `position` role; `pay` without `currency`; a `pay`, a
239
+ * `check` or a `fit` over another type; a library tab listed twice; and as `Schedule`'s checks, the duty kind's
240
+ * build (`buildRoster`) and the slice's (`recordSources`) do
241
+ * @internal
242
+ */
53
243
  export function createRosterPayload(props) {
54
- if (Array.isArray(props.groups) && props.groups.length === 0)
55
- throw new Error("Roster: groups must not be empty");
56
- if (Array.isArray(props.shifts) && props.shifts.length === 0)
57
- throw new Error("Roster: shifts must not be empty");
244
+ const given = props;
245
+ for (const [prop, refusal] of REMOVED) {
246
+ if (given[prop] !== undefined)
247
+ throw new Error(`Roster: ${refusal}`);
248
+ }
249
+ if (props.inspector !== undefined && typeof props.inspector !== "boolean") {
250
+ throw new Error("Roster: `inspector` is true or false — a duty's own form is the duty kind's `inspector` (Schedule.events(record, { …, inspector })), " +
251
+ "a target's `Roster.targets`' `inspector`");
252
+ }
253
+ const rules = props.rules ?? {};
254
+ if (rules instanceof Expr) {
255
+ throw new Error("Roster: `rules` are plain values — rules={{ rest: 10, lead: true, trainer: true, skill: true }}");
256
+ }
257
+ if (rules["agree"] !== undefined) {
258
+ throw new Error("Roster: `rules.agree` is gone — a duty's own fields say what is agreed, and the app's `check` reads them: " +
259
+ "Roster.Types.CheckContext(R) carries each duty's row and its pay");
260
+ }
261
+ if (rules.rest !== undefined && (typeof rules.rest !== "number" || !Number.isFinite(rules.rest) || rules.rest < 0)) {
262
+ throw new Error(`Roster: \`rules.rest\` is the hours of rest between duties, zero or more — and it is ${String(rules.rest)}`);
263
+ }
264
+ // The lists: each its declaration over the app's rows, not Roster values.
265
+ for (const [prop, declaration] of LISTS) {
266
+ const value = given[prop];
267
+ const required = prop === "shifts" || prop === "groups";
268
+ if (value === undefined && !required)
269
+ continue;
270
+ if (!isRosterList(value, prop)) {
271
+ throw new Error(`Roster: \`${prop}\` is ${declaration}${value === undefined ? "" : ` — Roster.Types.${prop === "proposals" ? "Proposal" : prop === "shifts" ? "Shift" : prop === "groups" ? "Group" : "Position"} values are gone`}`);
272
+ }
273
+ }
274
+ if (props.targets !== undefined && !isRosterTargets(props.targets)) {
275
+ throw new Error("Roster: `targets` is Roster.targets(Record.bind(record, [patch]), { day, group, shift, positions, hours }) over the app's own targets");
276
+ }
277
+ // The duty kind: exactly one event kind.
278
+ const kinds = Object.entries(props.events ?? {});
279
+ if (kinds.length !== 1) {
280
+ throw new Error(kinds.length === 0
281
+ ? "Roster: `events` holds the duties — events={{ duty: Schedule.events(Record.bind(duties, [dutiesPatch]), { start, end, resource, shift, group }) }}"
282
+ : `Roster: \`events\` holds one kind, the duties — and it holds ${kinds.length} (${kinds.map(([slot]) => slot).join(", ")})`);
283
+ }
284
+ const [slot, kind] = kinds[0];
285
+ // Who is rostered: the people, and optionally the agencies.
286
+ const resources = (props.resources ?? {});
287
+ for (const name of Object.keys(resources)) {
288
+ if (name !== "people" && name !== "agencies") {
289
+ throw new Error(`Roster: \`resources\` holds \`people\`, and optionally \`agencies\` — and it holds \`${name}\``);
290
+ }
291
+ }
292
+ if (resources["people"] === undefined) {
293
+ throw new Error("Roster: `resources` holds `people`, every person rostered: resources={{ people: Schedule.resources(staff.read(), { name, icon, label, group }) }}");
294
+ }
295
+ scheduleCheck(resources, props.events, "Roster");
296
+ if (!kind.takes.includes("people")) {
297
+ throw new Error(`Roster: events.${slot}'s resource names no \`people\` — a duty is rostered to one of the people, resource: { field, of: "people" }, ` +
298
+ "or to one of them or an agency, a case each: of: { staff: \"people\", agency: \"agencies\" }");
299
+ }
300
+ const people = resources["people"];
301
+ const agencies = resources["agencies"];
302
+ for (const [name, resourceKind] of [["people", people], ["agencies", agencies]]) {
303
+ if (resourceKind !== undefined && resourceKind.source === undefined) {
304
+ throw new Error(`Roster: resources.${name} is read whole — coverage, pay and checks read every one — so give the rows as a Dict, ` +
305
+ "usually a record's read(), not a paged read");
306
+ }
307
+ }
308
+ if (people.accessors.group === undefined) {
309
+ throw new Error("Roster: resources.people gives each person's home group — Schedule.resources(staff.read(), { …, group: (p) => p.team })");
310
+ }
311
+ if (props.positions !== undefined && !kind.roles.includes("position")) {
312
+ throw new Error(`Roster: \`positions\` are the positions a duty holds — and events.${slot} maps no \`position\`: give the kind a \`position\`, a String field of its row, or leave \`positions\` out`);
313
+ }
314
+ if (props.pay !== undefined && props.currency === undefined) {
315
+ throw new Error("Roster: `pay` gives each duty's cost — give `currency` with it, how costs print (currency=\"EUR\")");
316
+ }
317
+ // The app's functions over the duty row type.
318
+ const rowType = kind.rowType;
319
+ const row = printType(rowType);
320
+ const pay = props.pay === undefined ? undefined : overBytes(props.pay, T.RosterPayRequestTypeFor(rowType), T.RosterPayType, `Roster: \`pay\` is an East function from Roster.Types.PayRequest(${row}) to Roster.Types.Pay — each duty's cost by the app's own pay codes`);
321
+ const check = props.check === undefined ? undefined : overBytes(props.check, T.RosterCheckContextTypeFor(rowType), ArrayType(T.RosterIssueType), `Roster: \`check\` is an East function from Roster.Types.CheckContext(${row}) to Array<Roster.Types.Issue>`);
322
+ const fit = props.fit === undefined ? undefined : fitBinding(props.fit, rowType);
323
+ // The narrowing: a source per record it narrows, named after what it narrows.
324
+ const library = props.library ?? [];
325
+ const named = new Set([slot, ...(props.targets === undefined ? [] : ["targets"]), "people", "activities",
326
+ ...library.flatMap(tab => tab.kind === "tab" && tab.config.source !== undefined ? [tab.config.source] : [])]);
327
+ const narrowing = recordSources(props.slice, {
328
+ builder: "Roster", names: [...named], what: `its duties (${slot}), its targets, its people and its activities, and the tabs that name a source`,
329
+ takes: name => named.has(name),
330
+ });
58
331
  const seen = new Set();
59
- const library = (props.library ?? []).map(tab => {
332
+ const tabs = library.map(tab => {
60
333
  const key = tab.kind === "tab" ? `tab:${tab.config.name}` : tab.kind;
61
334
  if (seen.has(key))
62
- throw new Error(`Roster: duplicate library tab ${key}`);
335
+ throw new Error(`Roster: library tab ${key} is listed twice`);
63
336
  seen.add(key);
64
- return tab.kind === "tab" ? East.value(variant("tab", buildRosterTab(tab)), RosterLibraryTabType)
337
+ return tab.kind === "tab"
338
+ ? East.value(variant("tab", buildScheduleTab(tab, [[slot, kind]], "Roster", narrowing.names)), RosterLibraryTabType)
65
339
  : East.value(variant(tab.kind, null), RosterLibraryTabType);
66
340
  });
67
- const record = props.slice !== undefined && isRecordSlice(props.slice.slice);
68
- const visibility = props.visiblePeople === undefined ? undefined : rosterVisibility(props.visiblePeople);
69
- if (record && visibility?.source === undefined)
70
- throw new Error("Roster: pass Slice.rows(recordSlice) as visiblePeople alongside record Slice controls");
71
- const local = props.slice;
72
- const forms = typeof props.inspector === "object" ? props.inspector : {};
73
- return East.value({
74
- sourceId: props.weeks.binding.name, read: props.weeks.read, apply: Record.onApply(props.weeks, { keyed: true }),
75
- window: props.window === undefined ? none : some(props.window), people: props.people,
76
- visiblePeople: visibility?.inline === undefined ? none : some(visibility.inline), groups: props.groups, shifts: props.shifts,
77
- duties: props.duties ?? [], positions: props.positions ?? [{ key: "associate", label: "Associate", code: "", lead: false }],
78
- agencies: props.agencies ?? [], rules: { rest: props.rules?.rest ?? 10.0, lead: props.rules?.lead ?? true, trainer: props.rules?.trainer ?? true, skill: props.rules?.skill ?? true, agree: props.rules?.agree ?? true },
79
- costs: props.costs === undefined ? none : some(props.costs), forecast: props.forecast ?? new Map(), proposals: props.proposals ?? [],
80
- check: props.check === undefined ? none : some(props.check), library,
81
- inspector: props.inspector === undefined || props.inspector === false ? none : some({
82
- assignment: forms.assignment === undefined ? none : some(forms.assignment),
83
- requirement: forms.requirement === undefined ? none : some(forms.requirement),
84
- }),
85
- slice: record || local === undefined ? none : some({ slice: localSliceHandle(local.slice),
86
- affordances: East.value((local.affordances ?? ["filter", "search"]).map(a => variant(a, null)), ArrayType(SliceAffordanceType)) }),
87
- settings: {
88
- layout: variant(props.view?.layout ?? "shifts", null), period: variant(props.view?.layout === "people" ? "week" : props.view?.period ?? "day", null),
89
- date: props.view?.date === undefined ? none : some(props.view.date), weekStart: variant(props.week?.start ?? "monday", null),
90
- density: variant(props.density ?? "comfortable", null), chipSkills: props.chipSkills ?? true,
91
- requirements: props.requirements ?? true, readOnly: props.readOnly ?? false,
92
- }, id: props.id === undefined ? none : some(props.id),
93
- recordSlice: record ? some(recordSliceChrome(props.slice)) : none,
94
- visibleSource: visibility?.source === undefined ? none : some(visibility.source),
95
- }, RosterPayloadType);
341
+ const lists = given;
342
+ const positions = lists.positions;
343
+ return Expr.block($ => {
344
+ const bound = narrowing.bind($);
345
+ const keys = bound.keys;
346
+ return East.value({
347
+ // The duties, narrowed through their own source of the slice when the slice has one.
348
+ duty: kind.buildRoster(slot, bound.parts[slot]),
349
+ people: rosterPeopleOf(people),
350
+ agencies: agencies === undefined ? [] : rosterAgenciesOf(agencies),
351
+ periods: props.periods === undefined ? none : some(props.periods.build()),
352
+ targets: props.targets === undefined ? none : some(props.targets.build(bound.parts["targets"])),
353
+ groups: lists.groups.rows, shifts: lists.shifts.rows,
354
+ activities: props.activities ?? [], positions: positions === undefined ? [] : positions.rows,
355
+ proposals: lists.proposals === undefined ? [] : lists.proposals.rows,
356
+ // The lead rule reads the positions: without them, there is none.
357
+ rules: { rest: rules.rest ?? 10.0, lead: (rules.lead ?? true) && positions !== undefined, trainer: rules.trainer ?? true, skill: rules.skill ?? true },
358
+ pay: pay === undefined ? none : some(pay),
359
+ currency: props.currency === undefined ? none : some(props.currency),
360
+ check: check === undefined ? none : some(check),
361
+ fit: fit === undefined ? none : some(fit),
362
+ library: tabs,
363
+ inspector: props.inspector ?? false,
364
+ narrowed: {
365
+ people: keys.people === undefined ? none : some(keys.people),
366
+ activities: keys.activities === undefined ? none : some(keys.activities),
367
+ },
368
+ slice: narrowing.chrome,
369
+ settings: {
370
+ layout: variant(props.view?.layout ?? "shifts", null), period: variant(props.view?.layout === "people" ? "week" : props.view?.period ?? "day", null),
371
+ date: props.view?.date === undefined ? none : some(props.view.date), weekStart: variant(props.week?.start ?? "monday", null),
372
+ density: variant(props.density ?? "comfortable", null), chipSkills: props.chipSkills ?? true,
373
+ requirements: props.requirements ?? true, readOnly: props.readOnly ?? false,
374
+ },
375
+ id: props.id === undefined ? none : some(props.id),
376
+ }, RosterPayloadType);
377
+ });
378
+ }
379
+ // ============================================================================
380
+ // The namespace
381
+ // ============================================================================
382
+ /**
383
+ * Refuses a removed helper by name, with the form that replaces it.
384
+ *
385
+ * @param refusal - The words
386
+ * @returns A function that refuses
387
+ */
388
+ function removed(refusal) {
389
+ return () => { throw new Error(refusal); };
96
390
  }
97
391
  /**
98
- * Plans staffing with an internal shared BuilderFrame, Slice toolbar and editing session.
99
- * @param props - Bound weeks, staff, shift configuration and optional library/inspector
392
+ * Plans staffing over the app's own records, with an internal shared
393
+ * BuilderFrame, Slice toolbar and editing history.
394
+ *
395
+ * @param props - The duties, people, lists and optional weeks, targets, pay, check, fit, library and inspector
100
396
  * @returns The Roster extension
101
- * @remarks One gesture is one undo step; Save and Publish each write one complete week. On narrow containers the same commands are explicit card actions.
397
+ * @remarks One gesture is one undo step across every record it changes; Save sends each record's changes as its own request, and Publish saves, then the week's status. On narrow containers the same commands are explicit card actions.
102
398
  */
103
- export const Roster = Object.assign((props) => RosterComponent.Root(createRosterPayload(props)), { people: rosterPeople, coverage: rosterCoverage, check: rosterCheck, weekHours: rosterWeekHours, rest: rosterRest, patch: rosterPatch,
399
+ export const Roster = Object.assign((props) => RosterComponent.Root(createRosterPayload(props)), {
400
+ shifts: rosterShifts, groups: rosterGroups, positions: rosterPositions, activities: rosterActivities, proposals: rosterProposals,
401
+ targets: rosterTargets, coverage: rosterCoverage, check: rosterCheck, fit: rosterFit, answer: rosterAnswer,
402
+ weekHours: rosterWeekHours, rest: rosterRest,
104
403
  library: { people: rosterPeopleTab, activities: rosterActivitiesTab, tab: rosterLibraryTab },
404
+ people: removed("Roster.people is gone — the people are resources={{ people: Schedule.resources(staff.read(), { name, icon, label, group, … }) }}"),
405
+ patch: removed("Roster.patch is gone — a card's drop returns Schedule.patch(DutyRowType, { … }), the duty's own fields, as Plan's tabs do"),
105
406
  Types: {
106
- Clock: ScheduleClockType, Slot: T.RosterSlotType, Who: T.RosterWhoType, Assignment: T.RosterAssignmentType, Requirement: T.RosterRequirementType,
107
- Requirements: T.RosterRequirementsType, Status: T.RosterStatusType, Week: T.RosterWeekType, Weeks: T.RosterWeeksType,
108
- Skill: T.RosterSkillType, Group: T.RosterGroupType, Shift: T.RosterShiftType, Position: T.RosterPositionType,
109
- Agency: T.RosterAgencyType, Person: T.RosterPersonType, Rules: T.RosterRulesType, Costs: T.RosterCostsType,
110
- Context: T.RosterContextType, CoverageLine: T.RosterCoverageLineType, Coverage: T.RosterCoverageType,
111
- Proposal: T.RosterProposalType, Fix: T.RosterFixType, Issue: T.RosterIssueType, CheckContext: T.RosterCheckContextType,
112
- Patch: RosterPatchType, Layout: RosterLayoutType, Period: RosterPeriodType,
407
+ Clock: ScheduleClockType, Slot: T.RosterSlotType, Who: T.RosterWhoType, Assignment: T.RosterAssignmentTypeFor,
408
+ Requirement: T.RosterRequirementType, Requirements: T.RosterRequirementsType, Status: T.RosterStatusType, Week: T.RosterWeekTypeFor,
409
+ Activity: T.RosterActivityType, Skill: T.RosterSkillType, Group: T.RosterGroupType, Shift: T.RosterShiftType, Position: T.RosterPositionType,
410
+ Agency: T.RosterAgencyType, Person: T.RosterPersonType, Rules: T.RosterRulesType, Context: T.RosterContextType,
411
+ CoverageLine: T.RosterCoverageLineType, Coverage: T.RosterCoverageType, Proposal: T.RosterProposalType, Fix: T.RosterFixType,
412
+ Issue: T.RosterIssueType, CheckContext: T.RosterCheckContextTypeFor, Need: T.RosterNeedType, FitRequest: T.RosterFitRequestTypeFor,
413
+ FitResult: T.RosterFitResultType, Fit: T.RosterFitType, Refusal: T.RosterRefusalType, PayRequest: T.RosterPayRequestTypeFor,
414
+ Pay: T.RosterPayType, Layout: RosterLayoutType, Period: RosterPeriodType,
113
415
  },
114
416
  });
115
417
  //# sourceMappingURL=index.js.map