@royalschedule/maps 4.0.14 → 4.0.16
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/Additio/from/courses.js.map +1 -1
- package/dist/Additio/from/events.js.map +1 -1
- package/dist/Additio/from/groups.js.map +1 -1
- package/dist/Additio/from/index.js.map +1 -1
- package/dist/Additio/from/locations.js.map +1 -1
- package/dist/Additio/from/persons.js.map +1 -1
- package/dist/Additio/from/schedules.d.ts +7 -6
- package/dist/Additio/from/schedules.js +2 -4
- package/dist/Additio/from/schedules.js.map +1 -1
- package/dist/Additio/from/teachers.js.map +1 -1
- package/dist/Additio/to/index.d.ts +11 -9
- package/dist/Additio/to/schedules.js +2 -4
- package/dist/Additio/to/schedules.js.map +1 -1
- package/dist/Admentum/from/courses.js.map +1 -1
- package/dist/Admentum/from/events.js.map +1 -1
- package/dist/Admentum/from/groups.js.map +1 -1
- package/dist/Admentum/from/index.js.map +1 -1
- package/dist/Admentum/from/locations.js.map +1 -1
- package/dist/Admentum/from/persons.js.map +1 -1
- package/dist/Admentum/from/schedules.d.ts +7 -6
- package/dist/Admentum/from/schedules.js +2 -4
- package/dist/Admentum/from/schedules.js.map +1 -1
- package/dist/Admentum/from/teachers.js.map +1 -1
- package/dist/Admentum/to/index.d.ts +9 -8
- package/dist/Admentum/to/schedules.js +4 -7
- package/dist/Admentum/to/schedules.js.map +1 -1
- package/dist/Excel/index.d.ts +263 -26
- package/dist/Excel/v1/from/index.js +2 -1
- package/dist/Excel/v1/from/index.js.map +1 -1
- package/dist/Excel/v1/index.d.ts +218 -20
- package/dist/Excel/v2/from/index.js +49 -57
- package/dist/Excel/v2/from/index.js.map +1 -1
- package/dist/Excel/v2/index.d.ts +263 -26
- package/dist/IdunSoft/from/courses.js.map +1 -1
- package/dist/IdunSoft/from/events.js +1 -2
- package/dist/IdunSoft/from/events.js.map +1 -1
- package/dist/IdunSoft/from/groups.js.map +1 -1
- package/dist/IdunSoft/from/index.js.map +1 -1
- package/dist/IdunSoft/from/locations.js.map +1 -1
- package/dist/IdunSoft/from/schedules.d.ts +6 -5
- package/dist/IdunSoft/from/schedules.js.map +1 -1
- package/dist/IdunSoft/from/teachers.js.map +1 -1
- package/dist/IdunSoft/to/index.d.ts +2 -1
- package/dist/IdunSoft/to/schedules.js +5 -8
- package/dist/IdunSoft/to/schedules.js.map +1 -1
- package/dist/InfoMentor/to/index.d.ts +2 -1
- package/dist/InfoMentor/to/schedules.js +3 -4
- package/dist/InfoMentor/to/schedules.js.map +1 -1
- package/dist/PlanDigital/from/index.js.map +1 -1
- package/dist/PlanDigital/from/schedules.js +9 -11
- package/dist/PlanDigital/from/schedules.js.map +1 -1
- package/dist/PlanDigital/index.d.ts +74 -59
- package/dist/Quiculum/file/to/index.d.ts +10 -9
- package/dist/Quiculum/file/to/schedules.js +5 -9
- package/dist/Quiculum/file/to/schedules.js.map +1 -1
- package/dist/RS/from/division.d.ts +2 -1
- package/dist/RS/from/division.js +9 -6
- package/dist/RS/from/division.js.map +1 -1
- package/dist/RS/from/index.js.map +1 -1
- package/dist/RS/from/schedules.d.ts +2 -1
- package/dist/RS/from/schedules.js +2 -1
- package/dist/RS/from/schedules.js.map +1 -1
- package/dist/RS/make-connected.d.ts +17 -16
- package/dist/RS/make-connected.js +63 -96
- package/dist/RS/make-connected.js.map +1 -1
- package/dist/RS/to/index.js.map +1 -1
- package/dist/RS/to/initial-configuration.js +4 -6
- package/dist/RS/to/initial-configuration.js.map +1 -1
- package/dist/RS/to/input/collections.js.map +1 -1
- package/dist/RS/to/input/default.js +1 -2
- package/dist/RS/to/input/default.js.map +1 -1
- package/dist/RS/to/input/dependencies.js +1 -3
- package/dist/RS/to/input/dependencies.js.map +1 -1
- package/dist/RS/to/input/dynamic-locked-times.js +1 -2
- package/dist/RS/to/input/dynamic-locked-times.js.map +1 -1
- package/dist/RS/to/input/events.js +5 -3
- package/dist/RS/to/input/events.js.map +1 -1
- package/dist/RS/to/input/groups.js.map +1 -1
- package/dist/RS/to/input/individuals.js +2 -3
- package/dist/RS/to/input/individuals.js.map +1 -1
- package/dist/RS/to/input/input.js +1 -3
- package/dist/RS/to/input/input.js.map +1 -1
- package/dist/RS/to/input/intervals.js +2 -4
- package/dist/RS/to/input/intervals.js.map +1 -1
- package/dist/RS/to/input/periods.js +6 -8
- package/dist/RS/to/input/periods.js.map +1 -1
- package/dist/RS/to/input/settings.js.map +1 -1
- package/dist/RS/to/input/teachers.js.map +1 -1
- package/dist/RS/to/input/util/attach-locked-times.js.map +1 -1
- package/dist/RS/to/input/util/parse-days.js.map +1 -1
- package/dist/RS/to/input/util/parse-group-references.js.map +1 -1
- package/dist/RS/to/input/util/parse-intervals.js +2 -4
- package/dist/RS/to/input/util/parse-intervals.js.map +1 -1
- package/dist/RS/to/input/util/parse-location-references.js +1 -2
- package/dist/RS/to/input/util/parse-location-references.js.map +1 -1
- package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -1
- package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -1
- package/dist/RS/to/input/util/util.js +1 -2
- package/dist/RS/to/input/util/util.js.map +1 -1
- package/dist/RS/to/schedules.js +3 -2
- package/dist/RS/to/schedules.js.map +1 -1
- package/dist/RS/types/to.d.ts +13 -3
- package/dist/RS/types/to.js +6 -0
- package/dist/RS/types/to.js.map +1 -0
- package/dist/SS12000/from/activities.js +1 -2
- package/dist/SS12000/from/activities.js.map +1 -1
- package/dist/SS12000/from/calendar-events.js.map +1 -1
- package/dist/SS12000/from/duties.js.map +1 -1
- package/dist/SS12000/from/groups.js.map +1 -1
- package/dist/SS12000/from/index.js.map +1 -1
- package/dist/SS12000/from/persons.js.map +1 -1
- package/dist/SS12000/from/resources.js.map +1 -1
- package/dist/SS12000/from/rooms.js.map +1 -1
- package/dist/SS12000/from/syllabuses.js.map +1 -1
- package/dist/SS12000/index.d.ts +12567 -9
- package/dist/SS12000/to/activities.js.map +1 -1
- package/dist/SS12000/to/calendar-events.js.map +1 -1
- package/dist/SS12000/to/common.js.map +1 -1
- package/dist/SS12000/to/duties.js.map +1 -1
- package/dist/SS12000/to/groups.js.map +1 -1
- package/dist/SS12000/to/index.d.ts +17 -16
- package/dist/SS12000/to/persons.js.map +1 -1
- package/dist/SS12000/to/resources.js.map +1 -1
- package/dist/SS12000/to/rooms.js.map +1 -1
- package/dist/SS12000/to/syllabuses.js.map +1 -1
- package/dist/SchoolSoft/api/from/index.js.map +1 -1
- package/dist/SchoolSoft/api/from/schedules.js +8 -12
- package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
- package/dist/SchoolSoft/api/index.d.ts +444 -9
- package/dist/SchoolSoft/file/from/index.js.map +1 -1
- package/dist/SchoolSoft/file/from/schedules.js +83 -87
- package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
- package/dist/SchoolSoft/file/index.d.ts +2 -1
- package/dist/SchoolSoft/file/to/index.d.ts +3 -2
- package/dist/SchoolSoft/file/to/schedules.js +1 -2
- package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
- package/dist/SchoolSoft/index.d.ts +2 -1
- package/dist/Schoolity/txt/to/index.d.ts +2 -1
- package/dist/Schoolity/txt/to/schedules.js +5 -12
- package/dist/Schoolity/txt/to/schedules.js.map +1 -1
- package/dist/Skola24/mdb/from/course-and-events.js +3 -5
- package/dist/Skola24/mdb/from/course-and-events.js.map +1 -1
- package/dist/Skola24/mdb/from/groups.js.map +1 -1
- package/dist/Skola24/mdb/from/index.js.map +1 -1
- package/dist/Skola24/mdb/from/locations.js.map +1 -1
- package/dist/Skola24/mdb/from/schedule.d.ts +6 -5
- package/dist/Skola24/mdb/from/schedule.js.map +1 -1
- package/dist/Skola24/mdb/from/teachers.js.map +1 -1
- package/dist/Skola24/txt/from/calendar-exceptions.js +1 -2
- package/dist/Skola24/txt/from/calendar-exceptions.js.map +1 -1
- package/dist/Skola24/txt/from/division.js.map +1 -1
- package/dist/Skola24/txt/from/index.js.map +1 -1
- package/dist/Skola24/txt/from/period.js +31 -34
- package/dist/Skola24/txt/from/period.js.map +1 -1
- package/dist/Skola24/txt/from/schedules.d.ts +9 -8
- package/dist/Skola24/txt/from/schedules.js +10 -12
- package/dist/Skola24/txt/from/schedules.js.map +1 -1
- package/dist/Skola24/txt/from/util.js.map +1 -1
- package/dist/Skola24/txt/index.d.ts +2 -1
- package/dist/Skola24/txt/to/index.d.ts +2 -1
- package/dist/Skola24/txt/to/schedules.js +5 -12
- package/dist/Skola24/txt/to/schedules.js.map +1 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/functions.js +46 -10
- package/dist/common/functions.js.map +1 -1
- package/dist/common/get-date.js.map +1 -1
- package/dist/common/make-chainable/index.js.map +1 -1
- package/dist/common/types.d.ts +3 -6
- package/dist/core/from/configurations.js.map +1 -1
- package/dist/core/from/courses.js.map +1 -1
- package/dist/core/from/events.js +1 -1
- package/dist/core/from/events.js.map +1 -1
- package/dist/core/from/exceptions.js.map +1 -1
- package/dist/core/from/groups.js.map +1 -1
- package/dist/core/from/index.js +9 -6
- package/dist/core/from/index.js.map +1 -1
- package/dist/core/from/locations.js.map +1 -1
- package/dist/core/from/locked-times.js.map +1 -1
- package/dist/core/from/overlap-groups.js.map +1 -1
- package/dist/core/from/periods.js.map +1 -1
- package/dist/core/from/persons.js.map +1 -1
- package/dist/core/from/root-intervals.js.map +1 -1
- package/dist/core/from/schedules.js.map +1 -1
- package/dist/core/from/syllabuses.js.map +1 -1
- package/dist/core/from/teachers.js.map +1 -1
- package/dist/core/index.d.ts +24 -1
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/interfaces/index.d.ts +23 -0
- package/dist/core/interfaces/index.js +6 -0
- package/dist/core/interfaces/other/companies.d.ts +132 -0
- package/dist/core/interfaces/other/companies.js +9 -0
- package/dist/core/interfaces/other/companies.js.map +1 -0
- package/dist/core/interfaces/other/etc.d.ts +19 -0
- package/dist/core/interfaces/other/index.d.ts +6 -0
- package/dist/core/interfaces/other/integrations.d.ts +17 -0
- package/dist/core/interfaces/other/operations.d.ts +36 -0
- package/dist/core/interfaces/other/policies.d.ts +31 -0
- package/dist/core/interfaces/other/sync-logs.d.ts +21 -0
- package/dist/core/interfaces/other/users.d.ts +35 -0
- package/dist/core/interfaces/vertices/companies.d.ts +8 -0
- package/dist/core/interfaces/vertices/configurations.d.ts +58 -0
- package/dist/core/interfaces/vertices/courses.d.ts +68 -0
- package/dist/core/{types → interfaces/vertices}/division-settings.d.ts +31 -29
- package/dist/core/interfaces/vertices/divisions.d.ts +31 -0
- package/dist/core/interfaces/vertices/events.d.ts +100 -0
- package/dist/core/interfaces/vertices/exceptions.d.ts +74 -0
- package/dist/core/interfaces/vertices/generations.d.ts +23 -0
- package/dist/core/interfaces/vertices/groups.d.ts +53 -0
- package/dist/core/interfaces/vertices/index.d.ts +209 -0
- package/dist/core/interfaces/vertices/index.js +3 -0
- package/dist/core/interfaces/vertices/locations.d.ts +22 -0
- package/dist/core/interfaces/vertices/locked-times.d.ts +37 -0
- package/dist/core/interfaces/vertices/overlap-groups.d.ts +17 -0
- package/dist/core/interfaces/vertices/periods.d.ts +15 -0
- package/dist/core/interfaces/vertices/persons.d.ts +32 -0
- package/dist/core/interfaces/vertices/properties/belongs-to.d.ts +11 -0
- package/dist/core/interfaces/vertices/properties/coalesced.d.ts +8 -0
- package/dist/core/interfaces/vertices/properties/days.d.ts +9 -0
- package/dist/core/interfaces/vertices/properties/index.d.ts +15 -0
- package/dist/core/interfaces/vertices/properties/intervals.d.ts +10 -0
- package/dist/core/{types/common → interfaces/vertices/properties}/maximum-schedule-span.d.ts +1 -1
- package/dist/core/interfaces/vertices/properties/min-break-length.d.ts +5 -0
- package/dist/core/{types/common/planned-schedule-duration.d.ts → interfaces/vertices/properties/planned-scheduled-duration.d.ts} +2 -2
- package/dist/core/interfaces/vertices/properties/species.d.ts +9 -0
- package/dist/core/interfaces/vertices/properties/tags.d.ts +9 -0
- package/dist/core/interfaces/vertices/properties/week.d.ts +22 -0
- package/dist/core/interfaces/vertices/properties/week.js +6 -0
- package/dist/core/interfaces/vertices/properties/week.js.map +1 -0
- package/dist/core/interfaces/vertices/root-intervals.d.ts +14 -0
- package/dist/core/interfaces/vertices/syllabuses.d.ts +18 -0
- package/dist/core/interfaces/vertices/teachers.d.ts +43 -0
- package/dist/core/interfaces/vertices/users.d.ts +8 -0
- package/dist/core/interfaces/vertices/util/common.d.ts +28 -0
- package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.ts +31 -0
- package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.ts +51 -0
- package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.ts +64 -0
- package/dist/core/interfaces/vertices/util/edges.d.ts +105 -0
- package/dist/core/interfaces/vertices/util/index.d.ts +5 -0
- package/dist/core/interfaces/vertices/util/keys-of.d.ts +27 -0
- package/dist/core/interfaces/vertices/util/serialized-vertex-export.d.ts +12 -0
- package/dist/core/interfaces/vertices/util/util.d.ts +76 -0
- package/dist/core/interfaces/vertices/util/vertex-query/index.d.ts +44 -0
- package/dist/core/interfaces/vertices/util/vertex-query/util.d.ts +13 -0
- package/dist/core/interfaces/vertices/util/vertex.d.ts +70 -0
- package/dist/core/interfaces/vertices/vertex-query.d.ts +102 -0
- package/dist/core/interfaces/vertices/vertex-query.js +94 -0
- package/dist/core/interfaces/vertices/vertex-query.js.map +1 -0
- package/dist/core/to/configurations.js +2 -3
- package/dist/core/to/configurations.js.map +1 -1
- package/dist/core/to/courses.js +2 -3
- package/dist/core/to/courses.js.map +1 -1
- package/dist/core/to/division.js.map +1 -1
- package/dist/core/to/events.js +2 -3
- package/dist/core/to/events.js.map +1 -1
- package/dist/core/to/exceptions.js +4 -4
- package/dist/core/to/exceptions.js.map +1 -1
- package/dist/core/to/groups.js +2 -3
- package/dist/core/to/groups.js.map +1 -1
- package/dist/core/to/locations.js +2 -3
- package/dist/core/to/locations.js.map +1 -1
- package/dist/core/to/locked-times.js +2 -3
- package/dist/core/to/locked-times.js.map +1 -1
- package/dist/core/to/overlap-groups.js +2 -3
- package/dist/core/to/overlap-groups.js.map +1 -1
- package/dist/core/to/periods.js +2 -3
- package/dist/core/to/periods.js.map +1 -1
- package/dist/core/to/persons.js +3 -9
- package/dist/core/to/persons.js.map +1 -1
- package/dist/core/to/root-intervals.js +2 -3
- package/dist/core/to/root-intervals.js.map +1 -1
- package/dist/core/to/schedules.d.ts +17 -18
- package/dist/core/to/schedules.js.map +1 -1
- package/dist/core/to/settings.js +2 -3
- package/dist/core/to/settings.js.map +1 -1
- package/dist/core/to/syllabuses.js +2 -3
- package/dist/core/to/syllabuses.js.map +1 -1
- package/dist/core/to/teachers.js +4 -4
- package/dist/core/to/teachers.js.map +1 -1
- package/dist/core/to/util.d.ts +4 -8
- package/dist/core/to/util.js +7 -5
- package/dist/core/to/util.js.map +1 -1
- package/dist/core/types/common/index.d.ts +4 -41
- package/dist/core/types/index.d.ts +108 -112
- package/dist/core/util.js +4 -5
- package/dist/core/util.js.map +1 -1
- package/dist/identify/constants/index.d.ts +1 -1
- package/dist/identify/constants/index.js +2 -1
- package/dist/identify/constants/index.js.map +1 -1
- package/dist/identify/index.js +9 -3
- package/dist/identify/index.js.map +1 -1
- package/dist/index.d.ts +23 -1
- package/dist/index.js +4 -1
- package/dist/sdui/from/classes.js.map +1 -1
- package/dist/sdui/from/courses.js.map +1 -1
- package/dist/sdui/from/holidays.js.map +1 -1
- package/dist/sdui/from/index.js.map +1 -1
- package/dist/sdui/from/lessons.js +4 -0
- package/dist/sdui/from/lessons.js.map +1 -1
- package/dist/sdui/from/rooms.js.map +1 -1
- package/dist/sdui/from/schedules.d.ts +10 -8
- package/dist/sdui/from/schedules.js.map +1 -1
- package/dist/sdui/from/school-years.js +0 -1
- package/dist/sdui/from/school-years.js.map +1 -1
- package/dist/sdui/from/substitution-plans.js.map +1 -1
- package/dist/sdui/from/teachers.js.map +1 -1
- package/dist/sdui/index.d.ts +1 -1
- package/dist/sdui/to/classes.js.map +1 -1
- package/dist/sdui/to/courses.js.map +1 -1
- package/dist/sdui/to/holidays.js.map +1 -1
- package/dist/sdui/to/hours.js.map +1 -1
- package/dist/sdui/to/index.d.ts +12 -10
- package/dist/sdui/to/lessons.js.map +1 -1
- package/dist/sdui/to/rooms.js.map +1 -1
- package/dist/sdui/to/schedules.js.map +1 -1
- package/dist/sdui/to/school-years.js.map +1 -1
- package/dist/sdui/to/substitution-plans.js +3 -6
- package/dist/sdui/to/substitution-plans.js.map +1 -1
- package/dist/sdui/to/teachers.js.map +1 -1
- package/dist/vKlass/from/index.js.map +1 -1
- package/dist/vKlass/from/schedule.d.ts +4 -3
- package/dist/vKlass/from/schedule.js +2 -2
- package/dist/vKlass/from/schedule.js.map +1 -1
- package/dist/vKlass/to/schedules.d.ts +4 -4
- package/dist/vKlass/to/schedules.js +6 -17
- package/dist/vKlass/to/schedules.js.map +1 -1
- package/package.json +24 -22
- package/dist/core/types/areas.d.ts +0 -10
- package/dist/core/types/common/break-lengths.d.ts +0 -5
- package/dist/core/types/common/days.d.ts +0 -8
- package/dist/core/types/common/intervals.d.ts +0 -20
- package/dist/core/types/common/tag.d.ts +0 -9
- package/dist/core/types/configurations.d.ts +0 -31
- package/dist/core/types/courses.d.ts +0 -60
- package/dist/core/types/divisions.d.ts +0 -24
- package/dist/core/types/events.d.ts +0 -56
- package/dist/core/types/exceptions.d.ts +0 -35
- package/dist/core/types/groups.d.ts +0 -44
- package/dist/core/types/locations.d.ts +0 -27
- package/dist/core/types/locked-times.d.ts +0 -33
- package/dist/core/types/overlap-groups.d.ts +0 -14
- package/dist/core/types/periods.d.ts +0 -14
- package/dist/core/types/persons.d.ts +0 -38
- package/dist/core/types/root-intervals.d.ts +0 -13
- package/dist/core/types/schedules.d.ts +0 -44
- package/dist/core/types/syllabus.d.ts +0 -18
- package/dist/core/types/teachers.d.ts +0 -44
- package/dist/core/vertex-mapping.d.ts +0 -69
package/dist/RS/to/schedules.js
CHANGED
|
@@ -2,6 +2,7 @@ import { CoreMap } from "../../core/index.js";
|
|
|
2
2
|
import { parseInput } from "./input/input.js";
|
|
3
3
|
import { makeConnected } from "../make-connected.js";
|
|
4
4
|
import { initialConfiguration } from "./initial-configuration.js";
|
|
5
|
+
import { structure } from "../types/to.js";
|
|
5
6
|
import { pick } from "lodash-es";
|
|
6
7
|
|
|
7
8
|
//#region src/RS/to/schedules.ts
|
|
@@ -25,8 +26,8 @@ function schedules(data, _options = {}) {
|
|
|
25
26
|
const connectedData = makeConnected(data);
|
|
26
27
|
return {
|
|
27
28
|
meta: {
|
|
28
|
-
structure
|
|
29
|
-
division: pick(
|
|
29
|
+
structure,
|
|
30
|
+
division: pick(connectedData.division, "displayName", "start", "end")
|
|
30
31
|
},
|
|
31
32
|
algorithmParameters: { weights: options.algorithmWeightParameters },
|
|
32
33
|
input: parseInput(connectedData, options),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.js","names":["partialScheduleOptions: Types.parsedToOptions['partialScheduleOptions']"],"sources":["../../../src/RS/to/schedules.ts"],"sourcesContent":["import { pick } from 'lodash-es';\nimport { parseInput } from './input/input';\nimport { makeConnected } from '../make-connected';\nimport { initialConfiguration } from './initial-configuration';\nimport type { Types } from '../types';\nimport { CoreMap } from '../../core';\n\nexport function schedules (\n data: Types.toInput,\n _options: Types.toOptions = {}\n): Types.toOutput {\n ////\n //// parse the options\n ////\n const options = ((): Types.parsedToOptions => {\n const x = _options.partialScheduleOptions;\n const partialScheduleOptions: Types.parsedToOptions['partialScheduleOptions'] = x\n ? {\n includedEvents: x.includedEvents ? new Set(x.includedEvents) : undefined,\n includedLocations: x.includedLocations ? new Set(x.includedLocations) : undefined,\n omittedEventsHandling: x.omittedEventsHandling\n }\n : undefined;\n\n return { ..._options, partialScheduleOptions };\n })();\n\n ////\n //// for backward compatibility: add default collection to included events set\n ////\n if (options.partialScheduleOptions?.includedEvents?.size) {\n options.partialScheduleOptions.includedEvents = new Set(\n [...options.partialScheduleOptions.includedEvents]\n .map(x => {\n // should start with 'events.' or 'lockedTimes.' prefix\n if (x.startsWith('events.') || x.startsWith('lockedTimes.')) return x;\n return `events.${x}`;\n })\n );\n }\n\n\n // we will work only with connected schedule data\n const connectedData = makeConnected(data);\n\n return {\n meta: {\n structure:
|
|
1
|
+
{"version":3,"file":"schedules.js","names":["partialScheduleOptions: Types.parsedToOptions['partialScheduleOptions']"],"sources":["../../../src/RS/to/schedules.ts"],"sourcesContent":["import { pick } from 'lodash-es';\nimport { parseInput } from './input/input';\nimport { makeConnected } from '../make-connected';\nimport { initialConfiguration } from './initial-configuration';\nimport type { Types } from '../types';\nimport { CoreMap } from '../../core';\nimport { structure } from '../types/to';\n\nexport function schedules (\n data: Types.toInput,\n _options: Types.toOptions = {}\n): Types.toOutput {\n ////\n //// parse the options\n ////\n const options = ((): Types.parsedToOptions => {\n const x = _options.partialScheduleOptions;\n const partialScheduleOptions: Types.parsedToOptions['partialScheduleOptions'] = x\n ? {\n includedEvents: x.includedEvents ? new Set(x.includedEvents) : undefined,\n includedLocations: x.includedLocations ? new Set(x.includedLocations) : undefined,\n omittedEventsHandling: x.omittedEventsHandling\n }\n : undefined;\n\n return { ..._options, partialScheduleOptions };\n })();\n\n ////\n //// for backward compatibility: add default collection to included events set\n ////\n if (options.partialScheduleOptions?.includedEvents?.size) {\n options.partialScheduleOptions.includedEvents = new Set(\n [...options.partialScheduleOptions.includedEvents]\n .map(x => {\n // should start with 'events.' or 'lockedTimes.' prefix\n if (x.startsWith('events.') || x.startsWith('lockedTimes.')) return x;\n return `events.${x}`;\n })\n );\n }\n\n\n // we will work only with connected schedule data\n const connectedData = makeConnected(data);\n\n return {\n meta: {\n structure: structure,\n division: pick(connectedData.division, 'displayName', 'start', 'end'),\n },\n algorithmParameters: {\n weights: options.algorithmWeightParameters,\n },\n input: parseInput(connectedData, options),\n ...options.appendCoreData && { coreData: CoreMap.to.schedules(data) },\n ...options.appendOutput && { output: initialConfiguration(connectedData.events, connectedData.lockedTimes, options) },\n };\n};"],"mappings":";;;;;;;;AAQA,SAAgB,UACd,MACA,WAA4B,EAAE,EACd;CAIhB,MAAM,iBAAwC;EAC5C,MAAM,IAAI,SAAS;EACnB,MAAMA,yBAA0E,IAC5E;GACA,gBAAuB,EAAE,iBAAoB,IAAI,IAAI,EAAE,eAAe,GAAM;GAC5E,mBAAuB,EAAE,oBAAoB,IAAI,IAAI,EAAE,kBAAkB,GAAG;GAC5E,uBAAuB,EAAE;GAC1B,GACC;AAEJ,SAAO;GAAE,GAAG;GAAU;GAAwB;KAC5C;AAKJ,KAAI,QAAQ,wBAAwB,gBAAgB,KAClD,SAAQ,uBAAuB,iBAAiB,IAAI,IAClD,CAAC,GAAG,QAAQ,uBAAuB,eAAe,CAC/C,KAAI,MAAK;AAER,MAAI,EAAE,WAAW,UAAU,IAAI,EAAE,WAAW,eAAe,CAAE,QAAO;AACpE,SAAO,UAAU;GACjB,CACL;CAKH,MAAM,gBAAgB,cAAc,KAAK;AAEzC,QAAO;EACL,MAAM;GACO;GACX,UAAW,KAAK,cAAc,UAAU,eAAe,SAAS,MAAM;GACvE;EACD,qBAAqB,EACnB,SAAS,QAAQ,2BAClB;EACD,OAAO,WAAW,eAAe,QAAQ;EACzC,GAAG,QAAQ,kBAAkB,EAAE,UAAU,QAAQ,GAAG,UAAU,KAAK,EAAE;EACrE,GAAG,QAAQ,gBAAkB,EAAE,QAAQ,qBAAqB,cAAc,QAAQ,cAAc,aAAa,QAAQ,EAAE;EACxH"}
|
package/dist/RS/types/to.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseOptions } from "../../common/types.js";
|
|
2
2
|
import { Types } from "../../core/types/index.js";
|
|
3
|
+
import "../../core/index.js";
|
|
3
4
|
import { MixedScheduleData } from "../make-connected.js";
|
|
4
5
|
import { AlgorithmWeightParameters } from "./algorithm-parameters.js";
|
|
5
6
|
import { Types as Types$1 } from "./index.js";
|
|
@@ -17,7 +18,15 @@ interface ToOptions extends BaseOptions {
|
|
|
17
18
|
meta?: boolean;
|
|
18
19
|
isPrivateId?: boolean;
|
|
19
20
|
isPublicId?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* If true, the output will include the full core data. This enables the resulting output file to be uploaded as a new schedule.
|
|
23
|
+
* @default false
|
|
24
|
+
*/
|
|
20
25
|
appendCoreData?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* If true, the output will include current configuration of events and locked times as `output` entry.
|
|
28
|
+
* @default false
|
|
29
|
+
*/
|
|
21
30
|
appendOutput?: boolean;
|
|
22
31
|
/**
|
|
23
32
|
* @deprecated
|
|
@@ -40,11 +49,12 @@ interface ToOptions extends BaseOptions {
|
|
|
40
49
|
interface ParsedToOptions extends Omit<ToOptions, 'partialScheduleOptions'> {
|
|
41
50
|
partialScheduleOptions?: PartialScheduleOptions<Set<string>>;
|
|
42
51
|
}
|
|
43
|
-
|
|
52
|
+
declare const structure = "RS/algorithm-5.0.2";
|
|
53
|
+
type Structure = typeof structure;
|
|
44
54
|
interface ToOutput {
|
|
45
55
|
meta: {
|
|
46
56
|
structure?: Structure;
|
|
47
|
-
division: Pick<Types.
|
|
57
|
+
division: Pick<Types.Deep.Division, 'displayName' | 'start' | 'end'>;
|
|
48
58
|
};
|
|
49
59
|
algorithmParameters?: {
|
|
50
60
|
weights?: AlgorithmWeightParameters;
|
|
@@ -52,7 +62,7 @@ interface ToOutput {
|
|
|
52
62
|
score?: [number, number, number, number];
|
|
53
63
|
input: Types$1.scheduleData;
|
|
54
64
|
output?: Types$1.configuration[];
|
|
55
|
-
coreData?: Partial<Types.
|
|
65
|
+
coreData?: Partial<Types.SerializedWithOptionalId.Schedule>;
|
|
56
66
|
}
|
|
57
67
|
//#endregion
|
|
58
68
|
export { ParsedToOptions, Structure, ToInput, ToOptions, ToOutput };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to.js","names":[],"sources":["../../../src/RS/types/to.ts"],"sourcesContent":["import type { BaseOptions } from '../../common/types';\nimport type { CoreTypes } from '../../core';\nimport type { MixedScheduleData } from '../make-connected';\nimport type { Types } from './';\nimport type { AlgorithmWeightParameters } from './algorithm-parameters';\n\n\nexport type ToInput = MixedScheduleData;\n\ntype PartialScheduleOptions<IDs extends Array<string> | Set<string>> = {\n /** @description undefined means all included */\n includedEvents?: IDs;\n /** @description undefined means all included */\n includedLocations?: IDs;\n omittedEventsHandling: 'ignore' | 'freeze';\n};\n\nexport interface ToOptions extends BaseOptions {\n meta?: boolean;\n isPrivateId?: boolean;\n isPublicId?: boolean;\n /**\n * If true, the output will include the full core data. This enables the resulting output file to be uploaded as a new schedule.\n * @default false\n */\n appendCoreData?: boolean;\n /**\n * If true, the output will include current configuration of events and locked times as `output` entry.\n * @default false\n */\n appendOutput?: boolean;\n\n /**\n * @deprecated\n * If true, the mapping becomes the same as the previous version 2 one. That means:\n *\n * - New root level entries: `intervals` and `individuals`\n * - As the there is now a root level `intervals` the former may be references from `Collection.intervals`, `Group.intervals` etc.\n * - The `Collection.groups` and `Event.groups` supports referencing `individuals` (and `individuals sets`) in addition to `groups`\n * - The `Group.forbidOverlappingEvents` has been removed.\n * - The `Group.disableDayLengthPunishment` has been replaced by `Group.minimizeGaps`\n */\n oldFormat?: boolean;\n\n partialScheduleOptions?: PartialScheduleOptions<Array<string> | Set<string>>\n\n algorithmWeightParameters?: AlgorithmWeightParameters;\n\n /**\n * to be used before whe have migrated from \"maxNumWorkingHours\" and \"maxNumDailyWorkingHours\" to \"maximumScheduleSpan\"\n */\n useMaximumScheduleSpan?: boolean;\n}\n\nexport interface ParsedToOptions extends Omit<ToOptions, 'partialScheduleOptions'> {\n partialScheduleOptions?: PartialScheduleOptions<Set<string>>\n}\n\nexport const structure = 'RS/algorithm-5.0.2';\nexport type Structure = typeof structure;\nexport interface ToOutput {\n meta: {\n structure?: Structure;\n division: Pick<CoreTypes.Deep.Division, 'displayName' | 'start' | 'end'>;\n };\n algorithmParameters?: {\n weights?: AlgorithmWeightParameters;\n };\n score?: [number, number, number, number];\n input: Types.scheduleData;\n output?: Types.configuration[];\n coreData?: Partial<CoreTypes.SerializedWithOptionalId.Schedule>;\n}"],"mappings":";AA0DA,MAAa,YAAY"}
|
|
@@ -7,7 +7,7 @@ var activities_default = (activities, options) => {
|
|
|
7
7
|
return activities.map((activity) => {
|
|
8
8
|
if (parentActivities.has(activity.id)) return;
|
|
9
9
|
const groupIndexSet = [...new Set([void 0, ...activity.rooms?.map(({ index }) => index) ?? []])];
|
|
10
|
-
|
|
10
|
+
return {
|
|
11
11
|
ids: activity.id,
|
|
12
12
|
startDate: activity.startDate,
|
|
13
13
|
...omitBy({
|
|
@@ -27,7 +27,6 @@ var activities_default = (activities, options) => {
|
|
|
27
27
|
})) },
|
|
28
28
|
...activity._embedded?.syllabus && { subject: activity._embedded.syllabus.subjectCode }
|
|
29
29
|
};
|
|
30
|
-
return doc;
|
|
31
30
|
}).filter((x) => x != null);
|
|
32
31
|
};
|
|
33
32
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activities.js","names":[],"sources":["../../../src/SS12000/from/activities.ts"],"sourcesContent":["import { isNil, omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Activity } from '../types/activities';\n\nexport default (\n activities: Activity[],\n options?: { interval?: { start: string, end: string } }\n) => {\n if (!Array.isArray(activities))\n throw new Error('(SS12000::From::Activities) Activities input is not of array type', { cause: 'invalid_input' });\n\n const parentActivities = new Set(activities.map(x => x.parentActivity?.id).filter(Boolean));\n\n return activities\n .map((activity): CoreTypes.
|
|
1
|
+
{"version":3,"file":"activities.js","names":[],"sources":["../../../src/SS12000/from/activities.ts"],"sourcesContent":["import { isNil, omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Activity } from '../types/activities';\n\nexport default (\n activities: Activity[],\n options?: { interval?: { start: string, end: string } }\n) => {\n if (!Array.isArray(activities))\n throw new Error('(SS12000::From::Activities) Activities input is not of array type', { cause: 'invalid_input' });\n\n const parentActivities = new Set(activities.map(x => x.parentActivity?.id).filter(Boolean));\n\n return activities\n .map((activity): CoreTypes.MixedWithoutInternalId.Course | undefined => {\n // Skip activities that are above courses\n if (parentActivities.has(activity.id)) return;\n\n const groupIndexSet = [...new Set<number | undefined>([undefined, ...(activity.rooms?.map(({ index }) => index) ?? [])])];\n\n const doc = {\n ids: activity.id,\n startDate: activity.startDate,\n ...omitBy({\n displayName: activity.displayName,\n comment: activity.comment,\n subject: activity.subject,\n endDate: activity.endDate,\n syllabus: activity._embedded?.syllabus,\n }, isNil),\n ...activity.minutesPlanned && { plannedDuration: `${ Math.ceil(activity.minutesPlanned / 60) } hrs` },\n type: activity.activityType,\n groups: activity.groups?.map(({ id }) => ({ to: id })),\n teachers: activity.teachers?.map(({ duty: { id } }) => ({ to: id })),\n // not in the standard\n ...activity.rooms && {\n locations: activity.rooms?.map(({ room, index }) => ({ locations: [room.id!] as [string], groupIndex: groupIndexSet.indexOf(index) })),\n },\n ...activity._embedded?.syllabus && {\n subject: activity._embedded.syllabus.subjectCode,\n }\n };\n return doc;\n })\n .filter(x => x != null);\n};"],"mappings":";;;AAIA,0BACE,YACA,YACG;AACH,KAAI,CAAC,MAAM,QAAQ,WAAW,CAC5B,OAAM,IAAI,MAAM,qEAAqE,EAAE,OAAO,iBAAiB,CAAC;CAElH,MAAM,mBAAmB,IAAI,IAAI,WAAW,KAAI,MAAK,EAAE,gBAAgB,GAAG,CAAC,OAAO,QAAQ,CAAC;AAE3F,QAAO,WACJ,KAAK,aAAkE;AAEtE,MAAI,iBAAiB,IAAI,SAAS,GAAG,CAAE;EAEvC,MAAM,gBAAgB,CAAC,GAAG,IAAI,IAAwB,CAAC,QAAW,GAAI,SAAS,OAAO,KAAK,EAAE,YAAY,MAAM,IAAI,EAAE,CAAE,CAAC,CAAC;AAwBzH,SAtBY;GACV,KAAW,SAAS;GACpB,WAAW,SAAS;GACpB,GAAG,OAAO;IACR,aAAa,SAAS;IACtB,SAAa,SAAS;IACtB,SAAa,SAAS;IACtB,SAAa,SAAS;IACtB,UAAa,SAAS,WAAW;IAClC,EAAE,MAAM;GACT,GAAG,SAAS,kBAAkB,EAAE,iBAAiB,GAAI,KAAK,KAAK,SAAS,iBAAiB,GAAG,CAAE,OAAO;GACrG,MAAU,SAAS;GACnB,QAAU,SAAS,QAAQ,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE;GACxD,UAAU,SAAS,UAAU,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE;GAEpE,GAAG,SAAS,SAAS,EACnB,WAAW,SAAS,OAAO,KAAK,EAAE,MAAM,aAAa;IAAE,WAAW,CAAC,KAAK,GAAI;IAAc,YAAY,cAAc,QAAQ,MAAM;IAAE,EAAE,EACvI;GACD,GAAG,SAAS,WAAW,YAAY,EACjC,SAAS,SAAS,UAAU,SAAS,aACtC;GACF;GAED,CACD,QAAO,MAAK,KAAK,KAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-events.js","names":["toRoom"],"sources":["../../../src/SS12000/from/calendar-events.ts"],"sourcesContent":["import moment from 'moment';\nimport type { CoreTypes } from '../../core';\nimport type { CalendarEvent } from '../types/calendar-events';\nimport toRoom from './rooms';\n\nexport default (events: CalendarEvent[]) => {\n if (!Array.isArray(events))\n throw new Error('(SS12000::From::CalendarEvents) CalendarEvent input is not of array type', { cause: 'invalid_input' });\n\n return events\n .map((event): CoreTypes.
|
|
1
|
+
{"version":3,"file":"calendar-events.js","names":["toRoom"],"sources":["../../../src/SS12000/from/calendar-events.ts"],"sourcesContent":["import moment from 'moment';\nimport type { CoreTypes } from '../../core';\nimport type { CalendarEvent } from '../types/calendar-events';\nimport toRoom from './rooms';\n\nexport default (events: CalendarEvent[]) => {\n if (!Array.isArray(events))\n throw new Error('(SS12000::From::CalendarEvents) CalendarEvent input is not of array type', { cause: 'invalid_input' });\n\n return events\n .map((event): CoreTypes.MixedWithoutInternalId.Event => ({\n ids: event.id,\n start: event.startTime.toString(),\n end: event.endTime.toString(),\n duration: moment(event.endTime).diff(event.endTime, 'm'),\n preferredDuration: moment(event.endTime).diff(event.endTime, 'm'),\n course: event.activity.id,\n inLocations: toRoom(event.rooms ?? []),\n // resources: toResource([])\n }));\n};\n"],"mappings":";;;;AAKA,+BAAgB,WAA4B;AAC1C,KAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,OAAM,IAAI,MAAM,4EAA4E,EAAE,OAAO,iBAAiB,CAAC;AAEzH,QAAO,OACJ,KAAK,WAAmD;EACvD,KAAmB,MAAM;EACzB,OAAmB,MAAM,UAAU,UAAU;EAC7C,KAAmB,MAAM,QAAQ,UAAU;EAC3C,UAAmB,OAAO,MAAM,QAAQ,CAAC,KAAK,MAAM,SAAS,IAAI;EACjE,mBAAmB,OAAO,MAAM,QAAQ,CAAC,KAAK,MAAM,SAAS,IAAI;EACjE,QAAmB,MAAM,SAAS;EAClC,aAAmBA,cAAO,MAAM,SAAS,EAAE,CAAC;EAE7C,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duties.js","names":["toPerson"],"sources":["../../../src/SS12000/from/duties.ts"],"sourcesContent":["import { omit } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Duty } from '../types/duties';\nimport toPerson from './persons';\n\nexport default (duties: Duty[]) => {\n if (!Array.isArray(duties))\n throw new Error('(SS12000::From::Duties) Teacher input is not of array type', { cause: 'invalid_input' });\n\n return duties\n .map((duty): CoreTypes.
|
|
1
|
+
{"version":3,"file":"duties.js","names":["toPerson"],"sources":["../../../src/SS12000/from/duties.ts"],"sourcesContent":["import { omit } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Duty } from '../types/duties';\nimport toPerson from './persons';\n\nexport default (duties: Duty[]) => {\n if (!Array.isArray(duties))\n throw new Error('(SS12000::From::Duties) Teacher input is not of array type', { cause: 'invalid_input' });\n\n return duties\n .map((duty): CoreTypes.MixedWithoutInternalId.Teacher => ({\n ids: duty.id,\n displayName: duty.displayName ?? duty.person?.displayName,\n signature: duty.signature,\n ...(duty.person || duty._embedded?.person) && {\n person: {\n type: 'Teacher',\n ...duty.person && { ids: duty.person.id },\n ...duty._embedded?.person && omit(toPerson([ duty._embedded.person ])[0], 'type')\n }\n }\n }));\n};\n"],"mappings":";;;;AAKA,sBAAgB,WAAmB;AACjC,KAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,OAAM,IAAI,MAAM,8DAA8D,EAAE,OAAO,iBAAiB,CAAC;AAE3G,QAAO,OACJ,KAAK,UAAoD;EACxD,KAAa,KAAK;EAClB,aAAa,KAAK,eAAe,KAAK,QAAQ;EAC9C,WAAa,KAAK;EAClB,IAAI,KAAK,UAAU,KAAK,WAAW,WAAW,EAC5C,QAAQ;GACN,MAAM;GACN,GAAG,KAAK,UAAU,EAAE,KAAK,KAAK,OAAO,IAAI;GACzC,GAAG,KAAK,WAAW,UAAU,KAAKA,gBAAS,CAAE,KAAK,UAAU,OAAQ,CAAC,CAAC,IAAI,OAAO;GAClF,EACF;EACF,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.js","names":[],"sources":["../../../src/SS12000/from/groups.ts"],"sourcesContent":["import moment from 'moment';\nimport type { CoreTypes } from '../../core';\nimport type { Group } from '../types/groups';\n\nfunction _transformGroupMembers (\n members: Group['groupMemberships'],\n options?: Pick<CoreTypes.
|
|
1
|
+
{"version":3,"file":"groups.js","names":[],"sources":["../../../src/SS12000/from/groups.ts"],"sourcesContent":["import moment from 'moment';\nimport type { CoreTypes } from '../../core';\nimport type { Group } from '../types/groups';\n\nfunction _transformGroupMembers (\n members: Group['groupMemberships'],\n options?: Pick<CoreTypes.Deep.Division, 'start' | 'end'>\n) {\n return [\n ...new Set(\n members?.filter(member => {\n if (options?.end && member.startDate && !moment(member.startDate).isBefore(moment(options.end)))\n return false;\n if (options?.start && member.endDate && !moment(member.endDate).isAfter(moment(options.start)))\n return false;\n return true;\n })\n .map((member) => member.person.id)\n .filter(Boolean)\n )\n ];\n}\n\nexport default (\n groups: Group[],\n options?: Pick<CoreTypes.Deep.Division, 'start' | 'end'>\n) => {\n if (!Array.isArray(groups))\n throw new Error('(SS12000::From::Groups) Group input is not of array type', { cause: 'invalid_input' });\n\n return groups\n .map((group): CoreTypes.MixedWithoutInternalId.Group => ({\n ids: group.id,\n displayName: group.displayName,\n ...group.groupType == 'Klass' && { species: 'class' },\n ...group.groupMemberships && {\n members: _transformGroupMembers(group.groupMemberships, options)\n }\n }));\n};"],"mappings":";;;AAIA,SAAS,uBACP,SACA,SACA;AACA,QAAO,CACL,GAAG,IAAI,IACL,SAAS,QAAO,WAAU;AACxB,MAAI,SAAS,OAAO,OAAO,aAAa,CAAC,OAAO,OAAO,UAAU,CAAC,SAAS,OAAO,QAAQ,IAAI,CAAC,CAC7F,QAAO;AACT,MAAI,SAAS,SAAS,OAAO,WAAW,CAAC,OAAO,OAAO,QAAQ,CAAC,QAAQ,OAAO,QAAQ,MAAM,CAAC,CAC5F,QAAO;AACT,SAAO;GACP,CACC,KAAK,WAAW,OAAO,OAAO,GAAG,CACjC,OAAO,QAAQ,CACnB,CACF;;AAGH,sBACE,QACA,YACG;AACH,KAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,OAAM,IAAI,MAAM,4DAA4D,EAAE,OAAO,iBAAiB,CAAC;AAEzG,QAAO,OACJ,KAAK,WAAmD;EACvD,KAAa,MAAM;EACnB,aAAa,MAAM;EACnB,GAAG,MAAM,aAAa,WAAW,EAAE,SAAS,SAAS;EACrD,GAAG,MAAM,oBAAoB,EAC3B,SAAS,uBAAuB,MAAM,kBAAkB,QAAQ,EACjE;EACF,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_activities","_calendarEvents","_duties","_groups","_persons","_resources","_rooms","_syllabuses"],"sources":["../../../src/SS12000/from/index.ts"],"sourcesContent":["import _activities from './activities';\nimport _calendarEvents from './calendar-events';\nimport _duties from './duties';\nimport _groups from './groups';\nimport _persons from './persons';\nimport _resources from './resources';\nimport _rooms from './rooms';\nimport _syllabuses from './syllabuses';\n\nexport default {\n activities: _activities,\n calendarEvents: _calendarEvents,\n duties: _duties,\n groups: _groups,\n persons: _persons,\n resources: _resources,\n rooms: _rooms,\n syllabuses: _syllabuses,\n};"],"mappings":";;;;;;;;;;AASA,mBAAe;CACb,YAAgBA;CAChB,gBAAgBC;CAChB,QAAgBC;CAChB,QAAgBC;CAChB,SAAgBC;CAChB,WAAgBC;CAChB,OAAgBC;CAChB,YAAgBC"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_activities","_calendarEvents","_duties","_groups","_persons","_resources","_rooms","_syllabuses"],"sources":["../../../src/SS12000/from/index.ts"],"sourcesContent":["import _activities from './activities';\nimport _calendarEvents from './calendar-events';\nimport _duties from './duties';\nimport _groups from './groups';\nimport _persons from './persons';\nimport _resources from './resources';\nimport _rooms from './rooms';\nimport _syllabuses from './syllabuses';\n\nexport default {\n activities: _activities,\n calendarEvents: _calendarEvents,\n duties: _duties,\n groups: _groups,\n persons: _persons,\n resources: _resources,\n rooms: _rooms,\n syllabuses: _syllabuses,\n};"],"mappings":";;;;;;;;;;AASA,mBAAe;CACb,YAAgBA;CAChB,gBAAgBC;CAChB,QAAgBC;CAChB,QAAgBC;CAChB,SAAgBC;CAChB,WAAgBC;CAChB,OAAgBC;CAChB,YAAgBC;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persons.js","names":["SexMap: Record<NonNullable<Person['sex']>, CoreTypes.
|
|
1
|
+
{"version":3,"file":"persons.js","names":["SexMap: Record<NonNullable<Person['sex']>, CoreTypes.Deep.Person['sex']>","TypeMap: Record<\n NonNullable<\n Person['phoneNumbers']\n >[0]['type'],\n NonNullable<\n CoreTypes.Deep.Person['phoneNumbers']\n >[0]['type']\n>"],"sources":["../../../src/SS12000/from/persons.ts"],"sourcesContent":["import { get, omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Person } from '../types/persons';\n\nconst SexMap: Record<NonNullable<Person['sex']>, CoreTypes.Deep.Person['sex']> = { Man: 'Man', Kvinna: 'Woman', Okänt: undefined };\nconst TypeMap: Record<\n NonNullable<\n Person['phoneNumbers']\n >[0]['type'],\n NonNullable<\n CoreTypes.Deep.Person['phoneNumbers']\n >[0]['type']\n> = {\n 'Privat': 'private',\n 'Hem': 'private',\n 'Arbete övrigt': 'organization',\n 'Arbete': 'organization',\n 'Skola elev': 'organization',\n 'Skola personal': 'organization'\n};\n\nexport default (groups: Person[]) => {\n if (!Array.isArray(groups))\n throw new Error('(SS12000::From::Person) Person input is not of array type', { cause: 'invalid_input' });\n\n return groups\n .map((person): CoreTypes.MixedWithoutInternalId.Person => ({\n ids: person.id,\n displayName: person.displayName,\n type: 'Student',\n ...omitBy({\n sex: person.sex ? get(SexMap, person.sex, undefined) : undefined,\n displayName: person.displayName,\n firstName: person.givenName,\n lastName: person.familyName,\n SSN: person.civicNo,\n emails: person.emails?.map(({ type, ...arg }) => ({ type: get(TypeMap, type, undefined), ...arg })),\n phoneNumbers: person.phoneNumbers?.map(({ type, ...arg }) => ({ type: get(TypeMap, type, undefined), ...arg })),\n }, x => x == null)\n }));\n};"],"mappings":";;;AAIA,MAAMA,SAA2E;CAAE,KAAK;CAAO,QAAQ;CAAS,OAAO;CAAW;AAClI,MAAMC,UAOF;CACF,UAAkB;CAClB,OAAkB;CAClB,iBAAkB;CAClB,UAAkB;CAClB,cAAkB;CAClB,kBAAkB;CACnB;AAED,uBAAgB,WAAqB;AACnC,KAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,OAAM,IAAI,MAAM,6DAA6D,EAAE,OAAO,iBAAiB,CAAC;AAE1G,QAAO,OACJ,KAAK,YAAqD;EACzD,KAAa,OAAO;EACpB,aAAa,OAAO;EACpB,MAAa;EACb,GAAG,OAAO;GACR,KAAc,OAAO,MAAM,IAAI,QAAQ,OAAO,KAAK,OAAU,GAAG;GAChE,aAAc,OAAO;GACrB,WAAc,OAAO;GACrB,UAAc,OAAO;GACrB,KAAc,OAAO;GACrB,QAAc,OAAO,QAAQ,KAAK,EAAE,KAAM,GAAG,WAAW;IAAE,MAAM,IAAI,SAAS,MAAM,OAAU;IAAE,GAAG;IAAK,EAAE;GACzG,cAAc,OAAO,cAAc,KAAK,EAAE,KAAM,GAAG,WAAW;IAAE,MAAM,IAAI,SAAS,MAAM,OAAU;IAAE,GAAG;IAAK,EAAE;GAChH,GAAE,MAAK,KAAK,KAAK;EACnB,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","names":[],"sources":["../../../src/SS12000/from/resources.ts"],"sourcesContent":["\nimport type { Resource } from '../types/resources';\n\nexport default (resources: Resource[]) => {\n if (!Array.isArray(resources))\n throw new Error('(SS12000::From::Resources) Resources input is not of array type', { cause: 'invalid_input' });\n\n return resources.map((resource) => ({\n ids: resource.id,\n }));\n};\n"],"mappings":";AAGA,yBAAgB,cAA0B;AACxC,KAAI,CAAC,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"resources.js","names":[],"sources":["../../../src/SS12000/from/resources.ts"],"sourcesContent":["\nimport type { Resource } from '../types/resources';\n\nexport default (resources: Resource[]) => {\n if (!Array.isArray(resources))\n throw new Error('(SS12000::From::Resources) Resources input is not of array type', { cause: 'invalid_input' });\n\n return resources.map((resource) => ({\n ids: resource.id,\n }));\n};\n"],"mappings":";AAGA,yBAAgB,cAA0B;AACxC,KAAI,CAAC,MAAM,QAAQ,UAAU,CAC3B,OAAM,IAAI,MAAM,mEAAmE,EAAE,OAAO,iBAAiB,CAAC;AAEhH,QAAO,UAAU,KAAK,cAAc,EAClC,KAAK,SAAS,IACf,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rooms.js","names":[],"sources":["../../../src/SS12000/from/rooms.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Room } from '../types/rooms';\n\nexport default (locations: Room[]) => {\n if (!Array.isArray(locations))\n throw new Error('(SS12000::From::Room) Room input is not of array type', { cause: 'invalid_input' });\n\n return locations\n .map((location): CoreTypes.
|
|
1
|
+
{"version":3,"file":"rooms.js","names":[],"sources":["../../../src/SS12000/from/rooms.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Room } from '../types/rooms';\n\nexport default (locations: Room[]) => {\n if (!Array.isArray(locations))\n throw new Error('(SS12000::From::Room) Room input is not of array type', { cause: 'invalid_input' });\n\n return locations\n .map((location): CoreTypes.MixedWithoutInternalId.Location => ({\n ids: location.id,\n ...omitBy({\n displayName: location.displayName,\n seats: location.seats,\n tags: location.tags,\n }, x => x == null),\n }));\n};"],"mappings":";;;AAIA,qBAAgB,cAAsB;AACpC,KAAI,CAAC,MAAM,QAAQ,UAAU,CAC3B,OAAM,IAAI,MAAM,yDAAyD,EAAE,OAAO,iBAAiB,CAAC;AAEtG,QAAO,UACJ,KAAK,cAAyD;EAC7D,KAAK,SAAS;EACd,GAAG,OAAO;GACR,aAAa,SAAS;GACtB,OAAa,SAAS;GACtB,MAAa,SAAS;GACvB,GAAE,MAAK,KAAK,KAAK;EACnB,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syllabuses.js","names":[],"sources":["../../../src/SS12000/from/syllabuses.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Syllabus } from '../types/syllabus';\n\nexport default (syllabuses: Syllabus[]) => {\n if (!Array.isArray(syllabuses))\n throw new Error('(SS12000::From::Syllabus) Syllabus input is not of array type', { cause: 'invalid_input' });\n\n return syllabuses\n .map((syllabus): CoreTypes.
|
|
1
|
+
{"version":3,"file":"syllabuses.js","names":[],"sources":["../../../src/SS12000/from/syllabuses.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { CoreTypes } from '../../core';\nimport type { Syllabus } from '../types/syllabus';\n\nexport default (syllabuses: Syllabus[]) => {\n if (!Array.isArray(syllabuses))\n throw new Error('(SS12000::From::Syllabus) Syllabus input is not of array type', { cause: 'invalid_input' });\n\n return syllabuses\n .map((syllabus): CoreTypes.MixedWithoutInternalId.Syllabus => ({\n ids: syllabus.id,\n schoolType: syllabus.schoolType!,\n official: syllabus.official!,\n subjectName: syllabus.subjectName!,\n ...omitBy({\n subjectDesignation: syllabus.subjectDesignation,\n subjectCode: syllabus.subjectCode,\n curriculum: syllabus.curriculum,\n }, x => x == null),\n }));\n};"],"mappings":";;;AAIA,0BAAgB,eAA2B;AACzC,KAAI,CAAC,MAAM,QAAQ,WAAW,CAC5B,OAAM,IAAI,MAAM,iEAAiE,EAAE,OAAO,iBAAiB,CAAC;AAE9G,QAAO,WACJ,KAAK,cAAyD;EAC7D,KAAa,SAAS;EACtB,YAAa,SAAS;EACtB,UAAa,SAAS;EACtB,aAAa,SAAS;EACtB,GAAG,OAAO;GACR,oBAAoB,SAAS;GAC7B,aAAoB,SAAS;GAC7B,YAAoB,SAAS;GAC9B,GAAE,MAAK,KAAK,KAAK;EACnB,EAAE"}
|