@royalschedule/maps 3.3.17 → 4.0.1

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 (948) hide show
  1. package/README.md +1 -0
  2. package/dist/Additio/from/courses.js.map +1 -1
  3. package/dist/Additio/from/events.js.map +1 -1
  4. package/dist/Additio/from/groups.js.map +1 -1
  5. package/dist/Additio/from/index.js.map +1 -1
  6. package/dist/Additio/from/locations.js.map +1 -1
  7. package/dist/Additio/from/persons.js +1 -1
  8. package/dist/Additio/from/persons.js.map +1 -1
  9. package/dist/Additio/from/schedules.d.ts +32 -2
  10. package/dist/Additio/from/schedules.js.map +1 -1
  11. package/dist/Additio/from/teachers.js.map +1 -1
  12. package/dist/Additio/index.js.map +1 -1
  13. package/dist/Additio/to/index.d.ts +12 -12
  14. package/dist/Additio/to/index.js.map +1 -1
  15. package/dist/Additio/to/schedules.js +44 -46
  16. package/dist/Additio/to/schedules.js.map +1 -1
  17. package/dist/Additio/types/options.d.ts +8 -0
  18. package/dist/Admentum/from/courses.js.map +1 -1
  19. package/dist/Admentum/from/events.js.map +1 -1
  20. package/dist/Admentum/from/groups.js.map +1 -1
  21. package/dist/Admentum/from/index.js.map +1 -1
  22. package/dist/Admentum/from/locations.js.map +1 -1
  23. package/dist/Admentum/from/persons.js +1 -1
  24. package/dist/Admentum/from/persons.js.map +1 -1
  25. package/dist/Admentum/from/schedules.d.ts +32 -2
  26. package/dist/Admentum/from/schedules.js.map +1 -1
  27. package/dist/Admentum/from/teachers.js.map +1 -1
  28. package/dist/Admentum/index.js.map +1 -1
  29. package/dist/Admentum/to/index.d.ts +11 -10
  30. package/dist/Admentum/to/index.js.map +1 -1
  31. package/dist/Admentum/to/schedules.js +22 -25
  32. package/dist/Admentum/to/schedules.js.map +1 -1
  33. package/dist/Excel/index.d.ts +55 -4
  34. package/dist/Excel/index.js.map +1 -1
  35. package/dist/Excel/v1/from/index.js +7 -7
  36. package/dist/Excel/v1/from/index.js.map +1 -1
  37. package/dist/Excel/v1/index.d.ts +30 -2
  38. package/dist/Excel/v1/index.js.map +1 -1
  39. package/dist/Excel/v2/from/index.js +10 -10
  40. package/dist/Excel/v2/from/index.js.map +1 -1
  41. package/dist/Excel/v2/index.d.ts +53 -2
  42. package/dist/Excel/v2/index.js.map +1 -1
  43. package/dist/IdunSoft/from/courses.js +4 -3
  44. package/dist/IdunSoft/from/courses.js.map +1 -1
  45. package/dist/IdunSoft/from/events.js +43 -32
  46. package/dist/IdunSoft/from/events.js.map +1 -1
  47. package/dist/IdunSoft/from/groups.js +5 -4
  48. package/dist/IdunSoft/from/groups.js.map +1 -1
  49. package/dist/IdunSoft/from/index.js.map +1 -1
  50. package/dist/IdunSoft/from/locations.js +4 -3
  51. package/dist/IdunSoft/from/locations.js.map +1 -1
  52. package/dist/IdunSoft/from/schedules.d.ts +18 -3
  53. package/dist/IdunSoft/from/schedules.js +5 -10
  54. package/dist/IdunSoft/from/schedules.js.map +1 -1
  55. package/dist/IdunSoft/from/teachers.js +4 -3
  56. package/dist/IdunSoft/from/teachers.js.map +1 -1
  57. package/dist/IdunSoft/index.js.map +1 -1
  58. package/dist/IdunSoft/to/index.d.ts +2 -3
  59. package/dist/IdunSoft/to/index.js.map +1 -1
  60. package/dist/IdunSoft/to/schedules.js +22 -21
  61. package/dist/IdunSoft/to/schedules.js.map +1 -1
  62. package/dist/InfoMentor/index.js.map +1 -1
  63. package/dist/InfoMentor/to/index.d.ts +2 -2
  64. package/dist/InfoMentor/to/index.js.map +1 -1
  65. package/dist/InfoMentor/to/schedules.js +26 -27
  66. package/dist/InfoMentor/to/schedules.js.map +1 -1
  67. package/dist/PlanDigital/from/index.js.map +1 -1
  68. package/dist/PlanDigital/from/schedules.js +7 -6
  69. package/dist/PlanDigital/from/schedules.js.map +1 -1
  70. package/dist/PlanDigital/index.d.ts +106 -5
  71. package/dist/PlanDigital/index.js +0 -2
  72. package/dist/PlanDigital/index.js.map +1 -1
  73. package/dist/PlanDigital/types/index.d.ts +12 -11
  74. package/dist/Quiculum/file/to/index.d.ts +1 -1
  75. package/dist/Quiculum/file/to/schedules.js +11 -13
  76. package/dist/Quiculum/file/to/schedules.js.map +1 -1
  77. package/dist/RS/from/division.d.ts +7 -0
  78. package/dist/RS/from/division.js +14 -0
  79. package/dist/RS/from/division.js.map +1 -0
  80. package/dist/RS/from/index.js +12 -0
  81. package/dist/RS/from/index.js.map +1 -0
  82. package/dist/RS/from/schedules.d.ts +8 -0
  83. package/dist/RS/from/schedules.js +36 -0
  84. package/dist/RS/from/schedules.js.map +1 -0
  85. package/dist/RS/index.d.ts +11 -12
  86. package/dist/RS/index.js +4 -8
  87. package/dist/RS/index.js.map +1 -1
  88. package/dist/RS/make-connected.d.ts +24 -0
  89. package/dist/RS/make-connected.js +258 -0
  90. package/dist/RS/make-connected.js.map +1 -0
  91. package/dist/RS/to/index.js +8 -0
  92. package/dist/RS/to/index.js.map +1 -0
  93. package/dist/RS/to/initial-configuration.js +43 -0
  94. package/dist/RS/to/initial-configuration.js.map +1 -0
  95. package/dist/RS/to/input/collections.js +57 -0
  96. package/dist/RS/to/input/collections.js.map +1 -0
  97. package/dist/RS/{v3/to → to/input}/default.js +10 -18
  98. package/dist/RS/to/input/default.js.map +1 -0
  99. package/dist/RS/to/input/dependencies.js +32 -0
  100. package/dist/RS/to/input/dependencies.js.map +1 -0
  101. package/dist/RS/to/input/dynamic-locked-times.js +67 -0
  102. package/dist/RS/to/input/dynamic-locked-times.js.map +1 -0
  103. package/dist/RS/to/input/events.js +84 -0
  104. package/dist/RS/to/input/events.js.map +1 -0
  105. package/dist/RS/to/input/groups.js +36 -0
  106. package/dist/RS/to/input/groups.js.map +1 -0
  107. package/dist/RS/to/input/individuals.js +49 -0
  108. package/dist/RS/to/input/individuals.js.map +1 -0
  109. package/dist/RS/to/input/input.js +40 -0
  110. package/dist/RS/to/input/input.js.map +1 -0
  111. package/dist/RS/to/input/intervals.js +99 -0
  112. package/dist/RS/to/input/intervals.js.map +1 -0
  113. package/dist/RS/to/input/periods.js +44 -0
  114. package/dist/RS/to/input/periods.js.map +1 -0
  115. package/dist/RS/to/input/settings.js +17 -0
  116. package/dist/RS/to/input/settings.js.map +1 -0
  117. package/dist/RS/to/input/teachers.js +36 -0
  118. package/dist/RS/to/input/teachers.js.map +1 -0
  119. package/dist/RS/to/input/util/attach-locked-times.js +27 -0
  120. package/dist/RS/to/input/util/attach-locked-times.js.map +1 -0
  121. package/dist/RS/to/input/util/parse-days.js +10 -0
  122. package/dist/RS/to/input/util/parse-days.js.map +1 -0
  123. package/dist/RS/to/input/util/parse-group-references.js +58 -0
  124. package/dist/RS/to/input/util/parse-group-references.js.map +1 -0
  125. package/dist/RS/to/input/util/parse-intervals.js +55 -0
  126. package/dist/RS/to/input/util/parse-intervals.js.map +1 -0
  127. package/dist/RS/to/input/util/parse-location-references.js +31 -0
  128. package/dist/RS/to/input/util/parse-location-references.js.map +1 -0
  129. package/dist/RS/to/input/util/parse-max-working-hours.js +17 -0
  130. package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -0
  131. package/dist/RS/to/input/util/parse-minimum-break-length.js +19 -0
  132. package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -0
  133. package/dist/RS/to/input/util/util.js +61 -0
  134. package/dist/RS/to/input/util/util.js.map +1 -0
  135. package/dist/RS/to/schedules.d.ts +7 -0
  136. package/dist/RS/to/schedules.js +40 -0
  137. package/dist/RS/to/schedules.js.map +1 -0
  138. package/dist/RS/{v3/types → types}/algorithm-parameters.d.ts +1 -1
  139. package/dist/RS/types/collections.d.ts +26 -0
  140. package/dist/RS/types/configurations.d.ts +10 -0
  141. package/dist/RS/{v3/types → types}/default.d.ts +4 -5
  142. package/dist/RS/types/dependencies.d.ts +16 -0
  143. package/dist/RS/types/event-configuration.d.ts +20 -0
  144. package/dist/RS/types/events.d.ts +27 -0
  145. package/dist/RS/{v2/types → types}/groups.d.ts +13 -12
  146. package/dist/RS/types/index.d.ts +45 -0
  147. package/dist/RS/types/individuals.d.ts +16 -0
  148. package/dist/RS/{v2/types → types}/locked-times.d.ts +2 -1
  149. package/dist/RS/types/root-intervals.d.ts +10 -0
  150. package/dist/RS/types/schedule-data.d.ts +16 -0
  151. package/dist/RS/{v2/types → types}/settings.d.ts +1 -1
  152. package/dist/RS/types/shared.d.ts +27 -0
  153. package/dist/RS/types/to.d.ts +59 -0
  154. package/dist/SchoolSoft/api/from/index.js.map +1 -1
  155. package/dist/SchoolSoft/api/from/schedules.js +31 -37
  156. package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
  157. package/dist/SchoolSoft/api/index.d.ts +14 -2
  158. package/dist/SchoolSoft/api/index.js.map +1 -1
  159. package/dist/SchoolSoft/file/from/index.js.map +1 -1
  160. package/dist/SchoolSoft/file/from/schedules.js +36 -46
  161. package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
  162. package/dist/SchoolSoft/file/index.d.ts +2 -3
  163. package/dist/SchoolSoft/file/index.js.map +1 -1
  164. package/dist/SchoolSoft/file/to/index.d.ts +6 -13
  165. package/dist/SchoolSoft/file/to/schedules.js +40 -42
  166. package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
  167. package/dist/SchoolSoft/index.d.ts +2 -3
  168. package/dist/SchoolSoft/index.js.map +1 -1
  169. package/dist/Schoolity/txt/index.js.map +1 -1
  170. package/dist/Schoolity/txt/to/index.d.ts +3 -3
  171. package/dist/Schoolity/txt/to/index.js.map +1 -1
  172. package/dist/Schoolity/txt/to/schedules.js +78 -96
  173. package/dist/Schoolity/txt/to/schedules.js.map +1 -1
  174. package/dist/Skola24/index.js.map +1 -1
  175. package/dist/Skola24/mdb/from/course-and-events.js +36 -29
  176. package/dist/Skola24/mdb/from/course-and-events.js.map +1 -1
  177. package/dist/Skola24/mdb/from/groups.js.map +1 -1
  178. package/dist/Skola24/mdb/from/index.js.map +1 -1
  179. package/dist/Skola24/mdb/from/locations.js.map +1 -1
  180. package/dist/Skola24/mdb/from/schedule.d.ts +21 -3
  181. package/dist/Skola24/mdb/from/schedule.js +15 -17
  182. package/dist/Skola24/mdb/from/schedule.js.map +1 -1
  183. package/dist/Skola24/mdb/from/teachers.js.map +1 -1
  184. package/dist/Skola24/mdb/index.js.map +1 -1
  185. package/dist/Skola24/mdb/types/index.d.ts +7 -0
  186. package/dist/Skola24/txt/from/calendar-exceptions.js.map +1 -1
  187. package/dist/Skola24/txt/from/division.js.map +1 -1
  188. package/dist/Skola24/txt/from/index.js.map +1 -1
  189. package/dist/Skola24/txt/from/period.js.map +1 -1
  190. package/dist/Skola24/txt/from/schedules.d.ts +16 -0
  191. package/dist/Skola24/txt/from/schedules.js +90 -80
  192. package/dist/Skola24/txt/from/schedules.js.map +1 -1
  193. package/dist/Skola24/txt/index.d.ts +17 -5
  194. package/dist/Skola24/txt/index.js.map +1 -1
  195. package/dist/Skola24/txt/to/index.d.ts +3 -3
  196. package/dist/Skola24/txt/to/index.js.map +1 -1
  197. package/dist/Skola24/txt/to/schedules.js +76 -91
  198. package/dist/Skola24/txt/to/schedules.js.map +1 -1
  199. package/dist/Skola24/txt/types/index.d.ts +17 -1
  200. package/dist/common/constants.js +2 -2
  201. package/dist/common/constants.js.map +1 -1
  202. package/dist/common/functions.js +16 -21
  203. package/dist/common/functions.js.map +1 -1
  204. package/dist/common/get-date.js +5 -6
  205. package/dist/common/get-date.js.map +1 -1
  206. package/dist/common/make-chainable/index.js +36 -0
  207. package/dist/common/make-chainable/index.js.map +1 -0
  208. package/dist/common/types.d.ts +19 -0
  209. package/dist/core/from/courses.js +12 -0
  210. package/dist/core/from/courses.js.map +1 -0
  211. package/dist/core/from/events.js +13 -0
  212. package/dist/core/from/events.js.map +1 -0
  213. package/dist/core/from/exceptions.js +12 -0
  214. package/dist/core/from/exceptions.js.map +1 -0
  215. package/dist/core/from/groups.js +12 -0
  216. package/dist/core/from/groups.js.map +1 -0
  217. package/dist/core/{v2/from → from}/index.js +1 -1
  218. package/dist/core/from/index.js.map +1 -0
  219. package/dist/core/from/locations.js +12 -0
  220. package/dist/core/from/locations.js.map +1 -0
  221. package/dist/core/from/locked-times.js +12 -0
  222. package/dist/core/from/locked-times.js.map +1 -0
  223. package/dist/core/from/overlap-groups.js +12 -0
  224. package/dist/core/from/overlap-groups.js.map +1 -0
  225. package/dist/core/from/periods.js +12 -0
  226. package/dist/core/from/periods.js.map +1 -0
  227. package/dist/core/from/persons.js +12 -0
  228. package/dist/core/from/persons.js.map +1 -0
  229. package/dist/core/from/root-intervals.js +12 -0
  230. package/dist/core/from/root-intervals.js.map +1 -0
  231. package/dist/core/from/schedules.d.ts +7 -0
  232. package/dist/core/from/schedules.js +35 -0
  233. package/dist/core/from/schedules.js.map +1 -0
  234. package/dist/core/{v2/from → from}/syllabuses.js +1 -1
  235. package/dist/core/from/syllabuses.js.map +1 -0
  236. package/dist/core/from/teachers.js +12 -0
  237. package/dist/core/from/teachers.js.map +1 -0
  238. package/dist/core/index.d.ts +6 -12
  239. package/dist/core/index.js +4 -6
  240. package/dist/core/index.js.map +1 -1
  241. package/dist/core/to/courses.js +43 -0
  242. package/dist/core/to/courses.js.map +1 -0
  243. package/dist/core/to/division.js +10 -0
  244. package/dist/core/to/division.js.map +1 -0
  245. package/dist/core/to/events.js +43 -0
  246. package/dist/core/to/events.js.map +1 -0
  247. package/dist/core/to/exceptions.js +27 -0
  248. package/dist/core/to/exceptions.js.map +1 -0
  249. package/dist/core/to/groups.js +23 -0
  250. package/dist/core/to/groups.js.map +1 -0
  251. package/dist/core/{v1/to → to}/index.d.ts +1 -1
  252. package/dist/{RS/v3 → core}/to/index.js +1 -1
  253. package/dist/core/to/index.js.map +1 -0
  254. package/dist/core/to/locations.js +19 -0
  255. package/dist/core/to/locations.js.map +1 -0
  256. package/dist/core/to/locked-times.js +21 -0
  257. package/dist/core/to/locked-times.js.map +1 -0
  258. package/dist/core/to/overlap-groups.js +28 -0
  259. package/dist/core/to/overlap-groups.js.map +1 -0
  260. package/dist/core/to/periods.js +17 -0
  261. package/dist/core/to/periods.js.map +1 -0
  262. package/dist/core/to/persons.js +23 -0
  263. package/dist/core/to/persons.js.map +1 -0
  264. package/dist/core/to/root-intervals.js +17 -0
  265. package/dist/core/to/root-intervals.js.map +1 -0
  266. package/dist/core/to/schedules.d.ts +44 -0
  267. package/dist/core/to/schedules.js +40 -0
  268. package/dist/core/to/schedules.js.map +1 -0
  269. package/dist/core/to/settings.js +16 -0
  270. package/dist/core/to/settings.js.map +1 -0
  271. package/dist/core/to/syllabuses.js +17 -0
  272. package/dist/core/to/syllabuses.js.map +1 -0
  273. package/dist/core/to/teachers.js +24 -0
  274. package/dist/core/to/teachers.js.map +1 -0
  275. package/dist/core/to/util.d.ts +14 -0
  276. package/dist/core/to/util.js +22 -0
  277. package/dist/core/to/util.js.map +1 -0
  278. package/dist/core/types/areas.d.ts +10 -0
  279. package/dist/core/types/common/break-lengths.d.ts +5 -0
  280. package/dist/core/types/common/days.d.ts +8 -0
  281. package/dist/core/types/common/index.d.ts +45 -0
  282. package/dist/core/types/common/intervals.d.ts +20 -0
  283. package/dist/core/types/common/maximum-schedule-span.d.ts +19 -0
  284. package/dist/core/{v2/types → types/common}/meta.d.ts +1 -1
  285. package/dist/core/types/common/planned-schedule-duration.d.ts +13 -0
  286. package/dist/core/types/common/tag.d.ts +9 -0
  287. package/dist/core/types/courses.d.ts +58 -0
  288. package/dist/core/{v2/types → types}/division-settings.d.ts +14 -19
  289. package/dist/core/types/divisions.d.ts +24 -0
  290. package/dist/core/types/events.d.ts +54 -0
  291. package/dist/core/{v2/types → types}/exceptions.d.ts +14 -23
  292. package/dist/core/types/groups.d.ts +41 -0
  293. package/dist/core/types/index.d.ts +117 -15
  294. package/dist/core/types/locations.d.ts +27 -0
  295. package/dist/core/types/locked-times.d.ts +33 -0
  296. package/dist/core/types/overlap-groups.d.ts +14 -0
  297. package/dist/core/types/periods.d.ts +14 -0
  298. package/dist/core/{v2/types → types}/persons.d.ts +13 -22
  299. package/dist/core/types/root-intervals.d.ts +13 -0
  300. package/dist/core/types/schedules.d.ts +44 -0
  301. package/dist/core/types/syllabus.d.ts +18 -0
  302. package/dist/core/{v2/types → types}/teachers.d.ts +20 -30
  303. package/dist/core/util.js +46 -0
  304. package/dist/core/util.js.map +1 -0
  305. package/dist/core/vertex-mapping.d.ts +69 -0
  306. package/dist/identify/constants/index.d.ts +14 -58
  307. package/dist/identify/constants/index.js +7 -72
  308. package/dist/identify/constants/index.js.map +1 -1
  309. package/dist/identify/index.d.ts +1 -1
  310. package/dist/identify/index.js +38 -29
  311. package/dist/identify/index.js.map +1 -1
  312. package/dist/index.d.ts +23 -29
  313. package/dist/index.js +6 -7
  314. package/dist/sdui/from/classes.js.map +1 -1
  315. package/dist/sdui/from/courses.js.map +1 -1
  316. package/dist/sdui/from/holidays.js.map +1 -1
  317. package/dist/sdui/from/hours.js.map +1 -1
  318. package/dist/sdui/from/lessons.js.map +1 -1
  319. package/dist/sdui/from/rooms.js.map +1 -1
  320. package/dist/sdui/from/schedules.d.ts +19 -0
  321. package/dist/sdui/from/schedules.js +3 -3
  322. package/dist/sdui/from/schedules.js.map +1 -1
  323. package/dist/sdui/from/school-years.js.map +1 -1
  324. package/dist/sdui/from/subjects.js.map +1 -1
  325. package/dist/sdui/from/substitution-plans.js.map +1 -1
  326. package/dist/sdui/from/teachers.js.map +1 -1
  327. package/dist/sdui/index.d.ts +19 -11
  328. package/dist/sdui/index.js.map +1 -1
  329. package/dist/sdui/to/classes.js +4 -2
  330. package/dist/sdui/to/classes.js.map +1 -1
  331. package/dist/sdui/to/courses.js +5 -5
  332. package/dist/sdui/to/courses.js.map +1 -1
  333. package/dist/sdui/to/holidays.js +3 -2
  334. package/dist/sdui/to/holidays.js.map +1 -1
  335. package/dist/sdui/to/hours.js +4 -2
  336. package/dist/sdui/to/hours.js.map +1 -1
  337. package/dist/sdui/to/index.d.ts +11 -12
  338. package/dist/sdui/to/lessons.js +10 -9
  339. package/dist/sdui/to/lessons.js.map +1 -1
  340. package/dist/sdui/to/rooms.js +4 -2
  341. package/dist/sdui/to/rooms.js.map +1 -1
  342. package/dist/sdui/to/schedules.js +9 -9
  343. package/dist/sdui/to/schedules.js.map +1 -1
  344. package/dist/sdui/to/school-years.js +4 -3
  345. package/dist/sdui/to/school-years.js.map +1 -1
  346. package/dist/sdui/to/subjects.js.map +1 -1
  347. package/dist/sdui/to/substitution-plans.js +12 -11
  348. package/dist/sdui/to/substitution-plans.js.map +1 -1
  349. package/dist/sdui/to/teachers.js +4 -4
  350. package/dist/sdui/to/teachers.js.map +1 -1
  351. package/dist/sdui/types/index.d.ts +2 -0
  352. package/dist/vKlass/from/index.js +1 -3
  353. package/dist/vKlass/from/index.js.map +1 -1
  354. package/dist/vKlass/from/schedule.d.ts +18 -3
  355. package/dist/vKlass/from/schedule.js +16 -19
  356. package/dist/vKlass/from/schedule.js.map +1 -1
  357. package/dist/vKlass/index.d.ts +6 -4
  358. package/dist/vKlass/index.js.map +1 -1
  359. package/dist/vKlass/to/schedules.d.ts +1 -1
  360. package/dist/vKlass/to/schedules.js +5 -12
  361. package/dist/vKlass/to/schedules.js.map +1 -1
  362. package/dist/vKlass/types/index.d.ts +5 -5
  363. package/package.json +38 -29
  364. package/dist/PlanDigital/to/index.d.ts +0 -10
  365. package/dist/PlanDigital/to/index.js +0 -10
  366. package/dist/PlanDigital/to/index.js.map +0 -1
  367. package/dist/PlanDigital/to/schedules.js +0 -15
  368. package/dist/PlanDigital/to/schedules.js.map +0 -1
  369. package/dist/RS/v0/from/available-dependencies.js +0 -38
  370. package/dist/RS/v0/from/available-dependencies.js.map +0 -1
  371. package/dist/RS/v0/from/break-lengths.js +0 -15
  372. package/dist/RS/v0/from/break-lengths.js.map +0 -1
  373. package/dist/RS/v0/from/course-events.js +0 -68
  374. package/dist/RS/v0/from/course-events.js.map +0 -1
  375. package/dist/RS/v0/from/courses.js +0 -53
  376. package/dist/RS/v0/from/courses.js.map +0 -1
  377. package/dist/RS/v0/from/days.js +0 -14
  378. package/dist/RS/v0/from/days.js.map +0 -1
  379. package/dist/RS/v0/from/dependencies.js +0 -29
  380. package/dist/RS/v0/from/dependencies.js.map +0 -1
  381. package/dist/RS/v0/from/groups.js +0 -32
  382. package/dist/RS/v0/from/groups.js.map +0 -1
  383. package/dist/RS/v0/from/index.js +0 -32
  384. package/dist/RS/v0/from/index.js.map +0 -1
  385. package/dist/RS/v0/from/intervals.js +0 -15
  386. package/dist/RS/v0/from/intervals.js.map +0 -1
  387. package/dist/RS/v0/from/locked-times.js +0 -23
  388. package/dist/RS/v0/from/locked-times.js.map +0 -1
  389. package/dist/RS/v0/from/placements.js +0 -20
  390. package/dist/RS/v0/from/placements.js.map +0 -1
  391. package/dist/RS/v0/from/schedules.js +0 -44
  392. package/dist/RS/v0/from/schedules.js.map +0 -1
  393. package/dist/RS/v0/from/settings.js +0 -24
  394. package/dist/RS/v0/from/settings.js.map +0 -1
  395. package/dist/RS/v0/from/teachers.js +0 -31
  396. package/dist/RS/v0/from/teachers.js.map +0 -1
  397. package/dist/RS/v0/index.d.ts +0 -43
  398. package/dist/RS/v0/index.js +0 -12
  399. package/dist/RS/v0/index.js.map +0 -1
  400. package/dist/RS/v0/to/available-dependencies.js +0 -17
  401. package/dist/RS/v0/to/available-dependencies.js.map +0 -1
  402. package/dist/RS/v0/to/configurations.js +0 -22
  403. package/dist/RS/v0/to/configurations.js.map +0 -1
  404. package/dist/RS/v0/to/constraints.js +0 -34
  405. package/dist/RS/v0/to/constraints.js.map +0 -1
  406. package/dist/RS/v0/to/course-events/days.js +0 -13
  407. package/dist/RS/v0/to/course-events/days.js.map +0 -1
  408. package/dist/RS/v0/to/course-events/dependencies.js +0 -18
  409. package/dist/RS/v0/to/course-events/dependencies.js.map +0 -1
  410. package/dist/RS/v0/to/course-events/groups.js +0 -39
  411. package/dist/RS/v0/to/course-events/groups.js.map +0 -1
  412. package/dist/RS/v0/to/course-events/in-locations.js +0 -17
  413. package/dist/RS/v0/to/course-events/in-locations.js.map +0 -1
  414. package/dist/RS/v0/to/course-events/index.js +0 -52
  415. package/dist/RS/v0/to/course-events/index.js.map +0 -1
  416. package/dist/RS/v0/to/course-events/intervals.js +0 -12
  417. package/dist/RS/v0/to/course-events/intervals.js.map +0 -1
  418. package/dist/RS/v0/to/course-events/meta.js +0 -21
  419. package/dist/RS/v0/to/course-events/meta.js.map +0 -1
  420. package/dist/RS/v0/to/courses.js +0 -56
  421. package/dist/RS/v0/to/courses.js.map +0 -1
  422. package/dist/RS/v0/to/days.js +0 -11
  423. package/dist/RS/v0/to/days.js.map +0 -1
  424. package/dist/RS/v0/to/dependencies.js +0 -26
  425. package/dist/RS/v0/to/dependencies.js.map +0 -1
  426. package/dist/RS/v0/to/groups.js +0 -32
  427. package/dist/RS/v0/to/groups.js.map +0 -1
  428. package/dist/RS/v0/to/index.d.ts +0 -46
  429. package/dist/RS/v0/to/index.js +0 -34
  430. package/dist/RS/v0/to/index.js.map +0 -1
  431. package/dist/RS/v0/to/intervals.js +0 -17
  432. package/dist/RS/v0/to/intervals.js.map +0 -1
  433. package/dist/RS/v0/to/locked-times.js +0 -43
  434. package/dist/RS/v0/to/locked-times.js.map +0 -1
  435. package/dist/RS/v0/to/schedules.js +0 -16
  436. package/dist/RS/v0/to/schedules.js.map +0 -1
  437. package/dist/RS/v0/to/settings.js +0 -28
  438. package/dist/RS/v0/to/settings.js.map +0 -1
  439. package/dist/RS/v0/to/teachers.js +0 -30
  440. package/dist/RS/v0/to/teachers.js.map +0 -1
  441. package/dist/RS/v0/types/areas.d.ts +0 -8
  442. package/dist/RS/v0/types/available-dependencies.d.ts +0 -8
  443. package/dist/RS/v0/types/break-lengths.d.ts +0 -9
  444. package/dist/RS/v0/types/configurations.d.ts +0 -7
  445. package/dist/RS/v0/types/constraints.d.ts +0 -17
  446. package/dist/RS/v0/types/course-events.d.ts +0 -26
  447. package/dist/RS/v0/types/courses.d.ts +0 -27
  448. package/dist/RS/v0/types/days.d.ts +0 -8
  449. package/dist/RS/v0/types/dependencies.d.ts +0 -17
  450. package/dist/RS/v0/types/groups.d.ts +0 -25
  451. package/dist/RS/v0/types/index.d.ts +0 -31
  452. package/dist/RS/v0/types/intervals.d.ts +0 -8
  453. package/dist/RS/v0/types/locked-times.d.ts +0 -11
  454. package/dist/RS/v0/types/out-options.d.ts +0 -13
  455. package/dist/RS/v0/types/placements.d.ts +0 -12
  456. package/dist/RS/v0/types/schedules.d.ts +0 -15
  457. package/dist/RS/v0/types/settings.d.ts +0 -26
  458. package/dist/RS/v1/from/available-dependencies.js +0 -38
  459. package/dist/RS/v1/from/available-dependencies.js.map +0 -1
  460. package/dist/RS/v1/from/break-lengths.js +0 -15
  461. package/dist/RS/v1/from/break-lengths.js.map +0 -1
  462. package/dist/RS/v1/from/collections.js +0 -55
  463. package/dist/RS/v1/from/collections.js.map +0 -1
  464. package/dist/RS/v1/from/course-events.js +0 -65
  465. package/dist/RS/v1/from/course-events.js.map +0 -1
  466. package/dist/RS/v1/from/days.js +0 -14
  467. package/dist/RS/v1/from/days.js.map +0 -1
  468. package/dist/RS/v1/from/dependencies.js +0 -31
  469. package/dist/RS/v1/from/dependencies.js.map +0 -1
  470. package/dist/RS/v1/from/groups.js +0 -34
  471. package/dist/RS/v1/from/groups.js.map +0 -1
  472. package/dist/RS/v1/from/index.js +0 -32
  473. package/dist/RS/v1/from/index.js.map +0 -1
  474. package/dist/RS/v1/from/intervals.js +0 -18
  475. package/dist/RS/v1/from/intervals.js.map +0 -1
  476. package/dist/RS/v1/from/locked-times.js +0 -21
  477. package/dist/RS/v1/from/locked-times.js.map +0 -1
  478. package/dist/RS/v1/from/placements.js +0 -21
  479. package/dist/RS/v1/from/placements.js.map +0 -1
  480. package/dist/RS/v1/from/schedules.js +0 -44
  481. package/dist/RS/v1/from/schedules.js.map +0 -1
  482. package/dist/RS/v1/from/settings.js +0 -25
  483. package/dist/RS/v1/from/settings.js.map +0 -1
  484. package/dist/RS/v1/from/teachers.js +0 -33
  485. package/dist/RS/v1/from/teachers.js.map +0 -1
  486. package/dist/RS/v1/index.d.ts +0 -45
  487. package/dist/RS/v1/index.js +0 -12
  488. package/dist/RS/v1/index.js.map +0 -1
  489. package/dist/RS/v1/to/available-dependencies.js +0 -25
  490. package/dist/RS/v1/to/available-dependencies.js.map +0 -1
  491. package/dist/RS/v1/to/break-lengths.js +0 -19
  492. package/dist/RS/v1/to/break-lengths.js.map +0 -1
  493. package/dist/RS/v1/to/collections.js +0 -51
  494. package/dist/RS/v1/to/collections.js.map +0 -1
  495. package/dist/RS/v1/to/configurations.js +0 -22
  496. package/dist/RS/v1/to/configurations.js.map +0 -1
  497. package/dist/RS/v1/to/constraints.js +0 -26
  498. package/dist/RS/v1/to/constraints.js.map +0 -1
  499. package/dist/RS/v1/to/course-events/days.js +0 -12
  500. package/dist/RS/v1/to/course-events/days.js.map +0 -1
  501. package/dist/RS/v1/to/course-events/dependencies.js +0 -15
  502. package/dist/RS/v1/to/course-events/dependencies.js.map +0 -1
  503. package/dist/RS/v1/to/course-events/groups.js +0 -30
  504. package/dist/RS/v1/to/course-events/groups.js.map +0 -1
  505. package/dist/RS/v1/to/course-events/in-locations.js +0 -17
  506. package/dist/RS/v1/to/course-events/in-locations.js.map +0 -1
  507. package/dist/RS/v1/to/course-events/index.js +0 -47
  508. package/dist/RS/v1/to/course-events/index.js.map +0 -1
  509. package/dist/RS/v1/to/course-events/intervals.js +0 -11
  510. package/dist/RS/v1/to/course-events/intervals.js.map +0 -1
  511. package/dist/RS/v1/to/course-events/meta.js +0 -21
  512. package/dist/RS/v1/to/course-events/meta.js.map +0 -1
  513. package/dist/RS/v1/to/days.js +0 -11
  514. package/dist/RS/v1/to/days.js.map +0 -1
  515. package/dist/RS/v1/to/dependencies.js +0 -28
  516. package/dist/RS/v1/to/dependencies.js.map +0 -1
  517. package/dist/RS/v1/to/groups.js +0 -34
  518. package/dist/RS/v1/to/groups.js.map +0 -1
  519. package/dist/RS/v1/to/index.d.ts +0 -46
  520. package/dist/RS/v1/to/index.js +0 -34
  521. package/dist/RS/v1/to/index.js.map +0 -1
  522. package/dist/RS/v1/to/intervals.js +0 -17
  523. package/dist/RS/v1/to/intervals.js.map +0 -1
  524. package/dist/RS/v1/to/locked-times.js +0 -49
  525. package/dist/RS/v1/to/locked-times.js.map +0 -1
  526. package/dist/RS/v1/to/schedules.js +0 -16
  527. package/dist/RS/v1/to/schedules.js.map +0 -1
  528. package/dist/RS/v1/to/settings.js +0 -34
  529. package/dist/RS/v1/to/settings.js.map +0 -1
  530. package/dist/RS/v1/to/teachers.js +0 -34
  531. package/dist/RS/v1/to/teachers.js.map +0 -1
  532. package/dist/RS/v1/types/areas.d.ts +0 -8
  533. package/dist/RS/v1/types/available-dependencies.d.ts +0 -8
  534. package/dist/RS/v1/types/break-lengths.d.ts +0 -9
  535. package/dist/RS/v1/types/collections.d.ts +0 -27
  536. package/dist/RS/v1/types/configurations.d.ts +0 -10
  537. package/dist/RS/v1/types/constraints.d.ts +0 -17
  538. package/dist/RS/v1/types/course-events.d.ts +0 -26
  539. package/dist/RS/v1/types/days.d.ts +0 -8
  540. package/dist/RS/v1/types/dependencies.d.ts +0 -17
  541. package/dist/RS/v1/types/groups.d.ts +0 -25
  542. package/dist/RS/v1/types/index.d.ts +0 -31
  543. package/dist/RS/v1/types/intervals.d.ts +0 -8
  544. package/dist/RS/v1/types/locked-times.d.ts +0 -11
  545. package/dist/RS/v1/types/out-options.d.ts +0 -11
  546. package/dist/RS/v1/types/placements.d.ts +0 -12
  547. package/dist/RS/v1/types/schedules.d.ts +0 -16
  548. package/dist/RS/v1/types/settings.d.ts +0 -31
  549. package/dist/RS/v2/from/available-dependencies.js +0 -38
  550. package/dist/RS/v2/from/available-dependencies.js.map +0 -1
  551. package/dist/RS/v2/from/break-lengths.js +0 -15
  552. package/dist/RS/v2/from/break-lengths.js.map +0 -1
  553. package/dist/RS/v2/from/collections.js +0 -57
  554. package/dist/RS/v2/from/collections.js.map +0 -1
  555. package/dist/RS/v2/from/course-events.d.ts +0 -12
  556. package/dist/RS/v2/from/course-events.js +0 -67
  557. package/dist/RS/v2/from/course-events.js.map +0 -1
  558. package/dist/RS/v2/from/days.js +0 -14
  559. package/dist/RS/v2/from/days.js.map +0 -1
  560. package/dist/RS/v2/from/dependencies.js +0 -31
  561. package/dist/RS/v2/from/dependencies.js.map +0 -1
  562. package/dist/RS/v2/from/groups.js +0 -35
  563. package/dist/RS/v2/from/groups.js.map +0 -1
  564. package/dist/RS/v2/from/index.js +0 -32
  565. package/dist/RS/v2/from/index.js.map +0 -1
  566. package/dist/RS/v2/from/intervals.js +0 -18
  567. package/dist/RS/v2/from/intervals.js.map +0 -1
  568. package/dist/RS/v2/from/locked-times.js +0 -21
  569. package/dist/RS/v2/from/locked-times.js.map +0 -1
  570. package/dist/RS/v2/from/placements.js +0 -32
  571. package/dist/RS/v2/from/placements.js.map +0 -1
  572. package/dist/RS/v2/from/schedules.js +0 -78
  573. package/dist/RS/v2/from/schedules.js.map +0 -1
  574. package/dist/RS/v2/from/settings.js +0 -31
  575. package/dist/RS/v2/from/settings.js.map +0 -1
  576. package/dist/RS/v2/from/teachers.js +0 -33
  577. package/dist/RS/v2/from/teachers.js.map +0 -1
  578. package/dist/RS/v2/index.d.ts +0 -63
  579. package/dist/RS/v2/index.js +0 -12
  580. package/dist/RS/v2/index.js.map +0 -1
  581. package/dist/RS/v2/to/available-dependencies.js +0 -25
  582. package/dist/RS/v2/to/available-dependencies.js.map +0 -1
  583. package/dist/RS/v2/to/break-lengths.js +0 -19
  584. package/dist/RS/v2/to/break-lengths.js.map +0 -1
  585. package/dist/RS/v2/to/collections.js +0 -60
  586. package/dist/RS/v2/to/collections.js.map +0 -1
  587. package/dist/RS/v2/to/configurations.js +0 -23
  588. package/dist/RS/v2/to/configurations.js.map +0 -1
  589. package/dist/RS/v2/to/constraints.js +0 -88
  590. package/dist/RS/v2/to/constraints.js.map +0 -1
  591. package/dist/RS/v2/to/course-events/days.js +0 -12
  592. package/dist/RS/v2/to/course-events/days.js.map +0 -1
  593. package/dist/RS/v2/to/course-events/dependencies.js +0 -14
  594. package/dist/RS/v2/to/course-events/dependencies.js.map +0 -1
  595. package/dist/RS/v2/to/course-events/groups.js +0 -38
  596. package/dist/RS/v2/to/course-events/groups.js.map +0 -1
  597. package/dist/RS/v2/to/course-events/in-locations.js +0 -18
  598. package/dist/RS/v2/to/course-events/in-locations.js.map +0 -1
  599. package/dist/RS/v2/to/course-events/index.js +0 -56
  600. package/dist/RS/v2/to/course-events/index.js.map +0 -1
  601. package/dist/RS/v2/to/course-events/intervals.js +0 -11
  602. package/dist/RS/v2/to/course-events/intervals.js.map +0 -1
  603. package/dist/RS/v2/to/course-events/meta.js +0 -21
  604. package/dist/RS/v2/to/course-events/meta.js.map +0 -1
  605. package/dist/RS/v2/to/days.js +0 -11
  606. package/dist/RS/v2/to/days.js.map +0 -1
  607. package/dist/RS/v2/to/default.js +0 -36
  608. package/dist/RS/v2/to/default.js.map +0 -1
  609. package/dist/RS/v2/to/dependencies.js +0 -28
  610. package/dist/RS/v2/to/dependencies.js.map +0 -1
  611. package/dist/RS/v2/to/destructure.js +0 -40
  612. package/dist/RS/v2/to/destructure.js.map +0 -1
  613. package/dist/RS/v2/to/dynamic-locked-times.js +0 -57
  614. package/dist/RS/v2/to/dynamic-locked-times.js.map +0 -1
  615. package/dist/RS/v2/to/groups.js +0 -37
  616. package/dist/RS/v2/to/groups.js.map +0 -1
  617. package/dist/RS/v2/to/index.d.ts +0 -44
  618. package/dist/RS/v2/to/index.js +0 -36
  619. package/dist/RS/v2/to/index.js.map +0 -1
  620. package/dist/RS/v2/to/intervals.js +0 -32
  621. package/dist/RS/v2/to/intervals.js.map +0 -1
  622. package/dist/RS/v2/to/locked-times.js +0 -49
  623. package/dist/RS/v2/to/locked-times.js.map +0 -1
  624. package/dist/RS/v2/to/periods.js +0 -48
  625. package/dist/RS/v2/to/periods.js.map +0 -1
  626. package/dist/RS/v2/to/persons.js +0 -23
  627. package/dist/RS/v2/to/persons.js.map +0 -1
  628. package/dist/RS/v2/to/schedules.js +0 -19
  629. package/dist/RS/v2/to/schedules.js.map +0 -1
  630. package/dist/RS/v2/to/settings.js +0 -18
  631. package/dist/RS/v2/to/settings.js.map +0 -1
  632. package/dist/RS/v2/to/teachers.js +0 -37
  633. package/dist/RS/v2/to/teachers.js.map +0 -1
  634. package/dist/RS/v2/types/areas.d.ts +0 -8
  635. package/dist/RS/v2/types/available-dependencies.d.ts +0 -8
  636. package/dist/RS/v2/types/break-lengths.d.ts +0 -9
  637. package/dist/RS/v2/types/collections.d.ts +0 -29
  638. package/dist/RS/v2/types/configurations.d.ts +0 -10
  639. package/dist/RS/v2/types/constraints.d.ts +0 -21
  640. package/dist/RS/v2/types/course-events.d.ts +0 -30
  641. package/dist/RS/v2/types/days.d.ts +0 -8
  642. package/dist/RS/v2/types/default.d.ts +0 -25
  643. package/dist/RS/v2/types/dependencies.d.ts +0 -17
  644. package/dist/RS/v2/types/index.d.ts +0 -33
  645. package/dist/RS/v2/types/intervals.d.ts +0 -9
  646. package/dist/RS/v2/types/out-options.d.ts +0 -11
  647. package/dist/RS/v2/types/placements.d.ts +0 -12
  648. package/dist/RS/v2/types/schedules.d.ts +0 -18
  649. package/dist/RS/v3/from/division.js +0 -14
  650. package/dist/RS/v3/from/division.js.map +0 -1
  651. package/dist/RS/v3/from/index.js +0 -12
  652. package/dist/RS/v3/from/index.js.map +0 -1
  653. package/dist/RS/v3/from/schedules.js +0 -34
  654. package/dist/RS/v3/from/schedules.js.map +0 -1
  655. package/dist/RS/v3/index.d.ts +0 -21
  656. package/dist/RS/v3/index.js +0 -12
  657. package/dist/RS/v3/index.js.map +0 -1
  658. package/dist/RS/v3/to/available-dependencies.js +0 -26
  659. package/dist/RS/v3/to/available-dependencies.js.map +0 -1
  660. package/dist/RS/v3/to/break-lengths.js +0 -19
  661. package/dist/RS/v3/to/break-lengths.js.map +0 -1
  662. package/dist/RS/v3/to/collections.js +0 -56
  663. package/dist/RS/v3/to/collections.js.map +0 -1
  664. package/dist/RS/v3/to/configurations.js +0 -23
  665. package/dist/RS/v3/to/configurations.js.map +0 -1
  666. package/dist/RS/v3/to/constraints.js +0 -77
  667. package/dist/RS/v3/to/constraints.js.map +0 -1
  668. package/dist/RS/v3/to/course-events/days.js +0 -12
  669. package/dist/RS/v3/to/course-events/days.js.map +0 -1
  670. package/dist/RS/v3/to/course-events/dependencies.js +0 -14
  671. package/dist/RS/v3/to/course-events/dependencies.js.map +0 -1
  672. package/dist/RS/v3/to/course-events/groups.js +0 -44
  673. package/dist/RS/v3/to/course-events/groups.js.map +0 -1
  674. package/dist/RS/v3/to/course-events/in-locations.js +0 -18
  675. package/dist/RS/v3/to/course-events/in-locations.js.map +0 -1
  676. package/dist/RS/v3/to/course-events/index.js +0 -84
  677. package/dist/RS/v3/to/course-events/index.js.map +0 -1
  678. package/dist/RS/v3/to/course-events/intervals.js +0 -11
  679. package/dist/RS/v3/to/course-events/intervals.js.map +0 -1
  680. package/dist/RS/v3/to/course-events/meta.js +0 -21
  681. package/dist/RS/v3/to/course-events/meta.js.map +0 -1
  682. package/dist/RS/v3/to/days.js +0 -11
  683. package/dist/RS/v3/to/days.js.map +0 -1
  684. package/dist/RS/v3/to/default.js.map +0 -1
  685. package/dist/RS/v3/to/dependencies.js +0 -31
  686. package/dist/RS/v3/to/dependencies.js.map +0 -1
  687. package/dist/RS/v3/to/destructure.js +0 -33
  688. package/dist/RS/v3/to/destructure.js.map +0 -1
  689. package/dist/RS/v3/to/dynamic-locked-times.js +0 -97
  690. package/dist/RS/v3/to/dynamic-locked-times.js.map +0 -1
  691. package/dist/RS/v3/to/groups.js +0 -36
  692. package/dist/RS/v3/to/groups.js.map +0 -1
  693. package/dist/RS/v3/to/index.d.ts +0 -266
  694. package/dist/RS/v3/to/index.js.map +0 -1
  695. package/dist/RS/v3/to/individuals.js +0 -49
  696. package/dist/RS/v3/to/individuals.js.map +0 -1
  697. package/dist/RS/v3/to/intervals.js +0 -32
  698. package/dist/RS/v3/to/intervals.js.map +0 -1
  699. package/dist/RS/v3/to/locked-times.js +0 -49
  700. package/dist/RS/v3/to/locked-times.js.map +0 -1
  701. package/dist/RS/v3/to/periods.js +0 -48
  702. package/dist/RS/v3/to/periods.js.map +0 -1
  703. package/dist/RS/v3/to/schedules.js +0 -39
  704. package/dist/RS/v3/to/schedules.js.map +0 -1
  705. package/dist/RS/v3/to/settings.js +0 -18
  706. package/dist/RS/v3/to/settings.js.map +0 -1
  707. package/dist/RS/v3/to/teachers.js +0 -36
  708. package/dist/RS/v3/to/teachers.js.map +0 -1
  709. package/dist/RS/v3/to/util.js +0 -32
  710. package/dist/RS/v3/to/util.js.map +0 -1
  711. package/dist/RS/v3/types/areas.d.ts +0 -8
  712. package/dist/RS/v3/types/available-dependencies.d.ts +0 -8
  713. package/dist/RS/v3/types/break-lengths.d.ts +0 -9
  714. package/dist/RS/v3/types/collections.d.ts +0 -31
  715. package/dist/RS/v3/types/configurations.d.ts +0 -10
  716. package/dist/RS/v3/types/constraints.d.ts +0 -25
  717. package/dist/RS/v3/types/course-events.d.ts +0 -32
  718. package/dist/RS/v3/types/days.d.ts +0 -8
  719. package/dist/RS/v3/types/dependencies.d.ts +0 -17
  720. package/dist/RS/v3/types/groups.d.ts +0 -25
  721. package/dist/RS/v3/types/index.d.ts +0 -33
  722. package/dist/RS/v3/types/individuals.d.ts +0 -13
  723. package/dist/RS/v3/types/intervals.d.ts +0 -9
  724. package/dist/RS/v3/types/locked-times.d.ts +0 -11
  725. package/dist/RS/v3/types/out-options.d.ts +0 -23
  726. package/dist/RS/v3/types/placements.d.ts +0 -12
  727. package/dist/RS/v3/types/root-intervals.d.ts +0 -10
  728. package/dist/RS/v3/types/schedules.d.ts +0 -24
  729. package/dist/RS/v3/types/settings.d.ts +0 -12
  730. package/dist/SS12000/from/activities.js +0 -35
  731. package/dist/SS12000/from/activities.js.map +0 -1
  732. package/dist/SS12000/from/calendar-events.js +0 -20
  733. package/dist/SS12000/from/calendar-events.js.map +0 -1
  734. package/dist/SS12000/from/duties.js +0 -21
  735. package/dist/SS12000/from/duties.js.map +0 -1
  736. package/dist/SS12000/from/groups.js +0 -23
  737. package/dist/SS12000/from/groups.js.map +0 -1
  738. package/dist/SS12000/from/index.js +0 -24
  739. package/dist/SS12000/from/index.js.map +0 -1
  740. package/dist/SS12000/from/persons.js +0 -43
  741. package/dist/SS12000/from/persons.js.map +0 -1
  742. package/dist/SS12000/from/resources.js +0 -9
  743. package/dist/SS12000/from/resources.js.map +0 -1
  744. package/dist/SS12000/from/rooms.js +0 -18
  745. package/dist/SS12000/from/rooms.js.map +0 -1
  746. package/dist/SS12000/from/syllabuses.js +0 -21
  747. package/dist/SS12000/from/syllabuses.js.map +0 -1
  748. package/dist/SS12000/index.d.ts +0 -73
  749. package/dist/SS12000/index.js +0 -12
  750. package/dist/SS12000/index.js.map +0 -1
  751. package/dist/SS12000/to/activities.js +0 -55
  752. package/dist/SS12000/to/activities.js.map +0 -1
  753. package/dist/SS12000/to/calendar-events.js +0 -47
  754. package/dist/SS12000/to/calendar-events.js.map +0 -1
  755. package/dist/SS12000/to/common.js +0 -16
  756. package/dist/SS12000/to/common.js.map +0 -1
  757. package/dist/SS12000/to/duties.js +0 -36
  758. package/dist/SS12000/to/duties.js.map +0 -1
  759. package/dist/SS12000/to/groups.js +0 -37
  760. package/dist/SS12000/to/groups.js.map +0 -1
  761. package/dist/SS12000/to/index.d.ts +0 -25
  762. package/dist/SS12000/to/index.js +0 -24
  763. package/dist/SS12000/to/index.js.map +0 -1
  764. package/dist/SS12000/to/persons.js +0 -36
  765. package/dist/SS12000/to/persons.js.map +0 -1
  766. package/dist/SS12000/to/resources.js +0 -23
  767. package/dist/SS12000/to/resources.js.map +0 -1
  768. package/dist/SS12000/to/rooms.js +0 -28
  769. package/dist/SS12000/to/rooms.js.map +0 -1
  770. package/dist/SS12000/to/syllabuses.js +0 -30
  771. package/dist/SS12000/to/syllabuses.js.map +0 -1
  772. package/dist/SS12000/types/activities.d.ts +0 -41
  773. package/dist/SS12000/types/calendar-events.d.ts +0 -23
  774. package/dist/SS12000/types/codes.d.ts +0 -9
  775. package/dist/SS12000/types/duties.d.ts +0 -23
  776. package/dist/SS12000/types/duty-assignments.d.ts +0 -13
  777. package/dist/SS12000/types/groups.d.ts +0 -23
  778. package/dist/SS12000/types/index.d.ts +0 -21
  779. package/dist/SS12000/types/organisation.d.ts +0 -20
  780. package/dist/SS12000/types/persons.d.ts +0 -30
  781. package/dist/SS12000/types/resources.d.ts +0 -13
  782. package/dist/SS12000/types/rooms.d.ts +0 -17
  783. package/dist/SS12000/types/syllabus.d.ts +0 -19
  784. package/dist/core/v1/from/courses.js +0 -26
  785. package/dist/core/v1/from/courses.js.map +0 -1
  786. package/dist/core/v1/from/events.js +0 -12
  787. package/dist/core/v1/from/events.js.map +0 -1
  788. package/dist/core/v1/from/groups.js +0 -14
  789. package/dist/core/v1/from/groups.js.map +0 -1
  790. package/dist/core/v1/from/index.js +0 -8
  791. package/dist/core/v1/from/index.js.map +0 -1
  792. package/dist/core/v1/from/locations.js +0 -14
  793. package/dist/core/v1/from/locations.js.map +0 -1
  794. package/dist/core/v1/from/locked-times.js +0 -13
  795. package/dist/core/v1/from/locked-times.js.map +0 -1
  796. package/dist/core/v1/from/overlap-groups.js +0 -13
  797. package/dist/core/v1/from/overlap-groups.js.map +0 -1
  798. package/dist/core/v1/from/periods.js +0 -14
  799. package/dist/core/v1/from/periods.js.map +0 -1
  800. package/dist/core/v1/from/schedules.d.ts +0 -139
  801. package/dist/core/v1/from/schedules.js +0 -36
  802. package/dist/core/v1/from/schedules.js.map +0 -1
  803. package/dist/core/v1/from/teachers.js +0 -14
  804. package/dist/core/v1/from/teachers.js.map +0 -1
  805. package/dist/core/v1/index.d.ts +0 -14
  806. package/dist/core/v1/index.js +0 -12
  807. package/dist/core/v1/index.js.map +0 -1
  808. package/dist/core/v1/to/available-locations.js +0 -11
  809. package/dist/core/v1/to/available-locations.js.map +0 -1
  810. package/dist/core/v1/to/courses.js +0 -33
  811. package/dist/core/v1/to/courses.js.map +0 -1
  812. package/dist/core/v1/to/days.js +0 -13
  813. package/dist/core/v1/to/days.js.map +0 -1
  814. package/dist/core/v1/to/events.js +0 -35
  815. package/dist/core/v1/to/events.js.map +0 -1
  816. package/dist/core/v1/to/groups.js +0 -24
  817. package/dist/core/v1/to/groups.js.map +0 -1
  818. package/dist/core/v1/to/index.js +0 -10
  819. package/dist/core/v1/to/index.js.map +0 -1
  820. package/dist/core/v1/to/intervals.js +0 -14
  821. package/dist/core/v1/to/intervals.js.map +0 -1
  822. package/dist/core/v1/to/locations.js +0 -20
  823. package/dist/core/v1/to/locations.js.map +0 -1
  824. package/dist/core/v1/to/locked-times.js +0 -25
  825. package/dist/core/v1/to/locked-times.js.map +0 -1
  826. package/dist/core/v1/to/overlap-groups.js +0 -30
  827. package/dist/core/v1/to/overlap-groups.js.map +0 -1
  828. package/dist/core/v1/to/periods.js +0 -10
  829. package/dist/core/v1/to/periods.js.map +0 -1
  830. package/dist/core/v1/to/persons.js +0 -22
  831. package/dist/core/v1/to/persons.js.map +0 -1
  832. package/dist/core/v1/to/schedules.d.ts +0 -170
  833. package/dist/core/v1/to/schedules.js +0 -32
  834. package/dist/core/v1/to/schedules.js.map +0 -1
  835. package/dist/core/v1/to/settings.js +0 -13
  836. package/dist/core/v1/to/settings.js.map +0 -1
  837. package/dist/core/v1/to/teachers.js +0 -20
  838. package/dist/core/v1/to/teachers.js.map +0 -1
  839. package/dist/core/v1/types/areas.d.ts +0 -16
  840. package/dist/core/v1/types/available-locations.d.ts +0 -13
  841. package/dist/core/v1/types/break-lengths.d.ts +0 -5
  842. package/dist/core/v1/types/common/coalesced.d.ts +0 -10
  843. package/dist/core/v1/types/courses.d.ts +0 -54
  844. package/dist/core/v1/types/days.d.ts +0 -14
  845. package/dist/core/v1/types/division-settings.d.ts +0 -39
  846. package/dist/core/v1/types/divisions.d.ts +0 -45
  847. package/dist/core/v1/types/events.d.ts +0 -60
  848. package/dist/core/v1/types/groups.d.ts +0 -37
  849. package/dist/core/v1/types/index.d.ts +0 -41
  850. package/dist/core/v1/types/intervals.d.ts +0 -17
  851. package/dist/core/v1/types/locations.d.ts +0 -32
  852. package/dist/core/v1/types/locked-times.d.ts +0 -39
  853. package/dist/core/v1/types/meta.d.ts +0 -9
  854. package/dist/core/v1/types/overlap-groups.d.ts +0 -26
  855. package/dist/core/v1/types/periods.d.ts +0 -22
  856. package/dist/core/v1/types/persons.d.ts +0 -40
  857. package/dist/core/v1/types/teachers.d.ts +0 -34
  858. package/dist/core/v2/from/courses.js +0 -13
  859. package/dist/core/v2/from/courses.js.map +0 -1
  860. package/dist/core/v2/from/events.js +0 -12
  861. package/dist/core/v2/from/events.js.map +0 -1
  862. package/dist/core/v2/from/exceptions.js +0 -13
  863. package/dist/core/v2/from/exceptions.js.map +0 -1
  864. package/dist/core/v2/from/groups.js +0 -13
  865. package/dist/core/v2/from/groups.js.map +0 -1
  866. package/dist/core/v2/from/index.js.map +0 -1
  867. package/dist/core/v2/from/locations.js +0 -13
  868. package/dist/core/v2/from/locations.js.map +0 -1
  869. package/dist/core/v2/from/locked-times.js +0 -13
  870. package/dist/core/v2/from/locked-times.js.map +0 -1
  871. package/dist/core/v2/from/overlap-groups.js +0 -13
  872. package/dist/core/v2/from/overlap-groups.js.map +0 -1
  873. package/dist/core/v2/from/periods.js +0 -13
  874. package/dist/core/v2/from/periods.js.map +0 -1
  875. package/dist/core/v2/from/persons.js +0 -12
  876. package/dist/core/v2/from/persons.js.map +0 -1
  877. package/dist/core/v2/from/root-intervals.js +0 -13
  878. package/dist/core/v2/from/root-intervals.js.map +0 -1
  879. package/dist/core/v2/from/schedules.d.ts +0 -245
  880. package/dist/core/v2/from/schedules.js +0 -48
  881. package/dist/core/v2/from/schedules.js.map +0 -1
  882. package/dist/core/v2/from/syllabuses.js.map +0 -1
  883. package/dist/core/v2/from/teachers.js +0 -13
  884. package/dist/core/v2/from/teachers.js.map +0 -1
  885. package/dist/core/v2/index.d.ts +0 -16
  886. package/dist/core/v2/index.js +0 -12
  887. package/dist/core/v2/index.js.map +0 -1
  888. package/dist/core/v2/to/available-locations.js +0 -11
  889. package/dist/core/v2/to/available-locations.js.map +0 -1
  890. package/dist/core/v2/to/courses.js +0 -44
  891. package/dist/core/v2/to/courses.js.map +0 -1
  892. package/dist/core/v2/to/days.js +0 -13
  893. package/dist/core/v2/to/days.js.map +0 -1
  894. package/dist/core/v2/to/division.js +0 -10
  895. package/dist/core/v2/to/division.js.map +0 -1
  896. package/dist/core/v2/to/events.js +0 -47
  897. package/dist/core/v2/to/events.js.map +0 -1
  898. package/dist/core/v2/to/exceptions.js +0 -29
  899. package/dist/core/v2/to/exceptions.js.map +0 -1
  900. package/dist/core/v2/to/groups.js +0 -34
  901. package/dist/core/v2/to/groups.js.map +0 -1
  902. package/dist/core/v2/to/index.d.ts +0 -9
  903. package/dist/core/v2/to/index.js +0 -10
  904. package/dist/core/v2/to/index.js.map +0 -1
  905. package/dist/core/v2/to/intervals.js +0 -13
  906. package/dist/core/v2/to/intervals.js.map +0 -1
  907. package/dist/core/v2/to/locations.js +0 -35
  908. package/dist/core/v2/to/locations.js.map +0 -1
  909. package/dist/core/v2/to/locked-times.js +0 -25
  910. package/dist/core/v2/to/locked-times.js.map +0 -1
  911. package/dist/core/v2/to/overlap-groups.js +0 -30
  912. package/dist/core/v2/to/overlap-groups.js.map +0 -1
  913. package/dist/core/v2/to/periods.js +0 -10
  914. package/dist/core/v2/to/periods.js.map +0 -1
  915. package/dist/core/v2/to/persons.js +0 -25
  916. package/dist/core/v2/to/persons.js.map +0 -1
  917. package/dist/core/v2/to/root-intervals.js +0 -10
  918. package/dist/core/v2/to/root-intervals.js.map +0 -1
  919. package/dist/core/v2/to/schedules.d.ts +0 -249
  920. package/dist/core/v2/to/schedules.js +0 -40
  921. package/dist/core/v2/to/schedules.js.map +0 -1
  922. package/dist/core/v2/to/settings.js +0 -13
  923. package/dist/core/v2/to/settings.js.map +0 -1
  924. package/dist/core/v2/to/syllabuses.js +0 -16
  925. package/dist/core/v2/to/syllabuses.js.map +0 -1
  926. package/dist/core/v2/to/teachers.js +0 -28
  927. package/dist/core/v2/to/teachers.js.map +0 -1
  928. package/dist/core/v2/types/areas.d.ts +0 -16
  929. package/dist/core/v2/types/available-locations.d.ts +0 -13
  930. package/dist/core/v2/types/break-lengths.d.ts +0 -5
  931. package/dist/core/v2/types/common/coalesced.d.ts +0 -10
  932. package/dist/core/v2/types/common/maximum-schedule-span.d.ts +0 -8
  933. package/dist/core/v2/types/common/planned-schedule-duration.d.ts +0 -7
  934. package/dist/core/v2/types/courses.d.ts +0 -76
  935. package/dist/core/v2/types/days.d.ts +0 -14
  936. package/dist/core/v2/types/divisions.d.ts +0 -54
  937. package/dist/core/v2/types/events.d.ts +0 -76
  938. package/dist/core/v2/types/groups.d.ts +0 -50
  939. package/dist/core/v2/types/index.d.ts +0 -49
  940. package/dist/core/v2/types/intervals.d.ts +0 -17
  941. package/dist/core/v2/types/locations.d.ts +0 -38
  942. package/dist/core/v2/types/locked-times.d.ts +0 -44
  943. package/dist/core/v2/types/overlap-groups.d.ts +0 -26
  944. package/dist/core/v2/types/periods.d.ts +0 -25
  945. package/dist/core/v2/types/root-intervals.d.ts +0 -23
  946. package/dist/core/v2/types/schedules.d.ts +0 -38
  947. package/dist/core/v2/types/syllabus.d.ts +0 -27
  948. package/dist/vKlass/from/index.d.ts +0 -9
