@royalschedule/maps 2.0.3 → 2.0.7

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 (187) hide show
  1. package/dist/Admentum/from/events.d.ts +3 -0
  2. package/dist/Admentum/from/events.js +86 -0
  3. package/dist/Admentum/from/events.js.map +1 -0
  4. package/dist/Admentum/from/schedules.js +4 -2
  5. package/dist/Admentum/from/schedules.js.map +1 -1
  6. package/dist/Admentum/from/teachers.d.ts +3 -2
  7. package/dist/Admentum/from/teachers.js +9 -1
  8. package/dist/Admentum/from/teachers.js.map +1 -1
  9. package/dist/Admentum/types/course-section.d.ts +0 -10
  10. package/dist/Admentum/types/course-section.js +0 -4
  11. package/dist/Admentum/types/lesson.d.ts +22 -0
  12. package/dist/Admentum/types/lesson.js +6 -0
  13. package/dist/Admentum/types/lesson.js.map +1 -0
  14. package/dist/Admentum/types/schedule.d.ts +2 -2
  15. package/dist/RS/index.d.ts +3 -0
  16. package/dist/RS/index.js +3 -0
  17. package/dist/RS/index.js.map +1 -1
  18. package/dist/RS/v2/from/available-dependencies.d.ts +3 -0
  19. package/dist/RS/v2/from/available-dependencies.js +59 -0
  20. package/dist/RS/v2/from/available-dependencies.js.map +1 -0
  21. package/dist/RS/v2/from/break-lengths.d.ts +3 -0
  22. package/dist/RS/v2/from/break-lengths.js +25 -0
  23. package/dist/RS/v2/from/break-lengths.js.map +1 -0
  24. package/dist/RS/v2/from/collections.d.ts +5 -0
  25. package/dist/RS/v2/from/collections.js +94 -0
  26. package/dist/RS/v2/from/collections.js.map +1 -0
  27. package/dist/RS/v2/from/course-events.d.ts +5 -0
  28. package/dist/RS/v2/from/course-events.js +113 -0
  29. package/dist/RS/v2/from/course-events.js.map +1 -0
  30. package/dist/RS/v2/from/days.d.ts +4 -0
  31. package/dist/RS/v2/from/days.js +26 -0
  32. package/dist/RS/v2/from/days.js.map +1 -0
  33. package/dist/RS/v2/from/dependencies.d.ts +4 -0
  34. package/dist/RS/v2/from/dependencies.js +59 -0
  35. package/dist/RS/v2/from/dependencies.js.map +1 -0
  36. package/dist/RS/v2/from/groups.d.ts +5 -0
  37. package/dist/RS/v2/from/groups.js +63 -0
  38. package/dist/RS/v2/from/groups.js.map +1 -0
  39. package/dist/RS/v2/from/index.d.ts +16 -0
  40. package/dist/RS/v2/from/index.js +49 -0
  41. package/dist/RS/v2/from/index.js.map +1 -0
  42. package/dist/RS/v2/from/intervals.d.ts +4 -0
  43. package/dist/RS/v2/from/intervals.js +28 -0
  44. package/dist/RS/v2/from/intervals.js.map +1 -0
  45. package/dist/RS/v2/from/locked-times.d.ts +4 -0
  46. package/dist/RS/v2/from/locked-times.js +28 -0
  47. package/dist/RS/v2/from/locked-times.js.map +1 -0
  48. package/dist/RS/v2/from/placements.d.ts +7 -0
  49. package/dist/RS/v2/from/placements.js +32 -0
  50. package/dist/RS/v2/from/placements.js.map +1 -0
  51. package/dist/RS/v2/from/schedules.d.ts +4 -0
  52. package/dist/RS/v2/from/schedules.js +92 -0
  53. package/dist/RS/v2/from/schedules.js.map +1 -0
  54. package/dist/RS/v2/from/settings.d.ts +5 -0
  55. package/dist/RS/v2/from/settings.js +39 -0
  56. package/dist/RS/v2/from/settings.js.map +1 -0
  57. package/dist/RS/v2/from/teachers.d.ts +4 -0
  58. package/dist/RS/v2/from/teachers.js +62 -0
  59. package/dist/RS/v2/from/teachers.js.map +1 -0
  60. package/dist/RS/v2/index.d.ts +7 -0
  61. package/dist/RS/v2/index.js +36 -0
  62. package/dist/RS/v2/index.js.map +1 -0
  63. package/dist/RS/v2/to/available-dependencies.d.ts +5 -0
  64. package/dist/RS/v2/to/available-dependencies.js +43 -0
  65. package/dist/RS/v2/to/available-dependencies.js.map +1 -0
  66. package/dist/RS/v2/to/break-lengths.d.ts +4 -0
  67. package/dist/RS/v2/to/break-lengths.js +28 -0
  68. package/dist/RS/v2/to/break-lengths.js.map +1 -0
  69. package/dist/RS/v2/to/collections.d.ts +7 -0
  70. package/dist/RS/v2/to/collections.js +105 -0
  71. package/dist/RS/v2/to/collections.js.map +1 -0
  72. package/dist/RS/v2/to/configurations.d.ts +5 -0
  73. package/dist/RS/v2/to/configurations.js +35 -0
  74. package/dist/RS/v2/to/configurations.js.map +1 -0
  75. package/dist/RS/v2/to/constraints.d.ts +5 -0
  76. package/dist/RS/v2/to/constraints.js +57 -0
  77. package/dist/RS/v2/to/constraints.js.map +1 -0
  78. package/dist/RS/v2/to/course-events/common.d.ts +1 -0
  79. package/dist/RS/v2/to/course-events/common.js +12 -0
  80. package/dist/RS/v2/to/course-events/common.js.map +1 -0
  81. package/dist/RS/v2/to/course-events/days.d.ts +8 -0
  82. package/dist/RS/v2/to/course-events/days.js +23 -0
  83. package/dist/RS/v2/to/course-events/days.js.map +1 -0
  84. package/dist/RS/v2/to/course-events/dependencies.d.ts +8 -0
  85. package/dist/RS/v2/to/course-events/dependencies.js +26 -0
  86. package/dist/RS/v2/to/course-events/dependencies.js.map +1 -0
  87. package/dist/RS/v2/to/course-events/groups.d.ts +9 -0
  88. package/dist/RS/v2/to/course-events/groups.js +43 -0
  89. package/dist/RS/v2/to/course-events/groups.js.map +1 -0
  90. package/dist/RS/v2/to/course-events/in-locations.d.ts +3 -0
  91. package/dist/RS/v2/to/course-events/in-locations.js +26 -0
  92. package/dist/RS/v2/to/course-events/in-locations.js.map +1 -0
  93. package/dist/RS/v2/to/course-events/index.d.ts +5 -0
  94. package/dist/RS/v2/to/course-events/index.js +85 -0
  95. package/dist/RS/v2/to/course-events/index.js.map +1 -0
  96. package/dist/RS/v2/to/course-events/intervals.d.ts +8 -0
  97. package/dist/RS/v2/to/course-events/intervals.js +20 -0
  98. package/dist/RS/v2/to/course-events/intervals.js.map +1 -0
  99. package/dist/RS/v2/to/course-events/meta.d.ts +15 -0
  100. package/dist/RS/v2/to/course-events/meta.js +39 -0
  101. package/dist/RS/v2/to/course-events/meta.js.map +1 -0
  102. package/dist/RS/v2/to/days.d.ts +4 -0
  103. package/dist/RS/v2/to/days.js +20 -0
  104. package/dist/RS/v2/to/days.js.map +1 -0
  105. package/dist/RS/v2/to/default.d.ts +4 -0
  106. package/dist/RS/v2/to/default.js +44 -0
  107. package/dist/RS/v2/to/default.js.map +1 -0
  108. package/dist/RS/v2/to/dependencies.d.ts +5 -0
  109. package/dist/RS/v2/to/dependencies.js +55 -0
  110. package/dist/RS/v2/to/dependencies.js.map +1 -0
  111. package/dist/RS/v2/to/groups.d.ts +5 -0
  112. package/dist/RS/v2/to/groups.js +69 -0
  113. package/dist/RS/v2/to/groups.js.map +1 -0
  114. package/dist/RS/v2/to/index.d.ts +15 -0
  115. package/dist/RS/v2/to/index.js +52 -0
  116. package/dist/RS/v2/to/index.js.map +1 -0
  117. package/dist/RS/v2/to/intervals.d.ts +4 -0
  118. package/dist/RS/v2/to/intervals.js +24 -0
  119. package/dist/RS/v2/to/intervals.js.map +1 -0
  120. package/dist/RS/v2/to/locked-times.d.ts +5 -0
  121. package/dist/RS/v2/to/locked-times.js +81 -0
  122. package/dist/RS/v2/to/locked-times.js.map +1 -0
  123. package/dist/RS/v2/to/schedules.d.ts +5 -0
  124. package/dist/RS/v2/to/schedules.js +36 -0
  125. package/dist/RS/v2/to/schedules.js.map +1 -0
  126. package/dist/RS/v2/to/settings.d.ts +4 -0
  127. package/dist/RS/v2/to/settings.js +26 -0
  128. package/dist/RS/v2/to/settings.js.map +1 -0
  129. package/dist/RS/v2/to/teachers.d.ts +5 -0
  130. package/dist/RS/v2/to/teachers.js +69 -0
  131. package/dist/RS/v2/to/teachers.js.map +1 -0
  132. package/dist/RS/v2/types/areas.d.ts +4 -0
  133. package/dist/RS/v2/types/areas.js +6 -0
  134. package/dist/RS/v2/types/areas.js.map +1 -0
  135. package/dist/RS/v2/types/available-dependencies.d.ts +4 -0
  136. package/dist/RS/v2/types/available-dependencies.js +6 -0
  137. package/dist/RS/v2/types/available-dependencies.js.map +1 -0
  138. package/dist/RS/v2/types/break-lengths.d.ts +6 -0
  139. package/dist/RS/v2/types/break-lengths.js +6 -0
  140. package/dist/RS/v2/types/break-lengths.js.map +1 -0
  141. package/dist/RS/v2/types/collections.d.ts +22 -0
  142. package/dist/RS/v2/types/collections.js +6 -0
  143. package/dist/RS/v2/types/collections.js.map +1 -0
  144. package/dist/RS/v2/types/configurations.d.ts +5 -0
  145. package/dist/RS/v2/types/configurations.js +6 -0
  146. package/dist/RS/v2/types/configurations.js.map +1 -0
  147. package/dist/RS/v2/types/constraints.d.ts +14 -0
  148. package/dist/RS/v2/types/constraints.js +6 -0
  149. package/dist/RS/v2/types/constraints.js.map +1 -0
  150. package/dist/RS/v2/types/course-events.d.ts +21 -0
  151. package/dist/RS/v2/types/course-events.js +6 -0
  152. package/dist/RS/v2/types/course-events.js.map +1 -0
  153. package/dist/RS/v2/types/days.d.ts +4 -0
  154. package/dist/RS/v2/types/days.js +6 -0
  155. package/dist/RS/v2/types/days.js.map +1 -0
  156. package/dist/RS/v2/types/default.d.ts +18 -0
  157. package/dist/RS/v2/types/default.js +6 -0
  158. package/dist/RS/v2/types/default.js.map +1 -0
  159. package/dist/RS/v2/types/dependencies.d.ts +12 -0
  160. package/dist/RS/v2/types/dependencies.js +6 -0
  161. package/dist/RS/v2/types/dependencies.js.map +1 -0
  162. package/dist/RS/v2/types/groups.d.ts +22 -0
  163. package/dist/RS/v2/types/groups.js +6 -0
  164. package/dist/RS/v2/types/groups.js.map +1 -0
  165. package/dist/RS/v2/types/index.d.ts +28 -0
  166. package/dist/RS/v2/types/index.js +6 -0
  167. package/dist/RS/v2/types/index.js.map +1 -0
  168. package/dist/RS/v2/types/intervals.d.ts +4 -0
  169. package/dist/RS/v2/types/intervals.js +6 -0
  170. package/dist/RS/v2/types/intervals.js.map +1 -0
  171. package/dist/RS/v2/types/locked-times.d.ts +7 -0
  172. package/dist/RS/v2/types/locked-times.js +6 -0
  173. package/dist/RS/v2/types/locked-times.js.map +1 -0
  174. package/dist/RS/v2/types/out-options.d.ts +7 -0
  175. package/dist/RS/v2/types/out-options.js +6 -0
  176. package/dist/RS/v2/types/out-options.js.map +1 -0
  177. package/dist/RS/v2/types/placements.d.ts +8 -0
  178. package/dist/RS/v2/types/placements.js +6 -0
  179. package/dist/RS/v2/types/placements.js.map +1 -0
  180. package/dist/RS/v2/types/schedules.d.ts +12 -0
  181. package/dist/RS/v2/types/schedules.js +6 -0
  182. package/dist/RS/v2/types/schedules.js.map +1 -0
  183. package/dist/RS/v2/types/settings.d.ts +12 -0
  184. package/dist/RS/v2/types/settings.js +6 -0
  185. package/dist/RS/v2/types/settings.js.map +1 -0
  186. package/dist/core/types/division-settings.d.ts +7 -6
  187. package/package.json +1 -1
