@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
@@ -5,51 +5,89 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = _default;
7
7
 
8
- var _assertWeekOverlap = require("./assert-week-overlap");
9
-
10
- function _default(TAs, TATeacherLinks, TAGroupLinks, groupClassesMap, classes, weeks) {
11
- var courses = TAs.filter(x => (0, _assertWeekOverlap.assertWeekOverlap)(x.ActualWeeks, weeks)).map(x => ({
12
- ids: x.TA.toString(),
13
- displayName: x.Course || x.Subject
14
- }));
15
- courses.forEach(x => {
16
- var teachers = TATeacherLinks.filter(y => y.TA == parseInt(x.ids)).map(y => y.Teacher);
17
- if (teachers.length) x.teachers = teachers;
18
- });
19
- var groupCourseMap = new Map();
20
-
21
- var _loop = function _loop(i) {
22
- var x = courses[i];
23
- var groups = TAGroupLinks.filter(y => y.TA == parseInt(x.ids)).map(y => y.Group);
24
- if (groups.length > 1) throw "More than one group per course: [" + groups.join(",") + "]";
25
-
26
- if (groups.length) {
27
- var group = groups[0];
28
-
29
- if (classes.map(x => x.ids).includes(group)) {
30
- x.groups = groups;
31
- } else {
32
- if (groupClassesMap.has(group)) {
33
- x.groups = [...groupClassesMap.get(group)];
34
- x.displayName = group;
35
- }
36
- }
37
-
38
- if (groupCourseMap.has(group)) {
39
- var y = groupCourseMap.get(group);
40
- y.teachers = [...new Set((x.teachers || []).concat(y.teachers || []))];
41
- y.groups = [...new Set((x.groups || []).concat(y.groups || []))];
42
- courses.splice(i, 1);
43
- } else {
44
- groupCourseMap.set(group, x);
45
- }
46
- }
47
- };
8
+ var _filterOnPeriod = require("./filter-on-period");
9
+
10
+ function ownKeys(object, enumerableOnly) {
11
+ var keys = Object.keys(object);
12
+
13
+ if (Object.getOwnPropertySymbols) {
14
+ var symbols = Object.getOwnPropertySymbols(object);
15
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
16
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
17
+ })), keys.push.apply(keys, symbols);
18
+ }
19
+
20
+ return keys;
21
+ }
22
+
23
+ function _objectSpread(target) {
24
+ for (var i = 1; i < arguments.length; i++) {
25
+ var source = null != arguments[i] ? arguments[i] : {};
26
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
27
+ _defineProperty(target, key, source[key]);
28
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
29
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
30
+ });
31
+ }
48
32
 
49
- for (var i = courses.length - 1; i >= 0; i--) {
50
- _loop(i);
33
+ return target;
34
+ }
35
+
36
+ function _defineProperty(obj, key, value) {
37
+ if (key in obj) {
38
+ Object.defineProperty(obj, key, {
39
+ value: value,
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true
43
+ });
44
+ } else {
45
+ obj[key] = value;
51
46
  }
52
47
 
53
- return [courses, groupCourseMap];
48
+ return obj;
49
+ }
50
+
51
+ function _default(groups, groupPlansMap, planMap, scheduleDates, subjectMap, planDateMap, planTeachersMap, groupClassesMap, warnings, errors) {
52
+ var courseMap = new Map();
53
+ groups.forEach(x => {
54
+ var _groupPlansMap$get;
55
+
56
+ if (x.bClass) return;
57
+ var plans = groupPlansMap.get(x.PK);
58
+
59
+ if (plans) {
60
+ var numPans = [...plans].filter(p => (0, _filterOnPeriod.filterOnPeriod)(scheduleDates, planDateMap.get(parseInt(p)))).length;
61
+ if (!numPans) return;
62
+ }
63
+
64
+ var subject;
65
+
66
+ if (plans) {
67
+ var _planMap$get;
68
+
69
+ var subjPK = (_planMap$get = planMap.get(parseInt([...plans][0]))) === null || _planMap$get === void 0 ? void 0 : _planMap$get.FKSubject;
70
+ if (subjPK) subject = subjectMap.get(subjPK);
71
+ }
72
+
73
+ var groupSet = groupClassesMap.get(x.PK.toString());
74
+ var teacherSet = new Set();
75
+ (_groupPlansMap$get = groupPlansMap.get(x.PK)) === null || _groupPlansMap$get === void 0 ? void 0 : _groupPlansMap$get.forEach(p => {
76
+ var _planTeachersMap$get;
77
+
78
+ (_planTeachersMap$get = planTeachersMap.get(parseInt(p))) === null || _planTeachersMap$get === void 0 ? void 0 : _planTeachersMap$get.forEach(t => teacherSet.add(t));
79
+ });
80
+ courseMap.set(x.PK, _objectSpread(_objectSpread(_objectSpread({
81
+ ids: x.PK.toString(),
82
+ displayName: x.ID
83
+ }, subject && {
84
+ subject
85
+ }), groupSet && {
86
+ groups: [...groupSet]
87
+ }), teacherSet && {
88
+ teachers: [...teacherSet]
89
+ }));
90
+ });
91
+ return courseMap;
54
92
  }
