@royalschedule/maps 2.1.21 → 2.2.2

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 (159) hide show
  1. package/dist/Admentum/from/schedules.js +20 -17
  2. package/dist/Admentum/from/schedules.js.map +1 -1
  3. package/dist/SS12000/to/teachers.d.ts +1 -1
  4. package/dist/SS12000/to/teachers.js +3 -13
  5. package/dist/SS12000/to/teachers.js.map +1 -1
  6. package/dist/Skola24/from/assert-week-overlap.js.map +1 -1
  7. package/dist/Skola24/from/course-and-events.d.ts +9 -0
  8. package/dist/Skola24/from/course-and-events.js +340 -0
  9. package/dist/Skola24/from/course-and-events.js.map +1 -0
  10. package/dist/Skola24/from/course-events.js +43 -4
  11. package/dist/Skola24/from/course-events.js.map +1 -1
  12. package/dist/Skola24/from/courses.d.ts +10 -4
  13. package/dist/Skola24/from/courses.js +81 -43
  14. package/dist/Skola24/from/courses.js.map +1 -1
  15. package/dist/Skola24/from/events.d.ts +11 -0
  16. package/dist/Skola24/from/events.js +146 -0
  17. package/dist/Skola24/from/events.js.map +1 -0
  18. package/dist/Skola24/from/filter-on-period.d.ts +7 -0
  19. package/dist/Skola24/from/filter-on-period.js +24 -0
  20. package/dist/Skola24/from/filter-on-period.js.map +1 -0
  21. package/dist/Skola24/from/groups.d.ts +2 -2
  22. package/dist/Skola24/from/groups.js +4 -4
  23. package/dist/Skola24/from/groups.js.map +1 -1
  24. package/dist/Skola24/from/index.js.map +1 -1
  25. package/dist/Skola24/from/locations.d.ts +2 -2
  26. package/dist/Skola24/from/locations.js +3 -3
  27. package/dist/Skola24/from/locations.js.map +1 -1
  28. package/dist/Skola24/from/schedule.d.ts +4 -3
  29. package/dist/Skola24/from/schedule.js +101 -35
  30. package/dist/Skola24/from/schedule.js.map +1 -1
  31. package/dist/Skola24/from/teachers.d.ts +2 -2
  32. package/dist/Skola24/from/teachers.js +3 -3
  33. package/dist/Skola24/from/teachers.js.map +1 -1
  34. package/dist/Skola24/types/Course.d.ts +6 -0
  35. package/dist/Skola24/types/Course.js +6 -0
  36. package/dist/Skola24/types/Course.js.map +1 -0
  37. package/dist/Skola24/types/Group-group-link.d.ts +4 -0
  38. package/dist/Skola24/types/Group-group-link.js +6 -0
  39. package/dist/Skola24/types/Group-group-link.js.map +1 -0
  40. package/dist/Skola24/types/Group-student-link.d.ts +4 -0
  41. package/dist/Skola24/types/Group-student-link.js +6 -0
  42. package/dist/Skola24/types/Group-student-link.js.map +1 -0
  43. package/dist/Skola24/types/Group.d.ts +5 -0
  44. package/dist/Skola24/types/Group.js +6 -0
  45. package/dist/Skola24/types/Group.js.map +1 -0
  46. package/dist/Skola24/types/Lesson-group-link.d.ts +4 -0
  47. package/dist/Skola24/types/Lesson-group-link.js +6 -0
  48. package/dist/Skola24/types/Lesson-group-link.js.map +1 -0
  49. package/dist/Skola24/types/Lesson-period-link.d.ts +4 -0
  50. package/dist/Skola24/types/Lesson-period-link.js +6 -0
  51. package/dist/Skola24/types/Lesson-period-link.js.map +1 -0
  52. package/dist/Skola24/types/Lesson-room-link.d.ts +4 -0
  53. package/dist/Skola24/types/Lesson-room-link.js +6 -0
  54. package/dist/Skola24/types/Lesson-room-link.js.map +1 -0
  55. package/dist/Skola24/types/Lesson-teacher-link.d.ts +4 -0
  56. package/dist/Skola24/types/Lesson-teacher-link.js +6 -0
  57. package/dist/Skola24/types/Lesson-teacher-link.js.map +1 -0
  58. package/dist/Skola24/types/Lesson.d.ts +9 -0
  59. package/dist/Skola24/types/Lesson.js +6 -0
  60. package/dist/Skola24/types/Lesson.js.map +1 -0
  61. package/dist/Skola24/types/Meta.d.ts +7 -0
  62. package/dist/Skola24/types/Meta.js +6 -0
  63. package/dist/Skola24/types/Meta.js.map +1 -0
  64. package/dist/Skola24/types/Period.d.ts +5 -0
  65. package/dist/Skola24/types/Period.js +6 -0
  66. package/dist/Skola24/types/Period.js.map +1 -0
  67. package/dist/Skola24/types/Plan-group-link.d.ts +4 -0
  68. package/dist/Skola24/types/Plan-group-link.js +6 -0
  69. package/dist/Skola24/types/Plan-group-link.js.map +1 -0
  70. package/dist/Skola24/types/Plan-period-link.d.ts +4 -0
  71. package/dist/Skola24/types/Plan-period-link.js +6 -0
  72. package/dist/Skola24/types/Plan-period-link.js.map +1 -0
  73. package/dist/Skola24/types/Plan-teacher-link.d.ts +6 -0
  74. package/dist/Skola24/types/Plan-teacher-link.js +6 -0
  75. package/dist/Skola24/types/Plan-teacher-link.js.map +1 -0
  76. package/dist/Skola24/types/Plan.d.ts +5 -0
  77. package/dist/Skola24/types/Plan.js +6 -0
  78. package/dist/Skola24/types/Plan.js.map +1 -0
  79. package/dist/Skola24/types/Room.d.ts +5 -0
  80. package/dist/Skola24/types/Room.js +6 -0
  81. package/dist/Skola24/types/Room.js.map +1 -0
  82. package/dist/Skola24/types/Schedule.d.ts +34 -0
  83. package/dist/Skola24/types/Schedule.js +6 -0
  84. package/dist/Skola24/types/Schedule.js.map +1 -0
  85. package/dist/Skola24/types/Subject.d.ts +4 -0
  86. package/dist/Skola24/types/Subject.js +6 -0
  87. package/dist/Skola24/types/Subject.js.map +1 -0
  88. package/dist/Skola24/types/Teacher.d.ts +6 -0
  89. package/dist/Skola24/types/Teacher.js +6 -0
  90. package/dist/Skola24/types/Teacher.js.map +1 -0
  91. package/dist/Skola24_old/from/assert-week-overlap.d.ts +1 -0
  92. package/dist/Skola24_old/from/assert-week-overlap.js +28 -0
  93. package/dist/Skola24_old/from/assert-week-overlap.js.map +1 -0
  94. package/dist/Skola24_old/from/course-events.d.ts +6 -0
  95. package/dist/Skola24_old/from/course-events.js +127 -0
  96. package/dist/Skola24_old/from/course-events.js.map +1 -0
  97. package/dist/Skola24_old/from/courses.d.ts +5 -0
  98. package/dist/Skola24_old/from/courses.js +55 -0
  99. package/dist/Skola24_old/from/courses.js.map +1 -0
  100. package/dist/Skola24_old/from/groups.d.ts +3 -0
  101. package/dist/Skola24_old/from/groups.js +14 -0
  102. package/dist/Skola24_old/from/groups.js.map +1 -0
  103. package/dist/Skola24_old/from/index.d.ts +4 -0
  104. package/dist/Skola24_old/from/index.js +20 -0
  105. package/dist/Skola24_old/from/index.js.map +1 -0
  106. package/dist/Skola24_old/from/locations.d.ts +3 -0
  107. package/dist/Skola24_old/from/locations.js +14 -0
  108. package/dist/Skola24_old/from/locations.js.map +1 -0
  109. package/dist/Skola24_old/from/schedule.d.ts +3 -0
  110. package/dist/Skola24_old/from/schedule.js +68 -0
  111. package/dist/Skola24_old/from/schedule.js.map +1 -0
  112. package/dist/Skola24_old/from/teachers.d.ts +3 -0
  113. package/dist/Skola24_old/from/teachers.js +14 -0
  114. package/dist/Skola24_old/from/teachers.js.map +1 -0
  115. package/dist/Skola24_old/index.d.ts +4 -0
  116. package/dist/Skola24_old/index.js +20 -0
  117. package/dist/Skola24_old/index.js.map +1 -0
  118. package/dist/Skola24_old/types/TA-group-link.d.ts +4 -0
  119. package/dist/Skola24_old/types/TA-group-link.js +6 -0
  120. package/dist/Skola24_old/types/TA-group-link.js.map +1 -0
  121. package/dist/Skola24_old/types/TA-teacher-link.d.ts +4 -0
  122. package/dist/Skola24_old/types/TA-teacher-link.js +6 -0
  123. package/dist/Skola24_old/types/TA-teacher-link.js.map +1 -0
  124. package/dist/Skola24_old/types/TA.d.ts +8 -0
  125. package/dist/Skola24_old/types/TA.js +6 -0
  126. package/dist/Skola24_old/types/TA.js.map +1 -0
  127. package/dist/Skola24_old/types/group-student-link.d.ts +4 -0
  128. package/dist/Skola24_old/types/group-student-link.js +6 -0
  129. package/dist/Skola24_old/types/group-student-link.js.map +1 -0
  130. package/dist/Skola24_old/types/group.d.ts +4 -0
  131. package/dist/Skola24_old/types/group.js +6 -0
  132. package/dist/Skola24_old/types/group.js.map +1 -0
  133. package/dist/Skola24_old/types/lesson-group-link.d.ts +4 -0
  134. package/dist/Skola24_old/types/lesson-group-link.js +6 -0
  135. package/dist/Skola24_old/types/lesson-group-link.js.map +1 -0
  136. package/dist/Skola24_old/types/lesson-room-link.d.ts +4 -0
  137. package/dist/Skola24_old/types/lesson-room-link.js +6 -0
  138. package/dist/Skola24_old/types/lesson-room-link.js.map +1 -0
  139. package/dist/Skola24_old/types/lesson-teacher-link.d.ts +4 -0
  140. package/dist/Skola24_old/types/lesson-teacher-link.js +6 -0
  141. package/dist/Skola24_old/types/lesson-teacher-link.js.map +1 -0
  142. package/dist/Skola24_old/types/lesson.d.ts +9 -0
  143. package/dist/Skola24_old/types/lesson.js +6 -0
  144. package/dist/Skola24_old/types/lesson.js.map +1 -0
  145. package/dist/Skola24_old/types/room.d.ts +4 -0
  146. package/dist/Skola24_old/types/room.js +6 -0
  147. package/dist/Skola24_old/types/room.js.map +1 -0
  148. package/dist/Skola24_old/types/schedule.d.ts +24 -0
  149. package/dist/Skola24_old/types/schedule.js +6 -0
  150. package/dist/Skola24_old/types/schedule.js.map +1 -0
  151. package/dist/Skola24_old/types/teacher.d.ts +5 -0
  152. package/dist/Skola24_old/types/teacher.js +6 -0
  153. package/dist/Skola24_old/types/teacher.js.map +1 -0
  154. package/dist/core/types/divisions.d.ts +2 -2
  155. package/dist/core/types/index.d.ts +2 -0
  156. package/dist/core/types/meta.d.ts +4 -0
  157. package/dist/core/types/meta.js +6 -0
  158. package/dist/core/types/meta.js.map +1 -0
  159. package/package.json +1 -1
