@royalschedule/maps 2.3.21 → 2.3.22

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 (99) hide show
  1. package/dist/PlanDigital/types/course.d.ts +15 -0
  2. package/dist/{core/types/common.js → PlanDigital/types/course.js} +1 -1
  3. package/dist/PlanDigital/types/course.js.map +1 -0
  4. package/dist/PlanDigital/types/period.d.ts +3 -0
  5. package/dist/PlanDigital/types/period.js +6 -0
  6. package/dist/PlanDigital/types/period.js.map +1 -0
  7. package/dist/SchoolSoft/from/index.d.ts +8 -0
  8. package/dist/SchoolSoft/from/index.js +16 -0
  9. package/dist/SchoolSoft/from/index.js.map +1 -0
  10. package/dist/SchoolSoft/from/schedules.d.ts +9 -0
  11. package/dist/SchoolSoft/from/schedules.js +221 -0
  12. package/dist/SchoolSoft/from/schedules.js.map +1 -0
  13. package/dist/SchoolSoft/to/index.d.ts +3 -0
  14. package/dist/SchoolSoft/to/index.js +16 -0
  15. package/dist/SchoolSoft/to/index.js.map +1 -0
  16. package/dist/SchoolSoft/to/schedules.d.ts +4 -0
  17. package/dist/SchoolSoft/to/schedules.js +36 -0
  18. package/dist/SchoolSoft/to/schedules.js.map +1 -0
  19. package/dist/SchoolSoft/types/events.d.ts +19 -0
  20. package/dist/SchoolSoft/types/events.js +6 -0
  21. package/dist/SchoolSoft/types/events.js.map +1 -0
  22. package/dist/SchoolSoft/types/index.d.ts +4 -0
  23. package/dist/Skola24/types/Meta.d.ts +7 -0
  24. package/dist/Skola24/types/Meta.js +6 -0
  25. package/dist/Skola24/types/Meta.js.map +1 -0
  26. package/dist/core/constants/index.d.ts +71 -0
  27. package/dist/core/constants/index.js +136 -0
  28. package/dist/core/constants/index.js.map +1 -0
  29. package/dist/core/from/courses.js +0 -15
  30. package/dist/core/from/courses.js.map +1 -1
  31. package/dist/core/from/events.js +0 -15
  32. package/dist/core/from/events.js.map +1 -1
  33. package/dist/core/from/groups.js +0 -15
  34. package/dist/core/from/groups.js.map +1 -1
  35. package/dist/core/from/locations.js +0 -15
  36. package/dist/core/from/locations.js.map +1 -1
  37. package/dist/core/from/locked-times.js +0 -15
  38. package/dist/core/from/locked-times.js.map +1 -1
  39. package/dist/core/from/overlap-groups.js +0 -15
  40. package/dist/core/from/overlap-groups.js.map +1 -1
  41. package/dist/core/from/persons.js +0 -15
  42. package/dist/core/from/persons.js.map +1 -1
  43. package/dist/core/from/schedules.js +0 -15
  44. package/dist/core/from/schedules.js.map +1 -1
  45. package/dist/core/from/teachers.js +0 -15
  46. package/dist/core/from/teachers.js.map +1 -1
  47. package/dist/core/identify/index.d.ts +2 -0
  48. package/dist/core/identify/index.js +65 -0
  49. package/dist/core/identify/index.js.map +1 -0
  50. package/dist/core/to/available-locations.js +0 -15
  51. package/dist/core/to/available-locations.js.map +1 -1
  52. package/dist/core/to/courses.d.ts +1 -37
  53. package/dist/core/to/courses.js +10 -43
  54. package/dist/core/to/courses.js.map +1 -1
  55. package/dist/core/to/days.d.ts +1 -4
  56. package/dist/core/to/days.js +0 -15
  57. package/dist/core/to/days.js.map +1 -1
  58. package/dist/core/to/events.d.ts +1 -41
  59. package/dist/core/to/events.js +10 -43
  60. package/dist/core/to/events.js.map +1 -1
  61. package/dist/core/to/groups.d.ts +1 -15
  62. package/dist/core/to/groups.js +0 -15
  63. package/dist/core/to/groups.js.map +1 -1
  64. package/dist/core/to/intervals.d.ts +1 -4
  65. package/dist/core/to/intervals.js.map +1 -1
  66. package/dist/core/to/locations.js +0 -15
  67. package/dist/core/to/locations.js.map +1 -1
  68. package/dist/core/to/locked-times.d.ts +2 -2
  69. package/dist/core/to/locked-times.js +1 -16
  70. package/dist/core/to/locked-times.js.map +1 -1
  71. package/dist/core/to/overlap-groups.js +0 -15
  72. package/dist/core/to/overlap-groups.js.map +1 -1
  73. package/dist/core/to/persons.js +0 -15
  74. package/dist/core/to/persons.js.map +1 -1
  75. package/dist/core/to/schedules.js +1 -16
  76. package/dist/core/to/schedules.js.map +1 -1
  77. package/dist/core/to/settings.js +0 -15
  78. package/dist/core/to/settings.js.map +1 -1
  79. package/dist/core/to/teachers.js +0 -15
  80. package/dist/core/to/teachers.js.map +1 -1
  81. package/dist/core/types/common/index.d.ts +2 -2
  82. package/dist/core/types/common/index.js +1 -0
  83. package/dist/core/types/common/index.js.map +1 -1
  84. package/dist/core/types/course-events.d.ts +3 -13
  85. package/dist/core/types/courses.d.ts +3 -14
  86. package/dist/core/types/identify.d.ts +10 -0
  87. package/dist/core/types/identify.js +6 -0
  88. package/dist/core/types/identify.js.map +1 -0
  89. package/dist/core/types/meta.d.ts +1 -1
  90. package/dist/core/types/students.d.ts +8 -0
  91. package/dist/core/types/students.js +6 -0
  92. package/dist/core/types/students.js.map +1 -0
  93. package/dist/core/types/teachers.d.ts +2 -0
  94. package/package.json +1 -1
  95. package/dist/core/types/common.d.ts +0 -26
  96. package/dist/core/types/common.js.map +0 -1
  97. package/dist/core/v2/types/common/index.d.ts +0 -26
  98. /package/dist/{core/v2/types/common → SchoolSoft/types}/index.js +0 -0
  99. /package/dist/{core/v2/types/common → SchoolSoft/types}/index.js.map +0 -0