55
93
  //# sourceMappingURL=courses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"courses.js","mappings":"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","names":["TAs","TATeacherLinks","TAGroupLinks","groupClassesMap","classes","weeks","courses","filter","x","ActualWeeks","map","ids","TA","toString","displayName","Course","Subject","forEach","teachers","y","parseInt","Teacher","length","groupCourseMap","Map","i","groups","Group","join","group","includes","has","get","Set","concat","splice","set"],"sourceRoot":"","sources":["../../../src/Skola24/from/courses.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"courses.js","mappings":";;;;;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwGc,kBACZA,MADY,EAEZC,aAFY,EAGZC,OAHY,EAMZC,aANY,EASZC,UATY,EAUZC,WAVY,EAWZC,eAXY,EAaZC,eAbY,EAcZC,QAdY,EAeZC,MAfY,EAeY;AAIxB,MAAIC,SAAS,GAA8B,IAAIC,GAAJ,EAA3C;AACAX,QAAM,CAACY,OAAPZ,CAAea,CAAC,IAAG;AAAA;;AAEjB,QAAIA,CAAC,CAACC,MAAN,EAAc;AAGd,QAAIC,KAAK,GAAGd,aAAa,CAACe,GAAdf,CAAkBY,CAAC,CAACI,EAApBhB,CAAZ;;AACA,QAAIc,KAAJ,EAAW;AACT,UAAMG,OAAO,GAAG,CAAC,GAAGH,KAAJ,EAAWI,MAAX,CAAkBC,CAAC,IAAI,oCAAejB,aAAf,EAA8BE,WAAW,CAACW,GAAZX,CAAgBgB,QAAQ,CAACD,CAAD,CAAxBf,CAA9B,CAAvB,EAAoFiB,MAApG;AACA,UAAK,CAAEJ,OAAP,EAAgB;AACjB;;AAID,QAAIK,OAAJ;;AACA,QAAIR,KAAJ,EAAW;AAAA;;AACT,UAAIS,MAAM,mBAAGtB,OAAO,CAACc,GAARd,CAAYmB,QAAQ,CAAC,CAAC,GAAGN,KAAJ,EAAW,CAAX,CAAD,CAApBb,CAAH,iDAAGuB,aAAsCC,SAAnD;AACA,UAAIF,MAAJ,EAAYD,OAAO,GAAGnB,UAAU,CAACY,GAAXZ,CAAeoB,MAAfpB,CAAVmB;AACb;;AAGD,QAAII,QAAQ,GAAGpB,eAAe,CAACS,GAAhBT,CAAoBM,CAAC,CAACI,EAAFJ,CAAKe,QAALf,EAApBN,CAAf;AAGA,QAAIsB,UAAU,GAAG,IAAIC,GAAJ,EAAjB;AACA,uCAAa,CAACd,GAAd,CAAkBH,CAAC,CAACI,EAApB,2EAAyBL,OAAzB,CAAiCQ,CAAC,IAAG;AAAA;;AACnC,6CAAe,CAACJ,GAAhB,CAAoBK,QAAQ,CAACD,CAAD,CAA5B,+EAAkCR,OAAlC,CAA0CmB,CAAC,IAAIF,UAAU,CAACG,GAAXH,CAAeE,CAAfF,CAA/C;AADF;AAMAnB,aAAS,CAACuB,GAAVvB,CAAcG,CAAC,CAACI,EAAhBP;AACEwB,SAAG,EAAUrB,CAAC,CAACI,EAAFJ,CAAKe,QAALf,EADfH;AAEEyB,iBAAW,EAAEtB,CAAC,CAACuB;AAFjB1B,OAIOa,OAAO,IAAO;AAAEA;AAAF,KAJrBb,GAKOiB,QAAQ,IAAM;AAAE3B,YAAM,EAAE,CAAC,GAAG2B,QAAJ;AAAV,KALrBjB,GAMOmB,UAAU,IAAI;AAAEQ,cAAQ,EAAE,CAAC,GAAGR,UAAJ;AAAZ,KANrBnB;AA9BF;AA0CA,SAAOA,SAAP;AACD","names":["groups","groupPlansMap","planMap","scheduleDates","subjectMap","planDateMap","planTeachersMap","groupClassesMap","warnings","errors","courseMap","Map","forEach","x","bClass","plans","get","PK","numPans","filter","p","parseInt","length","subject","subjPK","_planMap$get","FKSubject","groupSet","toString","teacherSet","Set","t","add","set","ids","displayName","ID","teachers"],"sourceRoot":"","sources":["../../../src/Skola24/from/courses.ts"],"sourcesContent":[null]}