@@ -26,28 +26,31 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
26
26
  function _default(schedule) {
27
27
  if (schedule.schools.length != 1) {
28
28
  return {
29
- importErrors: ["Recieved ".concat(schedule.schools.length, " number of schools: only a single school is allowed.")]
29
+ meta: {
30
+ errors: ["Recieved ".concat(schedule.schools.length, " number of schools: only a single school is allowed.")]
31
+ }
30
32
  };
31
33
  }
32
34
 
33
35
  var school = schedule.schools[0];
34
- var importErrors = [];
35
- var importWarnings = [];
36
- var locations = (0, _locations2.default)(schedule.rooms, importErrors, importWarnings);
37
- var teachers = (0, _teachers2.default)(schedule.schedule_groups, schedule.lessons, importErrors, importWarnings);
38
- var groups = (0, _groups2.default)(schedule.primary_groups, importErrors, importWarnings);
39
- var courses = (0, _courses2.default)(schedule.schedule_groups, school, importErrors, importWarnings);
40
- var events = (0, _events2.default)(schedule.lessons, courses, teachers, importErrors, importWarnings);
41
- return _objectSpread(_objectSpread(_objectSpread({}, {
42
- groups,
43
- teachers,
36
+ var errors = [];
37
+ var warnings = [];
38
+ var locations = (0, _locations2.default)(schedule.rooms, errors, warnings);
39
+ var teachers = (0, _teachers2.default)(schedule.schedule_groups, schedule.lessons, errors, warnings);
40
+ var groups = (0, _groups2.default)(schedule.primary_groups, errors, warnings);
41
+ var courses = (0, _courses2.default)(schedule.schedule_groups, school, errors, warnings);
42
+ var events = (0, _events2.default)(schedule.lessons, courses, teachers, errors, warnings);
43
+ return {
44
44
  locations,
45
+ teachers,
46
+ groups,
45
47
  courses,
46
- events
47
- }), importErrors.length ? {
48
- importErrors
49
- } : {}), importWarnings.length ? {
50
- importWarnings
51
- } : {});
48
+ events,
49
+ meta: _objectSpread(_objectSpread({}, errors.length ? {
50
+ errors: errors
51
+ } : {}), warnings.length ? {
52
+ warnings: warnings
53
+ } : {})
54
+ };
52
55
  }
