@royalschedule/maps 4.0.14 → 4.0.16

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 (348) hide show
  1. package/dist/Additio/from/courses.js.map +1 -1
  2. package/dist/Additio/from/events.js.map +1 -1
  3. package/dist/Additio/from/groups.js.map +1 -1
  4. package/dist/Additio/from/index.js.map +1 -1
  5. package/dist/Additio/from/locations.js.map +1 -1
  6. package/dist/Additio/from/persons.js.map +1 -1
  7. package/dist/Additio/from/schedules.d.ts +7 -6
  8. package/dist/Additio/from/schedules.js +2 -4
  9. package/dist/Additio/from/schedules.js.map +1 -1
  10. package/dist/Additio/from/teachers.js.map +1 -1
  11. package/dist/Additio/to/index.d.ts +11 -9
  12. package/dist/Additio/to/schedules.js +2 -4
  13. package/dist/Additio/to/schedules.js.map +1 -1
  14. package/dist/Admentum/from/courses.js.map +1 -1
  15. package/dist/Admentum/from/events.js.map +1 -1
  16. package/dist/Admentum/from/groups.js.map +1 -1
  17. package/dist/Admentum/from/index.js.map +1 -1
  18. package/dist/Admentum/from/locations.js.map +1 -1
  19. package/dist/Admentum/from/persons.js.map +1 -1
  20. package/dist/Admentum/from/schedules.d.ts +7 -6
  21. package/dist/Admentum/from/schedules.js +2 -4
  22. package/dist/Admentum/from/schedules.js.map +1 -1
  23. package/dist/Admentum/from/teachers.js.map +1 -1
  24. package/dist/Admentum/to/index.d.ts +9 -8
  25. package/dist/Admentum/to/schedules.js +4 -7
  26. package/dist/Admentum/to/schedules.js.map +1 -1
  27. package/dist/Excel/index.d.ts +263 -26
  28. package/dist/Excel/v1/from/index.js +2 -1
  29. package/dist/Excel/v1/from/index.js.map +1 -1
  30. package/dist/Excel/v1/index.d.ts +218 -20
  31. package/dist/Excel/v2/from/index.js +49 -57
  32. package/dist/Excel/v2/from/index.js.map +1 -1
  33. package/dist/Excel/v2/index.d.ts +263 -26
  34. package/dist/IdunSoft/from/courses.js.map +1 -1
  35. package/dist/IdunSoft/from/events.js +1 -2
  36. package/dist/IdunSoft/from/events.js.map +1 -1
  37. package/dist/IdunSoft/from/groups.js.map +1 -1
  38. package/dist/IdunSoft/from/index.js.map +1 -1
  39. package/dist/IdunSoft/from/locations.js.map +1 -1
  40. package/dist/IdunSoft/from/schedules.d.ts +6 -5
  41. package/dist/IdunSoft/from/schedules.js.map +1 -1
  42. package/dist/IdunSoft/from/teachers.js.map +1 -1
  43. package/dist/IdunSoft/to/index.d.ts +2 -1
  44. package/dist/IdunSoft/to/schedules.js +5 -8
  45. package/dist/IdunSoft/to/schedules.js.map +1 -1
  46. package/dist/InfoMentor/to/index.d.ts +2 -1
  47. package/dist/InfoMentor/to/schedules.js +3 -4
  48. package/dist/InfoMentor/to/schedules.js.map +1 -1
  49. package/dist/PlanDigital/from/index.js.map +1 -1
  50. package/dist/PlanDigital/from/schedules.js +9 -11
  51. package/dist/PlanDigital/from/schedules.js.map +1 -1
  52. package/dist/PlanDigital/index.d.ts +74 -59
  53. package/dist/Quiculum/file/to/index.d.ts +10 -9
  54. package/dist/Quiculum/file/to/schedules.js +5 -9
  55. package/dist/Quiculum/file/to/schedules.js.map +1 -1
  56. package/dist/RS/from/division.d.ts +2 -1
  57. package/dist/RS/from/division.js +9 -6
  58. package/dist/RS/from/division.js.map +1 -1
  59. package/dist/RS/from/index.js.map +1 -1
  60. package/dist/RS/from/schedules.d.ts +2 -1
  61. package/dist/RS/from/schedules.js +2 -1
  62. package/dist/RS/from/schedules.js.map +1 -1
  63. package/dist/RS/make-connected.d.ts +17 -16
  64. package/dist/RS/make-connected.js +63 -96
  65. package/dist/RS/make-connected.js.map +1 -1
  66. package/dist/RS/to/index.js.map +1 -1
  67. package/dist/RS/to/initial-configuration.js +4 -6
  68. package/dist/RS/to/initial-configuration.js.map +1 -1
  69. package/dist/RS/to/input/collections.js.map +1 -1
  70. package/dist/RS/to/input/default.js +1 -2
  71. package/dist/RS/to/input/default.js.map +1 -1
  72. package/dist/RS/to/input/dependencies.js +1 -3
  73. package/dist/RS/to/input/dependencies.js.map +1 -1
  74. package/dist/RS/to/input/dynamic-locked-times.js +1 -2
  75. package/dist/RS/to/input/dynamic-locked-times.js.map +1 -1
  76. package/dist/RS/to/input/events.js +5 -3
  77. package/dist/RS/to/input/events.js.map +1 -1
  78. package/dist/RS/to/input/groups.js.map +1 -1
  79. package/dist/RS/to/input/individuals.js +2 -3
  80. package/dist/RS/to/input/individuals.js.map +1 -1
  81. package/dist/RS/to/input/input.js +1 -3
  82. package/dist/RS/to/input/input.js.map +1 -1
  83. package/dist/RS/to/input/intervals.js +2 -4
  84. package/dist/RS/to/input/intervals.js.map +1 -1
  85. package/dist/RS/to/input/periods.js +6 -8
  86. package/dist/RS/to/input/periods.js.map +1 -1
  87. package/dist/RS/to/input/settings.js.map +1 -1
  88. package/dist/RS/to/input/teachers.js.map +1 -1
  89. package/dist/RS/to/input/util/attach-locked-times.js.map +1 -1
  90. package/dist/RS/to/input/util/parse-days.js.map +1 -1
  91. package/dist/RS/to/input/util/parse-group-references.js.map +1 -1
  92. package/dist/RS/to/input/util/parse-intervals.js +2 -4
  93. package/dist/RS/to/input/util/parse-intervals.js.map +1 -1
  94. package/dist/RS/to/input/util/parse-location-references.js +1 -2
  95. package/dist/RS/to/input/util/parse-location-references.js.map +1 -1
  96. package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -1
  97. package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -1
  98. package/dist/RS/to/input/util/util.js +1 -2
  99. package/dist/RS/to/input/util/util.js.map +1 -1
  100. package/dist/RS/to/schedules.js +3 -2
  101. package/dist/RS/to/schedules.js.map +1 -1
  102. package/dist/RS/types/to.d.ts +13 -3
  103. package/dist/RS/types/to.js +6 -0
  104. package/dist/RS/types/to.js.map +1 -0
  105. package/dist/SS12000/from/activities.js +1 -2
  106. package/dist/SS12000/from/activities.js.map +1 -1
  107. package/dist/SS12000/from/calendar-events.js.map +1 -1
  108. package/dist/SS12000/from/duties.js.map +1 -1
  109. package/dist/SS12000/from/groups.js.map +1 -1
  110. package/dist/SS12000/from/index.js.map +1 -1
  111. package/dist/SS12000/from/persons.js.map +1 -1
  112. package/dist/SS12000/from/resources.js.map +1 -1
  113. package/dist/SS12000/from/rooms.js.map +1 -1
  114. package/dist/SS12000/from/syllabuses.js.map +1 -1
  115. package/dist/SS12000/index.d.ts +12567 -9
  116. package/dist/SS12000/to/activities.js.map +1 -1
  117. package/dist/SS12000/to/calendar-events.js.map +1 -1
  118. package/dist/SS12000/to/common.js.map +1 -1
  119. package/dist/SS12000/to/duties.js.map +1 -1
  120. package/dist/SS12000/to/groups.js.map +1 -1
  121. package/dist/SS12000/to/index.d.ts +17 -16
  122. package/dist/SS12000/to/persons.js.map +1 -1
  123. package/dist/SS12000/to/resources.js.map +1 -1
  124. package/dist/SS12000/to/rooms.js.map +1 -1
  125. package/dist/SS12000/to/syllabuses.js.map +1 -1
  126. package/dist/SchoolSoft/api/from/index.js.map +1 -1
  127. package/dist/SchoolSoft/api/from/schedules.js +8 -12
  128. package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
  129. package/dist/SchoolSoft/api/index.d.ts +444 -9
  130. package/dist/SchoolSoft/file/from/index.js.map +1 -1
  131. package/dist/SchoolSoft/file/from/schedules.js +83 -87
  132. package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
  133. package/dist/SchoolSoft/file/index.d.ts +2 -1
  134. package/dist/SchoolSoft/file/to/index.d.ts +3 -2
  135. package/dist/SchoolSoft/file/to/schedules.js +1 -2
  136. package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
  137. package/dist/SchoolSoft/index.d.ts +2 -1
  138. package/dist/Schoolity/txt/to/index.d.ts +2 -1
  139. package/dist/Schoolity/txt/to/schedules.js +5 -12
  140. package/dist/Schoolity/txt/to/schedules.js.map +1 -1
  141. package/dist/Skola24/mdb/from/course-and-events.js +3 -5
  142. package/dist/Skola24/mdb/from/course-and-events.js.map +1 -1
  143. package/dist/Skola24/mdb/from/groups.js.map +1 -1
  144. package/dist/Skola24/mdb/from/index.js.map +1 -1
  145. package/dist/Skola24/mdb/from/locations.js.map +1 -1
  146. package/dist/Skola24/mdb/from/schedule.d.ts +6 -5
  147. package/dist/Skola24/mdb/from/schedule.js.map +1 -1
  148. package/dist/Skola24/mdb/from/teachers.js.map +1 -1
  149. package/dist/Skola24/txt/from/calendar-exceptions.js +1 -2
  150. package/dist/Skola24/txt/from/calendar-exceptions.js.map +1 -1
  151. package/dist/Skola24/txt/from/division.js.map +1 -1
  152. package/dist/Skola24/txt/from/index.js.map +1 -1
  153. package/dist/Skola24/txt/from/period.js +31 -34
  154. package/dist/Skola24/txt/from/period.js.map +1 -1
  155. package/dist/Skola24/txt/from/schedules.d.ts +9 -8
  156. package/dist/Skola24/txt/from/schedules.js +10 -12
  157. package/dist/Skola24/txt/from/schedules.js.map +1 -1
  158. package/dist/Skola24/txt/from/util.js.map +1 -1
  159. package/dist/Skola24/txt/index.d.ts +2 -1
  160. package/dist/Skola24/txt/to/index.d.ts +2 -1
  161. package/dist/Skola24/txt/to/schedules.js +5 -12
  162. package/dist/Skola24/txt/to/schedules.js.map +1 -1
  163. package/dist/common/constants.js.map +1 -1
  164. package/dist/common/functions.js +46 -10
  165. package/dist/common/functions.js.map +1 -1
  166. package/dist/common/get-date.js.map +1 -1
  167. package/dist/common/make-chainable/index.js.map +1 -1
  168. package/dist/common/types.d.ts +3 -6
  169. package/dist/core/from/configurations.js.map +1 -1
  170. package/dist/core/from/courses.js.map +1 -1
  171. package/dist/core/from/events.js +1 -1
  172. package/dist/core/from/events.js.map +1 -1
  173. package/dist/core/from/exceptions.js.map +1 -1
  174. package/dist/core/from/groups.js.map +1 -1
  175. package/dist/core/from/index.js +9 -6
  176. package/dist/core/from/index.js.map +1 -1
  177. package/dist/core/from/locations.js.map +1 -1
  178. package/dist/core/from/locked-times.js.map +1 -1
  179. package/dist/core/from/overlap-groups.js.map +1 -1
  180. package/dist/core/from/periods.js.map +1 -1
  181. package/dist/core/from/persons.js.map +1 -1
  182. package/dist/core/from/root-intervals.js.map +1 -1
  183. package/dist/core/from/schedules.js.map +1 -1
  184. package/dist/core/from/syllabuses.js.map +1 -1
  185. package/dist/core/from/teachers.js.map +1 -1
  186. package/dist/core/index.d.ts +24 -1
  187. package/dist/core/index.js +4 -0
  188. package/dist/core/index.js.map +1 -1
  189. package/dist/core/interfaces/index.d.ts +23 -0
  190. package/dist/core/interfaces/index.js +6 -0
  191. package/dist/core/interfaces/other/companies.d.ts +132 -0
  192. package/dist/core/interfaces/other/companies.js +9 -0
  193. package/dist/core/interfaces/other/companies.js.map +1 -0
  194. package/dist/core/interfaces/other/etc.d.ts +19 -0
  195. package/dist/core/interfaces/other/index.d.ts +6 -0
  196. package/dist/core/interfaces/other/integrations.d.ts +17 -0
  197. package/dist/core/interfaces/other/operations.d.ts +36 -0
  198. package/dist/core/interfaces/other/policies.d.ts +31 -0
  199. package/dist/core/interfaces/other/sync-logs.d.ts +21 -0
  200. package/dist/core/interfaces/other/users.d.ts +35 -0
  201. package/dist/core/interfaces/vertices/companies.d.ts +8 -0
  202. package/dist/core/interfaces/vertices/configurations.d.ts +58 -0
  203. package/dist/core/interfaces/vertices/courses.d.ts +68 -0
  204. package/dist/core/{types → interfaces/vertices}/division-settings.d.ts +31 -29
  205. package/dist/core/interfaces/vertices/divisions.d.ts +31 -0
  206. package/dist/core/interfaces/vertices/events.d.ts +100 -0
  207. package/dist/core/interfaces/vertices/exceptions.d.ts +74 -0
  208. package/dist/core/interfaces/vertices/generations.d.ts +23 -0
  209. package/dist/core/interfaces/vertices/groups.d.ts +53 -0
  210. package/dist/core/interfaces/vertices/index.d.ts +209 -0
  211. package/dist/core/interfaces/vertices/index.js +3 -0
  212. package/dist/core/interfaces/vertices/locations.d.ts +22 -0
  213. package/dist/core/interfaces/vertices/locked-times.d.ts +37 -0
  214. package/dist/core/interfaces/vertices/overlap-groups.d.ts +17 -0
  215. package/dist/core/interfaces/vertices/periods.d.ts +15 -0
  216. package/dist/core/interfaces/vertices/persons.d.ts +32 -0
  217. package/dist/core/interfaces/vertices/properties/belongs-to.d.ts +11 -0
  218. package/dist/core/interfaces/vertices/properties/coalesced.d.ts +8 -0
  219. package/dist/core/interfaces/vertices/properties/days.d.ts +9 -0
  220. package/dist/core/interfaces/vertices/properties/index.d.ts +15 -0
  221. package/dist/core/interfaces/vertices/properties/intervals.d.ts +10 -0
  222. package/dist/core/{types/common → interfaces/vertices/properties}/maximum-schedule-span.d.ts +1 -1
  223. package/dist/core/interfaces/vertices/properties/min-break-length.d.ts +5 -0
  224. package/dist/core/{types/common/planned-schedule-duration.d.ts → interfaces/vertices/properties/planned-scheduled-duration.d.ts} +2 -2
  225. package/dist/core/interfaces/vertices/properties/species.d.ts +9 -0
  226. package/dist/core/interfaces/vertices/properties/tags.d.ts +9 -0
  227. package/dist/core/interfaces/vertices/properties/week.d.ts +22 -0
  228. package/dist/core/interfaces/vertices/properties/week.js +6 -0
  229. package/dist/core/interfaces/vertices/properties/week.js.map +1 -0
  230. package/dist/core/interfaces/vertices/root-intervals.d.ts +14 -0
  231. package/dist/core/interfaces/vertices/syllabuses.d.ts +18 -0
  232. package/dist/core/interfaces/vertices/teachers.d.ts +43 -0
  233. package/dist/core/interfaces/vertices/users.d.ts +8 -0
  234. package/dist/core/interfaces/vertices/util/common.d.ts +28 -0
  235. package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.ts +31 -0
  236. package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.ts +51 -0
  237. package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.ts +64 -0
  238. package/dist/core/interfaces/vertices/util/edges.d.ts +105 -0
  239. package/dist/core/interfaces/vertices/util/index.d.ts +5 -0
  240. package/dist/core/interfaces/vertices/util/keys-of.d.ts +27 -0
  241. package/dist/core/interfaces/vertices/util/serialized-vertex-export.d.ts +12 -0
  242. package/dist/core/interfaces/vertices/util/util.d.ts +76 -0
  243. package/dist/core/interfaces/vertices/util/vertex-query/index.d.ts +44 -0
  244. package/dist/core/interfaces/vertices/util/vertex-query/util.d.ts +13 -0
  245. package/dist/core/interfaces/vertices/util/vertex.d.ts +70 -0
  246. package/dist/core/interfaces/vertices/vertex-query.d.ts +102 -0
  247. package/dist/core/interfaces/vertices/vertex-query.js +94 -0
  248. package/dist/core/interfaces/vertices/vertex-query.js.map +1 -0
  249. package/dist/core/to/configurations.js +2 -3
  250. package/dist/core/to/configurations.js.map +1 -1
  251. package/dist/core/to/courses.js +2 -3
  252. package/dist/core/to/courses.js.map +1 -1
  253. package/dist/core/to/division.js.map +1 -1
  254. package/dist/core/to/events.js +2 -3
  255. package/dist/core/to/events.js.map +1 -1
  256. package/dist/core/to/exceptions.js +4 -4
  257. package/dist/core/to/exceptions.js.map +1 -1
  258. package/dist/core/to/groups.js +2 -3
  259. package/dist/core/to/groups.js.map +1 -1
  260. package/dist/core/to/locations.js +2 -3
  261. package/dist/core/to/locations.js.map +1 -1
  262. package/dist/core/to/locked-times.js +2 -3
  263. package/dist/core/to/locked-times.js.map +1 -1
  264. package/dist/core/to/overlap-groups.js +2 -3
  265. package/dist/core/to/overlap-groups.js.map +1 -1
  266. package/dist/core/to/periods.js +2 -3
  267. package/dist/core/to/periods.js.map +1 -1
  268. package/dist/core/to/persons.js +3 -9
  269. package/dist/core/to/persons.js.map +1 -1
  270. package/dist/core/to/root-intervals.js +2 -3
  271. package/dist/core/to/root-intervals.js.map +1 -1
  272. package/dist/core/to/schedules.d.ts +17 -18
  273. package/dist/core/to/schedules.js.map +1 -1
  274. package/dist/core/to/settings.js +2 -3
  275. package/dist/core/to/settings.js.map +1 -1
  276. package/dist/core/to/syllabuses.js +2 -3
  277. package/dist/core/to/syllabuses.js.map +1 -1
  278. package/dist/core/to/teachers.js +4 -4
  279. package/dist/core/to/teachers.js.map +1 -1
  280. package/dist/core/to/util.d.ts +4 -8
  281. package/dist/core/to/util.js +7 -5
  282. package/dist/core/to/util.js.map +1 -1
  283. package/dist/core/types/common/index.d.ts +4 -41
  284. package/dist/core/types/index.d.ts +108 -112
  285. package/dist/core/util.js +4 -5
  286. package/dist/core/util.js.map +1 -1
  287. package/dist/identify/constants/index.d.ts +1 -1
  288. package/dist/identify/constants/index.js +2 -1
  289. package/dist/identify/constants/index.js.map +1 -1
  290. package/dist/identify/index.js +9 -3
  291. package/dist/identify/index.js.map +1 -1
  292. package/dist/index.d.ts +23 -1
  293. package/dist/index.js +4 -1
  294. package/dist/sdui/from/classes.js.map +1 -1
  295. package/dist/sdui/from/courses.js.map +1 -1
  296. package/dist/sdui/from/holidays.js.map +1 -1
  297. package/dist/sdui/from/index.js.map +1 -1
  298. package/dist/sdui/from/lessons.js +4 -0
  299. package/dist/sdui/from/lessons.js.map +1 -1
  300. package/dist/sdui/from/rooms.js.map +1 -1
  301. package/dist/sdui/from/schedules.d.ts +10 -8
  302. package/dist/sdui/from/schedules.js.map +1 -1
  303. package/dist/sdui/from/school-years.js +0 -1
  304. package/dist/sdui/from/school-years.js.map +1 -1
  305. package/dist/sdui/from/substitution-plans.js.map +1 -1
  306. package/dist/sdui/from/teachers.js.map +1 -1
  307. package/dist/sdui/index.d.ts +1 -1
  308. package/dist/sdui/to/classes.js.map +1 -1
  309. package/dist/sdui/to/courses.js.map +1 -1
  310. package/dist/sdui/to/holidays.js.map +1 -1
  311. package/dist/sdui/to/hours.js.map +1 -1
  312. package/dist/sdui/to/index.d.ts +12 -10
  313. package/dist/sdui/to/lessons.js.map +1 -1
  314. package/dist/sdui/to/rooms.js.map +1 -1
  315. package/dist/sdui/to/schedules.js.map +1 -1
  316. package/dist/sdui/to/school-years.js.map +1 -1
  317. package/dist/sdui/to/substitution-plans.js +3 -6
  318. package/dist/sdui/to/substitution-plans.js.map +1 -1
  319. package/dist/sdui/to/teachers.js.map +1 -1
  320. package/dist/vKlass/from/index.js.map +1 -1
  321. package/dist/vKlass/from/schedule.d.ts +4 -3
  322. package/dist/vKlass/from/schedule.js +2 -2
  323. package/dist/vKlass/from/schedule.js.map +1 -1
  324. package/dist/vKlass/to/schedules.d.ts +4 -4
  325. package/dist/vKlass/to/schedules.js +6 -17
  326. package/dist/vKlass/to/schedules.js.map +1 -1
  327. package/package.json +24 -22
  328. package/dist/core/types/areas.d.ts +0 -10
  329. package/dist/core/types/common/break-lengths.d.ts +0 -5
  330. package/dist/core/types/common/days.d.ts +0 -8
  331. package/dist/core/types/common/intervals.d.ts +0 -20
  332. package/dist/core/types/common/tag.d.ts +0 -9
  333. package/dist/core/types/configurations.d.ts +0 -31
  334. package/dist/core/types/courses.d.ts +0 -60
  335. package/dist/core/types/divisions.d.ts +0 -24
  336. package/dist/core/types/events.d.ts +0 -56
  337. package/dist/core/types/exceptions.d.ts +0 -35
  338. package/dist/core/types/groups.d.ts +0 -44
  339. package/dist/core/types/locations.d.ts +0 -27
  340. package/dist/core/types/locked-times.d.ts +0 -33
  341. package/dist/core/types/overlap-groups.d.ts +0 -14
  342. package/dist/core/types/periods.d.ts +0 -14
  343. package/dist/core/types/persons.d.ts +0 -38
  344. package/dist/core/types/root-intervals.d.ts +0 -13
  345. package/dist/core/types/schedules.d.ts +0 -44
  346. package/dist/core/types/syllabus.d.ts +0 -18
  347. package/dist/core/types/teachers.d.ts +0 -44
  348. package/dist/core/vertex-mapping.d.ts +0 -69
