@royalschedule/maps 3.3.17 → 4.0.1
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 +12 -12
- 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/options.d.ts +8 -0
- 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 +20 -0
- package/dist/RS/types/events.d.ts +27 -0
- package/dist/RS/{v2/types → types}/groups.d.ts +13 -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 +59 -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 +17 -1
- 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 +19 -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 +14 -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 +45 -0
- package/dist/core/types/common/intervals.d.ts +20 -0
- package/dist/core/types/common/maximum-schedule-span.d.ts +19 -0
- package/dist/core/{v2/types → types/common}/meta.d.ts +1 -1
- package/dist/core/types/common/planned-schedule-duration.d.ts +13 -0
- package/dist/core/types/common/tag.d.ts +9 -0
- package/dist/core/types/courses.d.ts +58 -0
- package/dist/core/{v2/types → types}/division-settings.d.ts +14 -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 +41 -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 +20 -30
- package/dist/core/util.js +46 -0
- package/dist/core/util.js.map +1 -0
- package/dist/core/vertex-mapping.d.ts +69 -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/maximum-schedule-span.d.ts +0 -8
- 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
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/RS/to/input/settings.ts
|
|
2
|
+
function parseSettings(settings) {
|
|
3
|
+
if (!settings.numDays) throw new Error("(RS::V3::To::parseSettings) numDays is falsy");
|
|
4
|
+
if (!settings.discretization) throw new Error("(RS::V3::To::parseSettings) discretization is falsy");
|
|
5
|
+
return {
|
|
6
|
+
numDays: settings.numDays,
|
|
7
|
+
discretization: settings.numDays,
|
|
8
|
+
dependencyIdKey: "id",
|
|
9
|
+
groupIdKey: "id",
|
|
10
|
+
collectionIdKey: "id",
|
|
11
|
+
eventIdKey: "id"
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { parseSettings };
|
|
17
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","names":[],"sources":["../../../../src/RS/to/input/settings.ts"],"sourcesContent":["import type { Types } from '../../types';\nimport type { ConnectedTypes } from '../../make-connected';\n\nexport function parseSettings (settings: ConnectedTypes.divisionSettings): Types.settings {\n\n if (!settings.numDays) throw new Error('(RS::V3::To::parseSettings) numDays is falsy');\n if (!settings.discretization) throw new Error('(RS::V3::To::parseSettings) discretization is falsy');\n\n return {\n numDays: settings.numDays,\n discretization: settings.numDays,\n\n dependencyIdKey: 'id',\n groupIdKey: 'id',\n collectionIdKey: 'id',\n eventIdKey: 'id'\n };\n};"],"mappings":";AAGA,SAAgB,cAAe,UAA2D;AAExF,KAAI,CAAC,SAAS,QAAgB,OAAM,IAAI,MAAM;AAC9C,KAAI,CAAC,SAAS,eAAgB,OAAM,IAAI,MAAM;AAE9C,QAAO;EACL,SAAgB,SAAS;EACzB,gBAAgB,SAAS;EAEzB,iBAAiB;EACjB,YAAiB;EACjB,iBAAiB;EACjB,YAAiB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { idOf } from "./util/util.js";
|
|
2
|
+
import { attachLockedTimes } from "./util/attach-locked-times.js";
|
|
3
|
+
import { parseDays } from "./util/parse-days.js";
|
|
4
|
+
import { parseMaxWorkingHours } from "./util/parse-max-working-hours.js";
|
|
5
|
+
import { parseMinimumBreakLength } from "./util/parse-minimum-break-length.js";
|
|
6
|
+
import { parseIntervals } from "./util/parse-intervals.js";
|
|
7
|
+
import { omitBy } from "lodash-es";
|
|
8
|
+
|
|
9
|
+
//#region src/RS/to/input/teachers.ts
|
|
10
|
+
function fromTeachers(teachers, settings, options) {
|
|
11
|
+
return teachers.map((teacher) => {
|
|
12
|
+
const doc = {
|
|
13
|
+
id: idOf.teacher(teacher, options),
|
|
14
|
+
group_type: "personal",
|
|
15
|
+
minimizeGaps: false,
|
|
16
|
+
minimizeDependencyAlternation: true,
|
|
17
|
+
forbidOverlappingEvents: options.oldFormat ? teacher.forbidOverlappingEvents : void 0,
|
|
18
|
+
disableDayLengthPunishment: options.oldFormat ? teacher.disableDayLengthPunishment : void 0,
|
|
19
|
+
weight: teacher.weight,
|
|
20
|
+
intervals: options.oldFormat ? parseIntervals(teacher.intervals, teacher.rootInterval ?? settings.defaultRootInterval, settings) : idOf.intervalPairReference(teacher.intervals, teacher.rootInterval, options),
|
|
21
|
+
days: parseDays(teacher.days, settings),
|
|
22
|
+
lockedTimes: attachLockedTimes(teacher.lockedTimes, options),
|
|
23
|
+
minBreakLength: parseMinimumBreakLength(teacher.minBreakLength),
|
|
24
|
+
...parseMaxWorkingHours(teacher, options)
|
|
25
|
+
};
|
|
26
|
+
if (options.meta) doc.meta = omitBy({
|
|
27
|
+
ids: teacher.ids,
|
|
28
|
+
name: teacher.displayName
|
|
29
|
+
}, (x) => x == null);
|
|
30
|
+
return omitBy(doc, (x) => x == null);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { fromTeachers };
|
|
36
|
+
//# sourceMappingURL=teachers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teachers.js","names":["doc: Types.group"],"sources":["../../../../src/RS/to/input/teachers.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { Types } from '../../types';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { parseMaxWorkingHours } from './util/parse-max-working-hours';\nimport { parseDays } from './util/parse-days';\nimport { attachLockedTimes } from './util/attach-locked-times';\nimport { parseMinimumBreakLength } from './util/parse-minimum-break-length';\nimport { idOf } from './util/util';\nimport { parseIntervals } from './util/parse-intervals';\n\nexport function fromTeachers (\n teachers: ConnectedTypes.teacher[],\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions\n): Types.group[] {\n return teachers\n .map(teacher => {\n const doc: Types.group = {\n id: idOf.teacher(teacher, options),\n group_type: 'personal',\n minimizeGaps: false,\n minimizeDependencyAlternation: true,\n forbidOverlappingEvents: options.oldFormat ? teacher.forbidOverlappingEvents : undefined, // Deprecated in v3\n disableDayLengthPunishment: options.oldFormat ? teacher.disableDayLengthPunishment : undefined, // Deprecated in v3\n weight: teacher.weight,\n intervals: options.oldFormat\n ? parseIntervals(teacher.intervals, teacher.rootInterval ?? settings.defaultRootInterval, settings)\n : idOf.intervalPairReference(teacher.intervals, teacher.rootInterval, options),\n days: parseDays (teacher.days, settings),\n lockedTimes: attachLockedTimes (teacher.lockedTimes, options),\n minBreakLength: parseMinimumBreakLength (teacher.minBreakLength),\n\n ...parseMaxWorkingHours(teacher, options),\n };\n\n if (options.meta) {\n doc.meta = omitBy({\n ids: teacher.ids,\n name: teacher.displayName,\n }, x => x == null);\n }\n\n return omitBy(doc, x => x == null) as Types.group;\n });\n};\n"],"mappings":";;;;;;;;;AAUA,SAAgB,aACd,UACA,UACA,SACe;AACf,QAAO,SACJ,KAAI,YAAW;EACd,MAAMA,MAAmB;GACvB,IAA+B,KAAK,QAAQ,SAAS;GACrD,YAA+B;GAC/B,cAA+B;GAC/B,+BAA+B;GAC/B,yBAA+B,QAAQ,YAAY,QAAQ,0BAA0B;GACrF,4BAA+B,QAAQ,YAAY,QAAQ,6BAA6B;GACxF,QAA+B,QAAQ;GACvC,WAA+B,QAAQ,YACnC,eAAe,QAAQ,WAAW,QAAQ,gBAAgB,SAAS,qBAAqB,YACxF,KAAK,sBAAsB,QAAQ,WAAW,QAAQ,cAAc;GACxE,MAAgB,UAA2B,QAAQ,MAAM;GACzD,aAAgB,kBAA2B,QAAQ,aAAa;GAChE,gBAAgB,wBAA2B,QAAQ;GAEnD,GAAG,qBAAqB,SAAS;;AAGnC,MAAI,QAAQ,KACV,KAAI,OAAO,OAAO;GAChB,KAAM,QAAQ;GACd,MAAM,QAAQ;MACb,MAAK,KAAK;AAGf,SAAO,OAAO,MAAK,MAAK,KAAK"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { getDayIndex, getVertexId, parseDateInterval } from "../../../../core/util.js";
|
|
2
|
+
import { omitBy } from "lodash-es";
|
|
3
|
+
|
|
4
|
+
//#region src/RS/to/input/util/attach-locked-times.ts
|
|
5
|
+
function attachLockedTimes(lockedTimes, options) {
|
|
6
|
+
return lockedTimes?.map((lockedTime) => {
|
|
7
|
+
const { start: startDate, end: endDate } = parseDateInterval(lockedTime, "locked time");
|
|
8
|
+
const length = endDate.diff(startDate, "minutes");
|
|
9
|
+
if (length < 5) throw new Error("(RS::V3::To::LockedTimes) Length of a locked time is less than 5 min");
|
|
10
|
+
const start = parseFloat(startDate.format("HH.mm"));
|
|
11
|
+
const doc = {
|
|
12
|
+
day: getDayIndex(startDate),
|
|
13
|
+
start,
|
|
14
|
+
length
|
|
15
|
+
};
|
|
16
|
+
if (options.meta) doc.meta = omitBy({
|
|
17
|
+
id: getVertexId(lockedTime, options),
|
|
18
|
+
visible: lockedTime.visible,
|
|
19
|
+
name: lockedTime.displayName
|
|
20
|
+
}, (x) => x == null);
|
|
21
|
+
return omitBy(doc, (x) => x == null);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { attachLockedTimes };
|
|
27
|
+
//# sourceMappingURL=attach-locked-times.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach-locked-times.js","names":["doc: Types.lockedTime"],"sources":["../../../../../src/RS/to/input/util/attach-locked-times.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { Types } from '../../../types';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport { getDayIndex, getVertexId, parseDateInterval } from '../../../../core/util';\n\nexport function attachLockedTimes (\n lockedTimes: ConnectedTypes.lockedTime[] | null | undefined,\n options: Types.parsedToOptions\n): Types.lockedTime[] | undefined {\n\n return lockedTimes?.map(lockedTime => {\n const { start: startDate, end: endDate } = parseDateInterval(lockedTime, 'locked time');\n\n const length = endDate.diff(startDate, 'minutes');\n if (length < 5) throw new Error('(RS::V3::To::LockedTimes) Length of a locked time is less than 5 min');\n\n const start = parseFloat(startDate.format('HH.mm'));\n\n const doc: Types.lockedTime = {\n day: getDayIndex(startDate),\n start: start,\n length: length,\n };\n\n if (options.meta) {\n doc.meta = omitBy({\n id: getVertexId(lockedTime, options),\n visible: lockedTime.visible,\n name: lockedTime.displayName,\n }, x => x == null);\n }\n\n return omitBy(doc, x => x == null) as Types.lockedTime;\n });\n};"],"mappings":";;;;AAKA,SAAgB,kBACd,aACA,SACgC;AAEhC,QAAO,aAAa,KAAI,eAAc;EACpC,MAAM,EAAE,OAAO,WAAW,KAAK,YAAY,kBAAkB,YAAY;EAEzE,MAAM,SAAS,QAAQ,KAAK,WAAW;AACvC,MAAI,SAAS,EAAG,OAAM,IAAI,MAAM;EAEhC,MAAM,QAAQ,WAAW,UAAU,OAAO;EAE1C,MAAMA,MAAwB;GAC5B,KAAQ,YAAY;GACZ;GACA;;AAGV,MAAI,QAAQ,KACV,KAAI,OAAO,OAAO;GAChB,IAAS,YAAY,YAAY;GACjC,SAAS,WAAW;GACpB,MAAS,WAAW;MACnB,MAAK,KAAK;AAGf,SAAO,OAAO,MAAK,MAAK,KAAK"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/RS/to/input/util/parse-days.ts
|
|
2
|
+
function parseDays(days, settings) {
|
|
3
|
+
if (!days) return;
|
|
4
|
+
if (days.length) return days.map((x) => x.day);
|
|
5
|
+
return [...Array.from({ length: settings.numDays })].map((_, i) => i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { parseDays };
|
|
10
|
+
//# sourceMappingURL=parse-days.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-days.js","names":[],"sources":["../../../../../src/RS/to/input/util/parse-days.ts"],"sourcesContent":["import type { ConnectedTypes } from '../../../make-connected';\n\nexport function parseDays (\n days: ConnectedTypes.event['days'] | ConnectedTypes.course['days'],\n settings: ConnectedTypes.divisionSettings\n) {\n if (!days) return;\n\n if (days.length) return days.map(x => x.day);\n\n // empty days means all days selected (since no days selected is prohibited)\n return [...Array.from({ length: settings.numDays })].map((_, i) => i);\n}"],"mappings":";AAEA,SAAgB,UACd,MACA,UACA;AACA,KAAI,CAAC,KAAM;AAEX,KAAI,KAAK,OAAQ,QAAO,KAAK,KAAI,MAAK,EAAE;AAGxC,QAAO,CAAC,GAAG,MAAM,KAAK,EAAE,QAAQ,SAAS,YAAY,KAAK,GAAG,MAAM"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { getVertexId } from "../../../../core/util.js";
|
|
2
|
+
import { makeChainable } from "../../../../common/make-chainable/index.js";
|
|
3
|
+
import { idOf } from "./util.js";
|
|
4
|
+
import { groupBy, uniq } from "lodash-es";
|
|
5
|
+
|
|
6
|
+
//#region src/RS/to/input/util/parse-group-references.ts
|
|
7
|
+
/**
|
|
8
|
+
* Merges group references with their parent groups while ensuring that a group is present at
|
|
9
|
+
* most once and that parent groups are prioritized as they carry no member exclusions.
|
|
10
|
+
*/
|
|
11
|
+
function mergeWithParentGroups(references, options) {
|
|
12
|
+
return makeChainable(references).chain((x) => x.flatMap((x$1) => [x$1, ...(x$1.to.parentGroups ?? []).map((y) => ({
|
|
13
|
+
to: y,
|
|
14
|
+
isParentGroup: true
|
|
15
|
+
}))]), (x) => groupBy(x, (x$1) => getVertexId(x$1.to, options)), (x) => Object.values(x).map((xs) => xs.find((x$1) => x$1.isParentGroup) ?? xs.at(0)).filter((x$1) => x$1 != null)).value;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns the source of group, teacher, and participant references for a given item while taking into account event inheritance.
|
|
19
|
+
*/
|
|
20
|
+
function getSources(itemAndType) {
|
|
21
|
+
if (itemAndType.type == "lockedTime") return {
|
|
22
|
+
teachers: itemAndType.item.coalesced?.filter((x) => x.toModel == "teachers"),
|
|
23
|
+
groups: itemAndType.item.coalesced?.filter((x) => x.toModel == "groups")
|
|
24
|
+
};
|
|
25
|
+
const item = itemAndType.item;
|
|
26
|
+
const teachersSource = item.teachers ? item : "course" in item && item.course ? item.course : item;
|
|
27
|
+
const groupsAndParticipantsSource = item.groups || item.participants ? item : "course" in item && item.course ? item.course : item;
|
|
28
|
+
return {
|
|
29
|
+
teachers: teachersSource.teachers ?? void 0,
|
|
30
|
+
groups: groupsAndParticipantsSource.groups ?? void 0,
|
|
31
|
+
participants: groupsAndParticipantsSource.participants ?? void 0
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parses group references from a course or event while carrying out event inheritance and taking into account parent groups.
|
|
36
|
+
*/
|
|
37
|
+
function parseGroupReferences(itemAndType, options) {
|
|
38
|
+
const sources = getSources(itemAndType);
|
|
39
|
+
if (options.oldFormat) return makeChainable([
|
|
40
|
+
...(sources.teachers ?? []).map((x) => idOf.teacher(x.to, options)),
|
|
41
|
+
...mergeWithParentGroups(sources.groups ?? [], options).flatMap((ref) => {
|
|
42
|
+
if (ref.to.species == "class") return idOf.group(ref.to, options);
|
|
43
|
+
return (ref.to.members ?? []).filter((x) => !ref.exclude?.includes(x)).map((x) => x.group ? getVertexId(x.group, options) : void 0).filter((x) => x != null);
|
|
44
|
+
}),
|
|
45
|
+
...(sources.participants ?? []).map((x) => x.to.group ? getVertexId(x.to.group, options) : void 0).filter((x) => x != null)
|
|
46
|
+
]).chain((x) => uniq(x).map((x$1) => [x$1])).value;
|
|
47
|
+
const teacherReferences = (sources.teachers ?? []).map((x) => ({ group: idOf.teacher(x.to, options) }));
|
|
48
|
+
const groupReferences = mergeWithParentGroups(sources.groups ?? [], options).map((x) => {
|
|
49
|
+
if (x.to.species != "class" || x.exclude?.length) return { individuals: idOf.groupReference(x, options) };
|
|
50
|
+
return { group: idOf.group(x.to, options) };
|
|
51
|
+
});
|
|
52
|
+
const participantReferences = sources.participants ? { individuals: sources.participants.map((x) => idOf.person(x.to, options)) } : void 0;
|
|
53
|
+
return teacherReferences.concat(groupReferences, participantReferences ? [participantReferences] : []).map((x) => [x]);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
export { parseGroupReferences };
|
|
58
|
+
//# sourceMappingURL=parse-group-references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-group-references.js","names":["x"],"sources":["../../../../../src/RS/to/input/util/parse-group-references.ts"],"sourcesContent":["import { groupBy, uniq } from 'lodash-es';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport { idOf } from './util';\nimport { getVertexId } from '../../../../core/util';\nimport type { GroupReference, PersonReference } from '../../../../core/types/common';\nimport type { Types } from '../../../types';\nimport { makeChainable } from '../../../../common/make-chainable';\n\n/**\n * Merges group references with their parent groups while ensuring that a group is present at\n * most once and that parent groups are prioritized as they carry no member exclusions.\n */\nfunction mergeWithParentGroups (\n references: GroupReference<ConnectedTypes.group, ConnectedTypes.person>[],\n options: Types.parsedToOptions\n): GroupReference<ConnectedTypes.group, ConnectedTypes.person>[] {\n return makeChainable(references)\n .chain(\n x => x.flatMap((x): ((typeof x) & { isParentGroup?: boolean })[] => ([\n x, ...(x.to.parentGroups ?? []).map(y => ({ to: y, isParentGroup: true }))\n ])),\n x => groupBy(x, x => getVertexId(x.to, options)),\n x => Object.values(x)\n .map(xs => xs.find(x => x.isParentGroup) ?? xs.at(0))\n .filter(x => x != null)\n )\n .value;\n}\n\ntype ItemAndType =\n | { item: ConnectedTypes.course, type: 'course' }\n | { item: ConnectedTypes.event, type: 'event' }\n | { item: ConnectedTypes.lockedTime, type: 'lockedTime' };\n\ntype Source = {\n teachers?: PersonReference<ConnectedTypes.teacher>[];\n groups?: GroupReference<ConnectedTypes.group, ConnectedTypes.person>[];\n participants?: PersonReference<ConnectedTypes.person>[];\n};\n\n/**\n * Returns the source of group, teacher, and participant references for a given item while taking into account event inheritance.\n */\nfunction getSources (itemAndType: ItemAndType): Source {\n if (itemAndType.type == 'lockedTime') return {\n teachers: itemAndType.item.coalesced?.filter(x => x.toModel == 'teachers'),\n groups: itemAndType.item.coalesced?.filter(x => x.toModel == 'groups' )\n };\n\n const item = itemAndType.item;\n const teachersSource = item.teachers\n ? item\n : ('course' in item && item.course ? item.course : item);\n const groupsAndParticipantsSource = (item.groups || item.participants)\n ? item\n : ('course' in item && item.course ? item.course : item);\n return {\n teachers: teachersSource.teachers ?? undefined,\n groups: groupsAndParticipantsSource.groups ?? undefined,\n participants: groupsAndParticipantsSource.participants ?? undefined\n };\n}\n\n/**\n * Parses group references from a course or event while carrying out event inheritance and taking into account parent groups.\n */\nexport function parseGroupReferences (\n itemAndType: ItemAndType,\n options: Types.parsedToOptions\n): Types.groupReference[][] {\n const sources = getSources(itemAndType);\n\n // if interested in the old format we care only about references to groups\n if (options.oldFormat) {\n return makeChainable([\n ...(sources.teachers ?? [])\n .map(x => idOf.teacher(x.to, options)),\n ...mergeWithParentGroups(sources.groups ?? [], options)\n .flatMap(ref => {\n if (ref.to.species == 'class') return idOf.group(ref.to, options);\n\n // if not a class fetch the remaining group member's parent group\n return (ref.to.members ?? [])\n .filter(x => !ref.exclude?.includes(x))\n .map(x => x.group ? getVertexId(x.group, options) : undefined)\n .filter(x => x != null);\n }),\n ...(sources.participants ?? [])\n .map(x => x.to.group ? getVertexId(x.to.group, options) : undefined)\n .filter(x => x != null)\n ])\n .chain(\n x => uniq(x).map(x => [x])\n )\n .value;\n }\n\n const teacherReferences = (sources.teachers ?? [])\n .map((x): Types.groupReference => ({ group: idOf.teacher(x.to, options) }));\n\n const groupReferences = mergeWithParentGroups(sources.groups ?? [], options)\n .map((x): Types.groupReference => {\n if (x.to.species != 'class' || x.exclude?.length) return { individuals: idOf.groupReference(x, options) }; // use individuals set if not a plain group reference\n return { group: idOf.group(x.to, options) };\n });\n\n const participantReferences = sources.participants\n ? { individuals: sources.participants.map(x => idOf.person(x.to, options)) } as Types.groupReference\n : undefined;\n\n // combine all references\n return teacherReferences\n .concat(\n groupReferences,\n participantReferences ? [participantReferences] : []\n )\n .map(x => [x]);\n}"],"mappings":";;;;;;;;;;AAYA,SAAS,sBACP,YACA,SAC+D;AAC/D,QAAO,cAAc,YAClB,OACC,MAAK,EAAE,SAAS,QAAqD,CACnEA,KAAG,IAAIA,IAAE,GAAG,gBAAgB,IAAI,KAAI,OAAM;EAAE,IAAI;EAAG,eAAe;SAEpE,MAAK,QAAQ,IAAG,QAAK,YAAYA,IAAE,IAAI,YACvC,MAAK,OAAO,OAAO,GAChB,KAAI,OAAM,GAAG,MAAK,QAAKA,IAAE,kBAAkB,GAAG,GAAG,IACjD,QAAO,QAAKA,OAAK,OAErB;;;;;AAiBL,SAAS,WAAY,aAAkC;AACrD,KAAI,YAAY,QAAQ,aAAc,QAAO;EAC3C,UAAU,YAAY,KAAK,WAAW,QAAO,MAAK,EAAE,WAAW;EAC/D,QAAU,YAAY,KAAK,WAAW,QAAO,MAAK,EAAE,WAAW;;CAGjE,MAAM,OAAO,YAAY;CACzB,MAAM,iBAAiB,KAAK,WACxB,OACC,YAAY,QAAQ,KAAK,SAAS,KAAK,SAAS;CACrD,MAAM,8BAA+B,KAAK,UAAU,KAAK,eACrD,OACC,YAAY,QAAQ,KAAK,SAAS,KAAK,SAAS;AACrD,QAAO;EACL,UAAc,eAAe,YAA6B;EAC1D,QAAc,4BAA4B,UAAgB;EAC1D,cAAc,4BAA4B,gBAAgB;;;;;;AAO9D,SAAgB,qBACd,aACA,SAC0B;CAC1B,MAAM,UAAU,WAAW;AAG3B,KAAI,QAAQ,UACV,QAAO,cAAc;EACnB,IAAI,QAAQ,YAAY,IACrB,KAAI,MAAK,KAAK,QAAQ,EAAE,IAAI;EAC/B,GAAG,sBAAsB,QAAQ,UAAU,IAAI,SAC5C,SAAQ,QAAO;AACd,OAAI,IAAI,GAAG,WAAW,QAAS,QAAO,KAAK,MAAM,IAAI,IAAI;AAGzD,WAAQ,IAAI,GAAG,WAAW,IACvB,QAAO,MAAK,CAAC,IAAI,SAAS,SAAS,IACnC,KAAI,MAAK,EAAE,QAAQ,YAAY,EAAE,OAAO,WAAW,QACnD,QAAO,MAAK,KAAK;;EAExB,IAAI,QAAQ,gBAAgB,IACzB,KAAI,MAAK,EAAE,GAAG,QAAQ,YAAY,EAAE,GAAG,OAAO,WAAW,QACzD,QAAO,MAAK,KAAK;IAEnB,OACC,MAAK,KAAK,GAAG,KAAI,QAAK,CAACA,OAExB;CAGL,MAAM,qBAAqB,QAAQ,YAAY,IAC5C,KAAK,OAA6B,EAAE,OAAO,KAAK,QAAQ,EAAE,IAAI;CAEjE,MAAM,kBAAkB,sBAAsB,QAAQ,UAAU,IAAI,SACjE,KAAK,MAA4B;AAChC,MAAI,EAAE,GAAG,WAAW,WAAW,EAAE,SAAS,OAAQ,QAAO,EAAE,aAAa,KAAK,eAAe,GAAG;AAC/F,SAAO,EAAE,OAAO,KAAK,MAAM,EAAE,IAAI;;CAGrC,MAAM,wBAAwB,QAAQ,eAClC,EAAE,aAAa,QAAQ,aAAa,KAAI,MAAK,KAAK,OAAO,EAAE,IAAI,cAC/D;AAGJ,QAAO,kBACJ,OACC,iBACA,wBAAwB,CAAC,yBAAyB,IAEnD,KAAI,MAAK,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { getDayIndex } from "../../../../core/util.js";
|
|
2
|
+
import { makeChainable } from "../../../../common/make-chainable/index.js";
|
|
3
|
+
import { groupBy } from "lodash-es";
|
|
4
|
+
import moment from "moment";
|
|
5
|
+
|
|
6
|
+
//#region src/RS/to/input/util/parse-intervals.ts
|
|
7
|
+
function getDayLimits(intervals, settings) {
|
|
8
|
+
if (!intervals) {
|
|
9
|
+
const start = moment.utc(settings.dayStart, "HH:mm");
|
|
10
|
+
const end = moment.utc(settings.dayEnd, "HH:mm");
|
|
11
|
+
intervals = Array.from({ length: settings.numDays }, () => ({
|
|
12
|
+
start: start.clone(),
|
|
13
|
+
end: end.clone()
|
|
14
|
+
}));
|
|
15
|
+
} else if (intervals.length == 1) {
|
|
16
|
+
const i = intervals[0];
|
|
17
|
+
const start = moment.utc(i.start, "HH:mm");
|
|
18
|
+
const end = moment.utc(i.end, "HH:mm");
|
|
19
|
+
intervals = Array.from({ length: settings.numDays }, () => ({
|
|
20
|
+
start: start.clone(),
|
|
21
|
+
end: end.clone()
|
|
22
|
+
}));
|
|
23
|
+
} else throw new Error(`(RS::V3::To::Intervals) Intervals length ${intervals.length} does not match settings.numDays ${settings.numDays}`);
|
|
24
|
+
return intervals.map((i, day) => {
|
|
25
|
+
if (!i.start || !i.end) throw new Error(`(RS::V3::To::Intervals) Interval missing start or end for day ${day}`);
|
|
26
|
+
const start = parseFloat(moment.utc(i.start).format("HH.mm"));
|
|
27
|
+
const end = parseFloat(moment.utc(i.end).format("HH.mm"));
|
|
28
|
+
return {
|
|
29
|
+
beg: start,
|
|
30
|
+
end
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated The old way of parsing intervals
|
|
36
|
+
*/
|
|
37
|
+
function parseIntervals(intervals, rootInterval, settings) {
|
|
38
|
+
if (intervals && !rootInterval) return getDayLimits(intervals, settings).map((i) => [i]);
|
|
39
|
+
if (rootInterval) {
|
|
40
|
+
const dayLimits = getDayLimits(intervals, settings);
|
|
41
|
+
return makeChainable(rootInterval.intervals).chain((x) => groupBy(x, (x$1) => getDayIndex(x$1.start)), (x) => Object.entries(x).map(([day, xs]) => {
|
|
42
|
+
const limit = dayLimits.at(parseInt(day));
|
|
43
|
+
if (!limit) throw new Error(`(RS::V3::To::Intervals) Day ${day} not found in dayStartAndEnds`);
|
|
44
|
+
return xs.map((x$1) => ({
|
|
45
|
+
beg: parseFloat(moment.utc(x$1.start).format("HH.mm")),
|
|
46
|
+
end: parseFloat(moment.utc(x$1.end).format("HH.mm")),
|
|
47
|
+
binary: true
|
|
48
|
+
})).filter((x$1) => x$1.beg >= limit.beg && x$1.end <= limit.end);
|
|
49
|
+
})).value;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
export { parseIntervals };
|
|
55
|
+
//# sourceMappingURL=parse-intervals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-intervals.js","names":["x"],"sources":["../../../../../src/RS/to/input/util/parse-intervals.ts"],"sourcesContent":["import moment from 'moment';\nimport { groupBy } from 'lodash-es';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport type { AllowedInterval } from '../../../../core/types/common/intervals';\nimport { getDayIndex } from '../../../../core/util';\nimport type { Types } from '../../../types';\nimport { makeChainable } from '../../../../common/make-chainable';\n\nfunction getDayLimits (\n intervals: AllowedInterval[] | undefined,\n settings: ConnectedTypes.divisionSettings\n): { beg: number, end: number }[] {\n // remove short-hand notation (a single interval for all days)\n if (!intervals) {\n const start = moment.utc(settings.dayStart, 'HH:mm');\n const end = moment.utc(settings.dayEnd, 'HH:mm');\n intervals = Array.from({ length: settings.numDays }, () => ({ start: start.clone(), end: end.clone() }));\n }\n else if (intervals.length == 1) {\n const i = intervals[0];\n const start = moment.utc(i.start, 'HH:mm');\n const end = moment.utc(i.end, 'HH:mm');\n intervals = Array.from({ length: settings.numDays }, () => ({ start: start.clone(), end: end.clone() }));\n } else {\n throw new Error(`(RS::V3::To::Intervals) Intervals length ${intervals.length} does not match settings.numDays ${settings.numDays}`);\n }\n\n // the day start and end times of each day\n return intervals.map((i, day: number) => {\n if (!i.start || !i.end) throw new Error(`(RS::V3::To::Intervals) Interval missing start or end for day ${day}`);\n const start = parseFloat(moment.utc(i.start).format('HH.mm'));\n const end = parseFloat(moment.utc(i.end ).format('HH.mm'));\n return { beg: start, end: end };\n });\n}\n\n\n/**\n * @deprecated The old way of parsing intervals\n */\nexport function parseIntervals (\n intervals: AllowedInterval[] | undefined,\n rootInterval: ConnectedTypes.rootInterval | undefined,\n settings: ConnectedTypes.divisionSettings\n): Types.interval[][] | undefined {\n // if only intervals are provided\n if (intervals && !rootInterval) return getDayLimits(intervals, settings).map(i => [i]);\n\n // if root intervals are present\n if (rootInterval) {\n const dayLimits = getDayLimits(intervals, settings);\n return makeChainable(rootInterval.intervals)\n .chain(\n x => groupBy(x, x => getDayIndex(x.start)),\n x => Object.entries(x)\n .map(([day, xs]) => {\n const limit = dayLimits.at(parseInt(day));\n if (!limit) throw new Error(`(RS::V3::To::Intervals) Day ${day} not found in dayStartAndEnds`);\n\n // remove all block intervals that lay outside the day start and end\n return xs\n .map(x => ({\n beg: parseFloat(moment.utc(x.start).format('HH.mm')),\n end: parseFloat(moment.utc(x.end ).format('HH.mm')),\n binary: true\n } satisfies Types.interval))\n .filter(x => x.beg >= limit.beg && x.end <= limit.end);\n })\n )\n .value;\n }\n\n // only remaining case here is \"!intervals && !rootInterval\"\n return;\n};\n"],"mappings":";;;;;;AAQA,SAAS,aACP,WACA,UACgC;AAEhC,KAAI,CAAC,WAAW;EACd,MAAM,QAAQ,OAAO,IAAI,SAAS,UAAU;EAC5C,MAAM,MAAQ,OAAO,IAAI,SAAS,QAAU;AAC5C,cAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,kBAAkB;GAAE,OAAO,MAAM;GAAS,KAAK,IAAI;;YAEtF,UAAU,UAAU,GAAG;EAC9B,MAAM,IAAI,UAAU;EACpB,MAAM,QAAQ,OAAO,IAAI,EAAE,OAAO;EAClC,MAAM,MAAQ,OAAO,IAAI,EAAE,KAAO;AAClC,cAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,kBAAkB;GAAE,OAAO,MAAM;GAAS,KAAK,IAAI;;OAE7F,OAAM,IAAI,MAAM,4CAA4C,UAAU,OAAO,mCAAmC,SAAS;AAI3H,QAAO,UAAU,KAAK,GAAG,QAAgB;AACvC,MAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAK,OAAM,IAAI,MAAM,iEAAiE;EACzG,MAAM,QAAQ,WAAW,OAAO,IAAI,EAAE,OAAO,OAAO;EACpD,MAAM,MAAQ,WAAW,OAAO,IAAI,EAAE,KAAO,OAAO;AACpD,SAAO;GAAE,KAAK;GAAY;;;;;;;AAQ9B,SAAgB,eACd,WACA,cACA,UACgC;AAEhC,KAAI,aAAa,CAAC,aAAc,QAAO,aAAa,WAAW,UAAU,KAAI,MAAK,CAAC;AAGnF,KAAI,cAAc;EAChB,MAAM,YAAY,aAAa,WAAW;AAC1C,SAAO,cAAc,aAAa,WAC/B,OACC,MAAK,QAAQ,IAAG,QAAK,YAAYA,IAAE,UACnC,MAAK,OAAO,QAAQ,GACjB,KAAK,CAAC,KAAK,QAAQ;GAClB,MAAM,QAAQ,UAAU,GAAG,SAAS;AACpC,OAAI,CAAC,MAAO,OAAM,IAAI,MAAM,+BAA+B,IAAI;AAG/D,UAAO,GACJ,KAAI,SAAM;IACT,KAAQ,WAAW,OAAO,IAAIA,IAAE,OAAO,OAAO;IAC9C,KAAQ,WAAW,OAAO,IAAIA,IAAE,KAAO,OAAO;IAC9C,QAAQ;OAET,QAAO,QAAKA,IAAE,OAAO,MAAM,OAAOA,IAAE,OAAO,MAAM;MAGzD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { getVertexId } from "../../../../core/util.js";
|
|
2
|
+
import { makeChainable } from "../../../../common/make-chainable/index.js";
|
|
3
|
+
import { groupBy } from "lodash-es";
|
|
4
|
+
|
|
5
|
+
//#region src/RS/to/input/util/parse-location-references.ts
|
|
6
|
+
function parseLocationReferences(references, options) {
|
|
7
|
+
if (!references) return;
|
|
8
|
+
return makeChainable(references).chain((x) => x.map(({ locations, groupIndex, rank }) => ({
|
|
9
|
+
dependency: getVertexId(locations[0], options),
|
|
10
|
+
rank,
|
|
11
|
+
groupIndex
|
|
12
|
+
})).filter((x$1) => {
|
|
13
|
+
const includedLocations = options.partialScheduleOptions?.includedLocations;
|
|
14
|
+
if (!includedLocations) return true;
|
|
15
|
+
return includedLocations.has(x$1.dependency);
|
|
16
|
+
}), (x) => groupBy(x, (x$1) => x$1.groupIndex), (x) => Object.values(x).map((xs) => xs.map((x$1) => ({
|
|
17
|
+
dependency: x$1.dependency,
|
|
18
|
+
rank: x$1.rank
|
|
19
|
+
})))).value;
|
|
20
|
+
}
|
|
21
|
+
function parseSelectedLocations(event, options) {
|
|
22
|
+
const locationsRef = event.locations ?? event.course?.locations;
|
|
23
|
+
const dependencies = parseLocationReferences(locationsRef, options);
|
|
24
|
+
const inLocations = event.inLocations ?? [];
|
|
25
|
+
if (inLocations.length === dependencies?.length) return inLocations.map((x) => x ? getVertexId(x, options) : null);
|
|
26
|
+
return inLocations.map((x) => x ? getVertexId(x, options) : null).concat(Array.from({ length: Math.max((dependencies?.length ?? 0) - inLocations.length, 0) }).map(() => null));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
export { parseLocationReferences, parseSelectedLocations };
|
|
31
|
+
//# sourceMappingURL=parse-location-references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-location-references.js","names":["x"],"sources":["../../../../../src/RS/to/input/util/parse-location-references.ts"],"sourcesContent":["import { groupBy } from 'lodash-es';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport type { Types } from '../../../types';\nimport { getVertexId } from '../../../../core/util';\nimport type { AvailableLocation } from '../../../../core/types/common';\nimport { makeChainable } from '../../../../common/make-chainable';\n\nexport function parseLocationReferences (\n references: AvailableLocation<ConnectedTypes.location>[] | null | undefined,\n options: Types.parsedToOptions\n) {\n if (!references) return;\n\n return makeChainable(references)\n .chain(\n x => x\n .map(({ locations, groupIndex, rank }) => ({\n dependency: getVertexId(locations[0], options),\n rank: rank,\n groupIndex: groupIndex\n }))\n .filter(x => {\n // filter location references based on partial schedule options\n const includedLocations = options.partialScheduleOptions?.includedLocations;\n if (!includedLocations) return true;\n return includedLocations.has(x.dependency);\n }),\n x => groupBy(x, x => x.groupIndex),\n x => Object.values(x)\n .map(xs => xs.map(x => ({\n dependency: x.dependency,\n rank: x.rank,\n }) as Types.availableDependency))\n )\n .value;\n}\n\nexport function parseSelectedLocations (event: ConnectedTypes.event, options: Types.parsedToOptions) {\n\n const locationsRef = event.locations ?? event.course?.locations;\n const dependencies = parseLocationReferences(locationsRef, options);\n const inLocations = event.inLocations ?? [];\n\n // simply use inLocations if they match the number of dependencies\n if (inLocations.length === dependencies?.length) {\n return inLocations.map(x => x ? getVertexId(x, options) : null);\n }\n\n // otherwise, fill inLocations with nulls to match the number of dependencies\n return inLocations\n .map(x => x ? getVertexId(x, options) : null)\n .concat(Array\n .from({ length: Math.max((dependencies?.length ?? 0) - inLocations.length, 0) })\n .map(() => null as string | null)\n );\n}"],"mappings":";;;;;AAOA,SAAgB,wBACd,YACA,SACA;AACA,KAAI,CAAC,WAAY;AAEjB,QAAO,cAAc,YAClB,OACC,MAAK,EACF,KAAK,EAAE,WAAW,YAAY,YAAY;EACzC,YAAY,YAAY,UAAU,IAAI;EAC1B;EACA;KAEb,QAAO,QAAK;EAEX,MAAM,oBAAoB,QAAQ,wBAAwB;AAC1D,MAAI,CAAC,kBAAmB,QAAO;AAC/B,SAAO,kBAAkB,IAAIA,IAAE;MAEnC,MAAK,QAAQ,IAAG,QAAKA,IAAE,cACvB,MAAK,OAAO,OAAO,GAChB,KAAI,OAAM,GAAG,KAAI,SAAM;EACtB,YAAYA,IAAE;EACd,MAAYA,IAAE;OAGnB;;AAGL,SAAgB,uBAAwB,OAA6B,SAAgC;CAEnG,MAAM,eAAe,MAAM,aAAa,MAAM,QAAQ;CACtD,MAAM,eAAe,wBAAwB,cAAc;CAC3D,MAAM,cAAe,MAAM,eAAe;AAG1C,KAAI,YAAY,WAAW,cAAc,OACvC,QAAO,YAAY,KAAI,MAAM,IAAI,YAAY,GAAG,WAAW;AAI7D,QAAO,YACJ,KAAI,MAAM,IAAI,YAAY,GAAG,WAAW,MACxC,OAAO,MACL,KAAK,EAAE,QAAQ,KAAK,KAAK,cAAc,UAAU,KAAK,YAAY,QAAQ,MAC1E,UAAU"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { min2hrs } from "./util.js";
|
|
2
|
+
|
|
3
|
+
//#region src/RS/to/input/util/parse-max-working-hours.ts
|
|
4
|
+
function parseMaxWorkingHours(group, options) {
|
|
5
|
+
if (options.useMaximumScheduleSpan && group.maximumScheduleSpan) return {
|
|
6
|
+
maxNumWorkingHours: min2hrs(group.maximumScheduleSpan.daily) ?? false,
|
|
7
|
+
maxNumDailyWorkingHours: min2hrs(group.maximumScheduleSpan.daily) ?? false
|
|
8
|
+
};
|
|
9
|
+
if (!options.useMaximumScheduleSpan) return {
|
|
10
|
+
..."maxNumWorkingHours" in group && { maxNumWorkingHours: group.maxNumWorkingHours },
|
|
11
|
+
..."maxNumDailyWorkingHours" in group && { maxNumDailyWorkingHours: group.maxNumDailyWorkingHours }
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { parseMaxWorkingHours };
|
|
17
|
+
//# sourceMappingURL=parse-max-working-hours.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-max-working-hours.js","names":[],"sources":["../../../../../src/RS/to/input/util/parse-max-working-hours.ts"],"sourcesContent":["import type { ConnectedTypes } from '../../../make-connected';\nimport type { Types } from '../../../types';\nimport { min2hrs } from './util';\n\nexport function parseMaxWorkingHours (\n group: ConnectedTypes.group | ConnectedTypes.teacher,\n options: Types.parsedToOptions\n): Pick<Types.group, 'maxNumWorkingHours' | 'maxNumDailyWorkingHours'> | undefined {\n // new format\n if (options.useMaximumScheduleSpan && group.maximumScheduleSpan) {\n return {\n maxNumWorkingHours: min2hrs(group.maximumScheduleSpan.daily) ?? false,\n maxNumDailyWorkingHours: min2hrs(group.maximumScheduleSpan.daily) ?? false,\n };\n }\n\n // old format, to become deprecated\n if (!options.useMaximumScheduleSpan) {\n return {\n ...'maxNumWorkingHours' in group && { maxNumWorkingHours: group.maxNumWorkingHours },\n ...'maxNumDailyWorkingHours' in group && { maxNumDailyWorkingHours: group.maxNumDailyWorkingHours },\n };\n }\n\n return;\n}\n"],"mappings":";;;AAIA,SAAgB,qBACd,OACA,SACiF;AAEjF,KAAI,QAAQ,0BAA0B,MAAM,oBAC1C,QAAO;EACL,oBAAyB,QAAQ,MAAM,oBAAoB,UAAU;EACrE,yBAAyB,QAAQ,MAAM,oBAAoB,UAAU;;AAKzE,KAAI,CAAC,QAAQ,uBACX,QAAO;EACL,GAAG,wBAA6B,SAAS,EAAE,oBAAyB,MAAM;EAC1E,GAAG,6BAA6B,SAAS,EAAE,yBAAyB,MAAM"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/RS/to/input/util/parse-minimum-break-length.ts
|
|
2
|
+
function parseMinimumBreakLength(value) {
|
|
3
|
+
if (value == null) return;
|
|
4
|
+
if (typeof value === "boolean") return value;
|
|
5
|
+
if (typeof value === "number") return value;
|
|
6
|
+
if (Array.isArray(value)) {
|
|
7
|
+
if (value.length !== 2) throw new Error("(RS::V3::To::BreakLengths) BreakLength array must have exactly two elements");
|
|
8
|
+
const [bef, aft] = value;
|
|
9
|
+
return {
|
|
10
|
+
bef,
|
|
11
|
+
aft
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
throw new Error("(RS::V3::To::BreakLengths) BreakLength is neither boolean, number or number array");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { parseMinimumBreakLength };
|
|
19
|
+
//# sourceMappingURL=parse-minimum-break-length.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-minimum-break-length.js","names":[],"sources":["../../../../../src/RS/to/input/util/parse-minimum-break-length.ts"],"sourcesContent":["import type { CoreTypes } from '../../../../core';\nimport type { Types } from '../../../types';\n\nexport function parseMinimumBreakLength (value: CoreTypes.breakLength | null | undefined): Types.breakLength | undefined {\n if (value == null) return;\n\n if (typeof value === 'boolean') return value;\n if (typeof value === 'number') return value;\n\n if (Array.isArray(value)) {\n if (value.length !== 2) throw new Error('(RS::V3::To::BreakLengths) BreakLength array must have exactly two elements');\n const [bef, aft] = value;\n return { bef, aft };\n }\n\n throw new Error('(RS::V3::To::BreakLengths) BreakLength is neither boolean, number or number array');\n};\n"],"mappings":";AAGA,SAAgB,wBAAyB,OAAgF;AACvH,KAAI,SAAS,KAAM;AAEnB,KAAI,OAAO,UAAU,UAAW,QAAO;AACvC,KAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,KAAI,MAAM,QAAQ,QAAQ;AACxB,MAAI,MAAM,WAAW,EAAG,OAAM,IAAI,MAAM;EACxC,MAAM,CAAC,KAAK,OAAO;AACnB,SAAO;GAAE;GAAK;;;AAGhB,OAAM,IAAI,MAAM"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { getVertexId } from "../../../../core/util.js";
|
|
2
|
+
|
|
3
|
+
//#region src/RS/to/input/util/util.ts
|
|
4
|
+
function min2hrs(min) {
|
|
5
|
+
return min ? min / 60 : void 0;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Converts a time string in the format "HH:MM" to a float representation, e.g., "12:30" becomes 12.3.
|
|
9
|
+
*/
|
|
10
|
+
function toTimeFloat(str) {
|
|
11
|
+
return parseFloat(str.replace(":", "."));
|
|
12
|
+
}
|
|
13
|
+
function getPeriodIndex(period, periodsMap, options) {
|
|
14
|
+
if (!period) return;
|
|
15
|
+
const id = getVertexId(period, options);
|
|
16
|
+
const periodIndex = periodsMap.get(id);
|
|
17
|
+
if (periodIndex === void 0) throw new Error(`(RS::V3::To::getPeriodIndex) Period "${id}" is not in periodsMap`);
|
|
18
|
+
return periodIndex;
|
|
19
|
+
}
|
|
20
|
+
const COLLECTION_ID = {
|
|
21
|
+
persons: "persons",
|
|
22
|
+
groups: "groups",
|
|
23
|
+
teachers: "teachers",
|
|
24
|
+
events: "events",
|
|
25
|
+
lockedTimes: "lockedtimes"
|
|
26
|
+
};
|
|
27
|
+
let idOf;
|
|
28
|
+
(function(_idOf) {
|
|
29
|
+
function person(person$1, options) {
|
|
30
|
+
return `${COLLECTION_ID.persons}.${getVertexId(person$1, options)}`;
|
|
31
|
+
}
|
|
32
|
+
_idOf.person = person;
|
|
33
|
+
function group(group$1, options) {
|
|
34
|
+
return `${COLLECTION_ID.groups}.${getVertexId(group$1, options)}`;
|
|
35
|
+
}
|
|
36
|
+
_idOf.group = group;
|
|
37
|
+
function teacher(teacher$1, options) {
|
|
38
|
+
return `${COLLECTION_ID.teachers}.${getVertexId(teacher$1, options)}`;
|
|
39
|
+
}
|
|
40
|
+
_idOf.teacher = teacher;
|
|
41
|
+
function event(event$1, options) {
|
|
42
|
+
return `${COLLECTION_ID.events}.${getVertexId(event$1, options)}`;
|
|
43
|
+
}
|
|
44
|
+
_idOf.event = event;
|
|
45
|
+
function lockedTime(lockedTime$1, options) {
|
|
46
|
+
return `${COLLECTION_ID.lockedTimes}.${getVertexId(lockedTime$1, options)}`;
|
|
47
|
+
}
|
|
48
|
+
_idOf.lockedTime = lockedTime;
|
|
49
|
+
function groupReference(group$1, options) {
|
|
50
|
+
return `${COLLECTION_ID.groups}.${getVertexId(group$1.to, options)}` + (group$1.exclude?.length ? ".exclude." + group$1.exclude.map((x) => getVertexId(x, options)).sort().join(".") : "");
|
|
51
|
+
}
|
|
52
|
+
_idOf.groupReference = groupReference;
|
|
53
|
+
function intervalPairReference(interval, rootInterval, options) {
|
|
54
|
+
return (rootInterval ? getVertexId(rootInterval, options) + "&" : "") + JSON.stringify(interval);
|
|
55
|
+
}
|
|
56
|
+
_idOf.intervalPairReference = intervalPairReference;
|
|
57
|
+
})(idOf || (idOf = {}));
|
|
58
|
+
|
|
59
|
+
//#endregion
|
|
60
|
+
export { COLLECTION_ID, getPeriodIndex, idOf, min2hrs, toTimeFloat };
|
|
61
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","names":["person","group","teacher","event","lockedTime"],"sources":["../../../../../src/RS/to/input/util/util.ts"],"sourcesContent":["import type { ConnectedTypes } from '../../../make-connected';\nimport type { Types } from '../../../types';\nimport type { Collection, GroupReference } from '../../../../core/types/common';\nimport { getVertexId } from '../../../../core/util';\nimport type { AllowedInterval } from '../../../../core/types/common/intervals';\n\nexport function min2hrs (min: number | undefined | null) {\n return min ? min / 60 : undefined;\n}\n\n/**\n * Converts a time string in the format \"HH:MM\" to a float representation, e.g., \"12:30\" becomes 12.3.\n */\nexport function toTimeFloat (str: string) {\n return parseFloat(str.replace(':', '.'));\n}\n\nexport function getPeriodIndex (\n period: ConnectedTypes.period | undefined | null,\n periodsMap: Map<string | undefined, number>,\n options: Types.parsedToOptions\n): number | undefined {\n if (!period) return;\n const id = getVertexId(period, options);\n const periodIndex = periodsMap.get(id);\n if (periodIndex === undefined) throw new Error(`(RS::V3::To::getPeriodIndex) Period \"${id}\" is not in periodsMap`);\n return periodIndex;\n}\n\nexport const COLLECTION_ID = {\n persons: 'persons',\n groups: 'groups',\n teachers: 'teachers',\n events: 'events',\n lockedTimes: 'lockedtimes',\n} satisfies Partial<Record<Collection, string>>;\n\n/**\n * returns a combined id for the vertex or edge by combining the type(s) and id(s).\n */\nexport namespace idOf {\n /** `persons.id` */\n export function person (\n person: ConnectedTypes.person | string,\n options: Types.parsedToOptions\n ): string {\n return `${COLLECTION_ID.persons}.${ getVertexId(person, options) }`;\n }\n\n /** `groups.id` */\n export function group (\n group: ConnectedTypes.group,\n options: Types.parsedToOptions\n ): string {\n return `${COLLECTION_ID.groups}.${ getVertexId(group, options) }`;\n }\n\n /** `teachers.id` */\n export function teacher (\n teacher: ConnectedTypes.teacher,\n options: Types.parsedToOptions\n ): string {\n return `${COLLECTION_ID.teachers}.${ getVertexId(teacher, options) }`;\n }\n\n /** `events.id` */\n export function event (\n event: ConnectedTypes.event,\n options: Types.parsedToOptions\n ): string {\n return `${COLLECTION_ID.events}.${ getVertexId(event, options) }`;\n }\n\n /** `lockedtimes.id` */\n export function lockedTime (\n lockedTime: ConnectedTypes.lockedTime,\n options: Types.parsedToOptions\n ): string {\n return `${COLLECTION_ID.lockedTimes}.${ getVertexId(lockedTime, options) }`;\n }\n\n /** `groups.id<.exclude.id1.id2...>` */\n export function groupReference (\n group: GroupReference<ConnectedTypes.group, ConnectedTypes.person>,\n options: Types.parsedToOptions\n ): string {\n return `${COLLECTION_ID.groups}.${ getVertexId(group.to, options) }`\n + (group.exclude?.length\n ? '.exclude.' + group.exclude\n .map(x => getVertexId(x, options))\n .sort()\n .join('.')\n : '');\n }\n\n /** `<rootIntervalsId&>JSON.stringify(intervals)>` */\n export function intervalPairReference (\n interval: AllowedInterval[] | undefined,\n rootInterval: ConnectedTypes.rootInterval | undefined,\n options: Types.parsedToOptions\n ): string {\n return (rootInterval ? getVertexId(rootInterval, options) + '&' : '') + JSON.stringify(interval);\n }\n}\n"],"mappings":";;;AAMA,SAAgB,QAAS,KAAgC;AACvD,QAAO,MAAM,MAAM,KAAK;;;;;AAM1B,SAAgB,YAAa,KAAa;AACxC,QAAO,WAAW,IAAI,QAAQ,KAAK;;AAGrC,SAAgB,eACd,QACA,YACA,SACoB;AACpB,KAAI,CAAC,OAAQ;CACb,MAAM,KAAK,YAAY,QAAQ;CAC/B,MAAM,cAAc,WAAW,IAAI;AACnC,KAAI,gBAAgB,OAAW,OAAM,IAAI,MAAM,wCAAwC,GAAG;AAC1F,QAAO;;AAGT,MAAa,gBAAgB;CAC3B,SAAa;CACb,QAAa;CACb,UAAa;CACb,QAAa;CACb,aAAa;;;;CAQN,SAAS,OACd,UACA,SACQ;AACR,SAAO,GAAG,cAAc,QAAQ,GAAI,YAAYA,UAAQ;;;CAInD,SAAS,MACd,SACA,SACQ;AACR,SAAO,GAAG,cAAc,OAAO,GAAI,YAAYC,SAAO;;;CAIjD,SAAS,QACd,WACA,SACQ;AACR,SAAO,GAAG,cAAc,SAAS,GAAI,YAAYC,WAAS;;;CAIrD,SAAS,MACd,SACA,SACQ;AACR,SAAO,GAAG,cAAc,OAAO,GAAI,YAAYC,SAAO;;;CAIjD,SAAS,WACd,cACA,SACQ;AACR,SAAO,GAAG,cAAc,YAAY,GAAI,YAAYC,cAAY;;;CAI3D,SAAS,eACd,SACA,SACQ;AACR,SAAO,GAAG,cAAc,OAAO,GAAI,YAAYH,QAAM,IAAI,cACpDA,QAAM,SAAS,SACd,cAAcA,QAAM,QACnB,KAAI,MAAK,YAAY,GAAG,UACxB,OACA,KAAK,OACN;;;CAID,SAAS,sBACd,UACA,cACA,SACQ;AACR,UAAQ,eAAe,YAAY,cAAc,WAAW,MAAM,MAAM,KAAK,UAAU"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { CoreMap } from "../../core/index.js";
|
|
2
|
+
import { parseInput } from "./input/input.js";
|
|
3
|
+
import { makeConnected } from "../make-connected.js";
|
|
4
|
+
import { initialConfiguration } from "./initial-configuration.js";
|
|
5
|
+
import { pick } from "lodash-es";
|
|
6
|
+
|
|
7
|
+
//#region src/RS/to/schedules.ts
|
|
8
|
+
function schedules(data, _options = {}) {
|
|
9
|
+
const options = (() => {
|
|
10
|
+
const x = _options.partialScheduleOptions;
|
|
11
|
+
const partialScheduleOptions = x ? {
|
|
12
|
+
includedEvents: x.includedEvents ? new Set(x.includedEvents) : void 0,
|
|
13
|
+
includedLocations: x.includedLocations ? new Set(x.includedLocations) : void 0,
|
|
14
|
+
omittedEventsHandling: x.omittedEventsHandling
|
|
15
|
+
} : void 0;
|
|
16
|
+
return {
|
|
17
|
+
..._options,
|
|
18
|
+
partialScheduleOptions
|
|
19
|
+
};
|
|
20
|
+
})();
|
|
21
|
+
if (options.partialScheduleOptions?.includedEvents?.size) options.partialScheduleOptions.includedEvents = new Set([...options.partialScheduleOptions.includedEvents].map((x) => {
|
|
22
|
+
if (x.startsWith("events.") || x.startsWith("lockedTimes.")) return x;
|
|
23
|
+
return `events.${x}`;
|
|
24
|
+
}));
|
|
25
|
+
const connectedData = makeConnected(data);
|
|
26
|
+
return {
|
|
27
|
+
meta: {
|
|
28
|
+
structure: "RS/algorithm-3.0.0",
|
|
29
|
+
division: pick(data.division, "displayName", "start", "end")
|
|
30
|
+
},
|
|
31
|
+
algorithmParameters: { weights: options.algorithmWeightParameters },
|
|
32
|
+
input: parseInput(connectedData, options),
|
|
33
|
+
...options.appendCoreData && { coreData: CoreMap.to.schedules(data) },
|
|
34
|
+
...options.appendOutput && { output: initialConfiguration(connectedData.events, connectedData.lockedTimes, options) }
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { schedules };
|
|
40
|
+
//# sourceMappingURL=schedules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedules.js","names":["partialScheduleOptions: Types.parsedToOptions['partialScheduleOptions']"],"sources":["../../../src/RS/to/schedules.ts"],"sourcesContent":["import { pick } from 'lodash-es';\nimport { parseInput } from './input/input';\nimport { makeConnected } from '../make-connected';\nimport { initialConfiguration } from './initial-configuration';\nimport type { Types } from '../types';\nimport { CoreMap } from '../../core';\n\nexport function schedules (\n data: Types.toInput,\n _options: Types.toOptions = {}\n): Types.toOutput {\n ////\n //// parse the options\n ////\n const options = ((): Types.parsedToOptions => {\n const x = _options.partialScheduleOptions;\n const partialScheduleOptions: Types.parsedToOptions['partialScheduleOptions'] = x\n ? {\n includedEvents: x.includedEvents ? new Set(x.includedEvents) : undefined,\n includedLocations: x.includedLocations ? new Set(x.includedLocations) : undefined,\n omittedEventsHandling: x.omittedEventsHandling\n }\n : undefined;\n\n return { ..._options, partialScheduleOptions };\n })();\n\n ////\n //// for backward compatibility: add default collection to included events set\n ////\n if (options.partialScheduleOptions?.includedEvents?.size) {\n options.partialScheduleOptions.includedEvents = new Set(\n [...options.partialScheduleOptions.includedEvents]\n .map(x => {\n // should start with 'events.' or 'lockedTimes.' prefix\n if (x.startsWith('events.') || x.startsWith('lockedTimes.')) return x;\n return `events.${x}`;\n })\n );\n }\n\n\n // we will work only with connected schedule data\n const connectedData = makeConnected(data);\n\n return {\n meta: {\n structure: 'RS/algorithm-3.0.0' satisfies Types.structure,\n division: pick(data.division, 'displayName', 'start', 'end'),\n },\n algorithmParameters: {\n weights: options.algorithmWeightParameters,\n },\n input: parseInput(connectedData, options),\n ...options.appendCoreData && { coreData: CoreMap.to.schedules(data) },\n ...options.appendOutput && { output: initialConfiguration(connectedData.events, connectedData.lockedTimes, options) },\n };\n};"],"mappings":";;;;;;;AAOA,SAAgB,UACd,MACA,WAA4B,IACZ;CAIhB,MAAM,iBAAwC;EAC5C,MAAM,IAAI,SAAS;EACnB,MAAMA,yBAA0E,IAC5E;GACA,gBAAuB,EAAE,iBAAoB,IAAI,IAAI,EAAE,kBAAqB;GAC5E,mBAAuB,EAAE,oBAAoB,IAAI,IAAI,EAAE,qBAAqB;GAC5E,uBAAuB,EAAE;MAEzB;AAEJ,SAAO;GAAE,GAAG;GAAU;;;AAMxB,KAAI,QAAQ,wBAAwB,gBAAgB,KAClD,SAAQ,uBAAuB,iBAAiB,IAAI,IAClD,CAAC,GAAG,QAAQ,uBAAuB,gBAChC,KAAI,MAAK;AAER,MAAI,EAAE,WAAW,cAAc,EAAE,WAAW,gBAAiB,QAAO;AACpE,SAAO,UAAU;;CAOzB,MAAM,gBAAgB,cAAc;AAEpC,QAAO;EACL,MAAM;GACJ,WAAW;GACX,UAAW,KAAK,KAAK,UAAU,eAAe,SAAS;;EAEzD,qBAAqB,EACnB,SAAS,QAAQ;EAEnB,OAAO,WAAW,eAAe;EACjC,GAAG,QAAQ,kBAAkB,EAAE,UAAU,QAAQ,GAAG,UAAU;EAC9D,GAAG,QAAQ,gBAAkB,EAAE,QAAQ,qBAAqB,cAAc,QAAQ,cAAc,aAAa"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region src/RS/
|
|
1
|
+
//#region src/RS/types/algorithm-parameters.d.ts
|
|
2
2
|
type ParameterName = 'overlap' | 'doubleBooking' | 'timeFrame' | 'breakLength' | 'clustering' | 'dailyOvertime' | 'position' | 'gap' | 'dependencyAlternation' | 'overtime' | 'dependencyRank' | 'dayRank' | 'groupRank';
|
|
3
3
|
type AlgorithmWeightParameters = Record<ParameterName, number | false>;
|
|
4
4
|
//#endregion
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Types } from "./index.js";
|
|
2
|
+
|
|
3
|
+
//#region src/RS/types/collections.d.ts
|
|
4
|
+
interface Collection {
|
|
5
|
+
id: string;
|
|
6
|
+
events: (Types.event | number)[];
|
|
7
|
+
name?: string;
|
|
8
|
+
subject?: string;
|
|
9
|
+
color?: string;
|
|
10
|
+
potentialCenter?: number;
|
|
11
|
+
density?: number;
|
|
12
|
+
weight?: number;
|
|
13
|
+
minBreakLength?: Types.breakLength;
|
|
14
|
+
lockedTimes?: Types.lockedTime[];
|
|
15
|
+
intervals?: string | Types.interval[][];
|
|
16
|
+
days?: (Types.day | number)[];
|
|
17
|
+
groups?: Types.groupReference[][];
|
|
18
|
+
dependencies?: (Types.availableDependency[] | Types.availableDependency)[];
|
|
19
|
+
period?: number;
|
|
20
|
+
maxEventLengthVariance?: number;
|
|
21
|
+
distributionKey?: string | string[];
|
|
22
|
+
meta?: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { Collection };
|
|
26
|
+
//# sourceMappingURL=collections.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Types } from "./index.js";
|
|
2
|
+
|
|
3
|
+
//#region src/RS/types/configurations.d.ts
|
|
4
|
+
type Configuration = {
|
|
5
|
+
score?: [number, number, number, number];
|
|
6
|
+
events: Types.eventConfiguration[];
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { Configuration };
|
|
10
|
+
//# sourceMappingURL=configurations.d.ts.map
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BreakLength } from "./break-lengths.js";
|
|
1
|
+
import { Types } from "./index.js";
|
|
3
2
|
|
|
4
|
-
//#region src/RS/
|
|
3
|
+
//#region src/RS/types/default.d.ts
|
|
5
4
|
interface Default {
|
|
6
|
-
intervals:
|
|
5
|
+
intervals: string | Types.interval[][];
|
|
7
6
|
dependencyMinBreakLength: number;
|
|
8
7
|
groupMinBreakLength: number;
|
|
9
|
-
eventMinBreakLength:
|
|
8
|
+
eventMinBreakLength: Types.breakLength;
|
|
10
9
|
potentialCenter: number;
|
|
11
10
|
eventDensity: number;
|
|
12
11
|
maxEventLengthVariance: number;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Types } from "./index.js";
|
|
2
|
+
|
|
3
|
+
//#region src/RS/types/dependencies.d.ts
|
|
4
|
+
interface Dependency {
|
|
5
|
+
id?: string;
|
|
6
|
+
minBreakLength?: number;
|
|
7
|
+
name?: string;
|
|
8
|
+
area?: string;
|
|
9
|
+
days?: (Types.day | number)[];
|
|
10
|
+
intervals?: string | Types.interval[][];
|
|
11
|
+
lockedTimes?: Types.lockedTime[];
|
|
12
|
+
meta?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Dependency };
|
|
16
|
+
//# sourceMappingURL=dependencies.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/RS/types/event-configuration.d.ts
|
|
2
|
+
interface EventConfiguration {
|
|
3
|
+
id: string;
|
|
4
|
+
start: number;
|
|
5
|
+
end: number;
|
|
6
|
+
day: number;
|
|
7
|
+
collection?: string;
|
|
8
|
+
dependencies?: string[];
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Currently no need to use this as groups are fixed
|
|
11
|
+
*/
|
|
12
|
+
groups?: ({
|
|
13
|
+
groups: string[];
|
|
14
|
+
} | {
|
|
15
|
+
individuals: string[];
|
|
16
|
+
})[];
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { EventConfiguration };
|
|
20
|
+
//# sourceMappingURL=event-configuration.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Types } from "./index.js";
|
|
2
|
+
|
|
3
|
+
//#region src/RS/types/events.d.ts
|
|
4
|
+
interface Event {
|
|
5
|
+
id: string;
|
|
6
|
+
length: number;
|
|
7
|
+
name?: string;
|
|
8
|
+
potentialCenter?: number;
|
|
9
|
+
density?: number;
|
|
10
|
+
weight?: number;
|
|
11
|
+
minBreakLength?: Types.breakLength;
|
|
12
|
+
maxLengthVariance?: number;
|
|
13
|
+
start?: number;
|
|
14
|
+
lockedTimes?: Types.lockedTime[];
|
|
15
|
+
intervals?: string | Types.interval[][];
|
|
16
|
+
days?: (Types.day | number)[];
|
|
17
|
+
day?: number;
|
|
18
|
+
groups?: Types.groupReference[][];
|
|
19
|
+
dependencies?: (Types.availableDependency[] | Types.availableDependency | string | string[])[];
|
|
20
|
+
period?: number;
|
|
21
|
+
forcedOverlapId?: string;
|
|
22
|
+
distributionKey?: string | string[];
|
|
23
|
+
meta?: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { Event };
|
|
27
|
+
//# sourceMappingURL=events.d.ts.map
|