53
56
  //# sourceMappingURL=schedules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAKc,kBACZA,QADY,EACM;AAMlB,MAAIA,QAAQ,CAACC,OAAT,CAAiBC,MAAjB,IAA2B,CAA/B,EAAkC;AAChC,WAAO;AAAEC,kBAAY,EAAE,oBAAaH,QAAQ,CAACC,OAAT,CAAiBC,MAA9B;AAAhB,KAAP;AACD;;AACD,MAAIE,MAAM,GAAGJ,QAAQ,CAACC,OAAT,CAAiB,CAAjB,CAAb;AAGA,MAAIE,YAAY,GAAe,EAA/B;AACA,MAAIE,cAAc,GAAa,EAA/B;AAEA,MAAMC,SAAS,GAA4B,yBAAWN,QAAQ,CAACO,KAApB,EAAsDJ,YAAtD,EAAoEE,cAApE,CAA3C;AACA,MAAMG,QAAQ,GAA6B,wBAAUR,QAAQ,CAACS,eAAnB,EAAoCT,QAAQ,CAACU,OAA7C,EAAsDP,YAAtD,EAAoEE,cAApE,CAA3C;AACA,MAAMM,MAAM,GAA+B,sBAAQX,QAAQ,CAACY,cAAjB,EAAsDT,YAAtD,EAAoEE,cAApE,CAA3C;AACA,MAAMQ,OAAO,GAA8B,uBAASb,QAAQ,CAACS,eAAlB,EAAmCL,MAAnC,EAAsDD,YAAtD,EAAoEE,cAApE,CAA3C;AACA,MAAMS,MAAM,GAA+B,sBAAQd,QAAQ,CAACU,OAAjB,EAA0BG,OAA1B,EAAmCL,QAAnC,EAAsDL,YAAtD,EAAoEE,cAApE,CAA3C;AAEA,uDAAY;AAAEM,UAAF;AAAUH,YAAV;AAAoBF,aAApB;AAA+BO,WAA/B;AAAwCC;AAAxC,GAAZ,GACaX,YAAY,CAACD,MAAb,GAAwB;AAAEC;AAAF,GAAxB,GAA6C,EAD1D,GAEaE,cAAc,CAACH,MAAf,GAAwB;AAAEG;AAAF,GAAxB,GAA6C,EAF1D;AAGD","names":["schedule","schools","length","importErrors","school","importWarnings","locations","rooms","teachers","schedule_groups","lessons","groups","primary_groups","courses","events"],"sourceRoot":"","sources":["../../../src/Admentum/from/schedules.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"schedules.js","mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAKc,kBACZA,QADY,EACM;AAMlB,MAAIA,QAAQ,CAACC,OAAT,CAAiBC,MAAjB,IAA2B,CAA/B,EAAkC;AAChC,WAAO;AAAEC,UAAI,EAAE;AAAEC,cAAM,EAAE,oBAAaJ,QAAQ,CAACC,OAAT,CAAiBC,MAA9B;AAAV;AAAR,KAAP;AACD;;AACD,MAAIG,MAAM,GAAGL,QAAQ,CAACC,OAAT,CAAiB,CAAjB,CAAb;AAGA,MAAIG,MAAM,GAAe,EAAzB;AACA,MAAIE,QAAQ,GAAa,EAAzB;AAEA,MAAMC,SAAS,GAA4B,yBAAWP,QAAQ,CAACQ,KAApB,EAAsDJ,MAAtD,EAA8DE,QAA9D,CAA3C;AACA,MAAMG,QAAQ,GAA6B,wBAAUT,QAAQ,CAACU,eAAnB,EAAoCV,QAAQ,CAACW,OAA7C,EAAsDP,MAAtD,EAA8DE,QAA9D,CAA3C;AACA,MAAMM,MAAM,GAA+B,sBAAQZ,QAAQ,CAACa,cAAjB,EAAsDT,MAAtD,EAA8DE,QAA9D,CAA3C;AACA,MAAMQ,OAAO,GAA8B,uBAASd,QAAQ,CAACU,eAAlB,EAAmCL,MAAnC,EAAsDD,MAAtD,EAA8DE,QAA9D,CAA3C;AACA,MAAMS,MAAM,GAA+B,sBAAQf,QAAQ,CAACW,OAAjB,EAA0BG,OAA1B,EAAmCL,QAAnC,EAAsDL,MAAtD,EAA8DE,QAA9D,CAA3C;AAEA,SAAO;AAAEC,aAAF;AAAaE,YAAb;AAAuBG,UAAvB;AAA+BE,WAA/B;AAAwCC,UAAxC;AACEZ,QAAI,kCACGC,MAAM,CAACF,MAAP,GAAkB;AAAEE,YAAM,EAAIA;AAAZ,KAAlB,GAA2C,EAD9C,GAEGE,QAAQ,CAACJ,MAAT,GAAkB;AAAEI,cAAQ,EAAEA;AAAZ,KAAlB,GAA2C,EAF9C;AADN,GAAP;AAMD","names":["schedule","schools","length","meta","errors","school","warnings","locations","rooms","teachers","schedule_groups","lessons","groups","primary_groups","courses","events"],"sourceRoot":"","sources":["../../../src/Admentum/from/schedules.ts"],"sourcesContent":[null]}
@@ -1,4 +1,4 @@
1
1
  import { Types as CoreTypes } from '../../core/types';
2
2
  import { Teacher } from '../types/teachers';
3
- declare const _default: (teachers: CoreTypes.teacher[], belongsTo?: string | undefined) => Teacher[];
3
+ declare const _default: (teachers: CoreTypes.teacher[]) => Teacher[];
4
4
  export default _default;
