@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
@@ -2,6 +2,7 @@ import { CoreMap } from "../../core/index.js";
2
2
  import { parseInput } from "./input/input.js";
3
3
  import { makeConnected } from "../make-connected.js";
4
4
  import { initialConfiguration } from "./initial-configuration.js";
5
+ import { structure } from "../types/to.js";
5
6
  import { pick } from "lodash-es";
6
7
 
7
8
  //#region src/RS/to/schedules.ts
@@ -25,8 +26,8 @@ function schedules(data, _options = {}) {
25
26
  const connectedData = makeConnected(data);
26
27
  return {
27
28
  meta: {
28
- structure: "RS/algorithm-5.0.0",
29
- division: pick(data.division, "displayName", "start", "end")
29
+ structure,
30
+ division: pick(connectedData.division, "displayName", "start", "end")
30
31
  },
31
32
  algorithmParameters: { weights: options.algorithmWeightParameters },
32
33
  input: parseInput(connectedData, options),
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["partialScheduleOptions: Types.parsedToOptions['partialScheduleOptions']"],"sources":["../../../src/RS/to/schedules.ts"],"sourcesContent":["import { pick } from 'lodash-es';\nimport { parseInput } from './input/input';\nimport { makeConnected } from '../make-connected';\nimport { initialConfiguration } from './initial-configuration';\nimport type { Types } from '../types';\nimport { CoreMap } from '../../core';\n\nexport function schedules (\n data: Types.toInput,\n _options: Types.toOptions = {}\n): Types.toOutput {\n ////\n //// parse the options\n ////\n const options = ((): Types.parsedToOptions => {\n const x = _options.partialScheduleOptions;\n const partialScheduleOptions: Types.parsedToOptions['partialScheduleOptions'] = x\n ? {\n includedEvents: x.includedEvents ? new Set(x.includedEvents) : undefined,\n includedLocations: x.includedLocations ? new Set(x.includedLocations) : undefined,\n omittedEventsHandling: x.omittedEventsHandling\n }\n : undefined;\n\n return { ..._options, partialScheduleOptions };\n })();\n\n ////\n //// for backward compatibility: add default collection to included events set\n ////\n if (options.partialScheduleOptions?.includedEvents?.size) {\n options.partialScheduleOptions.includedEvents = new Set(\n [...options.partialScheduleOptions.includedEvents]\n .map(x => {\n // should start with 'events.' or 'lockedTimes.' prefix\n if (x.startsWith('events.') || x.startsWith('lockedTimes.')) return x;\n return `events.${x}`;\n })\n );\n }\n\n\n // we will work only with connected schedule data\n const connectedData = makeConnected(data);\n\n return {\n meta: {\n structure: 'RS/algorithm-5.0.0' satisfies Types.structure,\n division: pick(data.division, 'displayName', 'start', 'end'),\n },\n algorithmParameters: {\n weights: options.algorithmWeightParameters,\n },\n input: parseInput(connectedData, options),\n ...options.appendCoreData && { coreData: CoreMap.to.schedules(data) },\n ...options.appendOutput && { output: initialConfiguration(connectedData.events, connectedData.lockedTimes, options) },\n };\n};"],"mappings":";;;;;;;AAOA,SAAgB,UACd,MACA,WAA4B,IACZ;CAIhB,MAAM,iBAAwC;EAC5C,MAAM,IAAI,SAAS;EACnB,MAAMA,yBAA0E,IAC5E;GACA,gBAAuB,EAAE,iBAAoB,IAAI,IAAI,EAAE,kBAAqB;GAC5E,mBAAuB,EAAE,oBAAoB,IAAI,IAAI,EAAE,qBAAqB;GAC5E,uBAAuB,EAAE;MAEzB;AAEJ,SAAO;GAAE,GAAG;GAAU;;;AAMxB,KAAI,QAAQ,wBAAwB,gBAAgB,KAClD,SAAQ,uBAAuB,iBAAiB,IAAI,IAClD,CAAC,GAAG,QAAQ,uBAAuB,gBAChC,KAAI,MAAK;AAER,MAAI,EAAE,WAAW,cAAc,EAAE,WAAW,gBAAiB,QAAO;AACpE,SAAO,UAAU;;CAOzB,MAAM,gBAAgB,cAAc;AAEpC,QAAO;EACL,MAAM;GACJ,WAAW;GACX,UAAW,KAAK,KAAK,UAAU,eAAe,SAAS;;EAEzD,qBAAqB,EACnB,SAAS,QAAQ;EAEnB,OAAO,WAAW,eAAe;EACjC,GAAG,QAAQ,kBAAkB,EAAE,UAAU,QAAQ,GAAG,UAAU;EAC9D,GAAG,QAAQ,gBAAkB,EAAE,QAAQ,qBAAqB,cAAc,QAAQ,cAAc,aAAa"}
1
+ {"version":3,"file":"schedules.js","names":["partialScheduleOptions: Types.parsedToOptions['partialScheduleOptions']"],"sources":["../../../src/RS/to/schedules.ts"],"sourcesContent":["import { pick } from 'lodash-es';\nimport { parseInput } from './input/input';\nimport { makeConnected } from '../make-connected';\nimport { initialConfiguration } from './initial-configuration';\nimport type { Types } from '../types';\nimport { CoreMap } from '../../core';\nimport { structure } from '../types/to';\n\nexport function schedules (\n data: Types.toInput,\n _options: Types.toOptions = {}\n): Types.toOutput {\n ////\n //// parse the options\n ////\n const options = ((): Types.parsedToOptions => {\n const x = _options.partialScheduleOptions;\n const partialScheduleOptions: Types.parsedToOptions['partialScheduleOptions'] = x\n ? {\n includedEvents: x.includedEvents ? new Set(x.includedEvents) : undefined,\n includedLocations: x.includedLocations ? new Set(x.includedLocations) : undefined,\n omittedEventsHandling: x.omittedEventsHandling\n }\n : undefined;\n\n return { ..._options, partialScheduleOptions };\n })();\n\n ////\n //// for backward compatibility: add default collection to included events set\n ////\n if (options.partialScheduleOptions?.includedEvents?.size) {\n options.partialScheduleOptions.includedEvents = new Set(\n [...options.partialScheduleOptions.includedEvents]\n .map(x => {\n // should start with 'events.' or 'lockedTimes.' prefix\n if (x.startsWith('events.') || x.startsWith('lockedTimes.')) return x;\n return `events.${x}`;\n })\n );\n }\n\n\n // we will work only with connected schedule data\n const connectedData = makeConnected(data);\n\n return {\n meta: {\n structure: structure,\n division: pick(connectedData.division, 'displayName', 'start', 'end'),\n },\n algorithmParameters: {\n weights: options.algorithmWeightParameters,\n },\n input: parseInput(connectedData, options),\n ...options.appendCoreData && { coreData: CoreMap.to.schedules(data) },\n ...options.appendOutput && { output: initialConfiguration(connectedData.events, connectedData.lockedTimes, options) },\n };\n};"],"mappings":";;;;;;;;AAQA,SAAgB,UACd,MACA,WAA4B,EAAE,EACd;CAIhB,MAAM,iBAAwC;EAC5C,MAAM,IAAI,SAAS;EACnB,MAAMA,yBAA0E,IAC5E;GACA,gBAAuB,EAAE,iBAAoB,IAAI,IAAI,EAAE,eAAe,GAAM;GAC5E,mBAAuB,EAAE,oBAAoB,IAAI,IAAI,EAAE,kBAAkB,GAAG;GAC5E,uBAAuB,EAAE;GAC1B,GACC;AAEJ,SAAO;GAAE,GAAG;GAAU;GAAwB;KAC5C;AAKJ,KAAI,QAAQ,wBAAwB,gBAAgB,KAClD,SAAQ,uBAAuB,iBAAiB,IAAI,IAClD,CAAC,GAAG,QAAQ,uBAAuB,eAAe,CAC/C,KAAI,MAAK;AAER,MAAI,EAAE,WAAW,UAAU,IAAI,EAAE,WAAW,eAAe,CAAE,QAAO;AACpE,SAAO,UAAU;GACjB,CACL;CAKH,MAAM,gBAAgB,cAAc,KAAK;AAEzC,QAAO;EACL,MAAM;GACO;GACX,UAAW,KAAK,cAAc,UAAU,eAAe,SAAS,MAAM;GACvE;EACD,qBAAqB,EACnB,SAAS,QAAQ,2BAClB;EACD,OAAO,WAAW,eAAe,QAAQ;EACzC,GAAG,QAAQ,kBAAkB,EAAE,UAAU,QAAQ,GAAG,UAAU,KAAK,EAAE;EACrE,GAAG,QAAQ,gBAAkB,EAAE,QAAQ,qBAAqB,cAAc,QAAQ,cAAc,aAAa,QAAQ,EAAE;EACxH"}
@@ -1,5 +1,6 @@
1
1
  import { BaseOptions } from "../../common/types.js";
2
2
  import { Types } from "../../core/types/index.js";
3
+ import "../../core/index.js";
3
4
  import { MixedScheduleData } from "../make-connected.js";
4
5
  import { AlgorithmWeightParameters } from "./algorithm-parameters.js";
5
6
  import { Types as Types$1 } from "./index.js";
@@ -17,7 +18,15 @@ interface ToOptions extends BaseOptions {
17
18
  meta?: boolean;
18
19
  isPrivateId?: boolean;
19
20
  isPublicId?: boolean;
21
+ /**
22
+ * If true, the output will include the full core data. This enables the resulting output file to be uploaded as a new schedule.
23
+ * @default false
24
+ */
20
25
  appendCoreData?: boolean;
26
+ /**
27
+ * If true, the output will include current configuration of events and locked times as `output` entry.
28
+ * @default false
29
+ */
21
30
  appendOutput?: boolean;
22
31
  /**
23
32
  * @deprecated
@@ -40,11 +49,12 @@ interface ToOptions extends BaseOptions {
40
49
  interface ParsedToOptions extends Omit<ToOptions, 'partialScheduleOptions'> {
41
50
  partialScheduleOptions?: PartialScheduleOptions<Set<string>>;
42
51
  }
43
- type Structure = 'RS/algorithm-5.0.0';
52
+ declare const structure = "RS/algorithm-5.0.2";
53
+ type Structure = typeof structure;
44
54
  interface ToOutput {
45
55
  meta: {
46
56
  structure?: Structure;
47
- division: Pick<Types.division, 'displayName' | 'start' | 'end'>;
57
+ division: Pick<Types.Deep.Division, 'displayName' | 'start' | 'end'>;
48
58
  };
49
59
  algorithmParameters?: {
50
60
  weights?: AlgorithmWeightParameters;
@@ -52,7 +62,7 @@ interface ToOutput {
52
62
  score?: [number, number, number, number];
53
63
  input: Types$1.scheduleData;
54
64
  output?: Types$1.configuration[];
55
- coreData?: Partial<Types.serialized.schedule>;
65
+ coreData?: Partial<Types.SerializedWithOptionalId.Schedule>;
56
66
  }
57
67
  //#endregion
58
68
  export { ParsedToOptions, Structure, ToInput, ToOptions, ToOutput };
@@ -0,0 +1,6 @@
1
+ //#region src/RS/types/to.ts
2
+ const structure = "RS/algorithm-5.0.2";
3
+
4
+ //#endregion
5
+ export { structure };
6
+ //# sourceMappingURL=to.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to.js","names":[],"sources":["../../../src/RS/types/to.ts"],"sourcesContent":["import type { BaseOptions } from '../../common/types';\nimport type { CoreTypes } from '../../core';\nimport type { MixedScheduleData } from '../make-connected';\nimport type { Types } from './';\nimport type { AlgorithmWeightParameters } from './algorithm-parameters';\n\n\nexport type ToInput = MixedScheduleData;\n\ntype PartialScheduleOptions<IDs extends Array<string> | Set<string>> = {\n /** @description undefined means all included */\n includedEvents?: IDs;\n /** @description undefined means all included */\n includedLocations?: IDs;\n omittedEventsHandling: 'ignore' | 'freeze';\n};\n\nexport interface ToOptions extends BaseOptions {\n meta?: boolean;\n isPrivateId?: boolean;\n isPublicId?: boolean;\n /**\n * If true, the output will include the full core data. This enables the resulting output file to be uploaded as a new schedule.\n * @default false\n */\n appendCoreData?: boolean;\n /**\n * If true, the output will include current configuration of events and locked times as `output` entry.\n * @default false\n */\n appendOutput?: boolean;\n\n /**\n * @deprecated\n * If true, the mapping becomes the same as the previous version 2 one. That means:\n *\n * - New root level entries: `intervals` and `individuals`\n * - As the there is now a root level `intervals` the former may be references from `Collection.intervals`, `Group.intervals` etc.\n * - The `Collection.groups` and `Event.groups` supports referencing `individuals` (and `individuals sets`) in addition to `groups`\n * - The `Group.forbidOverlappingEvents` has been removed.\n * - The `Group.disableDayLengthPunishment` has been replaced by `Group.minimizeGaps`\n */\n oldFormat?: boolean;\n\n partialScheduleOptions?: PartialScheduleOptions<Array<string> | Set<string>>\n\n algorithmWeightParameters?: AlgorithmWeightParameters;\n\n /**\n * to be used before whe have migrated from \"maxNumWorkingHours\" and \"maxNumDailyWorkingHours\" to \"maximumScheduleSpan\"\n */\n useMaximumScheduleSpan?: boolean;\n}\n\nexport interface ParsedToOptions extends Omit<ToOptions, 'partialScheduleOptions'> {\n partialScheduleOptions?: PartialScheduleOptions<Set<string>>\n}\n\nexport const structure = 'RS/algorithm-5.0.2';\nexport type Structure = typeof structure;\nexport interface ToOutput {\n meta: {\n structure?: Structure;\n division: Pick<CoreTypes.Deep.Division, 'displayName' | 'start' | 'end'>;\n };\n algorithmParameters?: {\n weights?: AlgorithmWeightParameters;\n };\n score?: [number, number, number, number];\n input: Types.scheduleData;\n output?: Types.configuration[];\n coreData?: Partial<CoreTypes.SerializedWithOptionalId.Schedule>;\n}"],"mappings":";AA0DA,MAAa,YAAY"}
@@ -7,7 +7,7 @@ var activities_default = (activities, options) => {
7
7
  return activities.map((activity) => {
8
8
  if (parentActivities.has(activity.id)) return;
9
9
  const groupIndexSet = [...new Set([void 0, ...activity.rooms?.map(({ index }) => index) ?? []])];
10
- const doc = {
10
+ return {
11
11
  ids: activity.id,
12
12
  startDate: activity.startDate,
13
13
  ...omitBy({
@@ -27,7 +27,6 @@ var activities_default = (activities, options) => {
27
27
  })) },
28
28
  ...activity._embedded?.syllabus && { subject: activity._embedded.syllabus.subjectCode }
29
29
  };
30
- return doc;
31
30
  }).filter((x) => x != null);
32
31
  };
33
32
 
@@ -1 +1 @@
1
- {"version":3,"file":"activities.js","names":[],"sources":["../../../src/SS12000/from/activities.ts"],"sourcesContent":["import { isNil, omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Activity } from '../types/activities';\n\nexport default (\n activities: Activity[],\n options?: { interval?: { start: string, end: string } }\n) => {\n if (!Array.isArray(activities))\n throw new Error('(SS12000::From::Activities) Activities input is not of array type', { cause: 'invalid_input' });\n\n const parentActivities = new Set(activities.map(x => x.parentActivity?.id).filter(Boolean));\n\n return activities\n .map((activity): CoreTypes.mixedWithoutInternalId.course | undefined => {\n // Skip activities that are above courses\n if (parentActivities.has(activity.id)) return;\n\n const groupIndexSet = [...new Set<number | undefined>([undefined, ...(activity.rooms?.map(({ index }) => index) ?? [])])];\n\n const doc = {\n ids: activity.id,\n startDate: activity.startDate,\n ...omitBy({\n displayName: activity.displayName,\n comment: activity.comment,\n subject: activity.subject,\n endDate: activity.endDate,\n syllabus: activity._embedded?.syllabus,\n }, isNil),\n ...activity.minutesPlanned && { plannedDuration: `${ Math.ceil(activity.minutesPlanned / 60) } hrs` },\n type: activity.activityType,\n groups: activity.groups?.map(({ id }) => ({ to: id })),\n teachers: activity.teachers?.map(({ duty: { id } }) => ({ to: id })),\n // not in the standard\n ...activity.rooms && {\n locations: activity.rooms?.map(({ room, index }) => ({ locations: [room.id!] as [string], groupIndex: groupIndexSet.indexOf(index) })),\n },\n ...activity._embedded?.syllabus && {\n subject: activity._embedded.syllabus.subjectCode,\n }\n };\n return doc;\n })\n .filter(x => x != null);\n};"],"mappings":";;;AAIA,0BACE,YACA,YACG;AACH,KAAI,CAAC,MAAM,QAAQ,YACjB,OAAM,IAAI,MAAM,qEAAqE,EAAE,OAAO;CAEhG,MAAM,mBAAmB,IAAI,IAAI,WAAW,KAAI,MAAK,EAAE,gBAAgB,IAAI,OAAO;AAElF,QAAO,WACJ,KAAK,aAAkE;AAEtE,MAAI,iBAAiB,IAAI,SAAS,IAAK;EAEvC,MAAM,gBAAgB,CAAC,GAAG,IAAI,IAAwB,CAAC,QAAW,GAAI,SAAS,OAAO,KAAK,EAAE,YAAY,UAAU;EAEnH,MAAM,MAAM;GACV,KAAW,SAAS;GACpB,WAAW,SAAS;GACpB,GAAG,OAAO;IACR,aAAa,SAAS;IACtB,SAAa,SAAS;IACtB,SAAa,SAAS;IACtB,SAAa,SAAS;IACtB,UAAa,SAAS,WAAW;MAChC;GACH,GAAG,SAAS,kBAAkB,EAAE,iBAAiB,GAAI,KAAK,KAAK,SAAS,iBAAiB,IAAK;GAC9F,MAAU,SAAS;GACnB,QAAU,SAAS,QAAQ,KAAK,EAAE,UAAU,EAAE,IAAI;GAClD,UAAU,SAAS,UAAU,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI;GAE9D,GAAG,SAAS,SAAS,EACnB,WAAW,SAAS,OAAO,KAAK,EAAE,MAAM,aAAa;IAAE,WAAW,CAAC,KAAK;IAAkB,YAAY,cAAc,QAAQ;;GAE9H,GAAG,SAAS,WAAW,YAAY,EACjC,SAAS,SAAS,UAAU,SAAS;;AAGzC,SAAO;IAER,QAAO,MAAK,KAAK"}
1
+ {"version":3,"file":"activities.js","names":[],"sources":["../../../src/SS12000/from/activities.ts"],"sourcesContent":["import { isNil, omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Activity } from '../types/activities';\n\nexport default (\n activities: Activity[],\n options?: { interval?: { start: string, end: string } }\n) => {\n if (!Array.isArray(activities))\n throw new Error('(SS12000::From::Activities) Activities input is not of array type', { cause: 'invalid_input' });\n\n const parentActivities = new Set(activities.map(x => x.parentActivity?.id).filter(Boolean));\n\n return activities\n .map((activity): CoreTypes.MixedWithoutInternalId.Course | undefined => {\n // Skip activities that are above courses\n if (parentActivities.has(activity.id)) return;\n\n const groupIndexSet = [...new Set<number | undefined>([undefined, ...(activity.rooms?.map(({ index }) => index) ?? [])])];\n\n const doc = {\n ids: activity.id,\n startDate: activity.startDate,\n ...omitBy({\n displayName: activity.displayName,\n comment: activity.comment,\n subject: activity.subject,\n endDate: activity.endDate,\n syllabus: activity._embedded?.syllabus,\n }, isNil),\n ...activity.minutesPlanned && { plannedDuration: `${ Math.ceil(activity.minutesPlanned / 60) } hrs` },\n type: activity.activityType,\n groups: activity.groups?.map(({ id }) => ({ to: id })),\n teachers: activity.teachers?.map(({ duty: { id } }) => ({ to: id })),\n // not in the standard\n ...activity.rooms && {\n locations: activity.rooms?.map(({ room, index }) => ({ locations: [room.id!] as [string], groupIndex: groupIndexSet.indexOf(index) })),\n },\n ...activity._embedded?.syllabus && {\n subject: activity._embedded.syllabus.subjectCode,\n }\n };\n return doc;\n })\n .filter(x => x != null);\n};"],"mappings":";;;AAIA,0BACE,YACA,YACG;AACH,KAAI,CAAC,MAAM,QAAQ,WAAW,CAC5B,OAAM,IAAI,MAAM,qEAAqE,EAAE,OAAO,iBAAiB,CAAC;CAElH,MAAM,mBAAmB,IAAI,IAAI,WAAW,KAAI,MAAK,EAAE,gBAAgB,GAAG,CAAC,OAAO,QAAQ,CAAC;AAE3F,QAAO,WACJ,KAAK,aAAkE;AAEtE,MAAI,iBAAiB,IAAI,SAAS,GAAG,CAAE;EAEvC,MAAM,gBAAgB,CAAC,GAAG,IAAI,IAAwB,CAAC,QAAW,GAAI,SAAS,OAAO,KAAK,EAAE,YAAY,MAAM,IAAI,EAAE,CAAE,CAAC,CAAC;AAwBzH,SAtBY;GACV,KAAW,SAAS;GACpB,WAAW,SAAS;GACpB,GAAG,OAAO;IACR,aAAa,SAAS;IACtB,SAAa,SAAS;IACtB,SAAa,SAAS;IACtB,SAAa,SAAS;IACtB,UAAa,SAAS,WAAW;IAClC,EAAE,MAAM;GACT,GAAG,SAAS,kBAAkB,EAAE,iBAAiB,GAAI,KAAK,KAAK,SAAS,iBAAiB,GAAG,CAAE,OAAO;GACrG,MAAU,SAAS;GACnB,QAAU,SAAS,QAAQ,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE;GACxD,UAAU,SAAS,UAAU,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE;GAEpE,GAAG,SAAS,SAAS,EACnB,WAAW,SAAS,OAAO,KAAK,EAAE,MAAM,aAAa;IAAE,WAAW,CAAC,KAAK,GAAI;IAAc,YAAY,cAAc,QAAQ,MAAM;IAAE,EAAE,EACvI;GACD,GAAG,SAAS,WAAW,YAAY,EACjC,SAAS,SAAS,UAAU,SAAS,aACtC;GACF;GAED,CACD,QAAO,MAAK,KAAK,KAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-events.js","names":["toRoom"],"sources":["../../../src/SS12000/from/calendar-events.ts"],"sourcesContent":["import moment from 'moment';\nimport type { CoreTypes } from '../../core';\nimport type { CalendarEvent } from '../types/calendar-events';\nimport toRoom from './rooms';\n\nexport default (events: CalendarEvent[]) => {\n if (!Array.isArray(events))\n throw new Error('(SS12000::From::CalendarEvents) CalendarEvent input is not of array type', { cause: 'invalid_input' });\n\n return events\n .map((event): CoreTypes.mixedWithoutInternalId.event => ({\n ids: event.id,\n start: event.startTime.toString(),\n end: event.endTime.toString(),\n duration: moment(event.endTime).diff(event.endTime, 'm'),\n preferredDuration: moment(event.endTime).diff(event.endTime, 'm'),\n course: event.activity.id,\n inLocations: toRoom(event.rooms ?? []),\n // resources: toResource([])\n }));\n};\n"],"mappings":";;;;AAKA,+BAAgB,WAA4B;AAC1C,KAAI,CAAC,MAAM,QAAQ,QACjB,OAAM,IAAI,MAAM,4EAA4E,EAAE,OAAO;AAEvG,QAAO,OACJ,KAAK,WAAmD;EACvD,KAAmB,MAAM;EACzB,OAAmB,MAAM,UAAU;EACnC,KAAmB,MAAM,QAAQ;EACjC,UAAmB,OAAO,MAAM,SAAS,KAAK,MAAM,SAAS;EAC7D,mBAAmB,OAAO,MAAM,SAAS,KAAK,MAAM,SAAS;EAC7D,QAAmB,MAAM,SAAS;EAClC,aAAmBA,cAAO,MAAM,SAAS"}
1
+ {"version":3,"file":"calendar-events.js","names":["toRoom"],"sources":["../../../src/SS12000/from/calendar-events.ts"],"sourcesContent":["import moment from 'moment';\nimport type { CoreTypes } from '../../core';\nimport type { CalendarEvent } from '../types/calendar-events';\nimport toRoom from './rooms';\n\nexport default (events: CalendarEvent[]) => {\n if (!Array.isArray(events))\n throw new Error('(SS12000::From::CalendarEvents) CalendarEvent input is not of array type', { cause: 'invalid_input' });\n\n return events\n .map((event): CoreTypes.MixedWithoutInternalId.Event => ({\n ids: event.id,\n start: event.startTime.toString(),\n end: event.endTime.toString(),\n duration: moment(event.endTime).diff(event.endTime, 'm'),\n preferredDuration: moment(event.endTime).diff(event.endTime, 'm'),\n course: event.activity.id,\n inLocations: toRoom(event.rooms ?? []),\n // resources: toResource([])\n }));\n};\n"],"mappings":";;;;AAKA,+BAAgB,WAA4B;AAC1C,KAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,OAAM,IAAI,MAAM,4EAA4E,EAAE,OAAO,iBAAiB,CAAC;AAEzH,QAAO,OACJ,KAAK,WAAmD;EACvD,KAAmB,MAAM;EACzB,OAAmB,MAAM,UAAU,UAAU;EAC7C,KAAmB,MAAM,QAAQ,UAAU;EAC3C,UAAmB,OAAO,MAAM,QAAQ,CAAC,KAAK,MAAM,SAAS,IAAI;EACjE,mBAAmB,OAAO,MAAM,QAAQ,CAAC,KAAK,MAAM,SAAS,IAAI;EACjE,QAAmB,MAAM,SAAS;EAClC,aAAmBA,cAAO,MAAM,SAAS,EAAE,CAAC;EAE7C,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"duties.js","names":["toPerson"],"sources":["../../../src/SS12000/from/duties.ts"],"sourcesContent":["import { omit } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Duty } from '../types/duties';\nimport toPerson from './persons';\n\nexport default (duties: Duty[]) => {\n if (!Array.isArray(duties))\n throw new Error('(SS12000::From::Duties) Teacher input is not of array type', { cause: 'invalid_input' });\n\n return duties\n .map((duty): CoreTypes.mixedWithoutInternalId.teacher => ({\n ids: duty.id,\n displayName: duty.displayName ?? duty.person?.displayName,\n signature: duty.signature,\n ...(duty.person || duty._embedded?.person) && {\n person: {\n type: 'Teacher',\n ...duty.person && { ids: duty.person.id },\n ...duty._embedded?.person && omit(toPerson([ duty._embedded.person ])[0], 'type')\n }\n }\n }));\n};\n"],"mappings":";;;;AAKA,sBAAgB,WAAmB;AACjC,KAAI,CAAC,MAAM,QAAQ,QACjB,OAAM,IAAI,MAAM,8DAA8D,EAAE,OAAO;AAEzF,QAAO,OACJ,KAAK,UAAoD;EACxD,KAAa,KAAK;EAClB,aAAa,KAAK,eAAe,KAAK,QAAQ;EAC9C,WAAa,KAAK;EAClB,IAAI,KAAK,UAAU,KAAK,WAAW,WAAW,EAC5C,QAAQ;GACN,MAAM;GACN,GAAG,KAAK,UAAU,EAAE,KAAK,KAAK,OAAO;GACrC,GAAG,KAAK,WAAW,UAAU,KAAKA,gBAAS,CAAE,KAAK,UAAU,SAAU,IAAI"}
1
+ {"version":3,"file":"duties.js","names":["toPerson"],"sources":["../../../src/SS12000/from/duties.ts"],"sourcesContent":["import { omit } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Duty } from '../types/duties';\nimport toPerson from './persons';\n\nexport default (duties: Duty[]) => {\n if (!Array.isArray(duties))\n throw new Error('(SS12000::From::Duties) Teacher input is not of array type', { cause: 'invalid_input' });\n\n return duties\n .map((duty): CoreTypes.MixedWithoutInternalId.Teacher => ({\n ids: duty.id,\n displayName: duty.displayName ?? duty.person?.displayName,\n signature: duty.signature,\n ...(duty.person || duty._embedded?.person) && {\n person: {\n type: 'Teacher',\n ...duty.person && { ids: duty.person.id },\n ...duty._embedded?.person && omit(toPerson([ duty._embedded.person ])[0], 'type')\n }\n }\n }));\n};\n"],"mappings":";;;;AAKA,sBAAgB,WAAmB;AACjC,KAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,OAAM,IAAI,MAAM,8DAA8D,EAAE,OAAO,iBAAiB,CAAC;AAE3G,QAAO,OACJ,KAAK,UAAoD;EACxD,KAAa,KAAK;EAClB,aAAa,KAAK,eAAe,KAAK,QAAQ;EAC9C,WAAa,KAAK;EAClB,IAAI,KAAK,UAAU,KAAK,WAAW,WAAW,EAC5C,QAAQ;GACN,MAAM;GACN,GAAG,KAAK,UAAU,EAAE,KAAK,KAAK,OAAO,IAAI;GACzC,GAAG,KAAK,WAAW,UAAU,KAAKA,gBAAS,CAAE,KAAK,UAAU,OAAQ,CAAC,CAAC,IAAI,OAAO;GAClF,EACF;EACF,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","names":[],"sources":["../../../src/SS12000/from/groups.ts"],"sourcesContent":["import moment from 'moment';\nimport type { CoreTypes } from '../../core';\nimport type { Group } from '../types/groups';\n\nfunction _transformGroupMembers (\n members: Group['groupMemberships'],\n options?: Pick<CoreTypes.division, 'start' | 'end'>\n) {\n return [\n ...new Set(\n members?.filter(member => {\n if (options?.end && member.startDate && !moment(member.startDate).isBefore(moment(options.end)))\n return false;\n if (options?.start && member.endDate && !moment(member.endDate).isAfter(moment(options.start)))\n return false;\n return true;\n })\n .map((member) => member.person.id)\n .filter(Boolean)\n )\n ];\n}\n\nexport default (\n groups: Group[],\n options?: Pick<CoreTypes.division, 'start' | 'end'>\n) => {\n if (!Array.isArray(groups))\n throw new Error('(SS12000::From::Groups) Group input is not of array type', { cause: 'invalid_input' });\n\n return groups\n .map((group): CoreTypes.mixedWithoutInternalId.group => ({\n ids: group.id,\n displayName: group.displayName,\n ...group.groupType == 'Klass' && { species: 'class' },\n ...group.groupMemberships && {\n members: _transformGroupMembers(group.groupMemberships, options)\n }\n }));\n};"],"mappings":";;;AAIA,SAAS,uBACP,SACA,SACA;AACA,QAAO,CACL,GAAG,IAAI,IACL,SAAS,QAAO,WAAU;AACxB,MAAI,SAAS,OAAO,OAAO,aAAa,CAAC,OAAO,OAAO,WAAW,SAAS,OAAO,QAAQ,MACxF,QAAO;AACT,MAAI,SAAS,SAAS,OAAO,WAAW,CAAC,OAAO,OAAO,SAAS,QAAQ,OAAO,QAAQ,QACrF,QAAO;AACT,SAAO;IAEN,KAAK,WAAW,OAAO,OAAO,IAC9B,OAAO;;AAKhB,sBACE,QACA,YACG;AACH,KAAI,CAAC,MAAM,QAAQ,QACjB,OAAM,IAAI,MAAM,4DAA4D,EAAE,OAAO;AAEvF,QAAO,OACJ,KAAK,WAAmD;EACvD,KAAa,MAAM;EACnB,aAAa,MAAM;EACnB,GAAG,MAAM,aAAa,WAAW,EAAE,SAAS;EAC5C,GAAG,MAAM,oBAAoB,EAC3B,SAAS,uBAAuB,MAAM,kBAAkB"}
1
+ {"version":3,"file":"groups.js","names":[],"sources":["../../../src/SS12000/from/groups.ts"],"sourcesContent":["import moment from 'moment';\nimport type { CoreTypes } from '../../core';\nimport type { Group } from '../types/groups';\n\nfunction _transformGroupMembers (\n members: Group['groupMemberships'],\n options?: Pick<CoreTypes.Deep.Division, 'start' | 'end'>\n) {\n return [\n ...new Set(\n members?.filter(member => {\n if (options?.end && member.startDate && !moment(member.startDate).isBefore(moment(options.end)))\n return false;\n if (options?.start && member.endDate && !moment(member.endDate).isAfter(moment(options.start)))\n return false;\n return true;\n })\n .map((member) => member.person.id)\n .filter(Boolean)\n )\n ];\n}\n\nexport default (\n groups: Group[],\n options?: Pick<CoreTypes.Deep.Division, 'start' | 'end'>\n) => {\n if (!Array.isArray(groups))\n throw new Error('(SS12000::From::Groups) Group input is not of array type', { cause: 'invalid_input' });\n\n return groups\n .map((group): CoreTypes.MixedWithoutInternalId.Group => ({\n ids: group.id,\n displayName: group.displayName,\n ...group.groupType == 'Klass' && { species: 'class' },\n ...group.groupMemberships && {\n members: _transformGroupMembers(group.groupMemberships, options)\n }\n }));\n};"],"mappings":";;;AAIA,SAAS,uBACP,SACA,SACA;AACA,QAAO,CACL,GAAG,IAAI,IACL,SAAS,QAAO,WAAU;AACxB,MAAI,SAAS,OAAO,OAAO,aAAa,CAAC,OAAO,OAAO,UAAU,CAAC,SAAS,OAAO,QAAQ,IAAI,CAAC,CAC7F,QAAO;AACT,MAAI,SAAS,SAAS,OAAO,WAAW,CAAC,OAAO,OAAO,QAAQ,CAAC,QAAQ,OAAO,QAAQ,MAAM,CAAC,CAC5F,QAAO;AACT,SAAO;GACP,CACC,KAAK,WAAW,OAAO,OAAO,GAAG,CACjC,OAAO,QAAQ,CACnB,CACF;;AAGH,sBACE,QACA,YACG;AACH,KAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,OAAM,IAAI,MAAM,4DAA4D,EAAE,OAAO,iBAAiB,CAAC;AAEzG,QAAO,OACJ,KAAK,WAAmD;EACvD,KAAa,MAAM;EACnB,aAAa,MAAM;EACnB,GAAG,MAAM,aAAa,WAAW,EAAE,SAAS,SAAS;EACrD,GAAG,MAAM,oBAAoB,EAC3B,SAAS,uBAAuB,MAAM,kBAAkB,QAAQ,EACjE;EACF,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_activities","_calendarEvents","_duties","_groups","_persons","_resources","_rooms","_syllabuses"],"sources":["../../../src/SS12000/from/index.ts"],"sourcesContent":["import _activities from './activities';\nimport _calendarEvents from './calendar-events';\nimport _duties from './duties';\nimport _groups from './groups';\nimport _persons from './persons';\nimport _resources from './resources';\nimport _rooms from './rooms';\nimport _syllabuses from './syllabuses';\n\nexport default {\n activities: _activities,\n calendarEvents: _calendarEvents,\n duties: _duties,\n groups: _groups,\n persons: _persons,\n resources: _resources,\n rooms: _rooms,\n syllabuses: _syllabuses,\n};"],"mappings":";;;;;;;;;;AASA,mBAAe;CACb,YAAgBA;CAChB,gBAAgBC;CAChB,QAAgBC;CAChB,QAAgBC;CAChB,SAAgBC;CAChB,WAAgBC;CAChB,OAAgBC;CAChB,YAAgBC"}
1
+ {"version":3,"file":"index.js","names":["_activities","_calendarEvents","_duties","_groups","_persons","_resources","_rooms","_syllabuses"],"sources":["../../../src/SS12000/from/index.ts"],"sourcesContent":["import _activities from './activities';\nimport _calendarEvents from './calendar-events';\nimport _duties from './duties';\nimport _groups from './groups';\nimport _persons from './persons';\nimport _resources from './resources';\nimport _rooms from './rooms';\nimport _syllabuses from './syllabuses';\n\nexport default {\n activities: _activities,\n calendarEvents: _calendarEvents,\n duties: _duties,\n groups: _groups,\n persons: _persons,\n resources: _resources,\n rooms: _rooms,\n syllabuses: _syllabuses,\n};"],"mappings":";;;;;;;;;;AASA,mBAAe;CACb,YAAgBA;CAChB,gBAAgBC;CAChB,QAAgBC;CAChB,QAAgBC;CAChB,SAAgBC;CAChB,WAAgBC;CAChB,OAAgBC;CAChB,YAAgBC;CACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"persons.js","names":["SexMap: Record<NonNullable<Person['sex']>, CoreTypes.person['sex']>","TypeMap: Record<\n NonNullable<\n Person['phoneNumbers']\n >[0]['type'],\n NonNullable<\n CoreTypes.person['phoneNumbers']\n >[0]['type']\n>"],"sources":["../../../src/SS12000/from/persons.ts"],"sourcesContent":["import { get, omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Person } from '../types/persons';\n\nconst SexMap: Record<NonNullable<Person['sex']>, CoreTypes.person['sex']> = { Man: 'Man', Kvinna: 'Woman', Okänt: undefined };\nconst TypeMap: Record<\n NonNullable<\n Person['phoneNumbers']\n >[0]['type'],\n NonNullable<\n CoreTypes.person['phoneNumbers']\n >[0]['type']\n> = {\n 'Privat': 'private',\n 'Hem': 'private',\n 'Arbete övrigt': 'organization',\n 'Arbete': 'organization',\n 'Skola elev': 'organization',\n 'Skola personal': 'organization'\n};\n\nexport default (groups: Person[]) => {\n if (!Array.isArray(groups))\n throw new Error('(SS12000::From::Person) Person input is not of array type', { cause: 'invalid_input' });\n\n return groups\n .map((person): CoreTypes.mixedWithoutInternalId.person => ({\n ids: person.id,\n displayName: person.displayName,\n type: 'Student',\n ...omitBy({\n sex: person.sex ? get(SexMap, person.sex, undefined) : undefined,\n displayName: person.displayName,\n firstName: person.givenName,\n lastName: person.familyName,\n SSN: person.civicNo,\n emails: person.emails?.map(({ type, ...arg }) => ({ type: get(TypeMap, type, undefined), ...arg })),\n phoneNumbers: person.phoneNumbers?.map(({ type, ...arg }) => ({ type: get(TypeMap, type, undefined), ...arg })),\n }, x => x == null)\n }));\n};"],"mappings":";;;AAIA,MAAMA,SAAsE;CAAE,KAAK;CAAO,QAAQ;CAAS,OAAO;;AAClH,MAAMC,UAOF;CACF,UAAkB;CAClB,OAAkB;CAClB,iBAAkB;CAClB,UAAkB;CAClB,cAAkB;CAClB,kBAAkB;;AAGpB,uBAAgB,WAAqB;AACnC,KAAI,CAAC,MAAM,QAAQ,QACjB,OAAM,IAAI,MAAM,6DAA6D,EAAE,OAAO;AAExF,QAAO,OACJ,KAAK,YAAqD;EACzD,KAAa,OAAO;EACpB,aAAa,OAAO;EACpB,MAAa;EACb,GAAG,OAAO;GACR,KAAc,OAAO,MAAM,IAAI,QAAQ,OAAO,KAAK,UAAa;GAChE,aAAc,OAAO;GACrB,WAAc,OAAO;GACrB,UAAc,OAAO;GACrB,KAAc,OAAO;GACrB,QAAc,OAAO,QAAQ,KAAK,EAAE,KAAM,GAAG,WAAW;IAAE,MAAM,IAAI,SAAS,MAAM;IAAY,GAAG;;GAClG,cAAc,OAAO,cAAc,KAAK,EAAE,KAAM,GAAG,WAAW;IAAE,MAAM,IAAI,SAAS,MAAM;IAAY,GAAG;;MACvG,MAAK,KAAK"}
1
+ {"version":3,"file":"persons.js","names":["SexMap: Record<NonNullable<Person['sex']>, CoreTypes.Deep.Person['sex']>","TypeMap: Record<\n NonNullable<\n Person['phoneNumbers']\n >[0]['type'],\n NonNullable<\n CoreTypes.Deep.Person['phoneNumbers']\n >[0]['type']\n>"],"sources":["../../../src/SS12000/from/persons.ts"],"sourcesContent":["import { get, omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Person } from '../types/persons';\n\nconst SexMap: Record<NonNullable<Person['sex']>, CoreTypes.Deep.Person['sex']> = { Man: 'Man', Kvinna: 'Woman', Okänt: undefined };\nconst TypeMap: Record<\n NonNullable<\n Person['phoneNumbers']\n >[0]['type'],\n NonNullable<\n CoreTypes.Deep.Person['phoneNumbers']\n >[0]['type']\n> = {\n 'Privat': 'private',\n 'Hem': 'private',\n 'Arbete övrigt': 'organization',\n 'Arbete': 'organization',\n 'Skola elev': 'organization',\n 'Skola personal': 'organization'\n};\n\nexport default (groups: Person[]) => {\n if (!Array.isArray(groups))\n throw new Error('(SS12000::From::Person) Person input is not of array type', { cause: 'invalid_input' });\n\n return groups\n .map((person): CoreTypes.MixedWithoutInternalId.Person => ({\n ids: person.id,\n displayName: person.displayName,\n type: 'Student',\n ...omitBy({\n sex: person.sex ? get(SexMap, person.sex, undefined) : undefined,\n displayName: person.displayName,\n firstName: person.givenName,\n lastName: person.familyName,\n SSN: person.civicNo,\n emails: person.emails?.map(({ type, ...arg }) => ({ type: get(TypeMap, type, undefined), ...arg })),\n phoneNumbers: person.phoneNumbers?.map(({ type, ...arg }) => ({ type: get(TypeMap, type, undefined), ...arg })),\n }, x => x == null)\n }));\n};"],"mappings":";;;AAIA,MAAMA,SAA2E;CAAE,KAAK;CAAO,QAAQ;CAAS,OAAO;CAAW;AAClI,MAAMC,UAOF;CACF,UAAkB;CAClB,OAAkB;CAClB,iBAAkB;CAClB,UAAkB;CAClB,cAAkB;CAClB,kBAAkB;CACnB;AAED,uBAAgB,WAAqB;AACnC,KAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,OAAM,IAAI,MAAM,6DAA6D,EAAE,OAAO,iBAAiB,CAAC;AAE1G,QAAO,OACJ,KAAK,YAAqD;EACzD,KAAa,OAAO;EACpB,aAAa,OAAO;EACpB,MAAa;EACb,GAAG,OAAO;GACR,KAAc,OAAO,MAAM,IAAI,QAAQ,OAAO,KAAK,OAAU,GAAG;GAChE,aAAc,OAAO;GACrB,WAAc,OAAO;GACrB,UAAc,OAAO;GACrB,KAAc,OAAO;GACrB,QAAc,OAAO,QAAQ,KAAK,EAAE,KAAM,GAAG,WAAW;IAAE,MAAM,IAAI,SAAS,MAAM,OAAU;IAAE,GAAG;IAAK,EAAE;GACzG,cAAc,OAAO,cAAc,KAAK,EAAE,KAAM,GAAG,WAAW;IAAE,MAAM,IAAI,SAAS,MAAM,OAAU;IAAE,GAAG;IAAK,EAAE;GAChH,GAAE,MAAK,KAAK,KAAK;EACnB,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","names":[],"sources":["../../../src/SS12000/from/resources.ts"],"sourcesContent":["\nimport type { Resource } from '../types/resources';\n\nexport default (resources: Resource[]) => {\n if (!Array.isArray(resources))\n throw new Error('(SS12000::From::Resources) Resources input is not of array type', { cause: 'invalid_input' });\n\n return resources.map((resource) => ({\n ids: resource.id,\n }));\n};\n"],"mappings":";AAGA,yBAAgB,cAA0B;AACxC,KAAI,CAAC,MAAM,QAAQ,WACjB,OAAM,IAAI,MAAM,mEAAmE,EAAE,OAAO;AAE9F,QAAO,UAAU,KAAK,cAAc,EAClC,KAAK,SAAS"}
1
+ {"version":3,"file":"resources.js","names":[],"sources":["../../../src/SS12000/from/resources.ts"],"sourcesContent":["\nimport type { Resource } from '../types/resources';\n\nexport default (resources: Resource[]) => {\n if (!Array.isArray(resources))\n throw new Error('(SS12000::From::Resources) Resources input is not of array type', { cause: 'invalid_input' });\n\n return resources.map((resource) => ({\n ids: resource.id,\n }));\n};\n"],"mappings":";AAGA,yBAAgB,cAA0B;AACxC,KAAI,CAAC,MAAM,QAAQ,UAAU,CAC3B,OAAM,IAAI,MAAM,mEAAmE,EAAE,OAAO,iBAAiB,CAAC;AAEhH,QAAO,UAAU,KAAK,cAAc,EAClC,KAAK,SAAS,IACf,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"rooms.js","names":[],"sources":["../../../src/SS12000/from/rooms.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Room } from '../types/rooms';\n\nexport default (locations: Room[]) => {\n if (!Array.isArray(locations))\n throw new Error('(SS12000::From::Room) Room input is not of array type', { cause: 'invalid_input' });\n\n return locations\n .map((location): CoreTypes.mixedWithoutInternalId.location => ({\n ids: location.id,\n ...omitBy({\n displayName: location.displayName,\n seats: location.seats,\n tags: location.tags,\n }, x => x == null),\n }));\n};"],"mappings":";;;AAIA,qBAAgB,cAAsB;AACpC,KAAI,CAAC,MAAM,QAAQ,WACjB,OAAM,IAAI,MAAM,yDAAyD,EAAE,OAAO;AAEpF,QAAO,UACJ,KAAK,cAAyD;EAC7D,KAAK,SAAS;EACd,GAAG,OAAO;GACR,aAAa,SAAS;GACtB,OAAa,SAAS;GACtB,MAAa,SAAS;MACrB,MAAK,KAAK"}
1
+ {"version":3,"file":"rooms.js","names":[],"sources":["../../../src/SS12000/from/rooms.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Room } from '../types/rooms';\n\nexport default (locations: Room[]) => {\n if (!Array.isArray(locations))\n throw new Error('(SS12000::From::Room) Room input is not of array type', { cause: 'invalid_input' });\n\n return locations\n .map((location): CoreTypes.MixedWithoutInternalId.Location => ({\n ids: location.id,\n ...omitBy({\n displayName: location.displayName,\n seats: location.seats,\n tags: location.tags,\n }, x => x == null),\n }));\n};"],"mappings":";;;AAIA,qBAAgB,cAAsB;AACpC,KAAI,CAAC,MAAM,QAAQ,UAAU,CAC3B,OAAM,IAAI,MAAM,yDAAyD,EAAE,OAAO,iBAAiB,CAAC;AAEtG,QAAO,UACJ,KAAK,cAAyD;EAC7D,KAAK,SAAS;EACd,GAAG,OAAO;GACR,aAAa,SAAS;GACtB,OAAa,SAAS;GACtB,MAAa,SAAS;GACvB,GAAE,MAAK,KAAK,KAAK;EACnB,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"syllabuses.js","names":[],"sources":["../../../src/SS12000/from/syllabuses.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Syllabus } from '../types/syllabus';\n\nexport default (syllabuses: Syllabus[]) => {\n if (!Array.isArray(syllabuses))\n throw new Error('(SS12000::From::Syllabus) Syllabus input is not of array type', { cause: 'invalid_input' });\n\n return syllabuses\n .map((syllabus): CoreTypes.mixedWithoutInternalId.syllabus => ({\n ids: syllabus.id,\n schoolType: syllabus.schoolType!,\n official: syllabus.official!,\n subjectName: syllabus.subjectName!,\n ...omitBy({\n subjectDesignation: syllabus.subjectDesignation,\n subjectCode: syllabus.subjectCode,\n curriculum: syllabus.curriculum,\n }, x => x == null),\n }));\n};"],"mappings":";;;AAIA,0BAAgB,eAA2B;AACzC,KAAI,CAAC,MAAM,QAAQ,YACjB,OAAM,IAAI,MAAM,iEAAiE,EAAE,OAAO;AAE5F,QAAO,WACJ,KAAK,cAAyD;EAC7D,KAAa,SAAS;EACtB,YAAa,SAAS;EACtB,UAAa,SAAS;EACtB,aAAa,SAAS;EACtB,GAAG,OAAO;GACR,oBAAoB,SAAS;GAC7B,aAAoB,SAAS;GAC7B,YAAoB,SAAS;MAC5B,MAAK,KAAK"}
1
+ {"version":3,"file":"syllabuses.js","names":[],"sources":["../../../src/SS12000/from/syllabuses.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Syllabus } from '../types/syllabus';\n\nexport default (syllabuses: Syllabus[]) => {\n if (!Array.isArray(syllabuses))\n throw new Error('(SS12000::From::Syllabus) Syllabus input is not of array type', { cause: 'invalid_input' });\n\n return syllabuses\n .map((syllabus): CoreTypes.MixedWithoutInternalId.Syllabus => ({\n ids: syllabus.id,\n schoolType: syllabus.schoolType!,\n official: syllabus.official!,\n subjectName: syllabus.subjectName!,\n ...omitBy({\n subjectDesignation: syllabus.subjectDesignation,\n subjectCode: syllabus.subjectCode,\n curriculum: syllabus.curriculum,\n }, x => x == null),\n }));\n};"],"mappings":";;;AAIA,0BAAgB,eAA2B;AACzC,KAAI,CAAC,MAAM,QAAQ,WAAW,CAC5B,OAAM,IAAI,MAAM,iEAAiE,EAAE,OAAO,iBAAiB,CAAC;AAE9G,QAAO,WACJ,KAAK,cAAyD;EAC7D,KAAa,SAAS;EACtB,YAAa,SAAS;EACtB,UAAa,SAAS;EACtB,aAAa,SAAS;EACtB,GAAG,OAAO;GACR,oBAAoB,SAAS;GAC7B,aAAoB,SAAS;GAC7B,YAAoB,SAAS;GAC9B,GAAE,MAAK,KAAK,KAAK;EACnB,EAAE"}