@@ -0,0 +1,15 @@
1
+ export interface Course {
2
+ Klass: string;
3
+ Kurskod: string;
4
+ Sign: string;
5
+ Poäng: number;
6
+ Ht: number;
7
+ Resurs: 0 | 1;
8
+ Vt: number;
9
+ Summa: number;
10
+ Period: 'LÅ' | 'Vt' | 'Ht';
11
+ Anteckningar: string;
12
+ Antal: number;
13
+ Ämne: string;
14
+ Kursnamn: string;
15
+ }
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=common.js.map
6
+ //# sourceMappingURL=course.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"course.js","mappings":"","names":[],"sourceRoot":"","sources":[],"sourcesContent":[]}
@@ -0,0 +1,3 @@
1
+ export interface Period {
2
+ name: string;
3
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=period.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"period.js","mappings":"","names":[],"sourceRoot":"","sources":[],"sourcesContent":[]}
@@ -0,0 +1,8 @@
1
+ export default class {
2
+ static schedules: (input: import("../types/events").Event[], options?: {
3
+ interval?: {
4
+ start: number;
5
+ end: number;
6
+ } | undefined;
7
+ } | undefined) => import("../../core/types/divisions").Division;
8
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _schedules2 = _interopRequireDefault(require("./schedules"));
8
+ function _interopRequireDefault(obj) {
9
+ return obj && obj.__esModule ? obj : {
10
+ default: obj
11
+ };
12
+ }
13
+ class default_1 {}
14
+ exports.default = default_1;
15
+ default_1.schedules = _schedules2.default;
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","mappings":";;;;;;AAAA;;;;;;AAEc;;AACLA,sBAAsBC,mBAAtBD","names":["default_1","_schedules"],"sourceRoot":"","sources":["../../../src/SchoolSoft/from/index.ts"],"sourcesContent":[null]}
@@ -0,0 +1,9 @@
1
+ import { Event } from '../types/events';
2
+ import { Types as CoreTypes } from '../../core/types';
3
+ declare const _default: (input: Event[], options?: {
4
+ interval?: {
5
+ start: number;
6
+ end: number;
7
+ } | undefined;
8
+ } | undefined) => CoreTypes.division;
9
+ export default _default;
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _lodash = _interopRequireDefault(require("lodash"));
8
+ var _getDate = _interopRequireDefault(require("../../common/get-date"));
9
+ function _interopRequireDefault(obj) {
10
+ return obj && obj.__esModule ? obj : {
11
+ default: obj
12
+ };
13
+ }
14
+ function ownKeys(object, enumerableOnly) {
15
+ var keys = Object.keys(object);
16
+ if (Object.getOwnPropertySymbols) {
17
+ var symbols = Object.getOwnPropertySymbols(object);
18
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
19
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
20
+ })), keys.push.apply(keys, symbols);
21
+ }
22
+ return keys;
23
+ }
24
+ function _objectSpread(target) {
25
+ for (var i = 1; i < arguments.length; i++) {
26
+ var source = null != arguments[i] ? arguments[i] : {};
27
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
28
+ _defineProperty(target, key, source[key]);
29
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
30
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
31
+ });
32
+ }
33
+ return target;
34
+ }
35
+ function _defineProperty(obj, key, value) {
36
+ if (key in obj) {
37
+ Object.defineProperty(obj, key, {
38
+ value: value,
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true
42
+ });
43
+ } else {
44
+ obj[key] = value;
45
+ }
46
+ return obj;
47
+ }
48
+ var days = ['Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör', 'Sön'];
49
+ function _parseWeeks(weeks, set) {
50
+ var method = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'add';
51
+ if (!weeks) return;
52
+ var intervals = weeks.split(',').map(_lodash.default.trim);
53
+ intervals.forEach(interval => {
54
+ if (!interval.includes('-')) return set[method](Number(interval));
55
+ var [start, end] = interval.split('-').map(Number);
56
+ Array(end - start + 1).fill(start).forEach((val, index) => set[method](val + index));
57
+ });
58
+ }
59
+ var _default = (input, options) => {
60
+ if (!input) throw new Error('(SchoolSoft::From::Schedules) Input was undefined');
61
+ if (_lodash.default.isString(input)) throw new Error('(SchoolSoft::From::Schedules) Input was of type string. Is required to be of object type');
62
+ var teachers = new Set();
63
+ var groups = new Set();
64
+ var locations = new Set();
65
+ var events = input.reduce((acc, event) => {
66
+ var _locations2;
67
+ if (!('length' in event)) return acc;
68
+ var weeks = new Set();
69
+ var {
70
+ inweek,
71
+ exweek,
72
+ realweeks
73
+ } = event;
74
+ try {
75
+ _parseWeeks(inweek, weeks, 'add');
76
+ _parseWeeks(realweeks, weeks, 'add');
77
+ if (weeks.size == 0) Array(51).fill(1).forEach((val, index) => weeks.add(val + index));
78
+ _parseWeeks(exweek, weeks, 'delete');
79
+ } catch (err) {
80
+ console.error(err);
81
+ }
82
+ if (options !== null && options !== void 0 && options.interval) {
83
+ var {
84
+ start: _start,
85
+ end: _end
86
+ } = options.interval;
87
+ if (_start > 52 || _start <= 0) throw new Error("(SchoolSoft::From::Schedules) Interval::start is invalid. value ".concat(_start));
88
+ if (_end > 52 || _end <= 0) throw new Error("(SchoolSoft::From::Schedules) Interval::end is invalid. value ".concat(_end));
89
+ if (_start > _end) {
90
+ if (!Array.from(weeks).some(week => week >= _start && week <= 52 || week <= _end)) return acc;
91
+ } else {
92
+ if (!Array.from(weeks).some(week => week >= _start && week <= _end)) return acc;
93
+ }
94
+ }
95
+ var start, end;
96
+ var {
97
+ starttime,
98
+ subject,
99
+ day,
100
+ length,
101
+ teacher,
102
+ group,
103
+ room
104
+ } = event;
105
+ if (day && starttime) {
106
+ var _day = days.indexOf(day);
107
+ if (_day > 4) return acc;
108
+ start = (0, _getDate.default)(_day, "".concat(starttime.substring(0, 2), ":").concat(starttime.substring(2, 4)));
109
+ end = start.clone().add(length, 'm');
110
+ }
111
+ var _teachers;
112
+ var _groups;
113
+ var _locations;
114
+ if (teacher) {
115
+ _teachers = teacher.split(',').map(x => x.trim());
116
+ _teachers.forEach(_teacher => teachers.add(_teacher));
117
+ }
118
+ if (group) {
119
+ _groups = group.split(',').map(x => x.trim());
120
+ _groups.forEach(_group => groups.add(_group));
121
+ }
122
+ if (room) {
123
+ _locations = _lodash.default.sortBy(room.split(',').map(x => x.trim()));
124
+ _locations.forEach(_location => locations.add(_location));
125
+ }
126
+ return acc.concat(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
127
+ ids: event.id,
128
+ preferredDuration: event.length,
129
+ weeks: _lodash.default.sortBy(Array.from(weeks))
130
+ }, subject && {
131
+ subject
132
+ }), start && {
133
+ start
134
+ }), end && {
135
+ end
136
+ }), event.group && {
137
+ groups: _groups
138
+ }), event.teacher && {
139
+ teachers: _teachers
140
+ }), event.room && {
141
+ inLocations: _locations,
142
+ locations: (_locations2 = _locations) === null || _locations2 === void 0 ? void 0 : _locations2.map((_location, index) => ({
143
+ locations: [_location],
144
+ groupIndex: index
145
+ }))
146
+ }));
147
+ }, []);
148
+ var set = new Set(events);
149
+ var courses = new Set([]);
150
+ var _loop = function _loop(element) {
151
+ var _ref;
152
+ set.delete(element);
153
+ var events = [element];
154
+ var {
155
+ subject,
156
+ groups,
157
+ teachers,
158
+ inLocations,
159
+ locations
160
+ } = element;
161
+ delete element.groups;
162
+ delete element.subject;
163
+ for (var event of set) {
164
+ if (event.subject != subject) continue;
165
+ if (groups !== null && groups !== void 0 && groups.length && !_lodash.default.isEqual(_lodash.default.sortBy(event.groups), _lodash.default.sortBy(groups))) continue;
166
+ if (!(groups !== null && groups !== void 0 && groups.length) && teachers !== null && teachers !== void 0 && teachers.length && !_lodash.default.isEqual(_lodash.default.sortBy(event.teachers), _lodash.default.sortBy(teachers))) continue;
167
+ delete event.groups;
168
+ delete event.subject;
169
+ events.push(event);
170
+ set.delete(event);
171
+ }
172
+ var course = _objectSpread(_objectSpread({
173
+ displayName: "".concat(subject, "-").concat((_ref = groups !== null && groups !== void 0 ? groups : teachers) === null || _ref === void 0 ? void 0 : _ref.join(' '))
174
+ }, groups && {
175
+ groups
176
+ }), {}, {
177
+ events
178
+ });
179
+ if (events.every(_ref2 => {
180
+ var {
181
+ teachers: _teachers
182
+ } = _ref2;
183
+ return _lodash.default.isEqual(_lodash.default.sortBy(teachers), _lodash.default.sortBy(_teachers));
184
+ })) {
185
+ var _course$events;
186
+ course.teachers = teachers;
187
+ (_course$events = course.events) === null || _course$events === void 0 ? void 0 : _course$events.forEach(event => delete event.teachers);
188
+ }
189
+ if (events.every(_ref3 => {
190
+ var {
191
+ inLocations: _inLocations
192
+ } = _ref3;
193
+ return _lodash.default.isEqual(_lodash.default.sortBy(inLocations), _lodash.default.sortBy(_inLocations));
194
+ })) {
195
+ var _course$events2;
196
+ course.locations = locations;
197
+ (_course$events2 = course.events) === null || _course$events2 === void 0 ? void 0 : _course$events2.forEach(event => delete event.locations);
198
+ }
199
+ courses.add(course);
200
+ };
201
+ for (var element of set) {
202
+ _loop(element);
203
+ }
204
+ return {
205
+ courses: Array.from(courses),
206
+ teachers: Array.from(teachers).map(ids => ({
207
+ ids,
208
+ displayName: ids
209
+ })),
210
+ groups: Array.from(groups).map(ids => ({
211
+ ids,
212
+ displayName: ids
213
+ })),
214
+ locations: Array.from(locations).map(ids => ({
215
+ ids,
216
+ displayName: ids
217
+ }))
218
+ };
219
+ };
220
+ exports.default = _default;
221
+ //# sourceMappingURL=schedules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules.js","mappings":"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","names":["days","_parseWeeks","weeks","set","method","intervals","split","map","_","trim","forEach","interval","includes","Number","start","end","Array","fill","val","index","input","options","Error","isString","teachers","Set","groups","locations","events","reduce","acc","event","inweek","exweek","realweeks","size","add","err","console","error","from","some","week","starttime","subject","day","length","teacher","group","room","_day","indexOf","substring","clone","_teachers","_groups","_locations","x","_teacher","_group","sortBy","_location","concat","ids","id","preferredDuration","inLocations","_locations2","groupIndex","courses","element","delete","isEqual","push","course","displayName","_ref","join","every","_ref2","_ref3","_inLocations","_loop"],"sourceRoot":"","sources":["../../../src/SchoolSoft/from/schedules.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ export default class {
2
+ static schedules: (courseEvents: import("../../core/types/course-events").CourseEvent[]) => import("xlsx").WorkBook;
3
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _schedules2 = _interopRequireDefault(require("./schedules"));
8
+ function _interopRequireDefault(obj) {
9
+ return obj && obj.__esModule ? obj : {
10
+ default: obj
11
+ };
12
+ }
13
+ class default_1 {}
14
+ exports.default = default_1;
15
+ default_1.schedules = _schedules2.default;
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","mappings":";;;;;;AAAA;;;;;;AAEc;;AACLA,sBAAsBC,mBAAtBD","names":["default_1","_schedules"],"sourceRoot":"","sources":["../../../src/SchoolSoft/to/index.ts"],"sourcesContent":[null]}
@@ -0,0 +1,4 @@
1
+ import XLSX from 'xlsx';
2
+ import { CourseEvent } from '../../core/types/course-events';
3
+ declare const _default: (courseEvents: CourseEvent[]) => XLSX.WorkBook;
4
+ export default _default;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _xlsx = _interopRequireDefault(require("xlsx"));
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ function _interopRequireDefault(obj) {
10
+ return obj && obj.__esModule ? obj : {
11
+ default: obj
12
+ };
13
+ }
14
+ var _default = courseEvents => {
15
+ var events = courseEvents.reduce((acc, event) => {
16
+ if (event.parked) return acc;
17
+ var teachers = event.teachers == null ? event.course.teachers : event.teachers;
18
+ var room = event.inLocations.filter(x => x !== null).map(locations => locations.ids).join(', ');
19
+ return acc.concat({
20
+ group: event.course.ids,
21
+ dayid: _moment.default.utc(event.start).day() - 1,
22
+ starttime: _moment.default.utc(event.start).format('HHmm'),
23
+ length: _moment.default.utc(event.end).diff(_moment.default.utc(event.start), 'minutes'),
24
+ teacher: (teachers || []).map(teacher => teacher.ids).join(', '),
25
+ subject: '',
26
+ room: room,
27
+ inweek: '',
28
+ exweek: ''
29
+ });
30
+ }, []);
31
+ var wb = _xlsx.default.utils.book_new();
32
+ _xlsx.default.utils.book_append_sheet(wb, _xlsx.default.utils.json_to_sheet(events), 'royal schedule export');
33
+ return wb;
34
+ };
35
+ exports.default = _default;
36
+ //# sourceMappingURL=schedules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules.js","mappings":";;;;;;AAAA;AACA;;;;;;eAUgBA,YAAD,IAA+C;EAC5D,IAAIC,MAAM,GAAGD,YAAY,CAACE,MAAbF,CAAoB,CAACG,GAAD,EAAeC,KAAf,KAAqC;IACpE,IAAIA,KAAK,CAACC,MAAV,EACE,OAAOF,GAAP;IAEF,IAAIG,QAAQ,GAAeF,KAAK,CAACE,QAANF,IAAkB,IAAlBA,GAA0BA,KAAK,CAACG,MAANH,CAAyBE,QAAnDF,GAA8DA,KAAK,CAACE,QAA/F;IAEA,IAAIE,IAAI,GAAmBJ,KAAK,CAACK,WAANL,CACkBM,MADlBN,CAC0BO,CAAD,IAAYA,CAAC,KAAK,IAD3CP,EAEkBQ,GAFlBR,CAEuBS,SAAD,IAAyBA,SAAS,CAACC,GAFzDV,EAGkBW,IAHlBX,CAGuB,IAHvBA,CAA3B;IAKA,OAAOD,GAAG,CAACa,MAAJb,CAAW;MAChBc,KAAK,EAAOb,KAAK,CAACG,MAANH,CAAwBU,GADpB;MAEhBI,KAAK,EAAMC,gBAAOC,GAAPD,CAAWf,KAAK,CAACiB,KAAjBF,EAAwBG,GAAxBH,KAAgC,CAF3B;MAGhBI,SAAS,EAAEJ,gBAAOC,GAAPD,CAAWf,KAAK,CAACiB,KAAjBF,EAAwBK,MAAxBL,CAA+B,MAA/BA,CAHK;MAIhBM,MAAM,EAAKN,gBAAOC,GAAPD,CAAWf,KAAK,CAACsB,GAAjBP,EAAsBQ,IAAtBR,CAA2BA,gBAAOC,GAAPD,CAAWf,KAAK,CAACiB,KAAjBF,CAA3BA,EAAoD,SAApDA,CAJK;MAKhBS,OAAO,EAAI,CAACtB,QAAQ,IAAI,EAAb,EAAiBM,GAAjB,CAAsBgB,OAAD,IAAsBA,OAAO,CAACd,GAAnD,EAAwDC,IAAxD,CAA6D,IAA7D,CALK;MAMhBc,OAAO,EAAI,EANK;MAOhBrB,IAAI,EAAOA,IAPK;MAQhBsB,MAAM,EAAK,EARK;MAShBC,MAAM,EAAK;IATK,CAAX5B,CAAP;EAXW,GAsBV,EAtBUH,CAAb;EAwBA,IAAIgC,EAAE,GAAGC,cAAKC,KAALD,CAAWE,QAAXF,EAAT;EAEAA,cAAKC,KAALD,CAAWG,iBAAXH,CAA6BD,EAA7BC,EAAiCA,cAAKC,KAALD,CAAWI,aAAXJ,CAAyBhC,MAAzBgC,CAAjCA,EAAmE,uBAAnEA;EAEA,OAAOD,EAAP","names":["courseEvents","events","reduce","acc","event","parked","teachers","course","room","inLocations","filter","x","map","locations","ids","join","concat","group","dayid","moment","utc","start","day","starttime","format","length","end","diff","teacher","subject","inweek","exweek","wb","XLSX","utils","book_new","book_append_sheet","json_to_sheet"],"sourceRoot":"","sources":["../../../src/SchoolSoft/to/schedules.ts"],"sourcesContent":[null]}
@@ -0,0 +1,19 @@
1
+ export declare type Time = `${number}${number}${number}${number}`;
2
+ export declare type Day = 'Mån' | 'Tis' | 'Ons' | 'Tor' | 'Fre' | 'Lör' | 'Sön';
3
+ export interface Event {
4
+ id?: string;
5
+ group?: string;
6
+ dayid?: number;
7
+ day?: Day;
8
+ starttime?: Time;
9
+ length?: number;
10
+ teacher?: string;
11
+ subject?: string;
12
+ room?: string;
13
+ period?: string;
14
+ experiod?: string;
15
+ inweek?: string;
16
+ exweek?: string;
17
+ exclass?: 0 | 1;
18
+ realweeks?: string;
19
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","mappings":"","names":[],"sourceRoot":"","sources":[],"sourcesContent":[]}
@@ -0,0 +1,4 @@
1
+ import { Event } from './events';
2
+ export declare type Types = {
3
+ Event: Event;
4
+ };
@@ -0,0 +1,7 @@
1
+ export interface Meta {
2
+ week?: number;
3
+ ignoreEmptyCourses?: boolean;
4
+ deduceGroupsFromCourseName?: boolean;
5
+ removeUnreferencedTeachers?: boolean;
6
+ removeUnreferencedGroups?: boolean;
7
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=Meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Meta.js","mappings":"","names":[],"sourceRoot":"","sources":[],"sourcesContent":[]}
@@ -0,0 +1,71 @@
1
+ import { CoreMap } from '../../core';
2
+ import { SchoolSoftMap } from '../../SchoolSoft/file';
3
+ import { PlanDigitalMap } from '../../PlanDigital';
4
+ import { AdmentumMap } from '../../Admentum';
5
+ import { IdunSoftMap } from '../../IdunSoft';
6
+ import { Skola24Map } from '../../Skola24';
7
+ import { RSMap } from '../../RS';
8
+ export declare const maps: readonly [{
9
+ readonly structure: any;
10
+ readonly name: "Admentum";
11
+ readonly map: typeof AdmentumMap;
12
+ readonly meta: {
13
+ readonly structure: "";
14
+ };
15
+ }, {
16
+ readonly structure: (keyof import("../../SchoolSoft/file/types/events").Event)[];
17
+ readonly name: "SchoolSoft";
18
+ readonly map: typeof SchoolSoftMap;
19
+ readonly meta: {
20
+ readonly structure: "";
21
+ };
22
+ }, {
23
+ readonly structure: (keyof import("../../PlanDigital/types/course").Course)[];
24
+ readonly name: "Plan Digital";
25
+ readonly map: typeof PlanDigitalMap;
26
+ readonly meta: {
27
+ readonly structure: "";
28
+ };
29
+ }, {
30
+ readonly structure: any;
31
+ readonly name: "IdunSoft";
32
+ readonly map: typeof IdunSoftMap;
33
+ readonly meta: {
34
+ readonly structure: "";
35
+ };
36
+ }, {
37
+ readonly structure: any;
38
+ readonly name: "Skola24";
39
+ readonly map: typeof Skola24Map;
40
+ readonly meta: {
41
+ readonly structure: "";
42
+ };
43
+ }, {
44
+ readonly structure: any;
45
+ readonly name: "Royal Schedule Algorithm v0";
46
+ readonly map: typeof RSMap;
47
+ readonly meta: {
48
+ readonly structure: "RS/algorithm-0.1.3";
49
+ };
50
+ }, {
51
+ readonly structure: any;
52
+ readonly name: "Royal Schedule Algorithm v1";
53
+ readonly map: typeof import("../../RS/v1").V1;
54
+ readonly meta: {
55
+ readonly structure: "RS/algorithm-1.0.0";
56
+ };
57
+ }, {
58
+ readonly structure: any;
59
+ readonly name: "Royal Schedule Algorithm v2";
60
+ readonly map: typeof import("../../RS/v2").V2;
61
+ readonly meta: {
62
+ readonly structure: "RS/algorithm-2.0.0";
63
+ };
64
+ }, {
65
+ readonly structure: any;
66
+ readonly name: "Royal Schedule";
67
+ readonly map: typeof CoreMap;
68
+ readonly meta: {
69
+ readonly structure: "RS/core-1.0.0";
70
+ };
71
+ }];