@@ -5,29 +5,19 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _lodash = _interopRequireDefault(require("lodash"));
9
-
10
- function _interopRequireDefault(obj) {
11
- return obj && obj.__esModule ? obj : {
12
- default: obj
13
- };
14
- }
15
-
16
- var _default = (teachers, belongsTo) => {
8
+ var _default = teachers => {
17
9
  if (!Array.isArray(teachers)) throw new Error('(SS12000::To::Teacher) Teacher input is not of array type');
18
- if (!teachers.every(teacher => _lodash.default.has(teacher, 'id'))) throw new Error('(SS12000::To::Teacher) Some teachers are missing "id" values');
19
- if (!belongsTo && !teachers.every(teacher => _lodash.default.has(teacher, 'belongsTo'))) throw new Error('(SS12000::To::Teacher) Some top layer teachers are missing "belongsTo" values');
20
10
  return teachers.map(teacher => {
21
11
  var _teacher$displayName;
22
12
 
23
13
  return {
24
- id: "".concat(belongsTo !== null && belongsTo !== void 0 ? belongsTo : teacher.belongsTo.id, ".").concat(teacher.id),
14
+ id: teacher.id,
25
15
  meta: {
26
16
  created: teacher.createdAt,
27
17
  modified: teacher.updatedAt
28
18
  },
29
19
  person: {
30
- id: "".concat(belongsTo !== null && belongsTo !== void 0 ? belongsTo : teacher.belongsTo.id, ".").concat(teacher.id),
20
+ id: teacher.id,
31
21
  displayName: (_teacher$displayName = teacher.displayName) !== null && _teacher$displayName !== void 0 ? _teacher$displayName : teacher.ids
32
22
  },
33
23
  dutyRole: "Lärare"
@@ -1 +1 @@
1
- {"version":3,"file":"teachers.js","mappings":";;;;;;;AAAA;;;;;;;;eAMe,CAACA,QAAD,EAAgCC,SAAhC,KAAiE;AAC9E,MAAI,CAAEC,KAAK,CAACC,OAAND,CAAcF,QAAdE,CAAN,EACE,MAAM,IAAIE,KAAJ,CAAU,2DAAV,CAAN;AAEF,MAAI,CAAEJ,QAAQ,CAACK,KAATL,CAAgBM,OAAD,IAAaC,gBAAEC,GAAFD,CAAMD,OAANC,EAAe,IAAfA,CAA5BP,CAAN,EACE,MAAM,IAAII,KAAJ,CAAU,8DAAV,CAAN;AAEF,MAAI,CAAEH,SAAF,IAAe,CAAED,QAAQ,CAACK,KAATL,CAAgBM,OAAD,IAAaC,gBAAEC,GAAFD,CAAMD,OAANC,EAAe,WAAfA,CAA5BP,CAArB,EACE,MAAM,IAAII,KAAJ,CAAU,+EAAV,CAAN;AAEF,SAAOJ,QAAQ,CAACS,GAATT,CAAcM,OAAD;AAAA;;AAAA,WAAc;AAChCI,QAAE,YAAcT,SAAd,SAAcA,aAAd,WAAcA,eAAaK,OAAO,CAACL,SAARK,CAAmBI,EAA9C,cAAsDJ,OAAO,CAACI,EAA9D,CAD8B;AAEhCC,UAAI,EAAE;AACJC,eAAO,EAAGN,OAAO,CAACO,SADd;AAEJC,gBAAQ,EAAER,OAAO,CAACS;AAFd,OAF0B;AAMhCC,YAAM,EAAE;AACNN,UAAE,YAAeT,SAAf,SAAeA,aAAf,WAAeA,eAAaK,OAAO,CAACL,SAARK,CAAmBI,EAA/C,cAAuDJ,OAAO,CAACI,EAA/D,CADI;AAENO,mBAAW,0BAAEX,OAAO,CAACW,WAAV,uEAAyBX,OAAO,CAACY;AAFtC,OANwB;AAWhCC,cAAQ,EAAE;AAXsB,KAAd;AAAb,IAAP","names":["teachers","belongsTo","Array","isArray","Error","every","teacher","_","has","map","id","meta","created","createdAt","modified","updatedAt","person","displayName","ids","dutyRole"],"sourceRoot":"","sources":["../../../src/SS12000/to/teachers.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"teachers.js","mappings":";;;;;;;eAIgBA,QAAD,IAA6C;AAC1D,MAAI,CAAEC,KAAK,CAACC,OAAND,CAAcD,QAAdC,CAAN,EACE,MAAM,IAAIE,KAAJ,CAAU,2DAAV,CAAN;AAEF,SAAOH,QAAQ,CAACI,GAATJ,CAAcK,OAAD;AAAA;;AAAA,WAAc;AAChCC,QAAE,EAAED,OAAO,CAACC,EADoB;AAEhCC,UAAI,EAAE;AACJC,eAAO,EAAGH,OAAO,CAACI,SADd;AAEJC,gBAAQ,EAAEL,OAAO,CAACM;AAFd,OAF0B;AAMhCC,YAAM,EAAE;AACNN,UAAE,EAAED,OAAO,CAACC,EADN;AAENO,mBAAW,0BAAER,OAAO,CAACQ,WAAV,uEAAyBR,OAAO,CAACS;AAFtC,OANwB;AAWhCC,cAAQ,EAAE;AAXsB,KAAd;AAAb,IAAP","names":["teachers","Array","isArray","Error","map","teacher","id","meta","created","createdAt","modified","updatedAt","person","displayName","ids","dutyRole"],"sourceRoot":"","sources":["../../../src/SS12000/to/teachers.ts"],"sourcesContent":[null]}
@@ -1 +1 @@
1
- {"version":3,"file":"assert-week-overlap.js","mappings":";;;;;;;AAAA,SAASA,gBAAT,CACEC,KADF,EACe;AAEb,MAAIC,KAAK,GAAa,EAAtB;AACAD,OAAK,CAACE,KAAN,CAAY,GAAZ,EACMC,OADN,CACcC,CAAC,IAAG;AAChB,QAAIA,CAAC,CAACC,QAAF,CAAW,GAAX,CAAJ,EAAqB;AAEnB,UAAI,CAACC,KAAD,EAAQC,GAAR,IAAeH,CAAC,CAACF,KAAF,CAAQ,GAAR,CAAnB;;AACA,WAAK,IAAIM,CAAC,GAAGC,QAAQ,CAACH,KAAD,CAArB,EAA8BE,CAAC,IAAIC,QAAQ,CAACF,GAAD,CAA3C,EAAkDC,CAAC,EAAnD;AACEP,aAAK,CAACS,IAAN,CAAWF,CAAX;AADF;AAED,KALD,MAKO;AAELP,WAAK,CAACS,IAAN,CAAWD,QAAQ,CAACL,CAAD,CAAnB;AACD;AACF,GAXD;AAaA,SAAOH,KAAP;AACD;;AAEK,SAAUU,iBAAV,CACJC,YADI,EAEJC,aAFI,EAEmB;AAEvB,MAAIC,WAAW,GAAGf,gBAAgB,CAACa,YAAD,CAAlC;AACA,SAAO,CAAC,CAAEE,WAAW,CAACC,MAAZ,CAAmBC,CAAC,IAAIH,aAAa,CAACR,QAAd,CAAuBW,CAAvB,CAAxB,EAAmDC,MAA7D;AACD","names":["parseActualWeeks","input","weeks","split","forEach","x","includes","start","end","i","parseInt","push","assertWeekOverlap","_actualWeeks","scheduleWeeks","actualWeeks","filter","w","length"],"sourceRoot":"","sources":["../../../src/Skola24/from/assert-week-overlap.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"assert-week-overlap.js","mappings":";;;;;;;AAAA,SAASA,gBAAT,CACEC,KADF,EACe;AAEb,MAAIC,KAAK,GAAa,EAAtB;AACAD,OAAK,CAACE,KAANF,CAAY,GAAZA,EACMG,OADNH,CACcI,CAAC,IAAG;AAChB,QAAIA,CAAC,CAACC,QAAFD,CAAW,GAAXA,CAAJ,EAAqB;AAEnB,UAAI,CAACE,KAAD,EAAQC,GAAR,IAAeH,CAAC,CAACF,KAAFE,CAAQ,GAARA,CAAnB;;AACA,WAAK,IAAII,CAAC,GAAGC,QAAQ,CAACH,KAAD,CAArB,EAA8BE,CAAC,IAAIC,QAAQ,CAACF,GAAD,CAA3C,EAAkDC,CAAC,EAAnD;AACEP,aAAK,CAACS,IAANT,CAAWO,CAAXP;AADF;AAHF,WAKO;AAELA,WAAK,CAACS,IAANT,CAAWQ,QAAQ,CAACL,CAAD,CAAnBH;AACD;AAVH;AAaA,SAAOA,KAAP;AACD;;AAEK,SAAUU,iBAAV,CACJC,YADI,EAEJC,aAFI,EAEmB;AAEvB,MAAIC,WAAW,GAAGf,gBAAgB,CAACa,YAAD,CAAlC;AACA,SAAO,CAAC,CAAEE,WAAW,CAACC,MAAZD,CAAmBE,CAAC,IAAIH,aAAa,CAACR,QAAdQ,CAAuBG,CAAvBH,CAAxBC,EAAmDG,MAA7D;AACD","names":["parseActualWeeks","input","weeks","split","forEach","x","includes","start","end","i","parseInt","push","assertWeekOverlap","_actualWeeks","scheduleWeeks","actualWeeks","filter","w","length"],"sourceRoot":"","sources":["../../../src/Skola24/from/assert-week-overlap.ts"],"sourcesContent":[null]}
@@ -0,0 +1,9 @@
1
+ import { Types } from '../../core/types';
2
+ import { Plan } from '../types/Plan';
3
+ import { Group } from '../types/Group';
4
+ import { Lesson } from '../types/Lesson';
5
+ import { Meta } from '../types/Meta';
6
+ export default function (groups: Group[], lessons: Lesson[], meta: Meta | undefined, groupPlansMap: Map<number, Set<string>>, planMap: Map<number, Plan>, subjectMap: Map<number, string>, planTeachersMap: Map<number, Set<string>>, groupClassesMap: Map<string, Set<string>>, RSgroups: Types.group[], groupMap: Map<number, Group>, lessonRoomsMap: Map<number, Set<string>>, lessonTeachersMap: Map<number, Set<string>>, lessonGroupsMap: Map<number, Set<string>>, RSteachers: Types.teacher[], warnings: string[], errors: string[]): {
7
+ courses: Types.course[];
8
+ events: Types.courseEvent[];
9
+ };
@@ -0,0 +1,340 @@
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
+ var _lodash = _interopRequireDefault(require("lodash"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ 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; }
15
+
16
+ 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; }
17
+
18
+ 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; }
19
+
20
+ var separator = ', ';
21
+ var arbetstid = 'Arbetstid'.toLowerCase();
22
+ var firstDay = '1970-01-05';
23
+ var numDays = 5;
24
+ var defaultDayStart = [8, 0];
25
+ var defaultDayEnd = [17, 0];
26
+
27
+ function generateDate(days, hours, minutes) {
28
+ return _moment.default.utc(firstDay).add(days, "days").add(hours, "hours").add(minutes, "minutes");
29
+ }
30
+
31
+ function startAndEnd(lesson) {
32
+ if ("Length" in lesson && "DayOfWeek" in lesson && "StartTime" in lesson) {
33
+ var dateTimeDate = (0, _moment.default)(lesson.StartTime, "MM/DD/YY hh:mm:ss");
34
+ var hours = dateTimeDate.get("hours");
35
+ var minutes = dateTimeDate.get("minutes");
36
+ var start = generateDate(lesson.DayOfWeek, hours, minutes);
37
+ var end = start.clone().add(lesson.Length, "minute");
38
+ return {
39
+ start: start,
40
+ end: end,
41
+ parked: false
42
+ };
43
+ } else {
44
+ return {};
45
+ }
46
+ }
47
+
48
+ function parseActualWeeks(val) {
49
+ if (!val) return [];
50
+ var weeks = [];
51
+ val.split(",").forEach(x => {
52
+ if (x.includes("-")) {
53
+ var [start, end] = x.split("-");
54
+
55
+ for (var i = parseInt(start); i <= parseInt(end); i++) {
56
+ weeks.push(i);
57
+ }
58
+ } else {
59
+ weeks.push(parseInt(x));
60
+ }
61
+ });
62
+ return weeks;
63
+ }
64
+
65
+ function addGroupsFromName(name, groupSet, groupNamePkMap) {
66
+ var regex = /-([^\s-]+)/gi;
67
+ var matches;
68
+
69
+ while (matches = regex.exec(name)) {
70
+ if (groupNamePkMap.has(matches[1])) {
71
+ var PK = groupNamePkMap.get(matches[1]);
72
+ groupSet.add(PK);
73
+ }
74
+ }
75
+ }
76
+
77
+ function getDay(mnt) {
78
+ return mnt.dayOfYear() - _moment.default.utc(firstDay).dayOfYear();
79
+ }
80
+
81
+ function createDefaultIntervals() {
82
+ var intervals = [];
83
+
84
+ for (var d = 0; d < numDays; d++) {
85
+ intervals.push({
86
+ start: generateDate(d, defaultDayStart[0], defaultDayStart[1]),
87
+ end: generateDate(d, defaultDayEnd[0], defaultDayEnd[1])
88
+ });
89
+ }
90
+
91
+ return intervals;
92
+ }
93
+
94
+ function _default(groups, lessons, meta, groupPlansMap, planMap, subjectMap, planTeachersMap, groupClassesMap, RSgroups, groupMap, lessonRoomsMap, lessonTeachersMap, lessonGroupsMap, RSteachers, warnings, errors) {
95
+ var groupNamePkMap = new Map(RSgroups.map(g => [g.displayName, g.ids]));
96
+ var courseMap = new Map();
97
+ groups.forEach(x => {
98
+ var _groupClassesMap$get, _groupPlansMap$get;
99
+
100
+ if (x.bClass) return;
101
+ var plans = groupPlansMap.get(x.PK);
102
+ var subject;
103
+
104
+ if (plans) {
105
+ var _planMap$get;
106
+
107
+ var subjPK = (_planMap$get = planMap.get(parseInt([...plans][0]))) === null || _planMap$get === void 0 ? void 0 : _planMap$get.FKSubject;
108
+ if (subjPK) subject = subjectMap.get(subjPK);
109
+ }
110
+
111
+ var groupSet = (_groupClassesMap$get = groupClassesMap.get(x.PK.toString())) !== null && _groupClassesMap$get !== void 0 ? _groupClassesMap$get : new Set();
112
+
113
+ if (meta !== null && meta !== void 0 && meta.deduceGroupsFromCourseName && x.ID) {
114
+ addGroupsFromName(x.ID, groupSet, groupNamePkMap);
115
+ }
116
+
117
+ var teacherSet = new Set();
118
+ (_groupPlansMap$get = groupPlansMap.get(x.PK)) === null || _groupPlansMap$get === void 0 ? void 0 : _groupPlansMap$get.forEach(p => {
119
+ var _planTeachersMap$get;
120
+
121
+ (_planTeachersMap$get = planTeachersMap.get(parseInt(p))) === null || _planTeachersMap$get === void 0 ? void 0 : _planTeachersMap$get.forEach(t => teacherSet.add(t));
122
+ });
123
+ courseMap.set(x.PK, _objectSpread(_objectSpread(_objectSpread({
124
+ ids: x.PK.toString(),
125
+ displayName: x.ID
126
+ }, subject && {
127
+ subject
128
+ }), (groupSet === null || groupSet === void 0 ? void 0 : groupSet.size) && {
129
+ groups: [...groupSet]
130
+ }), teacherSet.size && {
131
+ teachers: [...teacherSet]
132
+ }));
133
+ });
134
+ var numAdditionalCourses = 0;
135
+ var eventMap = new Map();
136
+ var intervalMap = new Map();
137
+ lessons.forEach(l => {
138
+ var _lessonGroupsMap$get, _lessonGroupsMap$get2;
139
+
140
+ if ((meta === null || meta === void 0 ? void 0 : meta.week) == undefined || !parseActualWeeks(l.CalcActualWeeks).includes(meta.week)) return;
141
+ var coursesIds = [...((_lessonGroupsMap$get = lessonGroupsMap.get(l.PK)) !== null && _lessonGroupsMap$get !== void 0 ? _lessonGroupsMap$get : new Set())].map(id => groupMap.get(parseInt(id))).filter(g => (g === null || g === void 0 ? void 0 : g.bClass) == false).sort((g1, g2) => g1.PK - g2.PK).map(g => g.PK);
142
+
143
+ var event = _objectSpread({
144
+ ids: l.PK.toString(),
145
+ duration: l.Length
146
+ }, startAndEnd(l));
147
+
148
+ var rooms = lessonRoomsMap.get(l.PK);
149
+
150
+ if (rooms !== null && rooms !== void 0 && rooms.size) {
151
+ event.inLocations = [...rooms];
152
+ event.locations = [...rooms].map(l => ({
153
+ locations: [l]
154
+ }));
155
+ }
156
+
157
+ var teachers = lessonTeachersMap.get(l.PK);
158
+ if (teachers !== null && teachers !== void 0 && teachers.size) event.teachers = [...teachers];
159
+ var classes = new Set();
160
+ (_lessonGroupsMap$get2 = lessonGroupsMap.get(l.PK)) === null || _lessonGroupsMap$get2 === void 0 ? void 0 : _lessonGroupsMap$get2.forEach(scheduleGroupId => {
161
+ var _groupClassesMap$get2;
162
+
163
+ (_groupClassesMap$get2 = groupClassesMap.get(scheduleGroupId)) === null || _groupClassesMap$get2 === void 0 ? void 0 : _groupClassesMap$get2.forEach(classId => {
164
+ classes.add(classId);
165
+ });
166
+ });
167
+ var courseHasGroups = coursesIds.some(x => {
168
+ var _courseMap$get;
169
+
170
+ return (_courseMap$get = courseMap.get(x)) === null || _courseMap$get === void 0 ? void 0 : _courseMap$get.groups;
171
+ });
172
+
173
+ if (meta !== null && meta !== void 0 && meta.deduceGroupsFromCourseName && (!courseHasGroups || classes.size)) {
174
+ coursesIds.map(x => {
175
+ var _courseMap$get2;
176
+
177
+ return (_courseMap$get2 = courseMap.get(x)) === null || _courseMap$get2 === void 0 ? void 0 : _courseMap$get2.displayName;
178
+ }).filter(x => !!x).forEach(x => addGroupsFromName(x, classes, groupNamePkMap));
179
+ }
180
+
181
+ if (classes.size) event.groups = [...classes];
182
+ var subject = subjectMap.get(l.FKSubject);
183
+
184
+ if ((subject === null || subject === void 0 ? void 0 : subject.toLowerCase()) == arbetstid) {
185
+ if (!event.start || !event.end) {
186
+ warnings.push("Start or end not set on interval event");
187
+ return;
188
+ }
189
+
190
+ var day = getDay(event.start);
191
+
192
+ if (0 > day || day > numDays - 1) {
193
+ warnings.push("Interval day out of bounds");
194
+ return;
195
+ }
196
+
197
+ teachers === null || teachers === void 0 ? void 0 : teachers.forEach(t => {
198
+ var _intervalMap$get;
199
+
200
+ if (!intervalMap.has(t)) intervalMap.set(t, new Map());
201
+ (_intervalMap$get = intervalMap.get(t)) === null || _intervalMap$get === void 0 ? void 0 : _intervalMap$get.set(day, {
202
+ start: event.start,
203
+ end: event.end
204
+ });
205
+ });
206
+ } else {
207
+ var _eventMap$get;
208
+
209
+ if (!coursesIds.length) {
210
+ var id = --numAdditionalCourses;
211
+ courseMap.set(id, _objectSpread(_objectSpread({
212
+ ids: id.toString()
213
+ }, subject && {
214
+ displayName: subject
215
+ }), subject && {
216
+ subject
217
+ }));
218
+ coursesIds.push(id);
219
+ }
220
+
221
+ var key = coursesIds.join(separator);
222
+ if (!eventMap.has(key)) eventMap.set(key, []);
223
+ (_eventMap$get = eventMap.get(key)) === null || _eventMap$get === void 0 ? void 0 : _eventMap$get.push(event);
224
+ }
225
+ });
226
+ intervalMap.forEach((v, k) => {
227
+ var teacher = RSteachers.find(t => t.ids == k);
228
+
229
+ if (!teacher) {
230
+ warnings.push("An interval referred to the unknown teacher with PK = ".concat(k));
231
+ return;
232
+ }
233
+
234
+ var intervals = createDefaultIntervals();
235
+ var days = [];
236
+ v.forEach((i, d) => {
237
+ days.push({
238
+ day: d
239
+ });
240
+ intervals[d] = i;
241
+ });
242
+ teacher.intervals = intervals;
243
+ if (days.length != numDays) teacher.days = days;
244
+ });
245
+ eventMap.forEach((events, key) => {
246
+ var courseIds = key.split(separator).map(x => parseInt(x));
247
+
248
+ if (courseIds.length > 1) {
249
+ var idss = [];
250
+ var displayNames = [];
251
+ var subjects = new Set();
252
+
253
+ var _groups = new Set();
254
+
255
+ var teachers = new Set();
256
+ courseIds.map(x => courseMap.get(x)).filter(c => !!c).forEach(c => {
257
+ c.ids && idss.push(c.ids);
258
+ c.displayName && displayNames.push(c.displayName);
259
+ c.subject && subjects.add(c.subject);
260
+ c.groups && c.groups.forEach(x => _groups.add(x));
261
+ c.teachers && c.teachers.forEach(x => teachers.add(x));
262
+ });
263
+ var newId = --numAdditionalCourses;
264
+
265
+ var newCourse = _objectSpread(_objectSpread(_objectSpread({
266
+ ids: idss.join(separator),
267
+ displayName: displayNames.join(separator)
268
+ }, subjects.size && {
269
+ subject: [...subjects].join(separator)
270
+ }), _groups.size && {
271
+ groups: [..._groups]
272
+ }), teachers.size && {
273
+ teachers: [...teachers]
274
+ });
275
+
276
+ courseMap.set(newId, newCourse);
277
+ eventMap.set(newId.toString(), [...events]);
278
+ events.length = 0;
279
+ warnings.push("The courses with PKs [".concat(courseIds.join(separator), "] needed to be merged."));
280
+ }
281
+ });
282
+ var populatedCourses = new Set();
283
+ eventMap.forEach((events, key) => {
284
+ var _courseMap$get3;
285
+
286
+ if (!events.length) return;
287
+ var courseIds = key.split(separator).map(x => parseInt(x));
288
+ if (courseIds.length != 1 && events.length) throw "Well this was unexpected...";
289
+ var courseId = courseIds[0];
290
+ var PK = (_courseMap$get3 = courseMap.get(courseId)) === null || _courseMap$get3 === void 0 ? void 0 : _courseMap$get3.ids;
291
+
292
+ if (PK == undefined) {
293
+ errors.push("The events with PKs ".concat(events.map(e => e.ids), " were ignored since their course was not found."));
294
+ events.length = 0;
295
+ return;
296
+ }
297
+
298
+ events.forEach(e => e.course = PK);
299
+ populatedCourses.add(courseId);
300
+ });
301
+
302
+ if (meta !== null && meta !== void 0 && meta.ignoreEmptyCourses) {
303
+ var courses = [...courseMap].filter(_ref => {
304
+ var [k] = _ref;
305
+ return populatedCourses.has(k);
306
+ });
307
+ courseMap = new Map(courses);
308
+ }
309
+
310
+ var keys = ['groups', 'teachers'];
311
+
312
+ var _loop = function _loop(key) {
313
+ courseMap.forEach(c => {
314
+ var _c$key;
315
+
316
+ var events = eventMap.get(c.ids);
317
+ var courseEntry = (_c$key = c[key]) === null || _c$key === void 0 ? void 0 : _c$key.sort();
318
+ var eventEntries = events === null || events === void 0 ? void 0 : events.map(e => {
319
+ var _e$key;
320
+
321
+ return (_e$key = e[key]) === null || _e$key === void 0 ? void 0 : _e$key.sort();
322
+ });
323
+
324
+ if (eventEntries !== null && eventEntries !== void 0 && eventEntries[0] && _lodash.default.size(_lodash.default.groupBy(eventEntries)) == 1 && (!courseEntry || courseEntry.length == 0 || _lodash.default.isEqual(courseEntry, eventEntries[0]))) {
325
+ c[key] = eventEntries[0];
326
+ events === null || events === void 0 ? void 0 : events.forEach(e => delete e[key]);
327
+ }
328
+ });
329
+ };
330
+
331
+ for (var key of keys) {
332
+ _loop(key);
333
+ }
334
+
335
+ return {
336
+ courses: [...courseMap.values()],
337
+ events: [...eventMap.values()].flat()
338
+ };
339
+ }
340
+ //# sourceMappingURL=course-and-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"course-and-events.js","mappings":"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","names":["separator","arbetstid","toLowerCase","firstDay","numDays","defaultDayStart","defaultDayEnd","generateDate","days","hours","minutes","moment","utc","add","startAndEnd","lesson","dateTimeDate","StartTime","get","start","DayOfWeek","end","clone","Length","parked","parseActualWeeks","val","weeks","split","forEach","x","includes","i","parseInt","push","addGroupsFromName","name","groupSet","groupNamePkMap","regex","matches","exec","has","PK","getDay","mnt","dayOfYear","createDefaultIntervals","intervals","d","groups","lessons","meta","groupPlansMap","planMap","subjectMap","planTeachersMap","groupClassesMap","RSgroups","groupMap","lessonRoomsMap","lessonTeachersMap","lessonGroupsMap","RSteachers","warnings","errors","Map","map","g","displayName","ids","courseMap","bClass","plans","subject","subjPK","FKSubject","toString","Set","deduceGroupsFromCourseName","ID","teacherSet","p","t","set","size","teachers","numAdditionalCourses","eventMap","intervalMap","l","week","undefined","CalcActualWeeks","coursesIds","id","filter","sort","g1","g2","event","duration","rooms","inLocations","locations","classes","scheduleGroupId","classId","courseHasGroups","some","day","length","key","join","v","k","teacher","find","events","courseIds","idss","displayNames","subjects","c","newId","newCourse","populatedCourses","courseId","e","course","ignoreEmptyCourses","courses","keys","courseEntry","eventEntries","_","groupBy","isEqual","values","flat"],"sourceRoot":"","sources":["../../../src/Skola24/from/course-and-events.ts"],"sourcesContent":[null]}
@@ -9,13 +9,52 @@ var _moment = _interopRequireDefault(require("moment"));
9
9
 
10
10
  var _assertWeekOverlap = require("./assert-week-overlap");
11
11
 
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _interopRequireDefault(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+
18
+ function ownKeys(object, enumerableOnly) {
19
+ var keys = Object.keys(object);
20
+
21
+ if (Object.getOwnPropertySymbols) {
22
+ var symbols = Object.getOwnPropertySymbols(object);
23
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
24
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
25
+ })), keys.push.apply(keys, symbols);
26
+ }
27
+
28
+ return keys;
29
+ }
13
30
 
14
- 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; }
31
+ function _objectSpread(target) {
32
+ for (var i = 1; i < arguments.length; i++) {
33
+ var source = null != arguments[i] ? arguments[i] : {};
34
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
35
+ _defineProperty(target, key, source[key]);
36
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
37
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
38
+ });
39
+ }
40
+
41
+ return target;
42
+ }
15
43
 
16
- 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; }
44
+ function _defineProperty(obj, key, value) {
45
+ if (key in obj) {
46
+ Object.defineProperty(obj, key, {
47
+ value: value,
48
+ enumerable: true,
49
+ configurable: true,
50
+ writable: true
51
+ });
52
+ } else {
53
+ obj[key] = value;
54
+ }
17
55
 
18
- 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; }
56
+ return obj;
57
+ }
19
58
 
20
59
  var startAndEnd = function startAndEnd(lesson) {
21
60
  if ("Length" in lesson && "DayOfWeek" in lesson && "Starttime" in lesson) {
@@ -1 +1 @@
1
- {"version":3,"file":"course-events.js","mappings":"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","names":["startAndEnd","lesson","d","DayOfWeek","hm","Starttime","split","start","moment","utc","add","length","end","clone","Length","parked","lessonTeacherLinks","lessonGroupLinks","lessonRoomLinks","groupClassesMap","classes","groupCourseMap","weeks","courseEvents","filter","x","ActualWeeks","map","ids","Lesson","toString","displayName","Course","Subject","duration","forEach","teachers","y","parseInt","Teacher","groups","Group","group","includes","has","get","groupSet","Set","size","rooms","Room","inLocations","locations","i","groupIndex","unknownCourseCounter","course"],"sourceRoot":"","sources":["../../../src/Skola24/from/course-events.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"course-events.js","mappings":";;;;;;;AAAA;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAIA,WAAW,GAAG,SAAdA,WAAc,CAChBC,MADgB,EACF;AAEd,MAAI,YAAYA,MAAZ,IAAuB,eAAeA,MAAtC,IAAiD,eAAeA,MAApE,EAA6E;AAC3E,QAAIC,CAAC,GAAGD,MAAM,CAACE,SAAf;AACA,QAAIC,EAAE,GAAGH,MAAM,CAACI,SAAPJ,CAAkBK,KAAlBL,CAAwB,GAAxBA,CAAT;;AACA,QAAIM,KAAK,GAAGC,gBAAOC,GAAPD,CAAW,YAAXA,EACOE,GADPF,CACWN,CADXM,EACc,MADdA,EAEOE,GAFPF,CAEWJ,EAAE,CAAC,CAAD,CAFbI,EAEkB,OAFlBA,EAGOE,GAHPF,CAGWJ,EAAE,CAACO,MAAHP,IAAa,CAAbA,GAAiBA,EAAE,CAAC,CAAD,CAAnBA,GAAyB,CAHpCI,EAGuC,SAHvCA,CAAZ;;AAIA,QAAII,GAAG,GAAGL,KAAK,CAACM,KAANN,GACMG,GADNH,CACUN,MAAM,CAACa,MADjBP,EACyB,QADzBA,CAAV;AAEA,WAAO;AAAEA,WAAK,EAAEA,KAAT;AAAgBK,SAAG,EAAEA,GAArB;AAA0BG,YAAM,EAAE;AAAlC,KAAP;AATF,SAUO;AACL,WAAO,EAAP;AACD;AAfH;;AAkBc,kBACZd,MADY,EAEZe,kBAFY,EAGZC,gBAHY,EAIZC,eAJY,EAKZC,eALY,EAMZC,OANY,EAOZC,cAPY,EAQZC,KARY,EAQgB;AAI5B,MAAIC,YAAY,GACZtB,MAAM,CAACuB,MAAPvB,CAAcwB,CAAC,IAAI,0CAAkBA,CAAC,CAACC,WAApB,EAAiCJ,KAAjC,CAAnBrB,EACO0B,GADP1B,CACWwB,CAAC;AACJG,OAAG,EAAUH,CAAC,CAACI,MAAFJ,CAAUK,QAAVL,EADT;AAEJM,eAAW,EAAEN,CAAC,CAACO,MAAFP,IAAYA,CAAC,CAACQ,OAFvB;AAGJC,YAAQ,EAAKT,CAAC,CAACX;AAHX,KAIDd,WAAW,CAACyB,CAAD,CAJV,CADZxB,CADJ;AAUAsB,cAAY,CAACY,OAAbZ,CAAqBE,CAAC,IAAG;AACvB,QAAIW,QAAQ,GAAGpB,kBAAkB,CAACQ,MAAnBR,CAA0BqB,CAAC,IAAIA,CAAC,CAACR,MAAFQ,IAAYC,QAAQ,CAACb,CAAC,CAACG,GAAH,CAAnDZ,EACmBW,GADnBX,CACuBqB,CAAC,IAAIA,CAAC,CAACE,OAD9BvB,CAAf;AAGA,QAAIoB,QAAQ,CAACzB,MAAb,EAAqBc,CAAC,CAACW,QAAFX,GAAaW,QAAbX;AAJvB;AAUAF,cAAY,CAACY,OAAbZ,CAAqBE,CAAC,IAAG;AACvB,QAAIe,MAAM,GAAGvB,gBAAgB,CAACO,MAAjBP,CAAwBoB,CAAC,IAAIA,CAAC,CAACR,MAAFQ,IAAYC,QAAQ,CAACb,CAAC,CAACG,GAAH,CAAjDX,EACiBU,GADjBV,CACqBoB,CAAC,IAAIA,CAAC,CAACI,KAD5BxB,CAAb;;AAGA,QAAIuB,MAAM,CAAC7B,MAAP6B,IAAiB,CAArB,EAAwB;AAEtB,UAAIE,KAAK,GAAGF,MAAM,CAAC,CAAD,CAAlB;;AAEA,UAAIpB,OAAO,CAACO,GAARP,CAAYK,CAAC,IAAIA,CAAC,CAACG,GAAnBR,EAAwBuB,QAAxBvB,CAAiCsB,KAAjCtB,CAAJ,EAA6C;AAE3CK,SAAC,CAACe,MAAFf,GAAWe,MAAXf;AAFF,aAGO;AAEL,YAAIN,eAAe,CAACyB,GAAhBzB,CAAoBuB,KAApBvB,CAAJ,EAAgC;AAC9BM,WAAC,CAACe,MAAFf,GAAgB,CAAC,GAAGN,eAAe,CAAC0B,GAAhB1B,CAAoBuB,KAApBvB,CAAJ,CAAhBM;AACAA,WAAC,CAACM,WAAFN,GAAgBiB,KAAhBjB;AACD;AACF;AAbH,WAcO,IAAIe,MAAM,CAAC7B,MAAP6B,GAAgB,CAApB,EAAuB;AAE5B,UAAIM,QAAQ,GAAG,IAAIC,GAAJ,EAAf;AACAP,YAAM,CAACL,OAAPK,CAAeE,KAAK,IAAG;AACrB,YAAIvB,eAAe,CAACyB,GAAhBzB,CAAoBuB,KAApBvB,CAAJ,EACEA,eAAe,CAAC0B,GAAhB1B,CAAoBuB,KAApBvB,EAA4BgB,OAA5BhB,CAAoC2B,QAAQ,CAACpC,GAA7CS,EAAkD2B,QAAlD3B;AAFJ;AAKA,UAAI2B,QAAQ,CAACE,IAAb,EACEvB,CAAC,CAACe,MAAFf,GAAW,CAAC,GAAGqB,QAAJ,CAAXrB;AACH;AA5BH;AAgCAF,cAAY,CAACY,OAAbZ,CAAqBE,CAAC,IAAG;AACvB,QAAIwB,KAAK,GAAG/B,eAAe,CAACM,MAAhBN,CAAuBmB,CAAC,IAAIA,CAAC,CAACR,MAAFQ,IAAYC,QAAQ,CAACb,CAAC,CAACG,GAAH,CAAhDV,EACgBS,GADhBT,CACoBmB,CAAC,IAAIA,CAAC,CAACa,IAD3BhC,CAAZ;;AAGA,QAAI+B,KAAK,CAACtC,MAAV,EAAkB;AAChBc,OAAC,CAAC0B,WAAF1B,GAAgBwB,KAAhBxB;AACAA,OAAC,CAAC2B,SAAF3B,GAAgBwB,KAAK,CAACtB,GAANsB,CAAU,CAACZ,CAAD,EAAIgB,CAAJ,MAAW;AAACD,iBAAS,EAAE,CAACf,CAAD,CAAZ;AAAiBiB,kBAAU,EAAED;AAA7B,OAAX,CAAVJ,CAAhBxB;AACD;AAPH;AAWA,MAAI8B,oBAAoB,GAAG,CAA3B;AACAhC,cAAY,CAACY,OAAbZ,CAAqBE,CAAC,IAAG;AACvB,QAAIe,MAAM,GAAGvB,gBAAgB,CAACO,MAAjBP,CAAwBoB,CAAC,IAAIA,CAAC,CAACR,MAAFQ,IAAYC,QAAQ,CAACb,CAAC,CAACG,GAAH,CAAjDX,EACiBU,GADjBV,CACqBoB,CAAC,IAAIA,CAAC,CAACI,KAD5BxB,CAAb;AAIA,QAAIuB,MAAM,CAAC7B,MAAP6B,IAAiB,CAAjBA,IAAsBnB,cAAc,CAACuB,GAAfvB,CAAmBmB,MAAM,CAAC,CAAD,CAAzBnB,CAA1B,EACEI,CAAC,CAAC+B,MAAF/B,GAAWJ,cAAc,CAACwB,GAAfxB,CAAmBmB,MAAM,CAAC,CAAD,CAAzBnB,EAA+BO,GAA1CH,CADF,KAGEA,CAAC,CAAC+B,MAAF/B,GAAW,oBAAoB8B,oBAAoB,EAAnD9B;AARJ;AAYA,SAAOF,YAAP;AACD","names":["startAndEnd","lesson","d","DayOfWeek","hm","Starttime","split","start","moment","utc","add","length","end","clone","Length","parked","lessonTeacherLinks","lessonGroupLinks","lessonRoomLinks","groupClassesMap","classes","groupCourseMap","weeks","courseEvents","filter","x","ActualWeeks","map","ids","Lesson","toString","displayName","Course","Subject","duration","forEach","teachers","y","parseInt","Teacher","groups","Group","group","includes","has","get","groupSet","Set","size","rooms","Room","inLocations","locations","i","groupIndex","unknownCourseCounter","course"],"sourceRoot":"","sources":["../../../src/Skola24/from/course-events.ts"],"sourcesContent":[null]}
@@ -1,5 +1,11 @@
1
- import { TA } from '../types/TA';
2
- import { TATeacherLink } from '../types/TA-teacher-link';
3
- import { TAGroupLink } from '../types/TA-group-link';
1
+ import moment from 'moment';
4
2
  import { Types } from '../../core/types';
5
- export default function (TAs: TA[], TATeacherLinks: TATeacherLink[], TAGroupLinks: TAGroupLink[], groupClassesMap: Map<string, Set<string>>, classes: Types.group[], weeks: number[]): [Types.course[], Map<string, Types.course>];
3
+ import { Plan } from '../types/Plan';
4
+ import { Group } from '../types/Group';
5
+ export default function (groups: Group[], groupPlansMap: Map<number, Set<string>>, planMap: Map<number, Plan>, scheduleDates: {
6
+ start?: moment.Moment;
7
+ end?: moment.Moment;
8
+ }, subjectMap: Map<number, string>, planDateMap: Map<number, {
9
+ start: moment.Moment;
10
+ end: moment.Moment;
11
+ }>, planTeachersMap: Map<number, Set<string>>, groupClassesMap: Map<string, Set<string>>, warnings: string[], errors: string[]): Map<number, Types.course>;