@royalschedule/maps 4.0.15 → 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 (346) 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 +13 -11
  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 +73 -58
  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.map +1 -1
  62. package/dist/RS/make-connected.d.ts +17 -16
  63. package/dist/RS/make-connected.js +63 -96
  64. package/dist/RS/make-connected.js.map +1 -1
  65. package/dist/RS/to/index.js.map +1 -1
  66. package/dist/RS/to/initial-configuration.js +4 -6
  67. package/dist/RS/to/initial-configuration.js.map +1 -1
  68. package/dist/RS/to/input/collections.js.map +1 -1
  69. package/dist/RS/to/input/default.js +1 -2
  70. package/dist/RS/to/input/default.js.map +1 -1
  71. package/dist/RS/to/input/dependencies.js +1 -3
  72. package/dist/RS/to/input/dependencies.js.map +1 -1
  73. package/dist/RS/to/input/dynamic-locked-times.js +1 -2
  74. package/dist/RS/to/input/dynamic-locked-times.js.map +1 -1
  75. package/dist/RS/to/input/events.js +5 -3
  76. package/dist/RS/to/input/events.js.map +1 -1
  77. package/dist/RS/to/input/groups.js.map +1 -1
  78. package/dist/RS/to/input/individuals.js +2 -3
  79. package/dist/RS/to/input/individuals.js.map +1 -1
  80. package/dist/RS/to/input/input.js +1 -3
  81. package/dist/RS/to/input/input.js.map +1 -1
  82. package/dist/RS/to/input/intervals.js +2 -4
  83. package/dist/RS/to/input/intervals.js.map +1 -1
  84. package/dist/RS/to/input/periods.js +6 -8
  85. package/dist/RS/to/input/periods.js.map +1 -1
  86. package/dist/RS/to/input/settings.js.map +1 -1
  87. package/dist/RS/to/input/teachers.js.map +1 -1
  88. package/dist/RS/to/input/util/attach-locked-times.js.map +1 -1
  89. package/dist/RS/to/input/util/parse-days.js.map +1 -1
  90. package/dist/RS/to/input/util/parse-group-references.js.map +1 -1
  91. package/dist/RS/to/input/util/parse-intervals.js +2 -4
  92. package/dist/RS/to/input/util/parse-intervals.js.map +1 -1
  93. package/dist/RS/to/input/util/parse-location-references.js +1 -2
  94. package/dist/RS/to/input/util/parse-location-references.js.map +1 -1
  95. package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -1
  96. package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -1
  97. package/dist/RS/to/input/util/util.js +1 -2
  98. package/dist/RS/to/input/util/util.js.map +1 -1
  99. package/dist/RS/to/schedules.js +1 -1
  100. package/dist/RS/to/schedules.js.map +1 -1
  101. package/dist/RS/types/to.d.ts +12 -3
  102. package/dist/RS/types/to.js +1 -1
  103. package/dist/RS/types/to.js.map +1 -1
  104. package/dist/SS12000/from/activities.js +1 -2
  105. package/dist/SS12000/from/activities.js.map +1 -1
  106. package/dist/SS12000/from/calendar-events.js.map +1 -1
  107. package/dist/SS12000/from/duties.js.map +1 -1
  108. package/dist/SS12000/from/groups.js.map +1 -1
  109. package/dist/SS12000/from/index.js.map +1 -1
  110. package/dist/SS12000/from/persons.js.map +1 -1
  111. package/dist/SS12000/from/resources.js.map +1 -1
  112. package/dist/SS12000/from/rooms.js.map +1 -1
  113. package/dist/SS12000/from/syllabuses.js.map +1 -1
  114. package/dist/SS12000/index.d.ts +12567 -9
  115. package/dist/SS12000/to/activities.js.map +1 -1
  116. package/dist/SS12000/to/calendar-events.js.map +1 -1
  117. package/dist/SS12000/to/common.js.map +1 -1
  118. package/dist/SS12000/to/duties.js.map +1 -1
  119. package/dist/SS12000/to/groups.js.map +1 -1
  120. package/dist/SS12000/to/index.d.ts +17 -16
  121. package/dist/SS12000/to/persons.js.map +1 -1
  122. package/dist/SS12000/to/resources.js.map +1 -1
  123. package/dist/SS12000/to/rooms.js.map +1 -1
  124. package/dist/SS12000/to/syllabuses.js.map +1 -1
  125. package/dist/SchoolSoft/api/from/index.js.map +1 -1
  126. package/dist/SchoolSoft/api/from/schedules.js +8 -12
  127. package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
  128. package/dist/SchoolSoft/api/index.d.ts +444 -9
  129. package/dist/SchoolSoft/file/from/index.js.map +1 -1
  130. package/dist/SchoolSoft/file/from/schedules.js +83 -87
  131. package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
  132. package/dist/SchoolSoft/file/index.d.ts +2 -1
  133. package/dist/SchoolSoft/file/to/index.d.ts +5 -4
  134. package/dist/SchoolSoft/file/to/schedules.js +1 -2
  135. package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
  136. package/dist/SchoolSoft/index.d.ts +2 -1
  137. package/dist/Schoolity/txt/to/index.d.ts +2 -1
  138. package/dist/Schoolity/txt/to/schedules.js +5 -12
  139. package/dist/Schoolity/txt/to/schedules.js.map +1 -1
  140. package/dist/Skola24/mdb/from/course-and-events.js +3 -5
  141. package/dist/Skola24/mdb/from/course-and-events.js.map +1 -1
  142. package/dist/Skola24/mdb/from/groups.js.map +1 -1
  143. package/dist/Skola24/mdb/from/index.js.map +1 -1
  144. package/dist/Skola24/mdb/from/locations.js.map +1 -1
  145. package/dist/Skola24/mdb/from/schedule.d.ts +6 -5
  146. package/dist/Skola24/mdb/from/schedule.js.map +1 -1
  147. package/dist/Skola24/mdb/from/teachers.js.map +1 -1
  148. package/dist/Skola24/txt/from/calendar-exceptions.js +1 -2
  149. package/dist/Skola24/txt/from/calendar-exceptions.js.map +1 -1
  150. package/dist/Skola24/txt/from/division.js.map +1 -1
  151. package/dist/Skola24/txt/from/index.js.map +1 -1
  152. package/dist/Skola24/txt/from/period.js +31 -34
  153. package/dist/Skola24/txt/from/period.js.map +1 -1
  154. package/dist/Skola24/txt/from/schedules.d.ts +9 -8
  155. package/dist/Skola24/txt/from/schedules.js +10 -12
  156. package/dist/Skola24/txt/from/schedules.js.map +1 -1
  157. package/dist/Skola24/txt/from/util.js.map +1 -1
  158. package/dist/Skola24/txt/index.d.ts +2 -1
  159. package/dist/Skola24/txt/to/index.d.ts +2 -1
  160. package/dist/Skola24/txt/to/schedules.js +5 -12
  161. package/dist/Skola24/txt/to/schedules.js.map +1 -1
  162. package/dist/common/constants.js.map +1 -1
  163. package/dist/common/functions.js +46 -10
  164. package/dist/common/functions.js.map +1 -1
  165. package/dist/common/get-date.js.map +1 -1
  166. package/dist/common/make-chainable/index.js.map +1 -1
  167. package/dist/common/types.d.ts +3 -6
  168. package/dist/core/from/configurations.js.map +1 -1
  169. package/dist/core/from/courses.js.map +1 -1
  170. package/dist/core/from/events.js +1 -1
  171. package/dist/core/from/events.js.map +1 -1
  172. package/dist/core/from/exceptions.js.map +1 -1
  173. package/dist/core/from/groups.js.map +1 -1
  174. package/dist/core/from/index.js +9 -6
  175. package/dist/core/from/index.js.map +1 -1
  176. package/dist/core/from/locations.js.map +1 -1
  177. package/dist/core/from/locked-times.js.map +1 -1
  178. package/dist/core/from/overlap-groups.js.map +1 -1
  179. package/dist/core/from/periods.js.map +1 -1
  180. package/dist/core/from/persons.js.map +1 -1
  181. package/dist/core/from/root-intervals.js.map +1 -1
  182. package/dist/core/from/schedules.js.map +1 -1
  183. package/dist/core/from/syllabuses.js.map +1 -1
  184. package/dist/core/from/teachers.js.map +1 -1
  185. package/dist/core/index.d.ts +24 -1
  186. package/dist/core/index.js +4 -0
  187. package/dist/core/index.js.map +1 -1
  188. package/dist/core/interfaces/index.d.ts +23 -0
  189. package/dist/core/interfaces/index.js +6 -0
  190. package/dist/core/interfaces/other/companies.d.ts +132 -0
  191. package/dist/core/interfaces/other/companies.js +9 -0
  192. package/dist/core/interfaces/other/companies.js.map +1 -0
  193. package/dist/core/interfaces/other/etc.d.ts +19 -0
  194. package/dist/core/interfaces/other/index.d.ts +6 -0
  195. package/dist/core/interfaces/other/integrations.d.ts +17 -0
  196. package/dist/core/interfaces/other/operations.d.ts +36 -0
  197. package/dist/core/interfaces/other/policies.d.ts +31 -0
  198. package/dist/core/interfaces/other/sync-logs.d.ts +21 -0
  199. package/dist/core/interfaces/other/users.d.ts +35 -0
  200. package/dist/core/interfaces/vertices/companies.d.ts +8 -0
  201. package/dist/core/interfaces/vertices/configurations.d.ts +58 -0
  202. package/dist/core/interfaces/vertices/courses.d.ts +68 -0
  203. package/dist/core/{types → interfaces/vertices}/division-settings.d.ts +31 -29
  204. package/dist/core/interfaces/vertices/divisions.d.ts +31 -0
  205. package/dist/core/interfaces/vertices/events.d.ts +100 -0
  206. package/dist/core/interfaces/vertices/exceptions.d.ts +74 -0
  207. package/dist/core/interfaces/vertices/generations.d.ts +23 -0
  208. package/dist/core/interfaces/vertices/groups.d.ts +53 -0
  209. package/dist/core/interfaces/vertices/index.d.ts +209 -0
  210. package/dist/core/interfaces/vertices/index.js +3 -0
  211. package/dist/core/interfaces/vertices/locations.d.ts +22 -0
  212. package/dist/core/interfaces/vertices/locked-times.d.ts +37 -0
  213. package/dist/core/interfaces/vertices/overlap-groups.d.ts +17 -0
  214. package/dist/core/interfaces/vertices/periods.d.ts +15 -0
  215. package/dist/core/interfaces/vertices/persons.d.ts +32 -0
  216. package/dist/core/interfaces/vertices/properties/belongs-to.d.ts +11 -0
  217. package/dist/core/interfaces/vertices/properties/coalesced.d.ts +8 -0
  218. package/dist/core/interfaces/vertices/properties/days.d.ts +9 -0
  219. package/dist/core/interfaces/vertices/properties/index.d.ts +15 -0
  220. package/dist/core/interfaces/vertices/properties/intervals.d.ts +10 -0
  221. package/dist/core/{types/common → interfaces/vertices/properties}/maximum-schedule-span.d.ts +1 -1
  222. package/dist/core/interfaces/vertices/properties/min-break-length.d.ts +5 -0
  223. package/dist/core/{types/common/planned-schedule-duration.d.ts → interfaces/vertices/properties/planned-scheduled-duration.d.ts} +2 -2
  224. package/dist/core/interfaces/vertices/properties/species.d.ts +9 -0
  225. package/dist/core/interfaces/vertices/properties/tags.d.ts +9 -0
  226. package/dist/core/interfaces/vertices/properties/week.d.ts +22 -0
  227. package/dist/core/interfaces/vertices/properties/week.js +6 -0
  228. package/dist/core/interfaces/vertices/properties/week.js.map +1 -0
  229. package/dist/core/interfaces/vertices/root-intervals.d.ts +14 -0
  230. package/dist/core/interfaces/vertices/syllabuses.d.ts +18 -0
  231. package/dist/core/interfaces/vertices/teachers.d.ts +43 -0
  232. package/dist/core/interfaces/vertices/users.d.ts +8 -0
  233. package/dist/core/interfaces/vertices/util/common.d.ts +28 -0
  234. package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.ts +31 -0
  235. package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.ts +51 -0
  236. package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.ts +64 -0
  237. package/dist/core/interfaces/vertices/util/edges.d.ts +105 -0
  238. package/dist/core/interfaces/vertices/util/index.d.ts +5 -0
  239. package/dist/core/interfaces/vertices/util/keys-of.d.ts +27 -0
  240. package/dist/core/interfaces/vertices/util/serialized-vertex-export.d.ts +12 -0
  241. package/dist/core/interfaces/vertices/util/util.d.ts +76 -0
  242. package/dist/core/interfaces/vertices/util/vertex-query/index.d.ts +44 -0
  243. package/dist/core/interfaces/vertices/util/vertex-query/util.d.ts +13 -0
  244. package/dist/core/interfaces/vertices/util/vertex.d.ts +70 -0
  245. package/dist/core/interfaces/vertices/vertex-query.d.ts +102 -0
  246. package/dist/core/interfaces/vertices/vertex-query.js +94 -0
  247. package/dist/core/interfaces/vertices/vertex-query.js.map +1 -0
  248. package/dist/core/to/configurations.js +2 -3
  249. package/dist/core/to/configurations.js.map +1 -1
  250. package/dist/core/to/courses.js +2 -3
  251. package/dist/core/to/courses.js.map +1 -1
  252. package/dist/core/to/division.js.map +1 -1
  253. package/dist/core/to/events.js +2 -3
  254. package/dist/core/to/events.js.map +1 -1
  255. package/dist/core/to/exceptions.js +4 -4
  256. package/dist/core/to/exceptions.js.map +1 -1
  257. package/dist/core/to/groups.js +2 -3
  258. package/dist/core/to/groups.js.map +1 -1
  259. package/dist/core/to/locations.js +2 -3
  260. package/dist/core/to/locations.js.map +1 -1
  261. package/dist/core/to/locked-times.js +2 -3
  262. package/dist/core/to/locked-times.js.map +1 -1
  263. package/dist/core/to/overlap-groups.js +2 -3
  264. package/dist/core/to/overlap-groups.js.map +1 -1
  265. package/dist/core/to/periods.js +2 -3
  266. package/dist/core/to/periods.js.map +1 -1
  267. package/dist/core/to/persons.js +3 -9
  268. package/dist/core/to/persons.js.map +1 -1
  269. package/dist/core/to/root-intervals.js +2 -3
  270. package/dist/core/to/root-intervals.js.map +1 -1
  271. package/dist/core/to/schedules.d.ts +17 -18
  272. package/dist/core/to/schedules.js.map +1 -1
  273. package/dist/core/to/settings.js +2 -3
  274. package/dist/core/to/settings.js.map +1 -1
  275. package/dist/core/to/syllabuses.js +2 -3
  276. package/dist/core/to/syllabuses.js.map +1 -1
  277. package/dist/core/to/teachers.js +4 -4
  278. package/dist/core/to/teachers.js.map +1 -1
  279. package/dist/core/to/util.d.ts +4 -8
  280. package/dist/core/to/util.js +7 -5
  281. package/dist/core/to/util.js.map +1 -1
  282. package/dist/core/types/common/index.d.ts +4 -41
  283. package/dist/core/types/index.d.ts +108 -112
  284. package/dist/core/util.js +4 -5
  285. package/dist/core/util.js.map +1 -1
  286. package/dist/identify/constants/index.d.ts +1 -1
  287. package/dist/identify/constants/index.js.map +1 -1
  288. package/dist/identify/index.js +1 -2
  289. package/dist/identify/index.js.map +1 -1
  290. package/dist/index.d.ts +23 -1
  291. package/dist/index.js +4 -1
  292. package/dist/sdui/from/classes.js.map +1 -1
  293. package/dist/sdui/from/courses.js.map +1 -1
  294. package/dist/sdui/from/holidays.js.map +1 -1
  295. package/dist/sdui/from/index.js.map +1 -1
  296. package/dist/sdui/from/lessons.js +4 -0
  297. package/dist/sdui/from/lessons.js.map +1 -1
  298. package/dist/sdui/from/rooms.js.map +1 -1
  299. package/dist/sdui/from/schedules.d.ts +10 -8
  300. package/dist/sdui/from/schedules.js.map +1 -1
  301. package/dist/sdui/from/school-years.js +0 -1
  302. package/dist/sdui/from/school-years.js.map +1 -1
  303. package/dist/sdui/from/substitution-plans.js.map +1 -1
  304. package/dist/sdui/from/teachers.js.map +1 -1
  305. package/dist/sdui/index.d.ts +1 -1
  306. package/dist/sdui/to/classes.js.map +1 -1
  307. package/dist/sdui/to/courses.js.map +1 -1
  308. package/dist/sdui/to/holidays.js.map +1 -1
  309. package/dist/sdui/to/hours.js.map +1 -1
  310. package/dist/sdui/to/index.d.ts +12 -10
  311. package/dist/sdui/to/lessons.js.map +1 -1
  312. package/dist/sdui/to/rooms.js.map +1 -1
  313. package/dist/sdui/to/schedules.js.map +1 -1
  314. package/dist/sdui/to/school-years.js.map +1 -1
  315. package/dist/sdui/to/substitution-plans.js +3 -6
  316. package/dist/sdui/to/substitution-plans.js.map +1 -1
  317. package/dist/sdui/to/teachers.js.map +1 -1
  318. package/dist/vKlass/from/index.js.map +1 -1
  319. package/dist/vKlass/from/schedule.d.ts +4 -3
  320. package/dist/vKlass/from/schedule.js +2 -2
  321. package/dist/vKlass/from/schedule.js.map +1 -1
  322. package/dist/vKlass/to/schedules.d.ts +4 -4
  323. package/dist/vKlass/to/schedules.js +6 -17
  324. package/dist/vKlass/to/schedules.js.map +1 -1
  325. package/package.json +24 -22
  326. package/dist/core/types/areas.d.ts +0 -10
  327. package/dist/core/types/common/break-lengths.d.ts +0 -5
  328. package/dist/core/types/common/days.d.ts +0 -8
  329. package/dist/core/types/common/intervals.d.ts +0 -20
  330. package/dist/core/types/common/tag.d.ts +0 -9
  331. package/dist/core/types/configurations.d.ts +0 -31
  332. package/dist/core/types/courses.d.ts +0 -60
  333. package/dist/core/types/divisions.d.ts +0 -24
  334. package/dist/core/types/events.d.ts +0 -56
  335. package/dist/core/types/exceptions.d.ts +0 -35
  336. package/dist/core/types/groups.d.ts +0 -44
  337. package/dist/core/types/locations.d.ts +0 -27
  338. package/dist/core/types/locked-times.d.ts +0 -33
  339. package/dist/core/types/overlap-groups.d.ts +0 -14
  340. package/dist/core/types/periods.d.ts +0 -14
  341. package/dist/core/types/persons.d.ts +0 -38
  342. package/dist/core/types/root-intervals.d.ts +0 -13
  343. package/dist/core/types/schedules.d.ts +0 -44
  344. package/dist/core/types/syllabus.d.ts +0 -18
  345. package/dist/core/types/teachers.d.ts +0 -44
  346. package/dist/core/vertex-mapping.d.ts +0 -69
