@royalschedule/maps 3.2.34 → 3.2.36

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 (106) hide show
  1. package/dist/NovaSchem/from/index.d.ts +3 -0
  2. package/dist/NovaSchem/from/index.js +38 -0
  3. package/dist/NovaSchem/from/index.js.map +1 -0
  4. package/dist/NovaSchem/from/schedules.d.ts +3 -0
  5. package/dist/NovaSchem/from/schedules.js +295 -0
  6. package/dist/NovaSchem/from/schedules.js.map +1 -0
  7. package/dist/NovaSchem/index.d.ts +6 -0
  8. package/dist/NovaSchem/index.js +40 -0
  9. package/dist/NovaSchem/index.js.map +1 -0
  10. package/dist/NovaSchem/to/index.d.ts +3 -0
  11. package/dist/NovaSchem/to/index.js +38 -0
  12. package/dist/NovaSchem/to/index.js.map +1 -0
  13. package/dist/NovaSchem/to/schedules.d.ts +3 -0
  14. package/dist/NovaSchem/to/schedules.js +301 -0
  15. package/dist/NovaSchem/to/schedules.js.map +1 -0
  16. package/dist/NovaSchem/types/index.d.ts +93 -0
  17. package/dist/NovaSchem/types/index.js +6 -0
  18. package/dist/NovaSchem/types/index.js.map +1 -0
  19. package/dist/RS/v2/to/constraints.d.ts +3 -1
  20. package/dist/RS/v2/to/constraints.js +35 -14
  21. package/dist/RS/v2/to/constraints.js.map +1 -1
  22. package/dist/RS/v2/to/index.d.ts +3 -1
  23. package/dist/RS/v3/to/constraints.d.ts +3 -1
  24. package/dist/RS/v3/to/constraints.js +36 -15
  25. package/dist/RS/v3/to/constraints.js.map +1 -1
  26. package/dist/RS/v3/to/index.d.ts +3 -1
  27. package/dist/RS/v3/types/individuals.d.ts +5 -3
  28. package/dist/Skola24/from/course-and-events.d.ts +9 -0
  29. package/dist/Skola24/from/course-and-events.js +348 -0
  30. package/dist/Skola24/from/course-and-events.js.map +1 -0
  31. package/dist/Skola24/from/groups.d.ts +3 -0
  32. package/dist/Skola24/from/groups.js +14 -0
  33. package/dist/Skola24/from/groups.js.map +1 -0
  34. package/dist/Skola24/from/index.d.ts +4 -0
  35. package/dist/Skola24/from/index.js +38 -0
  36. package/dist/Skola24/from/index.js.map +1 -0
  37. package/dist/Skola24/from/locations.d.ts +3 -0
  38. package/dist/Skola24/from/locations.js +13 -0
  39. package/dist/Skola24/from/locations.js.map +1 -0
  40. package/dist/Skola24/from/schedule.d.ts +3 -0
  41. package/dist/Skola24/from/schedule.js +180 -0
  42. package/dist/Skola24/from/schedule.js.map +1 -0
  43. package/dist/Skola24/from/teachers.d.ts +3 -0
  44. package/dist/Skola24/from/teachers.js +13 -0
  45. package/dist/Skola24/from/teachers.js.map +1 -0
  46. package/dist/Skola24/types/Course.d.ts +6 -0
  47. package/dist/Skola24/types/Course.js +6 -0
  48. package/dist/Skola24/types/Course.js.map +1 -0
  49. package/dist/Skola24/types/Group-group-link.d.ts +4 -0
  50. package/dist/Skola24/types/Group-group-link.js +6 -0
  51. package/dist/Skola24/types/Group-group-link.js.map +1 -0
  52. package/dist/Skola24/types/Group-student-link.d.ts +4 -0
  53. package/dist/Skola24/types/Group-student-link.js +6 -0
  54. package/dist/Skola24/types/Group-student-link.js.map +1 -0
  55. package/dist/Skola24/types/Group.d.ts +5 -0
  56. package/dist/Skola24/types/Group.js +6 -0
  57. package/dist/Skola24/types/Group.js.map +1 -0
  58. package/dist/Skola24/types/Lesson-group-link.d.ts +4 -0
  59. package/dist/Skola24/types/Lesson-group-link.js +6 -0
  60. package/dist/Skola24/types/Lesson-group-link.js.map +1 -0
  61. package/dist/Skola24/types/Lesson-period-link.d.ts +4 -0
  62. package/dist/Skola24/types/Lesson-period-link.js +6 -0
  63. package/dist/Skola24/types/Lesson-period-link.js.map +1 -0
  64. package/dist/Skola24/types/Lesson-room-link.d.ts +4 -0
  65. package/dist/Skola24/types/Lesson-room-link.js +6 -0
  66. package/dist/Skola24/types/Lesson-room-link.js.map +1 -0
  67. package/dist/Skola24/types/Lesson-teacher-link.d.ts +4 -0
  68. package/dist/Skola24/types/Lesson-teacher-link.js +6 -0
  69. package/dist/Skola24/types/Lesson-teacher-link.js.map +1 -0
  70. package/dist/Skola24/types/Lesson.d.ts +9 -0
  71. package/dist/Skola24/types/Lesson.js +6 -0
  72. package/dist/Skola24/types/Lesson.js.map +1 -0
  73. package/dist/Skola24/types/Options.d.ts +7 -0
  74. package/dist/Skola24/types/Options.js +6 -0
  75. package/dist/Skola24/types/Options.js.map +1 -0
  76. package/dist/Skola24/types/Period.d.ts +5 -0
  77. package/dist/Skola24/types/Period.js +6 -0
  78. package/dist/Skola24/types/Period.js.map +1 -0
  79. package/dist/Skola24/types/Plan-group-link.d.ts +4 -0
  80. package/dist/Skola24/types/Plan-group-link.js +6 -0
  81. package/dist/Skola24/types/Plan-group-link.js.map +1 -0
  82. package/dist/Skola24/types/Plan-period-link.d.ts +4 -0
  83. package/dist/Skola24/types/Plan-period-link.js +6 -0
  84. package/dist/Skola24/types/Plan-period-link.js.map +1 -0
  85. package/dist/Skola24/types/Plan-teacher-link.d.ts +6 -0
  86. package/dist/Skola24/types/Plan-teacher-link.js +6 -0
  87. package/dist/Skola24/types/Plan-teacher-link.js.map +1 -0
  88. package/dist/Skola24/types/Plan.d.ts +5 -0
  89. package/dist/Skola24/types/Plan.js +6 -0
  90. package/dist/Skola24/types/Plan.js.map +1 -0
  91. package/dist/Skola24/types/Room.d.ts +5 -0
  92. package/dist/Skola24/types/Room.js +6 -0
  93. package/dist/Skola24/types/Room.js.map +1 -0
  94. package/dist/Skola24/types/Schedule.d.ts +34 -0
  95. package/dist/Skola24/types/Schedule.js +6 -0
  96. package/dist/Skola24/types/Schedule.js.map +1 -0
  97. package/dist/Skola24/types/Subject.d.ts +4 -0
  98. package/dist/Skola24/types/Subject.js +6 -0
  99. package/dist/Skola24/types/Subject.js.map +1 -0
  100. package/dist/Skola24/types/Teacher.d.ts +6 -0
  101. package/dist/Skola24/types/Teacher.js +6 -0
  102. package/dist/Skola24/types/Teacher.js.map +1 -0
  103. package/dist/Skola24/types/index.d.ts +12 -0
  104. package/dist/Skola24/types/index.js +6 -0
  105. package/dist/Skola24/types/index.js.map +1 -0
  106. package/package.json +3 -3
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _papaparse = _interopRequireDefault(require("papaparse"));
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _lodash = _interopRequireDefault(require("lodash"));
10
+ function _interopRequireDefault(e) {
11
+ return e && e.__esModule ? e : {
12
+ default: e
13
+ };
14
+ }
15
+ var options = {
16
+ quotes: false,
17
+ quoteChar: '"',
18
+ escapeChar: '"',
19
+ delimiter: "\t",
20
+ header: true,
21
+ newline: "\r\n",
22
+ skipEmptyLines: false
23
+ };
24
+ var uuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
25
+ var _default = division => {
26
+ var _teachers$map, _persons$filter$map, _groups$map, _locations$map, _periods$map, _events$filter$map, _syllabuses$map, _courses$map;
27
+ var {
28
+ locations,
29
+ teachers,
30
+ groups,
31
+ persons,
32
+ events,
33
+ courses,
34
+ periods,
35
+ syllabuses,
36
+ start
37
+ } = division;
38
+ var startYear = _moment.default.utc(start).year();
39
+ var startMonth = _moment.default.utc(start).month();
40
+ var csv = "[Source]".concat(options.newline, "ApplicationVerMajor=4").concat(options.newline, "ApplicationVerMinor=0").concat(options.newline, "DatabaseRevNo=527").concat(options.newline, "CurrentNovaschemDatabase=").concat(options.newline, "User=").concat(options.newline);
41
+ csv += "SchoolID=RS".concat(options.newline, "School=RS").concat(options.newline, "County=RS").concat(options.newline);
42
+ csv += "BaseYear=".concat(startYear).concat(options.newline, "OffsetYear=0").concat(options.newline, "OffsetMonth=").concat(startMonth).concat(options.newline, "CreationDate=").concat((0, _moment.default)().format('YYYY-MM-DD')).concat(options.newline).concat(options.newline);
43
+ csv += "[Destination]".concat(options.newline, "Application=").concat(options.newline, "ApplicationID=").concat(options.newline).concat(options.newline);
44
+ csv += "[DatabaseOptions]".concat(options.newline, "Update=TRUE").concat(options.newline, "AddNew=TRUE").concat(options.newline).concat(options.newline);
45
+ csv += "[Tables]".concat(options.newline).concat(options.newline);
46
+ csv += "Subject (6400)".concat(options.newline, "[Rows]").concat(options.newline);
47
+ csv += ['Subject (6401)', 'GUID (5800)', 'Category (6402)', 'FullText (6403)', 'BackgroundColor (6432)', 'TextColor (6433)', 'EvaluationNumber (6429)'].join(options.delimiter);
48
+ csv += options.newline;
49
+ var t = (_teachers$map = teachers === null || teachers === void 0 ? void 0 : teachers.map(teacher => {
50
+ var _teacher$person$SSN$v, _teacher$person, _teacher$person$lastN, _teacher$person2, _teacher$person$first, _teacher$person3, _teacher$person$email, _teacher$person4;
51
+ return {
52
+ 'Teacher (6001)': teacher.signature,
53
+ 'GUID (5800)': teacher.ids && uuid.test(teacher.ids) ? "{".concat(teacher.ids, "}") : '',
54
+ 'Category (6002)': '',
55
+ 'PersonalCode (6028)': (_teacher$person$SSN$v = (_teacher$person = teacher.person) === null || _teacher$person === void 0 || (_teacher$person = _teacher$person.SSN) === null || _teacher$person === void 0 ? void 0 : _teacher$person.value) !== null && _teacher$person$SSN$v !== void 0 ? _teacher$person$SSN$v : '',
56
+ 'LastName (6003)': (_teacher$person$lastN = (_teacher$person2 = teacher.person) === null || _teacher$person2 === void 0 ? void 0 : _teacher$person2.lastName) !== null && _teacher$person$lastN !== void 0 ? _teacher$person$lastN : '',
57
+ 'Title (6006)': '',
58
+ 'FirstName (6004)': (_teacher$person$first = (_teacher$person3 = teacher.person) === null || _teacher$person3 === void 0 ? void 0 : _teacher$person3.firstName) !== null && _teacher$person$first !== void 0 ? _teacher$person$first : '',
59
+ 'Phone (6033)': '',
60
+ 'EMail (6034)': (_teacher$person$email = (_teacher$person4 = teacher.person) === null || _teacher$person4 === void 0 || (_teacher$person4 = _teacher$person4.emails) === null || _teacher$person4 === void 0 || (_teacher$person4 = _teacher$person4[0]) === null || _teacher$person4 === void 0 ? void 0 : _teacher$person4.value) !== null && _teacher$person$email !== void 0 ? _teacher$person$email : '',
61
+ 'EvaluationNumber (6014)': ''
62
+ };
63
+ })) !== null && _teachers$map !== void 0 ? _teachers$map : [];
64
+ csv += "".concat(options.newline, "Teacher (6000)").concat(options.newline, "[Rows]").concat(options.newline);
65
+ if (t.length) {
66
+ csv += _papaparse.default.unparse(t, options);
67
+ } else {
68
+ csv += ['Teacher (6001)', 'GUID (5800)', 'Category (6002)', 'PersonalCode (6028)', 'LastName (6003)', 'Title (6006)', 'FirstName (6004)', 'Phone (6033)', 'EMail (6034)', 'EvaluationNumber (6014)'].join(options.delimiter);
69
+ }
70
+ csv += options.newline;
71
+ var s = (_persons$filter$map = persons === null || persons === void 0 ? void 0 : persons.filter(person => {
72
+ return person.type != 'Teacher';
73
+ }).map(person => {
74
+ var _person$SSN, _person$lastName, _person$firstName, _person$emails$0$valu, _person$emails;
75
+ return {
76
+ 'Student (7201)': (_person$SSN = person.SSN) === null || _person$SSN === void 0 ? void 0 : _person$SSN.value,
77
+ 'GUID (5800)': person.ids && uuid.test(person.ids) ? "{".concat(person.ids, "}") : '',
78
+ 'Category (7305)': '',
79
+ 'LastName (7202)': (_person$lastName = person.lastName) !== null && _person$lastName !== void 0 ? _person$lastName : '',
80
+ 'FirstName (7211)': (_person$firstName = person.firstName) !== null && _person$firstName !== void 0 ? _person$firstName : '',
81
+ 'EMail (7215)': (_person$emails$0$valu = (_person$emails = person.emails) === null || _person$emails === void 0 || (_person$emails = _person$emails[0]) === null || _person$emails === void 0 ? void 0 : _person$emails.value) !== null && _person$emails$0$valu !== void 0 ? _person$emails$0$valu : ''
82
+ };
83
+ })) !== null && _persons$filter$map !== void 0 ? _persons$filter$map : [];
84
+ csv += "".concat(options.newline, "Student (7200)").concat(options.newline, "[Rows]").concat(options.newline);
85
+ if (s.length) {
86
+ csv += _papaparse.default.unparse(s, options);
87
+ } else {
88
+ csv += ['Student (7201)', 'GUID (5800)', 'Category (7305)', 'LastName (7202)', 'FirstName (7211)', 'EMail (7215)'].join(options.delimiter);
89
+ }
90
+ csv += options.newline;
91
+ var studentMap = new Map();
92
+ if (persons) {
93
+ persons.forEach(person => {
94
+ if (person.type != 'Teacher') {
95
+ var _person$SSN$value, _person$SSN2;
96
+ studentMap.set(person.id, (_person$SSN$value = (_person$SSN2 = person.SSN) === null || _person$SSN2 === void 0 ? void 0 : _person$SSN2.value) !== null && _person$SSN$value !== void 0 ? _person$SSN$value : '');
97
+ }
98
+ });
99
+ }
100
+ var g = (_groups$map = groups === null || groups === void 0 ? void 0 : groups.map(group => {
101
+ var _group$members;
102
+ return {
103
+ 'Group (6201)': group.displayName,
104
+ 'GUID (5800)': group.ids && uuid.test(group.ids) ? "{".concat(group.ids, "}") : '',
105
+ 'Class (6210)': group.species == 'class' ? 1 : 0,
106
+ 'Teacher (6204)': '',
107
+ 'IClass (6206)': '',
108
+ 'Student (6205)': (_group$members = group.members) === null || _group$members === void 0 ? void 0 : _group$members.map(student => _lodash.default.isString(student) ? student : student.id).map(x => studentMap.get(x)).filter(Boolean).join(',')
109
+ };
110
+ })) !== null && _groups$map !== void 0 ? _groups$map : [];
111
+ csv += "".concat(options.newline, "Group (6200)").concat(options.newline, "[Rows]").concat(options.newline);
112
+ if (g.length) {
113
+ csv += _papaparse.default.unparse(g, options);
114
+ } else {
115
+ csv += ['Group (6201)', 'GUID (5800)', 'Class (6210)', 'Teacher (6204)', 'IClass (6206)', 'Student (6205)'].join(options.delimiter);
116
+ }
117
+ csv += options.newline;
118
+ var l = (_locations$map = locations === null || locations === void 0 ? void 0 : locations.map(location => {
119
+ var _location$tags$find$v, _location$tags;
120
+ return {
121
+ 'Room (6601)': location.displayName,
122
+ 'GUID (5800)': location.ids && uuid.test(location.ids) ? "{".concat(location.ids, "}") : '',
123
+ 'Category (6602)': (_location$tags$find$v = (_location$tags = location.tags) === null || _location$tags === void 0 || (_location$tags = _location$tags.find(tag => tag.type == 'category')) === null || _location$tags === void 0 ? void 0 : _location$tags.value) !== null && _location$tags$find$v !== void 0 ? _location$tags$find$v : '',
124
+ 'SeatingCapacity (6607)': location.maximumCapacity
125
+ };
126
+ })) !== null && _locations$map !== void 0 ? _locations$map : [];
127
+ csv += "".concat(options.newline, "Room (6600)").concat(options.newline, "[Rows]").concat(options.newline);
128
+ if (l.length) {
129
+ csv += _papaparse.default.unparse(l, options);
130
+ } else {
131
+ csv += ['Room (6601)', 'GUID (5800)', 'Category (6602)', 'SeatingCapacity (6607)'].join(options.delimiter);
132
+ }
133
+ csv += options.newline;
134
+ var p = (_periods$map = periods === null || periods === void 0 ? void 0 : periods.map(period => {
135
+ var _period$ranges;
136
+ return {
137
+ 'Period (8001)': period.displayName,
138
+ 'GUID (5800)': period.ids && uuid.test(period.ids) ? "{".concat(period.ids, "}") : '',
139
+ 'TextBelowSchedule (8002)': period.displayName,
140
+ 'Category (8006)': '',
141
+ 'Calendar (8005)': (_period$ranges = period.ranges) === null || _period$ranges === void 0 ? void 0 : _period$ranges.map(range => "".concat(_moment.default.utc(range.start).format('D/M'), "-").concat(_moment.default.utc(range.end).format('D/M'))).join(', ')
142
+ };
143
+ })) !== null && _periods$map !== void 0 ? _periods$map : [];
144
+ csv += "".concat(options.newline, "Period (8000)").concat(options.newline, "[Rows]").concat(options.newline);
145
+ if (p.length) {
146
+ csv += _papaparse.default.unparse(p, options);
147
+ } else {
148
+ csv += ['Period (8001)', 'GUID (5800)', 'TextBelowSchedule (8002)', 'Category (8006)', 'Calendar (8005)'].join(options.delimiter);
149
+ }
150
+ csv += options.newline;
151
+ var courseMap = new Map();
152
+ if (courses) {
153
+ courses.forEach(course => {
154
+ courseMap.set(course.id, course);
155
+ });
156
+ }
157
+ var periodMap = new Map();
158
+ if (periods) {
159
+ periods.forEach(period => {
160
+ periodMap.set(period.id, period);
161
+ });
162
+ }
163
+ var teacherMap = new Map();
164
+ if (teachers) {
165
+ teachers.forEach(teacher => {
166
+ teacherMap.set(teacher.id, teacher);
167
+ });
168
+ }
169
+ var groupMap = new Map();
170
+ if (groups) {
171
+ groups.forEach(group => {
172
+ groupMap.set(group.id, group);
173
+ });
174
+ }
175
+ var locationMap = new Map();
176
+ if (locations) {
177
+ locations.forEach(location => {
178
+ locationMap.set(location.id, location);
179
+ });
180
+ }
181
+ var syllabusMap = new Map();
182
+ if (syllabuses) {
183
+ syllabuses.forEach(syllabus => {
184
+ syllabusMap.set(syllabus.id, syllabus);
185
+ });
186
+ }
187
+ var e = (_events$filter$map = events === null || events === void 0 ? void 0 : events.filter(x => {
188
+ var _x$start$toString, _x$start;
189
+ return !isNaN(Date.parse((_x$start$toString = (_x$start = x.start) === null || _x$start === void 0 ? void 0 : _x$start.toString()) !== null && _x$start$toString !== void 0 ? _x$start$toString : ''));
190
+ }).map((event, index) => {
191
+ var _event$course, _teacherIds$map$filte, _groupIds$map$filter, _event$inLocations, _locationIds$map$filt, _event$start, _course$subject, _period;
192
+ var courseId = _lodash.default.isString(event.course) ? event.course : (_event$course = event.course) === null || _event$course === void 0 ? void 0 : _event$course.id;
193
+ var course = courseId ? courseMap.get(courseId) : undefined;
194
+ var period = event.period == null ? course === null || course === void 0 ? void 0 : course.period : event.period;
195
+ if (_lodash.default.isString(period)) period = periodMap.get(period);
196
+ if (period && !('ranges' in period)) period = undefined;
197
+ var t = event.teachers == null ? course === null || course === void 0 ? void 0 : course.teachers : event.teachers;
198
+ var teacherIds = t === null || t === void 0 ? void 0 : t.map(teacher => {
199
+ var _teacher$to;
200
+ return _lodash.default.isString(teacher === null || teacher === void 0 ? void 0 : teacher.to) ? teacher.to : teacher === null || teacher === void 0 || (_teacher$to = teacher.to) === null || _teacher$to === void 0 || (_teacher$to = _teacher$to.id) === null || _teacher$to === void 0 ? void 0 : _teacher$to.toString();
201
+ }).filter(Boolean);
202
+ var teachers = (_teacherIds$map$filte = teacherIds === null || teacherIds === void 0 ? void 0 : teacherIds.map(id => teacherMap.get(id)).filter(Boolean)) !== null && _teacherIds$map$filte !== void 0 ? _teacherIds$map$filte : [];
203
+ var g = event.groups == null ? course === null || course === void 0 ? void 0 : course.groups : event.groups;
204
+ var groupIds = g === null || g === void 0 ? void 0 : g.map(group => {
205
+ var _group$to;
206
+ return _lodash.default.isString(group === null || group === void 0 ? void 0 : group.to) ? group.to : group === null || group === void 0 || (_group$to = group.to) === null || _group$to === void 0 || (_group$to = _group$to.id) === null || _group$to === void 0 ? void 0 : _group$to.toString();
207
+ }).filter(Boolean);
208
+ var groups = (_groupIds$map$filter = groupIds === null || groupIds === void 0 ? void 0 : groupIds.map(id => groupMap.get(id)).filter(Boolean)) !== null && _groupIds$map$filter !== void 0 ? _groupIds$map$filter : [];
209
+ var locationIds = (_event$inLocations = event.inLocations) === null || _event$inLocations === void 0 ? void 0 : _event$inLocations.map(location => {
210
+ var _location$id;
211
+ return _lodash.default.isString(location) ? location : location === null || location === void 0 || (_location$id = location.id) === null || _location$id === void 0 ? void 0 : _location$id.toString();
212
+ }).filter(Boolean);
213
+ var locations = (_locationIds$map$filt = locationIds === null || locationIds === void 0 ? void 0 : locationIds.map(id => locationMap.get(id)).filter(Boolean)) !== null && _locationIds$map$filt !== void 0 ? _locationIds$map$filt : [];
214
+ var dayOfWeek = new Date((_event$start = event.start) === null || _event$start === void 0 ? void 0 : _event$start.toString()).toLocaleDateString('sv-SE', {
215
+ weekday: 'long',
216
+ timeZone: 'UTC'
217
+ });
218
+ var dayOfWeekCapitalized = dayOfWeek.charAt(0).toUpperCase() + dayOfWeek.slice(1);
219
+ return {
220
+ 'PK (7100)': index + 1,
221
+ 'GUID (5800)': event.ids && uuid.test(event.ids) ? "{".concat(event.ids, "}") : '',
222
+ 'DayOfWeek (7101)': dayOfWeekCapitalized,
223
+ 'Starttime (7102)': _moment.default.utc(event.end).format('HH:mm'),
224
+ 'Length (7115)': event.duration,
225
+ 'Course (7106)': '',
226
+ 'Subject (7103)': (_course$subject = course === null || course === void 0 ? void 0 : course.subject) !== null && _course$subject !== void 0 ? _course$subject : '',
227
+ 'Teacher (7104)': teachers === null || teachers === void 0 ? void 0 : teachers.map(teacher => teacher.signature).filter(Boolean).join(','),
228
+ 'Group (7105)': groups === null || groups === void 0 ? void 0 : groups.map(group => group.displayName).filter(Boolean).join(','),
229
+ 'Room (7107)': locations === null || locations === void 0 ? void 0 : locations.map(x => x.displayName).filter(Boolean).join(','),
230
+ 'Period (7108)': '',
231
+ 'Week (7109)': '',
232
+ 'ActualWeeks (7167)': (_period = period) === null || _period === void 0 || (_period = _period.ranges) === null || _period === void 0 ? void 0 : _period.map(range => "".concat(_moment.default.utc(range.start).week(), "-").concat(_moment.default.utc(range.end).week())).join(',')
233
+ };
234
+ })) !== null && _events$filter$map !== void 0 ? _events$filter$map : [];
235
+ csv += "".concat(options.newline, "Lesson (7100)").concat(options.newline, "[Rows]").concat(options.newline);
236
+ if (e.length) {
237
+ csv += _papaparse.default.unparse(e, options);
238
+ } else {
239
+ csv += ['PK (7100)', 'GUID (5800)', 'DayOfWeek (7101)', 'Starttime (7102)', 'Length (7115)', 'Course (7106)', 'Subject (7103)', 'Period (7108)', 'Week (7109)', 'ActualWeeks (7167)'].join(options.delimiter);
240
+ }
241
+ csv += options.newline;
242
+ var sy = (_syllabuses$map = syllabuses === null || syllabuses === void 0 ? void 0 : syllabuses.map(syllabus => {
243
+ var _syllabus$subjectDesi;
244
+ return {
245
+ 'Course (7601)': syllabus.subjectCode,
246
+ 'GUID (5800)': syllabus.ids,
247
+ 'FullText (7602)': syllabus.subjectName,
248
+ 'Subject (7603)': (_syllabus$subjectDesi = syllabus.subjectDesignation) !== null && _syllabus$subjectDesi !== void 0 ? _syllabus$subjectDesi : '',
249
+ 'Points (7604)': syllabus.points
250
+ };
251
+ })) !== null && _syllabuses$map !== void 0 ? _syllabuses$map : [];
252
+ csv += "".concat(options.newline, "Course (7600)").concat(options.newline, "[Rows]").concat(options.newline);
253
+ if (sy.length) {
254
+ csv += _papaparse.default.unparse(sy, options);
255
+ } else {
256
+ csv += ['PK (7100)', 'GUID (5800)', 'DayOfWeek (7101)', 'Starttime (7102)', 'Length (7115)', 'Course (7106)', 'Subject (7103)', 'Period (7108)', 'Week (7109)', 'ActualWeeks (7167)'].join(options.delimiter);
257
+ }
258
+ csv += options.newline;
259
+ var totalHoursRegex = /(\d+) hrs/;
260
+ var weekTimeRegex = /(\d+) min\/week/;
261
+ var c = (_courses$map = courses === null || courses === void 0 ? void 0 : courses.map(course => {
262
+ var _course$teachers, _teacherIds$map$filte2, _course$groups, _groupIds$map$filter2, _syllabus$subjectDesi2;
263
+ var teacherIds = (_course$teachers = course.teachers) === null || _course$teachers === void 0 ? void 0 : _course$teachers.map(teacher => {
264
+ var _teacher$to2;
265
+ return _lodash.default.isString(teacher === null || teacher === void 0 ? void 0 : teacher.to) ? teacher.to : teacher === null || teacher === void 0 || (_teacher$to2 = teacher.to) === null || _teacher$to2 === void 0 || (_teacher$to2 = _teacher$to2.id) === null || _teacher$to2 === void 0 ? void 0 : _teacher$to2.toString();
266
+ }).filter(Boolean);
267
+ var teachers = (_teacherIds$map$filte2 = teacherIds === null || teacherIds === void 0 ? void 0 : teacherIds.map(id => teacherMap.get(id)).filter(Boolean)) !== null && _teacherIds$map$filte2 !== void 0 ? _teacherIds$map$filte2 : [];
268
+ var groupIds = (_course$groups = course.groups) === null || _course$groups === void 0 ? void 0 : _course$groups.map(group => {
269
+ var _group$to2;
270
+ return _lodash.default.isString(group === null || group === void 0 ? void 0 : group.to) ? group.to : group === null || group === void 0 || (_group$to2 = group.to) === null || _group$to2 === void 0 || (_group$to2 = _group$to2.id) === null || _group$to2 === void 0 ? void 0 : _group$to2.toString();
271
+ }).filter(Boolean);
272
+ var groups = (_groupIds$map$filter2 = groupIds === null || groupIds === void 0 ? void 0 : groupIds.map(id => groupMap.get(id)).filter(Boolean)) !== null && _groupIds$map$filter2 !== void 0 ? _groupIds$map$filter2 : [];
273
+ var syllabus = _lodash.default.isString(course.syllabus) ? syllabusMap.get(course.syllabus) : undefined;
274
+ return {
275
+ 'PK (8200)': '',
276
+ 'GUID (5800)': course.ids,
277
+ 'OriginalRecord (8224)': '1',
278
+ 'CreateLesson (8227)': '1',
279
+ 'Course (8202)': syllabus === null || syllabus === void 0 ? void 0 : syllabus.subjectCode,
280
+ 'Subject (8209)': (_syllabus$subjectDesi2 = syllabus === null || syllabus === void 0 ? void 0 : syllabus.subjectDesignation) !== null && _syllabus$subjectDesi2 !== void 0 ? _syllabus$subjectDesi2 : course.subject,
281
+ 'Teacher (8210)': teachers === null || teachers === void 0 ? void 0 : teachers.map(teacher => teacher.signature).filter(Boolean).join(','),
282
+ 'Group (8203)': groups === null || groups === void 0 ? void 0 : groups.map(group => group.displayName).filter(Boolean).join(','),
283
+ 'TotalHours (8204)': course.plannedDuration && totalHoursRegex.test(course.plannedDuration) ? totalHoursRegex.exec(course.plannedDuration)[1] : '',
284
+ 'Weektime (8208)': course.plannedDuration && weekTimeRegex.test(course.plannedDuration) ? weekTimeRegex.exec(course.plannedDuration)[1] : '',
285
+ 'Blockname (8215)': '',
286
+ 'Period (8206)': '',
287
+ 'Week (8207)': '',
288
+ 'NotPeriod (8212)': '',
289
+ 'NotWeek (8213)': ''
290
+ };
291
+ })) !== null && _courses$map !== void 0 ? _courses$map : [];
292
+ csv += "".concat(options.newline, "TA (8200)").concat(options.newline, "[Rows]").concat(options.newline);
293
+ if (c.length) {
294
+ csv += _papaparse.default.unparse(c, options);
295
+ } else {
296
+ csv += ['Course (8202)', 'GUID (5800)', 'Subject (8209)', 'Teacher (8210)', 'Group (8203)', 'TotalHours (8204)', 'Weektime (8208)', 'Blockname (8215)', 'Period (8206)', 'Week (8207)', 'NotPeriod (8212)', 'NotWeek (8213)'].join(options.delimiter);
297
+ }
298
+ return csv;
299
+ };
300
+ exports.default = _default;
301
+ //# sourceMappingURL=schedules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules.js","names":["_papaparse","_interopRequireDefault","require","_moment","_lodash","e","__esModule","default","options","quotes","quoteChar","escapeChar","delimiter","header","newline","skipEmptyLines","uuid","_default","division","_teachers$map","_persons$filter$map","_groups$map","_locations$map","_periods$map","_events$filter$map","_syllabuses$map","_courses$map","locations","teachers","groups","persons","events","courses","periods","syllabuses","start","startYear","utc","year","startMonth","month","csv","concat","format","join","t","map","teacher","_teacher$person$SSN$v","_teacher$person","_teacher$person$lastN","_teacher$person2","_teacher$person$first","_teacher$person3","_teacher$person$email","_teacher$person4","signature","ids","test","person","SSN","value","lastName","firstName","emails","length","unparse","s","filter","type","_person$SSN","_person$lastName","_person$firstName","_person$emails$0$valu","_person$emails","studentMap","Map","forEach","_person$SSN$value","_person$SSN2","set","id","g","group","_group$members","displayName","species","members","student","isString","x","get","Boolean","l","location","_location$tags$find$v","_location$tags","tags","find","tag","maximumCapacity","p","period","_period$ranges","ranges","range","end","courseMap","course","periodMap","teacherMap","groupMap","locationMap","syllabusMap","syllabus","_x$start$toString","_x$start","isNaN","Date","parse","toString","event","index","_event$course","_teacherIds$map$filte","_groupIds$map$filter","_event$inLocations","_locationIds$map$filt","_event$start","_course$subject","_period","courseId","undefined","teacherIds","_teacher$to","to","groupIds","_group$to","locationIds","inLocations","_location$id","dayOfWeek","toLocaleDateString","weekday","timeZone","dayOfWeekCapitalized","charAt","toUpperCase","slice","duration","subject","week","sy","_syllabus$subjectDesi","subjectCode","subjectName","subjectDesignation","points","totalHoursRegex","weekTimeRegex","c","_course$teachers","_teacherIds$map$filte2","_course$groups","_groupIds$map$filter2","_syllabus$subjectDesi2","_teacher$to2","_group$to2","plannedDuration","exec","exports"],"sources":["../../../src/NovaSchem/to/schedules.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,93 @@
1
+ export type Room = {
2
+ Room: string;
3
+ GUID: string;
4
+ Category: string;
5
+ SeatingCapacity: string;
6
+ };
7
+ export type Subject = {
8
+ Subject: string;
9
+ GUID: string;
10
+ Category: string;
11
+ FullText: string;
12
+ BackgroundColor: string;
13
+ TextColor: string;
14
+ EvaluationNumber: string;
15
+ };
16
+ export type Teacher = {
17
+ Teacher: string;
18
+ GUID: string;
19
+ Category: string;
20
+ PersonalCode: string;
21
+ LastName: string;
22
+ Title: string;
23
+ FirstName: string;
24
+ Phone: string;
25
+ EMail: string;
26
+ EvaluationNumber: string;
27
+ };
28
+ export type Group = {
29
+ Group: string;
30
+ GUID: string;
31
+ Class: string;
32
+ Teacher: string;
33
+ IClass: string;
34
+ Student: string;
35
+ };
36
+ export type Course = {
37
+ Course: string;
38
+ GUID: string;
39
+ FullText: string;
40
+ Subject: string;
41
+ Points: string;
42
+ };
43
+ export type PeriodGeneral = {
44
+ SchoolYear: string;
45
+ };
46
+ export type Period = {
47
+ Period: string;
48
+ GUID: string;
49
+ TextBelowSchedule: string;
50
+ Category: string;
51
+ Calendar: string;
52
+ };
53
+ export type TA = {
54
+ PK: string;
55
+ GUID: string;
56
+ OriginalRecord: string;
57
+ CreateLesson: string;
58
+ Course: string;
59
+ Subject: string;
60
+ Teacher: string;
61
+ Group: string;
62
+ TotalHours: string;
63
+ Weektime: string;
64
+ Blockname: string;
65
+ Period: string;
66
+ Week: string;
67
+ NotPeriod: string;
68
+ NotWeek: string;
69
+ };
70
+ export type Lesson = {
71
+ PK: string;
72
+ GUID: string;
73
+ DayOfWeek: string;
74
+ Starttime: string;
75
+ Length: string;
76
+ Course: string;
77
+ Subject: string;
78
+ Teacher: string;
79
+ Group: string;
80
+ Room: string;
81
+ Period: string;
82
+ Week: string;
83
+ ActualWeeks: string;
84
+ };
85
+ export type Student = {
86
+ Student: string;
87
+ GUID: string;
88
+ Category: string;
89
+ PersonalCode: string;
90
+ LastName: string;
91
+ FirstName: string;
92
+ EMail: string;
93
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/NovaSchem/types/index.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
@@ -2,5 +2,7 @@ import { Types as CoreTypes } from '../../../core/types';
2
2
  import { Deserialized } from '../../../core/types';
3
3
  import { Constraint } from '../types/constraints';
4
4
  import { OutOptions } from '../types/out-options';
5
- declare const _default: (schedule: Deserialized<CoreTypes.schedule>, options?: OutOptions) => Constraint;
5
+ declare const _default: (schedule: Partial<Deserialized<CoreTypes.schedule> & {
6
+ division: Deserialized<CoreTypes.division>;
7
+ }>, options?: OutOptions) => Constraint;
6
8
  export default _default;
@@ -22,26 +22,47 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
22
22
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
23
23
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
24
24
  var _default = exports.default = function _default(schedule) {
25
- var _data$events, _data$events2;
25
+ var _schedule$groups, _schedule$teachers, _schedule$locations, _schedule$events, _schedule$overlapGrou, _schedule$courses, _schedule$periods, _schedule$divisions, _data$events, _data$events2;
26
26
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
27
+ schedule = structuredClone(schedule);
27
28
  if (schedule == null) return {};
28
29
  var idKey = options.idKey || 'id';
29
- var {
30
- groups,
31
- teachers,
32
- locations,
33
- events,
34
- overlapGroups,
35
- courses,
36
- settings,
37
- area,
38
- persons,
39
- periods
40
- } = schedule;
30
+ var settings = schedule.settings;
31
+ if (!settings) throw new Error('settings missing in schedule');
32
+ var area = schedule.area;
33
+ var groups = (_schedule$groups = schedule.groups) !== null && _schedule$groups !== void 0 ? _schedule$groups : [];
34
+ var teachers = (_schedule$teachers = schedule.teachers) !== null && _schedule$teachers !== void 0 ? _schedule$teachers : [];
35
+ var locations = (_schedule$locations = schedule.locations) !== null && _schedule$locations !== void 0 ? _schedule$locations : [];
36
+ var events = (_schedule$events = schedule.events) !== null && _schedule$events !== void 0 ? _schedule$events : [];
37
+ var overlapGroups = (_schedule$overlapGrou = schedule.overlapGroups) !== null && _schedule$overlapGrou !== void 0 ? _schedule$overlapGrou : [];
38
+ var courses = (_schedule$courses = schedule.courses) !== null && _schedule$courses !== void 0 ? _schedule$courses : [];
39
+ var periods = (_schedule$periods = schedule.periods) !== null && _schedule$periods !== void 0 ? _schedule$periods : [];
40
+ {
41
+ var _groupMap = new Map(groups.map(x => {
42
+ var _x$idKey;
43
+ return [(_x$idKey = x[idKey]) === null || _x$idKey === void 0 ? void 0 : _x$idKey.toString(), x];
44
+ }).filter(x => !!x[0]));
45
+ groups === null || groups === void 0 || groups.forEach(item => {
46
+ if (!item.parentGroups) return;
47
+ item.parentGroups = item.parentGroups.map(x => {
48
+ var _x$idKey2;
49
+ return typeof x === 'string' ? _groupMap.get(x) : _groupMap.get((_x$idKey2 = x[idKey]) === null || _x$idKey2 === void 0 ? void 0 : _x$idKey2.toString());
50
+ }).filter(x => !!x);
51
+ });
52
+ courses.concat(events).forEach(item => {
53
+ if (!item.groups) return;
54
+ item.groups.forEach(x => {
55
+ var _x$to$idKey;
56
+ var group = typeof x.to === 'string' ? _groupMap.get(x.to) : _groupMap.get((_x$to$idKey = x.to[idKey]) === null || _x$to$idKey === void 0 ? void 0 : _x$to$idKey.toString());
57
+ if (group) x.to = group;
58
+ });
59
+ });
60
+ }
61
+ var division = (_schedule$divisions = schedule.divisions) !== null && _schedule$divisions !== void 0 ? _schedule$divisions : schedule.division;
41
62
  var {
42
63
  map: periodsMap,
43
64
  matrix: periodsMatrix
44
- } = (0, _periods.parsePeriods)(periods, _lodash.default.pick(schedule.divisions, 'start', 'end'));
65
+ } = (0, _periods.parsePeriods)(periods, _lodash.default.pick(division, 'start', 'end'));
45
66
  var destructMap = (0, _destructure2.default)(courses, events, options);
46
67
  var data = _objectSpread(_objectSpread(_objectSpread({
47
68
  settings: (0, _settings.default)(settings),
@@ -1 +1 @@
1
- {"version":3,"file":"constraints.js","names":["_lodash","_interopRequireDefault","require","_destructure2","_dependencies","_teachers","_groups","_collections","_settings","_persons","_default2","_dynamicLockedTimes","_periods","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_default","exports","schedule","_data$events","_data$events2","options","undefined","idKey","groups","teachers","locations","events","overlapGroups","courses","settings","area","persons","periods","map","periodsMap","matrix","periodsMatrix","parsePeriods","_","pick","divisions","destructMap","_destructure","data","getSettings","getDefault","areas","breakLengthMatrix","list","getCollections","dependencies","getDependencies","getGroups","concat","getTeachers","groupMap","Map","size","_data$groups","x","set","toString","personMap","group","person","getPersons","_personMap$get","id","get","g","_personMap$get2","Array","from","values","lunchSet","Set","some","getDynamicLockedTimes","teacher"],"sources":["../../../../src/RS/v2/to/constraints.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"constraints.js","names":["_lodash","_interopRequireDefault","require","_destructure2","_dependencies","_teachers","_groups","_collections","_settings","_persons","_default2","_dynamicLockedTimes","_periods","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_default","exports","schedule","_schedule$groups","_schedule$teachers","_schedule$locations","_schedule$events","_schedule$overlapGrou","_schedule$courses","_schedule$periods","_schedule$divisions","_data$events","_data$events2","options","undefined","structuredClone","idKey","settings","Error","area","groups","teachers","locations","events","overlapGroups","courses","periods","groupMap","Map","map","x","_x$idKey","toString","item","parentGroups","_x$idKey2","get","concat","_x$to$idKey","group","to","division","divisions","periodsMap","matrix","periodsMatrix","parsePeriods","_","pick","destructMap","_destructure","data","getSettings","getDefault","areas","breakLengthMatrix","list","getCollections","dependencies","getDependencies","getGroups","getTeachers","size","_data$groups","set","personMap","person","getPersons","_personMap$get","id","g","_personMap$get2","Array","from","values","lunchSet","Set","some","getDynamicLockedTimes","teacher"],"sources":["../../../../src/RS/v2/to/constraints.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  export default class {
2
2
  static availableDependency: (availableLocations: import("../../../core/types").Deserialized<import("../../../core/v2/types/available-locations").AvailableLocationBare>[], options: import("../types/out-options").OutOptions) => import("../types/available-dependencies").AvailableDependency[][];
3
3
  static configuration: (events: import("../../../core/types").Deserialized<import("../../../core/v2/types/events").Event>[], options: import("../types/out-options").OutOptions) => import("../types/configurations").Configuration[];
4
- static constraints: (schedule: import("../../../core/types").Deserialized<import("../../../core/v2/types/schedules").Schedule>, options?: import("../types/out-options").OutOptions) => import("../types/constraints").Constraint;
4
+ static constraints: (schedule: Partial<import("../../../core/types").Deserialized<import("../../../core/v2/types/schedules").Schedule> & {
5
+ division: import("../../../core/types").Deserialized<import("../../../core/v2/types/divisions").Division>;
6
+ }>, options?: import("../types/out-options").OutOptions) => import("../types/constraints").Constraint;
5
7
  static courseEvent: (courseEvents: import("../../../core/types").Deserialized<import("../../../core/v2/types/events").Event> | import("../../../core/types").Deserialized<import("../../../core/v2/types/events").Event>[], overlapGroups: import("../../../core/types").Deserialized<import("../../../core/v2/types/overlap-groups").OverlapGroup>[] | undefined, settings: import("../../../core/v2/types/division-settings").DivisionSettings, options: import("../types/out-options").OutOptions, periodsMap: Map<string | undefined, number>, destructMap?: Map<string | null, Set<string>>) => import("../types/course-events").CourseEvent[];
6
8
  static course: (courses: import("../../../core/types").Deserialized<import("../../../core/v2/types/courses").Course> | import("../../../core/types").Deserialized<import("../../../core/v2/types/courses").Course>[], events: import("../../../core/types").Deserialized<import("../../../core/v2/types/events").Event>[] | undefined, overlapGroups: import("../../../core/types").Deserialized<import("../../../core/v2/types/overlap-groups").OverlapGroup>[] | undefined, settings: import("../../../core/v2/types/division-settings").DivisionSettings, options: import("../types/out-options").OutOptions, periodsMap: Map<string | undefined, number>, destructMap?: Map<string | null, Set<string>>) => (import("../types/collections").Collection | import("../types/collections").Collection[])[];
7
9
  static day: (days: import("../../../core/v2/types/days").Day[], numDays: number) => number[];
@@ -2,5 +2,7 @@ import { Types as CoreTypes } from '../../../core/types';
2
2
  import { Deserialized } from '../../../core/types';
3
3
  import { Constraint } from '../types/constraints';
4
4
  import { OutOptions } from '../types/out-options';
5
- declare const _default: (schedule: Deserialized<CoreTypes.schedule>, options?: OutOptions) => Constraint;
5
+ declare const _default: (schedule: Partial<Deserialized<CoreTypes.schedule> & {
6
+ division: Deserialized<CoreTypes.division>;
7
+ }>, options?: OutOptions) => Constraint;
6
8
  export default _default;