package/README.md CHANGED
@@ -5,3 +5,4 @@ This repository contains the mapping for RS data structure to other data structu
5
5
  ### How do I get set up? ###
6
6
 
7
7
  * `npm i`
8
+ * `npm run compile`
@@ -1 +1 @@
1
- {"version":3,"file":"courses.js","names":["courses: Types.course[]"],"sources":["../../../src/Additio/from/courses.ts"],"sourcesContent":["import { ScheduleGroup } from '../types/schedule-groups';\nimport { School } from '../types/schools';\nimport { Types } from '../../core/types';\n\nexport default function (\n scheduledGroups: ScheduleGroup[] | undefined,\n school: School,\n importErrors: string[],\n importWarnings: string[],\n): Types.course[] {\n\n const courses: Types.course[] = [];\n\n scheduledGroups?.forEach(scheduledGroup => {\n\n ////\n //// check number of subjects/courses\n ////\n const subjects = school.school_type == 'GR' ? scheduledGroup.subjects : scheduledGroup.courses;\n if (subjects.length != 1) {\n const warn = `The schedule group \"${scheduledGroup.name}\" with id \"${scheduledGroup.id}\" contained ${subjects.length} number of ${school.school_type == 'GR' ? 'subjects' : 'courses'} and was therefore omitted: a schedule group shall contain only a single ${school.school_type == 'GR' ? 'subject' : 'course'}.`;\n importWarnings.push(warn);\n return;\n }\n\n\n ////\n //// check number of teachers\n ////\n if (scheduledGroup.teachers?.length == 0) {\n const warn = `The schedule group \"${scheduledGroup.name}\" with id \"${scheduledGroup.id}\" did not contain any teachers.`;\n importWarnings.push(warn);\n }\n\n\n courses.push({\n ids: scheduledGroup.id.toString(),\n displayName: scheduledGroup.name,\n subject: subjects.map(x => x.name).join(', '),\n groups: scheduledGroup.users_primary_groups.map(x => ({ to: x.toString() })),\n teachers: scheduledGroup.teachers?.map(x => ({ to: x.id.toString() }))\n } satisfies Types.course);\n\n });\n\n return courses;\n}\n"],"mappings":";AAIA,yBACE,iBACA,QACA,cACA,gBACgB;CAEhB,MAAMA,UAA0B;AAEhC,kBAAiB,SAAQ,mBAAkB;EAKzC,MAAM,WAAW,OAAO,eAAe,OAAO,eAAe,WAAW,eAAe;AACvF,MAAI,SAAS,UAAU,GAAG;GACxB,MAAM,OAAO,uBAAuB,eAAe,KAAK,aAAa,eAAe,GAAG,cAAc,SAAS,OAAO,aAAa,OAAO,eAAe,OAAO,aAAa,UAAU,2EAA2E,OAAO,eAAe,OAAO,YAAY,SAAS;AACnT,kBAAe,KAAK;AACpB;;AAOF,MAAI,eAAe,UAAU,UAAU,GAAG;GACxC,MAAM,OAAO,uBAAuB,eAAe,KAAK,aAAa,eAAe,GAAG;AACvF,kBAAe,KAAK;;AAItB,UAAQ,KAAK;GACX,KAAa,eAAe,GAAG;GAC/B,aAAa,eAAe;GAC5B,SAAa,SAAS,KAAI,MAAK,EAAE,MAAM,KAAK;GAC5C,QAAa,eAAe,qBAAqB,KAAI,OAAM,EAAE,IAAI,EAAE;GACnE,UAAa,eAAe,UAAU,KAAI,OAAM,EAAE,IAAI,EAAE,GAAG;;;AAK/D,QAAO"}
1
+ {"version":3,"file":"courses.js","names":["courses: OutTypes.course[]"],"sources":["../../../src/Additio/from/courses.ts"],"sourcesContent":["import type { ScheduleGroup } from '../types/schedule-groups';\nimport type { School } from '../types/schools';\nimport type { OutTypes } from './schedules';\n\n\nexport default function (\n scheduledGroups: ScheduleGroup[] | undefined,\n school: School,\n importErrors: string[],\n importWarnings: string[],\n): OutTypes.course[] {\n\n const courses: OutTypes.course[] = [];\n\n scheduledGroups?.forEach(scheduledGroup => {\n\n ////\n //// check number of subjects/courses\n ////\n const subjects = school.school_type == 'GR' ? scheduledGroup.subjects : scheduledGroup.courses;\n if (subjects.length != 1) {\n const warn = `The schedule group \"${scheduledGroup.name}\" with id \"${scheduledGroup.id}\" contained ${subjects.length} number of ${school.school_type == 'GR' ? 'subjects' : 'courses'} and was therefore omitted: a schedule group shall contain only a single ${school.school_type == 'GR' ? 'subject' : 'course'}.`;\n importWarnings.push(warn);\n return;\n }\n\n\n ////\n //// check number of teachers\n ////\n if (scheduledGroup.teachers?.length == 0) {\n const warn = `The schedule group \"${scheduledGroup.name}\" with id \"${scheduledGroup.id}\" did not contain any teachers.`;\n importWarnings.push(warn);\n }\n\n\n courses.push({\n ids: scheduledGroup.id.toString(),\n displayName: scheduledGroup.name,\n subject: subjects.map(x => x.name).join(', '),\n groups: scheduledGroup.users_primary_groups.map(x => ({ to: x.toString() })),\n teachers: scheduledGroup.teachers?.map(x => ({ to: x.id.toString() }))\n } satisfies OutTypes.course);\n\n });\n\n return courses;\n}\n"],"mappings":";AAKA,yBACE,iBACA,QACA,cACA,gBACmB;CAEnB,MAAMA,UAA6B;AAEnC,kBAAiB,SAAQ,mBAAkB;EAKzC,MAAM,WAAW,OAAO,eAAe,OAAO,eAAe,WAAW,eAAe;AACvF,MAAI,SAAS,UAAU,GAAG;GACxB,MAAM,OAAO,uBAAuB,eAAe,KAAK,aAAa,eAAe,GAAG,cAAc,SAAS,OAAO,aAAa,OAAO,eAAe,OAAO,aAAa,UAAU,2EAA2E,OAAO,eAAe,OAAO,YAAY,SAAS;AACnT,kBAAe,KAAK;AACpB;;AAOF,MAAI,eAAe,UAAU,UAAU,GAAG;GACxC,MAAM,OAAO,uBAAuB,eAAe,KAAK,aAAa,eAAe,GAAG;AACvF,kBAAe,KAAK;;AAItB,UAAQ,KAAK;GACX,KAAa,eAAe,GAAG;GAC/B,aAAa,eAAe;GAC5B,SAAa,SAAS,KAAI,MAAK,EAAE,MAAM,KAAK;GAC5C,QAAa,eAAe,qBAAqB,KAAI,OAAM,EAAE,IAAI,EAAE;GACnE,UAAa,eAAe,UAAU,KAAI,OAAM,EAAE,IAAI,EAAE,GAAG;;;AAK/D,QAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":["events: CoreTypes.event[]","eventTeachers: string[] | undefined"],"sources":["../../../src/Additio/from/events.ts"],"sourcesContent":["\nimport moment from 'moment';\n\nimport { Types as CoreTypes } from '../../core/types';\nimport { Lesson } from '../types/lessons';\n\nconst firstDay = moment.utc('1970-01-05');\n\nfunction fromTimeString (\n day: number,\n timeString: string\n): moment.Moment {\n const [hours, minutes, seconds] = timeString.split(':').map((time: string) => parseInt(time));\n return firstDay.clone().add(day, 'day')\n .set('hour', hours)\n .set('minute', minutes);\n}\n\n\nexport default function (\n lessons: Lesson[] | undefined,\n courses: CoreTypes.course[] | undefined,\n teachers: CoreTypes.course[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): CoreTypes.event[] {\n\n // create schedule_group (group) to course map for quick lookup\n const group2course = new Map<string, CoreTypes.course>();\n courses?.forEach(c => group2course.set(c.ids!, c));\n\n // create teacher set for quick lookup\n const teacherSet = new Set<string>();\n teachers?.forEach(t => teacherSet.add(t.ids!));\n\n const events: CoreTypes.event[] = [];\n lessons?.forEach(l => {\n\n // check number of groups (schedule_groups = course) to ensure that only one exists\n if (l.info.groups?.length != 1) {\n const warn = `The lesson with id \"${l.id} contained ${l.info.groups?.length} number of groups (schedule_groups = courses) and was therefore omitted: a lesson shall contain only a single group.`;\n importWarnings.push(warn);\n return;\n }\n const course_id = l.info.groups[0].id.toString();\n\n // ensure the course exists\n const course = group2course.get(course_id);\n if (!course) {\n const warn = `The lesson with id \"${l.id}\" referenced the unknown/faulty schedule_group (course) \"${course_id}\" and was therefore ignored.`;\n importWarnings.push(warn);\n return;\n }\n\n const start = fromTimeString(l.weekday, l.info.start);\n const end = fromTimeString(l.weekday, l.info.end);\n const preferredDuration = l.info.duration;\n const duration = l.info.duration;\n\n // store only teachers if they mismatch teachers of parent course\n let eventTeachers: string[] | undefined;\n if (!course.teachers || !course.teachers?.every(x => l.info.teachers?.some(y => y.id.toString() == x.to))) {\n eventTeachers = l.info.teachers?.map(x => x.id.toString());\n\n // ensure that the teachers exist\n for (const teacher of eventTeachers ?? []) {\n if (!teacherSet.has(teacher)) {\n const warn = `The lesson with id \"${l.id}\" referenced the unknown teacher \"${teacher}\" and was therefore ignored.`;\n importWarnings.push(warn);\n return;\n }\n }\n }\n\n // location\n const location = l.info.room?.id.toString();\n\n events.push({\n ids: l.id.toString(),\n start,\n end,\n preferredDuration,\n duration,\n course: course_id,\n ...location && { inLocations: [ location ], locations: [{ locations: [ location ] }] },\n ...(eventTeachers && { teachers: eventTeachers.map((to) => ({ to })) })\n } satisfies CoreTypes.event);\n });\n\n return events;\n}\n"],"mappings":";;;AAMA,MAAM,WAAW,OAAO,IAAI;AAE5B,SAAS,eACP,KACA,YACe;CACf,MAAM,CAAC,OAAO,SAAS,WAAW,WAAW,MAAM,KAAK,KAAK,SAAiB,SAAS;AACvF,QAAO,SAAS,QAAQ,IAAI,KAAK,OAC9B,IAAI,QAAQ,OACZ,IAAI,UAAU;;AAInB,wBACE,SACA,SACA,UACA,cACA,gBACmB;CAGnB,MAAM,+BAAe,IAAI;AACzB,UAAS,SAAQ,MAAK,aAAa,IAAI,EAAE,KAAM;CAG/C,MAAM,6BAAa,IAAI;AACvB,WAAU,SAAQ,MAAK,WAAW,IAAI,EAAE;CAExC,MAAMA,SAA4B;AAClC,UAAS,SAAQ,MAAK;AAGpB,MAAI,EAAE,KAAK,QAAQ,UAAU,GAAG;GAC9B,MAAM,OAAO,uBAAuB,EAAE,GAAG,aAAa,EAAE,KAAK,QAAQ,OAAO;AAC5E,kBAAe,KAAK;AACpB;;EAEF,MAAM,YAAY,EAAE,KAAK,OAAO,GAAG,GAAG;EAGtC,MAAM,SAAS,aAAa,IAAI;AAChC,MAAI,CAAC,QAAQ;GACX,MAAM,OAAO,uBAAuB,EAAE,GAAG,2DAA2D,UAAU;AAC9G,kBAAe,KAAK;AACpB;;EAGF,MAAM,QAAoB,eAAe,EAAE,SAAS,EAAE,KAAK;EAC3D,MAAM,MAAoB,eAAe,EAAE,SAAS,EAAE,KAAK;EAC3D,MAAM,oBAAoB,EAAE,KAAK;EACjC,MAAM,WAAoB,EAAE,KAAK;EAGjC,IAAIC;AACJ,MAAI,CAAC,OAAO,YAAY,CAAC,OAAO,UAAU,OAAM,MAAK,EAAE,KAAK,UAAU,MAAK,MAAK,EAAE,GAAG,cAAc,EAAE,MAAM;AACzG,mBAAgB,EAAE,KAAK,UAAU,KAAI,MAAK,EAAE,GAAG;AAG/C,QAAK,MAAM,WAAW,iBAAiB,GACrC,KAAI,CAAC,WAAW,IAAI,UAAU;IAC5B,MAAM,OAAO,uBAAuB,EAAE,GAAG,oCAAoC,QAAQ;AACrF,mBAAe,KAAK;AACpB;;;EAMN,MAAM,WAAW,EAAE,KAAK,MAAM,GAAG;AAEjC,SAAO,KAAK;GACV,KAAQ,EAAE,GAAG;GACb;GACA;GACA;GACA;GACA,QAAQ;GACR,GAAG,YAAY;IAAE,aAAa,CAAE;IAAY,WAAW,CAAC,EAAE,WAAW,CAAE;;GACvE,GAAI,iBAAiB,EAAE,UAAU,cAAc,KAAK,QAAQ,EAAE;;;AAIlE,QAAO"}
1
+ {"version":3,"file":"events.js","names":["events: OutTypes.event[]","eventTeachers: string[] | undefined"],"sources":["../../../src/Additio/from/events.ts"],"sourcesContent":["\nimport moment from 'moment';\nimport type { Lesson } from '../types/lessons';\nimport type { OutTypes } from './schedules';\n\nconst firstDay = moment.utc('1970-01-05');\n\nfunction fromTimeString (\n day: number,\n timeString: string\n): moment.Moment {\n const [hours, minutes, seconds] = timeString.split(':').map((time: string) => parseInt(time));\n return firstDay.clone().add(day, 'day')\n .set('hour', hours)\n .set('minute', minutes);\n}\n\nexport default function (\n lessons: Lesson[] | undefined,\n courses: OutTypes.course[] | undefined,\n teachers: OutTypes.teacher[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): OutTypes.event[] {\n\n // create schedule_group (group) to course map for quick lookup\n const group2course = new Map<string, OutTypes.course>();\n courses?.forEach(c => group2course.set(c.ids!, c));\n\n // create teacher set for quick lookup\n const teacherSet = new Set<string>();\n teachers?.forEach(t => teacherSet.add(t.ids!));\n\n const events: OutTypes.event[] = [];\n lessons?.forEach(l => {\n\n // check number of groups (schedule_groups = course) to ensure that only one exists\n if (l.info.groups?.length != 1) {\n const warn = `The lesson with id \"${l.id} contained ${l.info.groups?.length} number of groups (schedule_groups = courses) and was therefore omitted: a lesson shall contain only a single group.`;\n importWarnings.push(warn);\n return;\n }\n const course_id = l.info.groups[0].id.toString();\n\n // ensure the course exists\n const course = group2course.get(course_id);\n if (!course) {\n const warn = `The lesson with id \"${l.id}\" referenced the unknown/faulty schedule_group (course) \"${course_id}\" and was therefore ignored.`;\n importWarnings.push(warn);\n return;\n }\n\n const start = fromTimeString(l.weekday, l.info.start);\n const end = fromTimeString(l.weekday, l.info.end);\n const preferredDuration = l.info.duration;\n const duration = l.info.duration;\n\n // store only teachers if they mismatch teachers of parent course\n let eventTeachers: string[] | undefined;\n if (!course.teachers || !course.teachers?.every(x => l.info.teachers?.some(y => y.id.toString() == x.to))) {\n eventTeachers = l.info.teachers?.map(x => x.id.toString());\n\n // ensure that the teachers exist\n for (const teacher of eventTeachers ?? []) {\n if (!teacherSet.has(teacher)) {\n const warn = `The lesson with id \"${l.id}\" referenced the unknown teacher \"${teacher}\" and was therefore ignored.`;\n importWarnings.push(warn);\n return;\n }\n }\n }\n\n // location\n const location = l.info.room?.id.toString();\n\n events.push({\n ids: l.id.toString(),\n start,\n end,\n preferredDuration,\n duration,\n course: course_id,\n ...location && { inLocations: [ location ], locations: [{ locations: [ location ] }] },\n ...(eventTeachers && { teachers: eventTeachers.map((to) => ({ to })) })\n } satisfies OutTypes.event);\n });\n\n return events;\n}\n"],"mappings":";;;AAKA,MAAM,WAAW,OAAO,IAAI;AAE5B,SAAS,eACP,KACA,YACe;CACf,MAAM,CAAC,OAAO,SAAS,WAAW,WAAW,MAAM,KAAK,KAAK,SAAiB,SAAS;AACvF,QAAO,SAAS,QAAQ,IAAI,KAAK,OAC9B,IAAI,QAAQ,OACZ,IAAI,UAAU;;AAGnB,wBACE,SACA,SACA,UACA,cACA,gBACkB;CAGlB,MAAM,+BAAe,IAAI;AACzB,UAAS,SAAQ,MAAK,aAAa,IAAI,EAAE,KAAM;CAG/C,MAAM,6BAAa,IAAI;AACvB,WAAU,SAAQ,MAAK,WAAW,IAAI,EAAE;CAExC,MAAMA,SAA2B;AACjC,UAAS,SAAQ,MAAK;AAGpB,MAAI,EAAE,KAAK,QAAQ,UAAU,GAAG;GAC9B,MAAM,OAAO,uBAAuB,EAAE,GAAG,aAAa,EAAE,KAAK,QAAQ,OAAO;AAC5E,kBAAe,KAAK;AACpB;;EAEF,MAAM,YAAY,EAAE,KAAK,OAAO,GAAG,GAAG;EAGtC,MAAM,SAAS,aAAa,IAAI;AAChC,MAAI,CAAC,QAAQ;GACX,MAAM,OAAO,uBAAuB,EAAE,GAAG,2DAA2D,UAAU;AAC9G,kBAAe,KAAK;AACpB;;EAGF,MAAM,QAAoB,eAAe,EAAE,SAAS,EAAE,KAAK;EAC3D,MAAM,MAAoB,eAAe,EAAE,SAAS,EAAE,KAAK;EAC3D,MAAM,oBAAoB,EAAE,KAAK;EACjC,MAAM,WAAoB,EAAE,KAAK;EAGjC,IAAIC;AACJ,MAAI,CAAC,OAAO,YAAY,CAAC,OAAO,UAAU,OAAM,MAAK,EAAE,KAAK,UAAU,MAAK,MAAK,EAAE,GAAG,cAAc,EAAE,MAAM;AACzG,mBAAgB,EAAE,KAAK,UAAU,KAAI,MAAK,EAAE,GAAG;AAG/C,QAAK,MAAM,WAAW,iBAAiB,GACrC,KAAI,CAAC,WAAW,IAAI,UAAU;IAC5B,MAAM,OAAO,uBAAuB,EAAE,GAAG,oCAAoC,QAAQ;AACrF,mBAAe,KAAK;AACpB;;;EAMN,MAAM,WAAW,EAAE,KAAK,MAAM,GAAG;AAEjC,SAAO,KAAK;GACV,KAAQ,EAAE,GAAG;GACb;GACA;GACA;GACA;GACA,QAAQ;GACR,GAAG,YAAY;IAAE,aAAa,CAAE;IAAY,WAAW,CAAC,EAAE,WAAW,CAAE;;GACvE,GAAI,iBAAiB,EAAE,UAAU,cAAc,KAAK,QAAQ,EAAE;;;AAIlE,QAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","names":[],"sources":["../../../src/Additio/from/groups.ts"],"sourcesContent":["import { PrimaryGroup } from '../types/primary-groups';\nimport { Types } from '../../core/types';\n\nexport default function (\n primaryGroups: PrimaryGroup[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): Types.group[] {\n return primaryGroups?.map(x => { return {\n ids: x.id.toString(),\n displayName: x.name,\n species: 'class',\n };}) ?? [];\n}\n"],"mappings":";AAGA,wBACE,eACA,cACA,gBACe;AACf,QAAO,eAAe,KAAI,MAAK;AAAE,SAAO;GACtC,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE;GACf,SAAa;;OACP"}
1
+ {"version":3,"file":"groups.js","names":[],"sources":["../../../src/Additio/from/groups.ts"],"sourcesContent":["import type { PrimaryGroup } from '../types/primary-groups';\nimport type { OutTypes } from './schedules';\n\nexport default function (\n primaryGroups: PrimaryGroup[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): OutTypes.group[] {\n return primaryGroups?.map(x => { return {\n ids: x.id.toString(),\n displayName: x.name,\n species: 'class',\n };}) ?? [];\n}\n"],"mappings":";AAGA,wBACE,eACA,cACA,gBACkB;AAClB,QAAO,eAAe,KAAI,MAAK;AAAE,SAAO;GACtC,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE;GACf,SAAa;;OACP"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/Additio/from/index.ts"],"sourcesContent":["import { FromInterface } from '../../core/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;\n"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
1
+ {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/Additio/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../common/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;\n"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
@@ -1 +1 @@
1
- {"version":3,"file":"locations.js","names":[],"sources":["../../../src/Additio/from/locations.ts"],"sourcesContent":["import { Room } from '../types/rooms';\nimport { Types } from '../../core/types';\n\n\nexport default function (\n rooms: Room[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): Types.location[] {\n return rooms?.map(room => { return {\n ids: room.id.toString(),\n displayName: room.name\n };}) ?? [];\n}\n"],"mappings":";AAIA,2BACE,OACA,cACA,gBACkB;AAClB,QAAO,OAAO,KAAI,SAAQ;AAAE,SAAO;GACjC,KAAa,KAAK,GAAG;GACrB,aAAa,KAAK;;OACZ"}
1
+ {"version":3,"file":"locations.js","names":[],"sources":["../../../src/Additio/from/locations.ts"],"sourcesContent":["import type { Room } from '../types/rooms';\nimport type { OutTypes } from './schedules';\n\n\nexport default function (\n rooms: Room[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): OutTypes.location[] {\n return rooms?.map(room => { return {\n ids: room.id.toString(),\n displayName: room.name\n };}) ?? [];\n}\n"],"mappings":";AAIA,2BACE,OACA,cACA,gBACqB;AACrB,QAAO,OAAO,KAAI,SAAQ;AAAE,SAAO;GACjC,KAAa,KAAK,GAAG;GACrB,aAAa,KAAK;;OACZ"}
@@ -1,7 +1,7 @@
1
1
  //#region src/Additio/from/persons.ts
2
2
  function persons_default(users, groups, importErrors, importWarnings) {
3
3
  const personSet = /* @__PURE__ */ new Map();
4
- const groupSet = new Map(groups.map((x) => [x.displayName, x.id]));
4
+ const groupSet = new Map(groups.map((x) => [x.displayName, x.ids]));
5
5
  users?.filter((x) => x.role === 1).forEach((user) => {
6
6
  const person = {
7
7
  ids: user.id.toString(),
@@ -1 +1 @@
1
- {"version":3,"file":"persons.js","names":["personSet: Map<number, CoreTypes.person>","groupSet: Map<string, string>"],"sources":["../../../src/Additio/from/persons.ts"],"sourcesContent":["import { Types as CoreTypes } from '../../core/types';\n\nimport { User } from '../types/users';\n\nexport default function (\n users: User[] | undefined,\n groups: CoreTypes.group[],\n importErrors: string[],\n importWarnings: string[]\n) {\n // add all persons to a set to remove duplicates\n const personSet: Map<number, CoreTypes.person> = new Map();\n\n /*\n The reference to the group is different that the one in the primary_groups array.\n To solve this we create a map of all groups and use the id of the group as key. If\n the id is not found in the map, try to find a group with the same name.\n */\n const groupSet: Map<string, string> = new Map(groups.map(x => [x.displayName!, x.id!]));\n\n users?.filter(x => x.role === 1).forEach(user => {\n const person = {\n ids: user.id.toString(),\n firstName: user.first_name,\n lastName: user.last_name,\n group: user.current_primary_group?.id?.toString(),\n ...user.email && {\n emails: [\n {\n value: user.email,\n type: 'organization'\n }\n ]\n }\n } satisfies CoreTypes.person;\n\n if (user.current_primary_group) {\n const { id, name } = user.current_primary_group;\n if (groupSet.get(name.toString()) != person.group) {\n importWarnings.push(`The group of the user ${person.firstName} ${person.lastName} is not the same as the group in the primary_groups array.`);\n person.group = groupSet.get(name.toString()) ?? person.group;\n }\n }\n\n\n personSet.set(user.id, person);\n });\n\n return Array.from(personSet.values());\n}\n"],"mappings":";AAIA,yBACE,OACA,QACA,cACA,gBACA;CAEA,MAAMA,4BAA2C,IAAI;CAOrD,MAAMC,WAA2C,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,aAAc,EAAE;AAE5F,QAAO,QAAO,MAAK,EAAE,SAAS,GAAG,SAAQ,SAAQ;EAC/C,MAAM,SAAS;GACb,KAAW,KAAK,GAAG;GACnB,WAAW,KAAK;GAChB,UAAW,KAAK;GAChB,OAAW,KAAK,uBAAuB,IAAI;GAC3C,GAAG,KAAK,SAAS,EACf,QAAQ,CACN;IACE,OAAO,KAAK;IACZ,MAAO;;;AAMf,MAAI,KAAK,uBAAuB;GAC9B,MAAM,EAAE,IAAI,SAAS,KAAK;AAC1B,OAAI,SAAS,IAAI,KAAK,eAAe,OAAO,OAAO;AACjD,mBAAe,KAAK,yBAAyB,OAAO,UAAU,GAAG,OAAO,SAAS;AACjF,WAAO,QAAQ,SAAS,IAAI,KAAK,eAAe,OAAO;;;AAK3D,YAAU,IAAI,KAAK,IAAI;;AAGzB,QAAO,MAAM,KAAK,UAAU"}
1
+ {"version":3,"file":"persons.js","names":["personSet: Map<number, OutTypes.person>"],"sources":["../../../src/Additio/from/persons.ts"],"sourcesContent":["import type { User } from '../types/users';\nimport type { OutTypes } from './schedules';\n\nexport default function (\n users: User[] | undefined,\n groups: OutTypes.group[],\n importErrors: string[],\n importWarnings: string[]\n) {\n // add all persons to a set to remove duplicates\n const personSet: Map<number, OutTypes.person> = new Map();\n\n /*\n The reference to the group is different that the one in the primary_groups array.\n To solve this we create a map of all groups and use the id of the group as key. If\n the id is not found in the map, try to find a group with the same name.\n */\n const groupSet = new Map(groups.map(x => [x.displayName!, x.ids!]));\n\n users?.filter(x => x.role === 1).forEach(user => {\n const person = {\n ids: user.id.toString(),\n firstName: user.first_name,\n lastName: user.last_name,\n group: user.current_primary_group?.id?.toString(),\n ...user.email && {\n emails: [\n {\n value: user.email,\n type: 'organization'\n }\n ]\n }\n } satisfies OutTypes.person;\n\n if (user.current_primary_group) {\n const { id, name } = user.current_primary_group;\n if (groupSet.get(name.toString()) != person.group) {\n importWarnings.push(`The group of the user ${person.firstName} ${person.lastName} is not the same as the group in the primary_groups array.`);\n person.group = groupSet.get(name.toString()) ?? person.group;\n }\n }\n\n\n personSet.set(user.id, person);\n });\n\n return Array.from(personSet.values());\n}\n"],"mappings":";AAGA,yBACE,OACA,QACA,cACA,gBACA;CAEA,MAAMA,4BAA0C,IAAI;CAOpD,MAAM,WAAW,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,aAAc,EAAE;AAE5D,QAAO,QAAO,MAAK,EAAE,SAAS,GAAG,SAAQ,SAAQ;EAC/C,MAAM,SAAS;GACb,KAAW,KAAK,GAAG;GACnB,WAAW,KAAK;GAChB,UAAW,KAAK;GAChB,OAAW,KAAK,uBAAuB,IAAI;GAC3C,GAAG,KAAK,SAAS,EACf,QAAQ,CACN;IACE,OAAO,KAAK;IACZ,MAAO;;;AAMf,MAAI,KAAK,uBAAuB;GAC9B,MAAM,EAAE,IAAI,SAAS,KAAK;AAC1B,OAAI,SAAS,IAAI,KAAK,eAAe,OAAO,OAAO;AACjD,mBAAe,KAAK,yBAAyB,OAAO,UAAU,GAAG,OAAO,SAAS;AACjF,WAAO,QAAQ,SAAS,IAAI,KAAK,eAAe,OAAO;;;AAK3D,YAAU,IAAI,KAAK,IAAI;;AAGzB,QAAO,MAAM,KAAK,UAAU"}
@@ -1,8 +1,38 @@
1
- import { Types } from "../../core/v2/types/index.js";
1
+ import { InternalIdKey } from "../../core/types/common/index.js";
2
+ import { Types } from "../../core/types/index.js";
2
3
  import { Schedule } from "../types/schedules.js";
3
4
 
4
5
  //#region src/Additio/from/schedules.d.ts
5
- declare function export_default(schedule: Omit<Schedule, 'start_date' | 'end_date' | 'schedule' | 'school_year'>): Partial<Types.division>;
6
+ declare namespace OutTypes {
7
+ type location = Omit<Types.serialized.location, InternalIdKey>;
8
+ type teacher = Omit<Types.serialized.teacher, InternalIdKey>;
9
+ type group = Omit<Types.serialized.group, InternalIdKey>;
10
+ type course = Omit<Types.serialized.course, InternalIdKey>;
11
+ type event = Omit<Types.serialized.event, InternalIdKey>;
12
+ type person = Omit<Types.serialized.person, InternalIdKey>;
13
+ }
14
+ declare function export_default(schedule: Omit<Schedule, 'start_date' | 'end_date' | 'schedule' | 'school_year'>): {
15
+ meta: {
16
+ errors: string[];
17
+ };
18
+ locations?: undefined;
19
+ teachers?: undefined;
20
+ groups?: undefined;
21
+ courses?: undefined;
22
+ events?: undefined;
23
+ persons?: undefined;
24
+ } | {
25
+ locations: OutTypes.location[];
26
+ teachers: OutTypes.teacher[];
27
+ groups: OutTypes.group[];
28
+ courses: OutTypes.course[];
29
+ events: OutTypes.event[];
30
+ persons: OutTypes.person[];
31
+ meta: {
32
+ warnings?: string[] | undefined;
33
+ errors?: string[] | undefined;
34
+ };
35
+ };
6
36
  //#endregion
7
37
  export { export_default };
8
38
  //# sourceMappingURL=schedules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["errors: string[]","warnings: string[]","locations: CoreTypes.location []","_locations","teachers: CoreTypes.teacher []","_teachers","groups: CoreTypes.group []","_groups","courses: CoreTypes.course []","_courses","events: CoreTypes.event []","_events","persons: CoreTypes.person []","_persons"],"sources":["../../../src/Additio/from/schedules.ts"],"sourcesContent":["import { Schedule } from '../types/schedules';\n\nimport _teachers from './teachers';\nimport _locations from './locations';\nimport _groups from './groups';\nimport _courses from './courses';\nimport _events from './events';\nimport _persons from './persons';\n\nimport { Types as CoreTypes } from '../../core/types';\n\nexport default function (\n schedule: Omit<Schedule, 'start_date' | 'end_date' | 'schedule' | 'school_year'>\n): Partial<CoreTypes.division> {\n\n ////\n //// check the number of contained schools\n ////\n if (schedule.schools.length != 1) {\n return { meta: { errors: [`Received ${schedule.schools.length} number of schools: only a single school is allowed.`] } };\n }\n const school = schedule.schools[0];\n\n // gather all import related warnings/errors\n const errors: string[] = [];\n const warnings: string[] = [];\n\n const locations: CoreTypes.location [] = _locations(schedule.rooms, errors, warnings);\n const teachers: CoreTypes.teacher [] = _teachers (schedule.schedule_groups, schedule.lessons, errors, warnings);\n const groups: CoreTypes.group [] = _groups (schedule.primary_groups, errors, warnings);\n const courses: CoreTypes.course [] = _courses (schedule.schedule_groups, school, errors, warnings);\n const events: CoreTypes.event [] = _events (schedule.lessons, courses, teachers, errors, warnings);\n const persons: CoreTypes.person [] = _persons (schedule.users, groups, errors, warnings);\n\n return { locations, teachers, groups, courses, events, persons,\n meta: {\n ...( errors.length ? { errors } : { } ),\n ...( warnings.length ? { warnings } : { } )\n }\n };\n}\n"],"mappings":";;;;;;;;AAWA,2BACE,UAC6B;AAK7B,KAAI,SAAS,QAAQ,UAAU,EAC7B,QAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,SAAS,QAAQ,OAAO;CAEhE,MAAM,SAAS,SAAS,QAAQ;CAGhC,MAAMA,SAAqB;CAC3B,MAAMC,WAAqB;CAE3B,MAAMC,YAAqCC,kBAAW,SAAS,OAAmC,QAAQ;CAC1G,MAAMC,WAAqCC,iBAAW,SAAS,iBAAiB,SAAS,SAAS,QAAQ;CAC1G,MAAMC,SAAqCC,eAAW,SAAS,gBAAmC,QAAQ;CAC1G,MAAMC,UAAqCC,gBAAW,SAAS,iBAAiB,QAAkB,QAAQ;CAC1G,MAAMC,SAAqCC,eAAW,SAAS,SAAS,SAAS,UAAiB,QAAQ;CAC1G,MAAMC,UAAqCC,gBAAW,SAAS,OAAO,QAA4B,QAAQ;AAE1G,QAAO;EAAE;EAAW;EAAU;EAAQ;EAAS;EAAQ;EACrD,MAAM;GACJ,GAAK,OAAO,SAAW,EAAE,WAAa;GACtC,GAAK,SAAS,SAAS,EAAE,aAAa"}
1
+ {"version":3,"file":"schedules.js","names":["errors: string[]","warnings: string[]","locations: OutTypes.location[]","_locations","teachers: OutTypes.teacher []","_teachers","groups: OutTypes.group []","_groups","courses: OutTypes.course []","_courses","events: OutTypes.event []","_events","persons: OutTypes.person []","_persons"],"sources":["../../../src/Additio/from/schedules.ts"],"sourcesContent":["import type { Schedule } from '../types/schedules';\nimport _teachers from './teachers';\nimport _locations from './locations';\nimport _groups from './groups';\nimport _courses from './courses';\nimport _events from './events';\nimport _persons from './persons';\nimport type { CoreTypes } from '../../core';\nimport type { InternalIdKey } from '../../core/types/common';\n\n\nexport namespace OutTypes {\n export type location = Omit<CoreTypes.serialized.location, InternalIdKey>;\n export type teacher = Omit<CoreTypes.serialized.teacher, InternalIdKey>;\n export type group = Omit<CoreTypes.serialized.group, InternalIdKey>;\n export type course = Omit<CoreTypes.serialized.course, InternalIdKey>;\n export type event = Omit<CoreTypes.serialized.event, InternalIdKey>;\n export type person = Omit<CoreTypes.serialized.person, InternalIdKey>;\n};\n\nexport default function (\n schedule: Omit<Schedule, 'start_date' | 'end_date' | 'schedule' | 'school_year'>\n)/* : Partial<CoreTypes.division> */ {\n\n ////\n //// check the number of contained schools\n ////\n if (schedule.schools.length != 1) {\n return { meta: { errors: [`Received ${schedule.schools.length} number of schools: only a single school is allowed.`] } };\n }\n const school = schedule.schools[0];\n\n // gather all import related warnings/errors\n const errors: string[] = [];\n const warnings: string[] = [];\n\n const locations: OutTypes.location[] = _locations(schedule.rooms, errors, warnings);\n const teachers: OutTypes.teacher [] = _teachers (schedule.schedule_groups, schedule.lessons, errors, warnings);\n const groups: OutTypes.group [] = _groups (schedule.primary_groups, errors, warnings);\n const courses: OutTypes.course [] = _courses (schedule.schedule_groups, school, errors, warnings);\n const events: OutTypes.event [] = _events (schedule.lessons, courses, teachers, errors, warnings);\n const persons: OutTypes.person [] = _persons (schedule.users, groups, errors, warnings);\n\n return { locations, teachers, groups, courses, events, persons,\n meta: {\n ...( errors.length ? { errors } : { } ),\n ...( warnings.length ? { warnings } : { } )\n }\n };\n}\n"],"mappings":";;;;;;;;AAoBA,2BACE,UACmC;AAKnC,KAAI,SAAS,QAAQ,UAAU,EAC7B,QAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,SAAS,QAAQ,OAAO;CAEhE,MAAM,SAAS,SAAS,QAAQ;CAGhC,MAAMA,SAAqB;CAC3B,MAAMC,WAAqB;CAE3B,MAAMC,YAAiCC,kBAAW,SAAS,OAAmC,QAAQ;CACtG,MAAMC,WAAiCC,iBAAW,SAAS,iBAAiB,SAAS,SAAS,QAAQ;CACtG,MAAMC,SAAiCC,eAAW,SAAS,gBAAmC,QAAQ;CACtG,MAAMC,UAAiCC,gBAAW,SAAS,iBAAiB,QAAkB,QAAQ;CACtG,MAAMC,SAAiCC,eAAW,SAAS,SAAS,SAAS,UAAiB,QAAQ;CACtG,MAAMC,UAAiCC,gBAAW,SAAS,OAAO,QAA4B,QAAQ;AAEtG,QAAO;EAAE;EAAW;EAAU;EAAQ;EAAS;EAAQ;EACrD,MAAM;GACJ,GAAK,OAAO,SAAW,EAAE,WAAa;GACtC,GAAK,SAAS,SAAS,EAAE,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"teachers.js","names":["teacherSet: Map<number, Types.teacher>"],"sources":["../../../src/Additio/from/teachers.ts"],"sourcesContent":["import { Types } from '../../core/types';\nimport { ScheduleGroup } from '../types/schedule-groups';\nimport { Lesson } from '../types/lessons';\n\nexport default function (\n scheduleGroups: ScheduleGroup[] | undefined,\n lessons: Lesson[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): Types.teacher[] {\n // add all teachers to a set to remove duplicates\n const teacherSet: Map<number, Types.teacher> = new Map();\n\n scheduleGroups?.forEach(scheduleGroup => {\n scheduleGroup.teachers?.forEach(teacher => {\n teacherSet.set(teacher.id, {\n ids: teacher.id.toString(),\n displayName: teacher.first_name + ' ' + teacher.last_name\n });\n });\n });\n\n lessons?.forEach(lesson => {\n lesson.teachers?.forEach(teacher => {\n teacherSet.set(teacher.id, {\n ids: teacher.id.toString(),\n displayName: teacher.first_name + ' ' + teacher.last_name\n });\n });\n });\n\n return Array.from(teacherSet.values());\n}\n"],"mappings":";AAIA,0BACE,gBACA,SACA,cACA,gBACiB;CAEjB,MAAMA,6BAAyC,IAAI;AAEnD,iBAAgB,SAAQ,kBAAiB;AACvC,gBAAc,UAAU,SAAQ,YAAW;AACzC,cAAW,IAAI,QAAQ,IAAI;IACzB,KAAa,QAAQ,GAAG;IACxB,aAAa,QAAQ,aAAa,MAAM,QAAQ;;;;AAKtD,UAAS,SAAQ,WAAU;AACzB,SAAO,UAAU,SAAQ,YAAW;AAClC,cAAW,IAAI,QAAQ,IAAI;IACzB,KAAa,QAAQ,GAAG;IACxB,aAAa,QAAQ,aAAa,MAAM,QAAQ;;;;AAKtD,QAAO,MAAM,KAAK,WAAW"}
1
+ {"version":3,"file":"teachers.js","names":["teacherSet: Map<number, OutTypes.teacher>"],"sources":["../../../src/Additio/from/teachers.ts"],"sourcesContent":["import type { ScheduleGroup } from '../types/schedule-groups';\nimport type { Lesson } from '../types/lessons';\nimport type { OutTypes } from './schedules';\n\nexport default function (\n scheduleGroups: ScheduleGroup[] | undefined,\n lessons: Lesson[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): OutTypes.teacher[] {\n // add all teachers to a set to remove duplicates\n const teacherSet: Map<number, OutTypes.teacher> = new Map();\n\n scheduleGroups?.forEach(scheduleGroup => {\n scheduleGroup.teachers?.forEach(teacher => {\n teacherSet.set(teacher.id, {\n ids: teacher.id.toString(),\n displayName: teacher.first_name + ' ' + teacher.last_name\n });\n });\n });\n\n lessons?.forEach(lesson => {\n lesson.teachers?.forEach(teacher => {\n teacherSet.set(teacher.id, {\n ids: teacher.id.toString(),\n displayName: teacher.first_name + ' ' + teacher.last_name\n });\n });\n });\n\n return Array.from(teacherSet.values());\n}\n"],"mappings":";AAIA,0BACE,gBACA,SACA,cACA,gBACoB;CAEpB,MAAMA,6BAA4C,IAAI;AAEtD,iBAAgB,SAAQ,kBAAiB;AACvC,gBAAc,UAAU,SAAQ,YAAW;AACzC,cAAW,IAAI,QAAQ,IAAI;IACzB,KAAa,QAAQ,GAAG;IACxB,aAAa,QAAQ,aAAa,MAAM,QAAQ;;;;AAKtD,UAAS,SAAQ,WAAU;AACzB,SAAO,UAAU,SAAQ,YAAW;AAClC,cAAW,IAAI,QAAQ,IAAI;IACzB,KAAa,QAAQ,GAAG;IACxB,aAAa,QAAQ,aAAa,MAAM,QAAQ;;;;AAKtD,QAAO,MAAM,KAAK,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_to","_from"],"sources":["../../src/Additio/index.ts"],"sourcesContent":["import _from from './from';\nimport _to from './to';\nimport { Types } from './types';\n\nexport class AdditioMap {\n static to = _to;\n static from = _from;\n}\n\nexport type { Types as AdditioTypes };\n"],"mappings":";;;;AAIA,IAAa,aAAb,MAAwB;CACtB,OAAO,KAAOA;CACd,OAAO,OAAOC"}
1
+ {"version":3,"file":"index.js","names":["_to","_from"],"sources":["../../src/Additio/index.ts"],"sourcesContent":["import _from from './from';\nimport _to from './to';\nimport type { Types } from './types';\n\nexport class AdditioMap {\n static to = _to;\n static from = _from;\n}\n\nexport { Types as AdditioTypes };\n"],"mappings":";;;;AAIA,IAAa,aAAb,MAAwB;CACtB,OAAO,KAAOA;CACd,OAAO,OAAOC"}
@@ -1,20 +1,20 @@
1
- import { Types } from "../../core/v2/types/index.js";
1
+ import { Types } from "../../core/types/index.js";
2
2
  import { Types as Types$1 } from "../types/index.js";
3
- import * as xlsx0 from "xlsx";
3
+ import * as xlsx1 from "xlsx";
4
4
 
5
5
  //#region src/Additio/to/index.d.ts
6
6
  declare class export_default {
7
7
  static schedules: (schedule: {
8
- division: Types.division;
9
- settings: Types.divisionSettings;
10
- periods: Types.period[];
11
- locations: Types.location[];
12
- groups: Types.group[];
13
- teachers: Types.teacher[];
14
- courses: Types.course[];
15
- events: Types.event[];
16
- lockedTimes: Types.lockedTime[];
17
- }, options?: Types$1.options) => xlsx0.WorkBook;
8
+ division: Types.mixed.division;
9
+ settings: Types.mixed.divisionSettings;
10
+ periods: Types.mixed.period[];
11
+ locations: Types.mixed.location[];
12
+ groups: Types.mixed.group[];
13
+ teachers: Types.mixed.teacher[];
14
+ courses: Types.mixed.course[];
15
+ events: Types.mixed.event[];
16
+ lockedTimes: Types.mixed.lockedTime[];
17
+ }, _options?: Types$1.options) => xlsx1.WorkBook;
18
18
  }
19
19
  //#endregion
20
20
  export { export_default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/Additio/to/index.ts"],"sourcesContent":["import _schedules from './schedules';\n\nexport default class {\n static schedules = _schedules;\n}"],"mappings":";;;AAEA,uBAAqB;CACnB,OAAO,YAAsBA"}
1
+ {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/Additio/to/index.ts"],"sourcesContent":["import _schedules from './schedules';\n\nexport default class {\n static schedules = _schedules;\n}"],"mappings":";;;AAEA,uBAAqB;CACnB,OAAO,YAAYA"}
@@ -1,15 +1,12 @@
1
+ import { getDayIndex, getVertexId } from "../../core/util.js";
1
2
  import moment from "moment";
2
- import * as XLSX$1 from "xlsx";
3
+ import XLSX from "xlsx";
3
4
 
4
5
  //#region src/Additio/to/schedules.ts
5
- const getId = (ref) => {
6
- if (!ref) return "";
7
- if (typeof ref == "string") return ref;
8
- return ref.id.toString();
9
- };
10
- var schedules_default = (schedule, options = {}) => {
11
- const periodsMap = new Map(schedule.periods.map((x) => [getId(x), x]));
12
- periodsMap.set("", { ranges: [{
6
+ var schedules_default = (schedule, _options = {}) => {
7
+ const options = _options;
8
+ const periodsMap = new Map(schedule.periods.map((x) => [getVertexId(x, options), x]));
9
+ periodsMap.set(void 0, { ranges: [{
13
10
  start: schedule.division.start,
14
11
  end: schedule.division.end
15
12
  }] });
@@ -27,62 +24,63 @@ var schedules_default = (schedule, options = {}) => {
27
24
  }).flat().join(", ");
28
25
  inWeeksMap.set(id, weeks);
29
26
  });
30
- const locationsMap = new Map(schedule.locations.map((x) => [getId(x), x]));
31
- const groupsMap = new Map(schedule.groups.map((x) => [getId(x), x]));
32
- const teachersMap = new Map(schedule.teachers.map((x) => [getId(x), x]));
33
- const coursesMap = new Map(schedule.courses.map((x) => [getId(x), x]));
34
- const events = (options.includeEvents ?? true ? schedule.events : []).map((x) => {
35
- if (x.parked) return;
36
- const course = coursesMap.get(getId(x.course));
27
+ const locationsMap = new Map(schedule.locations.map((x) => [getVertexId(x, options), x]));
28
+ const groupsMap = new Map(schedule.groups.map((x) => [getVertexId(x, options), x]));
29
+ const teachersMap = new Map(schedule.teachers.map((x) => [getVertexId(x, options), x]));
30
+ const coursesMap = new Map(schedule.courses.map((x) => [getVertexId(x, options), x]));
31
+ const events = (options.includeEvents ?? true ? schedule.events : []).map((event) => {
32
+ if (event.parked) return;
33
+ if (!event.start || !event.end) return;
34
+ const course = event.course ? coursesMap.get(getVertexId(event.course, options)) : void 0;
37
35
  if (!course) return;
38
- const start = moment.utc(x.start);
39
- const end = moment.utc(x.end);
40
- const periodId = getId(x.period ?? course.period ?? schedule.settings.period);
36
+ const start = moment.utc(event.start);
37
+ const end = moment.utc(event.end);
38
+ const period = event.period ?? course.period ?? schedule.settings.period;
39
+ const periodId = period ? getVertexId(period, options) : void 0;
41
40
  const inWeeks = inWeeksMap.get(periodId);
42
- const locations = (x.inLocations ?? []).map((x$1) => x$1 ? locationsMap.get(getId(x$1)) : null).filter((x$1) => !!x$1);
43
- const teachers = (x.teachers ?? course.teachers ?? []).map((x$1) => teachersMap.get(getId(x$1.to))).filter((x$1) => !!x$1);
44
- const groups = (x.groups ?? course.groups ?? []).map((x$1) => groupsMap.get(getId(x$1.to))).filter((x$1) => !!x$1);
41
+ const locations = (event.inLocations ?? []).map((x) => x ? locationsMap.get(getVertexId(x, options)) : null).filter((x) => !!x);
42
+ const teachers = (event.teachers ?? course.teachers ?? []).map((x) => teachersMap.get(getVertexId(x.to, options))).filter((x) => !!x);
43
+ const groups = (event.groups ?? course.groups ?? []).map((x) => groupsMap.get(getVertexId(x.to, options))).filter((x) => !!x);
45
44
  const out = {
46
- id: x._id?.toString(),
47
- externalid: x.ids?.toString(),
45
+ id: getVertexId(event, options),
46
+ externalid: event.ids?.toString(),
48
47
  groupid: course.ids,
49
48
  group: course.displayName,
50
- dayid: (start.day() + 6) % 7,
49
+ dayid: getDayIndex(start),
51
50
  startTime: start.format("HHmm"),
52
51
  length: end.diff(start, "minutes"),
53
52
  subject: course.subject,
54
53
  inweek: inWeeks,
55
- roomid: locations.map((x$1) => x$1.ids).join(", "),
56
- room: locations.map((x$1) => x$1.displayName).join(", "),
57
- teacherid: teachers.map((x$1) => x$1.ids).join(", "),
58
- teacher: teachers.map((x$1) => x$1.displayName).join(", "),
59
- classid: groups.map((x$1) => x$1.ids).join(", "),
60
- class: groups.map((x$1) => x$1.displayName).join(", ")
54
+ roomid: locations.map((x) => x.ids).join(", "),
55
+ room: locations.map((x) => x.displayName).join(", "),
56
+ teacherid: teachers.map((x) => x.ids).join(", "),
57
+ teacher: teachers.map((x) => x.displayName).join(", "),
58
+ classid: groups.map((x) => x.ids).join(", "),
59
+ class: groups.map((x) => x.displayName).join(", ")
61
60
  };
62
61
  return out;
63
- }).filter((x) => !!x);
64
- const complementaryTimes = (options.includeComplementaryTimes ?? true ? schedule.lockedTimes : []).filter((x) => x.type == "COMPLEMENTARY_TIME").map((x) => {
65
- if (x.parked) return;
66
- const start = moment.utc(x.start);
67
- const end = moment.utc(x.end);
68
- const teachers = (x.coalesced ?? []).filter((x$1) => x$1.toModel == "teachers").map((x$1) => teachersMap.get(getId(x$1.to))).filter((x$1) => !!x$1);
62
+ }).filter((x) => x != null);
63
+ const complementaryTimes = (options.includeComplementaryTimes ?? true ? schedule.lockedTimes : []).filter((x) => x.type == "COMPLEMENTARY_TIME").map((lockedTime) => {
64
+ if (lockedTime.parked) return;
65
+ if (!lockedTime.start || !lockedTime.end) return;
66
+ const start = moment.utc(lockedTime.start);
67
+ const end = moment.utc(lockedTime.end);
68
+ const teachers = (lockedTime.coalesced ?? []).filter((x) => x.toModel == "teachers").map((x) => teachersMap.get(getVertexId(x.to, options))).filter((x) => !!x);
69
69
  const out = {
70
- id: x._id?.toString(),
70
+ id: getVertexId(lockedTime, options),
71
71
  dayid: (start.day() + 6) % 7,
72
72
  startTime: start.format("HHmm"),
73
73
  length: end.diff(start, "minutes"),
74
- teacherid: teachers.map((x$1) => x$1.ids).join(", "),
75
- teacher: teachers.map((x$1) => x$1.displayName).join(", ")
74
+ teacherid: teachers.map((x) => x.ids).join(", "),
75
+ teacher: teachers.map((x) => x.displayName).join(", ")
76
76
  };
77
77
  return out;
78
78
  }).filter((x) => !!x);
79
- return toXlsx([...events, ...complementaryTimes]);
80
- };
81
- function toXlsx(events) {
82
- const wb = XLSX$1.utils.book_new();
83
- XLSX$1.utils.book_append_sheet(wb, XLSX$1.utils.json_to_sheet(events), "royal schedule export");
79
+ const wb = XLSX.utils.book_new();
80
+ const rows = [...events, ...complementaryTimes];
81
+ XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet(rows), "royal schedule export");
84
82
  return wb;
85
- }
83
+ };
86
84
 
87
85
  //#endregion
88
86
  export { schedules_default as default };
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["weeks","x","out: OutEvent","XLSX"],"sources":["../../../src/Additio/to/schedules.ts"],"sourcesContent":["import * as XLSX from 'xlsx';\nimport moment from 'moment';\nimport type { Types as MongooseTypes } from 'mongoose';\nimport type { Types as CoreTypes } from '../../core/types';\nimport type { Types } from '../types';\n\ntype OutEvent = {\n id?: string;\n externalid?: string;\n groupid?: string;\n group?: string;\n dayid?: number;\n startTime?: string;\n length?: number;\n subject?: string;\n roomid?: string;\n room?: string;\n teacherid?: string;\n teacher?: string;\n classid?: string;\n class?: string;\n inweek?: string;\n};\n\ntype Schedule = {\n division: CoreTypes.division;\n settings: CoreTypes.divisionSettings;\n periods: CoreTypes.period[];\n locations: CoreTypes.location[];\n groups: CoreTypes.group[];\n teachers: CoreTypes.teacher[];\n courses: CoreTypes.course[];\n events: CoreTypes.event[];\n lockedTimes: CoreTypes.lockedTime[];\n};\n\n\nconst getId = (ref: { id?: string } | MongooseTypes.ObjectId | string | undefined): string => {\n if (!ref) return '';\n if (typeof ref == 'string') return ref;\n return ref.id!.toString();\n};\n\nexport default (\n schedule: Schedule,\n options: Types.options = { }\n): XLSX.WorkBook => {\n\n // a map of period.id -> period\n const periodsMap = new Map(schedule.periods.map(x => [getId(x), x]));\n periodsMap.set('', { ranges: [{ start: schedule.division.start, end: schedule.division.end }] });\n\n // a map of period.id -> inWeeks\n const inWeeksMap = new Map<string, string>();\n periodsMap.forEach((period, id) => {\n const weeks = period.ranges\n .map(x => {\n // fetch all weeks between start and end\n const start = moment.utc(x.start);\n const end = moment.utc(x.end);\n const weeks = new Array<number>();\n while (start.isBefore(end)) {\n weeks.push(start.week());\n start.add(1, 'week');\n }\n return weeks;\n })\n .flat()\n .join(', ');\n\n inWeeksMap.set(id, weeks);\n });\n\n // a map of location.id -> location\n const locationsMap = new Map(schedule.locations.map(x => [getId(x), x]));\n\n // a map of group.id -> group\n const groupsMap = new Map(schedule.groups.map(x => [getId(x), x]));\n\n // a map of teacher.id -> teacher\n const teachersMap = new Map(schedule.teachers.map(x => [getId(x), x]));\n\n // a map of course.id -> course\n const coursesMap = new Map(schedule.courses.map(x => [getId(x), x]));\n\n const events = (options.includeEvents ?? true ? schedule.events : [])\n .map(x => {\n // ignore parked events\n if (x.parked) return;\n\n // must have a course\n const course = coursesMap.get(getId(x.course));\n if (!course) return;\n\n const start = moment.utc(x.start);\n const end = moment.utc(x.end);\n\n const periodId = getId(x.period ?? course.period ?? schedule.settings.period);\n const inWeeks = inWeeksMap.get(periodId);\n\n const locations = (x.inLocations ?? []).map(x => x ? locationsMap.get(getId(x )) : null).filter(x => !!x);\n const teachers = (x.teachers ?? course.teachers ?? []).map(x => teachersMap .get(getId(x.to)) ).filter(x => !!x);\n const groups = (x.groups ?? course.groups ?? []).map(x => groupsMap .get(getId(x.to)) ).filter(x => !!x);\n\n const out: OutEvent = {\n id: x._id?.toString(),\n externalid: x.ids?.toString(),\n groupid: course.ids,\n group: course.displayName,\n dayid: (start.day() + 6) % 7,\n startTime: start.format('HHmm'),\n length: end.diff(start, 'minutes'),\n subject: course.subject,\n inweek: inWeeks,\n roomid: locations.map(x => x.ids ).join(', '),\n room: locations.map(x => x.displayName).join(', '),\n teacherid: teachers .map(x => x.ids ).join(', '),\n teacher: teachers .map(x => x.displayName).join(', '),\n classid: groups .map(x => x.ids ).join(', '),\n class: groups .map(x => x.displayName).join(', ')\n };\n return out;\n })\n .filter(x => !!x);\n\n const complementaryTimes = (options.includeComplementaryTimes ?? true ? schedule.lockedTimes : [])\n .filter(x => x.type == 'COMPLEMENTARY_TIME')\n .map(x => {\n // ignore parked events\n if (x.parked) return;\n\n const start = moment.utc(x.start);\n const end = moment.utc(x.end);\n\n const teachers = (x.coalesced ?? [])\n .filter(x => x.toModel == 'teachers')\n .map(x => teachersMap.get(getId(x.to)))\n .filter(x => !!x);\n\n const out: OutEvent = {\n id: x._id?.toString(),\n dayid: (start.day() + 6) % 7,\n startTime: start.format('HHmm'),\n length: end.diff(start, 'minutes'),\n teacherid: teachers .map(x => x.ids ).join(', '),\n teacher: teachers .map(x => x.displayName).join(', '),\n };\n return out;\n })\n .filter(x => !!x);\n\n return toXlsx([...events, ...complementaryTimes]);\n};\n\nfunction toXlsx (events: OutEvent[]): XLSX.WorkBook {\n const wb = XLSX.utils.book_new();\n\n XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet(events), 'royal schedule export');\n\n return wb;\n}"],"mappings":";;;;AAqCA,MAAM,SAAS,QAA+E;AAC5F,KAAI,CAAC,IAAK,QAAO;AACjB,KAAI,OAAO,OAAO,SAAU,QAAO;AACnC,QAAO,IAAI,GAAI;;AAGjB,yBACE,UACA,UAA0B,OACR;CAGlB,MAAM,aAAa,IAAI,IAAI,SAAS,QAAQ,KAAI,MAAK,CAAC,MAAM,IAAI;AAChE,YAAW,IAAI,IAAI,EAAE,QAAQ,CAAC;EAAE,OAAO,SAAS,SAAS;EAAO,KAAK,SAAS,SAAS;;CAGvF,MAAM,6BAAa,IAAI;AACvB,YAAW,SAAS,QAAQ,OAAO;EACjC,MAAM,QAAQ,OAAO,OAClB,KAAI,MAAK;GAER,MAAM,QAAQ,OAAO,IAAI,EAAE;GAC3B,MAAM,MAAQ,OAAO,IAAI,EAAE;GAC3B,MAAMA,UAAQ,IAAI;AAClB,UAAO,MAAM,SAAS,MAAM;AAC1B,YAAM,KAAK,MAAM;AACjB,UAAM,IAAI,GAAG;;AAEf,UAAOA;KAER,OACA,KAAK;AAER,aAAW,IAAI,IAAI;;CAIrB,MAAM,eAAe,IAAI,IAAI,SAAS,UAAU,KAAI,MAAK,CAAC,MAAM,IAAI;CAGpE,MAAM,YAAY,IAAI,IAAI,SAAS,OAAO,KAAI,MAAK,CAAC,MAAM,IAAI;CAG9D,MAAM,cAAc,IAAI,IAAI,SAAS,SAAS,KAAI,MAAK,CAAC,MAAM,IAAI;CAGlE,MAAM,aAAa,IAAI,IAAI,SAAS,QAAQ,KAAI,MAAK,CAAC,MAAM,IAAI;CAEhE,MAAM,UAAU,QAAQ,iBAAiB,OAAO,SAAS,SAAS,IAC/D,KAAI,MAAK;AAER,MAAI,EAAE,OAAQ;EAGd,MAAM,SAAS,WAAW,IAAI,MAAM,EAAE;AACtC,MAAI,CAAC,OAAQ;EAEb,MAAM,QAAQ,OAAO,IAAI,EAAE;EAC3B,MAAM,MAAQ,OAAO,IAAI,EAAE;EAE3B,MAAM,WAAW,MAAM,EAAE,UAAU,OAAO,UAAU,SAAS,SAAS;EACtE,MAAM,UAAU,WAAW,IAAI;EAE/B,MAAM,aAAa,EAAE,eAA+B,IAAI,KAAI,QAAMC,MAAI,aAAa,IAAI,MAAMA,QAAS,MAAM,QAAO,QAAK,CAAC,CAACA;EAC1H,MAAM,YAAa,EAAE,YAAY,OAAO,YAAY,IAAI,KAAI,QAAU,YAAa,IAAI,MAAMA,IAAE,MAAa,QAAO,QAAK,CAAC,CAACA;EAC1H,MAAM,UAAa,EAAE,UAAY,OAAO,UAAY,IAAI,KAAI,QAAU,UAAa,IAAI,MAAMA,IAAE,MAAa,QAAO,QAAK,CAAC,CAACA;EAE1H,MAAMC,MAAgB;GACpB,IAAY,EAAE,KAAK;GACnB,YAAY,EAAE,KAAK;GACnB,SAAY,OAAO;GACnB,OAAY,OAAO;GACnB,QAAa,MAAM,QAAQ,KAAK;GAChC,WAAY,MAAM,OAAO;GACzB,QAAY,IAAI,KAAK,OAAO;GAC5B,SAAY,OAAO;GACnB,QAAY;GACZ,QAAY,UAAU,KAAI,QAAKD,IAAE,KAAa,KAAK;GACnD,MAAY,UAAU,KAAI,QAAKA,IAAE,aAAa,KAAK;GACnD,WAAY,SAAU,KAAI,QAAKA,IAAE,KAAa,KAAK;GACnD,SAAY,SAAU,KAAI,QAAKA,IAAE,aAAa,KAAK;GACnD,SAAY,OAAU,KAAI,QAAKA,IAAE,KAAa,KAAK;GACnD,OAAY,OAAU,KAAI,QAAKA,IAAE,aAAa,KAAK;;AAErD,SAAO;IAER,QAAO,MAAK,CAAC,CAAC;CAEjB,MAAM,sBAAsB,QAAQ,6BAA6B,OAAO,SAAS,cAAc,IAC5F,QAAO,MAAK,EAAE,QAAQ,sBACtB,KAAI,MAAK;AAER,MAAI,EAAE,OAAQ;EAEd,MAAM,QAAQ,OAAO,IAAI,EAAE;EAC3B,MAAM,MAAQ,OAAO,IAAI,EAAE;EAE3B,MAAM,YAAY,EAAE,aAAa,IAC9B,QAAO,QAAKA,IAAE,WAAW,YACzB,KAAI,QAAK,YAAY,IAAI,MAAMA,IAAE,MACjC,QAAO,QAAK,CAAC,CAACA;EAEjB,MAAMC,MAAgB;GACpB,IAAW,EAAE,KAAK;GAClB,QAAY,MAAM,QAAQ,KAAK;GAC/B,WAAW,MAAM,OAAO;GACxB,QAAW,IAAI,KAAK,OAAO;GAC3B,WAAW,SAAU,KAAI,QAAKD,IAAE,KAAa,KAAK;GAClD,SAAW,SAAU,KAAI,QAAKA,IAAE,aAAa,KAAK;;AAEpD,SAAO;IAER,QAAO,MAAK,CAAC,CAAC;AAEjB,QAAO,OAAO,CAAC,GAAG,QAAQ,GAAG;;AAG/B,SAAS,OAAQ,QAAmC;CAClD,MAAM,KAAKE,OAAK,MAAM;AAEtB,QAAK,MAAM,kBAAkB,IAAIA,OAAK,MAAM,cAAc,SAAS;AAEnE,QAAO"}
1
+ {"version":3,"file":"schedules.js","names":["weeks","out: OutEvent"],"sources":["../../../src/Additio/to/schedules.ts"],"sourcesContent":["import XLSX from 'xlsx';\nimport moment from 'moment';\nimport { getDayIndex, getVertexId } from '../../core/util';\nimport type { BaseOptions } from '../../common/types';\nimport type { Types as CoreTypes } from '../../core/types';\nimport type { Types } from '../types';\n\ntype OutEvent = {\n id?: string;\n externalid?: string;\n groupid?: string;\n group?: string;\n dayid?: number;\n startTime?: string;\n length?: number;\n subject?: string;\n roomid?: string;\n room?: string;\n teacherid?: string;\n teacher?: string;\n classid?: string;\n class?: string;\n inweek?: string;\n};\n\ntype Schedule = {\n division: CoreTypes.mixed.division;\n settings: CoreTypes.mixed.divisionSettings;\n periods: CoreTypes.mixed.period[];\n locations: CoreTypes.mixed.location[];\n groups: CoreTypes.mixed.group[];\n teachers: CoreTypes.mixed.teacher[];\n courses: CoreTypes.mixed.course[];\n events: CoreTypes.mixed.event[];\n lockedTimes: CoreTypes.mixed.lockedTime[];\n};\n\n\nexport default (\n schedule: Schedule,\n _options: Types.options = { }\n): XLSX.WorkBook => {\n const options = _options as BaseOptions & Types.options;\n\n // a map of period.id -> period\n const periodsMap = new Map(schedule.periods.map(x => [getVertexId(x, options) as string | undefined, x as Omit<typeof x, 'id'>] as const));\n periodsMap.set(undefined, { ranges: [{ start: schedule.division.start, end: schedule.division.end }] });\n\n // a map of period.id -> inWeeks\n const inWeeksMap = new Map<string | undefined, string>();\n periodsMap.forEach((period, id) => {\n const weeks = period.ranges\n .map(x => {\n // fetch all weeks between start and end\n const start = moment.utc(x.start);\n const end = moment.utc(x.end);\n const weeks = new Array<number>();\n while (start.isBefore(end)) {\n weeks.push(start.week());\n start.add(1, 'week');\n }\n return weeks;\n })\n .flat()\n .join(', ');\n\n inWeeksMap.set(id, weeks);\n });\n\n // a map of location.id -> location\n const locationsMap = new Map(schedule.locations.map(x => [getVertexId(x, options), x] as const));\n\n // a map of group.id -> group\n const groupsMap = new Map(schedule.groups.map(x => [getVertexId(x, options), x] as const));\n\n // a map of teacher.id -> teacher\n const teachersMap = new Map(schedule.teachers.map(x => [getVertexId(x, options), x] as const));\n\n // a map of course.id -> course\n const coursesMap = new Map(schedule.courses.map(x => [getVertexId(x, options), x] as const));\n\n\n const events = (options.includeEvents ?? true ? schedule.events : [])\n .map(event => {\n // ignore parked events\n if (event.parked) return;\n if (!event.start || !event.end) return;\n\n // must have a course\n const course = event.course ? coursesMap.get(getVertexId(event.course, options)) : undefined;\n if (!course) return;\n\n const start = moment.utc(event.start);\n const end = moment.utc(event.end);\n\n const period = event.period ?? course.period ?? schedule.settings.period;\n const periodId = period ? getVertexId(period, options) : undefined;\n const inWeeks = inWeeksMap.get(periodId);\n\n const locations = (event.inLocations ?? []).map(x => x ? locationsMap.get(getVertexId(x, options)) : null).filter(x => !!x);\n const teachers = (event.teachers ?? course.teachers ?? []).map(x => teachersMap .get(getVertexId(x.to, options)) ).filter(x => !!x);\n const groups = (event.groups ?? course.groups ?? []).map(x => groupsMap .get(getVertexId(x.to, options)) ).filter(x => !!x);\n\n const out: OutEvent = {\n id: getVertexId(event, options),\n externalid: event.ids?.toString(),\n groupid: course.ids,\n group: course.displayName,\n dayid: getDayIndex(start),\n startTime: start.format('HHmm'),\n length: end.diff(start, 'minutes'),\n subject: course.subject,\n inweek: inWeeks,\n roomid: locations.map(x => x.ids ).join(', '),\n room: locations.map(x => x.displayName).join(', '),\n teacherid: teachers .map(x => x.ids ).join(', '),\n teacher: teachers .map(x => x.displayName).join(', '),\n classid: groups .map(x => x.ids ).join(', '),\n class: groups .map(x => x.displayName).join(', ')\n };\n return out;\n })\n .filter(x => x != null);\n\n const complementaryTimes = (options.includeComplementaryTimes ?? true ? schedule.lockedTimes : [])\n .filter(x => x.type == 'COMPLEMENTARY_TIME')\n .map(lockedTime => {\n // ignore parked events\n if (lockedTime.parked) return;\n if (!lockedTime.start || !lockedTime.end) return;\n\n const start = moment.utc(lockedTime.start);\n const end = moment.utc(lockedTime.end);\n\n const teachers = (lockedTime.coalesced ?? [])\n .filter(x => x.toModel == 'teachers')\n .map(x => teachersMap.get(getVertexId(x.to, options)))\n .filter(x => !!x);\n\n const out: OutEvent = {\n id: getVertexId(lockedTime, options),\n dayid: (start.day() + 6) % 7,\n startTime: start.format('HHmm'),\n length: end.diff(start, 'minutes'),\n teacherid: teachers .map(x => x.ids ).join(', '),\n teacher: teachers .map(x => x.displayName).join(', '),\n };\n return out;\n })\n .filter(x => !!x);\n\n const wb = XLSX.utils.book_new();\n\n const rows = [...events, ...complementaryTimes];\n XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet(rows), 'royal schedule export');\n\n return wb;\n};\n"],"mappings":";;;;;AAsCA,yBACE,UACA,WAA0B,OACR;CAClB,MAAM,UAAU;CAGhB,MAAM,aAAa,IAAI,IAAI,SAAS,QAAQ,KAAI,MAAK,CAAC,YAAY,GAAG,UAAgC;AACrG,YAAW,IAAI,QAAW,EAAE,QAAQ,CAAC;EAAE,OAAO,SAAS,SAAS;EAAO,KAAK,SAAS,SAAS;;CAG9F,MAAM,6BAAa,IAAI;AACvB,YAAW,SAAS,QAAQ,OAAO;EACjC,MAAM,QAAQ,OAAO,OAClB,KAAI,MAAK;GAER,MAAM,QAAQ,OAAO,IAAI,EAAE;GAC3B,MAAM,MAAQ,OAAO,IAAI,EAAE;GAC3B,MAAMA,UAAQ,IAAI;AAClB,UAAO,MAAM,SAAS,MAAM;AAC1B,YAAM,KAAK,MAAM;AACjB,UAAM,IAAI,GAAG;;AAEf,UAAOA;KAER,OACA,KAAK;AAER,aAAW,IAAI,IAAI;;CAIrB,MAAM,eAAe,IAAI,IAAI,SAAS,UAAU,KAAI,MAAK,CAAC,YAAY,GAAG,UAAU;CAGnF,MAAM,YAAY,IAAI,IAAI,SAAS,OAAO,KAAI,MAAK,CAAC,YAAY,GAAG,UAAU;CAG7E,MAAM,cAAc,IAAI,IAAI,SAAS,SAAS,KAAI,MAAK,CAAC,YAAY,GAAG,UAAU;CAGjF,MAAM,aAAa,IAAI,IAAI,SAAS,QAAQ,KAAI,MAAK,CAAC,YAAY,GAAG,UAAU;CAG/E,MAAM,UAAU,QAAQ,iBAAiB,OAAO,SAAS,SAAS,IAC/D,KAAI,UAAS;AAEZ,MAAI,MAAM,OAAQ;AAClB,MAAI,CAAC,MAAM,SAAS,CAAC,MAAM,IAAK;EAGhC,MAAM,SAAS,MAAM,SAAS,WAAW,IAAI,YAAY,MAAM,QAAQ,YAAY;AACnF,MAAI,CAAC,OAAQ;EAEb,MAAM,QAAQ,OAAO,IAAI,MAAM;EAC/B,MAAM,MAAQ,OAAO,IAAI,MAAM;EAE/B,MAAM,SAAS,MAAM,UAAU,OAAO,UAAU,SAAS,SAAS;EAClE,MAAM,WAAW,SAAS,YAAY,QAAQ,WAAW;EACzD,MAAM,UAAU,WAAW,IAAI;EAE/B,MAAM,aAAa,MAAM,eAA+B,IAAI,KAAI,MAAM,IAAI,aAAa,IAAI,YAAY,GAAM,YAAY,MAAM,QAAO,MAAK,CAAC,CAAC;EAC7I,MAAM,YAAa,MAAM,YAAY,OAAO,YAAY,IAAI,KAAI,MAAU,YAAa,IAAI,YAAY,EAAE,IAAI,WAAkB,QAAO,MAAK,CAAC,CAAC;EAC7I,MAAM,UAAa,MAAM,UAAY,OAAO,UAAY,IAAI,KAAI,MAAU,UAAa,IAAI,YAAY,EAAE,IAAI,WAAkB,QAAO,MAAK,CAAC,CAAC;EAE7I,MAAMC,MAAgB;GACpB,IAAY,YAAY,OAAO;GAC/B,YAAY,MAAM,KAAK;GACvB,SAAY,OAAO;GACnB,OAAY,OAAO;GACnB,OAAY,YAAY;GACxB,WAAY,MAAM,OAAO;GACzB,QAAY,IAAI,KAAK,OAAO;GAC5B,SAAY,OAAO;GACnB,QAAY;GACZ,QAAY,UAAU,KAAI,MAAK,EAAE,KAAa,KAAK;GACnD,MAAY,UAAU,KAAI,MAAK,EAAE,aAAa,KAAK;GACnD,WAAY,SAAU,KAAI,MAAK,EAAE,KAAa,KAAK;GACnD,SAAY,SAAU,KAAI,MAAK,EAAE,aAAa,KAAK;GACnD,SAAY,OAAU,KAAI,MAAK,EAAE,KAAa,KAAK;GACnD,OAAY,OAAU,KAAI,MAAK,EAAE,aAAa,KAAK;;AAErD,SAAO;IAER,QAAO,MAAK,KAAK;CAEpB,MAAM,sBAAsB,QAAQ,6BAA6B,OAAO,SAAS,cAAc,IAC5F,QAAO,MAAK,EAAE,QAAQ,sBACtB,KAAI,eAAc;AAEjB,MAAI,WAAW,OAAQ;AACvB,MAAI,CAAC,WAAW,SAAS,CAAC,WAAW,IAAK;EAE1C,MAAM,QAAQ,OAAO,IAAI,WAAW;EACpC,MAAM,MAAQ,OAAO,IAAI,WAAW;EAEpC,MAAM,YAAY,WAAW,aAAa,IACvC,QAAO,MAAK,EAAE,WAAW,YACzB,KAAI,MAAK,YAAY,IAAI,YAAY,EAAE,IAAI,WAC3C,QAAO,MAAK,CAAC,CAAC;EAEjB,MAAMA,MAAgB;GACpB,IAAW,YAAY,YAAY;GACnC,QAAY,MAAM,QAAQ,KAAK;GAC/B,WAAW,MAAM,OAAO;GACxB,QAAW,IAAI,KAAK,OAAO;GAC3B,WAAW,SAAU,KAAI,MAAK,EAAE,KAAa,KAAK;GAClD,SAAW,SAAU,KAAI,MAAK,EAAE,aAAa,KAAK;;AAEpD,SAAO;IAER,QAAO,MAAK,CAAC,CAAC;CAEjB,MAAM,KAAK,KAAK,MAAM;CAEtB,MAAM,OAAO,CAAC,GAAG,QAAQ,GAAG;AAC5B,MAAK,MAAM,kBAAkB,IAAI,KAAK,MAAM,cAAc,OAAO;AAEjE,QAAO"}
@@ -1,6 +1,14 @@
1
1
  //#region src/Additio/types/options.d.ts
2
2
  type Options = {
3
+ /**
4
+ * If we should include events (lessons) in the export.
5
+ * @default true
6
+ */
3
7
  includeEvents?: boolean;
8
+ /**
9
+ * If we should include complementary times (locked times of type 'COMPLEMENTARY_TIME') in the export.
10
+ * @default true
11
+ */
4
12
  includeComplementaryTimes?: boolean;
5
13
  };
6
14
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"courses.js","names":["courses: Types.course[]"],"sources":["../../../src/Admentum/from/courses.ts"],"sourcesContent":["import { ScheduleGroup } from '../types/schedule-groups';\nimport { School } from '../types/schools';\nimport { Types } from '../../core/types';\n\nexport default function (\n scheduledGroups: ScheduleGroup[] | undefined,\n school: School,\n importErrors: string[],\n importWarnings: string[],\n): Types.course[] {\n\n const courses: Types.course[] = [];\n\n scheduledGroups?.forEach(scheduledGroup => {\n\n ////\n //// check number of subjects/courses\n ////\n const subjects = school.school_type == 'GR' ? scheduledGroup.subjects : scheduledGroup.courses;\n if (subjects.length != 1) {\n const warn = `The schedule group \"${scheduledGroup.name}\" with id \"${scheduledGroup.id}\" contained ${subjects.length} number of ${school.school_type == 'GR' ? 'subjects' : 'courses'} and was therefore omitted: a schedule group shall contain only a single ${school.school_type == 'GR' ? 'subject' : 'course'}.`;\n importWarnings.push(warn);\n return;\n }\n\n\n ////\n //// check number of teachers\n ////\n if (scheduledGroup.teachers?.length == 0) {\n const warn = `The schedule group \"${scheduledGroup.name}\" with id \"${scheduledGroup.id}\" did not contain any teachers.`;\n importWarnings.push(warn);\n }\n\n\n courses.push({\n ids: scheduledGroup.id.toString(),\n displayName: scheduledGroup.name,\n subject: subjects.map(x => x.name).join(', '),\n groups: scheduledGroup.users_primary_groups.map(x => ({ to: x.toString() })),\n teachers: scheduledGroup.teachers?.map(x => ({ to: x.id.toString() }))\n } satisfies Types.course);\n\n });\n\n return courses;\n}\n"],"mappings":";AAIA,yBACE,iBACA,QACA,cACA,gBACgB;CAEhB,MAAMA,UAA0B;AAEhC,kBAAiB,SAAQ,mBAAkB;EAKzC,MAAM,WAAW,OAAO,eAAe,OAAO,eAAe,WAAW,eAAe;AACvF,MAAI,SAAS,UAAU,GAAG;GACxB,MAAM,OAAO,uBAAuB,eAAe,KAAK,aAAa,eAAe,GAAG,cAAc,SAAS,OAAO,aAAa,OAAO,eAAe,OAAO,aAAa,UAAU,2EAA2E,OAAO,eAAe,OAAO,YAAY,SAAS;AACnT,kBAAe,KAAK;AACpB;;AAOF,MAAI,eAAe,UAAU,UAAU,GAAG;GACxC,MAAM,OAAO,uBAAuB,eAAe,KAAK,aAAa,eAAe,GAAG;AACvF,kBAAe,KAAK;;AAItB,UAAQ,KAAK;GACX,KAAa,eAAe,GAAG;GAC/B,aAAa,eAAe;GAC5B,SAAa,SAAS,KAAI,MAAK,EAAE,MAAM,KAAK;GAC5C,QAAa,eAAe,qBAAqB,KAAI,OAAM,EAAE,IAAI,EAAE;GACnE,UAAa,eAAe,UAAU,KAAI,OAAM,EAAE,IAAI,EAAE,GAAG;;;AAK/D,QAAO"}
1
+ {"version":3,"file":"courses.js","names":["courses: OutTypes.course[]"],"sources":["../../../src/Admentum/from/courses.ts"],"sourcesContent":["import type { ScheduleGroup } from '../types/schedule-groups';\nimport type { School } from '../types/schools';\nimport type { OutTypes } from './schedules';\n\n\nexport default function (\n scheduledGroups: ScheduleGroup[] | undefined,\n school: School,\n importErrors: string[],\n importWarnings: string[],\n): OutTypes.course[] {\n\n const courses: OutTypes.course[] = [];\n\n scheduledGroups?.forEach(scheduledGroup => {\n\n ////\n //// check number of subjects/courses\n ////\n const subjects = school.school_type == 'GR' ? scheduledGroup.subjects : scheduledGroup.courses;\n if (subjects.length != 1) {\n const warn = `The schedule group \"${scheduledGroup.name}\" with id \"${scheduledGroup.id}\" contained ${subjects.length} number of ${school.school_type == 'GR' ? 'subjects' : 'courses'} and was therefore omitted: a schedule group shall contain only a single ${school.school_type == 'GR' ? 'subject' : 'course'}.`;\n importWarnings.push(warn);\n return;\n }\n\n\n ////\n //// check number of teachers\n ////\n if (scheduledGroup.teachers?.length == 0) {\n const warn = `The schedule group \"${scheduledGroup.name}\" with id \"${scheduledGroup.id}\" did not contain any teachers.`;\n importWarnings.push(warn);\n }\n\n\n courses.push({\n ids: scheduledGroup.id.toString(),\n displayName: scheduledGroup.name,\n subject: subjects.map(x => x.name).join(', '),\n groups: scheduledGroup.users_primary_groups.map(x => ({ to: x.toString() })),\n teachers: scheduledGroup.teachers?.map(x => ({ to: x.id.toString() }))\n } satisfies OutTypes.course);\n\n });\n\n return courses;\n}\n"],"mappings":";AAKA,yBACE,iBACA,QACA,cACA,gBACmB;CAEnB,MAAMA,UAA6B;AAEnC,kBAAiB,SAAQ,mBAAkB;EAKzC,MAAM,WAAW,OAAO,eAAe,OAAO,eAAe,WAAW,eAAe;AACvF,MAAI,SAAS,UAAU,GAAG;GACxB,MAAM,OAAO,uBAAuB,eAAe,KAAK,aAAa,eAAe,GAAG,cAAc,SAAS,OAAO,aAAa,OAAO,eAAe,OAAO,aAAa,UAAU,2EAA2E,OAAO,eAAe,OAAO,YAAY,SAAS;AACnT,kBAAe,KAAK;AACpB;;AAOF,MAAI,eAAe,UAAU,UAAU,GAAG;GACxC,MAAM,OAAO,uBAAuB,eAAe,KAAK,aAAa,eAAe,GAAG;AACvF,kBAAe,KAAK;;AAItB,UAAQ,KAAK;GACX,KAAa,eAAe,GAAG;GAC/B,aAAa,eAAe;GAC5B,SAAa,SAAS,KAAI,MAAK,EAAE,MAAM,KAAK;GAC5C,QAAa,eAAe,qBAAqB,KAAI,OAAM,EAAE,IAAI,EAAE;GACnE,UAAa,eAAe,UAAU,KAAI,OAAM,EAAE,IAAI,EAAE,GAAG;;;AAK/D,QAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":["events: CoreTypes.event[]","eventTeachers: string[] | undefined"],"sources":["../../../src/Admentum/from/events.ts"],"sourcesContent":["\nimport moment from 'moment';\n\nimport { Types as CoreTypes } from '../../core/types';\nimport { Lesson } from '../types/lessons';\n\nconst firstDay = moment.utc('1970-01-05');\n\nfunction fromTimeString (\n day: number,\n timeString: string\n): moment.Moment {\n const [hours, minutes, seconds] = timeString.split(':').map((time: string) => parseInt(time));\n return firstDay.clone().add(day, 'day')\n .set('hour', hours)\n .set('minute', minutes);\n}\n\n\nexport default function (\n lessons: Lesson[] | undefined,\n courses: CoreTypes.course[] | undefined,\n teachers: CoreTypes.course[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): CoreTypes.event[] {\n\n // create schedule_group (group) to course map for quick lookup\n const group2course = new Map<string, CoreTypes.course>();\n courses?.forEach(c => group2course.set(c.ids!, c));\n\n // create teacher set for quick lookup\n const teacherSet = new Set<string>();\n teachers?.forEach(t => teacherSet.add(t.ids!));\n\n const events: CoreTypes.event[] = [];\n lessons?.forEach(l => {\n\n // check number of groups (schedule_groups = course) to ensure that only one exists\n if (l.info.groups?.length != 1) {\n const warn = `The lesson with id \"${l.id} contained ${l.info.groups?.length} number of groups (schedule_groups = courses) and was therefore omitted: a lesson shall contain only a single group.`;\n importWarnings.push(warn);\n return;\n }\n const course_id = l.info.groups[0].id.toString();\n\n // ensure the course exists\n const course = group2course.get(course_id);\n if (!course) {\n const warn = `The lesson with id \"${l.id}\" referenced the unknown/faulty schedule_group (course) \"${course_id}\" and was therefore ignored.`;\n importWarnings.push(warn);\n return;\n }\n\n const start = fromTimeString(l.weekday, l.info.start);\n const end = fromTimeString(l.weekday, l.info.end);\n const preferredDuration = l.info.duration;\n const duration = l.info.duration;\n\n // store only teachers if they mismatch teachers of parent course\n let eventTeachers: string[] | undefined;\n if (!course.teachers || !course.teachers?.every(x => l.info.teachers?.some(y => y.id.toString() == x.to))) {\n eventTeachers = l.info.teachers?.map(x => x.id.toString());\n\n // ensure that the teachers exist\n for (const teacher of eventTeachers ?? []) {\n if (!teacherSet.has(teacher)) {\n const warn = `The lesson with id \"${l.id}\" referenced the unknown teacher \"${teacher}\" and was therefore ignored.`;\n importWarnings.push(warn);\n return;\n }\n }\n }\n\n // location\n const location = l.info.room?.id.toString();\n\n events.push({\n ids: l.id.toString(),\n start,\n end,\n preferredDuration,\n duration,\n course: course_id,\n ...location && { inLocations: [ location ], locations: [{ locations: [ location ] }] },\n ...(eventTeachers && { teachers: eventTeachers.map((to) => ({ to })) })\n } satisfies CoreTypes.event);\n });\n\n return events;\n}\n"],"mappings":";;;AAMA,MAAM,WAAW,OAAO,IAAI;AAE5B,SAAS,eACP,KACA,YACe;CACf,MAAM,CAAC,OAAO,SAAS,WAAW,WAAW,MAAM,KAAK,KAAK,SAAiB,SAAS;AACvF,QAAO,SAAS,QAAQ,IAAI,KAAK,OAC9B,IAAI,QAAQ,OACZ,IAAI,UAAU;;AAInB,wBACE,SACA,SACA,UACA,cACA,gBACmB;CAGnB,MAAM,+BAAe,IAAI;AACzB,UAAS,SAAQ,MAAK,aAAa,IAAI,EAAE,KAAM;CAG/C,MAAM,6BAAa,IAAI;AACvB,WAAU,SAAQ,MAAK,WAAW,IAAI,EAAE;CAExC,MAAMA,SAA4B;AAClC,UAAS,SAAQ,MAAK;AAGpB,MAAI,EAAE,KAAK,QAAQ,UAAU,GAAG;GAC9B,MAAM,OAAO,uBAAuB,EAAE,GAAG,aAAa,EAAE,KAAK,QAAQ,OAAO;AAC5E,kBAAe,KAAK;AACpB;;EAEF,MAAM,YAAY,EAAE,KAAK,OAAO,GAAG,GAAG;EAGtC,MAAM,SAAS,aAAa,IAAI;AAChC,MAAI,CAAC,QAAQ;GACX,MAAM,OAAO,uBAAuB,EAAE,GAAG,2DAA2D,UAAU;AAC9G,kBAAe,KAAK;AACpB;;EAGF,MAAM,QAAoB,eAAe,EAAE,SAAS,EAAE,KAAK;EAC3D,MAAM,MAAoB,eAAe,EAAE,SAAS,EAAE,KAAK;EAC3D,MAAM,oBAAoB,EAAE,KAAK;EACjC,MAAM,WAAoB,EAAE,KAAK;EAGjC,IAAIC;AACJ,MAAI,CAAC,OAAO,YAAY,CAAC,OAAO,UAAU,OAAM,MAAK,EAAE,KAAK,UAAU,MAAK,MAAK,EAAE,GAAG,cAAc,EAAE,MAAM;AACzG,mBAAgB,EAAE,KAAK,UAAU,KAAI,MAAK,EAAE,GAAG;AAG/C,QAAK,MAAM,WAAW,iBAAiB,GACrC,KAAI,CAAC,WAAW,IAAI,UAAU;IAC5B,MAAM,OAAO,uBAAuB,EAAE,GAAG,oCAAoC,QAAQ;AACrF,mBAAe,KAAK;AACpB;;;EAMN,MAAM,WAAW,EAAE,KAAK,MAAM,GAAG;AAEjC,SAAO,KAAK;GACV,KAAQ,EAAE,GAAG;GACb;GACA;GACA;GACA;GACA,QAAQ;GACR,GAAG,YAAY;IAAE,aAAa,CAAE;IAAY,WAAW,CAAC,EAAE,WAAW,CAAE;;GACvE,GAAI,iBAAiB,EAAE,UAAU,cAAc,KAAK,QAAQ,EAAE;;;AAIlE,QAAO"}
1
+ {"version":3,"file":"events.js","names":["events: OutTypes.event[]","eventTeachers: string[] | undefined"],"sources":["../../../src/Admentum/from/events.ts"],"sourcesContent":["\nimport moment from 'moment';\nimport type { Lesson } from '../types/lessons';\nimport type { OutTypes } from './schedules';\n\nconst firstDay = moment.utc('1970-01-05');\n\nfunction fromTimeString (\n day: number,\n timeString: string\n): moment.Moment {\n const [hours, minutes, seconds] = timeString.split(':').map((time: string) => parseInt(time));\n return firstDay.clone().add(day, 'day')\n .set('hour', hours)\n .set('minute', minutes);\n}\n\nexport default function (\n lessons: Lesson[] | undefined,\n courses: OutTypes.course[] | undefined,\n teachers: OutTypes.teacher[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): OutTypes.event[] {\n\n // create schedule_group (group) to course map for quick lookup\n const group2course = new Map<string, OutTypes.course>();\n courses?.forEach(c => group2course.set(c.ids!, c));\n\n // create teacher set for quick lookup\n const teacherSet = new Set<string>();\n teachers?.forEach(t => teacherSet.add(t.ids!));\n\n const events: OutTypes.event[] = [];\n lessons?.forEach(l => {\n\n // check number of groups (schedule_groups = course) to ensure that only one exists\n if (l.info.groups?.length != 1) {\n const warn = `The lesson with id \"${l.id} contained ${l.info.groups?.length} number of groups (schedule_groups = courses) and was therefore omitted: a lesson shall contain only a single group.`;\n importWarnings.push(warn);\n return;\n }\n const course_id = l.info.groups[0].id.toString();\n\n // ensure the course exists\n const course = group2course.get(course_id);\n if (!course) {\n const warn = `The lesson with id \"${l.id}\" referenced the unknown/faulty schedule_group (course) \"${course_id}\" and was therefore ignored.`;\n importWarnings.push(warn);\n return;\n }\n\n const start = fromTimeString(l.weekday, l.info.start);\n const end = fromTimeString(l.weekday, l.info.end);\n const preferredDuration = l.info.duration;\n const duration = l.info.duration;\n\n // store only teachers if they mismatch teachers of parent course\n let eventTeachers: string[] | undefined;\n if (!course.teachers || !course.teachers?.every(x => l.info.teachers?.some(y => y.id.toString() == x.to))) {\n eventTeachers = l.info.teachers?.map(x => x.id.toString());\n\n // ensure that the teachers exist\n for (const teacher of eventTeachers ?? []) {\n if (!teacherSet.has(teacher)) {\n const warn = `The lesson with id \"${l.id}\" referenced the unknown teacher \"${teacher}\" and was therefore ignored.`;\n importWarnings.push(warn);\n return;\n }\n }\n }\n\n // location\n const location = l.info.room?.id.toString();\n\n events.push({\n ids: l.id.toString(),\n start,\n end,\n preferredDuration,\n duration,\n course: course_id,\n ...location && { inLocations: [ location ], locations: [{ locations: [ location ] }] },\n ...(eventTeachers && { teachers: eventTeachers.map((to) => ({ to })) })\n } satisfies OutTypes.event);\n });\n\n return events;\n}\n"],"mappings":";;;AAKA,MAAM,WAAW,OAAO,IAAI;AAE5B,SAAS,eACP,KACA,YACe;CACf,MAAM,CAAC,OAAO,SAAS,WAAW,WAAW,MAAM,KAAK,KAAK,SAAiB,SAAS;AACvF,QAAO,SAAS,QAAQ,IAAI,KAAK,OAC9B,IAAI,QAAQ,OACZ,IAAI,UAAU;;AAGnB,wBACE,SACA,SACA,UACA,cACA,gBACkB;CAGlB,MAAM,+BAAe,IAAI;AACzB,UAAS,SAAQ,MAAK,aAAa,IAAI,EAAE,KAAM;CAG/C,MAAM,6BAAa,IAAI;AACvB,WAAU,SAAQ,MAAK,WAAW,IAAI,EAAE;CAExC,MAAMA,SAA2B;AACjC,UAAS,SAAQ,MAAK;AAGpB,MAAI,EAAE,KAAK,QAAQ,UAAU,GAAG;GAC9B,MAAM,OAAO,uBAAuB,EAAE,GAAG,aAAa,EAAE,KAAK,QAAQ,OAAO;AAC5E,kBAAe,KAAK;AACpB;;EAEF,MAAM,YAAY,EAAE,KAAK,OAAO,GAAG,GAAG;EAGtC,MAAM,SAAS,aAAa,IAAI;AAChC,MAAI,CAAC,QAAQ;GACX,MAAM,OAAO,uBAAuB,EAAE,GAAG,2DAA2D,UAAU;AAC9G,kBAAe,KAAK;AACpB;;EAGF,MAAM,QAAoB,eAAe,EAAE,SAAS,EAAE,KAAK;EAC3D,MAAM,MAAoB,eAAe,EAAE,SAAS,EAAE,KAAK;EAC3D,MAAM,oBAAoB,EAAE,KAAK;EACjC,MAAM,WAAoB,EAAE,KAAK;EAGjC,IAAIC;AACJ,MAAI,CAAC,OAAO,YAAY,CAAC,OAAO,UAAU,OAAM,MAAK,EAAE,KAAK,UAAU,MAAK,MAAK,EAAE,GAAG,cAAc,EAAE,MAAM;AACzG,mBAAgB,EAAE,KAAK,UAAU,KAAI,MAAK,EAAE,GAAG;AAG/C,QAAK,MAAM,WAAW,iBAAiB,GACrC,KAAI,CAAC,WAAW,IAAI,UAAU;IAC5B,MAAM,OAAO,uBAAuB,EAAE,GAAG,oCAAoC,QAAQ;AACrF,mBAAe,KAAK;AACpB;;;EAMN,MAAM,WAAW,EAAE,KAAK,MAAM,GAAG;AAEjC,SAAO,KAAK;GACV,KAAQ,EAAE,GAAG;GACb;GACA;GACA;GACA;GACA,QAAQ;GACR,GAAG,YAAY;IAAE,aAAa,CAAE;IAAY,WAAW,CAAC,EAAE,WAAW,CAAE;;GACvE,GAAI,iBAAiB,EAAE,UAAU,cAAc,KAAK,QAAQ,EAAE;;;AAIlE,QAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","names":[],"sources":["../../../src/Admentum/from/groups.ts"],"sourcesContent":["import { PrimaryGroup } from '../types/primary-groups';\nimport { Types } from '../../core/types';\n\nexport default function (\n primaryGroups: PrimaryGroup[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): Types.group[] {\n return primaryGroups?.map(x => { return {\n ids: x.id.toString(),\n displayName: x.name,\n species: 'class',\n };}) ?? [];\n}\n"],"mappings":";AAGA,wBACE,eACA,cACA,gBACe;AACf,QAAO,eAAe,KAAI,MAAK;AAAE,SAAO;GACtC,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE;GACf,SAAa;;OACP"}
1
+ {"version":3,"file":"groups.js","names":[],"sources":["../../../src/Admentum/from/groups.ts"],"sourcesContent":["import type { PrimaryGroup } from '../types/primary-groups';\nimport type { OutTypes } from './schedules';\n\nexport default function (\n primaryGroups: PrimaryGroup[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): OutTypes.group[] {\n return primaryGroups?.map(x => { return {\n ids: x.id.toString(),\n displayName: x.name,\n species: 'class',\n };}) ?? [];\n}\n"],"mappings":";AAGA,wBACE,eACA,cACA,gBACkB;AAClB,QAAO,eAAe,KAAI,MAAK;AAAE,SAAO;GACtC,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE;GACf,SAAa;;OACP"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/Admentum/from/index.ts"],"sourcesContent":["import { FromInterface } from '../../core/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;\n"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
1
+ {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/Admentum/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../common/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;\n"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
@@ -1 +1 @@
1
- {"version":3,"file":"locations.js","names":[],"sources":["../../../src/Admentum/from/locations.ts"],"sourcesContent":["import { Room } from '../types/rooms';\nimport { Types } from '../../core/types';\n\n\nexport default function (\n rooms: Room[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): Types.location[] {\n return rooms?.map(room => { return {\n ids: room.id.toString(),\n displayName: room.name\n };}) ?? [];\n}\n"],"mappings":";AAIA,2BACE,OACA,cACA,gBACkB;AAClB,QAAO,OAAO,KAAI,SAAQ;AAAE,SAAO;GACjC,KAAa,KAAK,GAAG;GACrB,aAAa,KAAK;;OACZ"}
1
+ {"version":3,"file":"locations.js","names":[],"sources":["../../../src/Admentum/from/locations.ts"],"sourcesContent":["import type { Room } from '../types/rooms';\nimport type { OutTypes } from './schedules';\n\n\nexport default function (\n rooms: Room[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): OutTypes.location[] {\n return rooms?.map(room => { return {\n ids: room.id.toString(),\n displayName: room.name\n };}) ?? [];\n}\n"],"mappings":";AAIA,2BACE,OACA,cACA,gBACqB;AACrB,QAAO,OAAO,KAAI,SAAQ;AAAE,SAAO;GACjC,KAAa,KAAK,GAAG;GACrB,aAAa,KAAK;;OACZ"}
@@ -1,7 +1,7 @@
1
1
  //#region src/Admentum/from/persons.ts
2
2
  function persons_default(users, groups, importErrors, importWarnings) {
3
3
  const personSet = /* @__PURE__ */ new Map();
4
- const groupSet = new Map(groups.map((x) => [x.displayName, x.id]));
4
+ const groupSet = new Map(groups.map((x) => [x.displayName, x.ids]));
5
5
  users?.filter((x) => x.role === 1).forEach((user) => {
6
6
  const person = {
7
7
  ids: user.id.toString(),
@@ -1 +1 @@
1
- {"version":3,"file":"persons.js","names":["personSet: Map<number, CoreTypes.person>","groupSet: Map<string, string>"],"sources":["../../../src/Admentum/from/persons.ts"],"sourcesContent":["import { Types as CoreTypes } from '../../core/types';\n\nimport { User } from '../types/users';\n\nexport default function (\n users: User[] | undefined,\n groups: CoreTypes.group[],\n importErrors: string[],\n importWarnings: string[]\n) {\n // add all persons to a set to remove duplicates\n const personSet: Map<number, CoreTypes.person> = new Map();\n\n /*\n The reference to the group is different that the one in the primary_groups array.\n To solve this we create a map of all groups and use the id of the group as key. If\n the id is not found in the map, try to find a group with the same name.\n */\n const groupSet: Map<string, string> = new Map(groups.map(x => [x.displayName!, x.id!]));\n\n users?.filter(x => x.role === 1).forEach(user => {\n const person = {\n ids: user.id.toString(),\n firstName: user.first_name,\n lastName: user.last_name,\n group: user.current_primary_group?.id?.toString(),\n ...user.email && {\n emails: [\n {\n value: user.email,\n type: 'organization'\n }\n ]\n }\n } satisfies CoreTypes.person;\n\n if (user.current_primary_group) {\n const { id, name } = user.current_primary_group;\n if (groupSet.get(name.toString()) != person.group) {\n importWarnings.push(`The group of the user ${person.firstName} ${person.lastName} is not the same as the group in the primary_groups array.`);\n person.group = groupSet.get(name.toString()) ?? person.group;\n }\n }\n\n\n personSet.set(user.id, person);\n });\n\n return Array.from(personSet.values());\n}\n"],"mappings":";AAIA,yBACE,OACA,QACA,cACA,gBACA;CAEA,MAAMA,4BAA2C,IAAI;CAOrD,MAAMC,WAA2C,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,aAAc,EAAE;AAE5F,QAAO,QAAO,MAAK,EAAE,SAAS,GAAG,SAAQ,SAAQ;EAC/C,MAAM,SAAS;GACb,KAAW,KAAK,GAAG;GACnB,WAAW,KAAK;GAChB,UAAW,KAAK;GAChB,OAAW,KAAK,uBAAuB,IAAI;GAC3C,GAAG,KAAK,SAAS,EACf,QAAQ,CACN;IACE,OAAO,KAAK;IACZ,MAAO;;;AAMf,MAAI,KAAK,uBAAuB;GAC9B,MAAM,EAAE,IAAI,SAAS,KAAK;AAC1B,OAAI,SAAS,IAAI,KAAK,eAAe,OAAO,OAAO;AACjD,mBAAe,KAAK,yBAAyB,OAAO,UAAU,GAAG,OAAO,SAAS;AACjF,WAAO,QAAQ,SAAS,IAAI,KAAK,eAAe,OAAO;;;AAK3D,YAAU,IAAI,KAAK,IAAI;;AAGzB,QAAO,MAAM,KAAK,UAAU"}
1
+ {"version":3,"file":"persons.js","names":["personSet: Map<number, OutTypes.person>"],"sources":["../../../src/Admentum/from/persons.ts"],"sourcesContent":["import type { User } from '../types/users';\nimport type { OutTypes } from './schedules';\n\nexport default function (\n users: User[] | undefined,\n groups: OutTypes.group[],\n importErrors: string[],\n importWarnings: string[]\n) {\n // add all persons to a set to remove duplicates\n const personSet: Map<number, OutTypes.person> = new Map();\n\n /*\n The reference to the group is different that the one in the primary_groups array.\n To solve this we create a map of all groups and use the id of the group as key. If\n the id is not found in the map, try to find a group with the same name.\n */\n const groupSet = new Map(groups.map(x => [x.displayName!, x.ids!]));\n\n users?.filter(x => x.role === 1).forEach(user => {\n const person = {\n ids: user.id.toString(),\n firstName: user.first_name,\n lastName: user.last_name,\n group: user.current_primary_group?.id?.toString(),\n ...user.email && {\n emails: [\n {\n value: user.email,\n type: 'organization'\n }\n ]\n }\n } satisfies OutTypes.person;\n\n if (user.current_primary_group) {\n const { id, name } = user.current_primary_group;\n if (groupSet.get(name.toString()) != person.group) {\n importWarnings.push(`The group of the user ${person.firstName} ${person.lastName} is not the same as the group in the primary_groups array.`);\n person.group = groupSet.get(name.toString()) ?? person.group;\n }\n }\n\n\n personSet.set(user.id, person);\n });\n\n return Array.from(personSet.values());\n}\n"],"mappings":";AAGA,yBACE,OACA,QACA,cACA,gBACA;CAEA,MAAMA,4BAA0C,IAAI;CAOpD,MAAM,WAAW,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,aAAc,EAAE;AAE5D,QAAO,QAAO,MAAK,EAAE,SAAS,GAAG,SAAQ,SAAQ;EAC/C,MAAM,SAAS;GACb,KAAW,KAAK,GAAG;GACnB,WAAW,KAAK;GAChB,UAAW,KAAK;GAChB,OAAW,KAAK,uBAAuB,IAAI;GAC3C,GAAG,KAAK,SAAS,EACf,QAAQ,CACN;IACE,OAAO,KAAK;IACZ,MAAO;;;AAMf,MAAI,KAAK,uBAAuB;GAC9B,MAAM,EAAE,IAAI,SAAS,KAAK;AAC1B,OAAI,SAAS,IAAI,KAAK,eAAe,OAAO,OAAO;AACjD,mBAAe,KAAK,yBAAyB,OAAO,UAAU,GAAG,OAAO,SAAS;AACjF,WAAO,QAAQ,SAAS,IAAI,KAAK,eAAe,OAAO;;;AAK3D,YAAU,IAAI,KAAK,IAAI;;AAGzB,QAAO,MAAM,KAAK,UAAU"}
@@ -1,8 +1,38 @@
1
+ import { InternalIdKey } from "../../core/types/common/index.js";
2
+ import { Types } from "../../core/types/index.js";
1
3
  import { Schedule } from "../types/schedules.js";
2
- import { Types } from "../../core/v2/types/index.js";
3
4
 
4
5
  //#region src/Admentum/from/schedules.d.ts
5
- declare function export_default(schedule: Omit<Schedule, 'start_date' | 'end_date' | 'schedule' | 'school_year'>): Partial<Types.division>;
6
+ declare namespace OutTypes {
7
+ type location = Omit<Types.serialized.location, InternalIdKey>;
8
+ type teacher = Omit<Types.serialized.teacher, InternalIdKey>;
9
+ type group = Omit<Types.serialized.group, InternalIdKey>;
10
+ type course = Omit<Types.serialized.course, InternalIdKey>;
11
+ type event = Omit<Types.serialized.event, InternalIdKey>;
12
+ type person = Omit<Types.serialized.person, InternalIdKey>;
13
+ }
14
+ declare function export_default(schedule: Omit<Schedule, 'start_date' | 'end_date' | 'schedule' | 'school_year'>): {
15
+ meta: {
16
+ errors: string[];
17
+ };
18
+ locations?: undefined;
19
+ teachers?: undefined;
20
+ groups?: undefined;
21
+ courses?: undefined;
22
+ events?: undefined;
23
+ persons?: undefined;
24
+ } | {
25
+ locations: OutTypes.location[];
26
+ teachers: OutTypes.teacher[];
27
+ groups: OutTypes.group[];
28
+ courses: OutTypes.course[];
29
+ events: OutTypes.event[];
30
+ persons: OutTypes.person[];
31
+ meta: {
32
+ warnings?: string[] | undefined;
33
+ errors?: string[] | undefined;
34
+ };
35
+ };
6
36
  //#endregion
7
37
  export { export_default };
8
38
  //# sourceMappingURL=schedules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["errors: string[]","warnings: string[]","locations: CoreTypes.location []","_locations","teachers: CoreTypes.teacher []","_teachers","groups: CoreTypes.group []","_groups","courses: CoreTypes.course []","_courses","events: CoreTypes.event []","_events","persons: CoreTypes.person []","_persons"],"sources":["../../../src/Admentum/from/schedules.ts"],"sourcesContent":["import { Schedule } from '../types/schedules';\n\nimport _teachers from './teachers';\nimport _locations from './locations';\nimport _groups from './groups';\nimport _courses from './courses';\nimport _events from './events';\nimport _persons from './persons';\n\nimport { Types as CoreTypes } from '../../core/types';\n\nexport default function (\n schedule: Omit<Schedule, 'start_date' | 'end_date' | 'schedule' | 'school_year'>\n): Partial<CoreTypes.division> {\n\n ////\n //// check the number of contained schools\n ////\n if (schedule.schools.length != 1) {\n return { meta: { errors: [`Received ${schedule.schools.length} number of schools: only a single school is allowed.`] } };\n }\n const school = schedule.schools[0];\n\n // gather all import related warnings/errors\n const errors: string[] = [];\n const warnings: string[] = [];\n\n const locations: CoreTypes.location [] = _locations(schedule.rooms, errors, warnings);\n const teachers: CoreTypes.teacher [] = _teachers (schedule.schedule_groups, schedule.lessons, errors, warnings);\n const groups: CoreTypes.group [] = _groups (schedule.primary_groups, errors, warnings);\n const courses: CoreTypes.course [] = _courses (schedule.schedule_groups, school, errors, warnings);\n const events: CoreTypes.event [] = _events (schedule.lessons, courses, teachers, errors, warnings);\n const persons: CoreTypes.person [] = _persons (schedule.users, groups, errors, warnings);\n\n return { locations, teachers, groups, courses, events, persons,\n meta: {\n ...( errors.length ? { errors } : { } ),\n ...( warnings.length ? { warnings } : { } )\n }\n };\n}\n"],"mappings":";;;;;;;;AAWA,2BACE,UAC6B;AAK7B,KAAI,SAAS,QAAQ,UAAU,EAC7B,QAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,SAAS,QAAQ,OAAO;CAEhE,MAAM,SAAS,SAAS,QAAQ;CAGhC,MAAMA,SAAqB;CAC3B,MAAMC,WAAqB;CAE3B,MAAMC,YAAqCC,kBAAW,SAAS,OAAmC,QAAQ;CAC1G,MAAMC,WAAqCC,iBAAW,SAAS,iBAAiB,SAAS,SAAS,QAAQ;CAC1G,MAAMC,SAAqCC,eAAW,SAAS,gBAAmC,QAAQ;CAC1G,MAAMC,UAAqCC,gBAAW,SAAS,iBAAiB,QAAkB,QAAQ;CAC1G,MAAMC,SAAqCC,eAAW,SAAS,SAAS,SAAS,UAAiB,QAAQ;CAC1G,MAAMC,UAAqCC,gBAAW,SAAS,OAAO,QAA4B,QAAQ;AAE1G,QAAO;EAAE;EAAW;EAAU;EAAQ;EAAS;EAAQ;EACrD,MAAM;GACJ,GAAK,OAAO,SAAW,EAAE,WAAa;GACtC,GAAK,SAAS,SAAS,EAAE,aAAa"}
1
+ {"version":3,"file":"schedules.js","names":["errors: string[]","warnings: string[]","locations: OutTypes.location[]","_locations","teachers: OutTypes.teacher []","_teachers","groups: OutTypes.group []","_groups","courses: OutTypes.course []","_courses","events: OutTypes.event []","_events","persons: OutTypes.person []","_persons"],"sources":["../../../src/Admentum/from/schedules.ts"],"sourcesContent":["import type { Schedule } from '../types/schedules';\nimport _teachers from './teachers';\nimport _locations from './locations';\nimport _groups from './groups';\nimport _courses from './courses';\nimport _events from './events';\nimport _persons from './persons';\nimport type { CoreTypes } from '../../core';\nimport type { InternalIdKey } from '../../core/types/common';\n\n\nexport namespace OutTypes {\n export type location = Omit<CoreTypes.serialized.location, InternalIdKey>;\n export type teacher = Omit<CoreTypes.serialized.teacher, InternalIdKey>;\n export type group = Omit<CoreTypes.serialized.group, InternalIdKey>;\n export type course = Omit<CoreTypes.serialized.course, InternalIdKey>;\n export type event = Omit<CoreTypes.serialized.event, InternalIdKey>;\n export type person = Omit<CoreTypes.serialized.person, InternalIdKey>;\n};\n\nexport default function (\n schedule: Omit<Schedule, 'start_date' | 'end_date' | 'schedule' | 'school_year'>\n)/* : Partial<CoreTypes.division> */ {\n\n ////\n //// check the number of contained schools\n ////\n if (schedule.schools.length != 1) {\n return { meta: { errors: [`Received ${schedule.schools.length} number of schools: only a single school is allowed.`] } };\n }\n const school = schedule.schools[0];\n\n // gather all import related warnings/errors\n const errors: string[] = [];\n const warnings: string[] = [];\n\n const locations: OutTypes.location[] = _locations(schedule.rooms, errors, warnings);\n const teachers: OutTypes.teacher [] = _teachers (schedule.schedule_groups, schedule.lessons, errors, warnings);\n const groups: OutTypes.group [] = _groups (schedule.primary_groups, errors, warnings);\n const courses: OutTypes.course [] = _courses (schedule.schedule_groups, school, errors, warnings);\n const events: OutTypes.event [] = _events (schedule.lessons, courses, teachers, errors, warnings);\n const persons: OutTypes.person [] = _persons (schedule.users, groups, errors, warnings);\n\n return { locations, teachers, groups, courses, events, persons,\n meta: {\n ...( errors.length ? { errors } : { } ),\n ...( warnings.length ? { warnings } : { } )\n }\n };\n}\n"],"mappings":";;;;;;;;AAoBA,2BACE,UACmC;AAKnC,KAAI,SAAS,QAAQ,UAAU,EAC7B,QAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,SAAS,QAAQ,OAAO;CAEhE,MAAM,SAAS,SAAS,QAAQ;CAGhC,MAAMA,SAAqB;CAC3B,MAAMC,WAAqB;CAE3B,MAAMC,YAAiCC,kBAAW,SAAS,OAAmC,QAAQ;CACtG,MAAMC,WAAiCC,iBAAW,SAAS,iBAAiB,SAAS,SAAS,QAAQ;CACtG,MAAMC,SAAiCC,eAAW,SAAS,gBAAmC,QAAQ;CACtG,MAAMC,UAAiCC,gBAAW,SAAS,iBAAiB,QAAkB,QAAQ;CACtG,MAAMC,SAAiCC,eAAW,SAAS,SAAS,SAAS,UAAiB,QAAQ;CACtG,MAAMC,UAAiCC,gBAAW,SAAS,OAAO,QAA4B,QAAQ;AAEtG,QAAO;EAAE;EAAW;EAAU;EAAQ;EAAS;EAAQ;EACrD,MAAM;GACJ,GAAK,OAAO,SAAW,EAAE,WAAa;GACtC,GAAK,SAAS,SAAS,EAAE,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"teachers.js","names":["teacherSet: Map<number, Types.teacher>"],"sources":["../../../src/Admentum/from/teachers.ts"],"sourcesContent":["import { Types } from '../../core/types';\nimport { ScheduleGroup } from '../types/schedule-groups';\nimport { Lesson } from '../types/lessons';\n\nexport default function (\n scheduleGroups: ScheduleGroup[] | undefined,\n lessons: Lesson[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): Types.teacher[] {\n // add all teachers to a set to remove duplicates\n const teacherSet: Map<number, Types.teacher> = new Map();\n\n scheduleGroups?.forEach(scheduleGroup => {\n scheduleGroup.teachers?.forEach(teacher => {\n teacherSet.set(teacher.id, {\n ids: teacher.id.toString(),\n displayName: teacher.first_name + ' ' + teacher.last_name\n });\n });\n });\n\n lessons?.forEach(lesson => {\n lesson.teachers?.forEach(teacher => {\n teacherSet.set(teacher.id, {\n ids: teacher.id.toString(),\n displayName: teacher.first_name + ' ' + teacher.last_name\n });\n });\n });\n\n return Array.from(teacherSet.values());\n}\n"],"mappings":";AAIA,0BACE,gBACA,SACA,cACA,gBACiB;CAEjB,MAAMA,6BAAyC,IAAI;AAEnD,iBAAgB,SAAQ,kBAAiB;AACvC,gBAAc,UAAU,SAAQ,YAAW;AACzC,cAAW,IAAI,QAAQ,IAAI;IACzB,KAAa,QAAQ,GAAG;IACxB,aAAa,QAAQ,aAAa,MAAM,QAAQ;;;;AAKtD,UAAS,SAAQ,WAAU;AACzB,SAAO,UAAU,SAAQ,YAAW;AAClC,cAAW,IAAI,QAAQ,IAAI;IACzB,KAAa,QAAQ,GAAG;IACxB,aAAa,QAAQ,aAAa,MAAM,QAAQ;;;;AAKtD,QAAO,MAAM,KAAK,WAAW"}
1
+ {"version":3,"file":"teachers.js","names":["teacherSet: Map<number, OutTypes.teacher>"],"sources":["../../../src/Admentum/from/teachers.ts"],"sourcesContent":["import type { ScheduleGroup } from '../types/schedule-groups';\nimport type { Lesson } from '../types/lessons';\nimport type { OutTypes } from './schedules';\n\nexport default function (\n scheduleGroups: ScheduleGroup[] | undefined,\n lessons: Lesson[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): OutTypes.teacher[] {\n // add all teachers to a set to remove duplicates\n const teacherSet: Map<number, OutTypes.teacher> = new Map();\n\n scheduleGroups?.forEach(scheduleGroup => {\n scheduleGroup.teachers?.forEach(teacher => {\n teacherSet.set(teacher.id, {\n ids: teacher.id.toString(),\n displayName: teacher.first_name + ' ' + teacher.last_name\n });\n });\n });\n\n lessons?.forEach(lesson => {\n lesson.teachers?.forEach(teacher => {\n teacherSet.set(teacher.id, {\n ids: teacher.id.toString(),\n displayName: teacher.first_name + ' ' + teacher.last_name\n });\n });\n });\n\n return Array.from(teacherSet.values());\n}\n"],"mappings":";AAIA,0BACE,gBACA,SACA,cACA,gBACoB;CAEpB,MAAMA,6BAA4C,IAAI;AAEtD,iBAAgB,SAAQ,kBAAiB;AACvC,gBAAc,UAAU,SAAQ,YAAW;AACzC,cAAW,IAAI,QAAQ,IAAI;IACzB,KAAa,QAAQ,GAAG;IACxB,aAAa,QAAQ,aAAa,MAAM,QAAQ;;;;AAKtD,UAAS,SAAQ,WAAU;AACzB,SAAO,UAAU,SAAQ,YAAW;AAClC,cAAW,IAAI,QAAQ,IAAI;IACzB,KAAa,QAAQ,GAAG;IACxB,aAAa,QAAQ,aAAa,MAAM,QAAQ;;;;AAKtD,QAAO,MAAM,KAAK,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_to","_from"],"sources":["../../src/Admentum/index.ts"],"sourcesContent":["import _from from './from';\nimport _to from './to';\nimport { Types } from './types';\n\nexport class AdmentumMap {\n static to = _to;\n static from = _from;\n}\n\nexport type { Types as AdmentumTypes };\n"],"mappings":";;;;AAIA,IAAa,cAAb,MAAyB;CACvB,OAAO,KAAOA;CACd,OAAO,OAAOC"}
1
+ {"version":3,"file":"index.js","names":["_to","_from"],"sources":["../../src/Admentum/index.ts"],"sourcesContent":["import _from from './from';\nimport _to from './to';\nimport type { Types } from './types';\n\nexport class AdmentumMap {\n static to = _to;\n static from = _from;\n}\n\nexport { Types as AdmentumTypes };\n"],"mappings":";;;;AAIA,IAAa,cAAb,MAAyB;CACvB,OAAO,KAAOA;CACd,OAAO,OAAOC"}