@@ -1,18 +1,453 @@
1
- import { Vertex } from "../../core/types/common/index.js";
2
- import { Types } 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";
3
8
  import { Schedule } from "./types/schedule.js";
4
- import { Types as Types$1 } from "./types/index.js";
9
+ import { Types } from "./types/index.js";
10
+ import "../../index.js";
11
+ import * as moment193 from "moment";
5
12
 
6
13
  //#region src/SchoolSoft/api/index.d.ts
7
14
  declare class Map {
8
15
  static from: {
9
16
  schedules: (data: Schedule) => {
10
- locations: (Types.serializedWithoutInternalId.location & Required<Pick<Vertex, "ids">>)[];
11
- teachers: (Types.serializedWithoutInternalId.teacher & Required<Pick<Vertex, "ids">>)[];
12
- groups: (Types.serializedWithoutInternalId.group & Required<Pick<Vertex, "ids">>)[];
13
- courses: (Types.serializedWithoutInternalId.course & Required<Pick<Vertex, "ids">>)[];
14
- events: (Types.serializedWithoutInternalId.event & Required<Pick<Vertex, "ids">>)[];
15
- persons: (Types.serializedWithoutInternalId.person & Required<Pick<Vertex, "ids">>)[];
17
+ locations: (Omit<{
18
+ id: IDType;
19
+ _id: PrivateIDType;
20
+ ids?: string | undefined;
21
+ is?: "location" | undefined;
22
+ displayName?: string | undefined;
23
+ createdAt?: string | undefined;
24
+ updatedAt?: string | undefined;
25
+ lastModifiedBy?: string | undefined;
26
+ tags?: Tag[] | undefined;
27
+ minBreakLength?: number | undefined;
28
+ days?: Day[] | undefined;
29
+ maximumCapacity?: number | undefined;
30
+ belongsTo?: string | undefined;
31
+ lockedTimes?: string[] | undefined;
32
+ lunch?: string[] | undefined;
33
+ exceptions?: string[] | undefined;
34
+ }, "id" | "_id" | "ids"> & Partial<Pick<{
35
+ id: IDType;
36
+ _id: PrivateIDType;
37
+ ids?: string | undefined;
38
+ is?: "location" | undefined;
39
+ displayName?: string | undefined;
40
+ createdAt?: string | undefined;
41
+ updatedAt?: string | undefined;
42
+ lastModifiedBy?: string | undefined;
43
+ tags?: Tag[] | undefined;
44
+ minBreakLength?: number | undefined;
45
+ days?: Day[] | undefined;
46
+ maximumCapacity?: number | undefined;
47
+ belongsTo?: string | undefined;
48
+ lockedTimes?: string[] | undefined;
49
+ lunch?: string[] | undefined;
50
+ exceptions?: string[] | undefined;
51
+ }, "id" | "_id" | "ids">> & {
52
+ ids: string;
53
+ })[];
54
+ teachers: (Omit<{
55
+ id: IDType;
56
+ _id: PrivateIDType;
57
+ ids?: string | undefined;
58
+ is?: "teacher" | undefined;
59
+ displayName?: string | undefined;
60
+ createdAt?: string | undefined;
61
+ updatedAt?: string | undefined;
62
+ lastModifiedBy?: string | undefined;
63
+ tags?: Tag[] | undefined;
64
+ minBreakLength?: number | undefined;
65
+ maxNumWorkingHours?: number | false | undefined;
66
+ maxNumDailyWorkingHours?: number | number[] | false | undefined;
67
+ maximumScheduleSpan?: MaximumScheduleSpan | undefined;
68
+ forbidOverlappingEvents?: boolean | undefined;
69
+ disableDayLengthPunishment?: boolean | undefined;
70
+ weight?: number | undefined;
71
+ intervals?: Interval[] | undefined;
72
+ days?: Day[] | undefined;
73
+ signature?: string | undefined;
74
+ plannedScheduledDuration?: PlannedScheduledDuration | undefined;
75
+ belongsTo?: string | undefined;
76
+ rootInterval?: string | undefined;
77
+ lockedTimes?: string[] | undefined;
78
+ lunch?: string[] | undefined;
79
+ complementaryTimes?: string[] | undefined;
80
+ exceptions?: string[] | undefined;
81
+ person?: string | undefined;
82
+ }, "id" | "_id" | "ids"> & Partial<Pick<{
83
+ id: IDType;
84
+ _id: PrivateIDType;
85
+ ids?: string | undefined;
86
+ is?: "teacher" | undefined;
87
+ displayName?: string | undefined;
88
+ createdAt?: string | undefined;
89
+ updatedAt?: string | undefined;
90
+ lastModifiedBy?: string | undefined;
91
+ tags?: Tag[] | undefined;
92
+ minBreakLength?: number | undefined;
93
+ maxNumWorkingHours?: number | false | undefined;
94
+ maxNumDailyWorkingHours?: number | number[] | false | undefined;
95
+ maximumScheduleSpan?: MaximumScheduleSpan | undefined;
96
+ forbidOverlappingEvents?: boolean | undefined;
97
+ disableDayLengthPunishment?: boolean | undefined;
98
+ weight?: number | undefined;
99
+ intervals?: Interval[] | undefined;
100
+ days?: Day[] | undefined;
101
+ signature?: string | undefined;
102
+ plannedScheduledDuration?: PlannedScheduledDuration | undefined;
103
+ belongsTo?: string | undefined;
104
+ rootInterval?: string | undefined;
105
+ lockedTimes?: string[] | undefined;
106
+ lunch?: string[] | undefined;
107
+ complementaryTimes?: string[] | undefined;
108
+ exceptions?: string[] | undefined;
109
+ person?: string | undefined;
110
+ }, "id" | "_id" | "ids">> & {
111
+ ids: string;
112
+ })[];
113
+ groups: (Omit<{
114
+ id: IDType;
115
+ _id: PrivateIDType;
116
+ ids?: string | undefined;
117
+ is?: "group" | undefined;
118
+ displayName?: string | undefined;
119
+ createdAt?: string | undefined;
120
+ updatedAt?: string | undefined;
121
+ lastModifiedBy?: string | undefined;
122
+ tags?: Tag[] | undefined;
123
+ minBreakLength?: number | undefined;
124
+ maxNumWorkingHours?: number | false | undefined;
125
+ maxNumDailyWorkingHours?: number | number[] | false | undefined;
126
+ maximumScheduleSpan?: MaximumScheduleSpan | undefined;
127
+ forbidOverlappingEvents?: boolean | undefined;
128
+ disableDayLengthPunishment?: boolean | undefined;
129
+ weight?: number | undefined;
130
+ species?: "class" | undefined;
131
+ intervals?: Interval[] | undefined;
132
+ days?: Day[] | undefined;
133
+ belongsTo?: string | undefined;
134
+ parentGroups?: string[] | undefined;
135
+ subGroups?: string[] | undefined;
136
+ lockedTimes?: string[] | undefined;
137
+ lunch?: string[] | undefined;
138
+ exceptions?: string[] | undefined;
139
+ members?: string[] | undefined;
140
+ rootInterval?: string | undefined;
141
+ derivedParentGroups?: {
142
+ implicit?: boolean | undefined;
143
+ explicit?: boolean | undefined;
144
+ group: string;
145
+ }[] | undefined;
146
+ }, "id" | "_id" | "ids"> & Partial<Pick<{
147
+ id: IDType;
148
+ _id: PrivateIDType;
149
+ ids?: string | undefined;
150
+ is?: "group" | undefined;
151
+ displayName?: string | undefined;
152
+ createdAt?: string | undefined;
153
+ updatedAt?: string | undefined;
154
+ lastModifiedBy?: string | undefined;
155
+ tags?: Tag[] | undefined;
156
+ minBreakLength?: number | undefined;
157
+ maxNumWorkingHours?: number | false | undefined;
158
+ maxNumDailyWorkingHours?: number | number[] | false | undefined;
159
+ maximumScheduleSpan?: MaximumScheduleSpan | undefined;
160
+ forbidOverlappingEvents?: boolean | undefined;
161
+ disableDayLengthPunishment?: boolean | undefined;
162
+ weight?: number | undefined;
163
+ species?: "class" | undefined;
164
+ intervals?: Interval[] | undefined;
165
+ days?: Day[] | undefined;
166
+ belongsTo?: string | undefined;
167
+ parentGroups?: string[] | undefined;
168
+ subGroups?: string[] | undefined;
169
+ lockedTimes?: string[] | undefined;
170
+ lunch?: string[] | undefined;
171
+ exceptions?: string[] | undefined;
172
+ members?: string[] | undefined;
173
+ rootInterval?: string | undefined;
174
+ derivedParentGroups?: {
175
+ implicit?: boolean | undefined;
176
+ explicit?: boolean | undefined;
177
+ group: string;
178
+ }[] | undefined;
179
+ }, "id" | "_id" | "ids">> & {
180
+ ids: string;
181
+ })[];
182
+ courses: (Omit<{
183
+ id: IDType;
184
+ _id: PrivateIDType;
185
+ ids?: string | undefined;
186
+ is?: "course" | undefined;
187
+ displayName?: string | undefined;
188
+ createdAt?: string | undefined;
189
+ updatedAt?: string | undefined;
190
+ lastModifiedBy?: string | undefined;
191
+ type?: string | undefined;
192
+ tags?: Tag[] | undefined;
193
+ minBreakLength?: MinBreakLength | undefined;
194
+ weight?: number | undefined;
195
+ intervals?: Interval[] | undefined;
196
+ days?: Day[] | undefined;
197
+ subject?: string | undefined;
198
+ color?: string | undefined;
199
+ eventDurationVariance?: number | undefined;
200
+ centerOfAttraction?: string | null | undefined;
201
+ density?: number | undefined;
202
+ plannedDuration?: string | undefined;
203
+ minutesPerWeek?: number | undefined;
204
+ expectedTotalHours?: number | undefined;
205
+ belongsTo?: string | undefined;
206
+ period?: string | undefined;
207
+ overlapGroup?: string | undefined;
208
+ syllabus?: string | undefined;
209
+ lockedTimes?: string[] | undefined;
210
+ exceptions?: string[] | undefined;
211
+ events?: string[] | undefined;
212
+ participants?: {
213
+ groupIndex?: number | undefined;
214
+ to: string;
215
+ }[] | undefined;
216
+ teachers?: {
217
+ groupIndex?: number | undefined;
218
+ to: string;
219
+ }[] | undefined;
220
+ groups?: {
221
+ groupIndex?: number | undefined;
222
+ to: string;
223
+ exclude?: string[] | undefined;
224
+ }[] | undefined;
225
+ locations?: {
226
+ groupIndex?: number | undefined;
227
+ rank?: number | undefined;
228
+ locations: [string];
229
+ }[] | undefined;
230
+ }, "id" | "_id" | "ids"> & Partial<Pick<{
231
+ id: IDType;
232
+ _id: PrivateIDType;
233
+ ids?: string | undefined;
234
+ is?: "course" | undefined;
235
+ displayName?: string | undefined;
236
+ createdAt?: string | undefined;
237
+ updatedAt?: string | undefined;
238
+ lastModifiedBy?: string | undefined;
239
+ type?: string | undefined;
240
+ tags?: Tag[] | undefined;
241
+ minBreakLength?: MinBreakLength | undefined;
242
+ weight?: number | undefined;
243
+ intervals?: Interval[] | undefined;
244
+ days?: Day[] | undefined;
245
+ subject?: string | undefined;
246
+ color?: string | undefined;
247
+ eventDurationVariance?: number | undefined;
248
+ centerOfAttraction?: string | null | undefined;
249
+ density?: number | undefined;
250
+ plannedDuration?: string | undefined;
251
+ minutesPerWeek?: number | undefined;
252
+ expectedTotalHours?: number | undefined;
253
+ belongsTo?: string | undefined;
254
+ period?: string | undefined;
255
+ overlapGroup?: string | undefined;
256
+ syllabus?: string | undefined;
257
+ lockedTimes?: string[] | undefined;
258
+ exceptions?: string[] | undefined;
259
+ events?: string[] | undefined;
260
+ participants?: {
261
+ groupIndex?: number | undefined;
262
+ to: string;
263
+ }[] | undefined;
264
+ teachers?: {
265
+ groupIndex?: number | undefined;
266
+ to: string;
267
+ }[] | undefined;
268
+ groups?: {
269
+ groupIndex?: number | undefined;
270
+ to: string;
271
+ exclude?: string[] | undefined;
272
+ }[] | undefined;
273
+ locations?: {
274
+ groupIndex?: number | undefined;
275
+ rank?: number | undefined;
276
+ locations: [string];
277
+ }[] | undefined;
278
+ }, "id" | "_id" | "ids">> & {
279
+ ids: string;
280
+ })[];
281
+ events: (Omit<{
282
+ id: IDType;
283
+ _id: PrivateIDType;
284
+ ids?: string | undefined;
285
+ is?: "event" | undefined;
286
+ displayName?: string | undefined;
287
+ createdAt?: string | undefined;
288
+ updatedAt?: string | undefined;
289
+ lastModifiedBy?: string | undefined;
290
+ start?: (moment193.Moment | string) | undefined;
291
+ end?: (moment193.Moment | string) | undefined;
292
+ potentialCenter?: string | undefined;
293
+ type?: string | undefined;
294
+ tags?: Tag[] | undefined;
295
+ minBreakLength?: (MinBreakLength | null) | undefined;
296
+ weight?: number | undefined;
297
+ intervals?: Interval[] | null | undefined;
298
+ days?: Day[] | null | undefined;
299
+ color?: string | null | undefined;
300
+ centerOfAttraction?: string | null | undefined;
301
+ density?: number | undefined;
302
+ fixedStart?: boolean | undefined;
303
+ visible?: boolean | undefined;
304
+ parked?: boolean | undefined;
305
+ preferredDuration: number;
306
+ durationVariance?: number | undefined;
307
+ duration?: number | undefined;
308
+ weeks?: number[] | undefined;
309
+ belongsTo?: string | undefined;
310
+ course?: string | undefined;
311
+ period?: string | undefined;
312
+ overlapSpecies?: string | undefined;
313
+ lockedTimes?: string[] | undefined;
314
+ exceptions?: string[] | undefined;
315
+ inLocations?: (string | null)[] | undefined;
316
+ participants?: {
317
+ groupIndex?: number | undefined;
318
+ to: string;
319
+ }[] | undefined;
320
+ teachers?: {
321
+ groupIndex?: number | undefined;
322
+ to: string;
323
+ }[] | undefined;
324
+ groups?: {
325
+ groupIndex?: number | undefined;
326
+ to: string;
327
+ exclude?: string[] | undefined;
328
+ }[] | undefined;
329
+ locations?: {
330
+ groupIndex?: number | undefined;
331
+ rank?: number | undefined;
332
+ locations: [string];
333
+ }[] | undefined;
334
+ }, "id" | "_id" | "ids"> & Partial<Pick<{
335
+ id: IDType;
336
+ _id: PrivateIDType;
337
+ ids?: string | undefined;
338
+ is?: "event" | undefined;
339
+ displayName?: string | undefined;
340
+ createdAt?: string | undefined;
341
+ updatedAt?: string | undefined;
342
+ lastModifiedBy?: string | undefined;
343
+ start?: (moment193.Moment | string) | undefined;
344
+ end?: (moment193.Moment | string) | undefined;
345
+ potentialCenter?: string | undefined;
346
+ type?: string | undefined;
347
+ tags?: Tag[] | undefined;
348
+ minBreakLength?: (MinBreakLength | null) | undefined;
349
+ weight?: number | undefined;
350
+ intervals?: Interval[] | null | undefined;
351
+ days?: Day[] | null | undefined;
352
+ color?: string | null | undefined;
353
+ centerOfAttraction?: string | null | undefined;
354
+ density?: number | undefined;
355
+ fixedStart?: boolean | undefined;
356
+ visible?: boolean | undefined;
357
+ parked?: boolean | undefined;
358
+ preferredDuration: number;
359
+ durationVariance?: number | undefined;
360
+ duration?: number | undefined;
361
+ weeks?: number[] | undefined;
362
+ belongsTo?: string | undefined;
363
+ course?: string | undefined;
364
+ period?: string | undefined;
365
+ overlapSpecies?: string | undefined;
366
+ lockedTimes?: string[] | undefined;
367
+ exceptions?: string[] | undefined;
368
+ inLocations?: (string | null)[] | undefined;
369
+ participants?: {
370
+ groupIndex?: number | undefined;
371
+ to: string;
372
+ }[] | undefined;
373
+ teachers?: {
374
+ groupIndex?: number | undefined;
375
+ to: string;
376
+ }[] | undefined;
377
+ groups?: {
378
+ groupIndex?: number | undefined;
379
+ to: string;
380
+ exclude?: string[] | undefined;
381
+ }[] | undefined;
382
+ locations?: {
383
+ groupIndex?: number | undefined;
384
+ rank?: number | undefined;
385
+ locations: [string];
386
+ }[] | undefined;
387
+ }, "id" | "_id" | "ids">> & {
388
+ ids: string;
389
+ })[];
390
+ persons: (Omit<{
391
+ id: IDType;
392
+ _id: PrivateIDType;
393
+ ids?: string | undefined;
394
+ is?: "person" | undefined;
395
+ displayName?: string | undefined;
396
+ createdAt?: string | undefined;
397
+ updatedAt?: string | undefined;
398
+ lastModifiedBy?: string | undefined;
399
+ type?: "Student" | "Teacher" | "Other" | undefined;
400
+ tags?: Tag[] | undefined;
401
+ lastName?: string | undefined;
402
+ firstName?: string | undefined;
403
+ birthDate?: Date | undefined;
404
+ sex?: "Man" | "Woman" | undefined;
405
+ SSN?: {
406
+ value: string;
407
+ nationality?: string;
408
+ } | undefined;
409
+ emails?: {
410
+ value: string;
411
+ type?: string;
412
+ }[] | undefined;
413
+ phoneNumbers?: {
414
+ value: string;
415
+ type: string;
416
+ }[] | undefined;
417
+ belongsTo?: string | undefined;
418
+ group?: string | undefined;
419
+ }, "id" | "_id" | "ids"> & Partial<Pick<{
420
+ id: IDType;
421
+ _id: PrivateIDType;
422
+ ids?: string | undefined;
423
+ is?: "person" | undefined;
424
+ displayName?: string | undefined;
425
+ createdAt?: string | undefined;
426
+ updatedAt?: string | undefined;
427
+ lastModifiedBy?: string | undefined;
428
+ type?: "Student" | "Teacher" | "Other" | undefined;
429
+ tags?: Tag[] | undefined;
430
+ lastName?: string | undefined;
431
+ firstName?: string | undefined;
432
+ birthDate?: Date | undefined;
433
+ sex?: "Man" | "Woman" | undefined;
434
+ SSN?: {
435
+ value: string;
436
+ nationality?: string;
437
+ } | undefined;
438
+ emails?: {
439
+ value: string;
440
+ type?: string;
441
+ }[] | undefined;
442
+ phoneNumbers?: {
443
+ value: string;
444
+ type: string;
445
+ }[] | undefined;
446
+ belongsTo?: string | undefined;
447
+ group?: string | undefined;
448
+ }, "id" | "_id" | "ids">> & {
449
+ ids: string;
450
+ })[];
16
451
  meta: {
17
452
  errors?: string[];
18
453
  warnings?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../../src/SchoolSoft/file/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/SchoolSoft/file/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"}
@@ -14,8 +14,7 @@ const days = [
14
14
  ];
15
15
  function _parseWeeks(weeks, set, method = "add") {
16
16
  if (!weeks) return;
17
- const intervals = weeks.split(",").map((x) => trim(x));
18
- intervals.forEach((interval) => {
17
+ weeks.split(",").map((x) => trim(x)).forEach((interval) => {
19
18
  if (!interval.includes("-")) {
20
19
  set[method](Number(interval));
21
20
  return;
@@ -28,92 +27,89 @@ var schedules_default = (input, options) => {
28
27
  const teachers = /* @__PURE__ */ new Set();
29
28
  const groups = /* @__PURE__ */ new Set();
30
29
  const locations = /* @__PURE__ */ new Set();
31
- const events = input.map((event) => {
32
- if (!event.length) return;
33
- const weeks = /* @__PURE__ */ new Set();
34
- const { inweek, exweek, realweeks } = event;
35
- try {
36
- _parseWeeks(inweek, weeks, "add");
37
- _parseWeeks(realweeks, weeks, "add");
38
- if (weeks.size == 0) Array.from({ length: 51 }, (_, index) => index + 1).forEach((x) => weeks.add(x));
39
- _parseWeeks(exweek, weeks, "delete");
40
- } catch (err) {
41
- console.error(err);
42
- }
43
- if (options?.interval) {
44
- const { start: start$1, end: end$1 } = options.interval;
45
- if (start$1 > 52 || start$1 <= 0) throw new Error(`(SchoolSoft::From::Schedules) Interval::start is invalid. value ${start$1}`);
46
- if (end$1 > 52 || end$1 <= 0) throw new Error(`(SchoolSoft::From::Schedules) Interval::end is invalid. value ${end$1}`);
47
- if (start$1 > end$1) {
48
- if (!Array.from(weeks).some((week) => week >= start$1 && week <= 52 || week <= end$1)) return;
49
- } else if (!Array.from(weeks).some((week) => week >= start$1 && week <= end$1)) return;
50
- }
51
- let start;
52
- let end;
53
- const { starttime, subject, day, length, teacher, group, room } = event;
54
- if (day && starttime) {
55
- const _day = days.indexOf(day);
56
- if (_day > 4) return;
57
- start = get_date_default(_day, `${starttime.substring(0, 2)}:${starttime.substring(2, 4)}`);
58
- end = start.clone().add(length, "m");
59
- }
60
- let _teachers;
61
- let _groups;
62
- let _locations;
63
- if (teacher) {
64
- _teachers = teacher.split(",").map((x) => x.trim());
65
- _teachers?.forEach((x) => teachers.add(x));
66
- }
67
- if (group) {
68
- _groups = group.split(",").map((x) => x.trim());
69
- _groups?.forEach((x) => groups.add(x));
70
- }
71
- if (room) {
72
- _locations = sortBy(room.split(",").map((x) => x.trim()));
73
- _locations?.forEach((x) => locations.add(x));
74
- }
75
- const doc = {
76
- ids: event.id,
77
- preferredDuration: event.length,
78
- weeks: sortBy(Array.from(weeks)),
79
- ...subject && { subject },
80
- ...start && { start },
81
- ...end && { end },
82
- ...event.group && { groups: _groups?.map((to) => ({ to })) },
83
- ...event.teacher && { teachers: _teachers?.map((to) => ({ to })) },
84
- ...event.room && {
85
- inLocations: _locations,
86
- locations: _locations?.map((_location, index) => ({
87
- locations: [_location],
88
- groupIndex: index
89
- }))
90
- }
91
- };
92
- return doc;
93
- }).filter((x) => x != null);
94
- const courses = makeChainable(events).chain((x) => x.filter((e) => !!e.ids), (x) => groupBy(x, (e) => e.subject + ".g." + e.groups?.map((x$1) => x$1.to).join(",") + (e.groups?.length ? "" : ".t." + e.teachers?.map((x$1) => x$1.to).join(","))), (x) => Object.values(x).map((events$1) => {
95
- const { subject, groups: groups$1, teachers: teachers$1 } = events$1[0];
96
- for (const e of events$1) {
97
- delete e.subject;
98
- delete e.groups;
99
- }
100
- const course = {
101
- displayName: `${subject}-${(groups$1 ?? teachers$1)?.map((x$1) => x$1.to).join(" ")}`,
102
- events: events$1.map((e) => e.ids),
103
- ...groups$1
104
- };
105
- if (size(countBy(events$1, (e) => e.teachers?.map((x$1) => x$1.to).sort().join(","))) == 1) {
106
- course.teachers = events$1[0].teachers ?? void 0;
107
- events$1.forEach((e) => delete e.teachers);
108
- }
109
- if (size(countBy(events$1, (e) => e.locations?.map((x$1) => x$1.locations[0]).sort().join(","))) == 1) {
110
- course.locations = events$1[0].locations ?? void 0;
111
- events$1.forEach((e) => delete e.locations);
112
- }
113
- return course;
114
- })).value;
115
30
  return {
116
- courses,
31
+ courses: makeChainable(input.map((event) => {
32
+ if (!event.length) return;
33
+ const weeks = /* @__PURE__ */ new Set();
34
+ const { inweek, exweek, realweeks } = event;
35
+ try {
36
+ _parseWeeks(inweek, weeks, "add");
37
+ _parseWeeks(realweeks, weeks, "add");
38
+ if (weeks.size == 0) Array.from({ length: 51 }, (_, index) => index + 1).forEach((x) => weeks.add(x));
39
+ _parseWeeks(exweek, weeks, "delete");
40
+ } catch (err) {
41
+ console.error(err);
42
+ }
43
+ if (options?.interval) {
44
+ const { start: start$1, end: end$1 } = options.interval;
45
+ if (start$1 > 52 || start$1 <= 0) throw new Error(`(SchoolSoft::From::Schedules) Interval::start is invalid. value ${start$1}`);
46
+ if (end$1 > 52 || end$1 <= 0) throw new Error(`(SchoolSoft::From::Schedules) Interval::end is invalid. value ${end$1}`);
47
+ if (start$1 > end$1) {
48
+ if (!Array.from(weeks).some((week) => week >= start$1 && week <= 52 || week <= end$1)) return;
49
+ } else if (!Array.from(weeks).some((week) => week >= start$1 && week <= end$1)) return;
50
+ }
51
+ let start;
52
+ let end;
53
+ const { starttime, subject, day, length, teacher, group, room } = event;
54
+ if (day && starttime) {
55
+ const _day = days.indexOf(day);
56
+ if (_day > 4) return;
57
+ start = get_date_default(_day, `${starttime.substring(0, 2)}:${starttime.substring(2, 4)}`);
58
+ end = start.clone().add(length, "m");
59
+ }
60
+ let _teachers;
61
+ let _groups;
62
+ let _locations;
63
+ if (teacher) {
64
+ _teachers = teacher.split(",").map((x) => x.trim());
65
+ _teachers?.forEach((x) => teachers.add(x));
66
+ }
67
+ if (group) {
68
+ _groups = group.split(",").map((x) => x.trim());
69
+ _groups?.forEach((x) => groups.add(x));
70
+ }
71
+ if (room) {
72
+ _locations = sortBy(room.split(",").map((x) => x.trim()));
73
+ _locations?.forEach((x) => locations.add(x));
74
+ }
75
+ return {
76
+ ids: event.id,
77
+ preferredDuration: event.length,
78
+ weeks: sortBy(Array.from(weeks)),
79
+ ...subject && { subject },
80
+ ...start && { start },
81
+ ...end && { end },
82
+ ...event.group && { groups: _groups?.map((to) => ({ to })) },
83
+ ...event.teacher && { teachers: _teachers?.map((to) => ({ to })) },
84
+ ...event.room && {
85
+ inLocations: _locations,
86
+ locations: _locations?.map((_location, index) => ({
87
+ locations: [_location],
88
+ groupIndex: index
89
+ }))
90
+ }
91
+ };
92
+ }).filter((x) => x != null)).chain((x) => x.filter((e) => !!e.ids), (x) => groupBy(x, (e) => e.subject + ".g." + e.groups?.map((x$1) => x$1.to).join(",") + (e.groups?.length ? "" : ".t." + e.teachers?.map((x$1) => x$1.to).join(","))), (x) => Object.values(x).map((events) => {
93
+ const { subject, groups: groups$1, teachers: teachers$1 } = events[0];
94
+ for (const e of events) {
95
+ delete e.subject;
96
+ delete e.groups;
97
+ }
98
+ const course = {
99
+ displayName: `${subject}-${(groups$1 ?? teachers$1)?.map((x$1) => x$1.to).join(" ")}`,
100
+ events: events.map((e) => e.ids),
101
+ ...groups$1
102
+ };
103
+ if (size(countBy(events, (e) => e.teachers?.map((x$1) => x$1.to).sort().join(","))) == 1) {
104
+ course.teachers = events[0].teachers ?? void 0;
105
+ events.forEach((e) => delete e.teachers);
106
+ }
107
+ if (size(countBy(events, (e) => e.locations?.map((x$1) => x$1.locations[0]).sort().join(","))) == 1) {
108
+ course.locations = events[0].locations ?? void 0;
109
+ events.forEach((e) => delete e.locations);
110
+ }
111
+ return course;
112
+ })).value,
117
113
  teachers: Array.from(teachers).map((ids) => ({
118
114
  ids,
119
115
  displayName: ids