@@ -0,0 +1,11 @@
1
+ import moment from 'moment';
2
+ import { Types } from '../../core/types';
3
+ import { Group } from '../types/Group';
4
+ import { Lesson } from '../types/Lesson';
5
+ export default function (lessons: Lesson[], scheduleDates: {
6
+ start?: moment.Moment;
7
+ end?: moment.Moment;
8
+ }, RScourseMap: Map<number, Types.course>, groupMap: Map<number, Group>, subjectMap: Map<number, string>, lessonDateMap: Map<number, {
9
+ start: moment.Moment;
10
+ end: moment.Moment;
11
+ }>, lessonRoomsMap: Map<number, Set<string>>, lessonTeachersMap: Map<number, Set<string>>, lessonGroupsMap: Map<number, Set<string>>, groupClassesMap: Map<string, Set<string>>, warnings: string[], errors: string[]): Types.courseEvent[];
@@ -0,0 +1,146 @@
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 _filterOnPeriod = require("./filter-on-period");
11
+
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
+ }
30
+
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
+ }
43
+
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
+ }
55
+
56
+ return obj;
57
+ }
58
+
59
+ function startAndEnd(lesson) {
60
+ if ("Length" in lesson && "DayOfWeek" in lesson && "StartTime" in lesson) {
61
+ var dateTimeDate = (0, _moment.default)(lesson.StartTime, "MM/DD/YY hh:mm:ss");
62
+ var hours = dateTimeDate.get("hours");
63
+ var minutes = dateTimeDate.get("minutes");
64
+
65
+ var start = _moment.default.utc("1970-01-05").add(lesson.DayOfWeek, "days").add(hours, "hours").add(minutes, "minutes");
66
+
67
+ var end = start.clone().add(lesson.Length, "minute");
68
+ return {
69
+ start: start,
70
+ end: end,
71
+ parked: false
72
+ };
73
+ } else {
74
+ return {};
75
+ }
76
+ }
77
+
78
+ function parseActualWeeks(val) {
79
+ if (!val) return [];
80
+ var weeks = [];
81
+ val.split(",").forEach(x => {
82
+ if (x.includes("-")) {
83
+ var [start, end] = x.split("-");
84
+
85
+ for (var i = parseInt(start); i <= parseInt(end); i++) {
86
+ weeks.push(i);
87
+ }
88
+ } else {
89
+ weeks.push(parseInt(x));
90
+ }
91
+ });
92
+ return weeks;
93
+ }
94
+
95
+ function _default(lessons, scheduleDates, RScourseMap, groupMap, subjectMap, lessonDateMap, lessonRoomsMap, lessonTeachersMap, lessonGroupsMap, groupClassesMap, warnings, errors) {
96
+ if (!scheduleDates.start && !scheduleDates.end) return [];
97
+ var filteredLessons = lessons.filter(l => {
98
+ return (0, _filterOnPeriod.filterOnPeriod)(scheduleDates, lessonDateMap.get(l.PK));
99
+ }).map(l => _objectSpread(_objectSpread({}, l), {}, {
100
+ weeks: parseActualWeeks(l.CalcActualWeeks)
101
+ })).filter(l => {
102
+ var _scheduleDates$start, _scheduleDates$start2;
103
+
104
+ if ((_scheduleDates$start = scheduleDates.start) !== null && _scheduleDates$start !== void 0 && _scheduleDates$start.week()) return l.weeks.includes((_scheduleDates$start2 = scheduleDates.start) === null || _scheduleDates$start2 === void 0 ? void 0 : _scheduleDates$start2.week());else return false;
105
+ });
106
+ var eventMap = new Map();
107
+ filteredLessons.forEach(l => {
108
+ var _lessonGroupsMap$get, _lessonGroupsMap$get2, _eventMap$get;
109
+
110
+ var groups = lessonGroupsMap.get(l.PK);
111
+ var courses = [...((_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);
112
+ console.log(courses.map(g => g === null || g === void 0 ? void 0 : g.PK));
113
+
114
+ var event = _objectSpread({
115
+ ids: l.PK.toString(),
116
+ duration: l.Length
117
+ }, startAndEnd(l));
118
+
119
+ var rooms = lessonRoomsMap.get(l.PK);
120
+
121
+ if (rooms) {
122
+ event.inLocations = [...rooms];
123
+ event.locations = [...rooms].map(l => ({
124
+ locations: [l]
125
+ }));
126
+ }
127
+
128
+ var teachers = lessonTeachersMap.get(l.PK);
129
+ if (teachers) event.teachers = [...teachers];
130
+ var classes = new Set();
131
+ (_lessonGroupsMap$get2 = lessonGroupsMap.get(l.PK)) === null || _lessonGroupsMap$get2 === void 0 ? void 0 : _lessonGroupsMap$get2.forEach(scheduleGroupId => {
132
+ var _groupClassesMap$get;
133
+
134
+ (_groupClassesMap$get = groupClassesMap.get(scheduleGroupId)) === null || _groupClassesMap$get === void 0 ? void 0 : _groupClassesMap$get.forEach(classId => {
135
+ classes.add(classId);
136
+ });
137
+ });
138
+ if (classes.size) event.groups = [...classes];
139
+ var key = courses.map(g => g.PK).join(', ');
140
+ if (!eventMap.has(key)) eventMap.set(key, []);
141
+ (_eventMap$get = eventMap.get(key)) === null || _eventMap$get === void 0 ? void 0 : _eventMap$get.push(event);
142
+ });
143
+ console.log(eventMap);
144
+ return [];
145
+ }
146
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","mappings":"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","names":["startAndEnd","lesson","dateTimeDate","StartTime","hours","get","minutes","start","moment","utc","add","DayOfWeek","end","clone","Length","parked","parseActualWeeks","val","weeks","split","forEach","x","includes","i","parseInt","push","lessons","scheduleDates","RScourseMap","groupMap","subjectMap","lessonDateMap","lessonRoomsMap","lessonTeachersMap","lessonGroupsMap","groupClassesMap","warnings","errors","filteredLessons","filter","l","PK","map","CalcActualWeeks","_scheduleDates$start","week","_scheduleDates$start2","eventMap","Map","groups","courses","Set","id","g","bClass","sort","g1","g2","console","log","event","ids","toString","duration","rooms","inLocations","locations","teachers","classes","scheduleGroupId","classId","size","key","join","has","set"],"sourceRoot":"","sources":["../../../src/Skola24/from/events.ts"],"sourcesContent":[null]}
@@ -0,0 +1,7 @@
1
+ import moment from 'moment';
2
+ declare type Dates = {
3
+ start: moment.Moment;
4
+ end: moment.Moment;
5
+ };
6
+ export declare function filterOnPeriod(scheduleDates: Partial<Dates>, dates?: Dates): boolean;
7
+ export {};
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.filterOnPeriod = filterOnPeriod;
7
+
8
+ function filterOnPeriod(scheduleDates, dates) {
9
+ if (!dates) {
10
+ if (scheduleDates.start || scheduleDates.end) return false;
11
+ return true;
12
+ }
13
+
14
+ if (scheduleDates.start && scheduleDates.end) {
15
+ return scheduleDates.start.isSameOrBefore(dates.start) && dates.start.isSameOrBefore(scheduleDates.end) || dates.start.isSameOrBefore(scheduleDates.start) && scheduleDates.start.isSameOrBefore(dates.end);
16
+ } else if (scheduleDates.start) {
17
+ return scheduleDates.start.isSameOrBefore(dates.end);
18
+ } else if (scheduleDates.end) {
19
+ return scheduleDates.end.isSameOrAfter(dates.start);
20
+ } else {
21
+ return true;
22
+ }
23
+ }
24
+ //# sourceMappingURL=filter-on-period.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-on-period.js","mappings":";;;;;;;AAKM,SAAUA,cAAV,CACJC,aADI,EAEJC,KAFI,EAEiB;AAEnB,MAAK,CAAEA,KAAP,EAAc;AACZ,QAAID,aAAa,CAACE,KAAdF,IAAuBA,aAAa,CAACG,GAAzC,EAA8C,OAAO,KAAP;AAG9C,WAAO,IAAP;AACD;;AAGD,MAAIH,aAAa,CAACE,KAAdF,IAAuBA,aAAa,CAACG,GAAzC,EAA8C;AAC5C,WAAQH,aAAa,CAACE,KAAdF,CAAoBI,cAApBJ,CAAmCC,KAAK,CAACC,KAAzCF,KAAmDC,KAAK,CAACC,KAAND,CAAYG,cAAZH,CAA2BD,aAAa,CAACG,GAAzCF,CAAnDD,IACAC,KAAK,CAACC,KAAND,CAAYG,cAAZH,CAA2BD,aAAa,CAACE,KAAzCD,KAAmDD,aAAa,CAACE,KAAdF,CAAoBI,cAApBJ,CAAmCC,KAAK,CAACE,GAAzCH,CAD3D;AADF,SAIK,IAAIA,aAAa,CAACE,KAAlB,EAAyB;AAE5B,WAAOF,aAAa,CAACE,KAAdF,CAAoBI,cAApBJ,CAAmCC,KAAK,CAACE,GAAzCH,CAAP;AAFG,SAIA,IAAIA,aAAa,CAACG,GAAlB,EAAuB;AAE1B,WAAOH,aAAa,CAACG,GAAdH,CAAkBK,aAAlBL,CAAgCC,KAAK,CAACC,KAAtCF,CAAP;AAFG,SAIA;AAEH,WAAO,IAAP;AACD;AACJ","names":["filterOnPeriod","scheduleDates","dates","start","end","isSameOrBefore","isSameOrAfter"],"sourceRoot":"","sources":["../../../src/Skola24/from/filter-on-period.ts"],"sourcesContent":[null]}
@@ -1,3 +1,3 @@
1
- import { Group } from '../types/group';
2
1
  import { Types } from '../../core/types';
3
- export default function (groups: Group[]): Types.group[];
2
+ import { Group } from '../types/Group';
3
+ export default function (groups: Group[], warnings: string[], errors: string[]): Types.group[];
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = _default;
7
7
 
8
- function _default(groups) {
9
- return groups.filter(x => x.Class).map(x => ({
10
- ids: x.Group,
11
- displayName: x.Group
8
+ function _default(groups, warnings, errors) {
9
+ return groups.filter(x => x.bClass).map(x => ({
10
+ ids: x.PK.toString(),
11
+ displayName: x.ID
12
12
  }));
13
13
  }
14
14
  //# sourceMappingURL=groups.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","mappings":";;;;;;;AAGc,kBACZA,MADY,EACG;AAEf,SAAOA,MAAM,CAACC,MAAP,CAAcC,CAAC,IAAIA,CAAC,CAACC,KAArB,EACOC,GADP,CACWF,CAAC,KAAK;AACTG,OAAG,EAAUH,CAAC,CAACI,KADN;AAETC,eAAW,EAAEL,CAAC,CAACI;AAFN,GAAL,CADZ,CAAP;AAKD","names":["groups","filter","x","Class","map","ids","Group","displayName"],"sourceRoot":"","sources":["../../../src/Skola24/from/groups.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"groups.js","mappings":";;;;;;;AAIc,kBACZA,MADY,EAEZC,QAFY,EAGZC,MAHY,EAGM;AAElB,SAAOF,MAAM,CAACG,MAAP,CAAcC,CAAC,IAAIA,CAAC,CAACC,MAArB,EACOC,GADP,CACWF,CAAC,KAAK;AACTG,OAAG,EAAUH,CAAC,CAACI,EAAF,CAAKC,QAAL,EADJ;AAETC,eAAW,EAAEN,CAAC,CAACO;AAFN,GAAL,CADZ,CAAP;AAKD","names":["groups","warnings","errors","filter","x","bClass","map","ids","PK","toString","displayName","ID"],"sourceRoot":"","sources":["../../../src/Skola24/from/groups.ts"],"sourcesContent":[null]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":";;;;;;;AAAA;;;;AAEc;;;AACLA,sBAAYC,kBAAZ","names":["default_1","_schedule"],"sourceRoot":"","sources":["../../../src/Skola24/from/index.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"index.js","mappings":";;;;;;;AAAA;;;;AAGc;;;AACLA,sBAAYC,kBAAZ","names":["default_1","_schedule"],"sourceRoot":"","sources":["../../../src/Skola24/from/index.ts"],"sourcesContent":[null]}
@@ -1,3 +1,3 @@
1
- import { Room } from '../types/room';
2
1
  import { Types } from '../../core/types';
3
- export default function (rooms: Room[]): Types.location[];
2
+ import { Room } from '../types/Room';
3
+ export default function (rooms: Room[], warnings: string[], errors: string[]): Types.location[];
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = _default;
7
7
 
8
- function _default(rooms) {
8
+ function _default(rooms, warnings, errors) {
9
9
  return rooms.map(x => ({
10
- ids: x.Room,
11
- displayName: x.Room
10
+ ids: x.PK.toString(),
11
+ displayName: x.ID
12
12
  }));
13
13
  }
14
14
  //# sourceMappingURL=locations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"locations.js","mappings":";;;;;;;AAIc,kBACZA,KADY,EACC;AAEb,SAAOA,KAAK,CAACC,GAAN,CAAUC,CAAC,KAAK;AACrBC,OAAG,EAAUD,CAAC,CAACE,IADM;AAErBC,eAAW,EAAEH,CAAC,CAACE;AAFM,GAAL,CAAX,CAAP;AAKD","names":["rooms","map","x","ids","Room","displayName"],"sourceRoot":"","sources":["../../../src/Skola24/from/locations.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"locations.js","mappings":";;;;;;;AAIc,kBACZA,KADY,EAEZC,QAFY,EAGZC,MAHY,EAGM;AAGlB,SAAOF,KAAK,CAACG,GAAN,CAAUC,CAAC,KAAK;AACrBC,OAAG,EAAUD,CAAC,CAACE,EAAF,CAAKC,QAAL,EADQ;AAErBC,eAAW,EAAEJ,CAAC,CAACK;AAFM,GAAL,CAAX,CAAP;AAID","names":["rooms","warnings","errors","map","x","ids","PK","toString","displayName","ID"],"sourceRoot":"","sources":["../../../src/Skola24/from/locations.ts"],"sourcesContent":[null]}
@@ -1,3 +1,4 @@
1
- import { Schedule } from '../types/schedule';
2
- import { Types as CoreTypes } from '../../core/types';
3
- export default function (schedule: Schedule, meta?: any): CoreTypes.division;
1
+ import { Types } from '../../core/types';
2
+ import { Schedule } from '../types/Schedule';
3
+ import { Meta } from '../types/Meta';
4
+ export default function (src: Schedule, meta?: Meta): Types.division;
@@ -11,54 +11,120 @@ var _teachers2 = _interopRequireDefault(require("./teachers"));
11
11
 
12
12
  var _groups2 = _interopRequireDefault(require("./groups"));
13
13
 
14
- var _courses2 = _interopRequireDefault(require("./courses"));
15
-
16
- var _courseEvents2 = _interopRequireDefault(require("./course-events"));
14
+ var _courseAndEvents = _interopRequireDefault(require("./course-and-events"));
17
15
 
18
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
17
 
20
- function _default(schedule, meta) {
21
- var weeks = [];
22
-
23
- if (meta && meta.start && meta.end) {
24
- var startWeek = meta.start.get("w");
25
- var endWeek = meta.end.get("w");
26
- if (startWeek > endWeek) throw "the start week succeeds the end week: " + startWeek + " vs. " + endWeek;
27
-
28
- for (var w = startWeek; w <= endWeek; w++) {
29
- weeks.push(w);
30
- }
31
- } else {
32
- for (var _w = 1; _w <= 52; _w++) {
33
- weeks.push(_w);
34
- }
18
+ 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; }
19
+
20
+ 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; }
21
+
22
+ 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; }
23
+
24
+ function _default(src, meta) {
25
+ var warnings = [];
26
+ var errors = [];
27
+
28
+ if ((meta === null || meta === void 0 ? void 0 : meta.week) == undefined) {
29
+ warnings.push("No events will be imported since no import week was provided");
35
30
  }
36
31
 
37
- var locations = (0, _locations2.default)(schedule.room);
38
- var teachers = (0, _teachers2.default)(schedule.teacher);
39
- var groups = (0, _groups2.default)(schedule.group);
40
- var classes = groups.map(x => x.ids);
41
- var studentClassMap = new Map();
42
- schedule.group_student.forEach(x => {
43
- if (classes.includes(x.Group)) studentClassMap.set(x.Student, x.Group);
32
+ var groupMap = new Map();
33
+ src.school_tblgroup.forEach(x => groupMap.set(x.PK, x));
34
+ var courseMap = new Map();
35
+ src.school_tblcourse.forEach(x => courseMap.set(x.PK, x));
36
+ var planMap = new Map();
37
+ src.school_tblplan.forEach(x => planMap.set(x.PK, x));
38
+ var subjectMap = new Map();
39
+ src.school_tblsubject.forEach(x => subjectMap.set(x.PK, x.ID));
40
+ var planTeachersMap = new Map();
41
+ src.school_tblplan_teacher.forEach(x => {
42
+ if (!planTeachersMap.has(x.FKPlan)) planTeachersMap.set(x.FKPlan, new Set());
43
+ planTeachersMap.get(x.FKPlan).add(x.FKTeacher.toString());
44
+ });
45
+ var planGroupsMap = new Map();
46
+ src.school_tblplan_group.forEach(x => {
47
+ if (!planGroupsMap.has(x.FKPlan)) planGroupsMap.set(x.FKPlan, new Set());
48
+ planGroupsMap.get(x.FKPlan).add(x.FKGroup.toString());
49
+ });
50
+ var groupPlansMap = new Map();
51
+ src.school_tblplan_group.forEach(x => {
52
+ if (!groupPlansMap.has(x.FKGroup)) groupPlansMap.set(x.FKGroup, new Set());
53
+ groupPlansMap.get(x.FKGroup).add(x.FKPlan.toString());
54
+ });
55
+ var lessonRoomsMap = new Map();
56
+ src.school_tblschedule_room.forEach(x => {
57
+ if (!lessonRoomsMap.has(x.FKSchedule)) lessonRoomsMap.set(x.FKSchedule, new Set());
58
+ lessonRoomsMap.get(x.FKSchedule).add(x.FKRoom.toString());
59
+ });
60
+ var lessonTeachersMap = new Map();
61
+ src.school_tblschedule_teacher.forEach(x => {
62
+ if (!lessonTeachersMap.has(x.FKSchedule)) lessonTeachersMap.set(x.FKSchedule, new Set());
63
+ lessonTeachersMap.get(x.FKSchedule).add(x.FKTeacher.toString());
64
+ });
65
+ var lessonGroupsMap = new Map();
66
+ src.school_tblschedule_group.forEach(x => {
67
+ if (!lessonGroupsMap.has(x.FKSchedule)) lessonGroupsMap.set(x.FKSchedule, new Set());
68
+ lessonGroupsMap.get(x.FKSchedule).add(x.FKGroup.toString());
44
69
  });
45
70
  var groupClassesMap = new Map();
46
- schedule.group_student.forEach(x => {
47
- if (studentClassMap.has(x.Student)) {
48
- var _class = studentClassMap.get(x.Student);
49
-
50
- if (!groupClassesMap.has(x.Group)) groupClassesMap.set(x.Group, new Set());
51
- groupClassesMap.get(x.Group).add(_class);
52
- } else throw "The student is not related to a class:" + x.Student;
71
+ src.school_tblgroup_group.forEach(x => {
72
+ if (!groupClassesMap.has(x.FKGroup.toString())) groupClassesMap.set(x.FKGroup.toString(), new Set());
73
+ groupClassesMap.get(x.FKGroup.toString()).add(x.FKGroupCon.toString());
53
74
  });
54
- var [courses, groupCourseMap] = (0, _courses2.default)(schedule.ta, schedule.ta_teacher, schedule.ta_group, groupClassesMap, groups, weeks);
55
- var events = (0, _courseEvents2.default)(schedule.lesson, schedule.lesson_teacher, schedule.lesson_group, schedule.lesson_room, groupClassesMap, groups, groupCourseMap, weeks);
75
+ var locations = (0, _locations2.default)(src.unit_tblroom, warnings, errors);
76
+ var teachers = (0, _teachers2.default)(src.school_tblteacher, warnings, errors);
77
+ var groups = (0, _groups2.default)(src.school_tblgroup, warnings, errors);
78
+ var {
79
+ courses,
80
+ events
81
+ } = (0, _courseAndEvents.default)(src.school_tblgroup, src.school_tblschedule, meta, groupPlansMap, planMap, subjectMap, planTeachersMap, groupClassesMap, groups, groupMap, lessonRoomsMap, lessonTeachersMap, lessonGroupsMap, teachers, warnings, errors);
82
+
83
+ if (meta !== null && meta !== void 0 && meta.removeUnreferencedTeachers) {
84
+ var _Set;
85
+
86
+ var unreferencedTeacherSet = (_Set = new Set(teachers.map(t => t.ids))) !== null && _Set !== void 0 ? _Set : new Set();
87
+ events.forEach(e => {
88
+ var _e$teachers;
89
+
90
+ (_e$teachers = e.teachers) === null || _e$teachers === void 0 ? void 0 : _e$teachers.forEach(x => unreferencedTeacherSet.delete(x));
91
+ });
92
+ courses.forEach(c => {
93
+ var _c$teachers;
94
+
95
+ (_c$teachers = c.teachers) === null || _c$teachers === void 0 ? void 0 : _c$teachers.forEach(x => unreferencedTeacherSet.delete(x));
96
+ });
97
+ teachers = teachers.filter(t => !unreferencedTeacherSet.has(t.ids));
98
+ }
99
+
100
+ if (meta !== null && meta !== void 0 && meta.removeUnreferencedGroups) {
101
+ var _Set2;
102
+
103
+ var unreferencedGroupSet = (_Set2 = new Set(groups.map(t => t.ids))) !== null && _Set2 !== void 0 ? _Set2 : new Set();
104
+ events.forEach(e => {
105
+ var _e$groups;
106
+
107
+ (_e$groups = e.groups) === null || _e$groups === void 0 ? void 0 : _e$groups.forEach(x => unreferencedGroupSet.delete(x));
108
+ });
109
+ courses.forEach(c => {
110
+ var _c$groups;
111
+
112
+ (_c$groups = c.groups) === null || _c$groups === void 0 ? void 0 : _c$groups.forEach(x => unreferencedGroupSet.delete(x));
113
+ });
114
+ groups = groups.filter(g => !unreferencedGroupSet.has(g.ids));
115
+ }
116
+
56
117
  return {
57
118
  locations,
58
119
  teachers,
59
120
  groups,
60
121
  courses,
61
- events
122
+ events,
123
+ meta: _objectSpread(_objectSpread({}, errors.length ? {
124
+ errors: errors
125
+ } : {}), warnings.length ? {
126
+ warnings: warnings
127
+ } : {})
62
128
  };
63
129
  }
64
130
  //# sourceMappingURL=schedule.js.map