@@ -0,0 +1,3 @@
1
+ import { Types } from '../../core/types';
2
+ import { Lesson } from '../types/lesson';
3
+ export default function (lessons: Lesson[], courses: Types.course[], teachers: Types.course[], importErrors: string[], importWarnings: string[]): Types.courseEvent[];
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
18
+ var firstDay = _moment.default.utc('1970-01-05');
19
+
20
+ function fromTimeString(day, timeString) {
21
+ var [hours, minutes, seconds] = timeString.split(':').map(time => parseInt(time));
22
+ return firstDay.clone().add(day, 'day').set('hour', hours).set('minute', minutes);
23
+ }
24
+
25
+ function _default(lessons, courses, teachers, importErrors, importWarnings) {
26
+ var group2course = new Map();
27
+ courses.forEach(c => group2course.set(c.ids, c));
28
+ var teacherSet = new Set();
29
+ teachers.forEach(t => teacherSet.add(t.ids));
30
+ var events = [];
31
+ lessons.forEach(l => {
32
+ var _course$teachers, _l$info$room;
33
+
34
+ if (l.info.groups.length != 1) {
35
+ var warn = "The lesson with id \"".concat(l.id, " contained ").concat(l.info.groups.length, " number of groups (schedule_groups = courses) and was therefore omitted: a lesson shall contain only a single group.");
36
+ importWarnings.push(warn);
37
+ return;
38
+ }
39
+
40
+ var course_id = l.info.groups[0].id.toString();
41
+ var course = group2course.get(course_id);
42
+
43
+ if (!course) {
44
+ var _warn = "The lesson with id \"".concat(l.id, "\" referenced the unknown/faulty schedule_group (course) \"").concat(course_id, "\" and was therefore ignored.");
45
+
46
+ importWarnings.push(_warn);
47
+ return;
48
+ }
49
+
50
+ var start = fromTimeString(l.weekday, l.info.start);
51
+ var end = fromTimeString(l.weekday, l.info.end);
52
+ var duration = l.info.duration;
53
+ var eventTeachers;
54
+
55
+ if (!course.teachers || !((_course$teachers = course.teachers) !== null && _course$teachers !== void 0 && _course$teachers.every(x => l.info.teachers.some(y => y.id.toString() == x)))) {
56
+ eventTeachers = l.info.teachers.map(x => x.id.toString());
57
+
58
+ for (var teacher of eventTeachers) {
59
+ if (!teacherSet.has(teacher)) {
60
+ var _warn2 = "The lesson with id \"".concat(l.id, "\" referenced the unknown teacher \"").concat(teacher, "\" and was therefore ignored.");
61
+
62
+ importWarnings.push(_warn2);
63
+ return;
64
+ }
65
+ }
66
+ }
67
+
68
+ var location = (_l$info$room = l.info.room) === null || _l$info$room === void 0 ? void 0 : _l$info$room.id.toString();
69
+ events.push(_objectSpread(_objectSpread({
70
+ ids: l.id.toString(),
71
+ start,
72
+ end,
73
+ duration,
74
+ course: course_id
75
+ }, location && {
76
+ inLocations: [location],
77
+ locations: [{
78
+ locations: [location]
79
+ }]
80
+ }), eventTeachers && {
81
+ teachers: eventTeachers
82
+ }));
83
+ });
84
+ return events;
85
+ }
86
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Admentum/from/events.ts"],"names":[],"mappings":"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","sourceRoot":"","file":"events.js"}
@@ -13,6 +13,8 @@ var _groups2 = _interopRequireDefault(require("./groups"));
13
13
 
