@royalschedule/maps 2.2.79 → 2.2.81
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.
- package/dist/RS/v2/from/collections.d.ts +3 -2
- package/dist/RS/v2/from/collections.js +10 -8
- package/dist/RS/v2/from/collections.js.map +1 -1
- package/dist/RS/v2/from/course-events.d.ts +4 -1
- package/dist/RS/v2/from/course-events.js +5 -5
- package/dist/RS/v2/from/course-events.js.map +1 -1
- package/dist/RS/v2/from/days.d.ts +1 -1
- package/dist/RS/v2/from/days.js.map +1 -1
- package/dist/RS/v2/from/dependencies.d.ts +3 -1
- package/dist/RS/v2/from/dependencies.js +3 -3
- package/dist/RS/v2/from/dependencies.js.map +1 -1
- package/dist/RS/v2/from/groups.d.ts +2 -1
- package/dist/RS/v2/from/groups.js +4 -4
- package/dist/RS/v2/from/groups.js.map +1 -1
- package/dist/RS/v2/from/index.d.ts +8 -8
- package/dist/RS/v2/from/locked-times.d.ts +2 -1
- package/dist/RS/v2/from/locked-times.js +3 -3
- package/dist/RS/v2/from/locked-times.js.map +1 -1
- package/dist/RS/v2/from/placements.js.map +1 -1
- package/dist/RS/v2/from/schedules.js +31 -22
- package/dist/RS/v2/from/schedules.js.map +1 -1
- package/dist/RS/v2/from/settings.d.ts +1 -1
- package/dist/RS/v2/from/settings.js.map +1 -1
- package/dist/RS/v2/from/teachers.d.ts +3 -1
- package/dist/RS/v2/from/teachers.js +3 -3
- package/dist/RS/v2/from/teachers.js.map +1 -1
- package/dist/RS/v2/types/settings.d.ts +4 -8
- package/dist/core/types/division-settings.d.ts +1 -0
- package/dist/core/types/groups.d.ts +2 -0
- package/dist/core/types/index.d.ts +4 -0
- package/dist/core/types/persons.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { Constraint } from '../types/constraints';
|
|
1
2
|
import { Settings } from '../types/settings';
|
|
2
|
-
import { Collection } from '../types/collections';
|
|
3
3
|
import { Course as SourceCourse } from '../../../core/types/courses';
|
|
4
|
-
|
|
4
|
+
import { Deserialized } from '../../../core/types/common';
|
|
5
|
+
declare let reduceCourses: (courses: NonNullable<Constraint['events']>, teachersList: string[], groupsList: string[], settings: Settings, overlapGroup?: number) => Deserialized<SourceCourse>[];
|
|
5
6
|
export default reduceCourses;
|
|
@@ -26,12 +26,12 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
26
26
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
27
27
|
|
|
28
28
|
function _course(course, teachersList, groupsList, settings) {
|
|
29
|
-
var _course$groups, _course$groups2;
|
|
29
|
+
var _course$potentialCent, _course$groups, _course$groups2, _doc$teachers$length, _doc$teachers, _doc$groups$length, _doc$groups;
|
|
30
30
|
|
|
31
31
|
var overlapGroup = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
32
32
|
var idKey = settings.collectionIdKey;
|
|
33
|
-
if (!idKey) throw new Error('
|
|
34
|
-
if (!course[idKey]) throw new Error('A course missing a unique key');
|
|
33
|
+
if (!idKey) throw new Error('(RS::V2::From::Dependencies) Property "collectionIdKey" in settings is undefined');
|
|
34
|
+
if (!course[idKey]) throw new Error('(RS::V2::From::Dependencies) A course missing a unique key');
|
|
35
35
|
|
|
36
36
|
var doc = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
37
37
|
ids: course[idKey]
|
|
@@ -50,7 +50,7 @@ function _course(course, teachersList, groupsList, settings) {
|
|
|
50
50
|
}), 'weight' in course && {
|
|
51
51
|
weight: course.weight
|
|
52
52
|
}), 'potentialCenter' in course && {
|
|
53
|
-
potentialCenter: course.potentialCenter
|
|
53
|
+
potentialCenter: (_course$potentialCent = course.potentialCenter) === null || _course$potentialCent === void 0 ? void 0 : _course$potentialCent.toString()
|
|
54
54
|
}), course.dependencies && {
|
|
55
55
|
locations: (0, _availableDependencies.default)(course.dependencies, settings)
|
|
56
56
|
}), course.intervals && {
|
|
@@ -69,7 +69,7 @@ function _course(course, teachersList, groupsList, settings) {
|
|
|
69
69
|
if (groupsList.indexOf(gId) != -1) return acc.concat(gId);
|
|
70
70
|
return acc;
|
|
71
71
|
}, []);
|
|
72
|
-
if (doc.teachers.length + doc.groups.length !== (course.groups || []).length) throw new Error("Length of teachers + groups does not match length of groups in input for course ".concat(course[idKey]));
|
|
72
|
+
if (((_doc$teachers$length = (_doc$teachers = doc.teachers) === null || _doc$teachers === void 0 ? void 0 : _doc$teachers.length) !== null && _doc$teachers$length !== void 0 ? _doc$teachers$length : 0) + ((_doc$groups$length = (_doc$groups = doc.groups) === null || _doc$groups === void 0 ? void 0 : _doc$groups.length) !== null && _doc$groups$length !== void 0 ? _doc$groups$length : 0) !== (course.groups || []).length) throw new Error("(RS::V2::From::Dependencies) Length of teachers + groups does not match length of groups in input for course ".concat(course[idKey]));
|
|
73
73
|
if ((course.events || []).length) doc.events = (0, _courseEvents.default)(course.events, course, teachersList, groupsList, settings);
|
|
74
74
|
return doc;
|
|
75
75
|
}
|
|
@@ -80,11 +80,13 @@ var reduceCourses = function reduceCourses(courses, teachersList, groupsList, se
|
|
|
80
80
|
if (Array.isArray(course)) {
|
|
81
81
|
var _overlapGroup = overlapGroup++;
|
|
82
82
|
|
|
83
|
-
return acc.concat(course.
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
return acc.concat(course.reduce((acc, innerCourse) => {
|
|
84
|
+
if (!('events' in innerCourse)) return acc;
|
|
85
|
+
return acc.concat(_course(innerCourse, teachersList, groupsList, settings, _overlapGroup));
|
|
86
|
+
}, []));
|
|
86
87
|
}
|
|
87
88
|
|
|
89
|
+
if (!('events' in course)) return acc;
|
|
88
90
|
return acc.concat(_course(course, teachersList, groupsList, settings));
|
|
89
91
|
}, []);
|
|
90
92
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"collections.js","mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAWA,SAASA,OAAT,CAAiBC,MAAjB,EACiBC,YADjB,EAEiBC,UAFjB,EAGiBC,QAHjB,EAImD;EAAA;;EAAA,IAAlCC,YAAkC,uEAAJ,IAAI;EAEjD,IAAMC,KAAK,GAAqBF,QAAQ,CAACG,eAAzC;EAEA,IAAI,CAAED,KAAN,EACE,MAAM,IAAIE,KAAJ,CAAU,kFAAV,CAAN;EAEF,IAAI,CAAEP,MAAM,CAACK,KAAD,CAAZ,EACE,MAAM,IAAIE,KAAJ,CAAU,4DAAV,CAAN;;EAEA,IAAIC,GAAG;IACLC,GAAG,EAA2CT,MAAM,CAACK,KAAD;EAD/C,GAEDD,YAAY,IAAI,IAAjB,IAA8C;IAAEA,YAAY,EAAKA,YAAY,CAACM,QAAb;EAAnB,CAF5C,GAGFV,MAAM,CAACW,IAAP,IAA8C;IAAEC,WAAW,EAAMZ,MAAM,CAACW;EAA1B,CAH5C,GAIFX,MAAM,CAACa,OAAP,IAA8C;IAAEA,OAAO,EAAUb,MAAM,CAACa;EAA1B,CAJ5C,GAKFb,MAAM,CAACc,KAAP,IAA8C;IAAEA,KAAK,EAAYd,MAAM,CAACc;EAA1B,CAL5C,GAMF,oBAAqBd,MAArB,IAA8C;IAAEe,cAAc,EAAG,2BAAYf,MAAM,CAACe,cAAnB;EAAnB,CAN5C,GAOF,aAAqBf,MAArB,IAA8C;IAAEgB,OAAO,EAAUhB,MAAM,CAACgB;EAA1B,CAP5C,GAQF,YAAqBhB,MAArB,IAA8C;IAAEiB,MAAM,EAAWjB,MAAM,CAACiB;EAA1B,CAR5C,GASF,qBAAqBjB,MAArB,IAA8C;IAAEkB,eAAe,2BAAElB,MAAM,CAACkB,eAAT,0DAAE,sBAAwBR,QAAxB;EAAnB,CAT5C,GAUFV,MAAM,CAACmB,YAAP,IAA8C;IAAEC,SAAS,EAAQ,oCAAsBpB,MAAM,CAACmB,YAA7B,EAA2ChB,QAA3C;EAAnB,CAV5C,GAWFH,MAAM,CAACqB,SAAP,IAA8C;IAAEA,SAAS,EAAQ,wBAAUrB,MAAM,CAACqB,SAAjB;EAAnB,CAX5C,GAYFrB,MAAM,CAACsB,WAAP,IAA8C;IAAEA,WAAW,EAAM,0BAAWtB,MAAM,CAACsB,WAAlB;EAAnB,CAZ5C,GAaFtB,MAAM,CAACuB,IAAP,IAA8C;IAAEA,IAAI,EAAa,mBAAKvB,MAAM,CAACuB,IAAZ,EAAkBpB,QAAlB;EAAnB,CAb5C,CAAP;;EAgBAK,GAAG,CAACgB,QAAJ,qBAAexB,MAAM,CAACyB,MAAtB,mDAAe,eAAeC,IAAf,GAAsBC,MAAtB,CAA6B,CAACC,GAAD,EAAaC,GAAb,KAA4B;IACtE,IAAI5B,YAAY,CAAC6B,OAAb,CAAqBD,GAArB,KAA6B,CAAC,CAAlC,EACE,OAAOD,GAAG,CAACG,MAAJ,CAAWF,GAAX,CAAP;IACF,OAAOD,GAAP;EACD,CAJc,EAIZ,EAJY,CAAf;EAMApB,GAAG,CAACiB,MAAJ,sBAAazB,MAAM,CAACyB,MAApB,oDAAa,gBAAeC,IAAf,GAAsBC,MAAtB,CAA6B,CAACC,GAAD,EAAgBC,GAAhB,KAA+B;IACvE,IAAI3B,UAAU,CAAC4B,OAAX,CAAmBD,GAAnB,KAA2B,CAAC,CAAhC,EACE,OAAOD,GAAG,CAACG,MAAJ,CAAWF,GAAX,CAAP;IACF,OAAOD,GAAP;EACD,CAJY,EAIV,EAJU,CAAb;EAMA,IAAK,0CAACpB,GAAG,CAACgB,QAAL,kDAAC,cAAcQ,MAAf,uEAAyB,CAAzB,0CAA+BxB,GAAG,CAACiB,MAAnC,gDAA+B,YAAYO,MAA3C,mEAAqD,CAArD,CAAD,KAA8D,CAAChC,MAAM,CAACyB,MAAP,IAAiB,EAAlB,EAAsBO,MAAxF,EACE,MAAM,IAAIzB,KAAJ,wHAA2HP,MAAM,CAACK,KAAD,CAAjI,EAAN;EAEF,IAAI,CAACL,MAAM,CAACiC,MAAP,IAAiB,EAAlB,EAAsBD,MAA1B,EACExB,GAAG,CAACyB,MAAJ,GAAa,2BAAajC,MAAM,CAACiC,MAApB,EAA6BjC,MAA7B,EAAqCC,YAArC,EAAmDC,UAAnD,EAA+DC,QAA/D,CAAb;EAEF,OAAOK,GAAP;AACH;;AAED,IAAI0B,aAAa,GAAG,SAAhBA,aAAgB,CAACC,OAAD,EACClC,YADD,EAECC,UAFD,EAGCC,QAHD,EAI6B;EAAA,IAA5BC,YAA4B,uEAAL,CAAK;EAE/C,OAAO+B,OAAO,CAACR,MAAR,CAAe,CAACC,GAAD,EAAoC5B,MAApC,KAA8C;IAElE,IAAIoC,KAAK,CAACC,OAAN,CAAcrC,MAAd,CAAJ,EAA2B;MACzB,IAAIsC,aAAa,GAAGlC,YAAY,EAAhC;;MACA,OAAOwB,GAAG,CAACG,MAAJ,CAAW/B,MAAM,CAAC2B,MAAP,CAAc,CAACC,GAAD,EAAoCW,WAApC,KAAmD;QACjF,IAAI,EAAG,YAAYA,WAAf,CAAJ,EACE,OAAOX,GAAP;QACF,OAAOA,GAAG,CAACG,MAAJ,CAAWhC,OAAO,CAACwC,WAAD,EAActC,YAAd,EAA4BC,UAA5B,EAAwCC,QAAxC,EAAkDmC,aAAlD,CAAlB,CAAP;MACD,CAJiB,EAIf,EAJe,CAAX,CAAP;IAMD;;IAED,IAAI,EAAG,YAAYtC,MAAf,CAAJ,EACE,OAAO4B,GAAP;IAEF,OAAOA,GAAG,CAACG,MAAJ,CAAWhC,OAAO,CAACC,MAAD,EAASC,YAAT,EAAuBC,UAAvB,EAAmCC,QAAnC,CAAlB,CAAP;EACD,CAhBM,EAgBJ,EAhBI,CAAP;AAiBD,CAvBD;;eAyBe+B,a","names":["_course","course","teachersList","groupsList","settings","overlapGroup","idKey","collectionIdKey","Error","doc","ids","toString","name","displayName","subject","color","minBreakLength","density","weight","potentialCenter","dependencies","locations","intervals","lockedTimes","days","teachers","groups","flat","reduce","acc","gId","indexOf","concat","length","events","reduceCourses","courses","Array","isArray","_overlapGroup","innerCourse"],"sourceRoot":"","sources":["../../../../src/RS/v2/from/collections.ts"],"sourcesContent":[null]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { Settings } from '../types/settings';
|
|
2
2
|
import { CourseEvent } from '../types/course-events';
|
|
3
3
|
import { Collection } from '../types/collections';
|
|
4
|
-
|
|
4
|
+
import { Types as CoreTypes } from '../../../core/types';
|
|
5
|
+
import { Serialized, Deserialized } from '../../../core/types/common';
|
|
6
|
+
declare type RetrunType = Deserialized<CoreTypes.courseEvent> & Serialized<Pick<CoreTypes.courseEvent, 'teachers' | 'groups'>>;
|
|
7
|
+
declare const _default: (courseEvents: (CourseEvent | number)[], course: Collection, teachersList: string[], groupsList: string[], settings: Settings) => RetrunType[];
|
|
5
8
|
export default _default;
|
|
@@ -28,9 +28,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
28
28
|
var _default = (courseEvents, course, teachersList, groupsList, settings) => {
|
|
29
29
|
var collectionIdKey = settings.collectionIdKey;
|
|
30
30
|
var eventIdKey = settings.eventIdKey;
|
|
31
|
-
if (!collectionIdKey) throw new Error('
|
|
31
|
+
if (!collectionIdKey) throw new Error('(RS::V2::From::Dependencies) Property "collectionIdKey" in settings is undefined');
|
|
32
32
|
return courseEvents.reduce((acc, event) => {
|
|
33
|
-
var _event$groups, _event$groups2;
|
|
33
|
+
var _event$groups, _event$groups2, _event$potentialCente;
|
|
34
34
|
|
|
35
35
|
switch (typeof event) {
|
|
36
36
|
case 'number':
|
|
@@ -65,7 +65,7 @@ var _default = (courseEvents, course, teachersList, groupsList, settings) => {
|
|
|
65
65
|
fixedStart = true;
|
|
66
66
|
start = (0, _getDate.default)(day, event.start.toFixed(2).replace('.', ':'));
|
|
67
67
|
end = start.clone().add(event.length, 'minutes');
|
|
68
|
-
if (start.day() != end.day()) throw new Error('
|
|
68
|
+
if (start.day() != end.day()) throw new Error('(RS::V2::From::Dependencies) Course event have fixed time such that the event span multiple days');
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
return acc.concat(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
@@ -86,7 +86,7 @@ var _default = (courseEvents, course, teachersList, groupsList, settings) => {
|
|
|
86
86
|
}), 'weight' in event && {
|
|
87
87
|
weight: event.weight
|
|
88
88
|
}), 'potentialCenter' in event && {
|
|
89
|
-
potentialCenter: event.potentialCenter
|
|
89
|
+
potentialCenter: (_event$potentialCente = event.potentialCenter) === null || _event$potentialCente === void 0 ? void 0 : _event$potentialCente.toString()
|
|
90
90
|
}), 'minBreakLength' in event && {
|
|
91
91
|
minBreakLength: (0, _breakLengths.default)(event.minBreakLength)
|
|
92
92
|
}), 'maxLengthVariance' in event && {
|
|
@@ -106,7 +106,7 @@ var _default = (courseEvents, course, teachersList, groupsList, settings) => {
|
|
|
106
106
|
}));
|
|
107
107
|
|
|
108
108
|
default:
|
|
109
|
-
throw new Error("
|
|
109
|
+
throw new Error("(RS::V2::From::Dependencies) Course event is neither number nor object, course ".concat(course[collectionIdKey]));
|
|
110
110
|
}
|
|
111
111
|
}, []);
|
|
112
112
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"course-events.js","mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"file":"course-events.js","mappings":"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","names":["courseEvents","course","teachersList","groupsList","settings","collectionIdKey","eventIdKey","Error","reduce","acc","event","concat","duration","ids","length","Object","assign","teachers","groups","flat","gId","includes","fixedStart","start","end","day","toFixed","replace","clone","add","preferredDuration","parked","name","displayName","density","weight","potentialCenter","toString","minBreakLength","durationVariance","maxLengthVariance","intervals","lockedTimes","dependencies","locations","days"],"sourceRoot":"","sources":["../../../../src/RS/v2/from/course-events.ts"],"sourcesContent":[null]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Settings } from '../types/settings';
|
|
2
2
|
import { Day } from '../types/days';
|
|
3
|
-
declare const _default: (days: Day
|
|
3
|
+
declare const _default: (days: (Day | number)[], settings: Settings) => import("../../../core/types/days").Day[];
|
|
4
4
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"days.js","mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"days.js","mappings":";;;;;;;eAKe,CAACA,IAAD,EACCC,QADD,KACuB;EAEpC,OAAOD,IAAI,CAACE,GAAL,CAAUC,GAAD,IAAuB;IACrC,QAAO,OAAOA,GAAd;MACE,KAAK,QAAL;QACE,OAAO;UAAEA;QAAF,CAAP;;MACF,KAAK,QAAL;QACE,OAAOA,GAAP;;MACF;QACE,MAAM,IAAIC,KAAJ,CAAU,iCAAV,CAAN;IANJ;EAQD,CATM,CAAP;AAUD,C","names":["days","settings","map","day","Error"],"sourceRoot":"","sources":["../../../../src/RS/v2/from/days.ts"],"sourcesContent":[null]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Dependency } from '../types/dependencies';
|
|
2
2
|
import { Settings } from '../types/settings';
|
|
3
|
-
|
|
3
|
+
import { Types as CoreTypes } from '../../../core/types';
|
|
4
|
+
import { Deserialized } from '../../../core/types/common';
|
|
5
|
+
declare const _default: (dependencies: (Dependency | string)[], settings: Settings) => Deserialized<CoreTypes.location>[];
|
|
4
6
|
export default _default;
|
|
@@ -23,7 +23,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
23
23
|
|
|
24
24
|
var _default = (dependencies, settings) => {
|
|
25
25
|
var idKey = settings.dependencyIdKey;
|
|
26
|
-
if (!idKey) throw new Error('
|
|
26
|
+
if (!idKey) throw new Error('(RS::V2::From::Dependencies) Property "dependencyIdKey" in settings is undefined');
|
|
27
27
|
return dependencies.map(dependency => {
|
|
28
28
|
switch (typeof dependency) {
|
|
29
29
|
case 'string':
|
|
@@ -32,7 +32,7 @@ var _default = (dependencies, settings) => {
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
case 'object':
|
|
35
|
-
if (!dependency[idKey]) throw new Error('A dependency does not have a unique key');
|
|
35
|
+
if (!dependency[idKey]) throw new Error('(RS::V2::From::Dependencies) A dependency does not have a unique key');
|
|
36
36
|
return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
37
37
|
ids: dependency[idKey]
|
|
38
38
|
}, 'minBreakLength' in dependency && {
|
|
@@ -50,7 +50,7 @@ var _default = (dependencies, settings) => {
|
|
|
50
50
|
});
|
|
51
51
|
|
|
52
52
|
default:
|
|
53
|
-
throw new Error('
|
|
53
|
+
throw new Error('(RS::V2::From::Dependencies) Dependency is neither string nor object');
|
|
54
54
|
}
|
|
55
55
|
}, []);
|
|
56
56
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"dependencies.js","mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;eAQe,CAACA,YAAD,EACCC,QADD,KACkE;EAC/E,IAAMC,KAAK,GAAqBD,QAAQ,CAACE,eAAzC;EAEA,IAAI,CAAED,KAAN,EACE,MAAM,IAAIE,KAAJ,CAAU,kFAAV,CAAN;EAEF,OAAOJ,YAAY,CAACK,GAAb,CAAiBC,UAAU,IAAG;IACnC,QAAO,OAAOA,UAAd;MACE,KAAK,QAAL;QACE,OAAO;UACLC,GAAG,EAAQD;QADN,CAAP;;MAGF,KAAK,QAAL;QAEE,IAAI,CAAEA,UAAU,CAACJ,KAAD,CAAhB,EACE,MAAM,IAAIE,KAAJ,CAAU,sEAAV,CAAN;QAEF;UACEG,GAAG,EAAoDD,UAAU,CAACJ,KAAD;QADnE,GAEK,oBAAoBI,UAApB,IAAkC;UAAEE,cAAc,EAAE,2BAAYF,UAAU,CAACE,cAAvB;QAAlB,CAFvC,GAGKF,UAAU,CAACG,IAAX,IAAkC;UAAEC,WAAW,EAAKJ,UAAU,CAACG;QAA7B,CAHvC,GAIKH,UAAU,CAACK,IAAX,IAAkC;UAAEA,IAAI,EAAYL,UAAU,CAACK;QAA7B,CAJvC,GAKKL,UAAU,CAACM,IAAX,IAAkC;UAAEA,IAAI,EAAY,mBAAKN,UAAU,CAACM,IAAhB,EAAsBX,QAAtB;QAAlB,CALvC,GAMKK,UAAU,CAACO,SAAX,IAAkC;UAAEA,SAAS,EAAO,wBAAUP,UAAU,CAACO,SAArB;QAAlB,CANvC,GAOKP,UAAU,CAACQ,WAAX,IAAkC;UAAEA,WAAW,EAAK,0BAAWR,UAAU,CAACQ,WAAtB;QAAlB,CAPvC;;MASF;QACE,MAAM,IAAIV,KAAJ,CAAU,sEAAV,CAAN;IApBJ;EAuBD,CAxBM,EAwBJ,EAxBI,CAAP;AA0BD,C","names":["dependencies","settings","idKey","dependencyIdKey","Error","map","dependency","ids","minBreakLength","name","displayName","area","days","intervals","lockedTimes"],"sourceRoot":"","sources":["../../../../src/RS/v2/from/dependencies.ts"],"sourcesContent":[null]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Group } from '../types/groups';
|
|
2
2
|
import { Settings } from '../types/settings';
|
|
3
3
|
import { Group as SourceGroup } from '../../../core/types/groups';
|
|
4
|
-
|
|
4
|
+
import { Deserialized } from '../../../core/types/common';
|
|
5
|
+
declare const _default: (groups: Group[], settings: Settings) => Deserialized<SourceGroup>[];
|
|
5
6
|
export default _default;
|
|
@@ -23,13 +23,13 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
23
23
|
|
|
24
24
|
var _default = (groups, settings) => {
|
|
25
25
|
var idKey = settings.groupIdKey;
|
|
26
|
-
if (!idKey) throw new Error('
|
|
26
|
+
if (!idKey) throw new Error('(RS::V2::From::Groups) Property "groupIdKey" in settings is undefined');
|
|
27
27
|
return groups.reduce((acc, group) => {
|
|
28
28
|
var _group$days, _group$intervals, _group$lockedTimes;
|
|
29
29
|
|
|
30
|
-
if (!group.group_type) throw new Error('
|
|
31
|
-
if (!['personal', 'classes'].includes(group.group_type)) throw new Error('Allowed values of "group_type" are "personal" and "classes"');
|
|
32
|
-
if (!group[idKey]) throw new Error('A group does not have a unique key');
|
|
30
|
+
if (!group.group_type) throw new Error('(RS::V2::From::Groups) Property "group_type" must exist on all entries in "groups" array');
|
|
31
|
+
if (!['personal', 'classes'].includes(group.group_type)) throw new Error('(RS::V2::From::Groups) Allowed values of "group_type" are "personal" and "classes"');
|
|
32
|
+
if (!group[idKey]) throw new Error('(RS::V2::From::Groups) A group does not have a unique key');
|
|
33
33
|
if (group.group_type != 'classes') return acc;
|
|
34
34
|
return acc.concat(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
35
35
|
ids: group[idKey]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.js","mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"groups.js","mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;eAQe,CAACA,MAAD,EACCC,QADD,KACyB;EACtC,IAAMC,KAAK,GAAGD,QAAQ,CAACE,UAAvB;EAEA,IAAI,CAAED,KAAN,EACE,MAAM,IAAIE,KAAJ,CAAU,uEAAV,CAAN;EAEF,OAAOJ,MAAM,CAACK,MAAP,CAAc,CAACC,GAAD,EAAoCC,KAApC,KAAoD;IAAA;;IAEvE,IAAI,CAAEA,KAAK,CAACC,UAAZ,EACE,MAAM,IAAIJ,KAAJ,CAAU,0FAAV,CAAN;IAEF,IAAI,CAAE,CAAC,UAAD,EAAa,SAAb,EAAwBK,QAAxB,CAAiCF,KAAK,CAACC,UAAvC,CAAN,EACE,MAAM,IAAIJ,KAAJ,CAAU,oFAAV,CAAN;IAEF,IAAI,CAAEG,KAAK,CAACL,KAAD,CAAX,EACE,MAAM,IAAIE,KAAJ,CAAU,2DAAV,CAAN;IAEF,IAAIG,KAAK,CAACC,UAAN,IAAoB,SAAxB,EAAmC,OAAOF,GAAP;IAEnC,OAAOA,GAAG,CAACI,MAAJ;MACLC,GAAG,EAAuEJ,KAAK,CAACL,KAAD;IAD1E,GAEFK,KAAK,CAACK,IAAN,IAAyC;MAAEC,WAAW,EAAiBN,KAAK,CAACK;IAApC,CAFvC,GAGF,6BAAgCL,KAAhC,IAAyC;MAAEO,uBAAuB,EAAKP,KAAK,CAACO;IAApC,CAHvC,GAIF,wBAAgCP,KAAhC,IAAyC;MAAEQ,kBAAkB,EAAUR,KAAK,CAACQ;IAApC,CAJvC,GAKF,6BAAgCR,KAAhC,IAAyC;MAAES,uBAAuB,EAAKT,KAAK,CAACS;IAApC,CALvC,GAMF,oBAAgCT,KAAhC,IAAyC;MAAEU,cAAc,EAAc,2BAAYV,KAAK,CAACU,cAAlB;IAA9B,CANvC,GAOF,gCAAgCV,KAAhC,IAAyC;MAAEW,0BAA0B,EAAEX,KAAK,CAACW;IAApC,CAPvC,GAQF,YAAgCX,KAAhC,IAAyC;MAAEY,MAAM,EAAsBZ,KAAK,CAACY;IAApC,CARvC,GASF,UAAgCZ,KAAhC,IAAyC;MAAEa,IAAI,EAAwBb,KAAK,CAACa;IAApC,CATvC,GAUF,qBAAK,CAACC,IAAN,4DAAYC,MAAZ,KAAyC;MAAED,IAAI,EAAwB,mBAAKd,KAAK,CAACc,IAAX,EAAiBpB,QAAjB;IAA9B,CAVvC,GAWF,0BAAK,CAACsB,SAAN,sEAAiBD,MAAjB,KAAyC;MAAEC,SAAS,EAAmB,wBAAUhB,KAAK,CAACgB,SAAhB;IAA9B,CAXvC,GAYF,4BAAK,CAACC,WAAN,0EAAmBF,MAAnB,KAAyC;MAAEE,WAAW,EAAiB,0BAAWjB,KAAK,CAACiB,WAAjB;IAA9B,CAZvC,EAAP;EAcD,CA3BM,EA2BJ,EA3BI,CAAP;AA4BD,C","names":["groups","settings","idKey","groupIdKey","Error","reduce","acc","group","group_type","includes","concat","ids","name","displayName","forbidOverlappingEvents","maxNumWorkingHours","maxNumDailyWorkingHours","minBreakLength","disableDayLengthPunishment","weight","rank","days","length","intervals","lockedTimes"],"sourceRoot":"","sources":["../../../../src/RS/v2/from/groups.ts"],"sourcesContent":[null]}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
export default class {
|
|
2
2
|
static availableDependency: (data: any, settings: import("../types/settings").Settings) => any;
|
|
3
|
-
static courseEvent: (courseEvents: (number | import("../types/course-events").CourseEvent)[], course: import("../types/collections").Collection, teachersList: string[], groupsList: string[], settings: import("../types/settings").Settings) =>
|
|
4
|
-
static collection: (courses: (import("../types/collections").Collection | import("../types/collections").Collection[])[], teachersList: string[], groupsList: string[], settings: import("../types/settings").Settings, overlapGroup?: number) => import("../../../core/types/courses").Course[];
|
|
5
|
-
static day: (days:
|
|
6
|
-
static dependency: (dependencies: (string | import("../types/dependencies").Dependency)[], settings: import("../types/settings").Settings) =>
|
|
7
|
-
static group: (groups: import("../types/groups").Group[], settings: import("../types/settings").Settings) => import("../../../core/types/groups").Group[];
|
|
3
|
+
static courseEvent: (courseEvents: (number | import("../types/course-events").CourseEvent)[], course: import("../types/collections").Collection, teachersList: string[], groupsList: string[], settings: import("../types/settings").Settings) => (import("../../../core/types/common").Deserialized<import("../../../core/types/course-events").CourseEvent> & import("../../../core/types/common").Serialized<Pick<import("../../../core/types/course-events").CourseEvent, "groups" | "teachers">>)[];
|
|
4
|
+
static collection: (courses: (import("../types/course-events").CourseEvent | import("../types/collections").Collection | (import("../types/course-events").CourseEvent | import("../types/collections").Collection)[])[], teachersList: string[], groupsList: string[], settings: import("../types/settings").Settings, overlapGroup?: number) => import("../../../core/types/common").Deserialized<import("../../../core/types/courses").Course>[];
|
|
5
|
+
static day: (days: (number | import("../types/days").Day)[], settings: import("../types/settings").Settings) => import("../../../core/types/days").Day[];
|
|
6
|
+
static dependency: (dependencies: (string | import("../types/dependencies").Dependency)[], settings: import("../types/settings").Settings) => import("../../../core/types/common").Deserialized<import("../../../core/types/locations").Location>[];
|
|
7
|
+
static group: (groups: import("../types/groups").Group[], settings: import("../types/settings").Settings) => import("../../../core/types/common").Deserialized<import("../../../core/types/groups").Group>[];
|
|
8
8
|
static interval: (intervals: import("../types/intervals").Interval[]) => import("../../../core/types/intervals").Interval[];
|
|
9
|
-
static lockedTime: (lockedTimes: import("../types/locked-times").LockedTime[]) => import("../../../core/types/locked-times").LockedTime[];
|
|
9
|
+
static lockedTime: (lockedTimes: import("../types/locked-times").LockedTime[]) => import("../../../core/types/common").Deserialized<import("../../../core/types/locked-times").LockedTime>[];
|
|
10
10
|
static placement: (configuration: import("../types/configurations").Configuration, options?: {
|
|
11
11
|
idKey?: "id" | "_id" | "ids" | undefined;
|
|
12
12
|
}) => [Omit<import("../../../core/types/course-events").CourseEvent, "preferredDuration">[], import("../../../core/types/locked-times").LockedTime[]];
|
|
13
13
|
static schedules: (schedule: import("../types/schedules").Schedule) => import("../../../core/types/common").Deserialized<import("../../../core/types/divisions").Division>;
|
|
14
|
-
static setting: (settings: import("../types/settings").Settings, _default: import("../types/default").Default) => import("../../../core/types/division-settings").DivisionSettings
|
|
15
|
-
static teacher: (teachers: import("../types/groups").Group[], settings:
|
|
14
|
+
static setting: (settings: import("../types/settings").Settings, _default: import("../types/default").Default) => Omit<import("../../../core/types/division-settings").DivisionSettings, "belongsTo" | "defaultLunch">;
|
|
15
|
+
static teacher: (teachers: import("../types/groups").Group[], settings: import("../types/settings").Settings) => import("../../../core/types/common").Deserialized<import("../../../core/types/teachers").Teacher>[];
|
|
16
16
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LockedTime } from '../types/locked-times';
|
|
2
2
|
import { LockedTime as SourceLockedTime } from '../../../core/types/locked-times';
|
|
3
|
-
|
|
3
|
+
import { Deserialized } from '../../../core/types/common';
|
|
4
|
+
declare const _default: (lockedTimes: LockedTime[]) => Deserialized<SourceLockedTime>[];
|
|
4
5
|
export default _default;
|
|
@@ -11,9 +11,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
11
11
|
|
|
12
12
|
var _default = lockedTimes => {
|
|
13
13
|
return lockedTimes.reduce((acc, lockedTime) => {
|
|
14
|
-
if (lockedTime.day == null) throw new Error('A locked time missing days field');
|
|
15
|
-
if (lockedTime.start == null) throw new Error('A locked time missing start field');
|
|
16
|
-
if (!lockedTime.length) throw new Error('A locked time missing length field');
|
|
14
|
+
if (lockedTime.day == null) throw new Error('(RS::V2::From::Dependencies) A locked time missing days field');
|
|
15
|
+
if (lockedTime.start == null) throw new Error('(RS::V2::From::Dependencies) A locked time missing start field');
|
|
16
|
+
if (!lockedTime.length) throw new Error('(RS::V2::From::Dependencies) A locked time missing length field');
|
|
17
17
|
var start = (0, _getDate.default)(lockedTime.day, lockedTime.start.toFixed(2).replace('.', ':'));
|
|
18
18
|
var end = start.clone().add(lockedTime.length, 'minutes');
|
|
19
19
|
return acc.concat({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locked-times.js","mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"locked-times.js","mappings":";;;;;;;AAAA;;;;eAOgBA,WAAD,IAA8B;EAC3C,OAAOA,WAAW,CAACC,MAAZ,CAAmB,CAACC,GAAD,EAAwCC,UAAxC,KAAsD;IAE9E,IAAIA,UAAU,CAACC,GAAX,IAAkB,IAAtB,EACE,MAAM,IAAIC,KAAJ,CAAU,+DAAV,CAAN;IAEF,IAAIF,UAAU,CAACG,KAAX,IAAoB,IAAxB,EACE,MAAM,IAAID,KAAJ,CAAU,gEAAV,CAAN;IAEF,IAAI,CAAEF,UAAU,CAACI,MAAjB,EACE,MAAM,IAAIF,KAAJ,CAAU,iEAAV,CAAN;IAEF,IAAMC,KAAK,GAAG,sBAAQH,UAAU,CAACC,GAAnB,EAAwBD,UAAU,CAACG,KAAX,CAAkBE,OAAlB,CAA0B,CAA1B,EAA6BC,OAA7B,CAAqC,GAArC,EAA0C,GAA1C,CAAxB,CAAd;IACA,IAAMC,GAAG,GAAKJ,KAAK,CAACK,KAAN,GAAcC,GAAd,CAAkBT,UAAU,CAACI,MAA7B,EAAqC,SAArC,CAAd;IAEA,OAAOL,GAAG,CAACW,MAAJ,CAAW;MAChBC,WAAW,EAAEX,UAAU,CAACY,IADR;MAEhBT,KAAK,EAAQA,KAFG;MAGhBI,GAAG,EAAUA;IAHG,CAAX,CAAP;EAKD,CAnBM,EAmBJ,EAnBI,CAAP;AAoBD,C","names":["lockedTimes","reduce","acc","lockedTime","day","Error","start","length","toFixed","replace","end","clone","add","concat","displayName","name"],"sourceRoot":"","sources":["../../../../src/RS/v2/from/locked-times.ts"],"sourcesContent":[null]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placements.js","mappings":";;;;;;;AAAA;;AACA;;;;eAYe,kBAACA,aAAD,EAAkH;EAAA,IAAnFC,OAAmF,uEAAhE,EAAgE;EAE/H,IAAMC,KAAK,
|
|
1
|
+
{"version":3,"file":"placements.js","mappings":";;;;;;;AAAA;;AACA;;;;eAYe,kBAACA,aAAD,EAAkH;EAAA,IAAnFC,OAAmF,uEAAhE,EAAgE;EAE/H,IAAMC,KAAK,GAAED,OAAO,CAACC,KAAR,IAAiB,IAA9B;EAEA,IAAM;IAAEC;EAAF,IAAaH,aAAb,aAAaA,aAAb,cAAaA,aAAb,GAA8B,EAApC;EAEA,OAAOI,gBAAEC,MAAF,CAASF,MAAT,EAAiB,OAAkFG,KAAlF,KAAsG;IAAA;;IAAA,IAArG,CAACC,QAAD,EAAWC,SAAX,CAAqG;IAC5H,IAAM,CAACC,UAAD,EAAaC,EAAb,IAAmBJ,KAAK,CAACI,EAAN,CAASC,KAAT,CAAe,GAAf,CAAzB;IACA,IAAIF,UAAU,IAAI,QAAlB,EACEF,QAAQ,GAAGA,QAAQ,CAACK,MAAT,CAAgB;MACzB,CAACV,KAAD,GAAcQ,EADW;MAEzBG,MAAM,EAAQ,KAFW;MAGzBC,WAAW,yBAAGR,KAAK,CAACS,YAAT,qEAAyB,EAHX;MAIzBC,KAAK,EAASC,gBAAOC,GAAP,CAAW,kBAAX,EAA+BC,GAA/B,CAAmCb,KAAK,CAACc,GAAzC,EAA8C,MAA9C,EAAsDD,GAAtD,CAA0Db,KAAK,CAACU,KAAhE,EAAuE,SAAvE,EAAkFK,WAAlF,EAJW;MAKzBC,GAAG,EAAWL,gBAAOC,GAAP,CAAW,kBAAX,EAA+BC,GAA/B,CAAmCb,KAAK,CAACc,GAAzC,EAA8C,MAA9C,EAAsDD,GAAtD,CAA0Db,KAAK,CAACgB,GAAhE,EAAqE,SAArE,EAAgFD,WAAhF;IALW,CAAhB,CAAX;IAOF,IAAIZ,UAAU,IAAI,aAAlB,EACED,SAAS,GAAGA,SAAS,CAACI,MAAV,CAAiB;MAC3B,CAACV,KAAD,GAAcQ,EADa;MAE3BM,KAAK,EAASC,gBAAOC,GAAP,CAAW,kBAAX,EAA+BC,GAA/B,CAAmCb,KAAK,CAACc,GAAzC,EAA8C,MAA9C,EAAsDD,GAAtD,CAA0Db,KAAK,CAACU,KAAhE,EAAuE,SAAvE,EAAkFK,WAAlF,EAFa;MAG3BC,GAAG,EAAWL,gBAAOC,GAAP,CAAW,kBAAX,EAA+BC,GAA/B,CAAmCb,KAAK,CAACc,GAAzC,EAA8C,MAA9C,EAAsDD,GAAtD,CAA0Db,KAAK,CAACgB,GAAhE,EAAqE,SAArE,EAAgFD,WAAhF;IAHa,CAAjB,CAAZ;IAKF,OAAO,CAACd,QAAD,EAAWC,SAAX,CAAP;EACD,CAjBM,EAiBJ,CAAC,EAAD,EAAK,EAAL,CAjBI,CAAP;AAkBD,C","names":["configuration","options","idKey","events","_","reduce","event","eventAcc","lockedAcc","collection","id","split","concat","parked","inLocations","dependencies","start","moment","utc","add","day","toISOString","end"],"sourceRoot":"","sources":["../../../../src/RS/v2/from/placements.ts"],"sourcesContent":[null]}
|
|
@@ -5,11 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
|
+
|
|
8
10
|
var _dependencies = _interopRequireDefault(require("./dependencies"));
|
|
9
11
|
|
|
10
|
-
var
|
|
12
|
+
var _teachers2 = _interopRequireDefault(require("./teachers"));
|
|
11
13
|
|
|
12
|
-
var
|
|
14
|
+
var _groups2 = _interopRequireDefault(require("./groups"));
|
|
13
15
|
|
|
14
16
|
var _collections = _interopRequireDefault(require("./collections"));
|
|
15
17
|
|
|
@@ -34,36 +36,43 @@ var _default2 = schedule => {
|
|
|
34
36
|
groups,
|
|
35
37
|
events,
|
|
36
38
|
areas
|
|
37
|
-
}
|
|
39
|
+
} = {}
|
|
38
40
|
} = schedule;
|
|
39
41
|
var [configuration, ...meta] = schedule.output || [];
|
|
40
|
-
var teachers;
|
|
41
|
-
var locations;
|
|
42
|
-
if (!settings) throw new Error("Settings cannot be undefined");
|
|
43
|
-
if (dependencies) locations = (0, _dependencies.default)(dependencies, settings);
|
|
44
|
-
if (groups) teachers = (0, _teachers.default)(groups, settings);
|
|
45
|
-
if (groups) groups = (0, _groups.default)(groups, settings);
|
|
46
|
-
if (events) events = (0, _collections.default)(events, (teachers || []).map(x => x.ids), (groups || []).map(x => x.ids), settings);
|
|
47
|
-
settings = (0, _settings.default)(settings, _default);
|
|
48
42
|
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
var _courses;
|
|
44
|
+
|
|
45
|
+
var _groups;
|
|
46
|
+
|
|
47
|
+
var _teachers;
|
|
51
48
|
|
|
49
|
+
var _locations;
|
|
50
|
+
|
|
51
|
+
if (!settings) throw new Error("(RS::V2::From::Dependencies) Settings cannot be undefined");
|
|
52
|
+
if (dependencies) _locations = (0, _dependencies.default)(dependencies, settings);
|
|
53
|
+
if (groups) _teachers = (0, _teachers2.default)(groups, settings);
|
|
54
|
+
if (groups) _groups = (0, _groups2.default)(groups, settings);
|
|
55
|
+
if (events) _courses = (0, _collections.default)(events, (_teachers || []).map(x => x.ids).filter(Boolean), (_groups || []).map(x => x.ids).filter(Boolean), settings);
|
|
56
|
+
|
|
57
|
+
if (configuration) {
|
|
52
58
|
var [_placements] = (0, _placements2.default)(configuration, {
|
|
53
59
|
idKey: 'ids'
|
|
54
60
|
});
|
|
55
61
|
var i = -1;
|
|
56
|
-
|
|
62
|
+
events === null || events === void 0 ? void 0 : events.forEach(collection => {
|
|
57
63
|
var _collection$events;
|
|
58
64
|
|
|
65
|
+
if (Array.isArray(collection)) return;
|
|
66
|
+
if (!('events' in collection)) return;
|
|
59
67
|
(_collection$events = collection.events) === null || _collection$events === void 0 ? void 0 : _collection$events.forEach(event => {
|
|
68
|
+
if (_lodash.default.isNumber(event)) return;
|
|
60
69
|
i++;
|
|
61
70
|
|
|
62
71
|
var _placedEvent = _placements.find(_ref => {
|
|
63
72
|
var {
|
|
64
73
|
ids
|
|
65
74
|
} = _ref;
|
|
66
|
-
return ids == event.
|
|
75
|
+
return ids == event.id;
|
|
67
76
|
});
|
|
68
77
|
|
|
69
78
|
if (_placedEvent) return Object.assign(event, _placedEvent);
|
|
@@ -72,18 +81,18 @@ var _default2 = schedule => {
|
|
|
72
81
|
});
|
|
73
82
|
}
|
|
74
83
|
|
|
75
|
-
return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({},
|
|
76
|
-
locations
|
|
77
|
-
}),
|
|
78
|
-
teachers
|
|
84
|
+
return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, _locations && {
|
|
85
|
+
locations: _locations
|
|
86
|
+
}), _teachers && {
|
|
87
|
+
teachers: _teachers
|
|
79
88
|
}), groups && {
|
|
80
|
-
groups
|
|
89
|
+
groups: _groups
|
|
81
90
|
}), events && {
|
|
82
|
-
courses:
|
|
91
|
+
courses: _courses
|
|
83
92
|
}), areas && {
|
|
84
93
|
area: areas
|
|
85
94
|
}), settings && {
|
|
86
|
-
settings
|
|
95
|
+
settings: (0, _settings.default)(settings, _default)
|
|
87
96
|
});
|
|
88
97
|
};
|
|
89
98
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.js","mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"schedules.js","mappings":";;;;;;;AAAA;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;gBAEgBA,QAAD,IAAyD;EACtE,IAAI;IACFC,KAAK,EAAE;MACLC,QADK;MAELC,OAAO,EAAEC,QAFJ;MAGLC,YAHK;MAILC,MAJK;MAKLC,MALK;MAMLC;IANK,IAOH;EARF,IASAR,QATJ;EAWA,IAAM,CAACS,aAAD,EAAgB,GAAGC,IAAnB,IAA2BV,QAAQ,CAACW,MAAT,IAAmB,EAApD;;EAEA,IAAIC,QAAJ;;EACA,IAAIC,OAAJ;;EACA,IAAIC,SAAJ;;EACA,IAAIC,UAAJ;;EAEA,IAAI,CAAEb,QAAN,EACE,MAAM,IAAIc,KAAJ,6DAAN;EAEF,IAAIX,YAAJ,EACEU,UAAU,GAAK,2BAAgBV,YAAhB,EAA8BH,QAA9B,CAAf;EACF,IAAII,MAAJ,EACEQ,SAAS,GAAM,wBAAYR,MAAZ,EAAoBJ,QAApB,CAAf;EACF,IAAII,MAAJ,EACEO,OAAO,GAAQ,sBAAUP,MAAV,EAAkBJ,QAAlB,CAAf;EACF,IAAIK,MAAJ,EACEK,QAAQ,GAAO,0BAAeL,MAAf,EACe,CAACO,SAAS,IAAI,EAAd,EAAkBG,GAAlB,CAAsBC,CAAC,IAAGA,CAAC,CAACC,GAA5B,EAAkCC,MAAlC,CAAyCC,OAAzC,CADf,EAEe,CAACR,OAAO,IAAI,EAAZ,EAAgBI,GAAhB,CAAoBC,CAAC,IAAIA,CAAC,CAACC,GAA3B,EAAiCC,MAAjC,CAAwCC,OAAxC,CAFf,EAGenB,QAHf,CAAf;;EAKF,IAAIO,aAAJ,EAAmB;IACjB,IAAM,CAACa,WAAD,IAAgB,0BAAcb,aAAd,EAA6B;MAAEc,KAAK,EAAE;IAAT,CAA7B,CAAtB;IAEA,IAAIC,CAAC,GAAW,CAAC,CAAjB;IAEAjB,MAAM,SAAN,UAAM,WAAN,kBAAM,CAAEkB,OAAR,CAAiBC,UAAD,IAAe;MAAA;;MAC7B,IAAIC,KAAK,CAACC,OAAN,CAAcF,UAAd,CAAJ,EACE;MAEF,IAAI,EAAG,YAAYA,UAAf,CAAJ,EACE;MAEF,gCAAU,CAACnB,MAAX,0EAAmBkB,OAAnB,CAA2BI,KAAK,IAAG;QACjC,IAAIC,gBAAEC,QAAF,CAAWF,KAAX,CAAJ,EACE;QAEFL,CAAC;;QACD,IAAMQ,YAAY,GAAGV,WAAW,CAACW,IAAZ,CAAiB;UAAA,IAAC;YAAEd;UAAF,CAAD;UAAA,OAAaA,GAAG,IAAIU,KAAK,CAACK,EAA1B;QAAA,CAAjB,CAArB;;QAEA,IAAIF,YAAJ,EACE,OAAOG,MAAM,CAACC,MAAP,CAAcP,KAAd,EAAqBG,YAArB,CAAP;QAEF,OAAOG,MAAM,CAACC,MAAP,CAAcP,KAAd,EAAqBP,WAAW,CAACE,CAAD,CAAhC,CAAP;MACD,CAXD;IAYD,CAnBD;EAoBD;;EAED,+FACKT,UAAU,IAAI;IAAEsB,SAAS,EAAEtB;EAAb,CADnB,GAEKD,SAAS,IAAK;IAAEwB,QAAQ,EAAGxB;EAAb,CAFnB,GAGKR,MAAM,IAAQ;IAAEA,MAAM,EAAKO;EAAb,CAHnB,GAIKN,MAAM,IAAQ;IAAEgC,OAAO,EAAI3B;EAAb,CAJnB,GAKKJ,KAAK,IAAS;IAAEgC,IAAI,EAAEhC;EAAR,CALnB,GAMKN,QAAQ,IAAM;IAAEA,QAAQ,EAAE,uBAAYA,QAAZ,EAAsBE,QAAtB;EAAZ,CANnB;AAQD,C","names":["schedule","input","settings","default","_default","dependencies","groups","events","areas","configuration","meta","output","_courses","_groups","_teachers","_locations","Error","map","x","ids","filter","Boolean","_placements","idKey","i","forEach","collection","Array","isArray","event","_","isNumber","_placedEvent","find","id","Object","assign","locations","teachers","courses","area"],"sourceRoot":"","sources":["../../../../src/RS/v2/from/schedules.ts"],"sourcesContent":[null]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Settings } from '../types/settings';
|
|
2
2
|
import { Default } from '../types/default';
|
|
3
3
|
import { DivisionSettings } from '../../../core/types/division-settings';
|
|
4
|
-
declare const _default_1: (settings: Settings, _default: Default) => DivisionSettings
|
|
4
|
+
declare const _default_1: (settings: Settings, _default: Default) => Omit<DivisionSettings, 'belongsTo' | 'defaultLunch'>;
|
|
5
5
|
export default _default_1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"settings.js","mappings":";;;;;;;AAAA;;;;gBAOe,CAACA,QAAD,EAAqBC,QAArB,KAAgG;EAAA;;EAE7G,IAAIC,IAAI,GAAID,QAAQ,CAACE,mBAArB;EACA,IAAIC,KAAK,GAAGH,QAAQ,CAACI,uBAArB;EAEA,OAAO;IACLC,OAAO,EAA8BN,QAAQ,CAACM,OADzC;IAELC,cAAc,EAAuBP,QAAQ,CAACO,cAFzC;IAILC,QAAQ,2BAA6BP,QAAQ,CAACQ,SAAT,CAAmB,CAAnB,EAAsBC,GAAnD,0DAA6B,sBAA2BC,OAA3B,CAAmC,CAAnC,EAAsCC,OAAtC,CAA8C,GAA9C,EAAmD,GAAnD,CAJhC;IAKLC,MAAM,4BAA+BZ,QAAQ,CAACQ,SAAT,CAAmB,CAAnB,EAAsBK,GAArD,2DAA+B,uBAA2BH,OAA3B,CAAmC,CAAnC,EAAsCC,OAAtC,CAA8C,GAA9C,EAAmD,GAAnD,CALhC;IAOLG,mCAAmC,EAAEd,QAAQ,CAACe,wBAPzC;IAQLC,8BAA8B,EAAOhB,QAAQ,CAACiB,mBARzC;IASLC,8BAA8B,EAAOC,gBAAEC,QAAF,CAAWnB,IAAX,IAAmB,OAAKA,IAAI,CAACoB,GAAL,GAAWpB,IAAI,CAACqB,GAArB,CAAnB,GAA+CH,gBAAEI,QAAF,CAAWtB,IAAX,IAAmBA,IAAnB,GAA0B,CATzG;IAWLuB,eAAe,2BAAsBxB,QAAQ,CAACwB,eAA/B,0DAAsB,sBAA0Bd,OAA1B,CAAkC,CAAlC,EAAqCC,OAArC,CAA6C,GAA7C,EAAkD,GAAlD,CAXhC;IAYLc,mBAAmB,EAAkBzB,QAAQ,CAAC0B,YAZzC;IAcLC,yBAAyB,EAAY3B,QAAQ,CAAC4B,kBAdzC;IAeLC,8BAA8B,EAAOV,gBAAEW,OAAF,CAAU3B,KAAV,IAAmBA,KAAK,CAAC,CAAD,CAAxB,GAA8BA,KAf9D;IAiBL4B,qBAAqB,EAAgB/B,QAAQ,CAACgC,cAjBzC;IAkBLC,gBAAgB,EAAqBjC,QAAQ,CAACkC,SAlBzC;IAmBLC,cAAc,EAAuBnC,QAAQ,CAACoC,OAnBzC;IAqBLC,kBAAkB,EAAmBrC,QAAQ,CAACsC,WArBzC;IAsBLC,kBAAkB,EAAmBvC,QAAQ,CAACwC,WAtBzC;IAuBLC,mBAAmB,EAAkBzC,QAAQ,CAAC0C;EAvBzC,CAAP;AAyBD,C","names":["settings","_default","EMBL","eventMinBreakLength","MNDWH","maxNumDailyWorkingHours","numDays","discretization","dayStart","intervals","beg","toFixed","replace","dayEnd","end","defaultDependencyMinimumBreakLength","dependencyMinBreakLength","defaultGroupMinimumBreakLength","groupMinBreakLength","defaultEventMinimumBreakLength","_","isObject","bef","aft","isNumber","potentialCenter","defaultEventDensity","eventDensity","defaultMaxNumWorkingHours","maxNumWorkingHours","defaultMaxNumDailyWorkingHours","isArray","defaultDependencyRank","dependencyRank","defaultGroupRank","groupRank","defaultDayRank","dayRank","defaultEventWeight","eventWeight","defaultGroupWeight","groupWeight","defaultCourseWeight","collectionWeight"],"sourceRoot":"","sources":["../../../../src/RS/v2/from/settings.ts"],"sourcesContent":[null]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Group } from '../types/groups';
|
|
2
|
+
import { Settings } from '../types/settings';
|
|
2
3
|
import { Teacher as SourceTeacher } from '../../../core/types/teachers';
|
|
3
|
-
|
|
4
|
+
import { Deserialized } from '../../../core/types/common';
|
|
5
|
+
declare const _default: (teachers: Group[], settings: Settings) => Deserialized<SourceTeacher>[];
|
|
4
6
|
export default _default;
|
|
@@ -23,12 +23,12 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
23
23
|
|
|
24
24
|
var _default = (teachers, settings) => {
|
|
25
25
|
var idKey = settings.groupIdKey;
|
|
26
|
-
if (!idKey) throw new Error('property "groupIdKey" in settings is undefined');
|
|
26
|
+
if (!idKey) throw new Error('(RS::V2::From::Teachers) property "groupIdKey" in settings is undefined');
|
|
27
27
|
return teachers.reduce((acc, teacher) => {
|
|
28
28
|
var _teacher$days, _teacher$intervals, _teacher$lockedTimes;
|
|
29
29
|
|
|
30
|
-
if (!['personal', 'classes'].includes(teacher.group_type)) throw new Error('property "group_type" must exist on all entries in "groups" array');
|
|
31
|
-
if (!teacher[idKey]) throw new Error('A teacher does not have a unique key');
|
|
30
|
+
if (!['personal', 'classes'].includes(teacher.group_type)) throw new Error('(RS::V2::From::Teachers) property "group_type" must exist on all entries in "groups" array');
|
|
31
|
+
if (!teacher[idKey]) throw new Error('(RS::V2::From::Teachers) A teacher does not have a unique key');
|
|
32
32
|
if (teacher.group_type != 'personal') return acc;
|
|
33
33
|
return acc.concat(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
34
34
|
ids: teacher[idKey]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teachers.js","mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"teachers.js","mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;eAQe,CAACA,QAAD,EACCC,QADD,KACyB;EAEtC,IAAMC,KAAK,GAAgBD,QAAQ,CAACE,UAApC;EAEA,IAAI,CAAED,KAAN,EACE,MAAM,IAAIE,KAAJ,CAAU,yEAAV,CAAN;EAEF,OAAOJ,QAAQ,CAACK,MAAT,CAAgB,CAACC,GAAD,EAAqCC,OAArC,KAAuD;IAAA;;IAE5E,IAAI,CAAE,CAAC,UAAD,EAAa,SAAb,EAAwBC,QAAxB,CAAiCD,OAAO,CAACE,UAAzC,CAAN,EACE,MAAM,IAAIL,KAAJ,CAAU,4FAAV,CAAN;IAEF,IAAI,CAAEG,OAAO,CAACL,KAAD,CAAb,EACE,MAAM,IAAIE,KAAJ,CAAU,+DAAV,CAAN;IAEF,IAAIG,OAAO,CAACE,UAAR,IAAsB,UAA1B,EACE,OAAOH,GAAP;IAEF,OAAOA,GAAG,CAACI,MAAJ;MACLC,GAAG,EAAyEJ,OAAO,CAACL,KAAD;IAD9E,GAEFK,OAAO,CAACK,IAAR,IAA2C;MAAEC,WAAW,EAAiBN,OAAO,CAACK;IAAtC,CAFzC,GAGF,6BAAgCL,OAAhC,IAA2C;MAAEO,uBAAuB,EAAKP,OAAO,CAACO;IAAtC,CAHzC,GAIF,wBAAgCP,OAAhC,IAA2C;MAAEQ,kBAAkB,EAAUR,OAAO,CAACQ;IAAtC,CAJzC,GAKF,6BAAgCR,OAAhC,IAA2C;MAAES,uBAAuB,EAAKT,OAAO,CAACS;IAAtC,CALzC,GAMF,oBAAgCT,OAAhC,IAA2C;MAAEU,cAAc,EAAc,2BAAYV,OAAO,CAACU,cAApB;IAA9B,CANzC,GAOF,gCAAgCV,OAAhC,IAA2C;MAAEW,0BAA0B,EAAEX,OAAO,CAACW;IAAtC,CAPzC,GAQF,YAAgCX,OAAhC,IAA2C;MAAEY,MAAM,EAAsBZ,OAAO,CAACY;IAAtC,CARzC,GASF,UAAgCZ,OAAhC,IAA2C;MAAEa,IAAI,EAAwBb,OAAO,CAACa;IAAtC,CATzC,GAUF,kBAACb,OAAO,CAACc,IAAT,kDAAC,cAAcC,MAAf,KAA2C;MAAED,IAAI,EAAwB,mBAAKd,OAAO,CAACc,IAAb,EAAmBpB,QAAnB;IAA9B,CAVzC,GAWF,uBAACM,OAAO,CAACgB,SAAT,uDAAC,mBAAmBD,MAApB,KAA2C;MAAEC,SAAS,EAAmB,wBAAUhB,OAAO,CAACgB,SAAlB;IAA9B,CAXzC,GAYF,yBAAChB,OAAO,CAACiB,WAAT,yDAAC,qBAAqBF,MAAtB,KAA2C;MAAEE,WAAW,EAAiB,0BAAWjB,OAAO,CAACiB,WAAnB;IAA9B,CAZzC,EAAP;EAcD,CAzBM,EAyBJ,EAzBI,CAAP;AA0BD,C","names":["teachers","settings","idKey","groupIdKey","Error","reduce","acc","teacher","includes","group_type","concat","ids","name","displayName","forbidOverlappingEvents","maxNumWorkingHours","maxNumDailyWorkingHours","minBreakLength","disableDayLengthPunishment","weight","rank","days","length","intervals","lockedTimes"],"sourceRoot":"","sources":["../../../../src/RS/v2/from/teachers.ts"],"sourcesContent":[null]}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import { Dependency } from './dependencies';
|
|
2
|
-
import { CourseEvent } from './course-events';
|
|
3
|
-
import { Collection } from './collections';
|
|
4
|
-
import { Group } from './groups';
|
|
5
1
|
export interface Settings {
|
|
6
2
|
numDays: number;
|
|
7
3
|
discretization: number;
|
|
8
|
-
dependencyIdKey:
|
|
9
|
-
groupIdKey:
|
|
10
|
-
collectionIdKey:
|
|
11
|
-
eventIdKey:
|
|
4
|
+
dependencyIdKey: 'id';
|
|
5
|
+
groupIdKey: 'id';
|
|
6
|
+
collectionIdKey: 'id';
|
|
7
|
+
eventIdKey: 'id';
|
|
12
8
|
}
|
|
@@ -23,6 +23,7 @@ export interface DivisionSettingsBare {
|
|
|
23
23
|
defaultGroupWeight?: number;
|
|
24
24
|
defaultCourseWeight?: number;
|
|
25
25
|
defaultEventDurationVariance?: number;
|
|
26
|
+
requireForcedOverlappingEventsSets?: boolean;
|
|
26
27
|
defaultLunch?: Edge<LockedTime[]>;
|
|
27
28
|
}
|
|
28
29
|
export interface DivisionSettings extends DivisionSettingsBare {
|
|
@@ -5,6 +5,7 @@ import { BreakLength } from './break-lengths';
|
|
|
5
5
|
import { LockedTime } from './locked-times';
|
|
6
6
|
import { Interval } from './intervals';
|
|
7
7
|
import { Day } from './days';
|
|
8
|
+
import { Person } from './persons';
|
|
8
9
|
export interface GroupBare {
|
|
9
10
|
belongsTo?: Edge<Division>;
|
|
10
11
|
ids?: string;
|
|
@@ -18,6 +19,7 @@ export interface GroupBare {
|
|
|
18
19
|
rank?: number;
|
|
19
20
|
lockedTimes?: Edge<LockedTime[]>;
|
|
20
21
|
lunch?: Edge<LockedTime[]>;
|
|
22
|
+
members?: Edge<Person[]>;
|
|
21
23
|
intervals?: Interval[];
|
|
22
24
|
days?: Day[];
|
|
23
25
|
createdAt?: string;
|
|
@@ -10,6 +10,8 @@ import { Interval } from './intervals';
|
|
|
10
10
|
import { LockedTime } from './locked-times';
|
|
11
11
|
import { Division } from './divisions';
|
|
12
12
|
import { DivisionSettings } from './division-settings';
|
|
13
|
+
import { OverlapGroup } from './overlap-groups';
|
|
14
|
+
import { Person } from './persons';
|
|
13
15
|
import { Teacher } from './teachers';
|
|
14
16
|
import { Meta } from './meta';
|
|
15
17
|
export declare module Types {
|
|
@@ -25,6 +27,8 @@ export declare module Types {
|
|
|
25
27
|
type lockedTime = LockedTime;
|
|
26
28
|
type division = Division;
|
|
27
29
|
type divisionSettings = DivisionSettings;
|
|
30
|
+
type overlapGroup = OverlapGroup;
|
|
31
|
+
type person = Person;
|
|
28
32
|
type teacher = Teacher;
|
|
29
33
|
type meta = Meta;
|
|
30
34
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Types } from 'mongoose';
|
|
2
2
|
import { Edge } from './common';
|
|
3
3
|
import { Division } from './divisions';
|
|
4
|
+
import { Group } from './groups';
|
|
4
5
|
import { LockedTime } from './locked-times';
|
|
5
6
|
export interface PersonBare {
|
|
6
7
|
belongsTo?: Edge<Division>;
|
|
@@ -10,6 +11,7 @@ export interface PersonBare {
|
|
|
10
11
|
firstname?: string;
|
|
11
12
|
lockedTimes?: Edge<LockedTime[]>;
|
|
12
13
|
lunch?: Edge<LockedTime[]>;
|
|
14
|
+
group?: Edge<Group>;
|
|
13
15
|
createdAt?: string;
|
|
14
16
|
updatedAt?: string;
|
|
15
17
|
}
|