@royalschedule/maps 2.2.12 → 2.2.15

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.
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _lodash = _interopRequireDefault(require("lodash"));
9
-
10
8
  var _dependencies = _interopRequireDefault(require("./dependencies"));
11
9
 
12
10
  var _teachers = _interopRequireDefault(require("./teachers"));
@@ -59,18 +57,8 @@ var _default = function _default(schedule) {
59
57
  groups: (0, _groups.default)(groups, options).concat((0, _teachers.default)(teachers, options))
60
58
  });
61
59
 
62
- if (groups !== null && groups !== void 0 && groups.some(group => 'lunch' in group)) data.events = ((_data$events = data.events) !== null && _data$events !== void 0 ? _data$events : []).concat((0, _dynamicLockedTimes.default)(_lodash.default.without(groups.map(_ref => {
63
- var {
64
- lunch
65
- } = _ref;
66
- return lunch;
67
- }).flat(), null), options));
68
- if (teachers !== null && teachers !== void 0 && teachers.some(teacher => 'lunch' in teacher)) data.events = ((_data$events2 = data.events) !== null && _data$events2 !== void 0 ? _data$events2 : []).concat((0, _dynamicLockedTimes.default)(_lodash.default.without(teachers.map(_ref2 => {
69
- var {
70
- lunch
71
- } = _ref2;
72
- return lunch;
73
- }).flat(), null), options));
60
+ if (groups !== null && groups !== void 0 && groups.some(group => 'lunch' in group)) data.events = ((_data$events = data.events) !== null && _data$events !== void 0 ? _data$events : []).concat((0, _dynamicLockedTimes.default)(groups, settings, options));
61
+ if (teachers !== null && teachers !== void 0 && teachers.some(teacher => 'lunch' in teacher)) data.events = ((_data$events2 = data.events) !== null && _data$events2 !== void 0 ? _data$events2 : []).concat((0, _dynamicLockedTimes.default)(teachers, settings, options));
74
62
  return data;
75
63
  };
76
64
 