14
14
  var _courses2 = _interopRequireDefault(require("./courses"));
15
15
 
16
+ var _events2 = _interopRequireDefault(require("./events"));
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
18
20
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -32,10 +34,10 @@ function _default(schedule) {
32
34
  var importErrors = [];
33
35
  var importWarnings = [];
34
36
  var locations = (0, _locations2.default)(schedule.rooms, importErrors, importWarnings);
35
- var teachers = (0, _teachers2.default)(schedule.schedule_groups, importErrors, importWarnings);
37
+ var teachers = (0, _teachers2.default)(schedule.schedule_groups, schedule.lessons, importErrors, importWarnings);
36
38
  var groups = (0, _groups2.default)(schedule.primary_groups, importErrors, importWarnings);
37
39
  var courses = (0, _courses2.default)(schedule.schedule_groups, school, importErrors, importWarnings);
38
- var events = [];
40
+ var events = (0, _events2.default)(schedule.lessons, courses, teachers, importErrors, importWarnings);
39
41
  return _objectSpread(_objectSpread(_objectSpread({}, {
40
42
  groups,
41
43
  teachers,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Admentum/from/schedules.ts"],"names":[],"mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;AAKc,kBACZ,QADY,EACM;AAMlB,MAAI,QAAQ,CAAC,OAAT,CAAiB,MAAjB,IAA2B,CAA/B,EAAkC;AAChC,WAAO;AAAE,MAAA,YAAY,EAAE,oBAAa,QAAQ,CAAC,OAAT,CAAiB,MAA9B;AAAhB,KAAP;AACD;;AACD,MAAI,MAAM,GAAG,QAAQ,CAAC,OAAT,CAAiB,CAAjB,CAAb;AAGA,MAAI,YAAY,GAAe,EAA/B;AACA,MAAI,cAAc,GAAa,EAA/B;AAEA,MAAM,SAAS,GAAyB,yBAAW,QAAQ,CAAC,KAApB,EAA2C,YAA3C,EAAyD,cAAzD,CAAxC;AACA,MAAM,QAAQ,GAA0B,wBAAU,QAAQ,CAAC,eAAnB,EAA2C,YAA3C,EAAyD,cAAzD,CAAxC;AACA,MAAM,MAAM,GAA4B,sBAAQ,QAAQ,CAAC,cAAjB,EAA2C,YAA3C,EAAyD,cAAzD,CAAxC;AACA,MAAM,OAAO,GAA2B,uBAAS,QAAQ,CAAC,eAAlB,EAAmC,MAAnC,EAA2C,YAA3C,EAAyD,cAAzD,CAAxC;AAEA,MAAM,MAAM,GAA4B,EAAxC;AAEA,uDAAY;AAAE,IAAA,MAAF;AAAU,IAAA,QAAV;AAAoB,IAAA,SAApB;AAA+B,IAAA,OAA/B;AAAwC,IAAA;AAAxC,GAAZ,GACa,YAAY,CAAC,MAAb,GAAwB;AAAE,IAAA;AAAF,GAAxB,GAA6C,EAD1D,GAEa,cAAc,CAAC,MAAf,GAAwB;AAAE,IAAA;AAAF,GAAxB,GAA6C,EAF1D;AAGD","sourceRoot":"","file":"schedules.js"}
1
+ {"version":3,"sources":["../../../src/Admentum/from/schedules.ts"],"names":[],"mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAKc,kBACZ,QADY,EACM;AAMlB,MAAI,QAAQ,CAAC,OAAT,CAAiB,MAAjB,IAA2B,CAA/B,EAAkC;AAChC,WAAO;AAAE,MAAA,YAAY,EAAE,oBAAa,QAAQ,CAAC,OAAT,CAAiB,MAA9B;AAAhB,KAAP;AACD;;AACD,MAAI,MAAM,GAAG,QAAQ,CAAC,OAAT,CAAiB,CAAjB,CAAb;AAGA,MAAI,YAAY,GAAe,EAA/B;AACA,MAAI,cAAc,GAAa,EAA/B;AAEA,MAAM,SAAS,GAA4B,yBAAW,QAAQ,CAAC,KAApB,EAAsD,YAAtD,EAAoE,cAApE,CAA3C;AACA,MAAM,QAAQ,GAA6B,wBAAU,QAAQ,CAAC,eAAnB,EAAoC,QAAQ,CAAC,OAA7C,EAAsD,YAAtD,EAAoE,cAApE,CAA3C;AACA,MAAM,MAAM,GAA+B,sBAAQ,QAAQ,CAAC,cAAjB,EAAsD,YAAtD,EAAoE,cAApE,CAA3C;AACA,MAAM,OAAO,GAA8B,uBAAS,QAAQ,CAAC,eAAlB,EAAmC,MAAnC,EAAsD,YAAtD,EAAoE,cAApE,CAA3C;AACA,MAAM,MAAM,GAA+B,sBAAQ,QAAQ,CAAC,OAAjB,EAA0B,OAA1B,EAAmC,QAAnC,EAAsD,YAAtD,EAAoE,cAApE,CAA3C;AAEA,uDAAY;AAAE,IAAA,MAAF;AAAU,IAAA,QAAV;AAAoB,IAAA,SAApB;AAA+B,IAAA,OAA/B;AAAwC,IAAA;AAAxC,GAAZ,GACa,YAAY,CAAC,MAAb,GAAwB;AAAE,IAAA;AAAF,GAAxB,GAA6C,EAD1D,GAEa,cAAc,CAAC,MAAf,GAAwB;AAAE,IAAA;AAAF,GAAxB,GAA6C,EAF1D;AAGD","sourceRoot":"","file":"schedules.js"}
@@ -1,3 +1,4 @@
1
- import { ScheduleGroup } from '../types/schedule-group';
2
1
  import { Types } from '../../core/types';
3
- export default function (scheduleGroups: ScheduleGroup[], importErrors: string[], importWarnings: string[]): Types.teacher[];
2
+ import { ScheduleGroup } from '../types/schedule-group';
3
+ import { Lesson } from '../types/lesson';
4
+ export default function (scheduleGroups: ScheduleGroup[], lessons: Lesson[], importErrors: string[], importWarnings: string[]): Types.teacher[];
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = _default;
7
7
 
8
- function _default(scheduleGroups, importErrors, importWarnings) {
8
+ function _default(scheduleGroups, lessons, importErrors, importWarnings) {
9
9
  var teacherSet = new Map();
10
10
  scheduleGroups.forEach(scheduleGroup => {
11
11
  scheduleGroup.teachers.forEach(teacher => {
@@ -15,6 +15,14 @@ function _default(scheduleGroups, importErrors, importWarnings) {
15
15
  });
16
16
  });
17
17
  });
18
+ lessons.forEach(lesson => {
19
+ lesson.teachers.forEach(teacher => {
20
+ teacherSet.set(teacher.id, {
21
+ ids: teacher.id.toString(),
22
+ displayName: teacher.first_name + " " + teacher.last_name
23
+ });
24
+ });
25
+ });
18
26
  return Array.from(teacherSet.values());
19
27
  }
20
28
  //# sourceMappingURL=teachers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Admentum/from/teachers.ts"],"names":[],"mappings":";;;;;;;AAGc,kBACZ,cADY,EAEZ,YAFY,EAGZ,cAHY,EAGY;AAGxB,MAAI,UAAU,GAA+B,IAAI,GAAJ,EAA7C;AAEA,EAAA,cAAc,CAAC,OAAf,CAAuB,aAAa,IAAG;AACrC,IAAA,aAAa,CAAC,QAAd,CAAuB,OAAvB,CAA+B,OAAO,IAAG;AACvC,MAAA,UAAU,CAAC,GAAX,CAAe,OAAO,CAAC,EAAvB,EAA2B;AACzB,QAAA,GAAG,EAAU,OAAO,CAAC,EAAR,CAAW,QAAX,EADY;AAEzB,QAAA,WAAW,EAAE,OAAO,CAAC,UAAR,GAAqB,GAArB,GAA2B,OAAO,CAAC;AAFvB,OAA3B;AAID,KALD;AAMD,GAPD;AASA,SAAO,KAAK,CAAC,IAAN,CAAW,UAAU,CAAC,MAAX,EAAX,CAAP;AACD","sourceRoot":"","file":"teachers.js"}
1
+ {"version":3,"sources":["../../../src/Admentum/from/teachers.ts"],"names":[],"mappings":";;;;;;;AAIc,kBACZ,cADY,EAEZ,OAFY,EAGZ,YAHY,EAIZ,cAJY,EAIY;AAGxB,MAAI,UAAU,GAA+B,IAAI,GAAJ,EAA7C;AAEA,EAAA,cAAc,CAAC,OAAf,CAAuB,aAAa,IAAG;AACrC,IAAA,aAAa,CAAC,QAAd,CAAuB,OAAvB,CAA+B,OAAO,IAAG;AACvC,MAAA,UAAU,CAAC,GAAX,CAAe,OAAO,CAAC,EAAvB,EAA2B;AACzB,QAAA,GAAG,EAAU,OAAO,CAAC,EAAR,CAAW,QAAX,EADY;AAEzB,QAAA,WAAW,EAAE,OAAO,CAAC,UAAR,GAAqB,GAArB,GAA2B,OAAO,CAAC;AAFvB,OAA3B;AAID,KALD;AAMD,GAPD;AASA,EAAA,OAAO,CAAC,OAAR,CAAgB,MAAM,IAAG;AACvB,IAAA,MAAM,CAAC,QAAP,CAAgB,OAAhB,CAAwB,OAAO,IAAG;AAChC,MAAA,UAAU,CAAC,GAAX,CAAe,OAAO,CAAC,EAAvB,EAA2B;AACzB,QAAA,GAAG,EAAU,OAAO,CAAC,EAAR,CAAW,QAAX,EADY;AAEzB,QAAA,WAAW,EAAE,OAAO,CAAC,UAAR,GAAqB,GAArB,GAA2B,OAAO,CAAC;AAFvB,OAA3B;AAID,KALD;AAMD,GAPD;AASA,SAAO,KAAK,CAAC,IAAN,CAAW,UAAU,CAAC,MAAX,EAAX,CAAP;AACD","sourceRoot":"","file":"teachers.js"}
@@ -1,10 +0,0 @@
1
- export interface Course {
2
- id: number;
3
- }
4
- export interface ScheduleGroup {
5
- id: number;
6
- }
7
- export interface CourseSection {
8
- course: Course;
9
- schedule_group: ScheduleGroup;
10
- }
@@ -1,6 +1,2 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
2
  //# sourceMappingURL=course-section.js.map
@@ -0,0 +1,22 @@
1
+ import { User } from './user';
2
+ export interface LessonInfo {
3
+ start: string;
4
+ end: string;
5
+ duration: number;
6
+ room?: {
7
+ id: number;
8
+ };
9
+ teachers: {
10
+ id: number;
11
+ }[];
12
+ groups: {
13
+ id: number;
14
+ }[];
15
+ }
16
+ export interface Lesson {
17
+ id: number;
18
+ weekday: number;
19
+ date: string;
20
+ info: LessonInfo;
21
+ teachers: User[];
22
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=lesson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"","file":"lesson.js"}
@@ -1,15 +1,15 @@
1
1
  import { School } from './school';
2
2
  import { Room } from './room';
3
- import { CourseSection } from './course-section';
4
3
  import { PrimaryGroup } from './primary-group';
5
4
  import { ScheduleGroup } from './schedule-group';
5
+ import { Lesson } from './lesson';
6
6
  export interface Schedule {
7
7
  schedule: {
8
8
  id: number;
9
9
  };
10
10
  schools: School[];
11
11
  rooms: Room[];
12
- course_sections: CourseSection[];
13
12
  primary_groups: PrimaryGroup[];
14
13
  schedule_groups: ScheduleGroup[];
14
+ lessons: Lesson[];
15
15
  }
@@ -1,12 +1,15 @@
1
1
  import { Types as V0Types, V0 } from './v0';
2
2
  import { Types as V1Types, V1 } from './v1';
3
+ import { Types as V2Types, V2 } from './v2';
3
4
  export declare class RSMap {
4
5
  static to: typeof import("./v0/to").default;
5
6
  static from: typeof import("./v0/from").default;
6
7
  static V0: typeof V0;
7
8
  static V1: typeof V1;
9
+ static V2: typeof V2;
8
10
  }
9
11
  export declare type RSTypes = {
10
12
  V0: V0Types;
11
13
  V1: V1Types;
14
+ V2: V2Types;
12
15
  };
package/dist/RS/index.js CHANGED
@@ -9,6 +9,8 @@ var _v = require("./v0");
9
9
 
10
10
  var _v2 = require("./v1");
11
11
 
12
+ var _v3 = require("./v2");
13
+
12
14
  class RSMap {}
13
15
 
14
16
  exports.RSMap = RSMap;
@@ -16,4 +18,5 @@ RSMap.to = _v.V0.to;
16
18
  RSMap.from = _v.V0.from;
17
19
  RSMap.V0 = _v.V0;
18
20
  RSMap.V1 = _v2.V1;
21
+ RSMap.V2 = _v3.V2;
19
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/RS/index.ts"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;AAGM,MAAO,KAAP,CAAY;;;AACT,KAAA,CAAA,EAAA,GAAO,MAAG,EAAV;AACA,KAAA,CAAA,IAAA,GAAO,MAAG,IAAV;AAEA,KAAA,CAAA,EAAA,GAAO,KAAP;AACA,KAAA,CAAA,EAAA,GAAO,MAAP","sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../src/RS/index.ts"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;AAGM,MAAO,KAAP,CAAY;;;AACT,KAAA,CAAA,EAAA,GAAO,MAAG,EAAV;AACA,KAAA,CAAA,IAAA,GAAO,MAAG,IAAV;AAEA,KAAA,CAAA,EAAA,GAAO,KAAP;AACA,KAAA,CAAA,EAAA,GAAO,MAAP;AACA,KAAA,CAAA,EAAA,GAAO,MAAP","sourceRoot":"","file":"index.js"}
@@ -0,0 +1,3 @@
1
+ import { Settings } from '../types/settings';
2
+ declare const _default: (data: any, settings: Settings) => any;
3
+ export default _default;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
+
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
+
12
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+
14
+ var _default = (data, settings) => {
15
+ var index = -1;
16
+ return (data ? data : []).reduce((acc, dependency) => {
17
+ switch (typeof dependency) {
18
+ case 'string':
19
+ return acc.concat({
20
+ groupIndex: 0,
21
+ locations: [dependency]
22
+ });
23
+
24
+ case 'object':
25
+ if (Array.isArray(dependency)) {
26
+ index++;
27
+ var dependencies = dependency.map(val => {
28
+ switch (typeof val) {
29
+ case 'string':
30
+ return {
31
+ groupIndex: index,
32
+ locations: [val]
33
+ };
34
+
35
+ case 'object':
36
+ return _objectSpread(_objectSpread({}, val.hasOwnProperty('rank') && {
37
+ rank: val.rank
38
+ }), {}, {
39
+ groupIndex: index,
40
+ locations: [val.dependency]
41
+ });
42
+ }
43
+ });
44
+ return acc.concat(...dependencies);
45
+ } else return acc.concat(_objectSpread({
46
+ groupIndex: 0,
47
+ locations: [dependency.dependency]
48
+ }, dependency.hasOwnProperty('rank') && {
49
+ rank: dependency.rank
50
+ }));
51
+
52
+ default:
53
+ throw new Error('course dependency is neither string nor object');
54
+ }
55
+ }, []);
56
+ };
57
+
58
+ exports.default = _default;
59
+ //# sourceMappingURL=available-dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/RS/v2/from/available-dependencies.ts"],"names":[],"mappings":";;;;;;;;;;;;;eAEe,CAAC,IAAD,EACC,QADD,KAC4B;AACzC,MAAI,KAAK,GAAG,CAAC,CAAb;AACA,SAAO,CAAC,IAAI,GAAG,IAAH,GAAU,EAAf,EAAmB,MAAnB,CAA0B,CAAC,GAAD,EAAW,UAAX,KAA8B;AAC7D,YAAO,OAAO,UAAd;AACE,WAAK,QAAL;AACE,eAAO,GAAG,CAAC,MAAJ,CAAW;AAChB,UAAA,UAAU,EAAE,CADI;AAEhB,UAAA,SAAS,EAAE,CAAE,UAAF;AAFK,SAAX,CAAP;;AAIF,WAAK,QAAL;AAcE,YAAI,KAAK,CAAC,OAAN,CAAc,UAAd,CAAJ,EAA+B;AAC7B,UAAA,KAAK;AAEL,cAAI,YAAY,GAAG,UAAU,CAAC,GAAX,CAAgB,GAAD,IAAQ;AACxC,oBAAO,OAAO,GAAd;AACE,mBAAK,QAAL;AACE,uBAAO;AACL,kBAAA,UAAU,EAAE,KADP;AAEL,kBAAA,SAAS,EAAE,CAAE,GAAF;AAFN,iBAAP;;AAIF,mBAAK,QAAL;AACE,uDACK,GAAG,CAAC,cAAJ,CAAmB,MAAnB,KAA8B;AAAE,kBAAA,IAAI,EAAE,GAAG,CAAC;AAAZ,iBADnC;AAEE,kBAAA,UAAU,EAAE,KAFd;AAGE,kBAAA,SAAS,EAAE,CAAE,GAAG,CAAC,UAAN;AAHb;AAPJ;AAaD,WAdkB,CAAnB;AAeA,iBAAO,GAAG,CAAC,MAAJ,CAAW,GAAG,YAAd,CAAP;AACD,SAnBD,MAoBE,OAAO,GAAG,CAAC,MAAJ;AACL,UAAA,UAAU,EAAE,CADP;AAEL,UAAA,SAAS,EAAE,CAAE,UAAU,CAAC,UAAb;AAFN,WAGF,UAAU,CAAC,cAAX,CAA0B,MAA1B,KAAqC;AAAE,UAAA,IAAI,EAAE,UAAU,CAAC;AAAnB,SAHnC,EAAP;;AAKJ;AACE,cAAM,IAAI,KAAJ,CAAU,gDAAV,CAAN;AA9CJ;AAgDD,GAjDM,EAiDJ,EAjDI,CAAP;AAkDD,C","sourceRoot":"","file":"available-dependencies.js"}
@@ -0,0 +1,3 @@
1
+ import { BreakLength } from '../types/break-lengths';
2
+ declare const _default: (breakLength: BreakLength | null | undefined) => any;
3
+ export default _default;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _default = breakLength => {
9
+ if (breakLength == null) return null;
10
+
11
+ switch (typeof breakLength) {
12
+ case 'boolean':
13
+ case 'number':
14
+ return breakLength;
15
+
16
+ case 'object':
17
+ if (Array.isArray(breakLength) && breakLength.length == 2) return breakLength;else if ((breakLength === null || breakLength === void 0 ? void 0 : breakLength.bef) != null && (breakLength === null || breakLength === void 0 ? void 0 : breakLength.aft) != null) return [breakLength.bef, breakLength.aft];
18
+
19
+ default:
20
+ throw new Error('day is neither number, boolean, array or object of type { bef, aft }');
21
+ }
22
+ };
23
+
24
+ exports.default = _default;
25
+ //# sourceMappingURL=break-lengths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/RS/v2/from/break-lengths.ts"],"names":[],"mappings":";;;;;;;eAEgB,WAAD,IAAqD;AAElE,MAAI,WAAW,IAAI,IAAnB,EAAyB,OAAO,IAAP;;AAEzB,UAAO,OAAO,WAAd;AACE,SAAK,SAAL;AACA,SAAK,QAAL;AACE,aAAO,WAAP;;AACF,SAAK,QAAL;AACE,UAAI,KAAK,CAAC,OAAN,CAAc,WAAd,KAA8B,WAAW,CAAC,MAAZ,IAAsB,CAAxD,EACE,OAAO,WAAP,CADF,KAEK,IAAI,CAAA,WAAW,SAAX,IAAA,WAAW,WAAX,YAAA,WAAW,CAAE,GAAb,KAAoB,IAApB,IAA4B,CAAA,WAAW,SAAX,IAAA,WAAW,WAAX,YAAA,WAAW,CAAE,GAAb,KAAoB,IAApD,EACH,OAAO,CAAC,WAAW,CAAC,GAAb,EAAkB,WAAW,CAAC,GAA9B,CAAP;;AACJ;AACE,YAAM,IAAI,KAAJ,CAAU,sEAAV,CAAN;AAVJ;AAYD,C","sourceRoot":"","file":"break-lengths.js"}
@@ -0,0 +1,5 @@
1
+ import { Settings } from '../types/settings';
2
+ import { Collection } from '../types/collections';
3
+ import { Course as SourceCourse } from '../../../core/types/courses';
4
+ declare let reduceCourses: (courses: (Collection | Collection[])[], teachersList: string[], groupsList: string[], settings: Settings, overlapGroup?: number) => SourceCourse[];
5
+ export default reduceCourses;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _breakLengths = _interopRequireDefault(require("./break-lengths"));
9
+
10
+ var _days = _interopRequireDefault(require("./days"));
11
+
12
+ var _lockedTimes = _interopRequireDefault(require("./locked-times"));
13
+
14
+ var _intervals = _interopRequireDefault(require("./intervals"));
15
+
16
+ var _availableDependencies = _interopRequireDefault(require("./available-dependencies"));
17
+
18
+ var _courseEvents = _interopRequireDefault(require("./course-events"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
+
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
+
26
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
+
28
+ function _course(course, teachersList, groupsList, settings) {
29
+ var _course$groups, _course$groups2;
30
+
31
+ var overlapGroup = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
32
+ var idKey = settings.collectionIdKey;
33
+ if (!idKey) throw new Error('property "collectionIdKey" in settings is undefined');
34
+ if (!course[idKey]) throw new Error('A course missing a unique key');
35
+
36
+ var doc = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
37
+ ids: course[idKey]
38
+ }, overlapGroup != null && {
39
+ overlapGroup: overlapGroup.toString()
40
+ }), course.name && {
41
+ displayName: course.name
42
+ }), course.subject && {
43
+ subject: course.subject
44
+ }), course.color && {
45
+ color: course.color
46
+ }), 'minBreakLength' in course && {
47
+ minBreakLength: (0, _breakLengths.default)(course.minBreakLength)
48
+ }), 'density' in course && {
49
+ density: course.density
50
+ }), 'weight' in course && {
51
+ weight: course.weight
52
+ }), 'potentialCenter' in course && {
53
+ potentialCenter: course.potentialCenter
54
+ }), course.dependencies && {
55
+ locations: (0, _availableDependencies.default)(course.dependencies, settings)
56
+ }), course.intervals && {
57
+ intervals: (0, _intervals.default)(course.intervals)
58
+ }), course.lockedTimes && {
59
+ lockedTimes: (0, _lockedTimes.default)(course.lockedTimes)
60
+ }), course.days && {
61
+ days: (0, _days.default)(course.days, settings)
62
+ });
63
+
64
+ doc.teachers = (_course$groups = course.groups) === null || _course$groups === void 0 ? void 0 : _course$groups.flat().reduce((acc, gId) => {
65
+ if (teachersList.indexOf(gId) != -1) return acc.concat(gId);
66
+ return acc;
67
+ }, []);
68
+ doc.groups = (_course$groups2 = course.groups) === null || _course$groups2 === void 0 ? void 0 : _course$groups2.flat().reduce((acc, gId) => {
69
+ if (groupsList.indexOf(gId) != -1) return acc.concat(gId);
70
+ return acc;
71
+ }, []);
72
+ if (doc.teachers.length + doc.groups.length !== (course.groups || []).length) throw new Error("Length of teachers + groups does not match length of groups in input for course ".concat(course[idKey]));
73
+ if ((course.events || []).length) doc.events = (0, _courseEvents.default)(course.events, course, teachersList, groupsList, settings);
74
+ return doc;
75
+ }
76
+
77
+ var reduceCourses = function reduceCourses(courses, teachersList, groupsList, settings) {
78
+ var overlapGroup = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
79
+ return courses.reduce((acc, course) => {
80
+ if (Array.isArray(course)) {
81
+ var _overlapGroup = overlapGroup++;
82
+
83
+ return acc.concat(course.map(innerCourse => {
84
+ return _course(innerCourse, teachersList, groupsList, settings, _overlapGroup);
85
+ }));
86
+ }
87
+
88
+ return acc.concat(_course(course, teachersList, groupsList, settings));
89
+ }, []);
90
+ };
91
+
92
+ var _default = reduceCourses;
93
+ exports.default = _default;
94
+ //# sourceMappingURL=collections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/RS/v2/from/collections.ts"],"names":[],"mappings":"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","sourceRoot":"","file":"collections.js"}
@@ -0,0 +1,5 @@
1
+ import { Settings } from '../types/settings';
2
+ import { CourseEvent } from '../types/course-events';
3
+ import { Collection } from '../types/collections';
4
+ declare const _default: (courseEvents: (CourseEvent | number)[], course: Collection, teachersList: string[], groupsList: string[], settings: Settings) => any;
5
+ export default _default;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _breakLengths = _interopRequireDefault(require("./break-lengths"));
9
+
10
+ var _days = _interopRequireDefault(require("./days"));
11
+
12
+ var _lockedTimes = _interopRequireDefault(require("./locked-times"));
13
+
14
+ var _intervals = _interopRequireDefault(require("./intervals"));
15
+
16
+ var _availableDependencies = _interopRequireDefault(require("./available-dependencies"));
17
+
18
+ var _getDate = _interopRequireDefault(require("../../../common/get-date"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
+
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
+
26
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
+
28
+ var _default = (courseEvents, course, teachersList, groupsList, settings) => {
29
+ var collectionIdKey = settings.collectionIdKey;
30
+ var eventIdKey = settings.eventIdKey;
31
+ if (!collectionIdKey) throw new Error('property "collectionIdKey" in settings is undefined');
32
+ return courseEvents.reduce((acc, event) => {
33
+ var _event$groups, _event$groups2;
34
+
35
+ switch (typeof event) {
36
+ case 'number':
37
+ return acc.concat({
38
+ duration: event,
39
+ ids: "".concat(course[collectionIdKey], "_").concat(acc.length)
40
+ });
41
+
42
+ case 'object':
43
+ if (!event[eventIdKey]) {
44
+ Object.assign(event, {
45
+ [eventIdKey]: "".concat(course[collectionIdKey], "_").concat(acc.length)
46
+ });
47
+ }
48
+
49
+ var teachers = (_event$groups = event.groups) === null || _event$groups === void 0 ? void 0 : _event$groups.flat().reduce((acc, gId) => {
50
+ if (teachersList.includes(gId)) return acc.concat(gId);
51
+ return acc;
52
+ }, []);
53
+ var groups = (_event$groups2 = event.groups) === null || _event$groups2 === void 0 ? void 0 : _event$groups2.flat().reduce((acc, gId) => {
54
+ if (groupsList.includes(gId)) return acc.concat(gId);
55
+ return acc;
56
+ }, []);
57
+ var fixedStart = false;
58
+ var start = null;
59
+ var end = null;
60
+
61
+ if (event.start) {
62
+ var _event$day;
63
+
64
+ var day = (_event$day = event.day) !== null && _event$day !== void 0 ? _event$day : 0;
65
+ fixedStart = true;
66
+ start = (0, _getDate.default)(day, event.start.toFixed(2).replace('.', ':'));
67
+ end = start.clone().add(event.length, 'minutes');
68
+ if (start.day() != end.day()) throw new Error('course event have fixed time such that the event span multiple days');
69
+ }
70
+
71
+ return acc.concat(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
72
+ duration: event.length,
73
+ parked: !start
74
+ }, event[eventIdKey] && {
75
+ ids: event[eventIdKey]
76
+ }), event.name && {
77
+ displayName: event.name
78
+ }), fixedStart && {
79
+ fixedStart: fixedStart
80
+ }), start && {
81
+ start: start
82
+ }), end && {
83
+ end: end
84
+ }), 'density' in event && {
85
+ density: event.density
86
+ }), 'weight' in event && {
87
+ weight: event.weight
88
+ }), 'potentialCenter' in event && {
89
+ potentialCenter: event.potentialCenter
90
+ }), 'minBreakLength' in event && {
91
+ minBreakLength: (0, _breakLengths.default)(event.minBreakLength)
92
+ }), event.intervals && {
93
+ intervals: (0, _intervals.default)(event.intervals)
94
+ }), event.lockedTimes && {
95
+ lockedTimes: (0, _lockedTimes.default)(event.lockedTimes)
96
+ }), event.dependencies && {
97
+ locations: (0, _availableDependencies.default)(event.dependencies, settings)
98
+ }), groups && {
99
+ groups: groups
100
+ }), teachers && {
101
+ teachers: teachers
102
+ }), event.days && {
103
+ days: (0, _days.default)(event.days, settings)
104
+ }));
105
+
106
+ default:
107
+ throw new Error("course event is neither number nor object, course ".concat(course[collectionIdKey]));
108
+ }
109
+ }, []);
110
+ };
111
+
112
+ exports.default = _default;
113
+ //# sourceMappingURL=course-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/RS/v2/from/course-events.ts"],"names":[],"mappings":"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","sourceRoot":"","file":"course-events.js"}
@@ -0,0 +1,4 @@
1
+ import { Settings } from '../types/settings';
2
+ import { Day } from '../types/days';
3
+ declare const _default: (days: Day[] | number[] | any, settings: Settings) => any;
4
+ export default _default;