@@ -1,52 +1,289 @@
1
- import { Types as Types$1 } from "../../core/types/index.js";
1
+ import { IDType, PrivateIDType } from "../../core/interfaces/vertices/util/vertex.js";
2
+ import { Day } from "../../core/interfaces/vertices/properties/days.js";
3
+ import { Interval } from "../../core/interfaces/vertices/properties/intervals.js";
4
+ import { Tag } from "../../core/interfaces/vertices/properties/tags.js";
5
+ import { MaximumScheduleSpan } from "../../core/interfaces/vertices/properties/maximum-schedule-span.js";
6
+ import { PlannedScheduledDuration } from "../../core/interfaces/vertices/properties/planned-scheduled-duration.js";
7
+ import { MinBreakLength } from "../../core/interfaces/vertices/properties/min-break-length.js";
2
8
  import { Types } from "./types/index.js";
9
+ import "../../index.js";
10
+ import * as moment197 from "moment";
3
11
 
4
12
  //#region src/Excel/v2/index.d.ts
5
13
  declare class Map {
6
14
  static from: {
7
15
  schedules: (source: Types.Source) => {
8
16
  settings: {
9
- discretization: number;
10
17
  numDays: number;
11
18
  dayStart: string;
12
19
  dayEnd: string;
20
+ discretization: number;
13
21
  };
14
- locations: (Types$1.serialized.location & {
15
- id: string;
16
- } & {
22
+ locations: (Omit<{
23
+ id: IDType;
24
+ _id: PrivateIDType;
25
+ ids?: string | undefined;
26
+ is?: "location" | undefined;
27
+ displayName?: string | undefined;
28
+ createdAt?: string | undefined;
29
+ updatedAt?: string | undefined;
30
+ lastModifiedBy?: string | undefined;
31
+ tags?: Tag[] | undefined;
32
+ minBreakLength?: number | undefined;
33
+ days?: Day[] | undefined;
34
+ maximumCapacity?: number | undefined;
35
+ belongsTo?: string | undefined;
36
+ lockedTimes?: string[] | undefined;
37
+ lunch?: string[] | undefined;
38
+ exceptions?: string[] | undefined;
39
+ }, "_id"> & {
17
40
  __raw: Types.Location;
18
41
  })[];
19
- teachers: (Types$1.serialized.teacher & {
20
- id: string;
21
- } & {
42
+ teachers: (Omit<{
43
+ id: IDType;
44
+ _id: PrivateIDType;
45
+ ids?: string | undefined;
46
+ is?: "teacher" | undefined;
47
+ displayName?: string | undefined;
48
+ createdAt?: string | undefined;
49
+ updatedAt?: string | undefined;
50
+ lastModifiedBy?: string | undefined;
51
+ tags?: Tag[] | undefined;
52
+ minBreakLength?: number | undefined;
53
+ maxNumWorkingHours?: number | false | undefined;
54
+ maxNumDailyWorkingHours?: number | number[] | false | undefined;
55
+ maximumScheduleSpan?: MaximumScheduleSpan | undefined;
56
+ forbidOverlappingEvents?: boolean | undefined;
57
+ disableDayLengthPunishment?: boolean | undefined;
58
+ weight?: number | undefined;
59
+ intervals?: Interval[] | undefined;
60
+ days?: Day[] | undefined;
61
+ signature?: string | undefined;
62
+ plannedScheduledDuration?: PlannedScheduledDuration | undefined;
63
+ belongsTo?: string | undefined;
64
+ rootInterval?: string | undefined;
65
+ lockedTimes?: string[] | undefined;
66
+ lunch?: string[] | undefined;
67
+ complementaryTimes?: string[] | undefined;
68
+ exceptions?: string[] | undefined;
69
+ person?: string | undefined;
70
+ }, "_id"> & {
22
71
  __raw: Types.Teacher;
23
72
  })[];
24
- persons: (Types$1.serialized.person & {
25
- id: string;
26
- } & {
73
+ persons: (Omit<{
74
+ id: IDType;
75
+ _id: PrivateIDType;
76
+ ids?: string | undefined;
77
+ is?: "person" | undefined;
78
+ displayName?: string | undefined;
79
+ createdAt?: string | undefined;
80
+ updatedAt?: string | undefined;
81
+ lastModifiedBy?: string | undefined;
82
+ type?: "Student" | "Teacher" | "Other" | undefined;
83
+ tags?: Tag[] | undefined;
84
+ lastName?: string | undefined;
85
+ firstName?: string | undefined;
86
+ birthDate?: Date | undefined;
87
+ sex?: "Man" | "Woman" | undefined;
88
+ SSN?: {
89
+ value: string;
90
+ nationality?: string;
91
+ } | undefined;
92
+ emails?: {
93
+ value: string;
94
+ type?: string;
95
+ }[] | undefined;
96
+ phoneNumbers?: {
97
+ value: string;
98
+ type: string;
99
+ }[] | undefined;
100
+ belongsTo?: string | undefined;
101
+ group?: string | undefined;
102
+ }, "_id"> & {
27
103
  __raw: Types.Person;
28
104
  })[];
29
- groups: (Types$1.serialized.group & {
30
- id: string;
31
- } & {
105
+ groups: (Omit<{
106
+ id: IDType;
107
+ _id: PrivateIDType;
108
+ ids?: string | undefined;
109
+ is?: "group" | undefined;
110
+ displayName?: string | undefined;
111
+ createdAt?: string | undefined;
112
+ updatedAt?: string | undefined;
113
+ lastModifiedBy?: string | undefined;
114
+ tags?: Tag[] | undefined;
115
+ minBreakLength?: number | undefined;
116
+ maxNumWorkingHours?: number | false | undefined;
117
+ maxNumDailyWorkingHours?: number | number[] | false | undefined;
118
+ maximumScheduleSpan?: MaximumScheduleSpan | undefined;
119
+ forbidOverlappingEvents?: boolean | undefined;
120
+ disableDayLengthPunishment?: boolean | undefined;
121
+ weight?: number | undefined;
122
+ species?: "class" | undefined;
123
+ intervals?: Interval[] | undefined;
124
+ days?: Day[] | undefined;
125
+ belongsTo?: string | undefined;
126
+ parentGroups?: string[] | undefined;
127
+ subGroups?: string[] | undefined;
128
+ lockedTimes?: string[] | undefined;
129
+ lunch?: string[] | undefined;
130
+ exceptions?: string[] | undefined;
131
+ members?: string[] | undefined;
132
+ rootInterval?: string | undefined;
133
+ derivedParentGroups?: {
134
+ implicit?: boolean | undefined;
135
+ explicit?: boolean | undefined;
136
+ group: string;
137
+ }[] | undefined;
138
+ }, "_id"> & {
32
139
  __raw: Types.Group;
33
140
  })[];
34
- courses: (Types$1.serialized.course & {
35
- id: string;
36
- } & {
141
+ courses: (Omit<{
142
+ id: IDType;
143
+ _id: PrivateIDType;
144
+ ids?: string | undefined;
145
+ is?: "course" | undefined;
146
+ displayName?: string | undefined;
147
+ createdAt?: string | undefined;
148
+ updatedAt?: string | undefined;
149
+ lastModifiedBy?: string | undefined;
150
+ type?: string | undefined;
151
+ tags?: Tag[] | undefined;
152
+ minBreakLength?: MinBreakLength | undefined;
153
+ weight?: number | undefined;
154
+ intervals?: Interval[] | undefined;
155
+ days?: Day[] | undefined;
156
+ subject?: string | undefined;
157
+ color?: string | undefined;
158
+ eventDurationVariance?: number | undefined;
159
+ centerOfAttraction?: string | null | undefined;
160
+ density?: number | undefined;
161
+ plannedDuration?: string | undefined;
162
+ minutesPerWeek?: number | undefined;
163
+ expectedTotalHours?: number | undefined;
164
+ belongsTo?: string | undefined;
165
+ period?: string | undefined;
166
+ overlapGroup?: string | undefined;
167
+ syllabus?: string | undefined;
168
+ lockedTimes?: string[] | undefined;
169
+ exceptions?: string[] | undefined;
170
+ events?: string[] | undefined;
171
+ participants?: {
172
+ groupIndex?: number | undefined;
173
+ to: string;
174
+ }[] | undefined;
175
+ teachers?: {
176
+ groupIndex?: number | undefined;
177
+ to: string;
178
+ }[] | undefined;
179
+ groups?: {
180
+ groupIndex?: number | undefined;
181
+ to: string;
182
+ exclude?: string[] | undefined;
183
+ }[] | undefined;
184
+ locations?: {
185
+ groupIndex?: number | undefined;
186
+ rank?: number | undefined;
187
+ locations: [string];
188
+ }[] | undefined;
189
+ }, "_id"> & {
37
190
  __raw: Types.Course;
38
191
  })[];
39
- events: (Types$1.serialized.event & {
40
- id: string;
41
- } & {
192
+ events: (Omit<{
193
+ id: IDType;
194
+ _id: PrivateIDType;
195
+ ids?: string | undefined;
196
+ is?: "event" | undefined;
197
+ displayName?: string | undefined;
198
+ createdAt?: string | undefined;
199
+ updatedAt?: string | undefined;
200
+ lastModifiedBy?: string | undefined;
201
+ start?: (moment197.Moment | string) | undefined;
202
+ end?: (moment197.Moment | string) | undefined;
203
+ potentialCenter?: string | undefined;
204
+ type?: string | undefined;
205
+ tags?: Tag[] | undefined;
206
+ minBreakLength?: (MinBreakLength | null) | undefined;
207
+ weight?: number | undefined;
208
+ intervals?: Interval[] | null | undefined;
209
+ days?: Day[] | null | undefined;
210
+ color?: string | null | undefined;
211
+ centerOfAttraction?: string | null | undefined;
212
+ density?: number | undefined;
213
+ fixedStart?: boolean | undefined;
214
+ visible?: boolean | undefined;
215
+ parked?: boolean | undefined;
216
+ preferredDuration: number;
217
+ durationVariance?: number | undefined;
218
+ duration?: number | undefined;
219
+ weeks?: number[] | undefined;
220
+ belongsTo?: string | undefined;
221
+ course?: string | undefined;
222
+ period?: string | undefined;
223
+ overlapSpecies?: string | undefined;
224
+ lockedTimes?: string[] | undefined;
225
+ exceptions?: string[] | undefined;
226
+ inLocations?: (string | null)[] | undefined;
227
+ participants?: {
228
+ groupIndex?: number | undefined;
229
+ to: string;
230
+ }[] | undefined;
231
+ teachers?: {
232
+ groupIndex?: number | undefined;
233
+ to: string;
234
+ }[] | undefined;
235
+ groups?: {
236
+ groupIndex?: number | undefined;
237
+ to: string;
238
+ exclude?: string[] | undefined;
239
+ }[] | undefined;
240
+ locations?: {
241
+ groupIndex?: number | undefined;
242
+ rank?: number | undefined;
243
+ locations: [string];
244
+ }[] | undefined;
245
+ }, "_id"> & {
42
246
  __raw?: Types.Course;
43
247
  })[];
44
- overlapGroups: (Types$1.serialized.overlapGroup & {
45
- id: string;
46
- })[];
47
- syllabuses: (Types$1.serialized.syllabus & {
48
- id: string;
49
- } & {
248
+ overlapGroups: Omit<{
249
+ id: IDType;
250
+ _id: PrivateIDType;
251
+ ids?: string | undefined;
252
+ is?: "overlapGroup" | undefined;
253
+ displayName?: string | undefined;
254
+ createdAt?: string | undefined;
255
+ updatedAt?: string | undefined;
256
+ lastModifiedBy?: string | undefined;
257
+ belongsTo?: string | undefined;
258
+ coalesced?: {
259
+ to: string;
260
+ toModel: "courses";
261
+ }[] | undefined;
262
+ species?: {
263
+ id: string;
264
+ to: string;
265
+ toModel: "events" | "courseevents";
266
+ }[] | undefined;
267
+ }, "_id">[];
268
+ syllabuses: (Omit<{
269
+ id: IDType;
270
+ _id: PrivateIDType;
271
+ ids?: string | undefined;
272
+ is?: "syllabus" | undefined;
273
+ displayName?: string | undefined;
274
+ createdAt?: string | undefined;
275
+ updatedAt?: string | undefined;
276
+ lastModifiedBy?: string | undefined;
277
+ schoolType: string;
278
+ subjectCode?: string | undefined;
279
+ subjectName: string;
280
+ subjectDesignation?: string | undefined;
281
+ courseCode?: string | undefined;
282
+ courseName?: string | undefined;
283
+ points?: number | undefined;
284
+ official: boolean;
285
+ belongsTo?: string | undefined;
286
+ }, "_id"> & {
50
287
  __raw?: Types.Syllabus;
51
288
  })[];
52
289
  meta: {
@@ -1 +1 @@
1
- {"version":3,"file":"courses.js","names":[],"sources":["../../../src/IdunSoft/from/courses.ts"],"sourcesContent":["import type { Types as IdunSoftTypes } from '../types';\nimport type { OutTypes } from './schedules';\n\nexport default (courses: IdunSoftTypes.course[]): OutTypes.course[] => {\n return courses\n .reduce<OutTypes.course[]>((acc, course, index) => {\n const ids = course['Ämne'];\n if (!ids)\n throw new Error('A course does not have a unique key');\n\n if (acc.map(x => x.ids).includes(ids))\n throw new Error(`A course ID \"${ids}\" exists multiple times at indices ${ index } and ${ acc.findIndex(x => x.ids == ids) }`);\n\n return acc.concat({\n ids: ids,\n subject: course['Betygskod']\n });\n }, []);\n};"],"mappings":";AAGA,uBAAgB,YAAuD;AACrE,QAAO,QACJ,QAA2B,KAAK,QAAQ,UAAU;EACjD,MAAM,MAAM,OAAO;AACnB,MAAI,CAAC,IACH,OAAM,IAAI,MAAM;AAElB,MAAI,IAAI,KAAI,MAAK,EAAE,KAAK,SAAS,KAC/B,OAAM,IAAI,MAAM,gBAAgB,IAAI,qCAAsC,MAAO,OAAQ,IAAI,WAAU,MAAK,EAAE,OAAO;AAEvH,SAAO,IAAI,OAAO;GACP;GACT,SAAS,OAAO;;IAEjB"}
1
+ {"version":3,"file":"courses.js","names":[],"sources":["../../../src/IdunSoft/from/courses.ts"],"sourcesContent":["import type { Types as IdunSoftTypes } from '../types';\nimport type { OutTypes } from './schedules';\n\nexport default (courses: IdunSoftTypes.course[]): OutTypes.course[] => {\n return courses\n .reduce<OutTypes.course[]>((acc, course, index) => {\n const ids = course['Ämne'];\n if (!ids)\n throw new Error('A course does not have a unique key');\n\n if (acc.map(x => x.ids).includes(ids))\n throw new Error(`A course ID \"${ids}\" exists multiple times at indices ${ index } and ${ acc.findIndex(x => x.ids == ids) }`);\n\n return acc.concat({\n ids: ids,\n subject: course['Betygskod']\n });\n }, []);\n};"],"mappings":";AAGA,uBAAgB,YAAuD;AACrE,QAAO,QACJ,QAA2B,KAAK,QAAQ,UAAU;EACjD,MAAM,MAAM,OAAO;AACnB,MAAI,CAAC,IACH,OAAM,IAAI,MAAM,sCAAsC;AAExD,MAAI,IAAI,KAAI,MAAK,EAAE,IAAI,CAAC,SAAS,IAAI,CACnC,OAAM,IAAI,MAAM,gBAAgB,IAAI,qCAAsC,MAAO,OAAQ,IAAI,WAAU,MAAK,EAAE,OAAO,IAAI,GAAI;AAE/H,SAAO,IAAI,OAAO;GACP;GACT,SAAS,OAAO;GACjB,CAAC;IACD,EAAE,CAAC"}
@@ -29,10 +29,9 @@ var events_default = (events) => {
29
29
  const hours = Math.floor(event.Starttid * 24);
30
30
  const minutes = (event.Starttid * 24 - hours) * 60;
31
31
  const start$1 = Constants.FIRST_DAY.clone().add(day, "days").add(hours, "hours").add(minutes, "minutes");
32
- const end$1 = start$1.clone().add(duration, "minutes");
33
32
  return {
34
33
  start: start$1,
35
- end: end$1
34
+ end: start$1.clone().add(duration, "minutes")
36
35
  };
37
36
  })();
38
37
  const doc = {
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":["start","end","doc: OutTypes.event"],"sources":["../../../src/IdunSoft/from/events.ts"],"sourcesContent":["import { getDayIndex } from '../../core/util';\nimport { Constants } from '../../common/constants';\nimport type { Types as IdunSoftTypes } from '../types';\nimport type { OutTypes } from './schedules';\n\nexport default (events: IdunSoftTypes.fromEvent[]): OutTypes.event[] => {\n return events\n .reduce<OutTypes.event[]>((acc, event, index) => {\n const ids = event['LektionID'];\n if (!ids)\n throw new Error('An event does not have a unique key');\n\n if (acc.some(x => x.ids == ids))\n throw new Error(`An event ID \"${ids}\" exists multiple times at indices ${ index } and ${ acc.findIndex(x => x.ids == ids) }`);\n\n if (!event['Lektionslängd'])\n throw new Error(`An event [${ ids }] does not have a duration`);\n\n const duration = (() => {\n try {\n return parseInt(event['Lektionslängd'].split('min')[0]);\n } catch {\n throw new Error('duration have wrong structure');\n }\n })();\n\n const teachers = event['LärareID'] ? [...new Set(event['LärareID'].split(','))].map(to => ({ to })) : [];\n const groups = event['GruppID' ] ? [event['GruppID'] ].map(to => ({ to })) : [];\n const inLocations = event['RumID' ] ? [event['RumID'] ] : [];\n const locations = inLocations.map(x => ({ locations: [x] as [string] }));\n\n const preferredDuration = parseInt(event.Lektionslängd); // ASSUMED TO BE OF THE FORMAT '40', IS THIS TRUE?\n\n const { start, end } = (() => {\n if (event.Starttid == null || event.VeckodagID == null) return { start: undefined, end: undefined };\n\n const day = getDayIndex(event.VeckodagID);\n const hours = Math.floor(event.Starttid * 24);\n const minutes = (event.Starttid * 24 - hours) * 60;\n\n const start = Constants.FIRST_DAY\n .clone()\n .add(day, 'days')\n .add(hours, 'hours')\n .add(minutes, 'minutes');\n const end = start\n .clone()\n .add(duration, 'minutes');\n\n return { start, end };\n })();\n\n const doc: OutTypes.event = {\n ids: ids,\n course: event['Ämne'],\n preferredDuration,\n duration,\n teachers,\n groups,\n locations,\n inLocations,\n ...start && end && { start, end, parked: false }\n };\n return acc.concat(doc);\n }, []);\n};"],"mappings":";;;;AAKA,sBAAgB,WAAwD;AACtE,QAAO,OACJ,QAA0B,KAAK,OAAO,UAAU;EAC/C,MAAM,MAAM,MAAM;AAClB,MAAI,CAAC,IACH,OAAM,IAAI,MAAM;AAElB,MAAI,IAAI,MAAK,MAAK,EAAE,OAAO,KACzB,OAAM,IAAI,MAAM,gBAAgB,IAAI,qCAAsC,MAAO,OAAQ,IAAI,WAAU,MAAK,EAAE,OAAO;AAEvH,MAAI,CAAC,MAAM,iBACT,OAAM,IAAI,MAAM,aAAc,IAAK;EAErC,MAAM,kBAAkB;AACtB,OAAI;AACF,WAAO,SAAS,MAAM,iBAAiB,MAAM,OAAO;WAC9C;AACN,UAAM,IAAI,MAAM;;;EAIpB,MAAM,WAAc,MAAM,cAAc,CAAC,GAAG,IAAI,IAAI,MAAM,YAAY,MAAM,OAAO,KAAI,QAAO,EAAE,SAAS;EACzG,MAAM,SAAc,MAAM,aAAc,CAAC,MAAM,YAAoC,KAAI,QAAO,EAAE,SAAS;EACzG,MAAM,cAAc,MAAM,WAAc,CAAC,MAAM,YAA0D;EACzG,MAAM,YAAc,YAAY,KAAI,OAAM,EAAE,WAAW,CAAC;EAExD,MAAM,oBAAoB,SAAS,MAAM;EAEzC,MAAM,EAAE,OAAO,eAAe;AAC5B,OAAI,MAAM,YAAY,QAAQ,MAAM,cAAc,KAAM,QAAO;IAAE,OAAO;IAAW,KAAK;;GAExF,MAAM,MAAU,YAAY,MAAM;GAClC,MAAM,QAAU,KAAK,MAAM,MAAM,WAAW;GAC5C,MAAM,WAAW,MAAM,WAAW,KAAK,SAAS;GAEhD,MAAMA,UAAQ,UAAU,UACrB,QACA,IAAI,KAAK,QACT,IAAI,OAAO,SACX,IAAI,SAAS;GAChB,MAAMC,QAAMD,QACT,QACA,IAAI,UAAU;AAEjB,UAAO;IAAE;IAAO;;;EAGlB,MAAME,MAAsB;GAClB;GACR,QAAQ,MAAM;GACd;GACA;GACA;GACA;GACA;GACA;GACA,GAAG,SAAS,OAAO;IAAE;IAAO;IAAK,QAAQ;;;AAE3C,SAAO,IAAI,OAAO;IACjB"}
1
+ {"version":3,"file":"events.js","names":["start","doc: OutTypes.event"],"sources":["../../../src/IdunSoft/from/events.ts"],"sourcesContent":["import { getDayIndex } from '../../core/util';\nimport { Constants } from '../../common/constants';\nimport type { Types as IdunSoftTypes } from '../types';\nimport type { OutTypes } from './schedules';\n\nexport default (events: IdunSoftTypes.fromEvent[]): OutTypes.event[] => {\n return events\n .reduce<OutTypes.event[]>((acc, event, index) => {\n const ids = event['LektionID'];\n if (!ids)\n throw new Error('An event does not have a unique key');\n\n if (acc.some(x => x.ids == ids))\n throw new Error(`An event ID \"${ids}\" exists multiple times at indices ${ index } and ${ acc.findIndex(x => x.ids == ids) }`);\n\n if (!event['Lektionslängd'])\n throw new Error(`An event [${ ids }] does not have a duration`);\n\n const duration = (() => {\n try {\n return parseInt(event['Lektionslängd'].split('min')[0]);\n } catch {\n throw new Error('duration have wrong structure');\n }\n })();\n\n const teachers = event['LärareID'] ? [...new Set(event['LärareID'].split(','))].map(to => ({ to })) : [];\n const groups = event['GruppID' ] ? [event['GruppID'] ].map(to => ({ to })) : [];\n const inLocations = event['RumID' ] ? [event['RumID'] ] : [];\n const locations = inLocations.map(x => ({ locations: [x] as [string] }));\n\n const preferredDuration = parseInt(event.Lektionslängd); // ASSUMED TO BE OF THE FORMAT '40', IS THIS TRUE?\n\n const { start, end } = (() => {\n if (event.Starttid == null || event.VeckodagID == null) return { start: undefined, end: undefined };\n\n const day = getDayIndex(event.VeckodagID);\n const hours = Math.floor(event.Starttid * 24);\n const minutes = (event.Starttid * 24 - hours) * 60;\n\n const start = Constants.FIRST_DAY\n .clone()\n .add(day, 'days')\n .add(hours, 'hours')\n .add(minutes, 'minutes');\n const end = start\n .clone()\n .add(duration, 'minutes');\n\n return { start, end };\n })();\n\n const doc: OutTypes.event = {\n ids: ids,\n course: event['Ämne'],\n preferredDuration,\n duration,\n teachers,\n groups,\n locations,\n inLocations,\n ...start && end && { start, end, parked: false }\n };\n return acc.concat(doc);\n }, []);\n};"],"mappings":";;;;AAKA,sBAAgB,WAAwD;AACtE,QAAO,OACJ,QAA0B,KAAK,OAAO,UAAU;EAC/C,MAAM,MAAM,MAAM;AAClB,MAAI,CAAC,IACH,OAAM,IAAI,MAAM,sCAAsC;AAExD,MAAI,IAAI,MAAK,MAAK,EAAE,OAAO,IAAI,CAC7B,OAAM,IAAI,MAAM,gBAAgB,IAAI,qCAAsC,MAAO,OAAQ,IAAI,WAAU,MAAK,EAAE,OAAO,IAAI,GAAI;AAE/H,MAAI,CAAC,MAAM,iBACT,OAAM,IAAI,MAAM,aAAc,IAAK,4BAA4B;EAEjE,MAAM,kBAAkB;AACtB,OAAI;AACF,WAAO,SAAS,MAAM,iBAAiB,MAAM,MAAM,CAAC,GAAG;WACjD;AACN,UAAM,IAAI,MAAM,gCAAgC;;MAEhD;EAEJ,MAAM,WAAc,MAAM,cAAc,CAAC,GAAG,IAAI,IAAI,MAAM,YAAY,MAAM,IAAI,CAAC,CAAC,CAAC,KAAI,QAAO,EAAE,IAAI,EAAE,GAAG,EAAE;EAC3G,MAAM,SAAc,MAAM,aAAc,CAAC,MAAM,WAAmC,CAAC,KAAI,QAAO,EAAE,IAAI,EAAE,GAAG,EAAE;EAC3G,MAAM,cAAc,MAAM,WAAc,CAAC,MAAM,SAAmC,GAAuB,EAAE;EAC3G,MAAM,YAAc,YAAY,KAAI,OAAM,EAAE,WAAW,CAAC,EAAE,EAAc,EAAE;EAE1E,MAAM,oBAAoB,SAAS,MAAM,cAAc;EAEvD,MAAM,EAAE,OAAO,eAAe;AAC5B,OAAI,MAAM,YAAY,QAAQ,MAAM,cAAc,KAAM,QAAO;IAAE,OAAO;IAAW,KAAK;IAAW;GAEnG,MAAM,MAAU,YAAY,MAAM,WAAW;GAC7C,MAAM,QAAU,KAAK,MAAM,MAAM,WAAW,GAAG;GAC/C,MAAM,WAAW,MAAM,WAAW,KAAK,SAAS;GAEhD,MAAMA,UAAQ,UAAU,UACrB,OAAO,CACP,IAAI,KAAK,OAAO,CAChB,IAAI,OAAO,QAAQ,CACnB,IAAI,SAAS,UAAU;AAK1B,UAAO;IAAE;IAAO,KAJJA,QACT,OAAO,CACP,IAAI,UAAU,UAAU;IAEN;MACnB;EAEJ,MAAMC,MAAsB;GAClB;GACR,QAAQ,MAAM;GACd;GACA;GACA;GACA;GACA;GACA;GACA,GAAG,SAAS,OAAO;IAAE;IAAO;IAAK,QAAQ;IAAO;GACjD;AACD,SAAO,IAAI,OAAO,IAAI;IACrB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","names":[],"sources":["../../../src/IdunSoft/from/groups.ts"],"sourcesContent":["import type { Types as IdunSoftTypes } from '../types';\nimport type { OutTypes } from './schedules';\n\nexport default (groups: IdunSoftTypes.group[]): OutTypes.group[] => {\n return groups\n .reduce<OutTypes.group[]>((acc, group, index) => {\n const ids = group['ID'];\n if (!ids)\n throw new Error('A group does not have a unique key');\n\n if (acc.some(x => x.ids == ids))\n throw new Error(`A group ID \"${ids}\" exist multiple times at indices ${ index } and ${ acc.findIndex(x => x.ids == ids) }`);\n\n return acc.concat({\n ids: ids,\n displayName: group['Klassnamn'],\n species: 'class',\n });\n }, []);\n};"],"mappings":";AAGA,sBAAgB,WAAoD;AAClE,QAAO,OACJ,QAA0B,KAAK,OAAO,UAAU;EAC/C,MAAM,MAAM,MAAM;AAClB,MAAI,CAAC,IACH,OAAM,IAAI,MAAM;AAElB,MAAI,IAAI,MAAK,MAAK,EAAE,OAAO,KACzB,OAAM,IAAI,MAAM,eAAe,IAAI,oCAAqC,MAAO,OAAQ,IAAI,WAAU,MAAK,EAAE,OAAO;AAErH,SAAO,IAAI,OAAO;GACH;GACb,aAAa,MAAM;GACnB,SAAa;;IAEd"}
1
+ {"version":3,"file":"groups.js","names":[],"sources":["../../../src/IdunSoft/from/groups.ts"],"sourcesContent":["import type { Types as IdunSoftTypes } from '../types';\nimport type { OutTypes } from './schedules';\n\nexport default (groups: IdunSoftTypes.group[]): OutTypes.group[] => {\n return groups\n .reduce<OutTypes.group[]>((acc, group, index) => {\n const ids = group['ID'];\n if (!ids)\n throw new Error('A group does not have a unique key');\n\n if (acc.some(x => x.ids == ids))\n throw new Error(`A group ID \"${ids}\" exist multiple times at indices ${ index } and ${ acc.findIndex(x => x.ids == ids) }`);\n\n return acc.concat({\n ids: ids,\n displayName: group['Klassnamn'],\n species: 'class',\n });\n }, []);\n};"],"mappings":";AAGA,sBAAgB,WAAoD;AAClE,QAAO,OACJ,QAA0B,KAAK,OAAO,UAAU;EAC/C,MAAM,MAAM,MAAM;AAClB,MAAI,CAAC,IACH,OAAM,IAAI,MAAM,qCAAqC;AAEvD,MAAI,IAAI,MAAK,MAAK,EAAE,OAAO,IAAI,CAC7B,OAAM,IAAI,MAAM,eAAe,IAAI,oCAAqC,MAAO,OAAQ,IAAI,WAAU,MAAK,EAAE,OAAO,IAAI,GAAI;AAE7H,SAAO,IAAI,OAAO;GACH;GACb,aAAa,MAAM;GACnB,SAAa;GACd,CAAC;IACD,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/IdunSoft/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../common/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
1
+ {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/IdunSoft/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../common/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA,mBACZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"locations.js","names":[],"sources":["../../../src/IdunSoft/from/locations.ts"],"sourcesContent":["import type { Types as IdunSoftTypes } from '../types';\nimport type { OutTypes } from './schedules';\n\nexport default (locations: IdunSoftTypes.location[]): OutTypes.location[] => {\n return locations\n .reduce<OutTypes.location[]>((acc, location, index) => {\n const ids = location['ID'];\n if (!ids)\n throw new Error('A location does not have a unique key');\n\n if (acc.some(x => x.ids == ids))\n throw new Error(`A location ID \"${ids}\" exists multiple times at indices ${ index } and ${ acc.findIndex(x => x.ids == ids) }`);\n\n return acc.concat({\n ids: ids,\n displayName: location['Namn']\n });\n }, []);\n};"],"mappings":";AAGA,yBAAgB,cAA6D;AAC3E,QAAO,UACJ,QAA6B,KAAK,UAAU,UAAU;EACrD,MAAM,MAAM,SAAS;AACrB,MAAI,CAAC,IACH,OAAM,IAAI,MAAM;AAElB,MAAI,IAAI,MAAK,MAAK,EAAE,OAAO,KACzB,OAAM,IAAI,MAAM,kBAAkB,IAAI,qCAAsC,MAAO,OAAQ,IAAI,WAAU,MAAK,EAAE,OAAO;AAEzH,SAAO,IAAI,OAAO;GACH;GACb,aAAa,SAAS;;IAEvB"}
1
+ {"version":3,"file":"locations.js","names":[],"sources":["../../../src/IdunSoft/from/locations.ts"],"sourcesContent":["import type { Types as IdunSoftTypes } from '../types';\nimport type { OutTypes } from './schedules';\n\nexport default (locations: IdunSoftTypes.location[]): OutTypes.location[] => {\n return locations\n .reduce<OutTypes.location[]>((acc, location, index) => {\n const ids = location['ID'];\n if (!ids)\n throw new Error('A location does not have a unique key');\n\n if (acc.some(x => x.ids == ids))\n throw new Error(`A location ID \"${ids}\" exists multiple times at indices ${ index } and ${ acc.findIndex(x => x.ids == ids) }`);\n\n return acc.concat({\n ids: ids,\n displayName: location['Namn']\n });\n }, []);\n};"],"mappings":";AAGA,yBAAgB,cAA6D;AAC3E,QAAO,UACJ,QAA6B,KAAK,UAAU,UAAU;EACrD,MAAM,MAAM,SAAS;AACrB,MAAI,CAAC,IACH,OAAM,IAAI,MAAM,wCAAwC;AAE1D,MAAI,IAAI,MAAK,MAAK,EAAE,OAAO,IAAI,CAC7B,OAAM,IAAI,MAAM,kBAAkB,IAAI,qCAAsC,MAAO,OAAQ,IAAI,WAAU,MAAK,EAAE,OAAO,IAAI,GAAI;AAEjI,SAAO,IAAI,OAAO;GACH;GACb,aAAa,SAAS;GACvB,CAAC;IACD,EAAE,CAAC"}
@@ -1,14 +1,15 @@
1
1
  import { InternalIdKey } from "../../core/types/common/index.js";
2
2
  import { Types } from "../../core/types/index.js";
3
+ import "../../core/index.js";
3
4
  import { Types as Types$1 } from "../types/index.js";
4
5
 
5
6
  //#region src/IdunSoft/from/schedules.d.ts
6
7
  declare namespace OutTypes {
7
- type group = Omit<Types.serialized.group, InternalIdKey>;
8
- type teacher = Omit<Types.serialized.teacher, InternalIdKey>;
9
- type location = Omit<Types.serialized.location, InternalIdKey>;
10
- type course = Omit<Types.serialized.course, InternalIdKey>;
11
- type event = Omit<Types.serialized.event, InternalIdKey>;
8
+ type group = Omit<Types.Serialized.Group, InternalIdKey>;
9
+ type teacher = Omit<Types.Serialized.Teacher, InternalIdKey>;
10
+ type location = Omit<Types.Serialized.Location, InternalIdKey>;
11
+ type course = Omit<Types.Serialized.Course, InternalIdKey>;
12
+ type event = Omit<Types.Serialized.Event, InternalIdKey>;
12
13
  }
13
14
  type Out = {
14
15
  groups: OutTypes.group[];
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["_groups","_teachers","_locations","_courses","_events"],"sources":["../../../src/IdunSoft/from/schedules.ts"],"sourcesContent":["\nimport type { CoreTypes } from '../../core';\nimport type { Types as IdunSoftTypes } from '../types';\nimport _groups from './groups';\nimport _teachers from './teachers';\nimport _locations from './locations';\nimport _courses from './courses';\nimport _events from './events';\nimport type { InternalIdKey } from '../../core/types/common';\n\nexport namespace OutTypes {\n export type group = Omit<CoreTypes.serialized.group, InternalIdKey>;\n export type teacher = Omit<CoreTypes.serialized.teacher, InternalIdKey>;\n export type location = Omit<CoreTypes.serialized.location, InternalIdKey>;\n export type course = Omit<CoreTypes.serialized.course, InternalIdKey>;\n export type event = Omit<CoreTypes.serialized.event, InternalIdKey>;\n};\n\ntype Out = {\n groups: OutTypes.group[];\n teachers: OutTypes.teacher[];\n locations: OutTypes.location[];\n courses: OutTypes.course[];\n events: OutTypes.event[];\n};\n\nexport default function (schedule: Partial<IdunSoftTypes.schedule>): Out {\n return {\n groups: _groups (schedule['Grupp' ] ?? []),\n teachers: _teachers (schedule['Lärare' ] ?? []),\n locations: _locations(schedule['Rum' ] ?? []),\n courses: _courses (schedule['Ämne' ] ?? []),\n events: _events (schedule['Lektion'] ?? []),\n };\n}"],"mappings":";;;;;;;AA0BA,2BAAyB,UAAgD;AACvE,QAAO;EACL,QAAWA,eAAW,SAAS,YAAc;EAC7C,UAAWC,iBAAW,SAAS,aAAc;EAC7C,WAAWC,kBAAW,SAAS,UAAc;EAC7C,SAAWC,gBAAW,SAAS,WAAc;EAC7C,QAAWC,eAAW,SAAS,cAAc"}
1
+ {"version":3,"file":"schedules.js","names":["_groups","_teachers","_locations","_courses","_events"],"sources":["../../../src/IdunSoft/from/schedules.ts"],"sourcesContent":["\nimport type { CoreTypes } from '../../core';\nimport type { Types as IdunSoftTypes } from '../types';\nimport _groups from './groups';\nimport _teachers from './teachers';\nimport _locations from './locations';\nimport _courses from './courses';\nimport _events from './events';\nimport type { InternalIdKey } from '../../core/types/common';\n\nexport namespace OutTypes {\n export type group = Omit<CoreTypes.Serialized.Group, InternalIdKey>;\n export type teacher = Omit<CoreTypes.Serialized.Teacher, InternalIdKey>;\n export type location = Omit<CoreTypes.Serialized.Location, InternalIdKey>;\n export type course = Omit<CoreTypes.Serialized.Course, InternalIdKey>;\n export type event = Omit<CoreTypes.Serialized.Event, InternalIdKey>;\n};\n\ntype Out = {\n groups: OutTypes.group[];\n teachers: OutTypes.teacher[];\n locations: OutTypes.location[];\n courses: OutTypes.course[];\n events: OutTypes.event[];\n};\n\nexport default function (schedule: Partial<IdunSoftTypes.schedule>): Out {\n return {\n groups: _groups (schedule['Grupp' ] ?? []),\n teachers: _teachers (schedule['Lärare' ] ?? []),\n locations: _locations(schedule['Rum' ] ?? []),\n courses: _courses (schedule['Ämne' ] ?? []),\n events: _events (schedule['Lektion'] ?? []),\n };\n}"],"mappings":";;;;;;;AA0BA,2BAAyB,UAAgD;AACvE,QAAO;EACL,QAAWA,eAAW,SAAS,YAAc,EAAE,CAAC;EAChD,UAAWC,iBAAW,SAAS,aAAc,EAAE,CAAC;EAChD,WAAWC,kBAAW,SAAS,UAAc,EAAE,CAAC;EAChD,SAAWC,gBAAW,SAAS,WAAc,EAAE,CAAC;EAChD,QAAWC,eAAW,SAAS,cAAc,EAAE,CAAC;EACjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"teachers.js","names":[],"sources":["../../../src/IdunSoft/from/teachers.ts"],"sourcesContent":["import type { Types as IdunSoftTypes } from '../types';\nimport type { OutTypes } from './schedules';\n\nexport default (teachers: IdunSoftTypes.teacher[]): OutTypes.teacher[] => {\n return teachers\n .reduce<OutTypes.teacher[]>((acc, teacher, index) => {\n const ids = teacher['ID'];\n if (!ids)\n throw new Error('A teacher does not have a unique key');\n\n if (acc.some(x => x.ids == ids))\n throw new Error(`A teacher ID \"${ids}\" exists multiple times at indices ${ index } and ${ acc.findIndex(x => x.ids == ids) }`);\n\n return acc.concat({\n ids: ids,\n displayName: teacher['Namn']\n });\n }, []);\n};"],"mappings":";AAGA,wBAAgB,aAA0D;AACxE,QAAO,SACJ,QAA4B,KAAK,SAAS,UAAU;EACnD,MAAM,MAAM,QAAQ;AACpB,MAAI,CAAC,IACH,OAAM,IAAI,MAAM;AAElB,MAAI,IAAI,MAAK,MAAK,EAAE,OAAO,KACzB,OAAM,IAAI,MAAM,iBAAiB,IAAI,qCAAsC,MAAO,OAAQ,IAAI,WAAU,MAAK,EAAE,OAAO;AAExH,SAAO,IAAI,OAAO;GACH;GACb,aAAa,QAAQ;;IAEtB"}
1
+ {"version":3,"file":"teachers.js","names":[],"sources":["../../../src/IdunSoft/from/teachers.ts"],"sourcesContent":["import type { Types as IdunSoftTypes } from '../types';\nimport type { OutTypes } from './schedules';\n\nexport default (teachers: IdunSoftTypes.teacher[]): OutTypes.teacher[] => {\n return teachers\n .reduce<OutTypes.teacher[]>((acc, teacher, index) => {\n const ids = teacher['ID'];\n if (!ids)\n throw new Error('A teacher does not have a unique key');\n\n if (acc.some(x => x.ids == ids))\n throw new Error(`A teacher ID \"${ids}\" exists multiple times at indices ${ index } and ${ acc.findIndex(x => x.ids == ids) }`);\n\n return acc.concat({\n ids: ids,\n displayName: teacher['Namn']\n });\n }, []);\n};"],"mappings":";AAGA,wBAAgB,aAA0D;AACxE,QAAO,SACJ,QAA4B,KAAK,SAAS,UAAU;EACnD,MAAM,MAAM,QAAQ;AACpB,MAAI,CAAC,IACH,OAAM,IAAI,MAAM,uCAAuC;AAEzD,MAAI,IAAI,MAAK,MAAK,EAAE,OAAO,IAAI,CAC7B,OAAM,IAAI,MAAM,iBAAiB,IAAI,qCAAsC,MAAO,OAAQ,IAAI,WAAU,MAAK,EAAE,OAAO,IAAI,GAAI;AAEhI,SAAO,IAAI,OAAO;GACH;GACb,aAAa,QAAQ;GACtB,CAAC;IACD,EAAE,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { Types } from "../../core/types/index.js";
2
+ import "../../index.js";
2
3
 
3
4
  //#region src/IdunSoft/to/index.d.ts
4
5
  declare class export_default {
5
- static schedules: (courseEvents: Types.mixed.event[]) => string;
6
+ static schedules: (courseEvents: Types.Mixed.Event[]) => string;
6
7
  }
7
8
  //#endregion
8
9
  export { export_default };
@@ -1,6 +1,6 @@
1
1
  import { getDayIndex } from "../../core/util.js";
2
+ import { isMongooseObjectId } from "../../common/functions.js";
2
3
  import moment from "moment";
3
- import { Types } from "mongoose";
4
4
  import { Parser } from "@json2csv/plainjs";
5
5
 
6
6
  //#region src/IdunSoft/to/schedules.ts
@@ -30,10 +30,10 @@ var schedules_default = (courseEvents) => {
30
30
  const day = days.at(getDayIndex(event.start));
31
31
  if (!day) throw new Error("Invalid event day");
32
32
  const course = event.course;
33
- if (!(course && typeof course == "object" && !(course instanceof Types.ObjectId))) throw new Error("Event course not found or invalid");
33
+ if (!course || typeof course == "string" || isMongooseObjectId(course)) throw new Error("Event course not found or invalid");
34
34
  const teachers = (event.teachers ?? course.teachers)?.map((x) => x.to);
35
35
  const groups = (event.groups ?? course.groups)?.map((x) => x.to);
36
- const doc = {
36
+ return {
37
37
  Ämne: course.ids,
38
38
  Veckodag: day,
39
39
  Starttid: moment.utc(event.start).format("HH.mm:ss"),
@@ -43,14 +43,11 @@ var schedules_default = (courseEvents) => {
43
43
  Klassrum: (event.inLocations ?? []).map((x) => x && typeof x == "object" && "ids" in x ? x.ids : null).filter((x) => x != null).join(","),
44
44
  Halvklass: "Nej"
45
45
  };
46
- return doc;
47
46
  }).filter((x) => x != null);
48
- const opts = {
47
+ return new Parser({
49
48
  fields,
50
49
  delimiter
51
- };
52
- const parser = new Parser(opts);
53
- return parser.parse(events);
50
+ }).parse(events);
54
51
  };
55
52
 
56
53
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["MongooseTypes","doc: IdunSoftTypes.toEvent","opts: ParserOptions<IdunSoftTypes.toEvent>"],"sources":["../../../src/IdunSoft/to/schedules.ts"],"sourcesContent":["import type { ParserOptions } from '@json2csv/plainjs';\nimport { Parser } from '@json2csv/plainjs';\nimport moment from 'moment';\nimport { Types as MongooseTypes } from 'mongoose';\nimport type { Types as IdunSoftTypes } from '../types';\nimport type { CoreTypes } from '../../core';\nimport { getDayIndex } from '../../core/util';\n\nconst days = ['måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag'];\nconst fields = ['Veckodag', 'Starttid', 'Sluttid', 'Klass', 'Ämne', 'Kommentar', 'Lärare', 'Klassrum', 'Halvklass'];\nconst delimiter = '\\t';\nconst quote = '';\n\nexport default (courseEvents: CoreTypes.mixed.event[]): string => {\n const events = courseEvents\n .map(event => {\n if (event.parked) return;\n if (!event.start || !event.end) return;\n\n const day = days.at(getDayIndex(event.start));\n if (!day) throw new Error('Invalid event day');\n\n const course = event.course;\n if (!(course && typeof course == 'object' && !(course instanceof MongooseTypes.ObjectId)))\n throw new Error('Event course not found or invalid');\n\n const teachers = (event.teachers ?? course.teachers)?.map(x => x.to);\n const groups = (event.groups ?? course.groups )?.map(x => x.to);\n\n const doc: IdunSoftTypes.toEvent = {\n Ämne: course.ids,\n Veckodag: day,\n Starttid: moment.utc(event.start).format('HH.mm:ss'),\n Sluttid: moment.utc(event.end ).format('HH.mm:ss'),\n Lärare: (teachers ?? []).map(x => typeof x == 'object' && 'ids' in x ? x.ids : null).filter(x => x != null).join(','),\n Klass: (groups ?? []).map(x => typeof x == 'object' && 'ids' in x ? x.ids : null).filter(x => x != null).join(','),\n Klassrum: (event.inLocations ?? []).map(x => x && typeof x == 'object' && 'ids' in x ? x.ids : null).filter(x => x != null).join(','),\n Halvklass: 'Nej'\n };\n return doc;\n })\n .filter(x => x != null);\n\n const opts: ParserOptions<IdunSoftTypes.toEvent> = { fields, delimiter/* , quote */ };\n const parser = new Parser(opts);\n return parser.parse(events);\n};\n"],"mappings":";;;;;;AAQA,MAAM,OAAY;CAAC;CAAU;CAAU;CAAU;CAAW;;AAC5D,MAAM,SAAY;CAAC;CAAY;CAAY;CAAW;CAAS;CAAQ;CAAa;CAAU;CAAY;;AAC1G,MAAM,YAAY;AAGlB,yBAAgB,iBAAkD;CAChE,MAAM,SAAS,aACZ,KAAI,UAAS;AACZ,MAAI,MAAM,OAAQ;AAClB,MAAI,CAAC,MAAM,SAAS,CAAC,MAAM,IAAK;EAEhC,MAAM,MAAM,KAAK,GAAG,YAAY,MAAM;AACtC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM;EAE1B,MAAM,SAAS,MAAM;AACrB,MAAI,EAAE,UAAU,OAAO,UAAU,YAAY,EAAE,kBAAkBA,MAAc,WAC7E,OAAM,IAAI,MAAM;EAElB,MAAM,YAAY,MAAM,YAAY,OAAO,WAAW,KAAI,MAAK,EAAE;EACjE,MAAM,UAAY,MAAM,UAAY,OAAO,SAAW,KAAI,MAAK,EAAE;EAEjE,MAAMC,MAA6B;GACjC,MAAW,OAAO;GAClB,UAAW;GACX,UAAW,OAAO,IAAI,MAAM,OAAO,OAAO;GAC1C,SAAW,OAAO,IAAI,MAAM,KAAO,OAAO;GAC1C,SAAY,YAAqB,IAAI,KAAI,MAAU,OAAO,KAAK,YAAY,SAAS,IAAI,EAAE,MAAM,MAAM,QAAO,MAAK,KAAK,MAAM,KAAK;GAClI,QAAY,UAAqB,IAAI,KAAI,MAAU,OAAO,KAAK,YAAY,SAAS,IAAI,EAAE,MAAM,MAAM,QAAO,MAAK,KAAK,MAAM,KAAK;GAClI,WAAY,MAAM,eAAe,IAAI,KAAI,MAAK,KAAK,OAAO,KAAK,YAAY,SAAS,IAAI,EAAE,MAAM,MAAM,QAAO,MAAK,KAAK,MAAM,KAAK;GAClI,WAAW;;AAEb,SAAO;IAER,QAAO,MAAK,KAAK;CAEpB,MAAMC,OAA6C;EAAE;EAAQ;;CAC7D,MAAM,SAAS,IAAI,OAAO;AAC1B,QAAO,OAAO,MAAM"}
1
+ {"version":3,"file":"schedules.js","names":[],"sources":["../../../src/IdunSoft/to/schedules.ts"],"sourcesContent":["import type { ParserOptions } from '@json2csv/plainjs';\nimport { Parser } from '@json2csv/plainjs';\nimport moment from 'moment';\nimport type { Types as IdunSoftTypes } from '../types';\nimport type { CoreTypes } from '../../core';\nimport { getDayIndex } from '../../core/util';\nimport { isMongooseObjectId } from '../../common/functions';\n\nconst days = ['måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag'];\nconst fields = ['Veckodag', 'Starttid', 'Sluttid', 'Klass', 'Ämne', 'Kommentar', 'Lärare', 'Klassrum', 'Halvklass'];\nconst delimiter = '\\t';\nconst quote = '';\n\nexport default (courseEvents: CoreTypes.Mixed.Event[]): string => {\n const events = courseEvents\n .map(event => {\n if (event.parked) return;\n if (!event.start || !event.end) return;\n\n const day = days.at(getDayIndex(event.start));\n if (!day) throw new Error('Invalid event day');\n\n const course = event.course;\n if (!course || typeof course == 'string' || isMongooseObjectId(course))\n throw new Error('Event course not found or invalid');\n\n const teachers = (event.teachers ?? course.teachers)?.map(x => x.to);\n const groups = (event.groups ?? course.groups )?.map(x => x.to);\n\n const doc: IdunSoftTypes.toEvent = {\n Ämne: course.ids,\n Veckodag: day,\n Starttid: moment.utc(event.start).format('HH.mm:ss'),\n Sluttid: moment.utc(event.end ).format('HH.mm:ss'),\n Lärare: (teachers ?? []).map(x => typeof x == 'object' && 'ids' in x ? x.ids : null).filter(x => x != null).join(','),\n Klass: (groups ?? []).map(x => typeof x == 'object' && 'ids' in x ? x.ids : null).filter(x => x != null).join(','),\n Klassrum: (event.inLocations ?? []).map(x => x && typeof x == 'object' && 'ids' in x ? x.ids : null).filter(x => x != null).join(','),\n Halvklass: 'Nej'\n };\n return doc;\n })\n .filter(x => x != null);\n\n const opts: ParserOptions<IdunSoftTypes.toEvent> = { fields, delimiter/* , quote */ };\n const parser = new Parser(opts);\n return parser.parse(events);\n};\n"],"mappings":";;;;;;AAQA,MAAM,OAAY;CAAC;CAAU;CAAU;CAAU;CAAW;CAAS;AACrE,MAAM,SAAY;CAAC;CAAY;CAAY;CAAW;CAAS;CAAQ;CAAa;CAAU;CAAY;CAAY;AACtH,MAAM,YAAY;AAGlB,yBAAgB,iBAAkD;CAChE,MAAM,SAAS,aACZ,KAAI,UAAS;AACZ,MAAI,MAAM,OAAQ;AAClB,MAAI,CAAC,MAAM,SAAS,CAAC,MAAM,IAAK;EAEhC,MAAM,MAAM,KAAK,GAAG,YAAY,MAAM,MAAM,CAAC;AAC7C,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,oBAAoB;EAE9C,MAAM,SAAS,MAAM;AACrB,MAAI,CAAC,UAAU,OAAO,UAAU,YAAY,mBAAmB,OAAO,CACpE,OAAM,IAAI,MAAM,oCAAoC;EAEtD,MAAM,YAAY,MAAM,YAAY,OAAO,WAAW,KAAI,MAAK,EAAE,GAAG;EACpE,MAAM,UAAY,MAAM,UAAY,OAAO,SAAW,KAAI,MAAK,EAAE,GAAG;AAYpE,SAVmC;GACjC,MAAW,OAAO;GAClB,UAAW;GACX,UAAW,OAAO,IAAI,MAAM,MAAM,CAAC,OAAO,WAAW;GACrD,SAAW,OAAO,IAAI,MAAM,IAAM,CAAC,OAAO,WAAW;GACrD,SAAY,YAAqB,EAAE,EAAE,KAAI,MAAU,OAAO,KAAK,YAAY,SAAS,IAAI,EAAE,MAAM,KAAK,CAAC,QAAO,MAAK,KAAK,KAAK,CAAC,KAAK,IAAI;GACtI,QAAY,UAAqB,EAAE,EAAE,KAAI,MAAU,OAAO,KAAK,YAAY,SAAS,IAAI,EAAE,MAAM,KAAK,CAAC,QAAO,MAAK,KAAK,KAAK,CAAC,KAAK,IAAI;GACtI,WAAY,MAAM,eAAe,EAAE,EAAE,KAAI,MAAK,KAAK,OAAO,KAAK,YAAY,SAAS,IAAI,EAAE,MAAM,KAAK,CAAC,QAAO,MAAK,KAAK,KAAK,CAAC,KAAK,IAAI;GACtI,WAAW;GACZ;GAED,CACD,QAAO,MAAK,KAAK,KAAK;AAIzB,QADe,IAAI,OADgC;EAAE;EAAQ;EAAwB,CACtD,CACjB,MAAM,OAAO"}
@@ -1,8 +1,9 @@
1
1
  import { Types } from "../../core/types/index.js";
2
+ import "../../index.js";
2
3
 
3
4
  //#region src/InfoMentor/to/index.d.ts
4
5
  declare class export_default {
5
- static schedules: (courseEvents: Types.mixed.event[]) => Buffer;
6
+ static schedules: (courseEvents: Types.Mixed.Event[]) => Buffer;
6
7
  }
7
8
  //#endregion
8
9
  export { export_default };
@@ -1,6 +1,6 @@
1
1
  import { getDayIndex } from "../../core/util.js";
2
+ import { isMongooseObjectId } from "../../common/functions.js";
2
3
  import moment from "moment";
3
- import { Types } from "mongoose";
4
4
  import Papa from "papaparse";
5
5
  import iconv from "iconv-lite";
6
6
 
@@ -30,11 +30,11 @@ var schedules_default = (courseEvents) => {
30
30
  if (!course) return;
31
31
  const day = days.at(getDayIndex(event.start));
32
32
  if (!day) throw new Error("Invalid event day");
33
- if (typeof course != "object" || course instanceof Types.ObjectId) throw new Error("(InfoMentor::To::Schedules) Event course is not an deserialized object");
33
+ if (typeof course == "string" || isMongooseObjectId(course)) throw new Error("(InfoMentor::To::Schedules) Event course is not an deserialized object");
34
34
  const Personal = (event.teachers ?? course.teachers ?? []).map(({ to: x }) => typeof x == "object" && "displayName" in x ? x.displayName : null).filter((x) => x != null).join(",");
35
35
  const Klasser = (event.groups ?? course.groups ?? []).map(({ to: x }) => typeof x == "object" && "displayName" in x ? x.displayName : null).filter((x) => x != null).join(",");
36
36
  const Salar = (event.inLocations ?? []).map((x) => x && typeof x == "object" && "displayName" in x ? x.displayName : null).filter((x) => x != null).join(",");
37
- const doc = {
37
+ return {
38
38
  Ämne: course.displayName,
39
39
  Dag: day,
40
40
  Starttid: moment.utc(event.start).format("HH.mm"),
@@ -43,7 +43,6 @@ var schedules_default = (courseEvents) => {
43
43
  Klasser,
44
44
  Salar
45
45
  };
46
- return doc;
47
46
  });
48
47
  const opts = {
49
48
  columns,
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["MongooseTypes","doc: InfoMentorTypes.event"],"sources":["../../../src/InfoMentor/to/schedules.ts"],"sourcesContent":["import { Types as MongooseTypes } from 'mongoose';\nimport moment from 'moment';\nimport iconv from 'iconv-lite';\nimport Papa from 'papaparse';\nimport type { Types as InfoMentorTypes } from '../types';\nimport type { CoreTypes } from '../../core';\nimport { getDayIndex } from '../../core/util';\n\nconst days = ['MÅN', 'TIS', 'ONS', 'TOR', 'FRE'];\nconst columns = ['Ämne', 'Dag', 'Starttid', 'Längd', 'Personal', 'Klasser', 'Salar'];\nconst delimiter = '\\t';\nconst encoding = 'windows-1252';\n\nexport default (courseEvents: CoreTypes.mixed.event[]): Buffer => {\n const events = courseEvents\n .map(event => {\n if (event.parked || !event.start || !event.end) return;\n\n const course = event.course;\n if (!course) return;\n\n const day = days.at(getDayIndex(event.start));\n if (!day) throw new Error('Invalid event day');\n\n if (typeof course != 'object' || course instanceof MongooseTypes.ObjectId)\n throw new Error('(InfoMentor::To::Schedules) Event course is not an deserialized object');\n\n const Personal = (event.teachers ?? course.teachers ?? []).map(({ to: x }) => typeof x == 'object' && 'displayName' in x ? x.displayName : null).filter(x => x != null).join(',');\n const Klasser = (event.groups ?? course.groups ?? []).map(({ to: x }) => typeof x == 'object' && 'displayName' in x ? x.displayName : null).filter(x => x != null).join(',');\n const Salar = (event.inLocations ?? []).map(x => x && typeof x == 'object' && 'displayName' in x ? x.displayName : null).filter(x => x != null).join(',');\n\n const doc: InfoMentorTypes.event ={\n Ämne: course.displayName,\n Dag: day,\n Starttid: moment.utc(event.start).format('HH.mm'),\n Längd: moment.utc(event.end).diff(moment.utc(event.start), 'minutes'),\n Personal,\n Klasser,\n Salar,\n };\n return doc;\n });\n\n const opts = { columns, delimiter };\n const csv = Papa.unparse(events, opts);\n return iconv.encode(csv, encoding);\n};\n"],"mappings":";;;;;;;AAQA,MAAM,OAAY;CAAC;CAAO;CAAO;CAAO;CAAO;;AAC/C,MAAM,UAAY;CAAC;CAAQ;CAAO;CAAY;CAAS;CAAY;CAAW;;AAC9E,MAAM,YAAY;AAClB,MAAM,WAAY;AAElB,yBAAgB,iBAAkD;CAChE,MAAM,SAAS,aACZ,KAAI,UAAS;AACZ,MAAI,MAAM,UAAU,CAAC,MAAM,SAAS,CAAC,MAAM,IAAK;EAEhD,MAAM,SAAS,MAAM;AACrB,MAAI,CAAC,OAAQ;EAEb,MAAM,MAAM,KAAK,GAAG,YAAY,MAAM;AACtC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM;AAE1B,MAAI,OAAO,UAAU,YAAY,kBAAkBA,MAAc,SAC/D,OAAM,IAAI,MAAM;EAElB,MAAM,YAAY,MAAM,YAAY,OAAO,YAAY,IAAI,KAAK,EAAE,IAAI,QAAa,OAAO,KAAK,YAAY,iBAAiB,IAAI,EAAE,cAAc,MAAM,QAAO,MAAK,KAAK,MAAM,KAAK;EAClL,MAAM,WAAY,MAAM,UAAY,OAAO,UAAY,IAAI,KAAK,EAAE,IAAI,QAAa,OAAO,KAAK,YAAY,iBAAiB,IAAI,EAAE,cAAc,MAAM,QAAO,MAAK,KAAK,MAAM,KAAK;EAClL,MAAM,SAAY,MAAM,eAA+B,IAAI,KAAI,MAAe,KAAK,OAAO,KAAK,YAAY,iBAAiB,IAAI,EAAE,cAAc,MAAM,QAAO,MAAK,KAAK,MAAM,KAAK;EAElL,MAAMC,MAA4B;GAChC,MAAU,OAAO;GACjB,KAAU;GACV,UAAU,OAAO,IAAI,MAAM,OAAO,OAAO;GACzC,OAAU,OAAO,IAAI,MAAM,KAAK,KAAK,OAAO,IAAI,MAAM,QAAQ;GAC9D;GACA;GACA;;AAEF,SAAO;;CAGX,MAAM,OAAO;EAAE;EAAS;;CACxB,MAAM,MAAM,KAAK,QAAQ,QAAQ;AACjC,QAAO,MAAM,OAAO,KAAK"}
1
+ {"version":3,"file":"schedules.js","names":[],"sources":["../../../src/InfoMentor/to/schedules.ts"],"sourcesContent":["import moment from 'moment';\nimport iconv from 'iconv-lite';\nimport Papa from 'papaparse';\nimport type { Types as InfoMentorTypes } from '../types';\nimport type { CoreTypes } from '../../core';\nimport { getDayIndex } from '../../core/util';\nimport { isMongooseObjectId } from '../../common/functions';\n\nconst days = ['MÅN', 'TIS', 'ONS', 'TOR', 'FRE'];\nconst columns = ['Ämne', 'Dag', 'Starttid', 'Längd', 'Personal', 'Klasser', 'Salar'];\nconst delimiter = '\\t';\nconst encoding = 'windows-1252';\n\nexport default (courseEvents: CoreTypes.Mixed.Event[]): Buffer => {\n const events = courseEvents\n .map(event => {\n if (event.parked || !event.start || !event.end) return;\n\n const course = event.course;\n if (!course) return;\n\n const day = days.at(getDayIndex(event.start));\n if (!day) throw new Error('Invalid event day');\n\n if (typeof course == 'string' || isMongooseObjectId(course))\n throw new Error('(InfoMentor::To::Schedules) Event course is not an deserialized object');\n\n const Personal = (event.teachers ?? course.teachers ?? []).map(({ to: x }) => typeof x == 'object' && 'displayName' in x ? x.displayName : null).filter(x => x != null).join(',');\n const Klasser = (event.groups ?? course.groups ?? []).map(({ to: x }) => typeof x == 'object' && 'displayName' in x ? x.displayName : null).filter(x => x != null).join(',');\n const Salar = (event.inLocations ?? []).map(x => x && typeof x == 'object' && 'displayName' in x ? x.displayName : null).filter(x => x != null).join(',');\n\n const doc: InfoMentorTypes.event ={\n Ämne: course.displayName,\n Dag: day,\n Starttid: moment.utc(event.start).format('HH.mm'),\n Längd: moment.utc(event.end).diff(moment.utc(event.start), 'minutes'),\n Personal,\n Klasser,\n Salar,\n };\n return doc;\n });\n\n const opts = { columns, delimiter };\n const csv = Papa.unparse(events, opts);\n return iconv.encode(csv, encoding);\n};\n"],"mappings":";;;;;;;AAQA,MAAM,OAAY;CAAC;CAAO;CAAO;CAAO;CAAO;CAAM;AACrD,MAAM,UAAY;CAAC;CAAQ;CAAO;CAAY;CAAS;CAAY;CAAW;CAAQ;AACtF,MAAM,YAAY;AAClB,MAAM,WAAY;AAElB,yBAAgB,iBAAkD;CAChE,MAAM,SAAS,aACZ,KAAI,UAAS;AACZ,MAAI,MAAM,UAAU,CAAC,MAAM,SAAS,CAAC,MAAM,IAAK;EAEhD,MAAM,SAAS,MAAM;AACrB,MAAI,CAAC,OAAQ;EAEb,MAAM,MAAM,KAAK,GAAG,YAAY,MAAM,MAAM,CAAC;AAC7C,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,oBAAoB;AAE9C,MAAI,OAAO,UAAU,YAAY,mBAAmB,OAAO,CACzD,OAAM,IAAI,MAAM,yEAAyE;EAE3F,MAAM,YAAY,MAAM,YAAY,OAAO,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,QAAa,OAAO,KAAK,YAAY,iBAAiB,IAAI,EAAE,cAAc,KAAK,CAAC,QAAO,MAAK,KAAK,KAAK,CAAC,KAAK,IAAI;EACtL,MAAM,WAAY,MAAM,UAAY,OAAO,UAAY,EAAE,EAAE,KAAK,EAAE,IAAI,QAAa,OAAO,KAAK,YAAY,iBAAiB,IAAI,EAAE,cAAc,KAAK,CAAC,QAAO,MAAK,KAAK,KAAK,CAAC,KAAK,IAAI;EACtL,MAAM,SAAY,MAAM,eAA+B,EAAE,EAAE,KAAI,MAAe,KAAK,OAAO,KAAK,YAAY,iBAAiB,IAAI,EAAE,cAAc,KAAK,CAAC,QAAO,MAAK,KAAK,KAAK,CAAC,KAAK,IAAI;AAWtL,SATkC;GAChC,MAAU,OAAO;GACjB,KAAU;GACV,UAAU,OAAO,IAAI,MAAM,MAAM,CAAC,OAAO,QAAQ;GACjD,OAAU,OAAO,IAAI,MAAM,IAAI,CAAC,KAAK,OAAO,IAAI,MAAM,MAAM,EAAE,UAAU;GACxE;GACA;GACA;GACD;GAED;CAEJ,MAAM,OAAO;EAAE;EAAS;EAAW;CACnC,MAAM,MAAM,KAAK,QAAQ,QAAQ,KAAK;AACtC,QAAO,MAAM,OAAO,KAAK,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/PlanDigital/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../common/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
1
+ {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/PlanDigital/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../common/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA,mBACZ"}
@@ -17,8 +17,7 @@ var schedules_default = (input, options) => {
17
17
  errors.push(`The selected period ${x} does not exist.`);
18
18
  return { meta: { errors } };
19
19
  }
20
- const numUnits = size(countBy(input["Perioder"].map((x) => x.Tidsenhet)));
21
- if (numUnits > 1) {
20
+ if (size(countBy(input["Perioder"].map((x) => x.Tidsenhet))) > 1) {
22
21
  errors.push("Different time periods used for different periods.");
23
22
  return { meta: { errors } };
24
23
  }
@@ -31,18 +30,18 @@ var schedules_default = (input, options) => {
31
30
  if (sum(periodTimes) == 0) return;
32
31
  const displayName = c[options.displayName ?? "Gruppnamn"];
33
32
  const subject = c["Kurskod"];
34
- const groups$1 = c["Klass"]?.split(",").map((x) => x.trim());
33
+ const groups = c["Klass"]?.split(",").map((x) => x.trim());
35
34
  const teachers$1 = c["Sign"]?.split(",").map((x) => x.trim());
36
35
  const periodTime = size(countBy(periodTimes)) == 1 ? periodTimes[0] : void 0;
37
36
  const minutesPerWeek = timeUnit == "Minuter/Vecka" ? periodTime : void 0;
38
37
  const expectedTotalHours = timeUnit == "Timmar/Period" ? periodTime : void 0;
39
38
  teachers$1.forEach((x) => teacherSet.add(x));
40
- groups$1.forEach((x) => groupSet.add(x));
39
+ groups.forEach((x) => groupSet.add(x));
41
40
  courses.push({
42
41
  displayName,
43
42
  subject,
44
43
  teachers: teachers$1.map((to) => ({ to })),
45
- groups: groups$1.map((to) => ({ to })),
44
+ groups: groups.map((to) => ({ to })),
46
45
  ...minutesPerWeek != void 0 && { minutesPerWeek },
47
46
  ...expectedTotalHours != void 0 && { expectedTotalHours }
48
47
  });
@@ -51,13 +50,12 @@ var schedules_default = (input, options) => {
51
50
  ids,
52
51
  displayName: ids
53
52
  }));
54
- const groups = [...groupSet].map((ids) => ({
55
- ids,
56
- displayName: ids,
57
- species: "class"
58
- }));
59
53
  return {
60
- groups,
54
+ groups: [...groupSet].map((ids) => ({
55
+ ids,
56
+ displayName: ids,
57
+ species: "class"
58
+ })),
61
59
  teachers,
62
60
  courses,
63
61
  meta: {