@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,12 @@
|
|
|
1
|
+
import { division } from "./division.js";
|
|
2
|
+
import { schedules } from "./schedules.js";
|
|
3
|
+
|
|
4
|
+
//#region src/RS/from/index.ts
|
|
5
|
+
var from_default = {
|
|
6
|
+
division,
|
|
7
|
+
schedules
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { from_default as default };
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/RS/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../common/types';\nimport { division } from './division';\nimport { schedules } from './schedules';\n\nexport default {\n division: division,\n schedules: schedules,\n} satisfies FromInterface;"],"mappings":";;;;AAIA,mBAAe;CACF;CACA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Types as Types$1 } from "../../core/types/index.js";
|
|
2
|
+
import { Types } from "../types/index.js";
|
|
3
|
+
|
|
4
|
+
//#region src/RS/from/schedules.d.ts
|
|
5
|
+
declare function schedules(input: Partial<Types.toOutput>, options: Pick<Types.toOptions, 'idKey'>): Partial<Types$1.serialized.schedule>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { schedules };
|
|
8
|
+
//# sourceMappingURL=schedules.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { getVertexId } from "../../core/util.js";
|
|
2
|
+
import { COLLECTION_ID } from "../to/input/util/util.js";
|
|
3
|
+
import moment from "moment";
|
|
4
|
+
|
|
5
|
+
//#region src/RS/from/schedules.ts
|
|
6
|
+
function schedules(input, options) {
|
|
7
|
+
const warnings = [];
|
|
8
|
+
const schedule = input.coreData;
|
|
9
|
+
const eventConfigurations = input.output?.at(0)?.events;
|
|
10
|
+
if (!schedule) throw new Error("Missing `coreData` in input.");
|
|
11
|
+
if (!eventConfigurations) throw new Error("Missing `output.events` in input.");
|
|
12
|
+
const eventsToUpdate = new Set(schedule.events?.map((x) => getVertexId(x, options)));
|
|
13
|
+
eventConfigurations.forEach(({ id: collectionAndId,...placement }) => {
|
|
14
|
+
const collection = collectionAndId.split(".")[0] == COLLECTION_ID.events ? "events" : "lockedTimes";
|
|
15
|
+
const id = collectionAndId.split(".")[1];
|
|
16
|
+
const event = schedule[collection]?.find((x) => getVertexId(x, options) == id);
|
|
17
|
+
if (!event) {
|
|
18
|
+
warnings.push(`Could not find ${id} (${collectionAndId}) in ${collection} collection.`);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
event.parked = false;
|
|
22
|
+
event.start = moment.utc("1970-01-05T00:00").add(placement.day, "days").add(placement.start, "minutes").toISOString();
|
|
23
|
+
event.end = moment.utc("1970-01-05T00:00").add(placement.day, "days").add(placement.end, "minutes").toISOString();
|
|
24
|
+
event.duration = placement.end - placement.start;
|
|
25
|
+
if (collection == "events") {
|
|
26
|
+
event.inLocations = placement.dependencies?.filter(Boolean) ?? [];
|
|
27
|
+
eventsToUpdate.delete(id);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
if (eventsToUpdate.size) warnings.push(`The following events were not updated: ${[...eventsToUpdate].join(", ")}`);
|
|
31
|
+
return Object.assign(schedule, { meta: { ...warnings.length && { warnings } } });
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { schedules };
|
|
36
|
+
//# sourceMappingURL=schedules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedules.js","names":["warnings: string[]"],"sources":["../../../src/RS/from/schedules.ts"],"sourcesContent":["import moment from 'moment';\nimport type { Types } from '../types';\nimport { COLLECTION_ID } from '../to/input/util/util';\nimport { getVertexId } from '../../core/util';\nimport type { CoreTypes } from '../../core';\n\nexport function schedules (\n input: Partial<Types.toOutput>,\n options: Pick<Types.toOptions, 'idKey'>\n): Partial<CoreTypes.serialized.schedule> {\n const warnings: string[] = [];\n\n const schedule = input.coreData;\n const eventConfigurations = input.output?.at(0)?.events;\n\n if (!schedule ) throw new Error('Missing `coreData` in input.');\n if (!eventConfigurations) throw new Error('Missing `output.events` in input.');\n\n // check on later to ensure that all events are updated\n const eventsToUpdate = new Set(schedule.events?.map(x => getVertexId(x, options)));\n\n eventConfigurations.forEach(({ id: collectionAndId, ...placement }) => {\n // locate the corresponding event/locked time\n const collection = collectionAndId.split('.')[0] == COLLECTION_ID.events ? 'events' : 'lockedTimes';\n const id = collectionAndId.split('.')[1];\n const event = schedule[collection]?.find(x => getVertexId(x, options) == id);\n\n if (!event) {\n warnings.push(`Could not find ${id} (${collectionAndId}) in ${collection} collection.`);\n return;\n }\n\n event.parked = false;\n event.start = moment.utc('1970-01-05T00:00').add(placement.day, 'days').add(placement.start, 'minutes').toISOString();\n event.end = moment.utc('1970-01-05T00:00').add(placement.day, 'days').add(placement.end, 'minutes').toISOString();\n event.duration = placement.end - placement.start;\n\n if (collection == 'events') {\n (event as CoreTypes.serialized.event).inLocations = placement.dependencies?.filter(Boolean) ?? [];\n\n // remove from events to be updates\n eventsToUpdate.delete(id);\n }\n });\n\n // check if there are events that were not updated\n if (eventsToUpdate.size) {\n warnings.push(`The following events were not updated: ${[...eventsToUpdate].join(', ')}`);\n }\n\n\n return Object.assign(schedule, {\n meta: {\n ...warnings.length && { warnings: warnings }\n }\n });\n};"],"mappings":";;;;;AAMA,SAAgB,UACd,OACA,SACwC;CACxC,MAAMA,WAAqB;CAE3B,MAAM,WAAsB,MAAM;CAClC,MAAM,sBAAsB,MAAM,QAAQ,GAAG,IAAI;AAEjD,KAAI,CAAC,SAAqB,OAAM,IAAI,MAAM;AAC1C,KAAI,CAAC,oBAAqB,OAAM,IAAI,MAAM;CAG1C,MAAM,iBAAiB,IAAI,IAAI,SAAS,QAAQ,KAAI,MAAK,YAAY,GAAG;AAExE,qBAAoB,SAAS,EAAE,IAAI,gBAAiB,GAAG,gBAAgB;EAErE,MAAM,aAAa,gBAAgB,MAAM,KAAK,MAAM,cAAc,SAAS,WAAW;EACtF,MAAM,KAAa,gBAAgB,MAAM,KAAK;EAC9C,MAAM,QAAQ,SAAS,aAAa,MAAK,MAAK,YAAY,GAAG,YAAY;AAEzE,MAAI,CAAC,OAAO;AACV,YAAS,KAAK,kBAAkB,GAAG,IAAI,gBAAgB,OAAO,WAAW;AACzE;;AAGF,QAAM,SAAW;AACjB,QAAM,QAAW,OAAO,IAAI,oBAAoB,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,OAAO,WAAW;AAC3G,QAAM,MAAW,OAAO,IAAI,oBAAoB,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAO,WAAW;AAC3G,QAAM,WAAW,UAAU,MAAM,UAAU;AAE3C,MAAI,cAAc,UAAU;AAC1B,GAAC,MAAqC,cAAc,UAAU,cAAc,OAAO,YAAY;AAG/F,kBAAe,OAAO;;;AAK1B,KAAI,eAAe,KACjB,UAAS,KAAK,0CAA0C,CAAC,GAAG,gBAAgB,KAAK;AAInF,QAAO,OAAO,OAAO,UAAU,EAC7B,MAAM,EACJ,GAAG,SAAS,UAAU,EAAY"}
|
package/dist/RS/index.d.ts
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import { Types } from "./
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { Types as Types$2 } from "./v2/types/index.js";
|
|
6
|
-
import { Map as Map$2 } from "./v2/index.js";
|
|
7
|
-
import { Types as Types$3 } from "./v3/types/index.js";
|
|
8
|
-
import { Map as Map$3 } from "./v3/index.js";
|
|
1
|
+
import { Types } from "./types/index.js";
|
|
2
|
+
import { schedules } from "./to/schedules.js";
|
|
3
|
+
import { division } from "./from/division.js";
|
|
4
|
+
import { schedules as schedules$1 } from "./from/schedules.js";
|
|
9
5
|
|
|
10
6
|
//#region src/RS/index.d.ts
|
|
11
7
|
declare class RSMap {
|
|
12
|
-
static
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
static
|
|
8
|
+
static to: {
|
|
9
|
+
schedules: typeof schedules;
|
|
10
|
+
};
|
|
11
|
+
static from: {
|
|
12
|
+
division: typeof division;
|
|
13
|
+
schedules: typeof schedules$1;
|
|
14
|
+
};
|
|
16
15
|
}
|
|
17
16
|
//#endregion
|
|
18
17
|
export { RSMap };
|
package/dist/RS/index.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { Map as Map$2 } from "./v2/index.js";
|
|
4
|
-
import { Map as Map$3 } from "./v3/index.js";
|
|
1
|
+
import from_default from "./from/index.js";
|
|
2
|
+
import to_default from "./to/index.js";
|
|
5
3
|
|
|
6
4
|
//#region src/RS/index.ts
|
|
7
5
|
var RSMap = class {
|
|
8
|
-
static
|
|
9
|
-
static
|
|
10
|
-
static V2 = Map$2;
|
|
11
|
-
static V3 = Map$3;
|
|
6
|
+
static to = to_default;
|
|
7
|
+
static from = from_default;
|
|
12
8
|
};
|
|
13
9
|
|
|
14
10
|
//#endregion
|
package/dist/RS/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_to","_from"],"sources":["../../src/RS/index.ts"],"sourcesContent":["import _from from './from';\nimport _to from './to';\n\nexport type { Types as RSTypes } from './types';\n\nexport class RSMap {\n static to = _to;\n static from = _from;\n}\n"],"mappings":";;;;AAKA,IAAa,QAAb,MAAmB;CACjB,OAAO,KAAOA;CACd,OAAO,OAAOC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Mixed } from "../core/vertex-mapping.js";
|
|
2
|
+
import { Types } from "../core/types/index.js";
|
|
3
|
+
|
|
4
|
+
//#region src/RS/make-connected.d.ts
|
|
5
|
+
|
|
6
|
+
type _Schedule = {
|
|
7
|
+
division: Mixed<Types.division>;
|
|
8
|
+
divisions: Mixed<Types.division>;
|
|
9
|
+
settings: Mixed<Types.divisionSettings>;
|
|
10
|
+
groups: Mixed<Types.group>[];
|
|
11
|
+
teachers: Mixed<Types.teacher>[];
|
|
12
|
+
locations: Mixed<Types.location>[];
|
|
13
|
+
periods: Mixed<Types.period>[];
|
|
14
|
+
persons: Mixed<Types.person>[];
|
|
15
|
+
rootIntervals: Mixed<Types.rootInterval>[];
|
|
16
|
+
lockedTimes: Mixed<Types.lockedTime>[];
|
|
17
|
+
overlapGroups: Mixed<Types.overlapGroup>[];
|
|
18
|
+
courses: Mixed<Types.course>[];
|
|
19
|
+
events: Mixed<Types.event>[];
|
|
20
|
+
};
|
|
21
|
+
type MixedScheduleData = Partial<_Schedule>;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { MixedScheduleData };
|
|
24
|
+
//# sourceMappingURL=make-connected.d.ts.map
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { getIdKey, getVertexId } from "../core/util.js";
|
|
2
|
+
import { pick } from "lodash-es";
|
|
3
|
+
|
|
4
|
+
//#region src/RS/make-connected.ts
|
|
5
|
+
function indexCollection(collection, idKey) {
|
|
6
|
+
return new Map(collection.map((x) => [getVertexId(x, idKey), x]));
|
|
7
|
+
}
|
|
8
|
+
function nonNullable(value) {
|
|
9
|
+
return value != null;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Connects the schedule data by replacing references with actual objects making it easier to work with.
|
|
13
|
+
*/
|
|
14
|
+
function makeConnected(schedule, options = {}) {
|
|
15
|
+
const _division = schedule.divisions ?? schedule.division;
|
|
16
|
+
if (!_division) throw new Error(`"division" or "divisions" missing in schedule, present keys: ${Object.keys(schedule).join(", ")}`);
|
|
17
|
+
const _settings = schedule.settings;
|
|
18
|
+
if (!_settings) throw new Error(`"settings" missing in schedule, present keys: ${Object.keys(schedule).join(", ")}`);
|
|
19
|
+
const idKey = getIdKey(options);
|
|
20
|
+
const groupsMap = indexCollection(schedule.groups ?? [], idKey);
|
|
21
|
+
const teachersMap = indexCollection(schedule.teachers ?? [], idKey);
|
|
22
|
+
const locationsMap = indexCollection(schedule.locations ?? [], idKey);
|
|
23
|
+
const coursesMap = indexCollection(schedule.courses ?? [], idKey);
|
|
24
|
+
const eventsMap = indexCollection(schedule.events ?? [], idKey);
|
|
25
|
+
const overlapGroupsMap = indexCollection(schedule.overlapGroups ?? [], idKey);
|
|
26
|
+
const periodsMap = indexCollection(schedule.periods ?? [], idKey);
|
|
27
|
+
const personsMap = indexCollection(schedule.persons ?? [], idKey);
|
|
28
|
+
const lockedTimesMap = indexCollection(schedule.lockedTimes ?? [], idKey);
|
|
29
|
+
const rootIntervalsMap = indexCollection(schedule.rootIntervals ?? [], idKey);
|
|
30
|
+
const division = (() => {
|
|
31
|
+
const vertex = {
|
|
32
|
+
_id: true,
|
|
33
|
+
id: true,
|
|
34
|
+
ids: true,
|
|
35
|
+
createdAt: true,
|
|
36
|
+
updatedAt: true,
|
|
37
|
+
lastModifiedBy: true
|
|
38
|
+
};
|
|
39
|
+
const vertexKeys = Object.keys(vertex);
|
|
40
|
+
return pick(_division, [
|
|
41
|
+
...vertexKeys,
|
|
42
|
+
"displayName",
|
|
43
|
+
"start",
|
|
44
|
+
"end"
|
|
45
|
+
]);
|
|
46
|
+
})();
|
|
47
|
+
const settings = (() => {
|
|
48
|
+
const edges = {
|
|
49
|
+
period: _settings.period != null ? periodsMap.get(getVertexId(_settings.period, idKey)) : _settings.period,
|
|
50
|
+
defaultRootInterval: _settings.defaultRootInterval != null ? rootIntervalsMap.get(getVertexId(_settings.defaultRootInterval, idKey)) : _settings.defaultRootInterval
|
|
51
|
+
};
|
|
52
|
+
return Object.assign(_settings, edges);
|
|
53
|
+
})();
|
|
54
|
+
const getLockedTimes = (x) => {
|
|
55
|
+
if (!x) return x;
|
|
56
|
+
return x.map((x$1) => lockedTimesMap.get(getVertexId(x$1, idKey))).filter(nonNullable);
|
|
57
|
+
};
|
|
58
|
+
const getLunch = (x) => {
|
|
59
|
+
if (!x) return x;
|
|
60
|
+
return x.map((x$1) => lockedTimesMap.get(getVertexId(x$1, idKey))).filter(nonNullable);
|
|
61
|
+
};
|
|
62
|
+
const locations = (schedule.locations ?? []).map((x) => {
|
|
63
|
+
const edges = {
|
|
64
|
+
lockedTimes: getLockedTimes(x.lockedTimes),
|
|
65
|
+
lunch: getLunch(x.lunch)
|
|
66
|
+
};
|
|
67
|
+
return Object.assign(x, edges);
|
|
68
|
+
});
|
|
69
|
+
const groups = (schedule.groups ?? []).map((x) => {
|
|
70
|
+
const edges = {
|
|
71
|
+
lockedTimes: getLockedTimes(x.lockedTimes),
|
|
72
|
+
lunch: getLunch(x.lunch),
|
|
73
|
+
members: x.members ? x.members.map((x$1) => personsMap.get(getVertexId(x$1, idKey))).filter(nonNullable) : x.members,
|
|
74
|
+
parentGroups: x.parentGroups ? x.parentGroups.map((x$1) => groupsMap.get(getVertexId(x$1, idKey))).filter(nonNullable) : x.parentGroups,
|
|
75
|
+
subGroups: x.subGroups ? x.subGroups.map((x$1) => groupsMap.get(getVertexId(x$1, idKey))).filter(nonNullable) : x.subGroups,
|
|
76
|
+
rootInterval: x.rootInterval != null ? rootIntervalsMap.get(getVertexId(x.rootInterval, idKey)) : x.rootInterval
|
|
77
|
+
};
|
|
78
|
+
return Object.assign(x, edges);
|
|
79
|
+
});
|
|
80
|
+
const teachers = (schedule.teachers ?? []).map((x) => {
|
|
81
|
+
const edges = {
|
|
82
|
+
lockedTimes: getLockedTimes(x.lockedTimes),
|
|
83
|
+
lunch: getLunch(x.lunch),
|
|
84
|
+
person: x.person != null ? personsMap.get(getVertexId(x.person, idKey)) : x.person,
|
|
85
|
+
rootInterval: x.rootInterval != null ? rootIntervalsMap.get(getVertexId(x.rootInterval, idKey)) : x.rootInterval
|
|
86
|
+
};
|
|
87
|
+
return Object.assign(x, edges);
|
|
88
|
+
});
|
|
89
|
+
const persons = (schedule.persons ?? []).map((x) => {
|
|
90
|
+
const edges = {
|
|
91
|
+
lockedTimes: getLockedTimes(x.lockedTimes),
|
|
92
|
+
lunch: getLunch(x.lunch),
|
|
93
|
+
group: x.group != null ? groupsMap.get(getVertexId(x.group, idKey)) : x.group
|
|
94
|
+
};
|
|
95
|
+
return Object.assign(x, edges);
|
|
96
|
+
});
|
|
97
|
+
const periods = (schedule.periods ?? []).map((x) => {
|
|
98
|
+
const edges = {};
|
|
99
|
+
return Object.assign(x, edges);
|
|
100
|
+
});
|
|
101
|
+
const rootIntervals = (schedule.rootIntervals ?? []).map((x) => {
|
|
102
|
+
const edges = {};
|
|
103
|
+
return Object.assign(x, edges);
|
|
104
|
+
});
|
|
105
|
+
const makeCoalesced = (map, id, toModel) => {
|
|
106
|
+
const to = map.get(id);
|
|
107
|
+
if (!to) return;
|
|
108
|
+
return {
|
|
109
|
+
to,
|
|
110
|
+
toModel
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
const lockedTimes = (schedule.lockedTimes ?? []).map((x) => {
|
|
114
|
+
const edges = { coalesced: x.coalesced ? x.coalesced.map((x$1) => {
|
|
115
|
+
switch (x$1.toModel) {
|
|
116
|
+
case "groups": return makeCoalesced(groupsMap, getVertexId(x$1.to, idKey), x$1.toModel);
|
|
117
|
+
case "teachers": return makeCoalesced(teachersMap, getVertexId(x$1.to, idKey), x$1.toModel);
|
|
118
|
+
case "courses": return makeCoalesced(coursesMap, getVertexId(x$1.to, idKey), x$1.toModel);
|
|
119
|
+
case "events": return makeCoalesced(eventsMap, getVertexId(x$1.to, idKey), x$1.toModel);
|
|
120
|
+
case "courseevents": return makeCoalesced(eventsMap, getVertexId(x$1.to, idKey), "events");
|
|
121
|
+
case "locations": return makeCoalesced(locationsMap, getVertexId(x$1.to, idKey), x$1.toModel);
|
|
122
|
+
default: throw new Error(`Unknown coalesced model "${x$1.toModel}" in locked time ${JSON.stringify(x$1)}`);
|
|
123
|
+
}
|
|
124
|
+
}).filter(nonNullable) : x.coalesced };
|
|
125
|
+
return Object.assign(x, edges);
|
|
126
|
+
});
|
|
127
|
+
const overlapGroups = (schedule.overlapGroups ?? []).map((x) => {
|
|
128
|
+
const edges = {
|
|
129
|
+
coalesced: x.coalesced ? x.coalesced.map((x$1) => {
|
|
130
|
+
const to = (() => {
|
|
131
|
+
switch (x$1.toModel) {
|
|
132
|
+
case "courses": return coursesMap.get(getVertexId(x$1.to, idKey));
|
|
133
|
+
default: throw new Error(`Unknown coalesced model "${x$1.toModel}" in overlap group ${JSON.stringify(x$1)}`);
|
|
134
|
+
}
|
|
135
|
+
})();
|
|
136
|
+
if (!to) return;
|
|
137
|
+
const coalesced = {
|
|
138
|
+
...x$1,
|
|
139
|
+
to
|
|
140
|
+
};
|
|
141
|
+
return coalesced;
|
|
142
|
+
}).filter(nonNullable) : x.coalesced,
|
|
143
|
+
species: x.species ? x.species.map((x$1) => {
|
|
144
|
+
const to = (() => {
|
|
145
|
+
switch (x$1.toModel) {
|
|
146
|
+
case "events": return eventsMap.get(getVertexId(x$1.to, idKey));
|
|
147
|
+
case "courseevents": return eventsMap.get(getVertexId(x$1.to, idKey));
|
|
148
|
+
default: throw new Error(`Unknown species model "${x$1.toModel}" in overlap group ${JSON.stringify(x$1)}`);
|
|
149
|
+
}
|
|
150
|
+
})();
|
|
151
|
+
if (!to) return;
|
|
152
|
+
const species = {
|
|
153
|
+
...x$1,
|
|
154
|
+
to
|
|
155
|
+
};
|
|
156
|
+
return species;
|
|
157
|
+
}).filter(nonNullable) : x.species
|
|
158
|
+
};
|
|
159
|
+
return Object.assign(x, edges);
|
|
160
|
+
});
|
|
161
|
+
const getParticipants = (x) => {
|
|
162
|
+
if (!x) return void 0;
|
|
163
|
+
return x.map((x$1) => {
|
|
164
|
+
const to = personsMap.get(getVertexId(x$1.to, idKey));
|
|
165
|
+
if (!to) return;
|
|
166
|
+
const participant = {
|
|
167
|
+
...x$1,
|
|
168
|
+
to
|
|
169
|
+
};
|
|
170
|
+
return participant;
|
|
171
|
+
}).filter(nonNullable);
|
|
172
|
+
};
|
|
173
|
+
const getTeachers = (x) => {
|
|
174
|
+
if (!x) return void 0;
|
|
175
|
+
return x.map((x$1) => {
|
|
176
|
+
const to = teachersMap.get(getVertexId(x$1.to, idKey));
|
|
177
|
+
if (!to) return;
|
|
178
|
+
const participant = {
|
|
179
|
+
...x$1,
|
|
180
|
+
to
|
|
181
|
+
};
|
|
182
|
+
return participant;
|
|
183
|
+
}).filter(nonNullable);
|
|
184
|
+
};
|
|
185
|
+
const getLocations = (x) => {
|
|
186
|
+
if (!x) return void 0;
|
|
187
|
+
return x.map((x$1) => {
|
|
188
|
+
const locations$1 = x$1.locations.map((x$2) => locationsMap.get(getVertexId(x$2, idKey))).filter(nonNullable);
|
|
189
|
+
if (locations$1.length != 1) throw new Error(`(RS::MakeConnected) Expected exactly one location in available locations, got ${locations$1.length} and before filtering: ${x$1.locations.map((x$2) => getVertexId(x$2, idKey)).join(", ")}`);
|
|
190
|
+
const availableLocation = {
|
|
191
|
+
...x$1,
|
|
192
|
+
locations: locations$1
|
|
193
|
+
};
|
|
194
|
+
return availableLocation;
|
|
195
|
+
}).filter(nonNullable);
|
|
196
|
+
};
|
|
197
|
+
const getGroups = (x) => {
|
|
198
|
+
if (!x) return void 0;
|
|
199
|
+
return x.map((x$1) => {
|
|
200
|
+
const to = groupsMap.get(getVertexId(x$1.to, idKey));
|
|
201
|
+
if (!to) return;
|
|
202
|
+
const exclude = x$1.exclude ? x$1.exclude.map((x$2) => personsMap.get(getVertexId(x$2, idKey))).filter(nonNullable) : void 0;
|
|
203
|
+
const group = {
|
|
204
|
+
...x$1,
|
|
205
|
+
to,
|
|
206
|
+
exclude
|
|
207
|
+
};
|
|
208
|
+
return group;
|
|
209
|
+
}).filter(nonNullable);
|
|
210
|
+
};
|
|
211
|
+
const courses = (schedule.courses ?? []).map((x) => {
|
|
212
|
+
const edges = {
|
|
213
|
+
groups: getGroups(x.groups),
|
|
214
|
+
teachers: getTeachers(x.teachers),
|
|
215
|
+
locations: getLocations(x.locations),
|
|
216
|
+
participants: getParticipants(x.participants),
|
|
217
|
+
lockedTimes: getLockedTimes(x.lockedTimes),
|
|
218
|
+
events: x.events ? x.events.map((x$1) => eventsMap.get(getVertexId(x$1, idKey))).filter(nonNullable) : x.events,
|
|
219
|
+
period: x.period != null ? periodsMap.get(getVertexId(x.period, idKey)) : x.period,
|
|
220
|
+
overlapGroup: x.overlapGroup != null ? overlapGroupsMap.get(getVertexId(x.overlapGroup, idKey)) : x.overlapGroup,
|
|
221
|
+
overlapSpecies: x.overlapSpecies != null ? overlapGroupsMap.get(getVertexId(x.overlapSpecies, idKey)) : x.overlapSpecies
|
|
222
|
+
};
|
|
223
|
+
return Object.assign(x, edges);
|
|
224
|
+
});
|
|
225
|
+
const events = (schedule.events ?? []).map((x) => {
|
|
226
|
+
const edges = {
|
|
227
|
+
groups: getGroups(x.groups),
|
|
228
|
+
teachers: getTeachers(x.teachers),
|
|
229
|
+
locations: getLocations(x.locations),
|
|
230
|
+
participants: getParticipants(x.participants),
|
|
231
|
+
lockedTimes: getLockedTimes(x.lockedTimes),
|
|
232
|
+
inLocations: x.inLocations ? x.inLocations.map((x$1) => x$1 === null ? null : locationsMap.get(getVertexId(x$1, idKey))).filter((x$1) => x$1 !== void 0) : x.inLocations,
|
|
233
|
+
course: x.course != null ? coursesMap.get(getVertexId(x.course, idKey)) : x.course,
|
|
234
|
+
period: x.period != null ? periodsMap.get(getVertexId(x.period, idKey)) : x.period,
|
|
235
|
+
overlapGroup: x.overlapGroup != null ? overlapGroupsMap.get(getVertexId(x.overlapGroup, idKey)) : x.overlapGroup,
|
|
236
|
+
overlapSpecies: x.overlapSpecies != null ? overlapGroupsMap.get(getVertexId(x.overlapSpecies, idKey)) : x.overlapSpecies
|
|
237
|
+
};
|
|
238
|
+
return Object.assign(x, edges);
|
|
239
|
+
});
|
|
240
|
+
return {
|
|
241
|
+
division,
|
|
242
|
+
settings,
|
|
243
|
+
locations,
|
|
244
|
+
groups,
|
|
245
|
+
teachers,
|
|
246
|
+
persons,
|
|
247
|
+
periods,
|
|
248
|
+
rootIntervals,
|
|
249
|
+
lockedTimes,
|
|
250
|
+
overlapGroups,
|
|
251
|
+
courses,
|
|
252
|
+
events
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
//#endregion
|
|
257
|
+
export { makeConnected };
|
|
258
|
+
//# sourceMappingURL=make-connected.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-connected.js","names":["vertex: Record<keyof Required<Intersect<Vertex>>, unknown>","edges: ExtractEdges<DivisionSettings>","x","edges: ExtractEdges<Location>","edges: ExtractEdges<Group>","edges: ExtractEdges<Teacher>","edges: ExtractEdges<Person>","edges: ExtractEdges<Period>","edges: ExtractEdges<RootInterval>","edges: ExtractEdges<LockedTime>","edges: ExtractEdges<OverlapGroup>","coalesced: Coalesced<typeof to, (typeof x)['toModel']>","species: Species<typeof to, (typeof x)['toModel']>","participant: PersonReference<Person>","locations","availableLocation: AvailableLocation<Location>","group: GroupReference<Group, Person>","edges: ExtractEdges<Course>","edges: ExtractEdges<Event>"],"sources":["../../src/RS/make-connected.ts"],"sourcesContent":["import { pick } from 'lodash-es';\nimport { getIdKey, getVertexId } from '../core/util';\nimport type { ExtractEdges, Mixed } from '../core/vertex-mapping';\nimport type { CoreTypes } from '../core';\nimport type { AvailableLocation, Coalesced, Collection, GroupReference, IdKey, InternalIdKey, PersonReference, Species, Vertex } from '../core/types/common';\nimport type { Types } from './types';\nimport type { Intersect } from '../common/types';\n\ntype OmitProperties<T extends Vertex> = Omit<T, 'belongsTo' | 'exceptions' | 'defaultLunch' | 'syllabus' | InternalIdKey> & Vertex;\n\ntype _Schedule = {\n division: Mixed<CoreTypes.division>;\n divisions: Mixed<CoreTypes.division>;\n settings: Mixed<CoreTypes.divisionSettings>;\n groups: Mixed<CoreTypes.group>[];\n teachers: Mixed<CoreTypes.teacher>[];\n locations: Mixed<CoreTypes.location>[];\n periods: Mixed<CoreTypes.period>[];\n persons: Mixed<CoreTypes.person>[];\n rootIntervals: Mixed<CoreTypes.rootInterval>[];\n lockedTimes: Mixed<CoreTypes.lockedTime>[];\n overlapGroups: Mixed<CoreTypes.overlapGroup>[];\n courses: Mixed<CoreTypes.course>[];\n events: Mixed<CoreTypes.event>[];\n};\nexport type MixedScheduleData = Partial<_Schedule>;\n\ntype Division = Vertex & Pick<CoreTypes.division, 'displayName' | 'start' | 'end'>;\ntype DivisionSettings = OmitProperties<CoreTypes.divisionSettings>;\ntype Location = OmitProperties<CoreTypes.location>;\ntype Group = OmitProperties<CoreTypes.group>;\ntype Teacher = OmitProperties<CoreTypes.teacher>;\ntype Person = OmitProperties<CoreTypes.person>;\ntype Period = OmitProperties<CoreTypes.period>;\ntype RootInterval = OmitProperties<CoreTypes.rootInterval>;\ntype LockedTime = OmitProperties<CoreTypes.lockedTime>;\ntype OverlapGroup = OmitProperties<CoreTypes.overlapGroup>;\ntype Course = OmitProperties<CoreTypes.course>;\ntype Event = OmitProperties<CoreTypes.event>;\n\nexport namespace ConnectedTypes {\n export type division = Division;\n export type divisionSettings = DivisionSettings;\n export type location = Location;\n export type group = Group;\n export type teacher = Teacher;\n export type person = Person;\n export type period = Period;\n export type rootInterval = RootInterval;\n export type lockedTime = LockedTime;\n export type overlapGroup = OverlapGroup;\n export type course = Course;\n export type event = Event;\n}\n\nexport type ConnectedScheduleData = {\n division: Division;\n settings: DivisionSettings;\n groups: Group[];\n teachers: Teacher[];\n locations: Location[];\n periods: Period[];\n persons: Person[];\n rootIntervals: RootInterval[];\n lockedTimes: LockedTime[];\n overlapGroups: OverlapGroup[];\n courses: Course[];\n events: Event[];\n};\n\n\nfunction indexCollection<T extends Vertex> (collection: Mixed<T>[], idKey: IdKey): Map<string, T> {\n return new Map(collection.map(x => ([getVertexId(x, idKey), x as T] as const)));\n}\nfunction nonNullable<T> (value: T | null | undefined): value is T {\n return value != null;\n}\n\n/**\n * Connects the schedule data by replacing references with actual objects making it easier to work with.\n */\nexport function makeConnected (\n schedule: MixedScheduleData,\n options: Pick<Types.toOptions, 'idKey'> = {}\n): ConnectedScheduleData {\n const _division = schedule.divisions ?? schedule.division;\n if (!_division) throw new Error(`\"division\" or \"divisions\" missing in schedule, present keys: ${Object.keys(schedule).join(', ')}`);\n const _settings = schedule.settings;\n if (!_settings) throw new Error(`\"settings\" missing in schedule, present keys: ${Object.keys(schedule).join(', ')}`);\n\n const idKey = getIdKey(options);\n\n const groupsMap = indexCollection(schedule.groups ?? [], idKey);\n const teachersMap = indexCollection(schedule.teachers ?? [], idKey);\n const locationsMap = indexCollection(schedule.locations ?? [], idKey);\n const coursesMap = indexCollection(schedule.courses ?? [], idKey);\n const eventsMap = indexCollection(schedule.events ?? [], idKey);\n const overlapGroupsMap = indexCollection(schedule.overlapGroups ?? [], idKey);\n const periodsMap = indexCollection(schedule.periods ?? [], idKey);\n const personsMap = indexCollection(schedule.persons ?? [], idKey);\n const lockedTimesMap = indexCollection(schedule.lockedTimes ?? [], idKey);\n const rootIntervalsMap = indexCollection(schedule.rootIntervals ?? [], idKey);\n\n const division = ((): Division => {\n const vertex: Record<keyof Required<Intersect<Vertex>>, unknown> = {\n _id: true,\n id: true,\n ids: true,\n createdAt: true,\n updatedAt: true,\n lastModifiedBy: true\n };\n const vertexKeys = Object.keys(vertex) as (keyof typeof vertex)[];\n return pick(_division, [...vertexKeys, 'displayName', 'start', 'end']) as Division;\n })();\n\n const settings = ((): DivisionSettings => {\n const edges: ExtractEdges<DivisionSettings> = {\n period: _settings.period != null ? periodsMap .get(getVertexId(_settings.period, idKey)) : _settings.period,\n defaultRootInterval: _settings.defaultRootInterval != null ? rootIntervalsMap.get(getVertexId(_settings.defaultRootInterval, idKey)) : _settings.defaultRootInterval,\n } satisfies Record<keyof ExtractEdges<DivisionSettings>, unknown>;\n return Object.assign(_settings, edges);\n })();\n\n const getLockedTimes = <T extends Mixed<CoreTypes.group>['lockedTimes'] | undefined | null>(x: T): LockedTime[] | Extract<T, null | undefined> => {\n if (!x) return x as Extract<T, null | undefined>;\n return x.map(x => lockedTimesMap.get(getVertexId(x, idKey))).filter(nonNullable);\n };\n const getLunch = <T extends Mixed<CoreTypes.group>['lockedTimes'] | undefined | null>(x: T): LockedTime[] | Extract<T, null | undefined> => {\n if (!x) return x as Extract<T, null | undefined>;\n return x.map(x => lockedTimesMap.get(getVertexId(x, idKey))).filter(nonNullable);\n };\n\n const locations = (schedule.locations ?? [])\n .map((x): Location => {\n const edges: ExtractEdges<Location> = {\n lockedTimes: getLockedTimes(x.lockedTimes),\n lunch: getLunch(x.lunch),\n } satisfies Record<keyof ExtractEdges<Location>, unknown>;\n return Object.assign(x, edges);\n });\n\n const groups = (schedule.groups ?? [])\n .map((x): Group => {\n const edges: ExtractEdges<Group> = {\n lockedTimes: getLockedTimes(x.lockedTimes),\n lunch: getLunch (x.lunch),\n members: x.members ? x.members .map(x => personsMap.get(getVertexId(x, idKey))).filter(nonNullable) : x.members,\n parentGroups: x.parentGroups ? x.parentGroups.map(x => groupsMap .get(getVertexId(x, idKey))).filter(nonNullable) : x.parentGroups,\n subGroups: x.subGroups ? x.subGroups .map(x => groupsMap .get(getVertexId(x, idKey))).filter(nonNullable) : x.subGroups,\n\n rootInterval: x.rootInterval != null ? rootIntervalsMap.get(getVertexId(x.rootInterval, idKey)) : x.rootInterval,\n } satisfies Record<keyof ExtractEdges<Group>, unknown>;\n return Object.assign(x, edges);\n });\n\n const teachers = (schedule.teachers ?? [])\n .map((x): Teacher => {\n const edges: ExtractEdges<Teacher> = {\n lockedTimes: getLockedTimes(x.lockedTimes),\n lunch: getLunch(x.lunch),\n\n person: x.person != null ? personsMap .get(getVertexId(x.person, idKey)) : x.person,\n rootInterval: x.rootInterval != null ? rootIntervalsMap.get(getVertexId(x.rootInterval, idKey)) : x.rootInterval,\n } satisfies Record<keyof ExtractEdges<Teacher>, unknown>;\n return Object.assign(x, edges);\n });\n\n const persons = (schedule.persons ?? [])\n .map((x): Person => {\n const edges: ExtractEdges<Person> = {\n lockedTimes: getLockedTimes(x.lockedTimes),\n lunch: getLunch(x.lunch),\n\n group: x.group != null ? groupsMap.get(getVertexId(x.group, idKey)) : x.group,\n } satisfies Record<keyof ExtractEdges<Person>, unknown>;\n return Object.assign(x, edges);\n });\n\n const periods = (schedule.periods ?? [])\n .map((x): Period => {\n const edges: ExtractEdges<Period> = {\n } satisfies Record<keyof ExtractEdges<Period>, unknown>;\n return Object.assign(x, edges);\n });\n\n const rootIntervals = (schedule.rootIntervals ?? [])\n .map((x): RootInterval => {\n const edges: ExtractEdges<RootInterval> = {\n } satisfies Record<keyof ExtractEdges<RootInterval>, unknown>;\n return Object.assign(x, edges);\n });\n\n const makeCoalesced = <T extends Vertex, C extends Collection> (map: Map<string, T>, id: string, toModel: C) => {\n const to = map.get(id);\n if (!to) return;\n return { to, toModel } as Coalesced<T, C>;\n };\n\n const lockedTimes = (schedule.lockedTimes ?? [])\n .map((x): LockedTime => {\n const edges: ExtractEdges<LockedTime> = {\n coalesced: x.coalesced\n ? x.coalesced\n .map(x => {\n switch (x.toModel) {\n case 'groups': return makeCoalesced(groupsMap, getVertexId(x.to, idKey), x.toModel);\n case 'teachers': return makeCoalesced(teachersMap, getVertexId(x.to, idKey), x.toModel);\n case 'courses': return makeCoalesced(coursesMap, getVertexId(x.to, idKey), x.toModel);\n case 'events': return makeCoalesced(eventsMap, getVertexId(x.to, idKey), x.toModel);\n case 'courseevents': return makeCoalesced(eventsMap, getVertexId(x.to, idKey), 'events');\n case 'locations': return makeCoalesced(locationsMap, getVertexId(x.to, idKey), x.toModel);\n // case 'persons': return makeCoalesced(personsMap, getVertexId(x.to, idKey), x.toModel);\n default: throw new Error(`Unknown coalesced model \"${x.toModel satisfies never as string}\" in locked time ${JSON.stringify(x)}`);\n }\n })\n .filter(nonNullable)\n : x.coalesced,\n } satisfies Record<keyof ExtractEdges<LockedTime>, unknown>;\n return Object.assign(x, edges);\n });\n\n const overlapGroups = (schedule.overlapGroups ?? [])\n .map((x): OverlapGroup => {\n const edges: ExtractEdges<OverlapGroup> = {\n coalesced: x.coalesced\n ? x.coalesced\n .map(x => {\n const to = (() => {\n switch (x.toModel) {\n case 'courses': return coursesMap.get(getVertexId(x.to, idKey));\n default: throw new Error(`Unknown coalesced model \"${x.toModel satisfies never as string}\" in overlap group ${JSON.stringify(x)}`);\n }\n })();\n if (!to) return;\n const coalesced: Coalesced<typeof to, (typeof x)['toModel']> = { ...x, to };\n return coalesced;\n })\n .filter(nonNullable)\n : x.coalesced,\n species: x.species\n ? x.species\n .map(x => {\n const to = (() => {\n switch (x.toModel) {\n case 'events': return eventsMap.get(getVertexId(x.to, idKey));\n case 'courseevents': return eventsMap.get(getVertexId(x.to, idKey));\n default: throw new Error(`Unknown species model \"${x.toModel satisfies never as string}\" in overlap group ${JSON.stringify(x)}`);\n }\n })();\n if (!to) return;\n const species: Species<typeof to, (typeof x)['toModel']> = { ...x, to };\n return species;\n })\n .filter(nonNullable)\n : x.species,\n } satisfies Record<keyof ExtractEdges<OverlapGroup>, unknown>;\n return Object.assign(x, edges);\n });\n\n const getParticipants = (x: Mixed<CoreTypes.course>['participants'] | Mixed<CoreTypes.event>['participants']): PersonReference<Person>[] | undefined => {\n if (!x) return undefined;\n return x\n .map(x => {\n const to = personsMap.get(getVertexId(x.to, idKey));\n if (!to) return;\n const participant: PersonReference<Person> = { ...x, to };\n return participant;\n })\n .filter(nonNullable);\n };\n const getTeachers = (x: Mixed<CoreTypes.course>['teachers'] | Mixed<CoreTypes.event>['teachers']): PersonReference<Person>[] | undefined => {\n if (!x) return undefined;\n return x\n .map(x => {\n const to = teachersMap.get(getVertexId(x.to, idKey));\n if (!to) return;\n const participant: PersonReference<Person> = { ...x, to };\n return participant;\n })\n .filter(nonNullable);\n };\n const getLocations = (x: Mixed<CoreTypes.course>['locations'] | Mixed<CoreTypes.event>['locations']): AvailableLocation<Location>[] | undefined => {\n if (!x) return undefined;\n return x\n .map(x => {\n const locations = x.locations\n .map(x => locationsMap.get(getVertexId(x, idKey)))\n .filter(nonNullable);\n if (locations.length != 1) throw new Error(`(RS::MakeConnected) Expected exactly one location in available locations, got ${locations.length} and before filtering: ${x.locations.map(x => getVertexId(x, idKey)).join(', ')}`);\n const availableLocation: AvailableLocation<Location> = { ...x, locations: locations as [Location] };\n return availableLocation;\n })\n .filter(nonNullable);\n };\n const getGroups = (x: Mixed<CoreTypes.course>['groups'] | Mixed<CoreTypes.event>['groups']): GroupReference<Group, Person>[] | undefined => {\n if (!x) return undefined;\n return x\n .map(x => {\n const to = groupsMap.get(getVertexId(x.to, idKey));\n if (!to) return;\n const exclude = x.exclude\n ? x.exclude\n .map(x => personsMap.get(getVertexId(x, idKey)))\n .filter(nonNullable)\n : undefined;\n const group: GroupReference<Group, Person> = { ...x, to, exclude };\n return group;\n })\n .filter(nonNullable);\n };\n\n const courses = (schedule.courses ?? [])\n .map((x): Course => {\n const edges: ExtractEdges<Course> = {\n groups: getGroups (x.groups),\n teachers: getTeachers (x.teachers),\n locations: getLocations (x.locations),\n participants: getParticipants(x.participants),\n lockedTimes: getLockedTimes (x.lockedTimes),\n events: x.events ? x.events .map(x => eventsMap .get(getVertexId(x, idKey))).filter(nonNullable) : x.events,\n\n period: x.period != null ? periodsMap .get(getVertexId(x.period, idKey)) : x.period,\n overlapGroup: x.overlapGroup != null ? overlapGroupsMap.get(getVertexId(x.overlapGroup, idKey)) : x.overlapGroup,\n overlapSpecies: x.overlapSpecies != null ? overlapGroupsMap.get(getVertexId(x.overlapSpecies, idKey)) : x.overlapSpecies,\n } satisfies Record<keyof ExtractEdges<Course>, unknown>;\n return Object.assign(x, edges);\n });\n\n const events = (schedule.events ?? [])\n .map((x): Event => {\n const edges: ExtractEdges<Event> = {\n groups: getGroups (x.groups),\n teachers: getTeachers (x.teachers),\n locations: getLocations (x.locations),\n participants: getParticipants(x.participants),\n lockedTimes: getLockedTimes (x.lockedTimes),\n inLocations: x.inLocations\n ? x.inLocations\n .map(x => x === null ? null : locationsMap.get(getVertexId(x, idKey)))\n .filter((x): x is Exclude<typeof x, undefined> => x !== undefined)\n : x.inLocations,\n\n course: x.course != null ? coursesMap .get(getVertexId(x.course, idKey)) : x.course,\n period: x.period != null ? periodsMap .get(getVertexId(x.period, idKey)) : x.period,\n overlapGroup: x.overlapGroup != null ? overlapGroupsMap.get(getVertexId(x.overlapGroup, idKey)) : x.overlapGroup,\n overlapSpecies: x.overlapSpecies != null ? overlapGroupsMap.get(getVertexId(x.overlapSpecies, idKey)) : x.overlapSpecies,\n } satisfies Record<keyof ExtractEdges<Event>, unknown>;\n return Object.assign(x, edges);\n });\n\n\n return {\n division,\n settings,\n locations,\n groups,\n teachers,\n persons,\n periods,\n rootIntervals,\n lockedTimes,\n overlapGroups,\n courses,\n events\n };\n}"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/RS/to/index.ts"],"sourcesContent":["import { schedules } from './schedules';\n\nexport default {\n schedules: schedules\n};"],"mappings":";;;AAEA,iBAAe,EACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { getDayIndex, getVertexId } from "../../core/util.js";
|
|
2
|
+
import { makeChainable } from "../../common/make-chainable/index.js";
|
|
3
|
+
import { idOf } from "./input/util/util.js";
|
|
4
|
+
import { omitBy, uniq } from "lodash-es";
|
|
5
|
+
import moment from "moment";
|
|
6
|
+
|
|
7
|
+
//#region src/RS/to/initial-configuration.ts
|
|
8
|
+
function getPosition(start, end) {
|
|
9
|
+
const mmtMidnight = moment.utc(start).clone().startOf("day");
|
|
10
|
+
return {
|
|
11
|
+
day: getDayIndex(start),
|
|
12
|
+
start: moment.utc(start).diff(mmtMidnight, "minutes"),
|
|
13
|
+
end: moment.utc(end).diff(mmtMidnight, "minutes")
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function initialConfiguration(events, lockedTimes, options) {
|
|
17
|
+
const fromEvents = events.map((x) => {
|
|
18
|
+
if (x.parked) return;
|
|
19
|
+
if (!x.start || !x.end) return;
|
|
20
|
+
const doc = {
|
|
21
|
+
id: idOf.event(x, options),
|
|
22
|
+
...getPosition(x.start, x.end),
|
|
23
|
+
collection: x.course ? getVertexId(x.course, options) : void 0,
|
|
24
|
+
dependencies: x.inLocations?.map((x$1) => x$1 ? getVertexId(x$1, options) : null).filter((x$1) => x$1 != null)
|
|
25
|
+
};
|
|
26
|
+
return omitBy(doc, (x$1) => x$1 == null);
|
|
27
|
+
}).filter((x) => x != null);
|
|
28
|
+
const fromLockedTimes = lockedTimes.map((x) => {
|
|
29
|
+
if (x.type != "LUNCH") return;
|
|
30
|
+
if (!x.start || !x.end) return;
|
|
31
|
+
const doc = {
|
|
32
|
+
id: idOf.lockedTime(x, options),
|
|
33
|
+
...getPosition(x.start, x.end),
|
|
34
|
+
dependencies: makeChainable(x.coalesced ?? []).chain((x$1) => x$1.filter((x$2) => x$2.toModel == "locations").map((x$2) => getVertexId(x$2.to, options)), (x$1) => uniq(x$1)).value
|
|
35
|
+
};
|
|
36
|
+
return omitBy(doc, (x$1) => x$1 == null);
|
|
37
|
+
}).filter((x) => x != null);
|
|
38
|
+
return [{ events: fromEvents.concat(fromLockedTimes) }];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//#endregion
|
|
42
|
+
export { initialConfiguration };
|
|
43
|
+
//# sourceMappingURL=initial-configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initial-configuration.js","names":["doc: Types.eventConfiguration","x"],"sources":["../../../src/RS/to/initial-configuration.ts"],"sourcesContent":["import moment from 'moment';\nimport { omitBy, uniq } from 'lodash-es';\nimport type { ConnectedTypes } from '../make-connected';\nimport { idOf } from './input/util/util';\nimport { getDayIndex, getVertexId } from '../../core/util';\nimport type { DateType } from '../../common/types';\nimport type { Types } from '../types';\nimport { makeChainable } from '../../common/make-chainable';\n\nfunction getPosition (\n start: DateType,\n end: DateType\n): Pick<Types.eventConfiguration, 'day' | 'start' | 'end'> {\n const mmtMidnight = moment.utc(start).clone().startOf('day');\n return {\n day: getDayIndex(start),\n start: moment.utc(start).diff(mmtMidnight, 'minutes'),\n end: moment.utc(end ).diff(mmtMidnight, 'minutes'),\n };\n}\n\nexport function initialConfiguration (\n events: ConnectedTypes.event[],\n lockedTimes: ConnectedTypes.lockedTime[],\n options: Types.parsedToOptions\n): Types.configuration[] {\n const fromEvents = events\n .map(x => {\n if (x.parked) return;\n if (!x.start || !x.end) return;\n\n const doc: Types.eventConfiguration = {\n id: idOf.event(x, options),\n ...getPosition(x.start, x.end),\n\n collection: x.course ? getVertexId(x.course, options) : undefined,\n dependencies: x.inLocations?.map(x => x ? getVertexId(x, options) : null).filter(x => x != null),\n };\n return omitBy(doc, x => x == null) as Types.eventConfiguration;\n })\n .filter(x => x != null);\n\n const fromLockedTimes = lockedTimes\n .map(x => {\n if (x.type != 'LUNCH') return;\n if (!x.start || !x.end) return;\n\n const doc: Types.eventConfiguration = {\n id: idOf.lockedTime(x, options),\n ...getPosition(x.start, x.end),\n\n dependencies: makeChainable(x.coalesced ?? [])\n .chain(\n x => x\n .filter(x => x.toModel == 'locations')\n .map(x => getVertexId(x.to, options)),\n x => uniq(x)\n )\n .value\n };\n return omitBy(doc, x => x == null) as Types.eventConfiguration;\n })\n .filter(x => x != null);\n\n return [{\n events: fromEvents.concat(fromLockedTimes)\n }];\n};"],"mappings":";;;;;;;AASA,SAAS,YACP,OACA,KACyD;CACzD,MAAM,cAAc,OAAO,IAAI,OAAO,QAAQ,QAAQ;AACtD,QAAO;EACL,KAAO,YAAY;EACnB,OAAO,OAAO,IAAI,OAAO,KAAK,aAAa;EAC3C,KAAO,OAAO,IAAI,KAAO,KAAK,aAAa;;;AAI/C,SAAgB,qBACd,QACA,aACA,SACuB;CACvB,MAAM,aAAa,OAChB,KAAI,MAAK;AACR,MAAI,EAAE,OAAQ;AACd,MAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAK;EAExB,MAAMA,MAAgC;GACpC,IAAI,KAAK,MAAM,GAAG;GAClB,GAAG,YAAY,EAAE,OAAO,EAAE;GAE1B,YAAc,EAAE,SAAS,YAAY,EAAE,QAAQ,WAAW;GAC1D,cAAc,EAAE,aAAa,KAAI,QAAKC,MAAI,YAAYA,KAAG,WAAW,MAAM,QAAO,QAAKA,OAAK;;AAE7F,SAAO,OAAO,MAAK,QAAKA,OAAK;IAE9B,QAAO,MAAK,KAAK;CAEpB,MAAM,kBAAkB,YACrB,KAAI,MAAK;AACR,MAAI,EAAE,QAAQ,QAAS;AACvB,MAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAK;EAExB,MAAMD,MAAgC;GACpC,IAAI,KAAK,WAAW,GAAG;GACvB,GAAG,YAAY,EAAE,OAAO,EAAE;GAE1B,cAAc,cAAc,EAAE,aAAa,IACxC,OACC,QAAKC,IACF,QAAO,QAAKA,IAAE,WAAW,aACzB,KAAI,QAAK,YAAYA,IAAE,IAAI,YAC9B,QAAK,KAAKA,MAEX;;AAEL,SAAO,OAAO,MAAK,QAAKA,OAAK;IAE9B,QAAO,MAAK,KAAK;AAEpB,QAAO,CAAC,EACN,QAAQ,WAAW,OAAO"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { getVertexId } from "../../../core/util.js";
|
|
2
|
+
import { makeChainable } from "../../../common/make-chainable/index.js";
|
|
3
|
+
import { getPeriodIndex, idOf } from "./util/util.js";
|
|
4
|
+
import { attachLockedTimes } from "./util/attach-locked-times.js";
|
|
5
|
+
import { parseDays } from "./util/parse-days.js";
|
|
6
|
+
import { parseMinimumBreakLength } from "./util/parse-minimum-break-length.js";
|
|
7
|
+
import { parseIntervals } from "./util/parse-intervals.js";
|
|
8
|
+
import { parseGroupReferences } from "./util/parse-group-references.js";
|
|
9
|
+
import { parseLocationReferences } from "./util/parse-location-references.js";
|
|
10
|
+
import { parseEvents } from "./events.js";
|
|
11
|
+
import { groupBy, omitBy, values } from "lodash-es";
|
|
12
|
+
|
|
13
|
+
//#region src/RS/to/input/collections.ts
|
|
14
|
+
function fromCollections(courses, settings, options, periodsMap) {
|
|
15
|
+
const collections = courses.map((course) => {
|
|
16
|
+
const id = getVertexId(course, options);
|
|
17
|
+
const doc = {
|
|
18
|
+
id,
|
|
19
|
+
weight: course.weight,
|
|
20
|
+
density: course.density,
|
|
21
|
+
maxEventLengthVariance: course.eventDurationVariance,
|
|
22
|
+
potentialCenter: course.centerOfAttraction ? parseFloat(course.centerOfAttraction.replace(":", ".")) : void 0,
|
|
23
|
+
distributionKey: id,
|
|
24
|
+
events: parseEvents(course.events, settings, options, periodsMap),
|
|
25
|
+
dependencies: parseLocationReferences(course.locations, options),
|
|
26
|
+
groups: parseGroupReferences({
|
|
27
|
+
type: "course",
|
|
28
|
+
item: course
|
|
29
|
+
}, options),
|
|
30
|
+
intervals: options.oldFormat ? parseIntervals(course.intervals, void 0, settings) : idOf.intervalPairReference(course.intervals, void 0, options),
|
|
31
|
+
days: parseDays(course.days, settings),
|
|
32
|
+
minBreakLength: parseMinimumBreakLength(course.minBreakLength),
|
|
33
|
+
lockedTimes: attachLockedTimes(course.lockedTimes, options),
|
|
34
|
+
period: getPeriodIndex(course.period, periodsMap, options)
|
|
35
|
+
};
|
|
36
|
+
if (options.meta) doc.meta = omitBy({
|
|
37
|
+
color: course.color,
|
|
38
|
+
ids: course.ids,
|
|
39
|
+
name: course.displayName
|
|
40
|
+
}, (x) => x == null);
|
|
41
|
+
doc.overlapGroupId = course.overlapGroup ? getVertexId(course.overlapGroup, options) : void 0;
|
|
42
|
+
return omitBy(doc, (x) => x == null);
|
|
43
|
+
});
|
|
44
|
+
const overlapping = makeChainable(collections).chain((x) => x.filter((x$1) => x$1.overlapGroupId != null), (x) => groupBy(x, (x$1) => x$1.overlapGroupId), (x) => values(x).map((xs) => xs.map((x$1) => {
|
|
45
|
+
delete x$1.overlapGroupId;
|
|
46
|
+
return x$1;
|
|
47
|
+
}))).value;
|
|
48
|
+
const plain = collections.filter((x) => x.overlapGroupId == null).map((x) => {
|
|
49
|
+
delete x.overlapGroupId;
|
|
50
|
+
return x;
|
|
51
|
+
});
|
|
52
|
+
return overlapping.concat(plain);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
export { fromCollections };
|
|
57
|
+
//# sourceMappingURL=collections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collections.js","names":["doc: Types.collection & { overlapGroupId?: string }","x"],"sources":["../../../../src/RS/to/input/collections.ts"],"sourcesContent":["import { groupBy, omitBy, values } from 'lodash-es';\nimport { attachLockedTimes } from './util/attach-locked-times';\nimport { parseEvents } from './events';\nimport { parseMinimumBreakLength } from './util/parse-minimum-break-length';\nimport { parseGroupReferences } from './util/parse-group-references';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { getVertexId } from '../../../core/util';\nimport { getPeriodIndex, idOf } from './util/util';\nimport { parseLocationReferences } from './util/parse-location-references';\nimport { parseDays } from './util/parse-days';\nimport { parseIntervals } from './util/parse-intervals';\nimport type { Types } from '../../types';\nimport { makeChainable } from '../../../common/make-chainable';\n\nexport function fromCollections (\n courses: ConnectedTypes.course[],\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions,\n periodsMap: Map<string | undefined, number>,\n): (Types.collection[] | Types.collection)[] {\n const collections = courses\n .map(course => {\n const id = getVertexId(course, options);\n\n const doc: Types.collection & { overlapGroupId?: string } = {\n id,\n\n weight: course.weight,\n density: course.density,\n maxEventLengthVariance: course.eventDurationVariance,\n potentialCenter: course.centerOfAttraction ? parseFloat(course.centerOfAttraction.replace(':', '.')) : undefined,\n distributionKey: id,\n\n events: parseEvents (course.events, settings, options, periodsMap),\n dependencies: parseLocationReferences (course.locations, options),\n groups: parseGroupReferences ({ type: 'course', item: course }, options),\n intervals: options.oldFormat\n ? parseIntervals(course.intervals, undefined, settings)\n : idOf.intervalPairReference(course.intervals, undefined, options),\n days: parseDays (course.days, settings),\n minBreakLength: parseMinimumBreakLength (course.minBreakLength),\n lockedTimes: attachLockedTimes (course.lockedTimes, options),\n period: getPeriodIndex (course.period, periodsMap, options),\n };\n\n if (options.meta) {\n doc.meta = omitBy({\n color: course.color,\n ids: course.ids,\n name: course.displayName,\n }, x => x == null);\n }\n\n // temporarily attach overlap group\n doc.overlapGroupId = course.overlapGroup\n ? getVertexId(course.overlapGroup, options)\n : undefined;\n\n return omitBy(doc, x => x == null) as Types.collection & { overlapGroupId?: string };\n });\n\n const overlapping = makeChainable(collections)\n .chain(\n x => x.filter(x => x.overlapGroupId != null),\n x => groupBy(x, x => x.overlapGroupId),\n x => values(x)\n .map(xs => xs.map(x => {\n delete x.overlapGroupId; // remove overlapGroupId from individual collections\n return x as Types.collection;\n }))\n )\n .value;\n\n const plain = collections\n .filter(x => x.overlapGroupId == null)\n .map(x => {\n delete x.overlapGroupId; // remove overlapGroupId from individual collections\n return x as Types.collection;\n });\n\n return overlapping.concat(plain);\n};"],"mappings":";;;;;;;;;;;;;AAcA,SAAgB,gBACd,SACA,UACA,SACA,YAC2C;CAC3C,MAAM,cAAc,QACjB,KAAI,WAAU;EACb,MAAM,KAAK,YAAY,QAAQ;EAE/B,MAAMA,MAAsD;GAC1D;GAEA,QAAwB,OAAO;GAC/B,SAAwB,OAAO;GAC/B,wBAAwB,OAAO;GAC/B,iBAAwB,OAAO,qBAAqB,WAAW,OAAO,mBAAmB,QAAQ,KAAK,QAAQ;GAC9G,iBAAwB;GAExB,QAAc,YAA2B,OAAO,QAAQ,UAAU,SAAS;GAC3E,cAAc,wBAA2B,OAAO,WAAW;GAC3D,QAAc,qBAA2B;IAAE,MAAM;IAAU,MAAM;MAAU;GAC3E,WAAc,QAAQ,YAClB,eAAe,OAAO,WAAW,QAAW,YAC5C,KAAK,sBAAsB,OAAO,WAAW,QAAW;GAC5D,MAAgB,UAA2B,OAAO,MAAM;GACxD,gBAAgB,wBAA2B,OAAO;GAClD,aAAgB,kBAA2B,OAAO,aAAa;GAC/D,QAAgB,eAA2B,OAAO,QAAQ,YAAY;;AAGxE,MAAI,QAAQ,KACV,KAAI,OAAO,OAAO;GAChB,OAAO,OAAO;GACd,KAAO,OAAO;GACd,MAAO,OAAO;MACb,MAAK,KAAK;AAIf,MAAI,iBAAiB,OAAO,eACxB,YAAY,OAAO,cAAc,WACjC;AAEJ,SAAO,OAAO,MAAK,MAAK,KAAK;;CAGjC,MAAM,cAAc,cAAc,aAC/B,OACC,MAAK,EAAE,QAAO,QAAKC,IAAE,kBAAkB,QACvC,MAAK,QAAQ,IAAG,QAAKA,IAAE,kBACvB,MAAK,OAAO,GACT,KAAI,OAAM,GAAG,KAAI,QAAK;AACrB,SAAOA,IAAE;AACT,SAAOA;MAGZ;CAEH,MAAM,QAAQ,YACX,QAAO,MAAK,EAAE,kBAAkB,MAChC,KAAI,MAAK;AACR,SAAO,EAAE;AACT,SAAO;;AAGX,QAAO,YAAY,OAAO"}
|