@royalschedule/maps 3.3.16 → 4.0.0
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/README.md +1 -0
- 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 +1 -1
- package/dist/Additio/from/persons.js.map +1 -1
- package/dist/Additio/from/schedules.d.ts +32 -2
- package/dist/Additio/from/schedules.js.map +1 -1
- package/dist/Additio/from/teachers.js.map +1 -1
- package/dist/Additio/index.js.map +1 -1
- package/dist/Additio/to/index.d.ts +13 -13
- package/dist/Additio/to/index.js.map +1 -1
- package/dist/Additio/to/schedules.js +44 -46
- package/dist/Additio/to/schedules.js.map +1 -1
- package/dist/Additio/types/index.d.ts +2 -0
- package/dist/Additio/types/options.d.ts +8 -0
- package/dist/Additio/types/schedules.d.ts +1 -5
- 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 +1 -1
- package/dist/Admentum/from/persons.js.map +1 -1
- package/dist/Admentum/from/schedules.d.ts +32 -2
- package/dist/Admentum/from/schedules.js.map +1 -1
- package/dist/Admentum/from/teachers.js.map +1 -1
- package/dist/Admentum/index.js.map +1 -1
- package/dist/Admentum/to/index.d.ts +11 -10
- package/dist/Admentum/to/index.js.map +1 -1
- package/dist/Admentum/to/schedules.js +22 -25
- package/dist/Admentum/to/schedules.js.map +1 -1
- package/dist/Excel/index.d.ts +55 -4
- package/dist/Excel/index.js.map +1 -1
- package/dist/Excel/v1/from/index.js +7 -7
- package/dist/Excel/v1/from/index.js.map +1 -1
- package/dist/Excel/v1/index.d.ts +30 -2
- package/dist/Excel/v1/index.js.map +1 -1
- package/dist/Excel/v2/from/index.js +10 -10
- package/dist/Excel/v2/from/index.js.map +1 -1
- package/dist/Excel/v2/index.d.ts +53 -2
- package/dist/Excel/v2/index.js.map +1 -1
- package/dist/IdunSoft/from/courses.js +4 -3
- package/dist/IdunSoft/from/courses.js.map +1 -1
- package/dist/IdunSoft/from/events.js +43 -32
- package/dist/IdunSoft/from/events.js.map +1 -1
- package/dist/IdunSoft/from/groups.js +5 -4
- package/dist/IdunSoft/from/groups.js.map +1 -1
- package/dist/IdunSoft/from/index.js.map +1 -1
- package/dist/IdunSoft/from/locations.js +4 -3
- package/dist/IdunSoft/from/locations.js.map +1 -1
- package/dist/IdunSoft/from/schedules.d.ts +18 -3
- package/dist/IdunSoft/from/schedules.js +5 -10
- package/dist/IdunSoft/from/schedules.js.map +1 -1
- package/dist/IdunSoft/from/teachers.js +4 -3
- package/dist/IdunSoft/from/teachers.js.map +1 -1
- package/dist/IdunSoft/index.js.map +1 -1
- package/dist/IdunSoft/to/index.d.ts +2 -3
- package/dist/IdunSoft/to/index.js.map +1 -1
- package/dist/IdunSoft/to/schedules.js +22 -21
- package/dist/IdunSoft/to/schedules.js.map +1 -1
- package/dist/InfoMentor/index.js.map +1 -1
- package/dist/InfoMentor/to/index.d.ts +2 -2
- package/dist/InfoMentor/to/index.js.map +1 -1
- package/dist/InfoMentor/to/schedules.js +26 -27
- package/dist/InfoMentor/to/schedules.js.map +1 -1
- package/dist/PlanDigital/from/index.js.map +1 -1
- package/dist/PlanDigital/from/schedules.js +7 -6
- package/dist/PlanDigital/from/schedules.js.map +1 -1
- package/dist/PlanDigital/index.d.ts +106 -5
- package/dist/PlanDigital/index.js +0 -2
- package/dist/PlanDigital/index.js.map +1 -1
- package/dist/PlanDigital/types/index.d.ts +12 -11
- package/dist/Quiculum/file/to/index.d.ts +1 -1
- package/dist/Quiculum/file/to/schedules.js +11 -13
- package/dist/Quiculum/file/to/schedules.js.map +1 -1
- package/dist/RS/from/division.d.ts +7 -0
- package/dist/RS/from/division.js +14 -0
- package/dist/RS/from/division.js.map +1 -0
- package/dist/RS/from/index.js +12 -0
- package/dist/RS/from/index.js.map +1 -0
- package/dist/RS/from/schedules.d.ts +8 -0
- package/dist/RS/from/schedules.js +36 -0
- package/dist/RS/from/schedules.js.map +1 -0
- package/dist/RS/index.d.ts +11 -12
- package/dist/RS/index.js +4 -8
- package/dist/RS/index.js.map +1 -1
- package/dist/RS/make-connected.d.ts +24 -0
- package/dist/RS/make-connected.js +258 -0
- package/dist/RS/make-connected.js.map +1 -0
- package/dist/RS/to/index.js +8 -0
- package/dist/RS/to/index.js.map +1 -0
- package/dist/RS/to/initial-configuration.js +43 -0
- package/dist/RS/to/initial-configuration.js.map +1 -0
- package/dist/RS/to/input/collections.js +57 -0
- package/dist/RS/to/input/collections.js.map +1 -0
- package/dist/RS/{v3/to → to/input}/default.js +10 -18
- package/dist/RS/to/input/default.js.map +1 -0
- package/dist/RS/to/input/dependencies.js +32 -0
- package/dist/RS/to/input/dependencies.js.map +1 -0
- package/dist/RS/to/input/dynamic-locked-times.js +67 -0
- package/dist/RS/to/input/dynamic-locked-times.js.map +1 -0
- package/dist/RS/to/input/events.js +84 -0
- package/dist/RS/to/input/events.js.map +1 -0
- package/dist/RS/to/input/groups.js +36 -0
- package/dist/RS/to/input/groups.js.map +1 -0
- package/dist/RS/to/input/individuals.js +49 -0
- package/dist/RS/to/input/individuals.js.map +1 -0
- package/dist/RS/to/input/input.js +40 -0
- package/dist/RS/to/input/input.js.map +1 -0
- package/dist/RS/to/input/intervals.js +99 -0
- package/dist/RS/to/input/intervals.js.map +1 -0
- package/dist/RS/to/input/periods.js +44 -0
- package/dist/RS/to/input/periods.js.map +1 -0
- package/dist/RS/to/input/settings.js +17 -0
- package/dist/RS/to/input/settings.js.map +1 -0
- package/dist/RS/to/input/teachers.js +36 -0
- package/dist/RS/to/input/teachers.js.map +1 -0
- package/dist/RS/to/input/util/attach-locked-times.js +27 -0
- package/dist/RS/to/input/util/attach-locked-times.js.map +1 -0
- package/dist/RS/to/input/util/parse-days.js +10 -0
- package/dist/RS/to/input/util/parse-days.js.map +1 -0
- package/dist/RS/to/input/util/parse-group-references.js +58 -0
- package/dist/RS/to/input/util/parse-group-references.js.map +1 -0
- package/dist/RS/to/input/util/parse-intervals.js +55 -0
- package/dist/RS/to/input/util/parse-intervals.js.map +1 -0
- package/dist/RS/to/input/util/parse-location-references.js +31 -0
- package/dist/RS/to/input/util/parse-location-references.js.map +1 -0
- package/dist/RS/to/input/util/parse-max-working-hours.js +17 -0
- package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -0
- package/dist/RS/to/input/util/parse-minimum-break-length.js +19 -0
- package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -0
- package/dist/RS/to/input/util/util.js +61 -0
- package/dist/RS/to/input/util/util.js.map +1 -0
- package/dist/RS/to/schedules.d.ts +7 -0
- package/dist/RS/to/schedules.js +40 -0
- package/dist/RS/to/schedules.js.map +1 -0
- package/dist/RS/{v3/types → types}/algorithm-parameters.d.ts +1 -1
- package/dist/RS/types/collections.d.ts +26 -0
- package/dist/RS/types/configurations.d.ts +10 -0
- package/dist/RS/{v3/types → types}/default.d.ts +4 -5
- package/dist/RS/types/dependencies.d.ts +16 -0
- package/dist/RS/types/event-configuration.d.ts +17 -0
- package/dist/RS/types/events.d.ts +27 -0
- package/dist/RS/{v2/types → types}/groups.d.ts +11 -12
- package/dist/RS/types/index.d.ts +45 -0
- package/dist/RS/types/individuals.d.ts +16 -0
- package/dist/RS/{v2/types → types}/locked-times.d.ts +2 -1
- package/dist/RS/types/root-intervals.d.ts +10 -0
- package/dist/RS/types/schedule-data.d.ts +16 -0
- package/dist/RS/{v2/types → types}/settings.d.ts +1 -1
- package/dist/RS/types/shared.d.ts +27 -0
- package/dist/RS/types/to.d.ts +44 -0
- package/dist/SchoolSoft/api/from/index.js.map +1 -1
- package/dist/SchoolSoft/api/from/schedules.js +31 -37
- package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
- package/dist/SchoolSoft/api/index.d.ts +14 -2
- package/dist/SchoolSoft/api/index.js.map +1 -1
- package/dist/SchoolSoft/file/from/index.js.map +1 -1
- package/dist/SchoolSoft/file/from/schedules.js +36 -46
- package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
- package/dist/SchoolSoft/file/index.d.ts +2 -3
- package/dist/SchoolSoft/file/index.js.map +1 -1
- package/dist/SchoolSoft/file/to/index.d.ts +6 -13
- package/dist/SchoolSoft/file/to/schedules.js +40 -42
- package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
- package/dist/SchoolSoft/index.d.ts +2 -3
- package/dist/SchoolSoft/index.js.map +1 -1
- package/dist/Schoolity/txt/index.js.map +1 -1
- package/dist/Schoolity/txt/to/index.d.ts +3 -3
- package/dist/Schoolity/txt/to/index.js.map +1 -1
- package/dist/Schoolity/txt/to/schedules.js +78 -96
- package/dist/Schoolity/txt/to/schedules.js.map +1 -1
- package/dist/Skola24/index.js.map +1 -1
- package/dist/Skola24/mdb/from/course-and-events.js +36 -29
- 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 +21 -3
- package/dist/Skola24/mdb/from/schedule.js +15 -17
- package/dist/Skola24/mdb/from/schedule.js.map +1 -1
- package/dist/Skola24/mdb/from/teachers.js.map +1 -1
- package/dist/Skola24/mdb/index.js.map +1 -1
- package/dist/Skola24/mdb/types/index.d.ts +7 -0
- 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.map +1 -1
- package/dist/Skola24/txt/from/schedules.d.ts +16 -0
- package/dist/Skola24/txt/from/schedules.js +90 -80
- package/dist/Skola24/txt/from/schedules.js.map +1 -1
- package/dist/Skola24/txt/index.d.ts +17 -5
- package/dist/Skola24/txt/index.js.map +1 -1
- package/dist/Skola24/txt/to/index.d.ts +3 -3
- package/dist/Skola24/txt/to/index.js.map +1 -1
- package/dist/Skola24/txt/to/schedules.js +76 -91
- package/dist/Skola24/txt/to/schedules.js.map +1 -1
- package/dist/Skola24/txt/types/index.d.ts +5 -2
- package/dist/common/constants.js +2 -2
- package/dist/common/constants.js.map +1 -1
- package/dist/common/functions.js +16 -21
- package/dist/common/functions.js.map +1 -1
- package/dist/common/get-date.js +5 -6
- package/dist/common/get-date.js.map +1 -1
- package/dist/common/make-chainable/index.js +36 -0
- package/dist/common/make-chainable/index.js.map +1 -0
- package/dist/common/types.d.ts +12 -0
- package/dist/core/from/courses.js +12 -0
- package/dist/core/from/courses.js.map +1 -0
- package/dist/core/from/events.js +13 -0
- package/dist/core/from/events.js.map +1 -0
- package/dist/core/from/exceptions.js +12 -0
- package/dist/core/from/exceptions.js.map +1 -0
- package/dist/core/from/groups.js +12 -0
- package/dist/core/from/groups.js.map +1 -0
- package/dist/core/{v2/from → from}/index.js +1 -1
- package/dist/core/from/index.js.map +1 -0
- package/dist/core/from/locations.js +12 -0
- package/dist/core/from/locations.js.map +1 -0
- package/dist/core/from/locked-times.js +12 -0
- package/dist/core/from/locked-times.js.map +1 -0
- package/dist/core/from/overlap-groups.js +12 -0
- package/dist/core/from/overlap-groups.js.map +1 -0
- package/dist/core/from/periods.js +12 -0
- package/dist/core/from/periods.js.map +1 -0
- package/dist/core/from/persons.js +12 -0
- package/dist/core/from/persons.js.map +1 -0
- package/dist/core/from/root-intervals.js +12 -0
- package/dist/core/from/root-intervals.js.map +1 -0
- package/dist/core/from/schedules.d.ts +7 -0
- package/dist/core/from/schedules.js +35 -0
- package/dist/core/from/schedules.js.map +1 -0
- package/dist/core/{v2/from → from}/syllabuses.js +1 -1
- package/dist/core/from/syllabuses.js.map +1 -0
- package/dist/core/from/teachers.js +12 -0
- package/dist/core/from/teachers.js.map +1 -0
- package/dist/core/index.d.ts +6 -12
- package/dist/core/index.js +4 -6
- package/dist/core/index.js.map +1 -1
- package/dist/core/to/courses.js +43 -0
- package/dist/core/to/courses.js.map +1 -0
- package/dist/core/to/division.js +10 -0
- package/dist/core/to/division.js.map +1 -0
- package/dist/core/to/events.js +43 -0
- package/dist/core/to/events.js.map +1 -0
- package/dist/core/to/exceptions.js +27 -0
- package/dist/core/to/exceptions.js.map +1 -0
- package/dist/core/to/groups.js +23 -0
- package/dist/core/to/groups.js.map +1 -0
- package/dist/core/{v1/to → to}/index.d.ts +1 -1
- package/dist/{RS/v3 → core}/to/index.js +1 -1
- package/dist/core/to/index.js.map +1 -0
- package/dist/core/to/locations.js +19 -0
- package/dist/core/to/locations.js.map +1 -0
- package/dist/core/to/locked-times.js +21 -0
- package/dist/core/to/locked-times.js.map +1 -0
- package/dist/core/to/overlap-groups.js +28 -0
- package/dist/core/to/overlap-groups.js.map +1 -0
- package/dist/core/to/periods.js +17 -0
- package/dist/core/to/periods.js.map +1 -0
- package/dist/core/to/persons.js +23 -0
- package/dist/core/to/persons.js.map +1 -0
- package/dist/core/to/root-intervals.js +17 -0
- package/dist/core/to/root-intervals.js.map +1 -0
- package/dist/core/to/schedules.d.ts +44 -0
- package/dist/core/to/schedules.js +40 -0
- package/dist/core/to/schedules.js.map +1 -0
- package/dist/core/to/settings.js +16 -0
- package/dist/core/to/settings.js.map +1 -0
- package/dist/core/to/syllabuses.js +17 -0
- package/dist/core/to/syllabuses.js.map +1 -0
- package/dist/core/to/teachers.js +24 -0
- package/dist/core/to/teachers.js.map +1 -0
- package/dist/core/to/util.d.ts +10 -0
- package/dist/core/to/util.js +22 -0
- package/dist/core/to/util.js.map +1 -0
- package/dist/core/types/areas.d.ts +10 -0
- package/dist/core/types/common/break-lengths.d.ts +5 -0
- package/dist/core/types/common/days.d.ts +8 -0
- package/dist/core/types/common/index.d.ts +44 -0
- package/dist/core/types/common/intervals.d.ts +14 -0
- package/dist/core/{v2/types → types}/common/maximum-schedule-span.d.ts +1 -1
- package/dist/core/{v2/types → types/common}/meta.d.ts +1 -1
- package/dist/core/types/common/planned-schedule-duration.d.ts +7 -0
- package/dist/core/types/common/tag.d.ts +9 -0
- package/dist/core/types/courses.d.ts +56 -0
- package/dist/core/{v2/types → types}/division-settings.d.ts +12 -19
- package/dist/core/types/divisions.d.ts +24 -0
- package/dist/core/types/events.d.ts +54 -0
- package/dist/core/{v2/types → types}/exceptions.d.ts +14 -23
- package/dist/core/types/groups.d.ts +39 -0
- package/dist/core/types/index.d.ts +117 -15
- package/dist/core/types/locations.d.ts +27 -0
- package/dist/core/types/locked-times.d.ts +33 -0
- package/dist/core/types/overlap-groups.d.ts +14 -0
- package/dist/core/types/periods.d.ts +14 -0
- package/dist/core/{v2/types → types}/persons.d.ts +13 -22
- package/dist/core/types/root-intervals.d.ts +13 -0
- package/dist/core/types/schedules.d.ts +44 -0
- package/dist/core/types/syllabus.d.ts +18 -0
- package/dist/core/{v2/types → types}/teachers.d.ts +18 -30
- package/dist/core/util.js +46 -0
- package/dist/core/util.js.map +1 -0
- package/dist/core/vertex-mapping.d.ts +56 -0
- package/dist/identify/constants/index.d.ts +14 -58
- package/dist/identify/constants/index.js +7 -72
- package/dist/identify/constants/index.js.map +1 -1
- package/dist/identify/index.d.ts +1 -1
- package/dist/identify/index.js +38 -29
- package/dist/identify/index.js.map +1 -1
- package/dist/index.d.ts +23 -29
- package/dist/index.js +6 -7
- 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/hours.js.map +1 -1
- 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 +19 -0
- package/dist/sdui/from/schedules.js +3 -3
- package/dist/sdui/from/schedules.js.map +1 -1
- package/dist/sdui/from/school-years.js.map +1 -1
- package/dist/sdui/from/subjects.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 +19 -11
- package/dist/sdui/index.js.map +1 -1
- package/dist/sdui/to/classes.js +4 -2
- package/dist/sdui/to/classes.js.map +1 -1
- package/dist/sdui/to/courses.js +5 -5
- package/dist/sdui/to/courses.js.map +1 -1
- package/dist/sdui/to/holidays.js +3 -2
- package/dist/sdui/to/holidays.js.map +1 -1
- package/dist/sdui/to/hours.js +4 -2
- package/dist/sdui/to/hours.js.map +1 -1
- package/dist/sdui/to/index.d.ts +11 -12
- package/dist/sdui/to/lessons.js +10 -9
- package/dist/sdui/to/lessons.js.map +1 -1
- package/dist/sdui/to/rooms.js +4 -2
- package/dist/sdui/to/rooms.js.map +1 -1
- package/dist/sdui/to/schedules.js +9 -9
- package/dist/sdui/to/schedules.js.map +1 -1
- package/dist/sdui/to/school-years.js +4 -3
- package/dist/sdui/to/school-years.js.map +1 -1
- package/dist/sdui/to/subjects.js.map +1 -1
- package/dist/sdui/to/substitution-plans.js +12 -11
- package/dist/sdui/to/substitution-plans.js.map +1 -1
- package/dist/sdui/to/teachers.js +4 -4
- package/dist/sdui/to/teachers.js.map +1 -1
- package/dist/sdui/types/index.d.ts +2 -0
- package/dist/vKlass/from/index.js +1 -3
- package/dist/vKlass/from/index.js.map +1 -1
- package/dist/vKlass/from/schedule.d.ts +18 -3
- package/dist/vKlass/from/schedule.js +16 -19
- package/dist/vKlass/from/schedule.js.map +1 -1
- package/dist/vKlass/index.d.ts +6 -4
- package/dist/vKlass/index.js.map +1 -1
- package/dist/vKlass/to/schedules.d.ts +1 -1
- package/dist/vKlass/to/schedules.js +5 -12
- package/dist/vKlass/to/schedules.js.map +1 -1
- package/dist/vKlass/types/index.d.ts +5 -5
- package/package.json +38 -29
- package/dist/PlanDigital/to/index.d.ts +0 -10
- package/dist/PlanDigital/to/index.js +0 -10
- package/dist/PlanDigital/to/index.js.map +0 -1
- package/dist/PlanDigital/to/schedules.js +0 -15
- package/dist/PlanDigital/to/schedules.js.map +0 -1
- package/dist/RS/v0/from/available-dependencies.js +0 -38
- package/dist/RS/v0/from/available-dependencies.js.map +0 -1
- package/dist/RS/v0/from/break-lengths.js +0 -15
- package/dist/RS/v0/from/break-lengths.js.map +0 -1
- package/dist/RS/v0/from/course-events.js +0 -68
- package/dist/RS/v0/from/course-events.js.map +0 -1
- package/dist/RS/v0/from/courses.js +0 -53
- package/dist/RS/v0/from/courses.js.map +0 -1
- package/dist/RS/v0/from/days.js +0 -14
- package/dist/RS/v0/from/days.js.map +0 -1
- package/dist/RS/v0/from/dependencies.js +0 -29
- package/dist/RS/v0/from/dependencies.js.map +0 -1
- package/dist/RS/v0/from/groups.js +0 -32
- package/dist/RS/v0/from/groups.js.map +0 -1
- package/dist/RS/v0/from/index.js +0 -32
- package/dist/RS/v0/from/index.js.map +0 -1
- package/dist/RS/v0/from/intervals.js +0 -15
- package/dist/RS/v0/from/intervals.js.map +0 -1
- package/dist/RS/v0/from/locked-times.js +0 -23
- package/dist/RS/v0/from/locked-times.js.map +0 -1
- package/dist/RS/v0/from/placements.js +0 -20
- package/dist/RS/v0/from/placements.js.map +0 -1
- package/dist/RS/v0/from/schedules.js +0 -44
- package/dist/RS/v0/from/schedules.js.map +0 -1
- package/dist/RS/v0/from/settings.js +0 -24
- package/dist/RS/v0/from/settings.js.map +0 -1
- package/dist/RS/v0/from/teachers.js +0 -31
- package/dist/RS/v0/from/teachers.js.map +0 -1
- package/dist/RS/v0/index.d.ts +0 -43
- package/dist/RS/v0/index.js +0 -12
- package/dist/RS/v0/index.js.map +0 -1
- package/dist/RS/v0/to/available-dependencies.js +0 -17
- package/dist/RS/v0/to/available-dependencies.js.map +0 -1
- package/dist/RS/v0/to/configurations.js +0 -22
- package/dist/RS/v0/to/configurations.js.map +0 -1
- package/dist/RS/v0/to/constraints.js +0 -34
- package/dist/RS/v0/to/constraints.js.map +0 -1
- package/dist/RS/v0/to/course-events/days.js +0 -13
- package/dist/RS/v0/to/course-events/days.js.map +0 -1
- package/dist/RS/v0/to/course-events/dependencies.js +0 -18
- package/dist/RS/v0/to/course-events/dependencies.js.map +0 -1
- package/dist/RS/v0/to/course-events/groups.js +0 -39
- package/dist/RS/v0/to/course-events/groups.js.map +0 -1
- package/dist/RS/v0/to/course-events/in-locations.js +0 -17
- package/dist/RS/v0/to/course-events/in-locations.js.map +0 -1
- package/dist/RS/v0/to/course-events/index.js +0 -52
- package/dist/RS/v0/to/course-events/index.js.map +0 -1
- package/dist/RS/v0/to/course-events/intervals.js +0 -12
- package/dist/RS/v0/to/course-events/intervals.js.map +0 -1
- package/dist/RS/v0/to/course-events/meta.js +0 -21
- package/dist/RS/v0/to/course-events/meta.js.map +0 -1
- package/dist/RS/v0/to/courses.js +0 -56
- package/dist/RS/v0/to/courses.js.map +0 -1
- package/dist/RS/v0/to/days.js +0 -11
- package/dist/RS/v0/to/days.js.map +0 -1
- package/dist/RS/v0/to/dependencies.js +0 -26
- package/dist/RS/v0/to/dependencies.js.map +0 -1
- package/dist/RS/v0/to/groups.js +0 -32
- package/dist/RS/v0/to/groups.js.map +0 -1
- package/dist/RS/v0/to/index.d.ts +0 -46
- package/dist/RS/v0/to/index.js +0 -34
- package/dist/RS/v0/to/index.js.map +0 -1
- package/dist/RS/v0/to/intervals.js +0 -17
- package/dist/RS/v0/to/intervals.js.map +0 -1
- package/dist/RS/v0/to/locked-times.js +0 -43
- package/dist/RS/v0/to/locked-times.js.map +0 -1
- package/dist/RS/v0/to/schedules.js +0 -16
- package/dist/RS/v0/to/schedules.js.map +0 -1
- package/dist/RS/v0/to/settings.js +0 -28
- package/dist/RS/v0/to/settings.js.map +0 -1
- package/dist/RS/v0/to/teachers.js +0 -30
- package/dist/RS/v0/to/teachers.js.map +0 -1
- package/dist/RS/v0/types/areas.d.ts +0 -8
- package/dist/RS/v0/types/available-dependencies.d.ts +0 -8
- package/dist/RS/v0/types/break-lengths.d.ts +0 -9
- package/dist/RS/v0/types/configurations.d.ts +0 -7
- package/dist/RS/v0/types/constraints.d.ts +0 -17
- package/dist/RS/v0/types/course-events.d.ts +0 -26
- package/dist/RS/v0/types/courses.d.ts +0 -27
- package/dist/RS/v0/types/days.d.ts +0 -8
- package/dist/RS/v0/types/dependencies.d.ts +0 -17
- package/dist/RS/v0/types/groups.d.ts +0 -25
- package/dist/RS/v0/types/index.d.ts +0 -31
- package/dist/RS/v0/types/intervals.d.ts +0 -8
- package/dist/RS/v0/types/locked-times.d.ts +0 -11
- package/dist/RS/v0/types/out-options.d.ts +0 -13
- package/dist/RS/v0/types/placements.d.ts +0 -12
- package/dist/RS/v0/types/schedules.d.ts +0 -15
- package/dist/RS/v0/types/settings.d.ts +0 -26
- package/dist/RS/v1/from/available-dependencies.js +0 -38
- package/dist/RS/v1/from/available-dependencies.js.map +0 -1
- package/dist/RS/v1/from/break-lengths.js +0 -15
- package/dist/RS/v1/from/break-lengths.js.map +0 -1
- package/dist/RS/v1/from/collections.js +0 -55
- package/dist/RS/v1/from/collections.js.map +0 -1
- package/dist/RS/v1/from/course-events.js +0 -65
- package/dist/RS/v1/from/course-events.js.map +0 -1
- package/dist/RS/v1/from/days.js +0 -14
- package/dist/RS/v1/from/days.js.map +0 -1
- package/dist/RS/v1/from/dependencies.js +0 -31
- package/dist/RS/v1/from/dependencies.js.map +0 -1
- package/dist/RS/v1/from/groups.js +0 -34
- package/dist/RS/v1/from/groups.js.map +0 -1
- package/dist/RS/v1/from/index.js +0 -32
- package/dist/RS/v1/from/index.js.map +0 -1
- package/dist/RS/v1/from/intervals.js +0 -18
- package/dist/RS/v1/from/intervals.js.map +0 -1
- package/dist/RS/v1/from/locked-times.js +0 -21
- package/dist/RS/v1/from/locked-times.js.map +0 -1
- package/dist/RS/v1/from/placements.js +0 -21
- package/dist/RS/v1/from/placements.js.map +0 -1
- package/dist/RS/v1/from/schedules.js +0 -44
- package/dist/RS/v1/from/schedules.js.map +0 -1
- package/dist/RS/v1/from/settings.js +0 -25
- package/dist/RS/v1/from/settings.js.map +0 -1
- package/dist/RS/v1/from/teachers.js +0 -33
- package/dist/RS/v1/from/teachers.js.map +0 -1
- package/dist/RS/v1/index.d.ts +0 -45
- package/dist/RS/v1/index.js +0 -12
- package/dist/RS/v1/index.js.map +0 -1
- package/dist/RS/v1/to/available-dependencies.js +0 -25
- package/dist/RS/v1/to/available-dependencies.js.map +0 -1
- package/dist/RS/v1/to/break-lengths.js +0 -19
- package/dist/RS/v1/to/break-lengths.js.map +0 -1
- package/dist/RS/v1/to/collections.js +0 -51
- package/dist/RS/v1/to/collections.js.map +0 -1
- package/dist/RS/v1/to/configurations.js +0 -22
- package/dist/RS/v1/to/configurations.js.map +0 -1
- package/dist/RS/v1/to/constraints.js +0 -26
- package/dist/RS/v1/to/constraints.js.map +0 -1
- package/dist/RS/v1/to/course-events/days.js +0 -12
- package/dist/RS/v1/to/course-events/days.js.map +0 -1
- package/dist/RS/v1/to/course-events/dependencies.js +0 -15
- package/dist/RS/v1/to/course-events/dependencies.js.map +0 -1
- package/dist/RS/v1/to/course-events/groups.js +0 -30
- package/dist/RS/v1/to/course-events/groups.js.map +0 -1
- package/dist/RS/v1/to/course-events/in-locations.js +0 -17
- package/dist/RS/v1/to/course-events/in-locations.js.map +0 -1
- package/dist/RS/v1/to/course-events/index.js +0 -47
- package/dist/RS/v1/to/course-events/index.js.map +0 -1
- package/dist/RS/v1/to/course-events/intervals.js +0 -11
- package/dist/RS/v1/to/course-events/intervals.js.map +0 -1
- package/dist/RS/v1/to/course-events/meta.js +0 -21
- package/dist/RS/v1/to/course-events/meta.js.map +0 -1
- package/dist/RS/v1/to/days.js +0 -11
- package/dist/RS/v1/to/days.js.map +0 -1
- package/dist/RS/v1/to/dependencies.js +0 -28
- package/dist/RS/v1/to/dependencies.js.map +0 -1
- package/dist/RS/v1/to/groups.js +0 -34
- package/dist/RS/v1/to/groups.js.map +0 -1
- package/dist/RS/v1/to/index.d.ts +0 -46
- package/dist/RS/v1/to/index.js +0 -34
- package/dist/RS/v1/to/index.js.map +0 -1
- package/dist/RS/v1/to/intervals.js +0 -17
- package/dist/RS/v1/to/intervals.js.map +0 -1
- package/dist/RS/v1/to/locked-times.js +0 -49
- package/dist/RS/v1/to/locked-times.js.map +0 -1
- package/dist/RS/v1/to/schedules.js +0 -16
- package/dist/RS/v1/to/schedules.js.map +0 -1
- package/dist/RS/v1/to/settings.js +0 -34
- package/dist/RS/v1/to/settings.js.map +0 -1
- package/dist/RS/v1/to/teachers.js +0 -34
- package/dist/RS/v1/to/teachers.js.map +0 -1
- package/dist/RS/v1/types/areas.d.ts +0 -8
- package/dist/RS/v1/types/available-dependencies.d.ts +0 -8
- package/dist/RS/v1/types/break-lengths.d.ts +0 -9
- package/dist/RS/v1/types/collections.d.ts +0 -27
- package/dist/RS/v1/types/configurations.d.ts +0 -10
- package/dist/RS/v1/types/constraints.d.ts +0 -17
- package/dist/RS/v1/types/course-events.d.ts +0 -26
- package/dist/RS/v1/types/days.d.ts +0 -8
- package/dist/RS/v1/types/dependencies.d.ts +0 -17
- package/dist/RS/v1/types/groups.d.ts +0 -25
- package/dist/RS/v1/types/index.d.ts +0 -31
- package/dist/RS/v1/types/intervals.d.ts +0 -8
- package/dist/RS/v1/types/locked-times.d.ts +0 -11
- package/dist/RS/v1/types/out-options.d.ts +0 -11
- package/dist/RS/v1/types/placements.d.ts +0 -12
- package/dist/RS/v1/types/schedules.d.ts +0 -16
- package/dist/RS/v1/types/settings.d.ts +0 -31
- package/dist/RS/v2/from/available-dependencies.js +0 -38
- package/dist/RS/v2/from/available-dependencies.js.map +0 -1
- package/dist/RS/v2/from/break-lengths.js +0 -15
- package/dist/RS/v2/from/break-lengths.js.map +0 -1
- package/dist/RS/v2/from/collections.js +0 -57
- package/dist/RS/v2/from/collections.js.map +0 -1
- package/dist/RS/v2/from/course-events.d.ts +0 -12
- package/dist/RS/v2/from/course-events.js +0 -67
- package/dist/RS/v2/from/course-events.js.map +0 -1
- package/dist/RS/v2/from/days.js +0 -14
- package/dist/RS/v2/from/days.js.map +0 -1
- package/dist/RS/v2/from/dependencies.js +0 -31
- package/dist/RS/v2/from/dependencies.js.map +0 -1
- package/dist/RS/v2/from/groups.js +0 -35
- package/dist/RS/v2/from/groups.js.map +0 -1
- package/dist/RS/v2/from/index.js +0 -32
- package/dist/RS/v2/from/index.js.map +0 -1
- package/dist/RS/v2/from/intervals.js +0 -18
- package/dist/RS/v2/from/intervals.js.map +0 -1
- package/dist/RS/v2/from/locked-times.js +0 -21
- package/dist/RS/v2/from/locked-times.js.map +0 -1
- package/dist/RS/v2/from/placements.js +0 -32
- package/dist/RS/v2/from/placements.js.map +0 -1
- package/dist/RS/v2/from/schedules.js +0 -78
- package/dist/RS/v2/from/schedules.js.map +0 -1
- package/dist/RS/v2/from/settings.js +0 -31
- package/dist/RS/v2/from/settings.js.map +0 -1
- package/dist/RS/v2/from/teachers.js +0 -33
- package/dist/RS/v2/from/teachers.js.map +0 -1
- package/dist/RS/v2/index.d.ts +0 -63
- package/dist/RS/v2/index.js +0 -12
- package/dist/RS/v2/index.js.map +0 -1
- package/dist/RS/v2/to/available-dependencies.js +0 -25
- package/dist/RS/v2/to/available-dependencies.js.map +0 -1
- package/dist/RS/v2/to/break-lengths.js +0 -19
- package/dist/RS/v2/to/break-lengths.js.map +0 -1
- package/dist/RS/v2/to/collections.js +0 -60
- package/dist/RS/v2/to/collections.js.map +0 -1
- package/dist/RS/v2/to/configurations.js +0 -23
- package/dist/RS/v2/to/configurations.js.map +0 -1
- package/dist/RS/v2/to/constraints.js +0 -88
- package/dist/RS/v2/to/constraints.js.map +0 -1
- package/dist/RS/v2/to/course-events/days.js +0 -12
- package/dist/RS/v2/to/course-events/days.js.map +0 -1
- package/dist/RS/v2/to/course-events/dependencies.js +0 -14
- package/dist/RS/v2/to/course-events/dependencies.js.map +0 -1
- package/dist/RS/v2/to/course-events/groups.js +0 -38
- package/dist/RS/v2/to/course-events/groups.js.map +0 -1
- package/dist/RS/v2/to/course-events/in-locations.js +0 -18
- package/dist/RS/v2/to/course-events/in-locations.js.map +0 -1
- package/dist/RS/v2/to/course-events/index.js +0 -56
- package/dist/RS/v2/to/course-events/index.js.map +0 -1
- package/dist/RS/v2/to/course-events/intervals.js +0 -11
- package/dist/RS/v2/to/course-events/intervals.js.map +0 -1
- package/dist/RS/v2/to/course-events/meta.js +0 -21
- package/dist/RS/v2/to/course-events/meta.js.map +0 -1
- package/dist/RS/v2/to/days.js +0 -11
- package/dist/RS/v2/to/days.js.map +0 -1
- package/dist/RS/v2/to/default.js +0 -36
- package/dist/RS/v2/to/default.js.map +0 -1
- package/dist/RS/v2/to/dependencies.js +0 -28
- package/dist/RS/v2/to/dependencies.js.map +0 -1
- package/dist/RS/v2/to/destructure.js +0 -40
- package/dist/RS/v2/to/destructure.js.map +0 -1
- package/dist/RS/v2/to/dynamic-locked-times.js +0 -57
- package/dist/RS/v2/to/dynamic-locked-times.js.map +0 -1
- package/dist/RS/v2/to/groups.js +0 -37
- package/dist/RS/v2/to/groups.js.map +0 -1
- package/dist/RS/v2/to/index.d.ts +0 -44
- package/dist/RS/v2/to/index.js +0 -36
- package/dist/RS/v2/to/index.js.map +0 -1
- package/dist/RS/v2/to/intervals.js +0 -32
- package/dist/RS/v2/to/intervals.js.map +0 -1
- package/dist/RS/v2/to/locked-times.js +0 -49
- package/dist/RS/v2/to/locked-times.js.map +0 -1
- package/dist/RS/v2/to/periods.js +0 -48
- package/dist/RS/v2/to/periods.js.map +0 -1
- package/dist/RS/v2/to/persons.js +0 -23
- package/dist/RS/v2/to/persons.js.map +0 -1
- package/dist/RS/v2/to/schedules.js +0 -19
- package/dist/RS/v2/to/schedules.js.map +0 -1
- package/dist/RS/v2/to/settings.js +0 -18
- package/dist/RS/v2/to/settings.js.map +0 -1
- package/dist/RS/v2/to/teachers.js +0 -37
- package/dist/RS/v2/to/teachers.js.map +0 -1
- package/dist/RS/v2/types/areas.d.ts +0 -8
- package/dist/RS/v2/types/available-dependencies.d.ts +0 -8
- package/dist/RS/v2/types/break-lengths.d.ts +0 -9
- package/dist/RS/v2/types/collections.d.ts +0 -29
- package/dist/RS/v2/types/configurations.d.ts +0 -10
- package/dist/RS/v2/types/constraints.d.ts +0 -21
- package/dist/RS/v2/types/course-events.d.ts +0 -30
- package/dist/RS/v2/types/days.d.ts +0 -8
- package/dist/RS/v2/types/default.d.ts +0 -25
- package/dist/RS/v2/types/dependencies.d.ts +0 -17
- package/dist/RS/v2/types/index.d.ts +0 -33
- package/dist/RS/v2/types/intervals.d.ts +0 -9
- package/dist/RS/v2/types/out-options.d.ts +0 -11
- package/dist/RS/v2/types/placements.d.ts +0 -12
- package/dist/RS/v2/types/schedules.d.ts +0 -18
- package/dist/RS/v3/from/division.js +0 -14
- package/dist/RS/v3/from/division.js.map +0 -1
- package/dist/RS/v3/from/index.js +0 -12
- package/dist/RS/v3/from/index.js.map +0 -1
- package/dist/RS/v3/from/schedules.js +0 -34
- package/dist/RS/v3/from/schedules.js.map +0 -1
- package/dist/RS/v3/index.d.ts +0 -21
- package/dist/RS/v3/index.js +0 -12
- package/dist/RS/v3/index.js.map +0 -1
- package/dist/RS/v3/to/available-dependencies.js +0 -26
- package/dist/RS/v3/to/available-dependencies.js.map +0 -1
- package/dist/RS/v3/to/break-lengths.js +0 -19
- package/dist/RS/v3/to/break-lengths.js.map +0 -1
- package/dist/RS/v3/to/collections.js +0 -56
- package/dist/RS/v3/to/collections.js.map +0 -1
- package/dist/RS/v3/to/configurations.js +0 -23
- package/dist/RS/v3/to/configurations.js.map +0 -1
- package/dist/RS/v3/to/constraints.js +0 -77
- package/dist/RS/v3/to/constraints.js.map +0 -1
- package/dist/RS/v3/to/course-events/days.js +0 -12
- package/dist/RS/v3/to/course-events/days.js.map +0 -1
- package/dist/RS/v3/to/course-events/dependencies.js +0 -14
- package/dist/RS/v3/to/course-events/dependencies.js.map +0 -1
- package/dist/RS/v3/to/course-events/groups.js +0 -44
- package/dist/RS/v3/to/course-events/groups.js.map +0 -1
- package/dist/RS/v3/to/course-events/in-locations.js +0 -18
- package/dist/RS/v3/to/course-events/in-locations.js.map +0 -1
- package/dist/RS/v3/to/course-events/index.js +0 -84
- package/dist/RS/v3/to/course-events/index.js.map +0 -1
- package/dist/RS/v3/to/course-events/intervals.js +0 -11
- package/dist/RS/v3/to/course-events/intervals.js.map +0 -1
- package/dist/RS/v3/to/course-events/meta.js +0 -21
- package/dist/RS/v3/to/course-events/meta.js.map +0 -1
- package/dist/RS/v3/to/days.js +0 -11
- package/dist/RS/v3/to/days.js.map +0 -1
- package/dist/RS/v3/to/default.js.map +0 -1
- package/dist/RS/v3/to/dependencies.js +0 -31
- package/dist/RS/v3/to/dependencies.js.map +0 -1
- package/dist/RS/v3/to/destructure.js +0 -33
- package/dist/RS/v3/to/destructure.js.map +0 -1
- package/dist/RS/v3/to/dynamic-locked-times.js +0 -97
- package/dist/RS/v3/to/dynamic-locked-times.js.map +0 -1
- package/dist/RS/v3/to/groups.js +0 -36
- package/dist/RS/v3/to/groups.js.map +0 -1
- package/dist/RS/v3/to/index.d.ts +0 -266
- package/dist/RS/v3/to/index.js.map +0 -1
- package/dist/RS/v3/to/individuals.js +0 -49
- package/dist/RS/v3/to/individuals.js.map +0 -1
- package/dist/RS/v3/to/intervals.js +0 -32
- package/dist/RS/v3/to/intervals.js.map +0 -1
- package/dist/RS/v3/to/locked-times.js +0 -49
- package/dist/RS/v3/to/locked-times.js.map +0 -1
- package/dist/RS/v3/to/periods.js +0 -48
- package/dist/RS/v3/to/periods.js.map +0 -1
- package/dist/RS/v3/to/schedules.js +0 -39
- package/dist/RS/v3/to/schedules.js.map +0 -1
- package/dist/RS/v3/to/settings.js +0 -18
- package/dist/RS/v3/to/settings.js.map +0 -1
- package/dist/RS/v3/to/teachers.js +0 -36
- package/dist/RS/v3/to/teachers.js.map +0 -1
- package/dist/RS/v3/to/util.js +0 -32
- package/dist/RS/v3/to/util.js.map +0 -1
- package/dist/RS/v3/types/areas.d.ts +0 -8
- package/dist/RS/v3/types/available-dependencies.d.ts +0 -8
- package/dist/RS/v3/types/break-lengths.d.ts +0 -9
- package/dist/RS/v3/types/collections.d.ts +0 -31
- package/dist/RS/v3/types/configurations.d.ts +0 -10
- package/dist/RS/v3/types/constraints.d.ts +0 -25
- package/dist/RS/v3/types/course-events.d.ts +0 -32
- package/dist/RS/v3/types/days.d.ts +0 -8
- package/dist/RS/v3/types/dependencies.d.ts +0 -17
- package/dist/RS/v3/types/groups.d.ts +0 -25
- package/dist/RS/v3/types/index.d.ts +0 -33
- package/dist/RS/v3/types/individuals.d.ts +0 -13
- package/dist/RS/v3/types/intervals.d.ts +0 -9
- package/dist/RS/v3/types/locked-times.d.ts +0 -11
- package/dist/RS/v3/types/out-options.d.ts +0 -23
- package/dist/RS/v3/types/placements.d.ts +0 -12
- package/dist/RS/v3/types/root-intervals.d.ts +0 -10
- package/dist/RS/v3/types/schedules.d.ts +0 -24
- package/dist/RS/v3/types/settings.d.ts +0 -12
- package/dist/SS12000/from/activities.js +0 -35
- package/dist/SS12000/from/activities.js.map +0 -1
- package/dist/SS12000/from/calendar-events.js +0 -20
- package/dist/SS12000/from/calendar-events.js.map +0 -1
- package/dist/SS12000/from/duties.js +0 -21
- package/dist/SS12000/from/duties.js.map +0 -1
- package/dist/SS12000/from/groups.js +0 -23
- package/dist/SS12000/from/groups.js.map +0 -1
- package/dist/SS12000/from/index.js +0 -24
- package/dist/SS12000/from/index.js.map +0 -1
- package/dist/SS12000/from/persons.js +0 -43
- package/dist/SS12000/from/persons.js.map +0 -1
- package/dist/SS12000/from/resources.js +0 -9
- package/dist/SS12000/from/resources.js.map +0 -1
- package/dist/SS12000/from/rooms.js +0 -18
- package/dist/SS12000/from/rooms.js.map +0 -1
- package/dist/SS12000/from/syllabuses.js +0 -21
- package/dist/SS12000/from/syllabuses.js.map +0 -1
- package/dist/SS12000/index.d.ts +0 -73
- package/dist/SS12000/index.js +0 -12
- package/dist/SS12000/index.js.map +0 -1
- package/dist/SS12000/to/activities.js +0 -55
- package/dist/SS12000/to/activities.js.map +0 -1
- package/dist/SS12000/to/calendar-events.js +0 -47
- package/dist/SS12000/to/calendar-events.js.map +0 -1
- package/dist/SS12000/to/common.js +0 -16
- package/dist/SS12000/to/common.js.map +0 -1
- package/dist/SS12000/to/duties.js +0 -36
- package/dist/SS12000/to/duties.js.map +0 -1
- package/dist/SS12000/to/groups.js +0 -37
- package/dist/SS12000/to/groups.js.map +0 -1
- package/dist/SS12000/to/index.d.ts +0 -25
- package/dist/SS12000/to/index.js +0 -24
- package/dist/SS12000/to/index.js.map +0 -1
- package/dist/SS12000/to/persons.js +0 -36
- package/dist/SS12000/to/persons.js.map +0 -1
- package/dist/SS12000/to/resources.js +0 -23
- package/dist/SS12000/to/resources.js.map +0 -1
- package/dist/SS12000/to/rooms.js +0 -28
- package/dist/SS12000/to/rooms.js.map +0 -1
- package/dist/SS12000/to/syllabuses.js +0 -30
- package/dist/SS12000/to/syllabuses.js.map +0 -1
- package/dist/SS12000/types/activities.d.ts +0 -41
- package/dist/SS12000/types/calendar-events.d.ts +0 -23
- package/dist/SS12000/types/codes.d.ts +0 -9
- package/dist/SS12000/types/duties.d.ts +0 -23
- package/dist/SS12000/types/duty-assignments.d.ts +0 -13
- package/dist/SS12000/types/groups.d.ts +0 -23
- package/dist/SS12000/types/index.d.ts +0 -21
- package/dist/SS12000/types/organisation.d.ts +0 -20
- package/dist/SS12000/types/persons.d.ts +0 -30
- package/dist/SS12000/types/resources.d.ts +0 -13
- package/dist/SS12000/types/rooms.d.ts +0 -17
- package/dist/SS12000/types/syllabus.d.ts +0 -19
- package/dist/core/v1/from/courses.js +0 -26
- package/dist/core/v1/from/courses.js.map +0 -1
- package/dist/core/v1/from/events.js +0 -12
- package/dist/core/v1/from/events.js.map +0 -1
- package/dist/core/v1/from/groups.js +0 -14
- package/dist/core/v1/from/groups.js.map +0 -1
- package/dist/core/v1/from/index.js +0 -8
- package/dist/core/v1/from/index.js.map +0 -1
- package/dist/core/v1/from/locations.js +0 -14
- package/dist/core/v1/from/locations.js.map +0 -1
- package/dist/core/v1/from/locked-times.js +0 -13
- package/dist/core/v1/from/locked-times.js.map +0 -1
- package/dist/core/v1/from/overlap-groups.js +0 -13
- package/dist/core/v1/from/overlap-groups.js.map +0 -1
- package/dist/core/v1/from/periods.js +0 -14
- package/dist/core/v1/from/periods.js.map +0 -1
- package/dist/core/v1/from/schedules.d.ts +0 -139
- package/dist/core/v1/from/schedules.js +0 -36
- package/dist/core/v1/from/schedules.js.map +0 -1
- package/dist/core/v1/from/teachers.js +0 -14
- package/dist/core/v1/from/teachers.js.map +0 -1
- package/dist/core/v1/index.d.ts +0 -14
- package/dist/core/v1/index.js +0 -12
- package/dist/core/v1/index.js.map +0 -1
- package/dist/core/v1/to/available-locations.js +0 -11
- package/dist/core/v1/to/available-locations.js.map +0 -1
- package/dist/core/v1/to/courses.js +0 -33
- package/dist/core/v1/to/courses.js.map +0 -1
- package/dist/core/v1/to/days.js +0 -13
- package/dist/core/v1/to/days.js.map +0 -1
- package/dist/core/v1/to/events.js +0 -35
- package/dist/core/v1/to/events.js.map +0 -1
- package/dist/core/v1/to/groups.js +0 -24
- package/dist/core/v1/to/groups.js.map +0 -1
- package/dist/core/v1/to/index.js +0 -10
- package/dist/core/v1/to/index.js.map +0 -1
- package/dist/core/v1/to/intervals.js +0 -14
- package/dist/core/v1/to/intervals.js.map +0 -1
- package/dist/core/v1/to/locations.js +0 -20
- package/dist/core/v1/to/locations.js.map +0 -1
- package/dist/core/v1/to/locked-times.js +0 -25
- package/dist/core/v1/to/locked-times.js.map +0 -1
- package/dist/core/v1/to/overlap-groups.js +0 -30
- package/dist/core/v1/to/overlap-groups.js.map +0 -1
- package/dist/core/v1/to/periods.js +0 -10
- package/dist/core/v1/to/periods.js.map +0 -1
- package/dist/core/v1/to/persons.js +0 -22
- package/dist/core/v1/to/persons.js.map +0 -1
- package/dist/core/v1/to/schedules.d.ts +0 -170
- package/dist/core/v1/to/schedules.js +0 -32
- package/dist/core/v1/to/schedules.js.map +0 -1
- package/dist/core/v1/to/settings.js +0 -13
- package/dist/core/v1/to/settings.js.map +0 -1
- package/dist/core/v1/to/teachers.js +0 -20
- package/dist/core/v1/to/teachers.js.map +0 -1
- package/dist/core/v1/types/areas.d.ts +0 -16
- package/dist/core/v1/types/available-locations.d.ts +0 -13
- package/dist/core/v1/types/break-lengths.d.ts +0 -5
- package/dist/core/v1/types/common/coalesced.d.ts +0 -10
- package/dist/core/v1/types/courses.d.ts +0 -54
- package/dist/core/v1/types/days.d.ts +0 -14
- package/dist/core/v1/types/division-settings.d.ts +0 -39
- package/dist/core/v1/types/divisions.d.ts +0 -45
- package/dist/core/v1/types/events.d.ts +0 -60
- package/dist/core/v1/types/groups.d.ts +0 -37
- package/dist/core/v1/types/index.d.ts +0 -41
- package/dist/core/v1/types/intervals.d.ts +0 -17
- package/dist/core/v1/types/locations.d.ts +0 -32
- package/dist/core/v1/types/locked-times.d.ts +0 -39
- package/dist/core/v1/types/meta.d.ts +0 -9
- package/dist/core/v1/types/overlap-groups.d.ts +0 -26
- package/dist/core/v1/types/periods.d.ts +0 -22
- package/dist/core/v1/types/persons.d.ts +0 -40
- package/dist/core/v1/types/teachers.d.ts +0 -34
- package/dist/core/v2/from/courses.js +0 -13
- package/dist/core/v2/from/courses.js.map +0 -1
- package/dist/core/v2/from/events.js +0 -12
- package/dist/core/v2/from/events.js.map +0 -1
- package/dist/core/v2/from/exceptions.js +0 -13
- package/dist/core/v2/from/exceptions.js.map +0 -1
- package/dist/core/v2/from/groups.js +0 -13
- package/dist/core/v2/from/groups.js.map +0 -1
- package/dist/core/v2/from/index.js.map +0 -1
- package/dist/core/v2/from/locations.js +0 -13
- package/dist/core/v2/from/locations.js.map +0 -1
- package/dist/core/v2/from/locked-times.js +0 -13
- package/dist/core/v2/from/locked-times.js.map +0 -1
- package/dist/core/v2/from/overlap-groups.js +0 -13
- package/dist/core/v2/from/overlap-groups.js.map +0 -1
- package/dist/core/v2/from/periods.js +0 -13
- package/dist/core/v2/from/periods.js.map +0 -1
- package/dist/core/v2/from/persons.js +0 -12
- package/dist/core/v2/from/persons.js.map +0 -1
- package/dist/core/v2/from/root-intervals.js +0 -13
- package/dist/core/v2/from/root-intervals.js.map +0 -1
- package/dist/core/v2/from/schedules.d.ts +0 -245
- package/dist/core/v2/from/schedules.js +0 -48
- package/dist/core/v2/from/schedules.js.map +0 -1
- package/dist/core/v2/from/syllabuses.js.map +0 -1
- package/dist/core/v2/from/teachers.js +0 -13
- package/dist/core/v2/from/teachers.js.map +0 -1
- package/dist/core/v2/index.d.ts +0 -16
- package/dist/core/v2/index.js +0 -12
- package/dist/core/v2/index.js.map +0 -1
- package/dist/core/v2/to/available-locations.js +0 -11
- package/dist/core/v2/to/available-locations.js.map +0 -1
- package/dist/core/v2/to/courses.js +0 -44
- package/dist/core/v2/to/courses.js.map +0 -1
- package/dist/core/v2/to/days.js +0 -13
- package/dist/core/v2/to/days.js.map +0 -1
- package/dist/core/v2/to/division.js +0 -10
- package/dist/core/v2/to/division.js.map +0 -1
- package/dist/core/v2/to/events.js +0 -47
- package/dist/core/v2/to/events.js.map +0 -1
- package/dist/core/v2/to/exceptions.js +0 -29
- package/dist/core/v2/to/exceptions.js.map +0 -1
- package/dist/core/v2/to/groups.js +0 -34
- package/dist/core/v2/to/groups.js.map +0 -1
- package/dist/core/v2/to/index.d.ts +0 -9
- package/dist/core/v2/to/index.js +0 -10
- package/dist/core/v2/to/index.js.map +0 -1
- package/dist/core/v2/to/intervals.js +0 -13
- package/dist/core/v2/to/intervals.js.map +0 -1
- package/dist/core/v2/to/locations.js +0 -35
- package/dist/core/v2/to/locations.js.map +0 -1
- package/dist/core/v2/to/locked-times.js +0 -25
- package/dist/core/v2/to/locked-times.js.map +0 -1
- package/dist/core/v2/to/overlap-groups.js +0 -30
- package/dist/core/v2/to/overlap-groups.js.map +0 -1
- package/dist/core/v2/to/periods.js +0 -10
- package/dist/core/v2/to/periods.js.map +0 -1
- package/dist/core/v2/to/persons.js +0 -25
- package/dist/core/v2/to/persons.js.map +0 -1
- package/dist/core/v2/to/root-intervals.js +0 -10
- package/dist/core/v2/to/root-intervals.js.map +0 -1
- package/dist/core/v2/to/schedules.d.ts +0 -249
- package/dist/core/v2/to/schedules.js +0 -40
- package/dist/core/v2/to/schedules.js.map +0 -1
- package/dist/core/v2/to/settings.js +0 -13
- package/dist/core/v2/to/settings.js.map +0 -1
- package/dist/core/v2/to/syllabuses.js +0 -16
- package/dist/core/v2/to/syllabuses.js.map +0 -1
- package/dist/core/v2/to/teachers.js +0 -28
- package/dist/core/v2/to/teachers.js.map +0 -1
- package/dist/core/v2/types/areas.d.ts +0 -16
- package/dist/core/v2/types/available-locations.d.ts +0 -13
- package/dist/core/v2/types/break-lengths.d.ts +0 -5
- package/dist/core/v2/types/common/coalesced.d.ts +0 -10
- package/dist/core/v2/types/common/planned-schedule-duration.d.ts +0 -7
- package/dist/core/v2/types/courses.d.ts +0 -76
- package/dist/core/v2/types/days.d.ts +0 -14
- package/dist/core/v2/types/divisions.d.ts +0 -54
- package/dist/core/v2/types/events.d.ts +0 -76
- package/dist/core/v2/types/groups.d.ts +0 -50
- package/dist/core/v2/types/index.d.ts +0 -49
- package/dist/core/v2/types/intervals.d.ts +0 -17
- package/dist/core/v2/types/locations.d.ts +0 -38
- package/dist/core/v2/types/locked-times.d.ts +0 -44
- package/dist/core/v2/types/overlap-groups.d.ts +0 -26
- package/dist/core/v2/types/periods.d.ts +0 -25
- package/dist/core/v2/types/root-intervals.d.ts +0 -23
- package/dist/core/v2/types/schedules.d.ts +0 -38
- package/dist/core/v2/types/syllabus.d.ts +0 -27
- package/dist/vKlass/from/index.d.ts +0 -9
|
@@ -1,25 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { LockedTime } from "./locked-times.js";
|
|
3
|
-
import { Interval } from "./intervals.js";
|
|
4
|
-
import { BreakLength } from "./break-lengths.js";
|
|
1
|
+
import { Types } from "./index.js";
|
|
5
2
|
|
|
6
|
-
//#region src/RS/
|
|
3
|
+
//#region src/RS/types/groups.d.ts
|
|
7
4
|
type GroupType = 'personal' | 'classes' | 'persons';
|
|
8
5
|
interface Group {
|
|
9
6
|
id: string;
|
|
10
7
|
group_type: GroupType;
|
|
11
8
|
name?: string;
|
|
12
|
-
minBreakLength?:
|
|
9
|
+
minBreakLength?: Types.breakLength;
|
|
13
10
|
maxNumWorkingHours?: number | boolean;
|
|
14
11
|
maxNumDailyWorkingHours?: number | number[] | boolean;
|
|
15
|
-
forbidOverlappingEvents?: boolean;
|
|
16
|
-
disableDayLengthPunishment?: boolean;
|
|
17
|
-
minimizeDependencyAlternation?: boolean;
|
|
18
12
|
weight?: number;
|
|
19
13
|
rank?: number;
|
|
20
|
-
lockedTimes?:
|
|
21
|
-
intervals?:
|
|
22
|
-
days?: (
|
|
14
|
+
lockedTimes?: Types.lockedTime[];
|
|
15
|
+
intervals?: string | Types.interval[][];
|
|
16
|
+
days?: (Types.day | number)[];
|
|
17
|
+
minimizeGaps?: boolean;
|
|
18
|
+
minimizeDependencyAlternation?: boolean;
|
|
19
|
+
forbidOverlappingEvents?: boolean;
|
|
20
|
+
disableDayLengthPunishment?: boolean;
|
|
21
|
+
meta?: Record<string, unknown>;
|
|
23
22
|
}
|
|
24
23
|
//#endregion
|
|
25
24
|
export { Group };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Collection } from "./collections.js";
|
|
2
|
+
import { Default } from "./default.js";
|
|
3
|
+
import { Dependency } from "./dependencies.js";
|
|
4
|
+
import { Group } from "./groups.js";
|
|
5
|
+
import { Individual, IndividualsSet } from "./individuals.js";
|
|
6
|
+
import { LockedTime } from "./locked-times.js";
|
|
7
|
+
import { RootInterval } from "./root-intervals.js";
|
|
8
|
+
import { Settings } from "./settings.js";
|
|
9
|
+
import { Event } from "./events.js";
|
|
10
|
+
import { AvailableDependency, BreakLength, Day, GroupReference, Interval } from "./shared.js";
|
|
11
|
+
import { ParsedToOptions, Structure, ToInput, ToOptions, ToOutput } from "./to.js";
|
|
12
|
+
import { EventConfiguration } from "./event-configuration.js";
|
|
13
|
+
import { Configuration } from "./configurations.js";
|
|
14
|
+
import { ScheduleData } from "./schedule-data.js";
|
|
15
|
+
|
|
16
|
+
//#region src/RS/types/index.d.ts
|
|
17
|
+
declare namespace Types {
|
|
18
|
+
type settings = Settings;
|
|
19
|
+
type defaultValues = Default;
|
|
20
|
+
type periods = string;
|
|
21
|
+
type rootInterval = RootInterval;
|
|
22
|
+
type dependency = Dependency;
|
|
23
|
+
type group = Group;
|
|
24
|
+
type individual = Individual;
|
|
25
|
+
type individualsSet = IndividualsSet;
|
|
26
|
+
type collection = Collection;
|
|
27
|
+
type event = Event;
|
|
28
|
+
type lockedTime = LockedTime;
|
|
29
|
+
type availableDependency = AvailableDependency;
|
|
30
|
+
type day = Day;
|
|
31
|
+
type interval = Interval;
|
|
32
|
+
type groupReference = GroupReference;
|
|
33
|
+
type breakLength = BreakLength;
|
|
34
|
+
type scheduleData = ScheduleData;
|
|
35
|
+
type toInput = ToInput;
|
|
36
|
+
type toOptions = ToOptions;
|
|
37
|
+
type parsedToOptions = ParsedToOptions;
|
|
38
|
+
type toOutput = ToOutput;
|
|
39
|
+
type structure = Structure;
|
|
40
|
+
type eventConfiguration = EventConfiguration;
|
|
41
|
+
type configuration = Configuration;
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
export { Types };
|
|
45
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Types } from "./index.js";
|
|
2
|
+
|
|
3
|
+
//#region src/RS/types/individuals.d.ts
|
|
4
|
+
type Individual = {
|
|
5
|
+
id: string;
|
|
6
|
+
group?: Types.group['id'];
|
|
7
|
+
meta?: Record<string, unknown>;
|
|
8
|
+
};
|
|
9
|
+
type IndividualsSet = {
|
|
10
|
+
id: string;
|
|
11
|
+
individuals: Individual['id'][];
|
|
12
|
+
meta?: Record<string, unknown>;
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Individual, IndividualsSet };
|
|
16
|
+
//# sourceMappingURL=individuals.d.ts.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
//#region src/RS/
|
|
1
|
+
//#region src/RS/types/locked-times.d.ts
|
|
2
2
|
interface LockedTime {
|
|
3
3
|
id?: string;
|
|
4
4
|
name?: string;
|
|
5
5
|
start?: number;
|
|
6
6
|
length?: number;
|
|
7
7
|
day?: number;
|
|
8
|
+
meta?: Record<string, unknown>;
|
|
8
9
|
}
|
|
9
10
|
//#endregion
|
|
10
11
|
export { LockedTime };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Types } from "./index.js";
|
|
2
|
+
|
|
3
|
+
//#region src/RS/types/schedule-data.d.ts
|
|
4
|
+
interface ScheduleData {
|
|
5
|
+
settings?: Types.settings;
|
|
6
|
+
default?: Types.defaultValues;
|
|
7
|
+
periods?: string;
|
|
8
|
+
events?: (Types.event | Types.collection | (Types.event | Types.collection)[])[];
|
|
9
|
+
groups?: Types.group[];
|
|
10
|
+
dependencies?: Types.dependency[];
|
|
11
|
+
individuals?: (Types.individual | Types.individualsSet)[];
|
|
12
|
+
intervals?: Types.rootInterval[];
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { ScheduleData };
|
|
16
|
+
//# sourceMappingURL=schedule-data.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/RS/types/shared.d.ts
|
|
2
|
+
interface AvailableDependency {
|
|
3
|
+
dependency: string;
|
|
4
|
+
rank?: number;
|
|
5
|
+
}
|
|
6
|
+
type GroupReference = string | {
|
|
7
|
+
group: string;
|
|
8
|
+
} | {
|
|
9
|
+
individuals: string | string[];
|
|
10
|
+
};
|
|
11
|
+
type AsymType = {
|
|
12
|
+
bef: number;
|
|
13
|
+
aft: number;
|
|
14
|
+
};
|
|
15
|
+
type BreakLength = boolean | number | AsymType;
|
|
16
|
+
interface Day {
|
|
17
|
+
day?: number;
|
|
18
|
+
rank?: number;
|
|
19
|
+
}
|
|
20
|
+
interface Interval {
|
|
21
|
+
beg: number;
|
|
22
|
+
end: number;
|
|
23
|
+
binary?: boolean;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { AvailableDependency, BreakLength, Day, GroupReference, Interval };
|
|
27
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BaseOptions } from "../../common/types.js";
|
|
2
|
+
import { Types } from "../../core/types/index.js";
|
|
3
|
+
import { MixedScheduleData } from "../make-connected.js";
|
|
4
|
+
import { AlgorithmWeightParameters } from "./algorithm-parameters.js";
|
|
5
|
+
import { Types as Types$1 } from "./index.js";
|
|
6
|
+
|
|
7
|
+
//#region src/RS/types/to.d.ts
|
|
8
|
+
type ToInput = MixedScheduleData;
|
|
9
|
+
type PartialScheduleOptions<IDs extends Array<string> | Set<string>> = {
|
|
10
|
+
includedEvents?: IDs;
|
|
11
|
+
includedLocations?: IDs;
|
|
12
|
+
omittedEventsHandling: 'ignore' | 'freeze';
|
|
13
|
+
};
|
|
14
|
+
interface ToOptions extends BaseOptions {
|
|
15
|
+
meta?: boolean;
|
|
16
|
+
isPrivateId?: boolean;
|
|
17
|
+
isPublicId?: boolean;
|
|
18
|
+
appendCoreData?: boolean;
|
|
19
|
+
appendOutput?: boolean;
|
|
20
|
+
oldFormat?: boolean;
|
|
21
|
+
partialScheduleOptions?: PartialScheduleOptions<Array<string> | Set<string>>;
|
|
22
|
+
algorithmWeightParameters?: AlgorithmWeightParameters;
|
|
23
|
+
useMaximumScheduleSpan?: boolean;
|
|
24
|
+
}
|
|
25
|
+
interface ParsedToOptions extends Omit<ToOptions, 'partialScheduleOptions'> {
|
|
26
|
+
partialScheduleOptions?: PartialScheduleOptions<Set<string>>;
|
|
27
|
+
}
|
|
28
|
+
type Structure = 'RS/algorithm-3.0.0';
|
|
29
|
+
interface ToOutput {
|
|
30
|
+
meta: {
|
|
31
|
+
structure?: Structure;
|
|
32
|
+
division: Pick<Types.division, 'displayName' | 'start' | 'end'>;
|
|
33
|
+
};
|
|
34
|
+
algorithmParameters?: {
|
|
35
|
+
weights?: AlgorithmWeightParameters;
|
|
36
|
+
};
|
|
37
|
+
score?: [number, number, number, number];
|
|
38
|
+
input: Types$1.scheduleData;
|
|
39
|
+
output?: Types$1.configuration[];
|
|
40
|
+
coreData?: Partial<Types.serialized.schedule>;
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { ParsedToOptions, Structure, ToInput, ToOptions, ToOutput };
|
|
44
|
+
//# sourceMappingURL=to.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../../src/SchoolSoft/api/from/index.ts"],"sourcesContent":["import { FromInterface } from '../../../
|
|
1
|
+
{"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../../src/SchoolSoft/api/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../../common/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
|
|
@@ -13,42 +13,35 @@ function courseMapKey(subject, groups, teachers) {
|
|
|
13
13
|
var schedules_default = (data) => {
|
|
14
14
|
const errors = [];
|
|
15
15
|
const warnings = [];
|
|
16
|
-
const persons =
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
data.
|
|
35
|
-
locations.push({
|
|
36
|
-
ids: x.id,
|
|
37
|
-
displayName: x.name
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
const initialTeacherMap = /* @__PURE__ */ new Map();
|
|
41
|
-
data.teachers.forEach((x) => {
|
|
16
|
+
const persons = data.persons.map((x) => ({
|
|
17
|
+
ids: x.id,
|
|
18
|
+
firstName: x.fname,
|
|
19
|
+
lastName: x.lname,
|
|
20
|
+
sex: ["m", "p"].includes(x.sex) ? "Man" : ["f", "w"].includes(x.sex) ? "Woman" : void 0,
|
|
21
|
+
...x.socialnumber && { SSN: {
|
|
22
|
+
value: x.socialnumber,
|
|
23
|
+
nationality: "SE"
|
|
24
|
+
} },
|
|
25
|
+
...x.email && { emails: [{
|
|
26
|
+
value: x.email,
|
|
27
|
+
type: "organization"
|
|
28
|
+
}] }
|
|
29
|
+
}));
|
|
30
|
+
const locations = data.locations.map((x) => ({
|
|
31
|
+
ids: x.id,
|
|
32
|
+
displayName: x.name
|
|
33
|
+
}));
|
|
34
|
+
const initialTeacherMap = new Map(data.teachers.map((x) => {
|
|
42
35
|
if (x.active != "1") return;
|
|
43
36
|
if (initialTeacherMap.has(x.initial)) {
|
|
44
37
|
warnings.push(`There already exists an active teacher with the initial "${x.initial}".`);
|
|
45
38
|
return;
|
|
46
39
|
}
|
|
47
|
-
|
|
40
|
+
return [x.initial, {
|
|
48
41
|
ids: x.id,
|
|
49
42
|
displayName: x.fname + " " + x.lname
|
|
50
|
-
}
|
|
51
|
-
});
|
|
43
|
+
}];
|
|
44
|
+
}).filter((x) => x != null));
|
|
52
45
|
const studentGroupMap = /* @__PURE__ */ new Map();
|
|
53
46
|
const nameGroupMap = /* @__PURE__ */ new Map();
|
|
54
47
|
data.groups.forEach((x) => {
|
|
@@ -86,23 +79,24 @@ var schedules_default = (data) => {
|
|
|
86
79
|
if (x.classtype == "1") return;
|
|
87
80
|
const groupSet = /* @__PURE__ */ new Set();
|
|
88
81
|
split(x.studentid).filter((x$1) => x$1).map((id) => {
|
|
89
|
-
|
|
82
|
+
const group = studentGroupMap.get(id);
|
|
83
|
+
if (!group) {
|
|
90
84
|
errors.push(`The student with id "${id}" does not belong to a group.`);
|
|
91
85
|
return;
|
|
92
86
|
}
|
|
93
|
-
groupSet.add(
|
|
87
|
+
groupSet.add(group);
|
|
94
88
|
});
|
|
95
89
|
const teacherSet = /* @__PURE__ */ new Set();
|
|
96
90
|
split(x.teacher).filter((x$1) => x$1).map((initial) => {
|
|
97
|
-
|
|
91
|
+
const teacher = initialTeacherMap.get(initial);
|
|
92
|
+
if (!teacher) {
|
|
98
93
|
errors.push(`The teacher with initial "${initial}" does not exist.`);
|
|
99
94
|
return;
|
|
100
95
|
}
|
|
101
|
-
teacherSet.add(
|
|
96
|
+
teacherSet.add(teacher.ids);
|
|
102
97
|
});
|
|
103
|
-
|
|
104
|
-
if (
|
|
105
|
-
else warnings.push(`Could not determine the subject of the course "${name}" (${x.id}).`);
|
|
98
|
+
const subject = groupSubjectMap.get(name);
|
|
99
|
+
if (!subject) warnings.push(`Could not determine the subject of the course "${name}" (${x.id}).`);
|
|
106
100
|
if (nameGroupMap.has(name)) {
|
|
107
101
|
warnings.push(`There already exists an active group with the name "${name}".`);
|
|
108
102
|
return;
|
|
@@ -142,7 +136,7 @@ var schedules_default = (data) => {
|
|
|
142
136
|
if (groups$1.length && teachers$1.length && !courseMap.has(key)) {
|
|
143
137
|
const ids = scheduledGroupIds.join(sep);
|
|
144
138
|
courseMap.set(key, {
|
|
145
|
-
|
|
139
|
+
ids,
|
|
146
140
|
displayName: x.subject + (x.group.length ? " - " + x.group : "") + (x.teacher.length ? " - " + x.teacher : ""),
|
|
147
141
|
subject: x.subject,
|
|
148
142
|
groups: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.js","names":["errors: string[]","warnings: string[]","persons: CoreTypes.person[]","locations: CoreTypes.location[]","x","teachers","scheduledGroupIds: string[]","groups","events: CoreTypes.event[]"],"sources":["../../../../src/SchoolSoft/api/from/schedules.ts"],"sourcesContent":["// import moment from 'moment';\n\nimport { Types as CoreTypes } from '../../../core/types';\nimport { Schedule } from '../types/schedule';\n\nimport { Serialized } from '../../../core/types';\n\nconst sep = ',';\nfunction split (val: string): string[] {\n return val.split(sep)\n .map(x => x.trim())\n .filter(x => x.length);\n}\n\nfunction courseMapKey (\n subject: string | undefined,\n groups: string[],\n teachers: string[]\n): string {\n return JSON.stringify({ s: subject, g: groups.sort(), t: teachers.sort() });\n}\n\nexport default (\n data: Schedule\n): CoreTypes.division => {\n\n // gather all import related warnings/errors\n const errors: string[] = [];\n const warnings: string[] = [];\n\n ////\n //// persons\n ////\n const persons: CoreTypes.person[] = [];\n data.persons?.forEach(x => {\n persons.push({\n ids: x.id,\n //group: x.class, only name of class\n firstName: x.fname,\n lastName: x.lname,\n sex: ['m', 'p'].includes(x.sex) ? 'Man' : (['f', 'w'].includes(x.sex) ? 'Woman' : undefined),\n ...x.socialnumber && {\n SSN: {\n value: x.socialnumber,\n nationality: 'SE'\n }\n },\n ...x.email && {\n emails: [\n {\n value: x.email,\n type: 'organization'\n }\n ]\n }\n } satisfies CoreTypes.person);\n });\n\n ////\n //// locations\n ////\n const locations: CoreTypes.location[] = [];\n data.locations.forEach(x => {\n locations.push({\n ids: x.id,\n displayName: x.name\n });\n });\n\n\n ////\n //// teachers\n ////\n const initialTeacherMap = new Map<string, CoreTypes.teacher>();\n data.teachers.forEach(x => {\n // must be active\n if (x.active != '1') return;\n\n // ensure the initials to be unique\n if (initialTeacherMap.has(x.initial)) {\n warnings.push(`There already exists an active teacher with the initial \"${x.initial}\".`);\n return;\n }\n\n initialTeacherMap.set(x.initial, {\n ids: x.id,\n displayName: x.fname + ' ' + x.lname\n });\n });\n\n\n ////\n //// groups\n ////\n const studentGroupMap = new Map<string, string>();\n const nameGroupMap = new Map<string, CoreTypes.group>();\n data.groups.forEach(x => {\n const name = x.name.trim();\n\n // must be active\n if (x.active != '1') return;\n\n // must be a class type\n if (x.classtype != '1') return;\n\n // ensure the name to be unique\n if (nameGroupMap.has(name)) {\n warnings.push(`There already exists an active group with the name \"${name}\".`);\n return;\n }\n\n // add to student group map\n const members = split(x.studentid).filter(x => x);\n\n members.forEach(id => {\n if (studentGroupMap.has(id)) {\n errors.push(`The student with id \"${id}\" does already belong to a different group.`);\n return;\n }\n\n studentGroupMap.set(id, x.id);\n });\n\n // add group\n nameGroupMap.set(name, {\n ids: x.id,\n displayName: name,\n species: 'class',\n members\n });\n });\n\n\n ////\n //// create \"scheduled group\" to subject map\n ////\n const groupSubjectMap = new Map<string, string>();\n data.lessons.forEach(x => {\n if (x.subject) {\n groupSubjectMap.set(x.group.trim(), x.subject);\n }\n });\n\n\n ////\n //// courses\n ////\n const courseMap = new Map<string, CoreTypes.course>();\n const nameCourseMap = new Map<string, Serialized<CoreTypes.course>>();\n data.groups.forEach(x => {\n const name = x.name.trim();\n\n // must be active\n if (x.active != '1') return;\n\n // must be a course type\n if (x.classtype == '1') return;\n\n // find all groups connected to the course\n const groupSet = new Set<string>();\n split(x.studentid)\n .filter(x => x)\n .map(id => {\n if (!studentGroupMap.has(id)) {\n errors.push(`The student with id \"${id}\" does not belong to a group.`);\n return;\n }\n\n groupSet.add(studentGroupMap.get(id)!);\n });\n\n // find all teachers\n const teacherSet = new Set<string>();\n split(x.teacher)\n .filter(x => x)\n .map(initial => {\n if (!initialTeacherMap.has(initial)) {\n errors.push(`The teacher with initial \"${initial}\" does not exist.`);\n return;\n }\n\n teacherSet.add(initialTeacherMap.get(initial)!.ids!);\n });\n\n // try to figure out the subject from the group name via its lessons\n let subject = '';\n if (groupSubjectMap.has(name)) {\n subject = groupSubjectMap.get(name)!;\n } else {\n warnings.push(`Could not determine the subject of the course \"${name}\" (${x.id}).`);\n }\n\n\n // ensure the name to be unique\n if (nameGroupMap.has(name)) {\n warnings.push(`There already exists an active group with the name \"${name}\".`);\n return;\n }\n\n // add course\n const course = {\n ids: x.id,\n displayName: name,\n // groups: [...groupSet].map(to => ({ to })),\n // teachers: [...teacherSet].map(to => ({ to })),\n ...(subject && { subject })\n } satisfies Serialized<CoreTypes.course>;\n nameCourseMap.set(name, course);\n courseMap.set(courseMapKey(course.subject, [...groupSet], [...teacherSet]), course);\n });\n\n\n ////\n //// load further courses from lessons\n ////\n data.lessons.forEach(x => {\n\n // fetch its teachers\n const teacherSet = new Set<string>();\n split(x.teacher)\n .forEach(y => {\n const id = initialTeacherMap.get(y)?.ids;\n if (id) teacherSet.add(id);\n });\n const teachers = [...teacherSet].map(to => ({ to }));\n\n // fetch its groups\n const scheduledGroupIds: string[] = [];\n const groupSet = new Set<string>();\n split(x.group)\n .forEach(y => {\n // is group\n const id = nameGroupMap.get(y)?.ids;\n if (id) {\n scheduledGroupIds.push(id);\n groupSet.add(id);\n return;\n }\n\n // is course\n const course = nameCourseMap.get(y);\n if (course) {\n scheduledGroupIds.push(course.ids!);\n course.groups?.forEach(z => groupSet.add(z.to.toString()));\n }\n });\n const groups = [...groupSet].map(to => ({ to }));\n\n // add as course if at least a single groups or teacher is connected\n const key = courseMapKey(x.subject, groups.map(({ to }) => to), teachers.map(({ to }) => to));\n if (groups.length && teachers.length && !courseMap.has(key)) {\n const ids = scheduledGroupIds.join(sep);\n courseMap.set(key, {\n ...(ids.length && { ids }),\n displayName: x.subject + ( x.group.length ? ' - ' + x.group : '') + ( x.teacher.length ? ' - ' + x.teacher : ''),\n subject: x.subject,\n groups: [], // Don't assign to course\n teachers: [], // Don't assign to course\n });\n }\n\n });\n\n\n const teachers = [...initialTeacherMap.values()];\n const groups = [...nameGroupMap.values()];\n const courses = [...courseMap.values()];\n const events: CoreTypes.event[] = [];\n return { locations, teachers, groups, courses, events, persons,\n meta: {\n ...( errors.length ? { errors: errors } : { } ),\n ...( warnings.length ? { warnings: warnings } : { } )\n }\n };\n};"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schedules.js","names":["errors: string[]","warnings: string[]","x","course: OutTypes.course","teachers","scheduledGroupIds: string[]","groups","events: OutTypes.event[]"],"sources":["../../../../src/SchoolSoft/api/from/schedules.ts"],"sourcesContent":["import type { CoreTypes } from '../../../core';\nimport type { Schedule } from '../types/schedule';\nimport type { Vertex } from '../../../core/types/common';\n\nconst sep = ',';\nfunction split (val: string): string[] {\n return val.split(sep)\n .map(x => x.trim())\n .filter(x => x.length);\n}\n\nfunction courseMapKey (\n subject: string | undefined,\n groups: string[],\n teachers: string[]\n): string {\n return JSON.stringify({ s: subject, g: groups.sort(), t: teachers.sort() });\n}\n\nnamespace OutTypes {\n export type event = CoreTypes.serializedWithoutInternalId.event & Required<Pick<Vertex, 'ids'>>;\n export type course = CoreTypes.serializedWithoutInternalId.course & Required<Pick<Vertex, 'ids'>>;\n export type location = CoreTypes.serializedWithoutInternalId.location & Required<Pick<Vertex, 'ids'>>;\n export type group = CoreTypes.serializedWithoutInternalId.group & Required<Pick<Vertex, 'ids'>>;\n export type person = CoreTypes.serializedWithoutInternalId.person & Required<Pick<Vertex, 'ids'>>;\n export type teacher = CoreTypes.serializedWithoutInternalId.teacher & Required<Pick<Vertex, 'ids'>>;\n}\ntype Out = {\n locations: OutTypes.location[];\n teachers: OutTypes.teacher[];\n groups: OutTypes.group[];\n courses: OutTypes.course[];\n events: OutTypes.event[];\n persons: OutTypes.person[];\n\n meta: {\n errors?: string[];\n warnings?: string[];\n };\n};\n\nexport default (\n data: Schedule\n): Out => {\n\n // gather all import related warnings/errors\n const errors: string[] = [];\n const warnings: string[] = [];\n\n ////\n //// persons\n ////\n const persons = data.persons\n .map((x): OutTypes.person => ({\n ids: x.id,\n //group: x.class, only name of class\n firstName: x.fname,\n lastName: x.lname,\n sex: ['m', 'p'].includes(x.sex) ? 'Man' : (['f', 'w'].includes(x.sex) ? 'Woman' : undefined),\n ...x.socialnumber && {\n SSN: {\n value: x.socialnumber,\n nationality: 'SE'\n }\n },\n ...x.email && {\n emails: [\n {\n value: x.email,\n type: 'organization'\n }\n ]\n }\n }));\n\n ////\n //// locations\n ////\n const locations = data.locations\n .map((x): OutTypes.location => ({\n ids: x.id,\n displayName: x.name\n }));\n\n\n ////\n //// teachers\n ////\n const initialTeacherMap = new Map(data.teachers\n .map((x): undefined | [string, OutTypes.location] => {\n // must be active\n if (x.active != '1') return;\n\n // ensure the initials to be unique\n if (initialTeacherMap.has(x.initial)) {\n warnings.push(`There already exists an active teacher with the initial \"${x.initial}\".`);\n return;\n }\n\n return [x.initial, {\n ids: x.id,\n displayName: x.fname + ' ' + x.lname\n }];\n })\n .filter(x => x != null)\n );\n\n\n\n ////\n //// groups\n ////\n const studentGroupMap = new Map<string, string>();\n const nameGroupMap = new Map<string, OutTypes.group>();\n data.groups.forEach(x => {\n const name = x.name.trim();\n\n // must be active\n if (x.active != '1') return;\n\n // must be a class type\n if (x.classtype != '1') return;\n\n // ensure the name to be unique\n if (nameGroupMap.has(name)) {\n warnings.push(`There already exists an active group with the name \"${name}\".`);\n return;\n }\n\n // add to student group map\n const members = split(x.studentid).filter(x => x);\n\n members.forEach(id => {\n if (studentGroupMap.has(id)) {\n errors.push(`The student with id \"${id}\" does already belong to a different group.`);\n return;\n }\n\n studentGroupMap.set(id, x.id);\n });\n\n // add group\n nameGroupMap.set(name, {\n ids: x.id,\n displayName: name,\n species: 'class',\n members\n });\n });\n\n\n ////\n //// create \"scheduled group\" to subject map\n ////\n const groupSubjectMap = new Map<string, string>();\n data.lessons.forEach(x => {\n if (x.subject) {\n groupSubjectMap.set(x.group.trim(), x.subject);\n }\n });\n\n\n ////\n //// courses\n ////\n const courseMap = new Map<string, OutTypes.course>();\n const nameCourseMap = new Map<string, OutTypes.course>();\n data.groups.forEach(x => {\n const name = x.name.trim();\n\n // must be active\n if (x.active != '1') return;\n\n // must be a course type\n if (x.classtype == '1') return;\n\n // find all groups connected to the course\n const groupSet = new Set<string>();\n split(x.studentid)\n .filter(x => x)\n .map(id => {\n const group = studentGroupMap.get(id);\n if (!group) {\n errors.push(`The student with id \"${id}\" does not belong to a group.`);\n return;\n }\n groupSet.add(group);\n });\n\n // find all teachers\n const teacherSet = new Set<string>();\n split(x.teacher)\n .filter(x => x)\n .map(initial => {\n const teacher = initialTeacherMap.get(initial);\n if (!teacher) {\n errors.push(`The teacher with initial \"${initial}\" does not exist.`);\n return;\n }\n\n teacherSet.add(teacher.ids);\n });\n\n // try to figure out the subject from the group name via its lessons\n const subject = groupSubjectMap.get(name);\n if (!subject) {\n warnings.push(`Could not determine the subject of the course \"${name}\" (${x.id}).`);\n }\n\n\n // ensure the name to be unique\n if (nameGroupMap.has(name)) {\n warnings.push(`There already exists an active group with the name \"${name}\".`);\n return;\n }\n\n // add course\n const course: OutTypes.course = {\n ids: x.id,\n displayName: name,\n // groups: [...groupSet].map(to => ({ to })),\n // teachers: [...teacherSet].map(to => ({ to })),\n ...(subject && { subject })\n };\n nameCourseMap.set(name, course);\n courseMap.set(courseMapKey(course.subject, [...groupSet], [...teacherSet]), course);\n });\n\n\n ////\n //// load further courses from lessons\n ////\n data.lessons.forEach(x => {\n\n // fetch its teachers\n const teacherSet = new Set<string>();\n split(x.teacher)\n .forEach(y => {\n const id = initialTeacherMap.get(y)?.ids;\n if (id) teacherSet.add(id);\n });\n const teachers = [...teacherSet].map(to => ({ to }));\n\n // fetch its groups\n const scheduledGroupIds: string[] = [];\n const groupSet = new Set<string>();\n split(x.group)\n .forEach(y => {\n // is group\n const id = nameGroupMap.get(y)?.ids;\n if (id) {\n scheduledGroupIds.push(id);\n groupSet.add(id);\n return;\n }\n\n // is course\n const course = nameCourseMap.get(y);\n if (course) {\n scheduledGroupIds.push(course.ids);\n course.groups?.forEach(z => groupSet.add(z.to.toString()));\n }\n });\n const groups = [...groupSet].map(to => ({ to }));\n\n // add as course if at least a single groups or teacher is connected\n const key = courseMapKey(x.subject, groups.map(({ to }) => to), teachers.map(({ to }) => to));\n if (groups.length && teachers.length && !courseMap.has(key)) {\n const ids = scheduledGroupIds.join(sep);\n courseMap.set(key, {\n ids: ids,\n displayName: x.subject + ( x.group.length ? ' - ' + x.group : '') + ( x.teacher.length ? ' - ' + x.teacher : ''),\n subject: x.subject,\n groups: [], // Don't assign to course\n teachers: [], // Don't assign to course\n });\n }\n\n });\n\n\n const teachers = [...initialTeacherMap.values()];\n const groups = [...nameGroupMap.values()];\n const courses = [...courseMap.values()];\n const events: OutTypes.event[] = [];\n return { locations, teachers, groups, courses, events, persons,\n meta: {\n ...( errors.length ? { errors: errors } : { } ),\n ...( warnings.length ? { warnings: warnings } : { } )\n }\n };\n};"],"mappings":";AAIA,MAAM,MAAM;AACZ,SAAS,MAAO,KAAuB;AACrC,QAAO,IAAI,MAAM,KACd,KAAI,MAAK,EAAE,QACX,QAAO,MAAK,EAAE;;AAGnB,SAAS,aACP,SACA,QACA,UACQ;AACR,QAAO,KAAK,UAAU;EAAE,GAAG;EAAS,GAAG,OAAO;EAAQ,GAAG,SAAS;;;AAyBpE,yBACE,SACQ;CAGR,MAAMA,SAAqB;CAC3B,MAAMC,WAAqB;CAK3B,MAAM,UAAU,KAAK,QAClB,KAAK,OAAwB;EAC5B,KAAW,EAAE;EAEb,WAAW,EAAE;EACb,UAAW,EAAE;EACb,KAAW,CAAC,KAAK,KAAK,SAAS,EAAE,OAAO,QAAS,CAAC,KAAK,KAAK,SAAS,EAAE,OAAO,UAAU;EACxF,GAAG,EAAE,gBAAgB,EACnB,KAAK;GACH,OAAa,EAAE;GACf,aAAa;;EAGjB,GAAG,EAAE,SAAS,EACZ,QAAQ,CACN;GACE,OAAO,EAAE;GACT,MAAO;;;CASjB,MAAM,YAAY,KAAK,UACpB,KAAK,OAA0B;EAC9B,KAAa,EAAE;EACf,aAAa,EAAE;;CAOnB,MAAM,oBAAoB,IAAI,IAAI,KAAK,SACpC,KAAK,MAA+C;AAEnD,MAAI,EAAE,UAAU,IAAK;AAGrB,MAAI,kBAAkB,IAAI,EAAE,UAAU;AACpC,YAAS,KAAK,4DAA4D,EAAE,QAAQ;AACpF;;AAGF,SAAO,CAAC,EAAE,SAAS;GACjB,KAAa,EAAE;GACf,aAAa,EAAE,QAAQ,MAAM,EAAE;;IAGlC,QAAO,MAAK,KAAK;CAQpB,MAAM,kCAAkB,IAAI;CAC5B,MAAM,+BAAe,IAAI;AACzB,MAAK,OAAO,SAAQ,MAAK;EACvB,MAAM,OAAO,EAAE,KAAK;AAGpB,MAAI,EAAE,UAAU,IAAK;AAGrB,MAAI,EAAE,aAAa,IAAK;AAGxB,MAAI,aAAa,IAAI,OAAO;AAC1B,YAAS,KAAK,uDAAuD,KAAK;AAC1E;;EAIF,MAAM,UAAU,MAAM,EAAE,WAAW,QAAO,QAAKC;AAE/C,UAAQ,SAAQ,OAAM;AACpB,OAAI,gBAAgB,IAAI,KAAK;AAC3B,WAAO,KAAK,wBAAwB,GAAG;AACvC;;AAGF,mBAAgB,IAAI,IAAI,EAAE;;AAI5B,eAAa,IAAI,MAAM;GACrB,KAAa,EAAE;GACf,aAAa;GACb,SAAa;GACb;;;CAQJ,MAAM,kCAAkB,IAAI;AAC5B,MAAK,QAAQ,SAAQ,MAAK;AACxB,MAAI,EAAE,QACJ,iBAAgB,IAAI,EAAE,MAAM,QAAQ,EAAE;;CAQ1C,MAAM,4BAAgB,IAAI;CAC1B,MAAM,gCAAgB,IAAI;AAC1B,MAAK,OAAO,SAAQ,MAAK;EACvB,MAAM,OAAO,EAAE,KAAK;AAGpB,MAAI,EAAE,UAAU,IAAK;AAGrB,MAAI,EAAE,aAAa,IAAK;EAGxB,MAAM,2BAAW,IAAI;AACrB,QAAM,EAAE,WACL,QAAO,QAAKA,KACZ,KAAI,OAAM;GACT,MAAM,QAAQ,gBAAgB,IAAI;AAClC,OAAI,CAAC,OAAO;AACV,WAAO,KAAK,wBAAwB,GAAG;AACvC;;AAEF,YAAS,IAAI;;EAIjB,MAAM,6BAAa,IAAI;AACvB,QAAM,EAAE,SACL,QAAO,QAAKA,KACZ,KAAI,YAAW;GACd,MAAM,UAAU,kBAAkB,IAAI;AACtC,OAAI,CAAC,SAAS;AACZ,WAAO,KAAK,6BAA6B,QAAQ;AACjD;;AAGF,cAAW,IAAI,QAAQ;;EAI3B,MAAM,UAAU,gBAAgB,IAAI;AACpC,MAAI,CAAC,QACH,UAAS,KAAK,kDAAkD,KAAK,KAAK,EAAE,GAAG;AAKjF,MAAI,aAAa,IAAI,OAAO;AAC1B,YAAS,KAAK,uDAAuD,KAAK;AAC1E;;EAIF,MAAMC,SAA0B;GAC9B,KAAa,EAAE;GACf,aAAa;GAGb,GAAI,WAAW,EAAE;;AAEnB,gBAAc,IAAI,MAAM;AACxB,YAAU,IAAI,aAAa,OAAO,SAAS,CAAC,GAAG,WAAW,CAAC,GAAG,cAAc;;AAO9E,MAAK,QAAQ,SAAQ,MAAK;EAGxB,MAAM,6BAAa,IAAI;AACvB,QAAM,EAAE,SACL,SAAQ,MAAK;GACZ,MAAM,KAAK,kBAAkB,IAAI,IAAI;AACrC,OAAI,GAAI,YAAW,IAAI;;EAE3B,MAAMC,aAAW,CAAC,GAAG,YAAY,KAAI,QAAO,EAAE;EAG9C,MAAMC,oBAA8B;EACpC,MAAM,2BAAW,IAAI;AACrB,QAAM,EAAE,OACL,SAAQ,MAAK;GAEZ,MAAM,KAAK,aAAa,IAAI,IAAI;AAChC,OAAI,IAAI;AACN,sBAAkB,KAAK;AACvB,aAAS,IAAI;AACb;;GAIF,MAAM,SAAS,cAAc,IAAI;AACjC,OAAI,QAAQ;AACV,sBAAkB,KAAK,OAAO;AAC9B,WAAO,QAAQ,SAAQ,MAAK,SAAS,IAAI,EAAE,GAAG;;;EAGpD,MAAMC,WAAS,CAAC,GAAG,UAAU,KAAI,QAAO,EAAE;EAG1C,MAAM,MAAM,aAAa,EAAE,SAASA,SAAO,KAAK,EAAE,SAAS,KAAKF,WAAS,KAAK,EAAE,SAAS;AACzF,MAAIE,SAAO,UAAUF,WAAS,UAAU,CAAC,UAAU,IAAI,MAAM;GAC3D,MAAM,MAAM,kBAAkB,KAAK;AACnC,aAAU,IAAI,KAAK;IACJ;IACb,aAAa,EAAE,WAAY,EAAE,MAAM,SAAS,QAAQ,EAAE,QAAQ,OAAQ,EAAE,QAAQ,SAAS,QAAQ,EAAE,UAAU;IAC7G,SAAa,EAAE;IACf,QAAa;IACb,UAAa;;;;CAOnB,MAAM,WAAW,CAAC,GAAG,kBAAkB;CACvC,MAAM,SAAW,CAAC,GAAG,aAAa;CAClC,MAAM,UAAW,CAAC,GAAG,UAAU;CAC/B,MAAMG,SAA2B;AACjC,QAAO;EAAE;EAAW;EAAU;EAAQ;EAAS;EAAQ;EACrD,MAAM;GACJ,GAAK,OAAO,SAAW,EAAY,WAAa;GAChD,GAAK,SAAS,SAAS,EAAY,aAAa"}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Vertex } from "../../core/types/common/index.js";
|
|
2
|
+
import { Types } from "../../core/types/index.js";
|
|
2
3
|
import { Schedule } from "./types/schedule.js";
|
|
3
4
|
import { Types as Types$1 } from "./types/index.js";
|
|
4
5
|
|
|
5
6
|
//#region src/SchoolSoft/api/index.d.ts
|
|
6
7
|
declare class Map {
|
|
7
8
|
static from: {
|
|
8
|
-
schedules: (data: Schedule) =>
|
|
9
|
+
schedules: (data: Schedule) => {
|
|
10
|
+
locations: (Types.serializedWithoutInternalId.location & Required<Pick<Vertex, "ids">>)[];
|
|
11
|
+
teachers: (Types.serializedWithoutInternalId.teacher & Required<Pick<Vertex, "ids">>)[];
|
|
12
|
+
groups: (Types.serializedWithoutInternalId.group & Required<Pick<Vertex, "ids">>)[];
|
|
13
|
+
courses: (Types.serializedWithoutInternalId.course & Required<Pick<Vertex, "ids">>)[];
|
|
14
|
+
events: (Types.serializedWithoutInternalId.event & Required<Pick<Vertex, "ids">>)[];
|
|
15
|
+
persons: (Types.serializedWithoutInternalId.person & Required<Pick<Vertex, "ids">>)[];
|
|
16
|
+
meta: {
|
|
17
|
+
errors?: string[];
|
|
18
|
+
warnings?: string[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
9
21
|
};
|
|
10
22
|
}
|
|
11
23
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_from"],"sources":["../../../src/SchoolSoft/api/index.ts"],"sourcesContent":["import _from
|
|
1
|
+
{"version":3,"file":"index.js","names":["_from"],"sources":["../../../src/SchoolSoft/api/index.ts"],"sourcesContent":["import _from from './from';\nimport type { Types } from './types';\n\nexport class Map {\n static from = _from;\n}\n\nexport { Types };"],"mappings":";;;AAGA,IAAa,MAAb,MAAiB;CACf,OAAO,OAAOA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../../src/SchoolSoft/file/from/index.ts"],"sourcesContent":["import { FromInterface } from '../../../
|
|
1
|
+
{"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../../src/SchoolSoft/file/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../../common/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { makeChainable } from "../../../common/make-chainable/index.js";
|
|
1
2
|
import get_date_default from "../../../common/get-date.js";
|
|
2
|
-
import {
|
|
3
|
+
import { countBy, groupBy, size, sortBy, trim } from "lodash-es";
|
|
3
4
|
|
|
4
5
|
//#region src/SchoolSoft/file/from/schedules.ts
|
|
5
6
|
const days = [
|
|
@@ -13,30 +14,28 @@ const days = [
|
|
|
13
14
|
];
|
|
14
15
|
function _parseWeeks(weeks, set, method = "add") {
|
|
15
16
|
if (!weeks) return;
|
|
16
|
-
const intervals = weeks.split(",").map(trim);
|
|
17
|
+
const intervals = weeks.split(",").map((x) => trim(x));
|
|
17
18
|
intervals.forEach((interval) => {
|
|
18
19
|
if (!interval.includes("-")) {
|
|
19
20
|
set[method](Number(interval));
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
23
|
const [start, end] = interval.split("-").map(Number);
|
|
23
|
-
Array(end - start + 1)
|
|
24
|
+
Array.from({ length: end - start + 1 }, (_, index) => start + index).forEach((x) => set[method](x));
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
var schedules_default = (input, options) => {
|
|
27
|
-
if (!input) throw new Error("(SchoolSoft::From::Schedules) Input was undefined");
|
|
28
|
-
if (isString(input)) throw new Error("(SchoolSoft::From::Schedules) Input was of type string. Is required to be of object type");
|
|
29
28
|
const teachers = /* @__PURE__ */ new Set();
|
|
30
29
|
const groups = /* @__PURE__ */ new Set();
|
|
31
30
|
const locations = /* @__PURE__ */ new Set();
|
|
32
|
-
const events = input.
|
|
33
|
-
if (!
|
|
31
|
+
const events = input.map((event) => {
|
|
32
|
+
if (!event.length) return;
|
|
34
33
|
const weeks = /* @__PURE__ */ new Set();
|
|
35
34
|
const { inweek, exweek, realweeks } = event;
|
|
36
35
|
try {
|
|
37
36
|
_parseWeeks(inweek, weeks, "add");
|
|
38
37
|
_parseWeeks(realweeks, weeks, "add");
|
|
39
|
-
if (weeks.size == 0) Array(51)
|
|
38
|
+
if (weeks.size == 0) Array.from({ length: 51 }, (_, index) => index + 1).forEach((x) => weeks.add(x));
|
|
40
39
|
_parseWeeks(exweek, weeks, "delete");
|
|
41
40
|
} catch (err) {
|
|
42
41
|
console.error(err);
|
|
@@ -46,14 +45,15 @@ var schedules_default = (input, options) => {
|
|
|
46
45
|
if (start$1 > 52 || start$1 <= 0) throw new Error(`(SchoolSoft::From::Schedules) Interval::start is invalid. value ${start$1}`);
|
|
47
46
|
if (end$1 > 52 || end$1 <= 0) throw new Error(`(SchoolSoft::From::Schedules) Interval::end is invalid. value ${end$1}`);
|
|
48
47
|
if (start$1 > end$1) {
|
|
49
|
-
if (!Array.from(weeks).some((week) => week >= start$1 && week <= 52 || week <= end$1)) return
|
|
50
|
-
} else if (!Array.from(weeks).some((week) => week >= start$1 && week <= end$1)) return
|
|
48
|
+
if (!Array.from(weeks).some((week) => week >= start$1 && week <= 52 || week <= end$1)) return;
|
|
49
|
+
} else if (!Array.from(weeks).some((week) => week >= start$1 && week <= end$1)) return;
|
|
51
50
|
}
|
|
52
|
-
let start
|
|
51
|
+
let start;
|
|
52
|
+
let end;
|
|
53
53
|
const { starttime, subject, day, length, teacher, group, room } = event;
|
|
54
54
|
if (day && starttime) {
|
|
55
55
|
const _day = days.indexOf(day);
|
|
56
|
-
if (_day > 4) return
|
|
56
|
+
if (_day > 4) return;
|
|
57
57
|
start = get_date_default(_day, `${starttime.substring(0, 2)}:${starttime.substring(2, 4)}`);
|
|
58
58
|
end = start.clone().add(length, "m");
|
|
59
59
|
}
|
|
@@ -62,17 +62,17 @@ var schedules_default = (input, options) => {
|
|
|
62
62
|
let _locations;
|
|
63
63
|
if (teacher) {
|
|
64
64
|
_teachers = teacher.split(",").map((x) => x.trim());
|
|
65
|
-
_teachers?.forEach((
|
|
65
|
+
_teachers?.forEach((x) => teachers.add(x));
|
|
66
66
|
}
|
|
67
67
|
if (group) {
|
|
68
68
|
_groups = group.split(",").map((x) => x.trim());
|
|
69
|
-
_groups?.forEach((
|
|
69
|
+
_groups?.forEach((x) => groups.add(x));
|
|
70
70
|
}
|
|
71
71
|
if (room) {
|
|
72
72
|
_locations = sortBy(room.split(",").map((x) => x.trim()));
|
|
73
|
-
_locations?.forEach((
|
|
73
|
+
_locations?.forEach((x) => locations.add(x));
|
|
74
74
|
}
|
|
75
|
-
|
|
75
|
+
const doc = {
|
|
76
76
|
ids: event.id,
|
|
77
77
|
preferredDuration: event.length,
|
|
78
78
|
weeks: sortBy(Array.from(weeks)),
|
|
@@ -88,42 +88,32 @@ var schedules_default = (input, options) => {
|
|
|
88
88
|
groupIndex: index
|
|
89
89
|
}))
|
|
90
90
|
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const courses =
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
delete element.groups;
|
|
100
|
-
delete element.subject;
|
|
101
|
-
for (const event of set) {
|
|
102
|
-
if (event.subject != subject) continue;
|
|
103
|
-
if (groups$1?.length && !isEqual(sortBy(event.groups), sortBy(groups$1))) continue;
|
|
104
|
-
if (!groups$1?.length && teachers$1?.length && !isEqual(sortBy(event.teachers), sortBy(teachers$1))) continue;
|
|
105
|
-
delete event.groups;
|
|
106
|
-
delete event.subject;
|
|
107
|
-
events$1.push(event);
|
|
108
|
-
set.delete(event);
|
|
91
|
+
};
|
|
92
|
+
return doc;
|
|
93
|
+
}).filter((x) => x != null);
|
|
94
|
+
const courses = makeChainable(events).chain((x) => x.filter((e) => !!e.ids), (x) => groupBy(x, (e) => e.subject + ".g." + e.groups?.map((x$1) => x$1.to).join(",") + (e.groups?.length ? "" : ".t." + e.teachers?.map((x$1) => x$1.to).join(","))), (x) => Object.values(x).map((events$1) => {
|
|
95
|
+
const { subject, groups: groups$1, teachers: teachers$1 } = events$1[0];
|
|
96
|
+
for (const e of events$1) {
|
|
97
|
+
delete e.subject;
|
|
98
|
+
delete e.groups;
|
|
109
99
|
}
|
|
110
100
|
const course = {
|
|
111
|
-
displayName: `${subject}-${(groups$1 ?? teachers$1)?.join(" ")}`,
|
|
112
|
-
|
|
113
|
-
|
|
101
|
+
displayName: `${subject}-${(groups$1 ?? teachers$1)?.map((x$1) => x$1.to).join(" ")}`,
|
|
102
|
+
events: events$1.map((e) => e.ids),
|
|
103
|
+
...groups$1
|
|
114
104
|
};
|
|
115
|
-
if (events$1
|
|
116
|
-
course.teachers =
|
|
117
|
-
|
|
105
|
+
if (size(countBy(events$1, (e) => e.teachers?.map((x$1) => x$1.to).sort().join(","))) == 1) {
|
|
106
|
+
course.teachers = events$1[0].teachers ?? void 0;
|
|
107
|
+
events$1.forEach((e) => delete e.teachers);
|
|
118
108
|
}
|
|
119
|
-
if (events$1
|
|
120
|
-
course.locations =
|
|
121
|
-
|
|
109
|
+
if (size(countBy(events$1, (e) => e.locations?.map((x$1) => x$1.locations[0]).sort().join(","))) == 1) {
|
|
110
|
+
course.locations = events$1[0].locations ?? void 0;
|
|
111
|
+
events$1.forEach((e) => delete e.locations);
|
|
122
112
|
}
|
|
123
|
-
|
|
124
|
-
}
|
|
113
|
+
return course;
|
|
114
|
+
})).value;
|
|
125
115
|
return {
|
|
126
|
-
courses
|
|
116
|
+
courses,
|
|
127
117
|
teachers: Array.from(teachers).map((ids) => ({
|
|
128
118
|
ids,
|
|
129
119
|
displayName: ids
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.js","names":["days: Day[]","intervals: (`${number}-${number}` | `${number}${number}`)[]","teachers: Set<string>","groups: Set<string>","locations: Set<string>","weeks: Set<number>","start","end","start: moment.Moment | undefined","end: moment.Moment | undefined","_day: number","getDate","_teachers: string[] | undefined","_groups: string[] | undefined","_locations: string[] | undefined","events","groups","teachers","course: extendedCourse","locations"],"sources":["../../../../src/SchoolSoft/file/from/schedules.ts"],"sourcesContent":["import moment from 'moment';\nimport { isEqual, isString, sortBy, trim } from 'lodash-es';\n\nimport { Day,\n Event } from '../types/events';\n\nimport { Types as CoreTypes } from '../../../core/types';\nimport { Serialized,\n Deserialized } from '../../../core/types';\n\n\nimport getDate from '../../../common/get-date';\nimport { Options } from '../types';\n\nconst days: Day[] = ['Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör', 'Sön'];\n\nfunction _parseWeeks (weeks: string | undefined, set: Set<number>, method: ('add' | 'delete') = 'add'): void {\n if (!weeks) return;\n const intervals: (`${number}-${number}` | `${number}${number}`)[] = weeks.split(',').map(trim) as (`${number}-${number}` | `${number}${number}`)[];\n intervals.forEach(interval => {\n if (!interval.includes('-')) {\n set[method](Number(interval));\n return;\n }\n const [start, end] = interval.split('-').map(Number);\n Array(end - start + 1).fill(start)\n .forEach((val, index) => set[method](val + index));\n });\n}\n\n\nexport default (\n input: Deserialized<Event>[],\n options?: Options\n): CoreTypes.division => {\n\n if (!input)\n throw new Error('(SchoolSoft::From::Schedules) Input was undefined');\n\n if (isString(input))\n throw new Error('(SchoolSoft::From::Schedules) Input was of type string. Is required to be of object type');\n\n const teachers: Set<string> = new Set<string>();\n const groups: Set<string> = new Set<string>();\n const locations: Set<string> = new Set<string>();\n\n const events = input.reduce((acc: (Serialized<CoreTypes.event> & { subject?: string })[], event) => {\n if (!('length' in event))\n return acc;\n\n const weeks: Set<number> = new Set<number>();\n const {\n inweek,\n exweek,\n realweeks\n } = event;\n\n try {\n _parseWeeks(inweek, weeks, 'add');\n _parseWeeks(realweeks, weeks, 'add');\n\n if (weeks.size == 0)\n Array(51).fill(1)\n .forEach((val, index) => weeks.add(val + index));\n\n _parseWeeks(exweek, weeks, 'delete');\n } catch(err) {\n console.error(err);\n }\n\n if (options?.interval) {\n const { start, end } = options.interval;\n\n if (start > 52 || start <= 0)\n throw new Error(`(SchoolSoft::From::Schedules) Interval::start is invalid. value ${ start }`);\n\n if (end > 52 || end <= 0)\n throw new Error(`(SchoolSoft::From::Schedules) Interval::end is invalid. value ${ end }`);\n\n if (start > end) {\n if (!Array.from(weeks).some(week => (week >= start && week <= 52) || week <= end))\n return acc;\n } else {\n if (!Array.from(weeks).some(week => week >= start && week <= end))\n return acc;\n }\n }\n\n let start: moment.Moment | undefined,\n end: moment.Moment | undefined;\n\n const {\n starttime,\n subject,\n day,\n length,\n teacher,\n group,\n room\n } = event;\n\n if (day && starttime) {\n const _day: number = days.indexOf(day);\n\n if (_day > 4)\n return acc;\n\n start = getDate(_day, `${ starttime.substring(0, 2) }:${ starttime.substring(2, 4) }`);\n end = start.clone().add(length, 'm');\n }\n\n let _teachers: string[] | undefined;\n let _groups: string[] | undefined;\n let _locations: string[] | undefined;\n\n if (teacher) {\n _teachers = teacher.split(',').map(x => x.trim());\n _teachers?.forEach(_teacher => teachers.add(_teacher));\n }\n\n if (group) {\n _groups = group.split(',').map(x => x.trim()/*.split(':')[0]*/);\n _groups?.forEach(_group => groups.add(_group));\n }\n\n if (room) {\n _locations = sortBy(room.split(',').map(x => x.trim()));\n _locations?.forEach(_location => locations.add(_location));\n }\n\n return acc.concat({\n ids: event.id,\n preferredDuration: event.length!,\n weeks: sortBy(Array.from(weeks)),\n ...subject && { subject },\n ...start && { start },\n ...end && { end },\n ...event.group && { groups: _groups?.map(to => ({ to })) },\n ...event.teacher && { teachers: _teachers?.map(to => ({ to })) },\n ...event.room && {\n inLocations: _locations,\n locations: _locations?.map((_location, index: number) => (\n {\n locations: [_location],\n groupIndex: index\n })\n )\n }\n } as Serialized<CoreTypes.event> & { subject?: string });\n }, []);\n\n type extendedCourse = Omit<Deserialized<CoreTypes.course>, 'events' | 'groups' | 'teachers' | 'locations'> &\n Pick<Serialized<CoreTypes.course>, 'groups' | 'teachers' | 'locations'> &\n { events: Serialized<CoreTypes.event>[] };\n const set = new Set<Serialized<CoreTypes.event> & { subject?: string }>(events);\n const courses = new Set<extendedCourse>([]);\n\n for (const element of set) {\n set.delete(element);\n const events = [element];\n const {\n subject,\n groups,\n teachers,\n inLocations,\n locations\n } = element ;\n\n delete element.groups;\n delete element.subject;\n\n for (const event of set) {\n if (event.subject != subject)\n continue;\n\n\n if (groups?.length && !isEqual(sortBy(event.groups), sortBy(groups)))\n continue;\n /*\n Subject Lunch only have teacher and no groups\n */\n if (!groups?.length && teachers?.length && !isEqual(sortBy(event.teachers), sortBy(teachers)))\n continue;\n\n delete event.groups;\n delete event.subject;\n events.push(event);\n set.delete(event);\n }\n\n const course: extendedCourse = {\n displayName: `${ subject }-${ (groups ?? teachers)?.join(' ') }`,\n ...groups && { groups },\n events\n };\n\n if (events.every(({ teachers: _teachers }) => isEqual(sortBy(teachers), sortBy(_teachers)))) {\n course.teachers = teachers!;\n course.events?.forEach((event) => delete event.teachers);\n }\n\n if (events.every(({ inLocations: _inLocations }) => isEqual(sortBy(inLocations), sortBy(_inLocations)))) {\n course.locations = locations!;\n course.events?.forEach(event => delete event.locations);\n }\n\n courses.add(course);\n }\n\n return {\n /* TYPE INCONSISTENCY! */ courses: Array.from(courses) as any,\n teachers: Array.from(teachers) .map(ids => ({ ids, displayName: ids })),\n groups: Array.from(groups) .map(ids => ({ ids, displayName: ids })),\n locations: Array.from(locations).map(ids => ({ ids, displayName: ids }))\n };\n};"],"mappings":";;;;AAcA,MAAMA,OAAc;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;;AAE/D,SAAS,YAAa,OAA2B,KAAkB,SAA6B,OAAa;AAC3G,KAAI,CAAC,MAAO;CACZ,MAAMC,YAA8D,MAAM,MAAM,KAAK,IAAI;AACzF,WAAU,SAAQ,aAAY;AAC5B,MAAI,CAAC,SAAS,SAAS,MAAM;AAC3B,OAAI,QAAQ,OAAO;AACnB;;EAEF,MAAM,CAAC,OAAO,OAAO,SAAS,MAAM,KAAK,IAAI;AAC7C,QAAM,MAAM,QAAQ,GAAG,KAAK,OACzB,SAAS,KAAK,UAAU,IAAI,QAAQ,MAAM;;;AAKjD,yBACE,OACA,YACuB;AAEvB,KAAI,CAAC,MACH,OAAM,IAAI,MAAM;AAElB,KAAI,SAAS,OACX,OAAM,IAAI,MAAM;CAElB,MAAMC,2BAAyB,IAAI;CACnC,MAAMC,yBAAyB,IAAI;CACnC,MAAMC,4BAAyB,IAAI;CAEnC,MAAM,SAAS,MAAM,QAAQ,KAA6D,UAAU;AAClG,MAAI,EAAE,YAAY,OAChB,QAAO;EAET,MAAMC,wBAAqB,IAAI;EAC/B,MAAM,EACJ,QACA,QACA,cACE;AAEJ,MAAI;AACF,eAAY,QAAQ,OAAO;AAC3B,eAAY,WAAW,OAAO;AAE9B,OAAI,MAAM,QAAQ,EAChB,OAAM,IAAI,KAAK,GACZ,SAAS,KAAK,UAAU,MAAM,IAAI,MAAM;AAE7C,eAAY,QAAQ,OAAO;WACrB,KAAK;AACX,WAAQ,MAAM;;AAGhB,MAAI,SAAS,UAAU;GACrB,MAAM,EAAE,gBAAO,eAAQ,QAAQ;AAE/B,OAAIC,UAAQ,MAAMA,WAAS,EACzB,OAAM,IAAI,MAAM,mEAAoEA;AAEtF,OAAIC,QAAM,MAAMA,SAAO,EACrB,OAAM,IAAI,MAAM,iEAAkEA;AAEpF,OAAID,UAAQC,OACV;QAAI,CAAC,MAAM,KAAK,OAAO,MAAK,SAAS,QAAQD,WAAS,QAAQ,MAAO,QAAQC,OAC3E,QAAO;cAEL,CAAC,MAAM,KAAK,OAAO,MAAK,SAAQ,QAAQD,WAAS,QAAQC,OAC3D,QAAO;;EAIb,IAAIC,OACFC;EAEF,MAAM,EACJ,WACA,SACA,KACA,QACA,SACA,OACA,SACE;AAEJ,MAAI,OAAO,WAAW;GACpB,MAAMC,OAAe,KAAK,QAAQ;AAElC,OAAI,OAAO,EACT,QAAO;AAET,WAAQC,iBAAQ,MAAM,GAAI,UAAU,UAAU,GAAG,GAAI,GAAI,UAAU,UAAU,GAAG;AAChF,SAAQ,MAAM,QAAQ,IAAI,QAAQ;;EAGpC,IAAIC;EACJ,IAAIC;EACJ,IAAIC;AAEJ,MAAI,SAAS;AACX,eAAY,QAAQ,MAAM,KAAK,KAAI,MAAK,EAAE;AAC1C,cAAW,SAAQ,aAAY,SAAS,IAAI;;AAG9C,MAAI,OAAO;AACT,aAAU,MAAM,MAAM,KAAK,KAAI,MAAK,EAAE;AACtC,YAAS,SAAQ,WAAU,OAAO,IAAI;;AAGxC,MAAI,MAAM;AACR,gBAAa,OAAO,KAAK,MAAM,KAAK,KAAI,MAAK,EAAE;AAC/C,eAAY,SAAQ,cAAa,UAAU,IAAI;;AAGjD,SAAO,IAAI,OAAO;GAChB,KAAmB,MAAM;GACzB,mBAAmB,MAAM;GACzB,OAAmB,OAAO,MAAM,KAAK;GACrC,GAAG,WAAmB,EAAE;GACxB,GAAG,SAAmB,EAAE;GACxB,GAAG,OAAmB,EAAE;GACxB,GAAG,MAAM,SAAa,EAAE,QAAU,SAAS,KAAI,QAAO,EAAE;GACxD,GAAG,MAAM,WAAa,EAAE,UAAU,WAAW,KAAI,QAAO,EAAE;GAC1D,GAAG,MAAM,QAAa;IACpB,aAAa;IACb,WAAa,YAAY,KAAK,WAAW,WACvC;KACE,WAAY,CAAC;KACb,YAAY;;;;IAKnB;CAKH,MAAM,MAAU,IAAI,IAAwD;CAC5E,MAAM,0BAAU,IAAI,IAAoB;AAExC,MAAK,MAAM,WAAW,KAAK;AACzB,MAAI,OAAO;EACX,MAAMC,WAAS,CAAC;EAChB,MAAM,EACJ,SACA,kBACA,sBACA,aACA,2BACE;AAEJ,SAAO,QAAQ;AACf,SAAO,QAAQ;AAEf,OAAK,MAAM,SAAS,KAAK;AACvB,OAAI,MAAM,WAAW,QACnB;AAGF,OAAIC,UAAQ,UAAU,CAAC,QAAQ,OAAO,MAAM,SAAS,OAAOA,WAC1D;AAIF,OAAI,CAACA,UAAQ,UAAUC,YAAU,UAAU,CAAC,QAAQ,OAAO,MAAM,WAAW,OAAOA,aACjF;AAEF,UAAO,MAAM;AACb,UAAO,MAAM;AACb,YAAO,KAAK;AACZ,OAAI,OAAO;;EAGb,MAAMC,SAAyB;GAC7B,aAAa,GAAI,QAAS,IAAKF,YAAUC,aAAW,KAAK;GACzD,GAAGD,YAAU,EAAE;GACf;;AAGF,MAAID,SAAO,OAAO,EAAE,UAAU,gBAAgB,QAAQ,OAAOE,aAAW,OAAO,cAAc;AAC3F,UAAO,WAAWA;AAClB,UAAO,QAAQ,SAAS,UAAU,OAAO,MAAM;;AAGjD,MAAIF,SAAO,OAAO,EAAE,aAAa,mBAAmB,QAAQ,OAAO,cAAc,OAAO,iBAAiB;AACvG,UAAO,YAAYI;AACnB,UAAO,QAAQ,SAAQ,UAAS,OAAO,MAAM;;AAG/C,UAAQ,IAAI;;AAGd,QAAO;EACqB,SAAW,MAAM,KAAK;EAChD,UAAW,MAAM,KAAK,UAAW,KAAI,SAAQ;GAAE;GAAK,aAAa;;EACjE,QAAW,MAAM,KAAK,QAAW,KAAI,SAAQ;GAAE;GAAK,aAAa;;EACjE,WAAW,MAAM,KAAK,WAAW,KAAI,SAAQ;GAAE;GAAK,aAAa"}
|
|
1
|
+
{"version":3,"file":"schedules.js","names":["days: Day[]","start","end","start: moment.Moment | undefined","end: moment.Moment | undefined","_day: number","getDate","_teachers: string[] | undefined","_groups: string[] | undefined","_locations: string[] | undefined","doc: CoreTypes.serializedWithoutInternalId.event & { subject?: string }","x","events","course: CoreTypes.serializedWithoutInternalId.course","groups","teachers"],"sources":["../../../../src/SchoolSoft/file/from/schedules.ts"],"sourcesContent":["import type moment from 'moment';\nimport { trim, sortBy, countBy, size, groupBy } from 'lodash-es';\nimport type { Day, Event } from '../types/events';\nimport type { CoreTypes } from '../../../core';\nimport getDate from '../../../common/get-date';\nimport type { Options } from '../types';\nimport { makeChainable } from '../../../common/make-chainable';\n\nconst days: Day[] = ['Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör', 'Sön'];\n\nfunction _parseWeeks (\n weeks: string | undefined,\n set: Set<number>,\n method: ('add' | 'delete') = 'add'\n): void {\n if (!weeks) return;\n const intervals = weeks.split(',').map(x => trim(x)) as (`${number}-${number}` | `${number}${number}`)[];\n intervals.forEach(interval => {\n if (!interval.includes('-')) {\n set[method](Number(interval));\n return;\n }\n const [start, end] = interval.split('-').map(Number);\n Array.from({ length: end - start + 1 }, (_, index) => start + index)\n .forEach(x => set[method](x));\n });\n}\n\n\nexport default (\n input: Event[],\n options?: Options\n): Partial<CoreTypes.serializedWithoutInternalId.schedule> => {\n const teachers = new Set<string>();\n const groups = new Set<string>();\n const locations = new Set<string>();\n\n const events = input\n .map(event => {\n if (!event.length) return;\n\n const weeks = new Set<number>();\n const {\n inweek,\n exweek,\n realweeks\n } = event;\n\n try {\n _parseWeeks(inweek, weeks, 'add');\n _parseWeeks(realweeks, weeks, 'add');\n\n if (weeks.size == 0)\n Array.from({ length: 51 }, (_, index) => index + 1).forEach(x => weeks.add(x));\n _parseWeeks(exweek, weeks, 'delete');\n } catch (err) {\n console.error(err);\n }\n\n if (options?.interval) {\n const { start, end } = options.interval;\n\n if (start > 52 || start <= 0)\n throw new Error(`(SchoolSoft::From::Schedules) Interval::start is invalid. value ${ start }`);\n\n if (end > 52 || end <= 0)\n throw new Error(`(SchoolSoft::From::Schedules) Interval::end is invalid. value ${ end }`);\n\n if (start > end) {\n if (!Array.from(weeks).some(week => (week >= start && week <= 52) || week <= end))\n return;\n } else {\n if (!Array.from(weeks).some(week => week >= start && week <= end))\n return;\n }\n }\n\n let start: moment.Moment | undefined;\n let end: moment.Moment | undefined;\n\n const {\n starttime,\n subject,\n day,\n length,\n teacher,\n group,\n room\n } = event;\n\n if (day && starttime) {\n const _day: number = days.indexOf(day);\n\n if (_day > 4) return;\n\n start = getDate(_day, `${ starttime.substring(0, 2) }:${ starttime.substring(2, 4) }`);\n end = start.clone().add(length, 'm');\n }\n\n let _teachers: string[] | undefined;\n let _groups: string[] | undefined;\n let _locations: string[] | undefined;\n\n if (teacher) {\n _teachers = teacher.split(',').map(x => x.trim());\n _teachers?.forEach(x => teachers.add(x));\n }\n\n if (group) {\n _groups = group.split(',').map(x => x.trim());\n _groups?.forEach(x => groups.add(x));\n }\n\n if (room) {\n _locations = sortBy(room.split(',').map(x => x.trim()));\n _locations?.forEach(x => locations.add(x));\n }\n\n const doc: CoreTypes.serializedWithoutInternalId.event & { subject?: string } ={\n ids: event.id,\n preferredDuration: event.length,\n weeks: sortBy(Array.from(weeks)),\n ...subject && { subject },\n ...start && { start },\n ...end && { end },\n ...event.group && { groups: _groups ?.map(to => ({ to })) },\n ...event.teacher && { teachers: _teachers?.map(to => ({ to })) },\n ...event.room && {\n inLocations: _locations,\n locations: _locations?.map((_location, index: number) => (\n {\n locations: [_location],\n groupIndex: index\n })\n )\n }\n };\n\n return doc;\n })\n .filter(x => x != null);\n\n // construct courses from events with same subject, groups and teachers\n const courses = makeChainable(events)\n .chain(\n x => x.filter((e): e is typeof e & { ids: string } => !!e.ids),\n x => groupBy(x, e =>\n e.subject\n + '.g.' + e.groups?.map(x => x.to).join(',')\n // Subject Lunch only have teacher and no groups\n + (e.groups?.length ? '' : ('.t.' + e.teachers?.map(x => x.to).join(',') ))\n ),\n x => Object.values(x)\n .map(events => {\n // promote shared properties to course\n const { subject, groups, teachers } = events[0];\n for (const e of events) {\n delete e.subject;\n delete e.groups;\n }\n\n const course: CoreTypes.serializedWithoutInternalId.course = {\n displayName: `${ subject }-${ (groups ?? teachers)?.map(x => x.to).join(' ') }`,\n events: events.map(e => e.ids),\n ...groups,\n };\n\n // try to also promote teachers and locations\n if (size(countBy(events, e => e.teachers?.map(x => x.to).sort().join(','))) == 1) {\n course.teachers = events[0].teachers ?? undefined;\n events.forEach(e => delete e.teachers);\n }\n if (size(countBy(events, e => e.locations?.map(x => x.locations[0]).sort().join(','))) == 1) {\n course.locations = events[0].locations ?? undefined;\n events.forEach(e => delete e.locations);\n }\n\n return course;\n })\n )\n .value;\n\n return {\n courses: courses,\n teachers: Array.from(teachers) .map(ids => ({ ids, displayName: ids })),\n groups: Array.from(groups) .map(ids => ({ ids, displayName: ids })),\n locations: Array.from(locations).map(ids => ({ ids, displayName: ids }))\n };\n};"],"mappings":"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"}
|