@@ -1 +1 @@
1
- {"version":3,"file":"constraints.js","mappings":";;;;;;;AAAA;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;eAEe,kBAACA,QAAD,EAA6D;AAAA;;AAAA,MAAxCC,OAAwC,uEAAlB,EAAkB;AAC1E,MAAID,QAAQ,IAAI,IAAhB,EAAsB,OAAO,EAAP;AAEtB,MAAI;AACFE,UADE;AAEFC,YAFE;AAGFC,aAHE;AAIFC,UAJE;AAKFC,iBALE;AAMFC,WANE;AAOFC,YAPE;AAQFC;AARE,MASAT,QATJ;;AAWA,MAAIU,IAAI;AACNF,YAAQ,EAAM,uBAAYA,QAAZ,CADR;AAENG,WAAO,EAAO,uBAAWH,QAAX;AAFR,KAGHC,IAAI,IAAI;AACTG,SAAK,EAAE;AACLC,uBAAiB,EAAEJ,IAAI,CAACI,iBADnB;AAELC,UAAI,EAAeL,IAAI,CAACK;AAFnB;AADE,GAHL;AASNT,UAAM,EAAQ,0BAAeE,OAAf,EAAyBF,MAAzB,EAAiCC,aAAjC,EAAgDL,OAAhD,CATR;AAUNc,gBAAY,EAAE,2BAAgBX,SAAhB,EAA4BH,OAA5B,CAVR;AAWNC,UAAM,EAAQ,qBAAUA,MAAV,EAAmBD,OAAnB,EAA4Be,MAA5B,CAAmC,uBAAYb,QAAZ,EAAuBF,OAAvB,CAAnC;AAXR,IAAR;;AAkBA,MAAIC,MAAJ,aAAIA,MAAJ,eAAIA,MAAM,CAAEe,IAAR,CAAaC,KAAK,IAAI,WAAWA,KAAjC,CAAJ,EACER,IAAI,CAACL,MAAL,GAAc,iBAACK,IAAI,CAACL,MAAN,uDAAgB,EAAhB,EAAoBW,MAApB,CAA2B,iCAAsBG,gBAAEC,OAAF,CAAUlB,MAAM,CAACmB,GAAP,CAAW;AAAA,QAAC;AAAEC;AAAF,KAAD;AAAA,WAAeA,KAAf;AAAA,GAAX,EAAiCC,IAAjC,EAAV,EAAmD,IAAnD,CAAtB,EAAuFtB,OAAvF,CAA3B,CAAd;AAEF,MAAIE,QAAJ,aAAIA,QAAJ,eAAIA,QAAQ,CAAEc,IAAV,CAAeO,OAAO,IAAI,WAAWA,OAArC,CAAJ,EACEd,IAAI,CAACL,MAAL,GAAc,kBAACK,IAAI,CAACL,MAAN,yDAAgB,EAAhB,EAAoBW,MAApB,CAA2B,iCAAsBG,gBAAEC,OAAF,CAAUjB,QAAQ,CAACkB,GAAT,CAAa;AAAA,QAAC;AAAEC;AAAF,KAAD;AAAA,WAAeA,KAAf;AAAA,GAAb,EAAmCC,IAAnC,EAAV,EAAqD,IAArD,CAAtB,EAAyFtB,OAAzF,CAA3B,CAAd;AAEF,SAAOS,IAAP;AACD,C","names":["schedule","options","groups","teachers","locations","events","overlapGroups","courses","settings","area","data","default","areas","breakLengthMatrix","list","dependencies","concat","some","group","_","without","map","lunch","flat","teacher"],"sourceRoot":"","sources":["../../../../src/RS/v2/to/constraints.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"constraints.js","mappings":";;;;;;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;eAEe,kBAACA,QAAD,EAA6D;AAAA;;AAAA,MAAxCC,OAAwC,uEAAlB,EAAkB;AAC1E,MAAID,QAAQ,IAAI,IAAhB,EAAsB,OAAO,EAAP;AAEtB,MAAI;AACFE,UADE;AAEFC,YAFE;AAGFC,aAHE;AAIFC,UAJE;AAKFC,iBALE;AAMFC,WANE;AAOFC,YAPE;AAQFC;AARE,MASAT,QATJ;;AAWA,MAAIU,IAAI;AACNF,YAAQ,EAAM,uBAAYA,QAAZ,CADR;AAENG,WAAO,EAAO,uBAAWH,QAAX;AAFR,KAGHC,IAAI,IAAI;AACTG,SAAK,EAAE;AACLC,uBAAiB,EAAEJ,IAAI,CAACI,iBADnB;AAELC,UAAI,EAAeL,IAAI,CAACK;AAFnB;AADE,GAHL;AASNT,UAAM,EAAQ,0BAAeE,OAAf,EAAyBF,MAAzB,EAAiCC,aAAjC,EAAgDL,OAAhD,CATR;AAUNc,gBAAY,EAAE,2BAAgBX,SAAhB,EAA4BH,OAA5B,CAVR;AAWNC,UAAM,EAAQ,qBAAUA,MAAV,EAAmBD,OAAnB,EAA4Be,MAA5B,CAAmC,uBAAYb,QAAZ,EAAuBF,OAAvB,CAAnC;AAXR,IAAR;;AAkBA,MAAIC,MAAJ,aAAIA,MAAJ,eAAIA,MAAM,CAAEe,IAAR,CAAaC,KAAK,IAAI,WAAWA,KAAjC,CAAJ,EACER,IAAI,CAACL,MAAL,GAAc,iBAACK,IAAI,CAACL,MAAN,uDAAgB,EAAhB,EAAoBW,MAApB,CAA2B,iCAAsBd,MAAtB,EAA8BM,QAA9B,EAAyCP,OAAzC,CAA3B,CAAd;AAEF,MAAIE,QAAJ,aAAIA,QAAJ,eAAIA,QAAQ,CAAEc,IAAV,CAAeE,OAAO,IAAI,WAAWA,OAArC,CAAJ,EACET,IAAI,CAACL,MAAL,GAAc,kBAACK,IAAI,CAACL,MAAN,yDAAgB,EAAhB,EAAoBW,MAApB,CAA2B,iCAAsBb,QAAtB,EAAgCK,QAAhC,EAA2CP,OAA3C,CAA3B,CAAd;AAEF,SAAOS,IAAP;AACD,C","names":["schedule","options","groups","teachers","locations","events","overlapGroups","courses","settings","area","data","default","areas","breakLengthMatrix","list","dependencies","concat","some","group","teacher"],"sourceRoot":"","sources":["../../../../src/RS/v2/to/constraints.ts"],"sourcesContent":[null]}
@@ -1,5 +1,7 @@
1
- import { LockedTime } from '../types/locked-times';
2
1
  import { OutOptions } from '../types/out-options';
3
- import { LockedTime as SourceLockedTime } from '../../../core/types/locked-times';
4
- declare const _default: (lockedTimes: SourceLockedTime[] | SourceLockedTime, options: OutOptions) => LockedTime[] | never;
2
+ import { CourseEvent } from '../types/course-events';
3
+ import { Group as SourceGroup } from '../../../core/types/groups';
4
+ import { Teacher as SourceTeacher } from '../../../core/types/teachers';
5
+ import { DivisionSettings } from '../../../core/types/division-settings';
6
+ declare const _default: (docs: SourceGroup[] | SourceTeacher[], settings: DivisionSettings, options: OutOptions) => CourseEvent[] | never;
5
7
  export default _default;
@@ -5,6 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+
10
+ var _nanoid = require("nanoid");
11
+
12
+ var _lodash = _interopRequireDefault(require("lodash"));
13
+
8
14
  var _intervals2 = _interopRequireDefault(require("./intervals"));
9
15
 
10
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -15,42 +21,64 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
15
21
 
16
22
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
23
 
18
- var _default = (lockedTimes, options) => {
24
+ var _default = (docs, settings, options) => {
19
25
  var _options$idKey;
20
26
 
21
- var docs = Array.isArray(lockedTimes) ? lockedTimes : [lockedTimes];
22
27
  var idKey = (_options$idKey = options.idKey) !== null && _options$idKey !== void 0 ? _options$idKey : 'id';
23
- return docs.filter(x => !!x).map(lockedTime => {
24
- var {
25
- _id,
26
- intervals,
27
- duration,
28
- durationVariance,
29
- coalesced
30
- } = lockedTime;
31
-
32
- var id = (lockedTime[idKey] || lockedTime._id).toString();
33
-
34
- if (duration == null) throw new Error('Length of a locked time is null');
35
- if (duration < 5) throw new Error('Length of a locked time is less than 5 min');
36
-
37
- var doc = _objectSpread(_objectSpread({
38
- id: "lockedtimes.".concat(_id),
39
- groups: coalesced === null || coalesced === void 0 ? void 0 : coalesced.map(_ref => {
28
+ return docs.filter(x => !!x).reduce((acc, group) => {
29
+ var lunch = group.lunch;
30
+
31
+ if (lunch == null) {
32
+ var _settings$defaultLunc;
33
+
34
+ lunch = (_settings$defaultLunc = settings.defaultLunch) === null || _settings$defaultLunc === void 0 ? void 0 : _settings$defaultLunc.map(lunch => _objectSpread(_objectSpread({}, lunch), {}, {
35
+ coalesced: [{
36
+ to: _lodash.default.pick(group, idKey)
37
+ }]
38
+ }));
39
+ }
40
+
41
+ if (lunch == null) return acc;
42
+ return acc.concat(lunch.map(lockedTime => {
43
+ var _toString, _ref;
44
+
45
+ var {
46
+ _id,
47
+ intervals,
48
+ duration,
49
+ durationVariance,
50
+ coalesced
51
+ } = lockedTime;
52
+ var id = (_toString = (_ref = lockedTime[idKey] || lockedTime._id) === null || _ref === void 0 ? void 0 : _ref.toString()) !== null && _toString !== void 0 ? _toString : (0, _nanoid.nanoid)();
53
+ if (duration == null) throw new Error('Length of a locked time is null');
54
+ if (duration < 5) throw new Error('Length of a locked time is less than 5 min');
55
+ var days = intervals === null || intervals === void 0 ? void 0 : intervals.map(_ref2 => {
40
56
  var {
41
- to
42
- } = _ref;
43
- return to[idKey];
44
- }),
45
- length: duration
46
- }, durationVariance != null && {
47
- maxLengthVariance: durationVariance
48
- }), {}, {
49
- intervals: (0, _intervals2.default)(intervals)
50
- });
51
-
52
- return doc;
53
- });
57
+ start
58
+ } = _ref2;
59
+ return (0, _moment.default)(start).day() - 1;
60
+ });
61
+ if (days) days = [...new Set(days)];
62
+ return _objectSpread(_objectSpread(_objectSpread({
63
+ id: "".concat(group.lunch == null ? 'virtual' : 'lockedtimes', ".").concat(id),
64
+ groups: coalesced === null || coalesced === void 0 ? void 0 : coalesced.map(_ref3 => {
65
+ var {
66
+ to
67
+ } = _ref3;
68
+ return to[idKey];
69
+ }),
70
+ length: duration
71
+ }, days && (days.length == 1 ? {
72
+ day: days[0]
73
+ } : {
74
+ days
75
+ })), durationVariance != null && {
76
+ maxLengthVariance: durationVariance
77
+ }), {}, {
78
+ intervals: (0, _intervals2.default)(intervals)
79
+ });
80
+ }));
81
+ }, []).flat().filter(x => !!x);
54
82
  };
55
83
 
56
84
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-locked-times.js","mappings":";;;;;;;AAMA;;;;;;;;;;eAIe,CAACA,WAAD,EACCC,OADD,KACkD;AAAA;;AAE/D,MAAIC,IAAI,GAAwBC,KAAK,CAACC,OAAN,CAAcJ,WAAd,IAA6BA,WAA7B,GAA2C,CAACA,WAAD,CAA3E;AACA,MAAIK,KAAK,qBAAoCJ,OAAO,CAACI,KAA5C,2DAAqD,IAA9D;AAEA,SAAOH,IAAI,CAACI,MAAL,CAAYC,CAAC,IAAI,CAAC,CAACA,CAAnB,EAAsBC,GAAtB,CAA2BC,UAAD,IAA6C;AAC5E,QAAM;AAAEC,SAAF;AAAOC,eAAP;AAAkBC,cAAlB;AAA4BC,sBAA5B;AAA8CC;AAA9C,QAA4DL,UAAlE;;AAEA,QAAMM,EAAE,GAAW,CAACN,UAAU,CAACJ,KAAD,CAAV,IAA+CI,UAAU,CAACC,GAA3D,EAAiEM,QAAjE,EAAnB;;AAEA,QAAIJ,QAAQ,IAAI,IAAhB,EACE,MAAM,IAAIK,KAAJ,CAAU,iCAAV,CAAN;AAEF,QAAIL,QAAQ,GAAG,CAAf,EACE,MAAM,IAAIK,KAAJ,CAAU,4CAAV,CAAN;;AAEF,QAAIC,GAAG;AACLH,QAAE,wBAAoBL,GAApB,CADG;AAELS,YAAM,EAAEL,SAAF,aAAEA,SAAF,uBAAEA,SAAS,CAAEN,GAAX,CAAe;AAAA,YAAC;AAAEY;AAAF,SAAD;AAAA,eAAYA,EAAE,CAACf,KAAD,CAAd;AAAA,OAAf,CAFH;AAGLgB,YAAM,EAAET;AAHH,OAIFC,gBAAgB,IAAI,IAApB,IAA6B;AAAES,uBAAiB,EAAET;AAArB,KAJ3B;AAKLF,eAAS,EAAE,yBAAWA,SAAX;AALN,MAAP;;AAQA,WAAOO,GAAP;AACD,GApBM,CAAP;AAqBD,C","names":["lockedTimes","options","docs","Array","isArray","idKey","filter","x","map","lockedTime","_id","intervals","duration","durationVariance","coalesced","id","toString","Error","doc","groups","to","length","maxLengthVariance"],"sourceRoot":"","sources":["../../../../src/RS/v2/to/dynamic-locked-times.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"dynamic-locked-times.js","mappings":";;;;;;;AAAA;;AACA;;AACA;;AAMA;;;;;;;;;;eAOe,CAACA,IAAD,EACCC,QADD,EAECC,OAFD,KAEgD;AAAA;;AAE7D,MAAIC,KAAK,qBAAoCD,OAAO,CAACC,KAA5C,2DAAqD,IAA9D;AAEA,SAAOH,IAAI,CAACI,MAAL,CAAYC,CAAC,IAAI,CAAC,CAACA,CAAnB,EAAsBC,MAAtB,CAA6B,CAACC,GAAD,EAAWC,KAAX,KAAgE;AAClG,QAAIC,KAAK,GAAGD,KAAK,CAACC,KAAlB;;AACA,QAAIA,KAAK,IAAI,IAAb,EAAmB;AAAA;;AACjBA,WAAK,4BAAGR,QAAQ,CAACS,YAAZ,0DAAG,sBAAuBC,GAAvB,CAA2BF,KAAK,oCAAUA,KAAV;AAAiBG,iBAAS,EAAE,CAAC;AAAEC,YAAE,EAAEC,gBAAEC,IAAF,CAAOP,KAAP,EAAcL,KAAd;AAAN,SAAD;AAA5B,QAAhC,CAAR;AACD;;AAED,QAAIM,KAAK,IAAI,IAAb,EACE,OAAOF,GAAP;AAEF,WAAOA,GAAG,CAACS,MAAJ,CAAWP,KAAK,CAACE,GAAN,CAAWM,UAAD,IAA8C;AAAA;;AACxE,UAAM;AAAEC,WAAF;AAAOC,iBAAP;AAAkBC,gBAAlB;AAA4BC,wBAA5B;AAA8CT;AAA9C,UAA4DK,UAAlE;AAEA,UAAMK,EAAE,wBAAYL,UAAU,CAACd,KAAD,CAAV,IAA+Cc,UAAU,CAACC,GAAtE,yCAAW,KAAkEK,QAAlE,EAAX,iDAA2F,qBAAnG;AAEA,UAAIH,QAAQ,IAAI,IAAhB,EACE,MAAM,IAAII,KAAJ,CAAU,iCAAV,CAAN;AAEF,UAAIJ,QAAQ,GAAG,CAAf,EACE,MAAM,IAAII,KAAJ,CAAU,4CAAV,CAAN;AAMF,UAAIC,IAAI,GAAyBN,SAAzB,aAAyBA,SAAzB,uBAAyBA,SAAS,CAAER,GAAX,CAAe;AAAA,YAAC;AAAEe;AAAF,SAAD;AAAA,eAAe,qBAAOA,KAAP,EAAcC,GAAd,KAAsB,CAArC;AAAA,OAAf,CAAjC;AACA,UAAIF,IAAJ,EACEA,IAAI,GAAG,CAAC,GAAG,IAAIG,GAAJ,CAAQH,IAAR,CAAJ,CAAP;AAEF;AACEH,UAAE,YAAQd,KAAK,CAACC,KAAN,IAAe,IAAf,GAAsB,SAAtB,GAAkC,aAA1C,cAA6Da,EAA7D,CADJ;AAEEO,cAAM,EAAEjB,SAAF,aAAEA,SAAF,uBAAEA,SAAS,CAAED,GAAX,CAAe;AAAA,cAAC;AAAEE;AAAF,WAAD;AAAA,iBAAYA,EAAE,CAACV,KAAD,CAAd;AAAA,SAAf,CAFV;AAGE2B,cAAM,EAAEV;AAHV,SAIKK,IAAI,KAAKA,IAAI,CAACK,MAAL,IAAe,CAAf,GAAmB;AAAEH,WAAG,EAAEF,IAAI,CAAC,CAAD;AAAX,OAAnB,GAAsC;AAAEA;AAAF,OAA3C,CAJT,GAKKJ,gBAAgB,IAAI,IAApB,IAA6B;AAAEU,yBAAiB,EAAEV;AAArB,OALlC;AAMEF,iBAAS,EAAE,yBAAWA,SAAX;AANb;AAQD,KA3BiB,CAAX,CAAP;AA6BD,GAtCM,EAsCJ,EAtCI,EAsCAa,IAtCA,GAsCO5B,MAtCP,CAsCcC,CAAC,IAAI,CAAC,CAACA,CAtCrB,CAAP;AAuCD,C","names":["docs","settings","options","idKey","filter","x","reduce","acc","group","lunch","defaultLunch","map","coalesced","to","_","pick","concat","lockedTime","_id","intervals","duration","durationVariance","id","toString","Error","days","start","day","Set","groups","length","maxLengthVariance","flat"],"sourceRoot":"","sources":["../../../../src/RS/v2/to/dynamic-locked-times.ts"],"sourcesContent":[null]}
@@ -1,5 +1,6 @@
1
1
  import { Types } from 'mongoose';
2
2
  import { Division } from './divisions';
3
+ import { LockedTime } from './locked-times';
3
4
  export interface DivisionSettingsBare {
4
5
  belongsTo?: Division;
5
6
  createdAt?: string;
@@ -21,6 +22,7 @@ export interface DivisionSettingsBare {
21
22
  defaultEventWeight?: number;
22
23
  defaultGroupWeight?: number;
23
24
  defaultCourseWeight?: number;
25
+ defaultLunch?: Pick<LockedTime, 'intervals' | 'duration' | 'durationVariance'>[];
24
26
  }
25
27
  export interface DivisionSettings extends DivisionSettingsBare {
26
28
  _id?: Types.ObjectId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@royalschedule/maps",
3
- "version": "2.2.12",
3
+ "version": "2.2.15",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -54,6 +54,7 @@
54
54
  "module-alias": "^2.2.2",
55
55
  "moment": "^2.29.2",
56
56
  "mongoose": "^6.2.10",
57
+ "nanoid": "^3.3.4",
57
58
  "papaparse": "^5.3.2",
58
59
  "xlsx": "^0.18.5"
59
60
  }