@royalschedule/maps 4.1.4 → 4.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Additio/from/courses.mjs +28 -0
- package/dist/Additio/from/courses.mjs.map +1 -0
- package/dist/Additio/from/events.mjs +61 -0
- package/dist/Additio/from/events.mjs.map +1 -0
- package/dist/Additio/from/groups.mjs +14 -0
- package/dist/Additio/from/groups.mjs.map +1 -0
- package/dist/Additio/from/index.mjs +8 -0
- package/dist/Additio/from/index.mjs.map +1 -0
- package/dist/Additio/from/locations.mjs +13 -0
- package/dist/Additio/from/locations.mjs.map +1 -0
- package/dist/Additio/from/persons.mjs +30 -0
- package/dist/Additio/from/persons.mjs.map +1 -0
- package/dist/Additio/from/schedules.d.mts +39 -0
- package/dist/Additio/from/schedules.mjs +34 -0
- package/dist/Additio/from/schedules.mjs.map +1 -0
- package/dist/Additio/from/teachers.mjs +25 -0
- package/dist/Additio/from/teachers.mjs.map +1 -0
- package/dist/Additio/index.d.mts +14 -0
- package/dist/Additio/index.mjs +12 -0
- package/dist/Additio/index.mjs.map +1 -0
- package/dist/Additio/to/index.d.mts +23 -0
- package/dist/Additio/to/index.mjs +10 -0
- package/dist/Additio/to/index.mjs.map +1 -0
- package/dist/Additio/to/schedules.mjs +109 -0
- package/dist/Additio/to/schedules.mjs.map +1 -0
- package/dist/Additio/types/course-sections.d.mts +20 -0
- package/dist/Additio/types/courses.d.mts +17 -0
- package/dist/Additio/types/index.d.mts +27 -0
- package/dist/Additio/types/lessons.d.mts +27 -0
- package/dist/Additio/types/options.d.mts +16 -0
- package/dist/Additio/types/primary-groups.d.mts +30 -0
- package/dist/Additio/types/rooms.d.mts +12 -0
- package/dist/Additio/types/schedule-groups.d.mts +23 -0
- package/dist/Additio/types/schedules.d.mts +27 -0
- package/dist/Additio/types/schools.d.mts +11 -0
- package/dist/Additio/types/users.d.mts +20 -0
- package/dist/Admentum/from/courses.mjs +32 -0
- package/dist/Admentum/from/courses.mjs.map +1 -0
- package/dist/Admentum/from/events.mjs +62 -0
- package/dist/Admentum/from/events.mjs.map +1 -0
- package/dist/Admentum/from/groups.mjs +14 -0
- package/dist/Admentum/from/groups.mjs.map +1 -0
- package/dist/Admentum/from/index.mjs +8 -0
- package/dist/Admentum/from/index.mjs.map +1 -0
- package/dist/Admentum/from/locations.mjs +13 -0
- package/dist/Admentum/from/locations.mjs.map +1 -0
- package/dist/Admentum/from/persons.mjs +30 -0
- package/dist/Admentum/from/persons.mjs.map +1 -0
- package/dist/Admentum/from/schedules.d.mts +39 -0
- package/dist/Admentum/from/schedules.mjs +34 -0
- package/dist/Admentum/from/schedules.mjs.map +1 -0
- package/dist/Admentum/from/teachers.mjs +25 -0
- package/dist/Admentum/from/teachers.mjs.map +1 -0
- package/dist/Admentum/index.d.mts +14 -0
- package/dist/Admentum/index.mjs +12 -0
- package/dist/Admentum/index.mjs.map +1 -0
- package/dist/Admentum/to/index.d.mts +20 -0
- package/dist/Admentum/to/index.mjs +10 -0
- package/dist/Admentum/to/index.mjs.map +1 -0
- package/dist/Admentum/to/schedules.mjs +91 -0
- package/dist/Admentum/to/schedules.mjs.map +1 -0
- package/dist/Admentum/types/course-sections.d.mts +20 -0
- package/dist/Admentum/types/courses.d.mts +17 -0
- package/dist/Admentum/types/index.d.mts +25 -0
- package/dist/Admentum/types/lessons.d.mts +27 -0
- package/dist/Admentum/types/primary-groups.d.mts +30 -0
- package/dist/Admentum/types/rooms.d.mts +12 -0
- package/dist/Admentum/types/schedule-groups.d.mts +23 -0
- package/dist/Admentum/types/schedules.d.mts +27 -0
- package/dist/Admentum/types/schools.d.mts +11 -0
- package/dist/Admentum/types/users.d.mts +20 -0
- package/dist/Excel/index.d.mts +308 -0
- package/dist/Excel/index.mjs +13 -0
- package/dist/Excel/index.mjs.map +1 -0
- package/dist/Excel/v1/from/index.mjs +290 -0
- package/dist/Excel/v1/from/index.mjs.map +1 -0
- package/dist/Excel/v1/index.d.mts +256 -0
- package/dist/Excel/v1/index.mjs +10 -0
- package/dist/Excel/v1/index.mjs.map +1 -0
- package/dist/Excel/v1/types/index.d.mts +44 -0
- package/dist/Excel/v2/from/index.mjs +620 -0
- package/dist/Excel/v2/from/index.mjs.map +1 -0
- package/dist/Excel/v2/index.d.mts +303 -0
- package/dist/Excel/v2/index.mjs +10 -0
- package/dist/Excel/v2/index.mjs.map +1 -0
- package/dist/Excel/v2/types/index.d.mts +72 -0
- package/dist/IdunSoft/from/courses.mjs +16 -0
- package/dist/IdunSoft/from/courses.mjs.map +1 -0
- package/dist/IdunSoft/from/events.mjs +58 -0
- package/dist/IdunSoft/from/events.mjs.map +1 -0
- package/dist/IdunSoft/from/groups.mjs +17 -0
- package/dist/IdunSoft/from/groups.mjs.map +1 -0
- package/dist/IdunSoft/from/index.mjs +8 -0
- package/dist/IdunSoft/from/index.mjs.map +1 -0
- package/dist/IdunSoft/from/locations.mjs +16 -0
- package/dist/IdunSoft/from/locations.mjs.map +1 -0
- package/dist/IdunSoft/from/schedules.d.mts +24 -0
- package/dist/IdunSoft/from/schedules.mjs +20 -0
- package/dist/IdunSoft/from/schedules.mjs.map +1 -0
- package/dist/IdunSoft/from/teachers.mjs +16 -0
- package/dist/IdunSoft/from/teachers.mjs.map +1 -0
- package/dist/IdunSoft/index.d.mts +14 -0
- package/dist/IdunSoft/index.mjs +12 -0
- package/dist/IdunSoft/index.mjs.map +1 -0
- package/dist/IdunSoft/to/index.d.mts +10 -0
- package/dist/IdunSoft/to/index.mjs +10 -0
- package/dist/IdunSoft/to/index.mjs.map +1 -0
- package/dist/IdunSoft/to/schedules.mjs +55 -0
- package/dist/IdunSoft/to/schedules.mjs.map +1 -0
- package/dist/IdunSoft/types/courses.d.mts +8 -0
- package/dist/IdunSoft/types/events.d.mts +26 -0
- package/dist/IdunSoft/types/groups.d.mts +8 -0
- package/dist/IdunSoft/types/index.d.mts +20 -0
- package/dist/IdunSoft/types/locations.d.mts +8 -0
- package/dist/IdunSoft/types/schedules.d.mts +17 -0
- package/dist/IdunSoft/types/teachers.d.mts +8 -0
- package/dist/InfoMentor/index.d.mts +10 -0
- package/dist/InfoMentor/index.mjs +10 -0
- package/dist/InfoMentor/index.mjs.map +1 -0
- package/dist/InfoMentor/to/index.d.mts +10 -0
- package/dist/InfoMentor/to/index.mjs +10 -0
- package/dist/InfoMentor/to/index.mjs.map +1 -0
- package/dist/InfoMentor/to/schedules.mjs +57 -0
- package/dist/InfoMentor/to/schedules.mjs.map +1 -0
- package/dist/InfoMentor/types/events.d.mts +13 -0
- package/dist/InfoMentor/types/index.d.mts +9 -0
- package/dist/PlanDigital/from/index.mjs +8 -0
- package/dist/PlanDigital/from/index.mjs.map +1 -0
- package/dist/PlanDigital/from/schedules.mjs +71 -0
- package/dist/PlanDigital/from/schedules.mjs.map +1 -0
- package/dist/PlanDigital/index.d.mts +129 -0
- package/dist/PlanDigital/index.mjs +10 -0
- package/dist/PlanDigital/index.mjs.map +1 -0
- package/dist/PlanDigital/types/index.d.mts +34 -0
- package/dist/Quiculum/file/index.d.mts +9 -0
- package/dist/Quiculum/file/index.mjs +10 -0
- package/dist/Quiculum/file/index.mjs.map +1 -0
- package/dist/Quiculum/file/to/index.d.mts +21 -0
- package/dist/Quiculum/file/to/index.mjs +10 -0
- package/dist/Quiculum/file/to/index.mjs.map +1 -0
- package/dist/Quiculum/file/to/schedules.mjs +87 -0
- package/dist/Quiculum/file/to/schedules.mjs.map +1 -0
- package/dist/Quiculum/index.d.mts +11 -0
- package/dist/Quiculum/index.mjs +11 -0
- package/dist/Quiculum/index.mjs.map +1 -0
- package/dist/RS/from/division.d.mts +8 -0
- package/dist/RS/from/division.mjs +17 -0
- package/dist/RS/from/division.mjs.map +1 -0
- package/dist/RS/from/index.mjs +12 -0
- package/dist/RS/from/index.mjs.map +1 -0
- package/dist/RS/from/schedules.d.mts +9 -0
- package/dist/RS/from/schedules.mjs +40 -0
- package/dist/RS/from/schedules.mjs.map +1 -0
- package/dist/RS/index.d.mts +18 -0
- package/dist/RS/index.mjs +12 -0
- package/dist/RS/index.mjs.map +1 -0
- package/dist/RS/make-connected.d.mts +25 -0
- package/dist/RS/make-connected.mjs +207 -0
- package/dist/RS/make-connected.mjs.map +1 -0
- package/dist/RS/to/index.mjs +8 -0
- package/dist/RS/to/index.mjs.map +1 -0
- package/dist/RS/to/initial-configuration.mjs +41 -0
- package/dist/RS/to/initial-configuration.mjs.map +1 -0
- package/dist/RS/to/input/default.mjs +28 -0
- package/dist/RS/to/input/default.mjs.map +1 -0
- package/dist/RS/to/input/dependencies.mjs +31 -0
- package/dist/RS/to/input/dependencies.mjs.map +1 -0
- package/dist/RS/to/input/events.mjs +101 -0
- package/dist/RS/to/input/events.mjs.map +1 -0
- package/dist/RS/to/input/groups.mjs +32 -0
- package/dist/RS/to/input/groups.mjs.map +1 -0
- package/dist/RS/to/input/individuals.mjs +45 -0
- package/dist/RS/to/input/individuals.mjs.map +1 -0
- package/dist/RS/to/input/input.mjs +59 -0
- package/dist/RS/to/input/input.mjs.map +1 -0
- package/dist/RS/to/input/intervals.mjs +129 -0
- package/dist/RS/to/input/intervals.mjs.map +1 -0
- package/dist/RS/to/input/linked-events-sets.mjs +96 -0
- package/dist/RS/to/input/linked-events-sets.mjs.map +1 -0
- package/dist/RS/to/input/locked-times.mjs +89 -0
- package/dist/RS/to/input/locked-times.mjs.map +1 -0
- package/dist/RS/to/input/periods.mjs +57 -0
- package/dist/RS/to/input/periods.mjs.map +1 -0
- package/dist/RS/to/input/settings.mjs +13 -0
- package/dist/RS/to/input/settings.mjs.map +1 -0
- package/dist/RS/to/input/teachers.mjs +32 -0
- package/dist/RS/to/input/teachers.mjs.map +1 -0
- package/dist/RS/to/input/util/parse-days.mjs +10 -0
- package/dist/RS/to/input/util/parse-days.mjs.map +1 -0
- package/dist/RS/to/input/util/parse-group-references.mjs +50 -0
- package/dist/RS/to/input/util/parse-group-references.mjs.map +1 -0
- package/dist/RS/to/input/util/parse-location-references.mjs +35 -0
- package/dist/RS/to/input/util/parse-location-references.mjs.map +1 -0
- package/dist/RS/to/input/util/parse-max-working-hours.mjs +14 -0
- package/dist/RS/to/input/util/parse-max-working-hours.mjs.map +1 -0
- package/dist/RS/to/input/util/parse-minimum-break-length.mjs +19 -0
- package/dist/RS/to/input/util/parse-minimum-break-length.mjs.map +1 -0
- package/dist/RS/to/input/util/util.mjs +100 -0
- package/dist/RS/to/input/util/util.mjs.map +1 -0
- package/dist/RS/to/schedules.d.mts +7 -0
- package/dist/RS/to/schedules.mjs +51 -0
- package/dist/RS/to/schedules.mjs.map +1 -0
- package/dist/RS/types/algorithm-parameters.d.mts +17 -0
- package/dist/RS/types/configurations.d.mts +10 -0
- package/dist/RS/types/event-configuration.d.mts +20 -0
- package/dist/RS/types/index.d.mts +21 -0
- package/dist/RS/types/schedule-data.d.mts +20 -0
- package/dist/RS/types/to.d.mts +64 -0
- package/dist/RS/types/to.mjs +6 -0
- package/dist/RS/types/to.mjs.map +1 -0
- package/dist/SS12000/from/activities.mjs +35 -0
- package/dist/SS12000/from/activities.mjs.map +1 -0
- package/dist/SS12000/from/calendar-events.mjs +20 -0
- package/dist/SS12000/from/calendar-events.mjs.map +1 -0
- package/dist/SS12000/from/duties.mjs +31 -0
- package/dist/SS12000/from/duties.mjs.map +1 -0
- package/dist/SS12000/from/groups.mjs +23 -0
- package/dist/SS12000/from/groups.mjs.map +1 -0
- package/dist/SS12000/from/index.mjs +24 -0
- package/dist/SS12000/from/index.mjs.map +1 -0
- package/dist/SS12000/from/persons.mjs +43 -0
- package/dist/SS12000/from/persons.mjs.map +1 -0
- package/dist/SS12000/from/resources.mjs +9 -0
- package/dist/SS12000/from/resources.mjs.map +1 -0
- package/dist/SS12000/from/rooms.mjs +18 -0
- package/dist/SS12000/from/rooms.mjs.map +1 -0
- package/dist/SS12000/from/syllabuses.mjs +21 -0
- package/dist/SS12000/from/syllabuses.mjs.map +1 -0
- package/dist/SS12000/index.d.mts +37 -0
- package/dist/SS12000/index.mjs +12 -0
- package/dist/SS12000/index.mjs.map +1 -0
- package/dist/SS12000/to/activities.mjs +63 -0
- package/dist/SS12000/to/activities.mjs.map +1 -0
- package/dist/SS12000/to/calendar-events.mjs +53 -0
- package/dist/SS12000/to/calendar-events.mjs.map +1 -0
- package/dist/SS12000/to/common.mjs +25 -0
- package/dist/SS12000/to/common.mjs.map +1 -0
- package/dist/SS12000/to/duties.mjs +45 -0
- package/dist/SS12000/to/duties.mjs.map +1 -0
- package/dist/SS12000/to/groups.mjs +49 -0
- package/dist/SS12000/to/groups.mjs.map +1 -0
- package/dist/SS12000/to/index.d.mts +57 -0
- package/dist/SS12000/to/index.mjs +24 -0
- package/dist/SS12000/to/index.mjs.map +1 -0
- package/dist/SS12000/to/persons.mjs +40 -0
- package/dist/SS12000/to/persons.mjs.map +1 -0
- package/dist/SS12000/to/resources.mjs +27 -0
- package/dist/SS12000/to/resources.mjs.map +1 -0
- package/dist/SS12000/to/rooms.mjs +32 -0
- package/dist/SS12000/to/rooms.mjs.map +1 -0
- package/dist/SS12000/to/syllabuses.mjs +34 -0
- package/dist/SS12000/to/syllabuses.mjs.map +1 -0
- package/dist/SS12000/types/activities.d.mts +41 -0
- package/dist/SS12000/types/calendar-events.d.mts +23 -0
- package/dist/SS12000/types/codes.d.mts +9 -0
- package/dist/SS12000/types/duties.d.mts +23 -0
- package/dist/SS12000/types/duty-assignments.d.mts +13 -0
- package/dist/SS12000/types/groups.d.mts +23 -0
- package/dist/SS12000/types/index.d.mts +21 -0
- package/dist/SS12000/types/organisation.d.mts +20 -0
- package/dist/SS12000/types/persons.d.mts +30 -0
- package/dist/SS12000/types/resources.d.mts +13 -0
- package/dist/SS12000/types/rooms.d.mts +17 -0
- package/dist/SS12000/types/syllabus.d.mts +19 -0
- package/dist/SchoolSoft/api/from/index.mjs +8 -0
- package/dist/SchoolSoft/api/from/index.mjs.map +1 -0
- package/dist/SchoolSoft/api/from/schedules.mjs +163 -0
- package/dist/SchoolSoft/api/from/schedules.mjs.map +1 -0
- package/dist/SchoolSoft/api/index.d.mts +462 -0
- package/dist/SchoolSoft/api/index.mjs +10 -0
- package/dist/SchoolSoft/api/index.mjs.map +1 -0
- package/dist/SchoolSoft/api/types/group.d.mts +12 -0
- package/dist/SchoolSoft/api/types/index.d.mts +19 -0
- package/dist/SchoolSoft/api/types/lesson.d.mts +9 -0
- package/dist/SchoolSoft/api/types/location.d.mts +8 -0
- package/dist/SchoolSoft/api/types/persons.d.mts +31 -0
- package/dist/SchoolSoft/api/types/schedule.d.mts +17 -0
- package/dist/SchoolSoft/api/types/teacher.d.mts +13 -0
- package/dist/SchoolSoft/file/from/index.mjs +8 -0
- package/dist/SchoolSoft/file/from/index.mjs.map +1 -0
- package/dist/SchoolSoft/file/from/schedules.mjs +130 -0
- package/dist/SchoolSoft/file/from/schedules.mjs.map +1 -0
- package/dist/SchoolSoft/file/index.d.mts +16 -0
- package/dist/SchoolSoft/file/index.mjs +12 -0
- package/dist/SchoolSoft/file/index.mjs.map +1 -0
- package/dist/SchoolSoft/file/to/index.d.mts +14 -0
- package/dist/SchoolSoft/file/to/index.mjs +10 -0
- package/dist/SchoolSoft/file/to/index.mjs.map +1 -0
- package/dist/SchoolSoft/file/to/schedules.mjs +106 -0
- package/dist/SchoolSoft/file/to/schedules.mjs.map +1 -0
- package/dist/SchoolSoft/file/types/events.d.mts +27 -0
- package/dist/SchoolSoft/file/types/index.d.mts +17 -0
- package/dist/SchoolSoft/file/types/persons.d.mts +31 -0
- package/dist/SchoolSoft/index.d.mts +21 -0
- package/dist/SchoolSoft/index.mjs +14 -0
- package/dist/SchoolSoft/index.mjs.map +1 -0
- package/dist/Schoolity/index.d.mts +10 -0
- package/dist/Schoolity/index.mjs +10 -0
- package/dist/Schoolity/index.mjs.map +1 -0
- package/dist/Schoolity/txt/index.d.mts +10 -0
- package/dist/Schoolity/txt/index.mjs +10 -0
- package/dist/Schoolity/txt/index.mjs.map +1 -0
- package/dist/Schoolity/txt/to/index.d.mts +11 -0
- package/dist/Schoolity/txt/to/index.mjs +10 -0
- package/dist/Schoolity/txt/to/index.mjs.map +1 -0
- package/dist/Schoolity/txt/to/schedules.mjs +324 -0
- package/dist/Schoolity/txt/to/schedules.mjs.map +1 -0
- package/dist/Schoolity/txt/types/index.d.mts +119 -0
- package/dist/Skola24/index.d.mts +13 -0
- package/dist/Skola24/index.mjs +12 -0
- package/dist/Skola24/index.mjs.map +1 -0
- package/dist/Skola24/mdb/from/course-and-events.mjs +239 -0
- package/dist/Skola24/mdb/from/course-and-events.mjs.map +1 -0
- package/dist/Skola24/mdb/from/groups.mjs +12 -0
- package/dist/Skola24/mdb/from/groups.mjs.map +1 -0
- package/dist/Skola24/mdb/from/index.mjs +8 -0
- package/dist/Skola24/mdb/from/index.mjs.map +1 -0
- package/dist/Skola24/mdb/from/locations.mjs +11 -0
- package/dist/Skola24/mdb/from/locations.mjs.map +1 -0
- package/dist/Skola24/mdb/from/schedule.d.mts +28 -0
- package/dist/Skola24/mdb/from/schedule.mjs +97 -0
- package/dist/Skola24/mdb/from/schedule.mjs.map +1 -0
- package/dist/Skola24/mdb/from/teachers.mjs +11 -0
- package/dist/Skola24/mdb/from/teachers.mjs.map +1 -0
- package/dist/Skola24/mdb/index.d.mts +12 -0
- package/dist/Skola24/mdb/index.mjs +10 -0
- package/dist/Skola24/mdb/index.mjs.map +1 -0
- package/dist/Skola24/mdb/types/Course.d.mts +10 -0
- package/dist/Skola24/mdb/types/Group-group-link.d.mts +8 -0
- package/dist/Skola24/mdb/types/Group.d.mts +9 -0
- package/dist/Skola24/mdb/types/Lesson-group-link.d.mts +8 -0
- package/dist/Skola24/mdb/types/Lesson-period-link.d.mts +8 -0
- package/dist/Skola24/mdb/types/Lesson-room-link.d.mts +8 -0
- package/dist/Skola24/mdb/types/Lesson-teacher-link.d.mts +8 -0
- package/dist/Skola24/mdb/types/Lesson.d.mts +13 -0
- package/dist/Skola24/mdb/types/Options.d.mts +11 -0
- package/dist/Skola24/mdb/types/Period.d.mts +9 -0
- package/dist/Skola24/mdb/types/Plan-group-link.d.mts +8 -0
- package/dist/Skola24/mdb/types/Plan-period-link.d.mts +8 -0
- package/dist/Skola24/mdb/types/Plan-teacher-link.d.mts +10 -0
- package/dist/Skola24/mdb/types/Plan.d.mts +9 -0
- package/dist/Skola24/mdb/types/Room.d.mts +9 -0
- package/dist/Skola24/mdb/types/Schedule.d.mts +39 -0
- package/dist/Skola24/mdb/types/Subject.d.mts +8 -0
- package/dist/Skola24/mdb/types/Teacher.d.mts +10 -0
- package/dist/Skola24/mdb/types/index.d.mts +23 -0
- package/dist/Skola24/txt/from/calendar-exceptions.mjs +67 -0
- package/dist/Skola24/txt/from/calendar-exceptions.mjs.map +1 -0
- package/dist/Skola24/txt/from/division.mjs +44 -0
- package/dist/Skola24/txt/from/division.mjs.map +1 -0
- package/dist/Skola24/txt/from/index.mjs +12 -0
- package/dist/Skola24/txt/from/index.mjs.map +1 -0
- package/dist/Skola24/txt/from/period.mjs +96 -0
- package/dist/Skola24/txt/from/period.mjs.map +1 -0
- package/dist/Skola24/txt/from/schedules.d.mts +18 -0
- package/dist/Skola24/txt/from/schedules.mjs +274 -0
- package/dist/Skola24/txt/from/schedules.mjs.map +1 -0
- package/dist/Skola24/txt/from/util.mjs +23 -0
- package/dist/Skola24/txt/from/util.mjs.map +1 -0
- package/dist/Skola24/txt/index.d.mts +29 -0
- package/dist/Skola24/txt/index.mjs +12 -0
- package/dist/Skola24/txt/index.mjs.map +1 -0
- package/dist/Skola24/txt/to/index.d.mts +11 -0
- package/dist/Skola24/txt/to/index.mjs +10 -0
- package/dist/Skola24/txt/to/index.mjs.map +1 -0
- package/dist/Skola24/txt/to/schedules.mjs +290 -0
- package/dist/Skola24/txt/to/schedules.mjs.map +1 -0
- package/dist/Skola24/txt/types/index.d.mts +154 -0
- package/dist/common/constants.mjs +8 -0
- package/dist/common/constants.mjs.map +1 -0
- package/dist/common/functions.mjs +61 -0
- package/dist/common/functions.mjs.map +1 -0
- package/dist/common/get-date.mjs +15 -0
- package/dist/common/get-date.mjs.map +1 -0
- package/dist/common/make-chainable/index.mjs +36 -0
- package/dist/common/make-chainable/index.mjs.map +1 -0
- package/dist/common/types.d.mts +38 -0
- package/dist/core/from/configurations.mjs +12 -0
- package/dist/core/from/configurations.mjs.map +1 -0
- package/dist/core/from/courses.mjs +12 -0
- package/dist/core/from/courses.mjs.map +1 -0
- package/dist/core/from/events.mjs +13 -0
- package/dist/core/from/events.mjs.map +1 -0
- package/dist/core/from/exceptions.mjs +12 -0
- package/dist/core/from/exceptions.mjs.map +1 -0
- package/dist/core/from/groups.mjs +12 -0
- package/dist/core/from/groups.mjs.map +1 -0
- package/dist/core/from/index.mjs +23 -0
- package/dist/core/from/index.mjs.map +1 -0
- package/dist/core/from/linked-events-sets.mjs +12 -0
- package/dist/core/from/linked-events-sets.mjs.map +1 -0
- package/dist/core/from/locations.mjs +12 -0
- package/dist/core/from/locations.mjs.map +1 -0
- package/dist/core/from/locked-times.mjs +12 -0
- package/dist/core/from/locked-times.mjs.map +1 -0
- package/dist/core/from/periods.mjs +12 -0
- package/dist/core/from/periods.mjs.map +1 -0
- package/dist/core/from/persons.mjs +12 -0
- package/dist/core/from/persons.mjs.map +1 -0
- package/dist/core/from/root-intervals.mjs +12 -0
- package/dist/core/from/root-intervals.mjs.map +1 -0
- package/dist/core/from/schedules.d.mts +7 -0
- package/dist/core/from/schedules.mjs +38 -0
- package/dist/core/from/schedules.mjs.map +1 -0
- package/dist/core/from/settings.mjs +21 -0
- package/dist/core/from/settings.mjs.map +1 -0
- package/dist/core/from/syllabuses.mjs +13 -0
- package/dist/core/from/syllabuses.mjs.map +1 -0
- package/dist/core/from/teachers.mjs +12 -0
- package/dist/core/from/teachers.mjs.map +1 -0
- package/dist/core/index.d.mts +38 -0
- package/dist/core/index.mjs +16 -0
- package/dist/core/index.mjs.map +1 -0
- package/dist/core/interfaces/index.d.mts +23 -0
- package/dist/core/interfaces/index.mjs +6 -0
- package/dist/core/interfaces/other/companies.d.mts +147 -0
- package/dist/core/interfaces/other/companies.mjs +9 -0
- package/dist/core/interfaces/other/companies.mjs.map +1 -0
- package/dist/core/interfaces/other/etc.d.mts +19 -0
- package/dist/core/interfaces/other/index.d.mts +6 -0
- package/dist/core/interfaces/other/integrations.d.mts +17 -0
- package/dist/core/interfaces/other/operations.d.mts +36 -0
- package/dist/core/interfaces/other/policies.d.mts +31 -0
- package/dist/core/interfaces/other/sync-logs.d.mts +21 -0
- package/dist/core/interfaces/other/users.d.mts +35 -0
- package/dist/core/interfaces/vertices/companies.d.mts +8 -0
- package/dist/core/interfaces/vertices/configurations.d.mts +58 -0
- package/dist/core/interfaces/vertices/conversations.d.mts +88 -0
- package/dist/core/interfaces/vertices/courses.d.mts +65 -0
- package/dist/core/interfaces/vertices/division-settings.d.mts +55 -0
- package/dist/core/interfaces/vertices/divisions.d.mts +31 -0
- package/dist/core/interfaces/vertices/events.d.mts +106 -0
- package/dist/core/interfaces/vertices/exceptions.d.mts +74 -0
- package/dist/core/interfaces/vertices/generations.d.mts +23 -0
- package/dist/core/interfaces/vertices/groups.d.mts +51 -0
- package/dist/core/interfaces/vertices/index.d.mts +237 -0
- package/dist/core/interfaces/vertices/index.mjs +3 -0
- package/dist/core/interfaces/vertices/linked-events-sets.d.mts +19 -0
- package/dist/core/interfaces/vertices/locations.d.mts +22 -0
- package/dist/core/interfaces/vertices/locked-times.d.mts +37 -0
- package/dist/core/interfaces/vertices/messages.d.mts +27 -0
- package/dist/core/interfaces/vertices/periods.d.mts +16 -0
- package/dist/core/interfaces/vertices/persons.d.mts +32 -0
- package/dist/core/interfaces/vertices/properties/belongs-to.d.mts +11 -0
- package/dist/core/interfaces/vertices/properties/coalesced.d.mts +8 -0
- package/dist/core/interfaces/vertices/properties/days.d.mts +9 -0
- package/dist/core/interfaces/vertices/properties/index.d.mts +15 -0
- package/dist/core/interfaces/vertices/properties/intervals.d.mts +10 -0
- package/dist/core/interfaces/vertices/properties/maximum-schedule-span.d.mts +19 -0
- package/dist/core/interfaces/vertices/properties/min-break-length.d.mts +5 -0
- package/dist/core/interfaces/vertices/properties/planned-scheduled-duration.d.mts +13 -0
- package/dist/core/interfaces/vertices/properties/species.d.mts +9 -0
- package/dist/core/interfaces/vertices/properties/tags.d.mts +9 -0
- package/dist/core/interfaces/vertices/properties/week.d.mts +22 -0
- package/dist/core/interfaces/vertices/properties/week.mjs +6 -0
- package/dist/core/interfaces/vertices/properties/week.mjs.map +1 -0
- package/dist/core/interfaces/vertices/root-intervals.d.mts +14 -0
- package/dist/core/interfaces/vertices/syllabuses.d.mts +20 -0
- package/dist/core/interfaces/vertices/teachers.d.mts +41 -0
- package/dist/core/interfaces/vertices/threads.d.mts +33 -0
- package/dist/core/interfaces/vertices/users.d.mts +11 -0
- package/dist/core/interfaces/vertices/util/common.d.mts +28 -0
- package/dist/core/interfaces/vertices/util/custom-vertex-export/assert-no-invalid-expand-keys.d.mts +16 -0
- package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.mts +34 -0
- package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.mts +52 -0
- package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.mts +65 -0
- package/dist/core/interfaces/vertices/util/edges.d.mts +123 -0
- package/dist/core/interfaces/vertices/util/index.d.mts +6 -0
- package/dist/core/interfaces/vertices/util/keys-of.d.mts +26 -0
- package/dist/core/interfaces/vertices/util/serialized-vertex-export.d.mts +11 -0
- package/dist/core/interfaces/vertices/util/util.d.mts +79 -0
- package/dist/core/interfaces/vertices/util/vertex-query/index.d.mts +50 -0
- package/dist/core/interfaces/vertices/util/vertex-query/util.d.mts +13 -0
- package/dist/core/interfaces/vertices/util/vertex.d.mts +68 -0
- package/dist/core/interfaces/vertices/vertex-query.d.mts +115 -0
- package/dist/core/interfaces/vertices/vertex-query.mjs +118 -0
- package/dist/core/interfaces/vertices/vertex-query.mjs.map +1 -0
- package/dist/core/to/configurations.mjs +16 -0
- package/dist/core/to/configurations.mjs.map +1 -0
- package/dist/core/to/courses.mjs +40 -0
- package/dist/core/to/courses.mjs.map +1 -0
- package/dist/core/to/division.mjs +10 -0
- package/dist/core/to/division.mjs.map +1 -0
- package/dist/core/to/events.mjs +42 -0
- package/dist/core/to/events.mjs.map +1 -0
- package/dist/core/to/exceptions.mjs +29 -0
- package/dist/core/to/exceptions.mjs.map +1 -0
- package/dist/core/to/groups.mjs +25 -0
- package/dist/core/to/groups.mjs.map +1 -0
- package/dist/core/to/index.d.mts +9 -0
- package/dist/core/to/index.mjs +10 -0
- package/dist/core/to/index.mjs.map +1 -0
- package/dist/core/to/linked-events-sets.mjs +17 -0
- package/dist/core/to/linked-events-sets.mjs.map +1 -0
- package/dist/core/to/locations.mjs +21 -0
- package/dist/core/to/locations.mjs.map +1 -0
- package/dist/core/to/locked-times.mjs +20 -0
- package/dist/core/to/locked-times.mjs.map +1 -0
- package/dist/core/to/periods.mjs +16 -0
- package/dist/core/to/periods.mjs.map +1 -0
- package/dist/core/to/persons.mjs +17 -0
- package/dist/core/to/persons.mjs.map +1 -0
- package/dist/core/to/root-intervals.mjs +16 -0
- package/dist/core/to/root-intervals.mjs.map +1 -0
- package/dist/core/to/schedules.d.mts +47 -0
- package/dist/core/to/schedules.mjs +42 -0
- package/dist/core/to/schedules.mjs.map +1 -0
- package/dist/core/to/settings.mjs +18 -0
- package/dist/core/to/settings.mjs.map +1 -0
- package/dist/core/to/syllabuses.mjs +16 -0
- package/dist/core/to/syllabuses.mjs.map +1 -0
- package/dist/core/to/teachers.mjs +24 -0
- package/dist/core/to/teachers.mjs.map +1 -0
- package/dist/core/to/util.d.mts +10 -0
- package/dist/core/to/util.mjs +24 -0
- package/dist/core/to/util.mjs.map +1 -0
- package/dist/core/types/common/index.d.mts +8 -0
- package/dist/core/types/common/meta.d.mts +15 -0
- package/dist/core/types/index.d.mts +137 -0
- package/dist/core/util.mjs +46 -0
- package/dist/core/util.mjs.map +1 -0
- package/dist/identify/constants/index.d.mts +144 -0
- package/dist/identify/constants/index.mjs +317 -0
- package/dist/identify/constants/index.mjs.map +1 -0
- package/dist/identify/index.d.mts +8 -0
- package/dist/identify/index.mjs +93 -0
- package/dist/identify/index.mjs.map +1 -0
- package/dist/identify/types/index.d.mts +15 -0
- package/dist/index.d.mts +57 -0
- package/dist/index.mjs +22 -0
- package/dist/sdui/from/classes.mjs +8 -0
- package/dist/sdui/from/classes.mjs.map +1 -0
- package/dist/sdui/from/courses.mjs +14 -0
- package/dist/sdui/from/courses.mjs.map +1 -0
- package/dist/sdui/from/holidays.mjs +8 -0
- package/dist/sdui/from/holidays.mjs.map +1 -0
- package/dist/sdui/from/hours.mjs +6 -0
- package/dist/sdui/from/hours.mjs.map +1 -0
- package/dist/sdui/from/index.mjs +30 -0
- package/dist/sdui/from/index.mjs.map +1 -0
- package/dist/sdui/from/lessons.mjs +23 -0
- package/dist/sdui/from/lessons.mjs.map +1 -0
- package/dist/sdui/from/rooms.mjs +11 -0
- package/dist/sdui/from/rooms.mjs.map +1 -0
- package/dist/sdui/from/schedules.d.mts +21 -0
- package/dist/sdui/from/schedules.mjs +24 -0
- package/dist/sdui/from/schedules.mjs.map +1 -0
- package/dist/sdui/from/school-years.mjs +11 -0
- package/dist/sdui/from/school-years.mjs.map +1 -0
- package/dist/sdui/from/subjects.mjs +6 -0
- package/dist/sdui/from/subjects.mjs.map +1 -0
- package/dist/sdui/from/substitution-plans.mjs +10 -0
- package/dist/sdui/from/substitution-plans.mjs.map +1 -0
- package/dist/sdui/from/teachers.mjs +15 -0
- package/dist/sdui/from/teachers.mjs.map +1 -0
- package/dist/sdui/index.d.mts +32 -0
- package/dist/sdui/index.mjs +12 -0
- package/dist/sdui/index.mjs.map +1 -0
- package/dist/sdui/to/classes.mjs +10 -0
- package/dist/sdui/to/classes.mjs.map +1 -0
- package/dist/sdui/to/courses.mjs +16 -0
- package/dist/sdui/to/courses.mjs.map +1 -0
- package/dist/sdui/to/holidays.mjs +16 -0
- package/dist/sdui/to/holidays.mjs.map +1 -0
- package/dist/sdui/to/hours.mjs +15 -0
- package/dist/sdui/to/hours.mjs.map +1 -0
- package/dist/sdui/to/index.d.mts +22 -0
- package/dist/sdui/to/index.mjs +30 -0
- package/dist/sdui/to/index.mjs.map +1 -0
- package/dist/sdui/to/lessons.mjs +24 -0
- package/dist/sdui/to/lessons.mjs.map +1 -0
- package/dist/sdui/to/rooms.mjs +13 -0
- package/dist/sdui/to/rooms.mjs.map +1 -0
- package/dist/sdui/to/schedules.mjs +26 -0
- package/dist/sdui/to/schedules.mjs.map +1 -0
- package/dist/sdui/to/school-years.mjs +18 -0
- package/dist/sdui/to/school-years.mjs.map +1 -0
- package/dist/sdui/to/subjects.mjs +8 -0
- package/dist/sdui/to/subjects.mjs.map +1 -0
- package/dist/sdui/to/substitution-plans.mjs +46 -0
- package/dist/sdui/to/substitution-plans.mjs.map +1 -0
- package/dist/sdui/to/teachers.mjs +20 -0
- package/dist/sdui/to/teachers.mjs.map +1 -0
- package/dist/sdui/types/classes.d.mts +8 -0
- package/dist/sdui/types/courses.d.mts +12 -0
- package/dist/sdui/types/holidays.d.mts +10 -0
- package/dist/sdui/types/hours.d.mts +10 -0
- package/dist/sdui/types/index.d.mts +31 -0
- package/dist/sdui/types/lessons.d.mts +13 -0
- package/dist/sdui/types/rooms.d.mts +9 -0
- package/dist/sdui/types/schedules.d.mts +27 -0
- package/dist/sdui/types/school-years.d.mts +9 -0
- package/dist/sdui/types/subjects.d.mts +9 -0
- package/dist/sdui/types/substitution-plans.d.mts +30 -0
- package/dist/sdui/types/teachers.d.mts +10 -0
- package/dist/vKlass/from/index.mjs +8 -0
- package/dist/vKlass/from/index.mjs.map +1 -0
- package/dist/vKlass/from/schedule.d.mts +24 -0
- package/dist/vKlass/from/schedule.mjs +71 -0
- package/dist/vKlass/from/schedule.mjs.map +1 -0
- package/dist/vKlass/index.d.mts +13 -0
- package/dist/vKlass/index.mjs +12 -0
- package/dist/vKlass/index.mjs.map +1 -0
- package/dist/vKlass/to/index.d.mts +9 -0
- package/dist/vKlass/to/index.mjs +10 -0
- package/dist/vKlass/to/index.mjs.map +1 -0
- package/dist/vKlass/to/schedules.d.mts +14 -0
- package/dist/vKlass/to/schedules.mjs +82 -0
- package/dist/vKlass/to/schedules.mjs.map +1 -0
- package/dist/vKlass/types/index.d.mts +53 -0
- package/package.json +2 -1
- package/dist/Additio/from/courses.js +0 -28
- package/dist/Additio/from/courses.js.map +0 -1
- package/dist/Additio/from/events.js +0 -61
- package/dist/Additio/from/events.js.map +0 -1
- package/dist/Additio/from/groups.js +0 -14
- package/dist/Additio/from/groups.js.map +0 -1
- package/dist/Additio/from/index.js +0 -8
- package/dist/Additio/from/index.js.map +0 -1
- package/dist/Additio/from/locations.js +0 -13
- package/dist/Additio/from/locations.js.map +0 -1
- package/dist/Additio/from/persons.js +0 -30
- package/dist/Additio/from/persons.js.map +0 -1
- package/dist/Additio/from/schedules.d.ts +0 -38
- package/dist/Additio/from/schedules.js +0 -36
- package/dist/Additio/from/schedules.js.map +0 -1
- package/dist/Additio/from/teachers.js +0 -25
- package/dist/Additio/from/teachers.js.map +0 -1
- package/dist/Additio/index.d.ts +0 -14
- package/dist/Additio/index.js +0 -12
- package/dist/Additio/index.js.map +0 -1
- package/dist/Additio/to/index.d.ts +0 -21
- package/dist/Additio/to/index.js +0 -10
- package/dist/Additio/to/index.js.map +0 -1
- package/dist/Additio/to/schedules.js +0 -111
- package/dist/Additio/to/schedules.js.map +0 -1
- package/dist/Additio/types/course-sections.d.ts +0 -20
- package/dist/Additio/types/courses.d.ts +0 -17
- package/dist/Additio/types/index.d.ts +0 -27
- package/dist/Additio/types/lessons.d.ts +0 -27
- package/dist/Additio/types/options.d.ts +0 -16
- package/dist/Additio/types/primary-groups.d.ts +0 -30
- package/dist/Additio/types/rooms.d.ts +0 -12
- package/dist/Additio/types/schedule-groups.d.ts +0 -23
- package/dist/Additio/types/schedules.d.ts +0 -27
- package/dist/Additio/types/schools.d.ts +0 -11
- package/dist/Additio/types/users.d.ts +0 -20
- package/dist/Admentum/from/courses.js +0 -32
- package/dist/Admentum/from/courses.js.map +0 -1
- package/dist/Admentum/from/events.js +0 -62
- package/dist/Admentum/from/events.js.map +0 -1
- package/dist/Admentum/from/groups.js +0 -14
- package/dist/Admentum/from/groups.js.map +0 -1
- package/dist/Admentum/from/index.js +0 -8
- package/dist/Admentum/from/index.js.map +0 -1
- package/dist/Admentum/from/locations.js +0 -13
- package/dist/Admentum/from/locations.js.map +0 -1
- package/dist/Admentum/from/persons.js +0 -30
- package/dist/Admentum/from/persons.js.map +0 -1
- package/dist/Admentum/from/schedules.d.ts +0 -38
- package/dist/Admentum/from/schedules.js +0 -37
- package/dist/Admentum/from/schedules.js.map +0 -1
- package/dist/Admentum/from/teachers.js +0 -25
- package/dist/Admentum/from/teachers.js.map +0 -1
- package/dist/Admentum/index.d.ts +0 -14
- package/dist/Admentum/index.js +0 -12
- package/dist/Admentum/index.js.map +0 -1
- package/dist/Admentum/to/index.d.ts +0 -19
- package/dist/Admentum/to/index.js +0 -10
- package/dist/Admentum/to/index.js.map +0 -1
- package/dist/Admentum/to/schedules.js +0 -94
- package/dist/Admentum/to/schedules.js.map +0 -1
- package/dist/Admentum/types/course-sections.d.ts +0 -20
- package/dist/Admentum/types/courses.d.ts +0 -17
- package/dist/Admentum/types/index.d.ts +0 -25
- package/dist/Admentum/types/lessons.d.ts +0 -27
- package/dist/Admentum/types/primary-groups.d.ts +0 -30
- package/dist/Admentum/types/rooms.d.ts +0 -12
- package/dist/Admentum/types/schedule-groups.d.ts +0 -23
- package/dist/Admentum/types/schedules.d.ts +0 -27
- package/dist/Admentum/types/schools.d.ts +0 -11
- package/dist/Admentum/types/users.d.ts +0 -20
- package/dist/Excel/index.d.ts +0 -308
- package/dist/Excel/index.js +0 -13
- package/dist/Excel/index.js.map +0 -1
- package/dist/Excel/v1/from/index.js +0 -289
- package/dist/Excel/v1/from/index.js.map +0 -1
- package/dist/Excel/v1/index.d.ts +0 -239
- package/dist/Excel/v1/index.js +0 -10
- package/dist/Excel/v1/index.js.map +0 -1
- package/dist/Excel/v1/types/index.d.ts +0 -44
- package/dist/Excel/v2/from/index.js +0 -537
- package/dist/Excel/v2/from/index.js.map +0 -1
- package/dist/Excel/v2/index.d.ts +0 -303
- package/dist/Excel/v2/index.js +0 -10
- package/dist/Excel/v2/index.js.map +0 -1
- package/dist/Excel/v2/types/index.d.ts +0 -70
- package/dist/IdunSoft/from/courses.js +0 -16
- package/dist/IdunSoft/from/courses.js.map +0 -1
- package/dist/IdunSoft/from/events.js +0 -59
- package/dist/IdunSoft/from/events.js.map +0 -1
- package/dist/IdunSoft/from/groups.js +0 -17
- package/dist/IdunSoft/from/groups.js.map +0 -1
- package/dist/IdunSoft/from/index.js +0 -8
- package/dist/IdunSoft/from/index.js.map +0 -1
- package/dist/IdunSoft/from/locations.js +0 -16
- package/dist/IdunSoft/from/locations.js.map +0 -1
- package/dist/IdunSoft/from/schedules.d.ts +0 -23
- package/dist/IdunSoft/from/schedules.js +0 -20
- package/dist/IdunSoft/from/schedules.js.map +0 -1
- package/dist/IdunSoft/from/teachers.js +0 -16
- package/dist/IdunSoft/from/teachers.js.map +0 -1
- package/dist/IdunSoft/index.d.ts +0 -14
- package/dist/IdunSoft/index.js +0 -12
- package/dist/IdunSoft/index.js.map +0 -1
- package/dist/IdunSoft/to/index.d.ts +0 -9
- package/dist/IdunSoft/to/index.js +0 -10
- package/dist/IdunSoft/to/index.js.map +0 -1
- package/dist/IdunSoft/to/schedules.js +0 -58
- package/dist/IdunSoft/to/schedules.js.map +0 -1
- package/dist/IdunSoft/types/courses.d.ts +0 -8
- package/dist/IdunSoft/types/events.d.ts +0 -26
- package/dist/IdunSoft/types/groups.d.ts +0 -8
- package/dist/IdunSoft/types/index.d.ts +0 -20
- package/dist/IdunSoft/types/locations.d.ts +0 -8
- package/dist/IdunSoft/types/schedules.d.ts +0 -17
- package/dist/IdunSoft/types/teachers.d.ts +0 -8
- package/dist/InfoMentor/index.d.ts +0 -10
- package/dist/InfoMentor/index.js +0 -10
- package/dist/InfoMentor/index.js.map +0 -1
- package/dist/InfoMentor/to/index.d.ts +0 -9
- package/dist/InfoMentor/to/index.js +0 -10
- package/dist/InfoMentor/to/index.js.map +0 -1
- package/dist/InfoMentor/to/schedules.js +0 -58
- package/dist/InfoMentor/to/schedules.js.map +0 -1
- package/dist/InfoMentor/types/events.d.ts +0 -13
- package/dist/InfoMentor/types/index.d.ts +0 -9
- package/dist/PlanDigital/from/index.js +0 -8
- package/dist/PlanDigital/from/index.js.map +0 -1
- package/dist/PlanDigital/from/schedules.js +0 -72
- package/dist/PlanDigital/from/schedules.js.map +0 -1
- package/dist/PlanDigital/index.d.ts +0 -128
- package/dist/PlanDigital/index.js +0 -10
- package/dist/PlanDigital/index.js.map +0 -1
- package/dist/PlanDigital/types/index.d.ts +0 -34
- package/dist/Quiculum/file/index.d.ts +0 -9
- package/dist/Quiculum/file/index.js +0 -10
- package/dist/Quiculum/file/index.js.map +0 -1
- package/dist/Quiculum/file/to/index.d.ts +0 -20
- package/dist/Quiculum/file/to/index.js +0 -10
- package/dist/Quiculum/file/to/index.js.map +0 -1
- package/dist/Quiculum/file/to/schedules.js +0 -91
- package/dist/Quiculum/file/to/schedules.js.map +0 -1
- package/dist/Quiculum/index.d.ts +0 -11
- package/dist/Quiculum/index.js +0 -11
- package/dist/Quiculum/index.js.map +0 -1
- package/dist/RS/from/division.d.ts +0 -7
- package/dist/RS/from/division.js +0 -18
- package/dist/RS/from/division.js.map +0 -1
- package/dist/RS/from/index.js +0 -12
- package/dist/RS/from/index.js.map +0 -1
- package/dist/RS/from/schedules.d.ts +0 -8
- package/dist/RS/from/schedules.js +0 -40
- package/dist/RS/from/schedules.js.map +0 -1
- package/dist/RS/index.d.ts +0 -18
- package/dist/RS/index.js +0 -12
- package/dist/RS/index.js.map +0 -1
- package/dist/RS/make-connected.d.ts +0 -23
- package/dist/RS/make-connected.js +0 -216
- package/dist/RS/make-connected.js.map +0 -1
- package/dist/RS/to/index.js +0 -8
- package/dist/RS/to/index.js.map +0 -1
- package/dist/RS/to/initial-configuration.js +0 -43
- package/dist/RS/to/initial-configuration.js.map +0 -1
- package/dist/RS/to/input/default.js +0 -29
- package/dist/RS/to/input/default.js.map +0 -1
- package/dist/RS/to/input/dependencies.js +0 -32
- package/dist/RS/to/input/dependencies.js.map +0 -1
- package/dist/RS/to/input/events.js +0 -102
- package/dist/RS/to/input/events.js.map +0 -1
- package/dist/RS/to/input/groups.js +0 -32
- package/dist/RS/to/input/groups.js.map +0 -1
- package/dist/RS/to/input/individuals.js +0 -46
- package/dist/RS/to/input/individuals.js.map +0 -1
- package/dist/RS/to/input/input.js +0 -61
- package/dist/RS/to/input/input.js.map +0 -1
- package/dist/RS/to/input/intervals.js +0 -131
- package/dist/RS/to/input/intervals.js.map +0 -1
- package/dist/RS/to/input/linked-events-sets.js +0 -96
- package/dist/RS/to/input/linked-events-sets.js.map +0 -1
- package/dist/RS/to/input/locked-times.js +0 -91
- package/dist/RS/to/input/locked-times.js.map +0 -1
- package/dist/RS/to/input/periods.js +0 -58
- package/dist/RS/to/input/periods.js.map +0 -1
- package/dist/RS/to/input/settings.js +0 -13
- package/dist/RS/to/input/settings.js.map +0 -1
- package/dist/RS/to/input/teachers.js +0 -32
- package/dist/RS/to/input/teachers.js.map +0 -1
- package/dist/RS/to/input/util/parse-days.js +0 -10
- package/dist/RS/to/input/util/parse-days.js.map +0 -1
- package/dist/RS/to/input/util/parse-group-references.js +0 -50
- package/dist/RS/to/input/util/parse-group-references.js.map +0 -1
- package/dist/RS/to/input/util/parse-location-references.js +0 -24
- package/dist/RS/to/input/util/parse-location-references.js.map +0 -1
- package/dist/RS/to/input/util/parse-max-working-hours.js +0 -14
- package/dist/RS/to/input/util/parse-max-working-hours.js.map +0 -1
- package/dist/RS/to/input/util/parse-minimum-break-length.js +0 -19
- package/dist/RS/to/input/util/parse-minimum-break-length.js.map +0 -1
- package/dist/RS/to/input/util/util.js +0 -101
- package/dist/RS/to/input/util/util.js.map +0 -1
- package/dist/RS/to/schedules.d.ts +0 -7
- package/dist/RS/to/schedules.js +0 -51
- package/dist/RS/to/schedules.js.map +0 -1
- package/dist/RS/types/algorithm-parameters.d.ts +0 -17
- package/dist/RS/types/configurations.d.ts +0 -10
- package/dist/RS/types/event-configuration.d.ts +0 -20
- package/dist/RS/types/index.d.ts +0 -21
- package/dist/RS/types/schedule-data.d.ts +0 -20
- package/dist/RS/types/to.d.ts +0 -65
- package/dist/RS/types/to.js +0 -6
- package/dist/RS/types/to.js.map +0 -1
- package/dist/SS12000/from/activities.js +0 -36
- 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 -31
- 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 -36
- package/dist/SS12000/index.js +0 -12
- package/dist/SS12000/index.js.map +0 -1
- package/dist/SS12000/to/activities.js +0 -63
- package/dist/SS12000/to/activities.js.map +0 -1
- package/dist/SS12000/to/calendar-events.js +0 -53
- package/dist/SS12000/to/calendar-events.js.map +0 -1
- package/dist/SS12000/to/common.js +0 -25
- package/dist/SS12000/to/common.js.map +0 -1
- package/dist/SS12000/to/duties.js +0 -45
- package/dist/SS12000/to/duties.js.map +0 -1
- package/dist/SS12000/to/groups.js +0 -49
- package/dist/SS12000/to/groups.js.map +0 -1
- package/dist/SS12000/to/index.d.ts +0 -56
- package/dist/SS12000/to/index.js +0 -24
- package/dist/SS12000/to/index.js.map +0 -1
- package/dist/SS12000/to/persons.js +0 -40
- package/dist/SS12000/to/persons.js.map +0 -1
- package/dist/SS12000/to/resources.js +0 -27
- package/dist/SS12000/to/resources.js.map +0 -1
- package/dist/SS12000/to/rooms.js +0 -32
- package/dist/SS12000/to/rooms.js.map +0 -1
- package/dist/SS12000/to/syllabuses.js +0 -34
- 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/SchoolSoft/api/from/index.js +0 -8
- package/dist/SchoolSoft/api/from/index.js.map +0 -1
- package/dist/SchoolSoft/api/from/schedules.js +0 -167
- package/dist/SchoolSoft/api/from/schedules.js.map +0 -1
- package/dist/SchoolSoft/api/index.d.ts +0 -463
- package/dist/SchoolSoft/api/index.js +0 -10
- package/dist/SchoolSoft/api/index.js.map +0 -1
- package/dist/SchoolSoft/api/types/group.d.ts +0 -12
- package/dist/SchoolSoft/api/types/index.d.ts +0 -19
- package/dist/SchoolSoft/api/types/lesson.d.ts +0 -9
- package/dist/SchoolSoft/api/types/location.d.ts +0 -8
- package/dist/SchoolSoft/api/types/persons.d.ts +0 -31
- package/dist/SchoolSoft/api/types/schedule.d.ts +0 -17
- package/dist/SchoolSoft/api/types/teacher.d.ts +0 -13
- package/dist/SchoolSoft/file/from/index.js +0 -8
- package/dist/SchoolSoft/file/from/index.js.map +0 -1
- package/dist/SchoolSoft/file/from/schedules.js +0 -134
- package/dist/SchoolSoft/file/from/schedules.js.map +0 -1
- package/dist/SchoolSoft/file/index.d.ts +0 -15
- package/dist/SchoolSoft/file/index.js +0 -12
- package/dist/SchoolSoft/file/index.js.map +0 -1
- package/dist/SchoolSoft/file/to/index.d.ts +0 -13
- package/dist/SchoolSoft/file/to/index.js +0 -10
- package/dist/SchoolSoft/file/to/index.js.map +0 -1
- package/dist/SchoolSoft/file/to/schedules.js +0 -107
- package/dist/SchoolSoft/file/to/schedules.js.map +0 -1
- package/dist/SchoolSoft/file/types/events.d.ts +0 -27
- package/dist/SchoolSoft/file/types/index.d.ts +0 -17
- package/dist/SchoolSoft/file/types/persons.d.ts +0 -31
- package/dist/SchoolSoft/index.d.ts +0 -20
- package/dist/SchoolSoft/index.js +0 -14
- package/dist/SchoolSoft/index.js.map +0 -1
- package/dist/Schoolity/index.d.ts +0 -10
- package/dist/Schoolity/index.js +0 -10
- package/dist/Schoolity/index.js.map +0 -1
- package/dist/Schoolity/txt/index.d.ts +0 -10
- package/dist/Schoolity/txt/index.js +0 -10
- package/dist/Schoolity/txt/index.js.map +0 -1
- package/dist/Schoolity/txt/to/index.d.ts +0 -10
- package/dist/Schoolity/txt/to/index.js +0 -10
- package/dist/Schoolity/txt/to/index.js.map +0 -1
- package/dist/Schoolity/txt/to/schedules.js +0 -331
- package/dist/Schoolity/txt/to/schedules.js.map +0 -1
- package/dist/Schoolity/txt/types/index.d.ts +0 -119
- package/dist/Skola24/index.d.ts +0 -13
- package/dist/Skola24/index.js +0 -12
- package/dist/Skola24/index.js.map +0 -1
- package/dist/Skola24/mdb/from/course-and-events.js +0 -241
- package/dist/Skola24/mdb/from/course-and-events.js.map +0 -1
- package/dist/Skola24/mdb/from/groups.js +0 -12
- package/dist/Skola24/mdb/from/groups.js.map +0 -1
- package/dist/Skola24/mdb/from/index.js +0 -8
- package/dist/Skola24/mdb/from/index.js.map +0 -1
- package/dist/Skola24/mdb/from/locations.js +0 -11
- package/dist/Skola24/mdb/from/locations.js.map +0 -1
- package/dist/Skola24/mdb/from/schedule.d.ts +0 -27
- package/dist/Skola24/mdb/from/schedule.js +0 -97
- package/dist/Skola24/mdb/from/schedule.js.map +0 -1
- package/dist/Skola24/mdb/from/teachers.js +0 -11
- package/dist/Skola24/mdb/from/teachers.js.map +0 -1
- package/dist/Skola24/mdb/index.d.ts +0 -12
- package/dist/Skola24/mdb/index.js +0 -10
- package/dist/Skola24/mdb/index.js.map +0 -1
- package/dist/Skola24/mdb/types/Course.d.ts +0 -10
- package/dist/Skola24/mdb/types/Group-group-link.d.ts +0 -8
- package/dist/Skola24/mdb/types/Group.d.ts +0 -9
- package/dist/Skola24/mdb/types/Lesson-group-link.d.ts +0 -8
- package/dist/Skola24/mdb/types/Lesson-period-link.d.ts +0 -8
- package/dist/Skola24/mdb/types/Lesson-room-link.d.ts +0 -8
- package/dist/Skola24/mdb/types/Lesson-teacher-link.d.ts +0 -8
- package/dist/Skola24/mdb/types/Lesson.d.ts +0 -13
- package/dist/Skola24/mdb/types/Options.d.ts +0 -11
- package/dist/Skola24/mdb/types/Period.d.ts +0 -9
- package/dist/Skola24/mdb/types/Plan-group-link.d.ts +0 -8
- package/dist/Skola24/mdb/types/Plan-period-link.d.ts +0 -8
- package/dist/Skola24/mdb/types/Plan-teacher-link.d.ts +0 -10
- package/dist/Skola24/mdb/types/Plan.d.ts +0 -9
- package/dist/Skola24/mdb/types/Room.d.ts +0 -9
- package/dist/Skola24/mdb/types/Schedule.d.ts +0 -39
- package/dist/Skola24/mdb/types/Subject.d.ts +0 -8
- package/dist/Skola24/mdb/types/Teacher.d.ts +0 -10
- package/dist/Skola24/mdb/types/index.d.ts +0 -23
- package/dist/Skola24/txt/from/calendar-exceptions.js +0 -68
- package/dist/Skola24/txt/from/calendar-exceptions.js.map +0 -1
- package/dist/Skola24/txt/from/division.js +0 -44
- package/dist/Skola24/txt/from/division.js.map +0 -1
- package/dist/Skola24/txt/from/index.js +0 -12
- package/dist/Skola24/txt/from/index.js.map +0 -1
- package/dist/Skola24/txt/from/period.js +0 -98
- package/dist/Skola24/txt/from/period.js.map +0 -1
- package/dist/Skola24/txt/from/schedules.d.ts +0 -16
- package/dist/Skola24/txt/from/schedules.js +0 -277
- package/dist/Skola24/txt/from/schedules.js.map +0 -1
- package/dist/Skola24/txt/from/util.js +0 -17
- package/dist/Skola24/txt/from/util.js.map +0 -1
- package/dist/Skola24/txt/index.d.ts +0 -28
- package/dist/Skola24/txt/index.js +0 -12
- package/dist/Skola24/txt/index.js.map +0 -1
- package/dist/Skola24/txt/to/index.d.ts +0 -10
- package/dist/Skola24/txt/to/index.js +0 -10
- package/dist/Skola24/txt/to/index.js.map +0 -1
- package/dist/Skola24/txt/to/schedules.js +0 -297
- package/dist/Skola24/txt/to/schedules.js.map +0 -1
- package/dist/Skola24/txt/types/index.d.ts +0 -141
- package/dist/common/constants.js +0 -8
- package/dist/common/constants.js.map +0 -1
- package/dist/common/functions.js +0 -61
- package/dist/common/functions.js.map +0 -1
- package/dist/common/get-date.js +0 -15
- package/dist/common/get-date.js.map +0 -1
- package/dist/common/make-chainable/index.js +0 -36
- package/dist/common/make-chainable/index.js.map +0 -1
- package/dist/common/types.d.ts +0 -42
- package/dist/core/from/configurations.js +0 -12
- package/dist/core/from/configurations.js.map +0 -1
- package/dist/core/from/courses.js +0 -12
- package/dist/core/from/courses.js.map +0 -1
- package/dist/core/from/events.js +0 -13
- package/dist/core/from/events.js.map +0 -1
- package/dist/core/from/exceptions.js +0 -12
- package/dist/core/from/exceptions.js.map +0 -1
- package/dist/core/from/groups.js +0 -12
- package/dist/core/from/groups.js.map +0 -1
- package/dist/core/from/index.js +0 -23
- package/dist/core/from/index.js.map +0 -1
- package/dist/core/from/locations.js +0 -12
- package/dist/core/from/locations.js.map +0 -1
- package/dist/core/from/locked-times.js +0 -12
- package/dist/core/from/locked-times.js.map +0 -1
- package/dist/core/from/overlap-groups.js +0 -12
- package/dist/core/from/overlap-groups.js.map +0 -1
- package/dist/core/from/periods.js +0 -12
- package/dist/core/from/periods.js.map +0 -1
- package/dist/core/from/persons.js +0 -12
- package/dist/core/from/persons.js.map +0 -1
- package/dist/core/from/root-intervals.js +0 -12
- package/dist/core/from/root-intervals.js.map +0 -1
- package/dist/core/from/schedules.d.ts +0 -7
- package/dist/core/from/schedules.js +0 -38
- package/dist/core/from/schedules.js.map +0 -1
- package/dist/core/from/settings.js +0 -21
- package/dist/core/from/settings.js.map +0 -1
- package/dist/core/from/syllabuses.js +0 -13
- package/dist/core/from/syllabuses.js.map +0 -1
- package/dist/core/from/teachers.js +0 -12
- package/dist/core/from/teachers.js.map +0 -1
- package/dist/core/index.d.ts +0 -37
- package/dist/core/index.js +0 -16
- package/dist/core/index.js.map +0 -1
- package/dist/core/interfaces/index.js +0 -6
- package/dist/core/interfaces/other/companies.d.ts +0 -133
- package/dist/core/interfaces/other/companies.js +0 -9
- package/dist/core/interfaces/other/companies.js.map +0 -1
- package/dist/core/interfaces/other/etc.d.ts +0 -19
- package/dist/core/interfaces/other/integrations.d.ts +0 -17
- package/dist/core/interfaces/other/operations.d.ts +0 -35
- package/dist/core/interfaces/other/policies.d.ts +0 -31
- package/dist/core/interfaces/other/sync-logs.d.ts +0 -21
- package/dist/core/interfaces/other/users.d.ts +0 -35
- package/dist/core/interfaces/vertices/companies.d.ts +0 -7
- package/dist/core/interfaces/vertices/configurations.d.ts +0 -57
- package/dist/core/interfaces/vertices/conversations.d.ts +0 -32
- package/dist/core/interfaces/vertices/courses.d.ts +0 -67
- package/dist/core/interfaces/vertices/division-settings.d.ts +0 -57
- package/dist/core/interfaces/vertices/divisions.d.ts +0 -30
- package/dist/core/interfaces/vertices/events.d.ts +0 -107
- package/dist/core/interfaces/vertices/exceptions.d.ts +0 -73
- package/dist/core/interfaces/vertices/generations.d.ts +0 -21
- package/dist/core/interfaces/vertices/groups.d.ts +0 -52
- package/dist/core/interfaces/vertices/index.d.ts +0 -244
- package/dist/core/interfaces/vertices/index.js +0 -3
- package/dist/core/interfaces/vertices/linked-events-sets.d.ts +0 -18
- package/dist/core/interfaces/vertices/locations.d.ts +0 -21
- package/dist/core/interfaces/vertices/locked-times.d.ts +0 -35
- package/dist/core/interfaces/vertices/messages.d.ts +0 -21
- package/dist/core/interfaces/vertices/overlap-groups.d.ts +0 -16
- package/dist/core/interfaces/vertices/periods.d.ts +0 -14
- package/dist/core/interfaces/vertices/persons.d.ts +0 -31
- package/dist/core/interfaces/vertices/properties/belongs-to.d.ts +0 -10
- package/dist/core/interfaces/vertices/properties/coalesced.d.ts +0 -7
- package/dist/core/interfaces/vertices/properties/days.d.ts +0 -9
- package/dist/core/interfaces/vertices/properties/index.d.ts +0 -15
- package/dist/core/interfaces/vertices/properties/intervals.d.ts +0 -10
- package/dist/core/interfaces/vertices/properties/maximum-schedule-span.d.ts +0 -19
- package/dist/core/interfaces/vertices/properties/min-break-length.d.ts +0 -5
- package/dist/core/interfaces/vertices/properties/planned-scheduled-duration.d.ts +0 -13
- package/dist/core/interfaces/vertices/properties/species.d.ts +0 -9
- package/dist/core/interfaces/vertices/properties/tags.d.ts +0 -9
- package/dist/core/interfaces/vertices/properties/week.d.ts +0 -22
- package/dist/core/interfaces/vertices/properties/week.js +0 -6
- package/dist/core/interfaces/vertices/properties/week.js.map +0 -1
- package/dist/core/interfaces/vertices/root-intervals.d.ts +0 -12
- package/dist/core/interfaces/vertices/syllabuses.d.ts +0 -19
- package/dist/core/interfaces/vertices/teachers.d.ts +0 -42
- package/dist/core/interfaces/vertices/threads.d.ts +0 -32
- package/dist/core/interfaces/vertices/users.d.ts +0 -10
- package/dist/core/interfaces/vertices/util/common.d.ts +0 -28
- package/dist/core/interfaces/vertices/util/custom-vertex-export/assert-no-invalid-expand-keys.d.ts +0 -16
- package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.ts +0 -34
- package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.ts +0 -53
- package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.ts +0 -65
- package/dist/core/interfaces/vertices/util/edges.d.ts +0 -123
- package/dist/core/interfaces/vertices/util/keys-of.d.ts +0 -27
- package/dist/core/interfaces/vertices/util/serialized-vertex-export.d.ts +0 -12
- package/dist/core/interfaces/vertices/util/util.d.ts +0 -84
- package/dist/core/interfaces/vertices/util/vertex-query/index.d.ts +0 -51
- package/dist/core/interfaces/vertices/util/vertex-query/util.d.ts +0 -13
- package/dist/core/interfaces/vertices/util/vertex.d.ts +0 -71
- package/dist/core/interfaces/vertices/vertex-query.d.ts +0 -117
- package/dist/core/interfaces/vertices/vertex-query.js +0 -122
- package/dist/core/interfaces/vertices/vertex-query.js.map +0 -1
- package/dist/core/to/configurations.js +0 -17
- package/dist/core/to/configurations.js.map +0 -1
- package/dist/core/to/courses.js +0 -42
- package/dist/core/to/courses.js.map +0 -1
- package/dist/core/to/division.js +0 -10
- package/dist/core/to/division.js.map +0 -1
- package/dist/core/to/events.js +0 -44
- package/dist/core/to/events.js.map +0 -1
- package/dist/core/to/exceptions.js +0 -30
- package/dist/core/to/exceptions.js.map +0 -1
- package/dist/core/to/groups.js +0 -26
- package/dist/core/to/groups.js.map +0 -1
- package/dist/core/to/index.d.ts +0 -9
- package/dist/core/to/index.js +0 -10
- package/dist/core/to/index.js.map +0 -1
- package/dist/core/to/linked-events-sets.js +0 -18
- package/dist/core/to/linked-events-sets.js.map +0 -1
- package/dist/core/to/locations.js +0 -22
- package/dist/core/to/locations.js.map +0 -1
- package/dist/core/to/locked-times.js +0 -21
- package/dist/core/to/locked-times.js.map +0 -1
- package/dist/core/to/overlap-groups.js +0 -28
- package/dist/core/to/overlap-groups.js.map +0 -1
- package/dist/core/to/periods.js +0 -17
- package/dist/core/to/periods.js.map +0 -1
- package/dist/core/to/persons.js +0 -18
- package/dist/core/to/persons.js.map +0 -1
- package/dist/core/to/root-intervals.js +0 -17
- package/dist/core/to/root-intervals.js.map +0 -1
- package/dist/core/to/schedules.d.ts +0 -48
- package/dist/core/to/schedules.js +0 -44
- package/dist/core/to/schedules.js.map +0 -1
- package/dist/core/to/settings.js +0 -19
- package/dist/core/to/settings.js.map +0 -1
- package/dist/core/to/syllabuses.js +0 -17
- package/dist/core/to/syllabuses.js.map +0 -1
- package/dist/core/to/teachers.js +0 -25
- package/dist/core/to/teachers.js.map +0 -1
- package/dist/core/to/util.d.ts +0 -8
- package/dist/core/to/util.js +0 -25
- package/dist/core/to/util.js.map +0 -1
- package/dist/core/types/common/index.d.ts +0 -8
- package/dist/core/types/common/meta.d.ts +0 -15
- package/dist/core/types/index.d.ts +0 -141
- package/dist/core/util.js +0 -47
- package/dist/core/util.js.map +0 -1
- package/dist/identify/constants/index.d.ts +0 -144
- package/dist/identify/constants/index.js +0 -317
- package/dist/identify/constants/index.js.map +0 -1
- package/dist/identify/index.d.ts +0 -8
- package/dist/identify/index.js +0 -94
- package/dist/identify/index.js.map +0 -1
- package/dist/identify/types/index.d.ts +0 -15
- package/dist/index.d.ts +0 -57
- package/dist/index.js +0 -22
- package/dist/sdui/from/classes.js +0 -8
- package/dist/sdui/from/classes.js.map +0 -1
- package/dist/sdui/from/courses.js +0 -14
- package/dist/sdui/from/courses.js.map +0 -1
- package/dist/sdui/from/holidays.js +0 -8
- package/dist/sdui/from/holidays.js.map +0 -1
- package/dist/sdui/from/hours.js +0 -6
- package/dist/sdui/from/hours.js.map +0 -1
- package/dist/sdui/from/index.js +0 -30
- package/dist/sdui/from/index.js.map +0 -1
- package/dist/sdui/from/lessons.js +0 -23
- package/dist/sdui/from/lessons.js.map +0 -1
- package/dist/sdui/from/rooms.js +0 -11
- package/dist/sdui/from/rooms.js.map +0 -1
- package/dist/sdui/from/schedules.d.ts +0 -19
- package/dist/sdui/from/schedules.js +0 -24
- package/dist/sdui/from/schedules.js.map +0 -1
- package/dist/sdui/from/school-years.js +0 -11
- package/dist/sdui/from/school-years.js.map +0 -1
- package/dist/sdui/from/subjects.js +0 -6
- package/dist/sdui/from/subjects.js.map +0 -1
- package/dist/sdui/from/substitution-plans.js +0 -10
- package/dist/sdui/from/substitution-plans.js.map +0 -1
- package/dist/sdui/from/teachers.js +0 -15
- package/dist/sdui/from/teachers.js.map +0 -1
- package/dist/sdui/index.d.ts +0 -32
- package/dist/sdui/index.js +0 -12
- package/dist/sdui/index.js.map +0 -1
- package/dist/sdui/to/classes.js +0 -10
- package/dist/sdui/to/classes.js.map +0 -1
- package/dist/sdui/to/courses.js +0 -16
- package/dist/sdui/to/courses.js.map +0 -1
- package/dist/sdui/to/holidays.js +0 -16
- package/dist/sdui/to/holidays.js.map +0 -1
- package/dist/sdui/to/hours.js +0 -15
- package/dist/sdui/to/hours.js.map +0 -1
- package/dist/sdui/to/index.d.ts +0 -20
- package/dist/sdui/to/index.js +0 -30
- package/dist/sdui/to/index.js.map +0 -1
- package/dist/sdui/to/lessons.js +0 -24
- package/dist/sdui/to/lessons.js.map +0 -1
- package/dist/sdui/to/rooms.js +0 -13
- package/dist/sdui/to/rooms.js.map +0 -1
- package/dist/sdui/to/schedules.js +0 -26
- package/dist/sdui/to/schedules.js.map +0 -1
- package/dist/sdui/to/school-years.js +0 -18
- package/dist/sdui/to/school-years.js.map +0 -1
- package/dist/sdui/to/subjects.js +0 -8
- package/dist/sdui/to/subjects.js.map +0 -1
- package/dist/sdui/to/substitution-plans.js +0 -49
- package/dist/sdui/to/substitution-plans.js.map +0 -1
- package/dist/sdui/to/teachers.js +0 -20
- package/dist/sdui/to/teachers.js.map +0 -1
- package/dist/sdui/types/classes.d.ts +0 -8
- package/dist/sdui/types/courses.d.ts +0 -12
- package/dist/sdui/types/holidays.d.ts +0 -10
- package/dist/sdui/types/hours.d.ts +0 -10
- package/dist/sdui/types/index.d.ts +0 -31
- package/dist/sdui/types/lessons.d.ts +0 -13
- package/dist/sdui/types/rooms.d.ts +0 -9
- package/dist/sdui/types/schedules.d.ts +0 -27
- package/dist/sdui/types/school-years.d.ts +0 -9
- package/dist/sdui/types/subjects.d.ts +0 -9
- package/dist/sdui/types/substitution-plans.d.ts +0 -30
- package/dist/sdui/types/teachers.d.ts +0 -10
- package/dist/vKlass/from/index.js +0 -8
- package/dist/vKlass/from/index.js.map +0 -1
- package/dist/vKlass/from/schedule.d.ts +0 -23
- package/dist/vKlass/from/schedule.js +0 -71
- package/dist/vKlass/from/schedule.js.map +0 -1
- package/dist/vKlass/index.d.ts +0 -13
- package/dist/vKlass/index.js +0 -12
- package/dist/vKlass/index.js.map +0 -1
- package/dist/vKlass/to/index.d.ts +0 -9
- package/dist/vKlass/to/index.js +0 -10
- package/dist/vKlass/to/index.js.map +0 -1
- package/dist/vKlass/to/schedules.d.ts +0 -14
- package/dist/vKlass/to/schedules.js +0 -93
- package/dist/vKlass/to/schedules.js.map +0 -1
- package/dist/vKlass/types/index.d.ts +0 -53
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { fromLocations } from "./dependencies.mjs";
|
|
2
|
+
import { extractUniqueIntervals } from "./intervals.mjs";
|
|
3
|
+
import { fromTeachers } from "./teachers.mjs";
|
|
4
|
+
import { fromEvents } from "./events.mjs";
|
|
5
|
+
import { parseSettings } from "./settings.mjs";
|
|
6
|
+
import { parseDefault } from "./default.mjs";
|
|
7
|
+
import { fromLockedTimes } from "./locked-times.mjs";
|
|
8
|
+
import { parsePeriods } from "./periods.mjs";
|
|
9
|
+
import { fromGroups } from "./groups.mjs";
|
|
10
|
+
import { extractUniqueIndividuals } from "./individuals.mjs";
|
|
11
|
+
import { fromLinkedEventsSets } from "./linked-events-sets.mjs";
|
|
12
|
+
|
|
13
|
+
//#region src/RS/to/input/input.ts
|
|
14
|
+
function parseInput(data, options = {}) {
|
|
15
|
+
const _settings = data.settings;
|
|
16
|
+
const _division = data.division;
|
|
17
|
+
const _groups = data.groups ?? [];
|
|
18
|
+
const _teachers = data.teachers ?? [];
|
|
19
|
+
const _locations = data.locations ?? [];
|
|
20
|
+
const _events = data.events ?? [];
|
|
21
|
+
const _lockedTimes = data.lockedTimes ?? [];
|
|
22
|
+
const _courses = data.courses ?? [];
|
|
23
|
+
const _persons = data.persons ?? [];
|
|
24
|
+
const _periods = data.periods ?? [];
|
|
25
|
+
const _linkedEventsSets = data.linkedEventsSets ?? [];
|
|
26
|
+
[
|
|
27
|
+
_groups,
|
|
28
|
+
_teachers,
|
|
29
|
+
_courses,
|
|
30
|
+
_events,
|
|
31
|
+
_lockedTimes
|
|
32
|
+
].forEach((entities) => {
|
|
33
|
+
entities.forEach((entity) => {
|
|
34
|
+
if (entity.intervals && entity.intervals.length == 0) entity.intervals = void 0;
|
|
35
|
+
else if (entity.intervals === null) entity.intervals = void 0;
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
const _fromEvents = fromEvents(_events, _settings, options);
|
|
39
|
+
const _fromLockedTimes = fromLockedTimes(_lockedTimes, _settings, options);
|
|
40
|
+
const linkedEvents = fromLinkedEventsSets(_linkedEventsSets, _settings, new Set(_fromEvents.events.map((x) => x.id)), options);
|
|
41
|
+
return {
|
|
42
|
+
settings: parseSettings(_settings),
|
|
43
|
+
default: parseDefault(_settings, options),
|
|
44
|
+
periods: parsePeriods(_periods, _division, options),
|
|
45
|
+
intervals: extractUniqueIntervals(_settings, _groups, _teachers, _courses, _events, _lockedTimes, options),
|
|
46
|
+
dependencies: fromLocations(_locations, _settings, options),
|
|
47
|
+
groups: [...fromGroups(_groups, _settings, options), ...fromTeachers(_teachers, _settings, options)],
|
|
48
|
+
individuals: extractUniqueIndividuals(_persons, _courses, _events, _lockedTimes, options),
|
|
49
|
+
blockedTimes: _fromLockedTimes.blockedTimes,
|
|
50
|
+
events: [..._fromEvents.events, ..._fromLockedTimes.events],
|
|
51
|
+
activities: [..._fromEvents.activities, ..._fromLockedTimes.activities],
|
|
52
|
+
linkedEvents,
|
|
53
|
+
unitableEvents: []
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
//#endregion
|
|
58
|
+
export { parseInput };
|
|
59
|
+
//# sourceMappingURL=input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.mjs","names":[],"sources":["../../../../src/RS/to/input/input.ts"],"sourcesContent":["import type { Types } from '../../types';\nimport type { ConnectedScheduleData } from '../../make-connected';\nimport { fromLocations } from './dependencies';\nimport { fromTeachers } from './teachers';\nimport { fromEvents } from './events';\nimport { parseSettings } from './settings';\nimport { parseDefault } from './default';\nimport { fromLockedTimes } from './locked-times';\nimport { parsePeriods } from './periods';\nimport { fromGroups } from './groups';\nimport { extractUniqueIntervals } from './intervals';\nimport { extractUniqueIndividuals } from './individuals';\nimport { fromLinkedEventsSets } from './linked-events-sets';\n\nexport function parseInput (\n data: ConnectedScheduleData,\n options: Types.parsedToOptions = {}\n): Types.scheduleData {\n\n const _settings = data.settings;\n const _division = data.division;\n const _groups = data.groups ?? [];\n const _teachers = data.teachers ?? [];\n const _locations = data.locations ?? [];\n const _events = data.events ?? [];\n const _lockedTimes = data.lockedTimes ?? [];\n const _courses = data.courses ?? [];\n const _persons = data.persons ?? [];\n const _periods = data.periods ?? [];\n const _linkedEventsSets = data.linkedEventsSets ?? [];\n\n\n ////\n //// replace empty/null intervals with undefined\n ////\n [_groups, _teachers, /* _locations, */ _courses, _events, _lockedTimes].forEach(entities => {\n entities.forEach(entity => {\n if (entity.intervals && entity.intervals.length == 0) entity.intervals = undefined;\n else if (entity.intervals === null ) entity.intervals = undefined;\n });\n });\n\n const _fromEvents = fromEvents (_events, _settings, options);\n const _fromLockedTimes = fromLockedTimes(_lockedTimes, _settings, options);\n\n const presentEventIds = new Set(_fromEvents.events.map(x => x.id));\n\n const linkedEvents = fromLinkedEventsSets(_linkedEventsSets, _settings, presentEventIds, options);\n\n const out: Types.scheduleData = {\n settings: parseSettings(_settings),\n default: parseDefault (_settings, options),\n\n periods: parsePeriods(_periods, _division, options),\n intervals: extractUniqueIntervals(_settings, _groups, _teachers, _courses, _events, _lockedTimes, options),\n\n dependencies: fromLocations(_locations, _settings, options),\n\n groups: [\n ...fromGroups (_groups, _settings, options),\n ...fromTeachers(_teachers, _settings, options)\n ],\n\n individuals: extractUniqueIndividuals(_persons, _courses, _events, _lockedTimes, options),\n\n blockedTimes: _fromLockedTimes.blockedTimes,\n\n events: [\n ..._fromEvents.events,\n ..._fromLockedTimes.events\n ],\n\n activities: [\n ..._fromEvents.activities,\n ..._fromLockedTimes.activities\n ],\n\n linkedEvents: linkedEvents,\n\n unitableEvents: [],\n };\n return out;\n};"],"mappings":";;;;;;;;;;;;;AAcA,SAAgB,WACd,MACA,UAAiC,EAAE,EACf;CAEpB,MAAM,YAAoB,KAAK;CAC/B,MAAM,YAAoB,KAAK;CAC/B,MAAM,UAAoB,KAAK,UAAoB,EAAE;CACrD,MAAM,YAAoB,KAAK,YAAoB,EAAE;CACrD,MAAM,aAAoB,KAAK,aAAoB,EAAE;CACrD,MAAM,UAAoB,KAAK,UAAoB,EAAE;CACrD,MAAM,eAAoB,KAAK,eAAoB,EAAE;CACrD,MAAM,WAAoB,KAAK,WAAoB,EAAE;CACrD,MAAM,WAAoB,KAAK,WAAoB,EAAE;CACrD,MAAM,WAAoB,KAAK,WAAoB,EAAE;CACrD,MAAM,oBAAoB,KAAK,oBAAoB,EAAE;AAMrD;EAAC;EAAS;EAA6B;EAAU;EAAS;EAAa,CAAC,SAAQ,aAAY;AAC1F,WAAS,SAAQ,WAAU;AACzB,OAAS,OAAO,aAAa,OAAO,UAAU,UAAU,EAAG,QAAO,YAAY;YACrE,OAAO,cAAc,KAA6B,QAAO,YAAY;IAC9E;GACF;CAEF,MAAM,cAAmB,WAAgB,SAAc,WAAW,QAAQ;CAC1E,MAAM,mBAAmB,gBAAgB,cAAc,WAAW,QAAQ;CAI1E,MAAM,eAAe,qBAAqB,mBAAmB,WAFrC,IAAI,IAAI,YAAY,OAAO,KAAI,MAAK,EAAE,GAAG,CAAC,EAEuB,QAAQ;AAkCjG,QAhCgC;EAC9B,UAAU,cAAc,UAAU;EAClC,SAAU,aAAc,WAAW,QAAQ;EAE3C,SAAW,aAAa,UAAU,WAAW,QAAQ;EACrD,WAAW,uBAAuB,WAAW,SAAS,WAAW,UAAU,SAAS,cAAc,QAAQ;EAE1G,cAAc,cAAc,YAAY,WAAW,QAAQ;EAE3D,QAAQ,CACN,GAAG,WAAa,SAAS,WAAW,QAAQ,EAC5C,GAAG,aAAa,WAAW,WAAW,QAAQ,CAC/C;EAED,aAAa,yBAAyB,UAAU,UAAU,SAAS,cAAc,QAAQ;EAEzF,cAAc,iBAAiB;EAE/B,QAAQ,CACN,GAAG,YAAY,QACf,GAAG,iBAAiB,OACrB;EAED,YAAY,CACV,GAAG,YAAY,YACf,GAAG,iBAAiB,WACrB;EAEa;EAEd,gBAAgB,EAAE;EACnB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { getDayIndex } from "../../../core/util.mjs";
|
|
2
|
+
import { makeChainable } from "../../../common/make-chainable/index.mjs";
|
|
3
|
+
import { idOf } from "./util/util.mjs";
|
|
4
|
+
import { groupBy, uniqBy } from "lodash-es";
|
|
5
|
+
import moment from "moment";
|
|
6
|
+
|
|
7
|
+
//#region src/RS/to/input/intervals.ts
|
|
8
|
+
/**
|
|
9
|
+
* Parses a date input into a moment object.
|
|
10
|
+
*
|
|
11
|
+
* Accepts an ISO date string, a string in 'HH:mm' format, or a DateType.
|
|
12
|
+
* - If the input is in 'HH:mm' format, it is parsed as a UTC time on the epoch date.
|
|
13
|
+
* - Otherwise, the input is parsed as a full UTC date.
|
|
14
|
+
*
|
|
15
|
+
* @param date - The date input to parse.
|
|
16
|
+
* @returns A moment object representing the parsed date and time.
|
|
17
|
+
*/
|
|
18
|
+
function parseIntervalDate(date) {
|
|
19
|
+
if (typeof date == "string") {
|
|
20
|
+
if (/^\d{1,2}:\d{2}$/.test(date)) return moment.utc(date, "HH:mm");
|
|
21
|
+
return moment.utc(date);
|
|
22
|
+
}
|
|
23
|
+
return moment.utc(date);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Removes the shorthand notation (a single day to represent all days)
|
|
27
|
+
*/
|
|
28
|
+
function standardizeIntervals(intervals, settings) {
|
|
29
|
+
if (intervals?.length == 1) {
|
|
30
|
+
const i = intervals[0];
|
|
31
|
+
const start = parseIntervalDate(i.start);
|
|
32
|
+
const end = parseIntervalDate(i.end);
|
|
33
|
+
return Array.from({ length: settings.numDays }, () => ({
|
|
34
|
+
start: start.clone(),
|
|
35
|
+
end: end.clone()
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
return intervals;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Converts the intervals to float type intervals
|
|
42
|
+
*/
|
|
43
|
+
function toFloatIntervals(intervals) {
|
|
44
|
+
return intervals?.map((i, day) => {
|
|
45
|
+
if (!i.start || !i.end) throw new Error(`(RS::To::toFloatIntervals) Interval missing start or end for day ${day}: ${JSON.stringify(i)}`);
|
|
46
|
+
return {
|
|
47
|
+
start: parseFloat(parseIntervalDate(i.start).format("HH.mm")),
|
|
48
|
+
end: parseFloat(parseIntervalDate(i.end).format("HH.mm"))
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Converts
|
|
54
|
+
*/
|
|
55
|
+
function combineAndMapIntervals(_intervals, rootInterval, settings) {
|
|
56
|
+
const intervals = toFloatIntervals(standardizeIntervals(_intervals, settings));
|
|
57
|
+
if (rootInterval) {
|
|
58
|
+
if (!intervals) throw new Error("(RS::To::combineAndMapIntervals) no accompanying intervals for rootInterval");
|
|
59
|
+
return makeChainable(rootInterval.intervals).chain((x) => groupBy(x, (i) => getDayIndex(i.start)), (x) => Object.entries(x).map(([day, is]) => {
|
|
60
|
+
const limits = intervals.at(parseInt(day));
|
|
61
|
+
if (!limits) throw new Error(`(RS::To::combineAndMapIntervals) Day ${day} not found in dayStartAndEnds`);
|
|
62
|
+
return is.map((i) => ({
|
|
63
|
+
start: parseFloat(parseIntervalDate(i.start).format("HH.mm")),
|
|
64
|
+
end: parseFloat(parseIntervalDate(i.end).format("HH.mm")),
|
|
65
|
+
binary: true
|
|
66
|
+
})).filter((i) => i.start >= limits.start && i.end <= limits.end);
|
|
67
|
+
}).reduce((acc, curr, index) => {
|
|
68
|
+
acc[index] = curr;
|
|
69
|
+
return acc;
|
|
70
|
+
}, Array.from({ length: settings.numDays }, () => []))).value;
|
|
71
|
+
}
|
|
72
|
+
if (intervals) return intervals.map((i) => [i]);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* extracts the default interval given the division settings
|
|
76
|
+
*/
|
|
77
|
+
function getDefaultInterval(settings) {
|
|
78
|
+
const { dayStart, dayEnd } = settings;
|
|
79
|
+
if (!dayStart) throw new Error("(RS::To::getDefaultInterval) \"settings.dayStart\" is falsy");
|
|
80
|
+
if (!dayEnd) throw new Error("(RS::To::getDefaultInterval) \"settings.dayEnd\" is falsy");
|
|
81
|
+
return [{
|
|
82
|
+
start: dayStart,
|
|
83
|
+
end: dayEnd
|
|
84
|
+
}];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Computes the default interval id given the division settings
|
|
88
|
+
*/
|
|
89
|
+
function computesDefaultIntervalId(settings, options) {
|
|
90
|
+
return idOf.intervalPairReference(getDefaultInterval(settings), void 0, options);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Extracts all unique intervals and interval-root interval pairs used by the provided entities
|
|
94
|
+
*/
|
|
95
|
+
function extractUniqueIntervals(settings, groups, teachers, courses, events, lockedTimes, options) {
|
|
96
|
+
const defaultInterval = getDefaultInterval(settings);
|
|
97
|
+
const withRootIntervals = [...groups, ...teachers].map((item) => {
|
|
98
|
+
const intervals = item.intervals ?? defaultInterval;
|
|
99
|
+
const rootInterval = item.rootInterval ?? settings.defaultRootInterval;
|
|
100
|
+
return {
|
|
101
|
+
id: idOf.intervalPairReference(intervals, rootInterval, options),
|
|
102
|
+
data: [intervals, rootInterval]
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
const withoutRootIntervals = [
|
|
106
|
+
{ intervals: defaultInterval },
|
|
107
|
+
...courses,
|
|
108
|
+
...events,
|
|
109
|
+
...lockedTimes
|
|
110
|
+
].map((item) => {
|
|
111
|
+
const interval = item.intervals ?? ("course" in item ? item.course?.intervals : void 0) ?? defaultInterval;
|
|
112
|
+
return {
|
|
113
|
+
id: idOf.intervalPairReference(interval, void 0, options),
|
|
114
|
+
data: [interval, void 0]
|
|
115
|
+
};
|
|
116
|
+
});
|
|
117
|
+
return makeChainable(withRootIntervals).chain((x) => x.concat(withoutRootIntervals), (x) => uniqBy(x, (x) => x.id), (x) => x.map(({ id, data: [_intervals, rootInterval] }) => {
|
|
118
|
+
const value = combineAndMapIntervals(_intervals, rootInterval, settings);
|
|
119
|
+
if (!value) return;
|
|
120
|
+
return {
|
|
121
|
+
id,
|
|
122
|
+
value
|
|
123
|
+
};
|
|
124
|
+
}).filter((x) => x != null)).value;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
//#endregion
|
|
128
|
+
export { computesDefaultIntervalId, extractUniqueIntervals, getDefaultInterval };
|
|
129
|
+
//# sourceMappingURL=intervals.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intervals.mjs","names":[],"sources":["../../../../src/RS/to/input/intervals.ts"],"sourcesContent":["import moment from 'moment';\nimport { groupBy, uniqBy } from 'lodash-es';\nimport type { Types } from '../../types';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { idOf } from './util/util';\nimport { getDayIndex } from '../../../core/util';\nimport type { DateType } from '../../../common/types';\nimport { makeChainable } from '../../../common/make-chainable';\nimport type { Interval } from '../../../core/interfaces';\n\n/**\n * Parses a date input into a moment object.\n *\n * Accepts an ISO date string, a string in 'HH:mm' format, or a DateType.\n * - If the input is in 'HH:mm' format, it is parsed as a UTC time on the epoch date.\n * - Otherwise, the input is parsed as a full UTC date.\n *\n * @param date - The date input to parse.\n * @returns A moment object representing the parsed date and time.\n */\nexport function parseIntervalDate (date: string | DateType): moment.Moment {\n if (typeof date == 'string') {\n // in case of HH:mm format, parse as UTC time on epoch date\n if (/^\\d{1,2}:\\d{2}$/.test(date)) {\n return moment.utc(date, 'HH:mm');\n }\n\n // otherwise parse as full date\n return moment.utc(date);\n }\n\n return moment.utc(date);\n}\n\n/**\n * Removes the shorthand notation (a single day to represent all days)\n */\nfunction standardizeIntervals (\n intervals: Interval[] | undefined,\n settings: ConnectedTypes.divisionSettings\n): Interval[] | undefined {\n if (intervals?.length == 1) {\n const i = intervals[0];\n const start = parseIntervalDate(i.start);\n const end = parseIntervalDate(i.end );\n return Array.from({ length: settings.numDays }, () => ({ start: start.clone(), end: end.clone() }));\n }\n\n return intervals;\n}\n\n/**\n * Converts the intervals to float type intervals\n */\nfunction toFloatIntervals (\n intervals: Interval[] | undefined\n): { start: number, end: number }[] | undefined {\n return intervals?.map((i, day: number) => {\n if (!i.start || !i.end) throw new Error(`(RS::To::toFloatIntervals) Interval missing start or end for day ${day}: ${JSON.stringify(i)}`);\n const start = parseFloat(parseIntervalDate(i.start).format('HH.mm'));\n const end = parseFloat(parseIntervalDate(i.end ).format('HH.mm'));\n return { start, end };\n });\n}\n\n/**\n * Converts\n */\nfunction combineAndMapIntervals (\n _intervals: Interval[] | undefined,\n rootInterval: ConnectedTypes.rootInterval | undefined,\n settings: ConnectedTypes.divisionSettings\n): Types.Shared.Interval[][] | undefined {\n const intervals = toFloatIntervals(standardizeIntervals(_intervals, settings));\n\n if (rootInterval) {\n if (!intervals) throw new Error('(RS::To::combineAndMapIntervals) no accompanying intervals for rootInterval');\n return makeChainable(rootInterval.intervals)\n .chain(\n x => groupBy(x, i => getDayIndex(i.start)),\n x => Object.entries(x)\n .map(([day, is]) => {\n const limits = intervals.at(parseInt(day));\n if (!limits) throw new Error(`(RS::To::combineAndMapIntervals) Day ${day} not found in dayStartAndEnds`);\n\n // remove all block intervals that lay outside the day start and end\n return is\n .map(i => ({\n start: parseFloat(parseIntervalDate(i.start).format('HH.mm')),\n end: parseFloat(parseIntervalDate(i.end ).format('HH.mm')),\n binary: true\n } satisfies Types.Shared.Interval))\n .filter(i => i.start >= limits.start && i.end <= limits.end);\n })\n // ensure that all days are represented, even if empty\n .reduce<Types.Shared.Interval[][]>((acc, curr, index) => {\n acc[index] = curr;\n return acc;\n }, Array.from({ length: settings.numDays }, () => []))\n )\n .value;\n }\n if (intervals) {\n return intervals.map(i => [i]);\n }\n return;\n};\n\n/**\n * extracts the default interval given the division settings\n */\nexport function getDefaultInterval (settings: ConnectedTypes.divisionSettings): Interval[] {\n const { dayStart, dayEnd } = settings;\n if (!dayStart) throw new Error('(RS::To::getDefaultInterval) \"settings.dayStart\" is falsy');\n if (!dayEnd ) throw new Error('(RS::To::getDefaultInterval) \"settings.dayEnd\" is falsy');\n return [{ start: dayStart, end: dayEnd }];\n}\n\n/**\n * Computes the default interval id given the division settings\n */\nexport function computesDefaultIntervalId (\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions\n): string {\n return idOf.intervalPairReference(getDefaultInterval(settings), undefined, options);\n}\n\n/**\n * Extracts all unique intervals and interval-root interval pairs used by the provided entities\n */\nexport function extractUniqueIntervals (\n settings: ConnectedTypes.divisionSettings,\n groups: ConnectedTypes.group[],\n teachers: ConnectedTypes.teacher[],\n courses: ConnectedTypes.course[],\n events: ConnectedTypes.event[],\n lockedTimes: ConnectedTypes.lockedTime[],\n options: Types.parsedToOptions\n): Types.Entities.Interval[] {\n const defaultInterval = getDefaultInterval(settings);\n\n type InheritedWithId = { id: string, data: [Interval<DateType>[] | undefined, ConnectedTypes.rootInterval | undefined] };\n\n const withRootIntervals = [...groups, ...teachers]\n .map((item): InheritedWithId => {\n const intervals = item.intervals ?? defaultInterval;\n const rootInterval = item.rootInterval ?? settings.defaultRootInterval;\n\n return {\n id: idOf.intervalPairReference(intervals, rootInterval, options),\n data: [intervals, rootInterval]\n };\n });\n\n const withoutRootIntervals = [{ intervals: defaultInterval }, ...courses, ...events, ...lockedTimes]\n .map((item): InheritedWithId => {\n const interval = item.intervals ?? ('course' in item ? item.course?.intervals : undefined) ?? defaultInterval;\n\n return {\n id: idOf.intervalPairReference(interval, undefined, options),\n data: [interval, undefined]\n };\n });\n\n return makeChainable(withRootIntervals)\n .chain(\n x => x.concat(withoutRootIntervals),\n x => uniqBy(x, x => x.id),\n x => x\n .map(({ id, data: [_intervals, rootInterval] }) => {\n // compute the corresponding root interval for each interval pair\n const value = combineAndMapIntervals(_intervals, rootInterval, settings);\n if (!value) return;\n return { id, value } as Required<Types.Entities.Interval>;\n })\n .filter(x => x != null)\n )\n .value;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,SAAgB,kBAAmB,MAAwC;AACzE,KAAI,OAAO,QAAQ,UAAU;AAE3B,MAAI,kBAAkB,KAAK,KAAK,CAC9B,QAAO,OAAO,IAAI,MAAM,QAAQ;AAIlC,SAAO,OAAO,IAAI,KAAK;;AAGzB,QAAO,OAAO,IAAI,KAAK;;;;;AAMzB,SAAS,qBACP,WACA,UACwB;AACxB,KAAI,WAAW,UAAU,GAAG;EAC1B,MAAM,IAAI,UAAU;EACpB,MAAM,QAAQ,kBAAkB,EAAE,MAAM;EACxC,MAAM,MAAQ,kBAAkB,EAAE,IAAM;AACxC,SAAO,MAAM,KAAK,EAAE,QAAQ,SAAS,SAAS,SAAS;GAAE,OAAO,MAAM,OAAO;GAAE,KAAK,IAAI,OAAO;GAAE,EAAE;;AAGrG,QAAO;;;;;AAMT,SAAS,iBACP,WAC8C;AAC9C,QAAO,WAAW,KAAK,GAAG,QAAgB;AACxC,MAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAK,OAAM,IAAI,MAAM,oEAAoE,IAAI,IAAI,KAAK,UAAU,EAAE,GAAG;AAGxI,SAAO;GAAE,OAFK,WAAW,kBAAkB,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC;GAEpD,KADF,WAAW,kBAAkB,EAAE,IAAM,CAAC,OAAO,QAAQ,CAAC;GAC/C;GACrB;;;;;AAMJ,SAAS,uBACP,YACA,cACA,UACuC;CACvC,MAAM,YAAY,iBAAiB,qBAAqB,YAAY,SAAS,CAAC;AAE9E,KAAI,cAAc;AAChB,MAAI,CAAC,UAAW,OAAM,IAAI,MAAM,8EAA8E;AAC9G,SAAO,cAAc,aAAa,UAAU,CACzC,OACC,MAAK,QAAQ,IAAG,MAAK,YAAY,EAAE,MAAM,CAAC,GAC1C,MAAK,OAAO,QAAQ,EAAE,CACnB,KAAK,CAAC,KAAK,QAAQ;GAClB,MAAM,SAAS,UAAU,GAAG,SAAS,IAAI,CAAC;AAC1C,OAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,wCAAwC,IAAI,+BAA+B;AAGxG,UAAO,GACJ,KAAI,OAAM;IACT,OAAQ,WAAW,kBAAkB,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC;IAC9D,KAAQ,WAAW,kBAAkB,EAAE,IAAM,CAAC,OAAO,QAAQ,CAAC;IAC9D,QAAQ;IACT,EAAkC,CAClC,QAAO,MAAK,EAAE,SAAS,OAAO,SAAS,EAAE,OAAO,OAAO,IAAI;IAC9D,CAED,QAAmC,KAAK,MAAM,UAAU;AACvD,OAAI,SAAS;AACb,UAAO;KACN,MAAM,KAAK,EAAE,QAAQ,SAAS,SAAS,QAAQ,EAAE,CAAC,CAAC,CACzD,CACA;;AAEL,KAAI,UACF,QAAO,UAAU,KAAI,MAAK,CAAC,EAAE,CAAC;;;;;AAQlC,SAAgB,mBAAoB,UAAuD;CACzF,MAAM,EAAE,UAAU,WAAW;AAC7B,KAAI,CAAC,SAAU,OAAM,IAAI,MAAM,8DAA4D;AAC3F,KAAI,CAAC,OAAU,OAAM,IAAI,MAAM,4DAA0D;AACzF,QAAO,CAAC;EAAE,OAAO;EAAU,KAAK;EAAQ,CAAC;;;;;AAM3C,SAAgB,0BACd,UACA,SACQ;AACR,QAAO,KAAK,sBAAsB,mBAAmB,SAAS,EAAE,QAAW,QAAQ;;;;;AAMrF,SAAgB,uBACd,UACA,QACA,UACA,SACA,QACA,aACA,SAC2B;CAC3B,MAAM,kBAAkB,mBAAmB,SAAS;CAIpD,MAAM,oBAAoB,CAAC,GAAG,QAAQ,GAAG,SAAS,CAC/C,KAAK,SAA0B;EAC9B,MAAM,YAAe,KAAK,aAAgB;EAC1C,MAAM,eAAe,KAAK,gBAAgB,SAAS;AAEnD,SAAO;GACL,IAAM,KAAK,sBAAsB,WAAW,cAAc,QAAQ;GAClE,MAAM,CAAC,WAAW,aAAa;GAChC;GACD;CAEJ,MAAM,uBAAuB;EAAC,EAAE,WAAW,iBAAiB;EAAE,GAAG;EAAS,GAAG;EAAQ,GAAG;EAAY,CACjG,KAAK,SAA0B;EAC9B,MAAM,WAAW,KAAK,cAAc,YAAY,OAAO,KAAK,QAAQ,YAAY,WAAc;AAE9F,SAAO;GACL,IAAM,KAAK,sBAAsB,UAAU,QAAW,QAAQ;GAC9D,MAAM,CAAC,UAAU,OAAU;GAC5B;GACD;AAEJ,QAAO,cAAc,kBAAkB,CACpC,OACC,MAAK,EAAE,OAAO,qBAAqB,GACnC,MAAK,OAAO,IAAG,MAAK,EAAE,GAAG,GACzB,MAAK,EACF,KAAK,EAAE,IAAI,MAAM,CAAC,YAAY,oBAAoB;EAEjD,MAAM,QAAQ,uBAAuB,YAAY,cAAc,SAAS;AACxE,MAAI,CAAC,MAAO;AACZ,SAAO;GAAE;GAAI;GAAO;GACpB,CACD,QAAO,MAAK,KAAK,KAAK,CAC1B,CACA"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { getVertexId } from "../../../core/util.mjs";
|
|
2
|
+
import { idOf } from "./util/util.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/RS/to/input/linked-events-sets.ts
|
|
5
|
+
function fromLinkedEventsSets(_linkedEventsSets, _settings, presentEventIds, options) {
|
|
6
|
+
return (_linkedEventsSets ?? []).map((x) => {
|
|
7
|
+
if (x.type === "parallel") {
|
|
8
|
+
if (x.anchor == null) throw new Error(`Linked events set ${getVertexId(x, options)} of type "parallel" is missing "anchor" property`);
|
|
9
|
+
return {
|
|
10
|
+
...x,
|
|
11
|
+
type: "parallel",
|
|
12
|
+
anchor: x.anchor
|
|
13
|
+
};
|
|
14
|
+
} else if (x.type === "sequential") {
|
|
15
|
+
if (x.gap == null) throw new Error(`Linked events set ${getVertexId(x, options)} of type "sequential" is missing "gap" property`);
|
|
16
|
+
return {
|
|
17
|
+
...x,
|
|
18
|
+
type: "sequential",
|
|
19
|
+
gap: x.gap
|
|
20
|
+
};
|
|
21
|
+
} else if (x.type === "custom") return {
|
|
22
|
+
...x,
|
|
23
|
+
type: "custom"
|
|
24
|
+
};
|
|
25
|
+
throw new Error(`Linked events set ${getVertexId(x, options)} is missing "type" property`);
|
|
26
|
+
}).map((x) => {
|
|
27
|
+
const id = getVertexId(x, options);
|
|
28
|
+
const restrictedEvents = x.events.filter((x) => presentEventIds.has(idOf.event(x, options)));
|
|
29
|
+
const type = x.type;
|
|
30
|
+
if (type === "parallel") {
|
|
31
|
+
const configurations = [];
|
|
32
|
+
const anchor = x.anchor;
|
|
33
|
+
switch (anchor) {
|
|
34
|
+
case "start":
|
|
35
|
+
configurations.push(restrictedEvents.map(() => ({
|
|
36
|
+
anchor: "start",
|
|
37
|
+
offset: 0
|
|
38
|
+
})));
|
|
39
|
+
break;
|
|
40
|
+
case "end":
|
|
41
|
+
configurations.push(restrictedEvents.map(() => ({
|
|
42
|
+
anchor: "end",
|
|
43
|
+
offset: 0
|
|
44
|
+
})));
|
|
45
|
+
break;
|
|
46
|
+
case "middle":
|
|
47
|
+
configurations.push(restrictedEvents.map(() => ({
|
|
48
|
+
anchor: "middle",
|
|
49
|
+
offset: 0
|
|
50
|
+
})));
|
|
51
|
+
break;
|
|
52
|
+
default: throw new Error(`Unrecognized anchor "${anchor}" in linked events set ${getVertexId(x, options)}`);
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
id,
|
|
56
|
+
configurations,
|
|
57
|
+
events: restrictedEvents.map((x) => idOf.event(x, options))
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (type === "sequential") {
|
|
61
|
+
const { min, max } = x.gap;
|
|
62
|
+
const dt = _settings.discretization;
|
|
63
|
+
const numConfigurations = Math.pow(1 + Math.round(max / dt - min / dt), restrictedEvents.length - 1);
|
|
64
|
+
const maxNumConfigurations = 49;
|
|
65
|
+
if (numConfigurations >= maxNumConfigurations) throw new Error(`Linked events set ${getVertexId(x, options)} has too many configurations (${numConfigurations}, max allowed is ${maxNumConfigurations})`);
|
|
66
|
+
const gaps = [];
|
|
67
|
+
for (let i = min; i <= max; i += dt) gaps.push(i);
|
|
68
|
+
let configurations = [[{
|
|
69
|
+
anchor: "start",
|
|
70
|
+
offset: 0
|
|
71
|
+
}]];
|
|
72
|
+
for (let i = 1; i < restrictedEvents.length; i++) {
|
|
73
|
+
const newConfigurations = [];
|
|
74
|
+
for (const config of configurations) {
|
|
75
|
+
const lastOffsetBottom = config[config.length - 1].offset + restrictedEvents[i - 1].preferredDuration;
|
|
76
|
+
for (const gap of gaps) newConfigurations.push([...config, {
|
|
77
|
+
anchor: "start",
|
|
78
|
+
offset: lastOffsetBottom + gap
|
|
79
|
+
}]);
|
|
80
|
+
}
|
|
81
|
+
configurations = newConfigurations;
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
id,
|
|
85
|
+
configurations,
|
|
86
|
+
events: restrictedEvents.map((x) => idOf.event(x, options))
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
if (type === "custom") throw new Error(`Custom linked events sets are not yet supported (linked events set ${getVertexId(x, options)})`);
|
|
90
|
+
throw new Error(`Unrecognized linked events set type "${type}" in linked events set ${getVertexId(x, options)}`);
|
|
91
|
+
}).filter((x) => x.events.length > 1);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
//#endregion
|
|
95
|
+
export { fromLinkedEventsSets };
|
|
96
|
+
//# sourceMappingURL=linked-events-sets.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linked-events-sets.mjs","names":[],"sources":["../../../../src/RS/to/input/linked-events-sets.ts"],"sourcesContent":["import type { Types } from '../../types';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { getVertexId } from '../../../core/util';\nimport { idOf } from './util/util';\n\n\nexport function fromLinkedEventsSets (\n _linkedEventsSets: ConnectedTypes.linkedEventsSet[],\n _settings: ConnectedTypes.divisionSettings,\n presentEventIds: Set<string>,\n options: Types.parsedToOptions\n): Types.Entities.LinkedEventsSet[] {\n\n return (_linkedEventsSets ?? [])\n .map(x => {\n // ensure that linkedEventsSets conform to the expected union that is currently not enforced by the schema\n if (x.type === 'parallel') {\n if (x.anchor == null) throw new Error(`Linked events set ${getVertexId(x, options)} of type \"parallel\" is missing \"anchor\" property`);\n return { ...x, type: 'parallel', anchor: x.anchor } as const;\n }\n else if (x.type === 'sequential') {\n if (x.gap == null) throw new Error(`Linked events set ${getVertexId(x, options)} of type \"sequential\" is missing \"gap\" property`);\n return { ...x, type: 'sequential', gap: x.gap } as const;\n }\n else if (x.type === 'custom') {\n return { ...x, type: 'custom' } as const;\n }\n\n throw new Error(`Linked events set ${getVertexId(x, options)} is missing \"type\" property`);\n })\n .map((x): Types.Entities.LinkedEventsSet => {\n type Configurations = Types.Entities.LinkedEventsSet['configurations'];\n const id = getVertexId(x, options);\n\n const restrictedEvents = x.events.filter(x => presentEventIds.has(idOf.event(x, options)));\n const type = x.type;\n if (type === 'parallel') {\n const configurations: Configurations = [];\n const anchor = x.anchor;\n switch (anchor) {\n case 'start': configurations.push(restrictedEvents.map(() => ({ anchor: 'start', offset: 0 }))); break;\n case 'end': configurations.push(restrictedEvents.map(() => ({ anchor: 'end', offset: 0 }))); break;\n case 'middle': configurations.push(restrictedEvents.map(() => ({ anchor: 'middle', offset: 0 }))); break;\n default: throw new Error(`Unrecognized anchor \"${anchor satisfies never as string}\" in linked events set ${getVertexId(x, options)}`);\n }\n return {\n id, configurations,\n events: restrictedEvents.map(x => idOf.event(x, options))\n };\n }\n\n if (type === 'sequential') {\n const { min, max } = x.gap;\n const dt = _settings.discretization;\n\n const numConfigurations = Math.pow(1 + Math.round(max/dt - min/dt), restrictedEvents.length - 1);\n const maxNumConfigurations = 49; // max 3 events and a maximum gap range of 30 minutes => 7^2 = 49\n if (numConfigurations >= maxNumConfigurations) throw new Error(`Linked events set ${getVertexId(x, options)} has too many configurations (${numConfigurations}, max allowed is ${maxNumConfigurations})`);\n\n const gaps: number[] = [];\n for (let i = min; i <= max; i += dt) gaps.push(i);\n\n let configurations: Configurations = [[{ anchor: 'start', offset: 0 }]]; // first event is always at offset 0\n for (let i = 1; i < restrictedEvents.length; i++) {\n const newConfigurations: Configurations = [];\n for (const config of configurations) {\n const lastOffsetBottom = config[config.length - 1].offset + restrictedEvents[i - 1].preferredDuration;\n for (const gap of gaps) {\n newConfigurations.push([...config, { anchor: 'start', offset: lastOffsetBottom + gap }]);\n }\n }\n configurations = newConfigurations;\n }\n\n return {\n id, configurations,\n events: restrictedEvents.map(x => idOf.event(x, options))\n };\n }\n\n if (type === 'custom') {\n throw new Error(`Custom linked events sets are not yet supported (linked events set ${getVertexId(x, options)})`);\n }\n\n throw new Error(`Unrecognized linked events set type \"${type satisfies never as string}\" in linked events set ${getVertexId(x, options)}`);\n })\n .filter(x => x.events.length > 1); // filter out linked events sets that only contain one event after filtering out events that are not present\n}"],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { getDayIndex, parseDateInterval } from "../../../core/util.mjs";
|
|
2
|
+
import { makeChainable } from "../../../common/make-chainable/index.mjs";
|
|
3
|
+
import { idOf } from "./util/util.mjs";
|
|
4
|
+
import { getDefaultInterval } from "./intervals.mjs";
|
|
5
|
+
import { parseGroupReferences } from "./util/parse-group-references.mjs";
|
|
6
|
+
import { parseLocationReferences } from "./util/parse-location-references.mjs";
|
|
7
|
+
import { toDayAndStart } from "./events.mjs";
|
|
8
|
+
import { groupBy, omitBy, uniq } from "lodash-es";
|
|
9
|
+
|
|
10
|
+
//#region src/RS/to/input/locked-times.ts
|
|
11
|
+
function parseRegular(lockedTime, options) {
|
|
12
|
+
const { start: startDate, end: endDate } = parseDateInterval(lockedTime, "locked time");
|
|
13
|
+
const duration = endDate.diff(startDate, "minutes");
|
|
14
|
+
if (duration < 5) throw new Error("(RS::To::parseRegular) Length of a locked time is less than 5 min");
|
|
15
|
+
const start = parseFloat(startDate.format("HH.mm"));
|
|
16
|
+
const day = getDayIndex(startDate);
|
|
17
|
+
const doc = {
|
|
18
|
+
id: idOf.lockedTime(lockedTime, options),
|
|
19
|
+
day,
|
|
20
|
+
start,
|
|
21
|
+
duration
|
|
22
|
+
};
|
|
23
|
+
if (options.includeEntityMeta) doc.name = lockedTime.displayName;
|
|
24
|
+
return doc;
|
|
25
|
+
}
|
|
26
|
+
function parseDynamic(lockedTime, settings, options, defaultInterval) {
|
|
27
|
+
const duration = lockedTime.duration;
|
|
28
|
+
if (!duration || duration < 5) throw new Error("(RS::To::parseDynamic) Length of a locked time is less than 5 min");
|
|
29
|
+
const dependencyReferences = parseLocationReferences(lockedTime.coalesced, options);
|
|
30
|
+
const days = lockedTime.intervals ? makeChainable(lockedTime.intervals).chain((x) => x.map((x) => getDayIndex(x.start)), (x) => uniq(x)).value : void 0;
|
|
31
|
+
const day = days?.length == 1 ? days[0] : void 0;
|
|
32
|
+
if (day != null && lockedTime.coalesced) {
|
|
33
|
+
if (!lockedTime.coalesced.every((x) => !x.to.days?.length || x.to.days.some((x) => x.day == day))) return;
|
|
34
|
+
}
|
|
35
|
+
const distributionKey = lockedTime.type == "COMPLEMENTARY_TIME" ? "COMPLEMENTARY_TIME." + lockedTime.tags?.at(0)?.value : void 0;
|
|
36
|
+
const intervals = lockedTime.intervals ?? defaultInterval;
|
|
37
|
+
const doc = {
|
|
38
|
+
id: idOf.lockedTime(lockedTime, options),
|
|
39
|
+
duration,
|
|
40
|
+
minBreakDuration: false,
|
|
41
|
+
maxDurationVariance: lockedTime.durationVariance,
|
|
42
|
+
groups: parseGroupReferences({
|
|
43
|
+
type: "lockedTime",
|
|
44
|
+
item: lockedTime
|
|
45
|
+
}, options),
|
|
46
|
+
dependencies: dependencyReferences,
|
|
47
|
+
intervals: idOf.intervalPairReference(intervals, void 0, options),
|
|
48
|
+
distributionKey,
|
|
49
|
+
...days && { days },
|
|
50
|
+
...day && { day }
|
|
51
|
+
};
|
|
52
|
+
if (options.partialScheduleOptions) {
|
|
53
|
+
const { includedEvents, omittedEventsHandling } = options.partialScheduleOptions;
|
|
54
|
+
if (includedEvents && !includedEvents.has(doc.id)) {
|
|
55
|
+
if (omittedEventsHandling == "ignore") return;
|
|
56
|
+
if (omittedEventsHandling == "freeze") {
|
|
57
|
+
if (lockedTime.parked || !lockedTime.start || !lockedTime.duration) return;
|
|
58
|
+
Object.assign(doc, toDayAndStart(lockedTime.start));
|
|
59
|
+
doc.duration = lockedTime.duration;
|
|
60
|
+
doc.maxDurationVariance = 0;
|
|
61
|
+
const numDays = settings.numDays ?? 5;
|
|
62
|
+
doc.days = Array.from({ length: numDays }, (_, i) => i);
|
|
63
|
+
doc.intervals = Array.from({ length: numDays }, () => [{
|
|
64
|
+
start: 0,
|
|
65
|
+
end: 24
|
|
66
|
+
}]);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return omitBy(doc, (x) => x == null);
|
|
71
|
+
}
|
|
72
|
+
function fromLockedTimes(lockedTimes, settings, options) {
|
|
73
|
+
const defaultInterval = getDefaultInterval(settings);
|
|
74
|
+
const blockedTimes = lockedTimes.filter((x) => x.type == null || x.type == "ANY").map((lockedTime) => parseRegular(lockedTime, options)).filter((x) => !!x);
|
|
75
|
+
const complementaryHours = lockedTimes.filter((x) => x.type == "COMPLEMENTARY_TIME").map((x) => parseDynamic(x, settings, options, defaultInterval)).filter((x) => !!x);
|
|
76
|
+
const lunches = lockedTimes.filter((x) => x.type == "LUNCH").map((lockedTime) => parseDynamic(lockedTime, settings, options, defaultInterval)).filter((x) => !!x);
|
|
77
|
+
return {
|
|
78
|
+
events: [...complementaryHours, ...lunches],
|
|
79
|
+
activities: Object.entries(groupBy(complementaryHours, (x) => [x.distributionKey].flat().toSorted().join("|"))).map(([id, events]) => ({
|
|
80
|
+
id: `COMPLEMENTARY_TIME.${id}`,
|
|
81
|
+
events: events.map((x) => x.id)
|
|
82
|
+
})),
|
|
83
|
+
blockedTimes
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
//#endregion
|
|
88
|
+
export { fromLockedTimes };
|
|
89
|
+
//# sourceMappingURL=locked-times.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locked-times.mjs","names":[],"sources":["../../../../src/RS/to/input/locked-times.ts"],"sourcesContent":["import { groupBy, omitBy, uniq } from 'lodash-es';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { getDayIndex, parseDateInterval } from '../../../core/util';\nimport { idOf } from './util/util';\nimport { parseGroupReferences } from './util/parse-group-references';\nimport type { Types } from '../../types';\nimport { makeChainable } from '../../../common/make-chainable';\nimport { toDayAndStart } from './events';\nimport { getDefaultInterval } from './intervals';\nimport type { Interval } from '../../../core/interfaces';\nimport { parseLocationReferences } from './util/parse-location-references';\n\nfunction parseRegular (\n lockedTime: ConnectedTypes.lockedTime,\n options: Types.parsedToOptions,\n): Types.Entities.BlockedTime | undefined {\n const { start: startDate, end: endDate } = parseDateInterval(lockedTime, 'locked time');\n\n const duration = endDate.diff(startDate, 'minutes');\n if (duration < 5) throw new Error('(RS::To::parseRegular) Length of a locked time is less than 5 min');\n\n const start = parseFloat(startDate.format('HH.mm'));\n const day = getDayIndex(startDate);\n\n const doc: Types.Entities.BlockedTime = {\n id: idOf.lockedTime(lockedTime, options),\n day: day,\n start: start,\n duration: duration,\n };\n\n if (options.includeEntityMeta) {\n doc.name = lockedTime.displayName;\n }\n\n return doc;\n};\n\nfunction parseDynamic (\n lockedTime: ConnectedTypes.lockedTime,\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions,\n defaultInterval: Interval[]\n) {\n const duration = lockedTime.duration;\n if (!duration || duration < 5) throw new Error('(RS::To::parseDynamic) Length of a locked time is less than 5 min');\n\n // Parse location dependencies directly from coalesced edges.\n const dependencyReferences = parseLocationReferences(lockedTime.coalesced, options);\n\n const days = lockedTime.intervals\n ? makeChainable(lockedTime.intervals)\n .chain(\n x => x.map(x => getDayIndex(x.start)),\n x => uniq(x),\n )\n .value\n : undefined;\n const day = days?.length == 1 ? days[0] : undefined;\n\n // ignore locked times that reside on days that are not part of any coalesced's days\n if (day != null && lockedTime.coalesced) {\n const allowedByEvery = lockedTime.coalesced.every(x => !x.to.days?.length || x.to.days.some(x => x.day == day));\n if (!allowedByEvery) return;\n }\n\n // each type (tag) of complementary hours should distribute evenly\n const distributionKey = lockedTime.type == 'COMPLEMENTARY_TIME'\n ? 'COMPLEMENTARY_TIME.' + lockedTime.tags?.at(0)?.value\n : undefined;\n\n const intervals = lockedTime.intervals ?? defaultInterval;\n\n const doc: Types.Entities.Event = {\n id: idOf.lockedTime(lockedTime, options),\n duration: duration,\n minBreakDuration: false,\n maxDurationVariance: lockedTime.durationVariance,\n groups: parseGroupReferences({ type: 'lockedTime', item: lockedTime }, options),\n dependencies: dependencyReferences,\n intervals: idOf.intervalPairReference(intervals, undefined, options),\n distributionKey,\n ...days && { days },\n ...day && { day },\n };\n\n\n ////\n //// filter based on partialScheduleOptions\n ////\n if (options.partialScheduleOptions) {\n const { includedEvents, omittedEventsHandling } = options.partialScheduleOptions;\n if (includedEvents && !includedEvents.has(doc.id)) {\n\n if (omittedEventsHandling == 'ignore') return;\n\n if (omittedEventsHandling == 'freeze') {\n // must not be parked and have a start and duration to be frozen, otherwise it's ignored\n if (lockedTime.parked || !lockedTime.start || !lockedTime.duration) return;\n\n // fix day, start and end\n Object.assign(doc, toDayAndStart(lockedTime.start));\n doc.duration = lockedTime.duration;\n doc.maxDurationVariance = 0;\n\n // override intervals and days to not cause conflicts\n const numDays = settings.numDays ?? 5;\n doc.days = Array.from({ length: numDays }, (_, i) => i);\n doc.intervals = Array.from({ length: numDays }, () => [{ start: 0, end: 24.00 }]);\n\n // fix locations\n // > locations are always fixed for locked times\n }\n }\n }\n\n return omitBy(doc, x => x == null) as Types.Entities.Event;\n}\n\ntype Out = {\n events: Types.Entities.Event[];\n activities: Types.Entities.Activity[];\n blockedTimes: Types.Entities.BlockedTime[];\n};\nexport function fromLockedTimes (\n lockedTimes: ConnectedTypes.lockedTime[],\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions,\n): Out {\n const defaultInterval = getDefaultInterval(settings);\n\n const blockedTimes = lockedTimes\n .filter(x => x.type == null || x.type == 'ANY')\n .map(lockedTime => parseRegular(lockedTime, options))\n .filter(x => !!x) as Types.Entities.BlockedTime[];\n\n const complementaryHours = lockedTimes\n .filter(x => x.type == 'COMPLEMENTARY_TIME')\n .map(x => parseDynamic(x, settings, options, defaultInterval))\n .filter(x => !!x);\n\n const lunches = lockedTimes\n .filter(x => x.type == 'LUNCH')\n .map(lockedTime => parseDynamic(lockedTime, settings, options, defaultInterval))\n .filter(x => !!x);\n\n const events = [...complementaryHours, ...lunches];\n\n const activities = Object.entries(groupBy(complementaryHours, x => [x.distributionKey].flat().toSorted().join('|')))\n .map(([id, events]) => ({ id: `COMPLEMENTARY_TIME.${id}`, events: events.map(x => x.id) }));\n\n return { events, activities, blockedTimes };\n};"],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { range } from "../../../common/functions.mjs";
|
|
2
|
+
import { getVertexId } from "../../../core/util.mjs";
|
|
3
|
+
import moment from "moment";
|
|
4
|
+
|
|
5
|
+
//#region src/RS/to/input/periods.ts
|
|
6
|
+
function createRange({ start, end }) {
|
|
7
|
+
return {
|
|
8
|
+
start: moment.utc(start).clone().startOf("isoWeek"),
|
|
9
|
+
end: moment.utc(end).clone().endOf("isoWeek")
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function parsePeriods(periods, division, options) {
|
|
13
|
+
const divisionRange = createRange(division);
|
|
14
|
+
const weeksMap = /* @__PURE__ */ new Map();
|
|
15
|
+
for (const x = divisionRange.start.clone(); x.isSameOrBefore(divisionRange.end); x.add(1, "week")) weeksMap.set(x.toISOString(), false);
|
|
16
|
+
const out = periods.map((p) => {
|
|
17
|
+
const id = getVertexId(p, options);
|
|
18
|
+
const clippedRanges = p.ranges.map((r) => createRange(r)).filter((r) => range.overlaps(r, divisionRange)).map((r) => ({
|
|
19
|
+
start: moment.max(r.start, divisionRange.start).clone(),
|
|
20
|
+
end: moment.min(r.end, divisionRange.end).clone()
|
|
21
|
+
}));
|
|
22
|
+
const activeWeeksMap = new Map(weeksMap);
|
|
23
|
+
clippedRanges.forEach((r) => {
|
|
24
|
+
for (const x = r.start.clone(); x.isSameOrBefore(r.end); x.add(1, "week")) {
|
|
25
|
+
const key = x.toISOString();
|
|
26
|
+
activeWeeksMap.set(key, true);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
const weeks = Array.from(activeWeeksMap.entries()).sort((a, b) => moment.utc(a[0]).diff(moment.utc(b[0]))).map((x) => x[1] ? "1" : "0").join("");
|
|
30
|
+
return {
|
|
31
|
+
id,
|
|
32
|
+
weeks,
|
|
33
|
+
overlaps: weeks.length <= 64 ? weeks : ""
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
if (weeksMap.size > 64 && out && out.length <= 64) for (let i = 0; i < out.length; i++) {
|
|
37
|
+
let overlaps = "";
|
|
38
|
+
for (let j = 0; j < out.length; j++) {
|
|
39
|
+
if (i == j) {
|
|
40
|
+
overlaps += "1";
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
let overlap = false;
|
|
44
|
+
for (let k = 0; k < out[i].weeks.length; k++) if (out[i].weeks[k] === "1" && out[j].weeks[k] === "1") {
|
|
45
|
+
overlap = true;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
overlaps += overlap ? "1" : "0";
|
|
49
|
+
}
|
|
50
|
+
out[i].overlaps = overlaps;
|
|
51
|
+
}
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
export { parsePeriods };
|
|
57
|
+
//# sourceMappingURL=periods.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"periods.mjs","names":[],"sources":["../../../../src/RS/to/input/periods.ts"],"sourcesContent":["import moment from 'moment';\nimport { getVertexId } from '../../../core/util';\nimport type { ConnectedTypes } from '../../make-connected';\nimport type { Types } from '../../types';\nimport { range } from '../../../common/functions';\nimport type { Interval } from '../../../core/interfaces';\n\ntype Range = Partial<Interval<string | moment.Moment | Date>>;\ntype DateRange = Interval<moment.Moment>;\n\nfunction createRange ({ start, end }: Range): DateRange {\n return {\n start: moment.utc(start).clone().startOf('isoWeek'),\n end: moment.utc(end ).clone().endOf ('isoWeek')\n };\n}\n\nexport function parsePeriods (\n periods: ConnectedTypes.period[],\n division: ConnectedTypes.division,\n options: Types.parsedToOptions\n): Types.Entities.Period[] {\n const divisionRange = createRange(division);\n\n // build a mapping of week starts to boolean active flags\n const weeksMap = new Map<string, boolean>();\n for (const x = divisionRange.start.clone(); x.isSameOrBefore(divisionRange.end); x.add(1, 'week')) {\n weeksMap.set(x.toISOString(), false);\n }\n\n const out = periods.map((p): Types.Entities.Period => {\n const id = getVertexId(p, options);\n\n // preserve only the ranges that lay within the division range\n const clippedRanges = p.ranges\n .map(r => createRange(r))\n .filter(r => range.overlaps(r, divisionRange))\n .map(r => ({\n start: moment.max(r.start, divisionRange.start).clone(),\n end: moment.min(r.end, divisionRange.end ).clone()\n }));\n\n // get the active weeks by checking which weeks in the division are covered by the clipped ranges\n const activeWeeksMap = new Map(weeksMap);\n clippedRanges.forEach(r => {\n for (const x = r.start.clone(); x.isSameOrBefore(r.end); x.add(1, 'week')) {\n const key = x.toISOString();\n activeWeeksMap.set(key, true);\n }\n });\n\n // build the active weeks string\n const weeks = Array.from(activeWeeksMap.entries())\n .sort((a, b) => moment.utc(a[0]).diff(moment.utc(b[0])))\n .map(x => x[1] ? '1' : '0')\n .join('');\n\n const overlaps = weeks.length <= 64 ? weeks : '';\n\n return { id, weeks, overlaps };\n });\n\n // If there are more than 64 weeks but less than or equal to 64 periods, we compute the overlap between periods directly.\n if (weeksMap.size > 64 && out && out.length <= 64) {\n for (let i = 0; i < out.length; i++) {\n let overlaps = '';\n for (let j = 0; j < out.length; j++) {\n // self-overlap\n if (i == j) {\n overlaps += '1';\n continue;\n }\n\n // overlap with other periods\n let overlap = false;\n for (let k = 0; k < out[i].weeks.length; k++) {\n if (out[i].weeks[k] === '1' && out[j].weeks[k] === '1') {\n overlap = true;\n break;\n }\n }\n overlaps += overlap ? '1' : '0';\n }\n out[i].overlaps = overlaps;\n }\n }\n\n return out;\n}"],"mappings":";;;;;AAUA,SAAS,YAAa,EAAE,OAAO,OAAyB;AACtD,QAAO;EACL,OAAO,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,UAAU;EACnD,KAAO,OAAO,IAAI,IAAM,CAAC,OAAO,CAAC,MAAQ,UAAU;EACpD;;AAGH,SAAgB,aACd,SACA,UACA,SACyB;CACzB,MAAM,gBAAgB,YAAY,SAAS;CAG3C,MAAM,2BAAW,IAAI,KAAsB;AAC3C,MAAK,MAAM,IAAI,cAAc,MAAM,OAAO,EAAE,EAAE,eAAe,cAAc,IAAI,EAAE,EAAE,IAAI,GAAG,OAAO,CAC/F,UAAS,IAAI,EAAE,aAAa,EAAE,MAAM;CAGtC,MAAM,MAAM,QAAQ,KAAK,MAA6B;EACpD,MAAM,KAAK,YAAY,GAAG,QAAQ;EAGlC,MAAM,gBAAgB,EAAE,OACrB,KAAI,MAAK,YAAY,EAAE,CAAC,CACxB,QAAO,MAAK,MAAM,SAAS,GAAG,cAAc,CAAC,CAC7C,KAAI,OAAM;GACT,OAAO,OAAO,IAAI,EAAE,OAAO,cAAc,MAAM,CAAC,OAAO;GACvD,KAAO,OAAO,IAAI,EAAE,KAAO,cAAc,IAAM,CAAC,OAAO;GACxD,EAAE;EAGL,MAAM,iBAAiB,IAAI,IAAI,SAAS;AACxC,gBAAc,SAAQ,MAAK;AACzB,QAAK,MAAM,IAAI,EAAE,MAAM,OAAO,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,OAAO,EAAE;IACzE,MAAM,MAAM,EAAE,aAAa;AAC3B,mBAAe,IAAI,KAAK,KAAK;;IAE/B;EAGF,MAAM,QAAQ,MAAM,KAAK,eAAe,SAAS,CAAC,CAC/C,MAAM,GAAG,MAAM,OAAO,IAAI,EAAE,GAAG,CAAC,KAAK,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC,CACvD,KAAI,MAAK,EAAE,KAAK,MAAM,IAAI,CAC1B,KAAK,GAAG;AAIX,SAAO;GAAE;GAAI;GAAO,UAFH,MAAM,UAAU,KAAK,QAAQ;GAEhB;GAC9B;AAGF,KAAI,SAAS,OAAO,MAAM,OAAO,IAAI,UAAU,GAC7C,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;EACnC,IAAI,WAAW;AACf,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AAEnC,OAAI,KAAK,GAAG;AACV,gBAAY;AACZ;;GAIF,IAAI,UAAU;AACd,QAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,MAAM,QAAQ,IACvC,KAAI,IAAI,GAAG,MAAM,OAAO,OAAO,IAAI,GAAG,MAAM,OAAO,KAAK;AACtD,cAAU;AACV;;AAGJ,eAAY,UAAU,MAAM;;AAE9B,MAAI,GAAG,WAAW;;AAItB,QAAO"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/RS/to/input/settings.ts
|
|
2
|
+
function parseSettings(settings) {
|
|
3
|
+
if (!settings.numDays) throw new Error("(RS::To::parseSettings) numDays is falsy");
|
|
4
|
+
if (!settings.discretization) throw new Error("(RS::To::parseSettings) discretization is falsy");
|
|
5
|
+
return {
|
|
6
|
+
numDays: settings.numDays,
|
|
7
|
+
discretization: settings.discretization
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { parseSettings };
|
|
13
|
+
//# sourceMappingURL=settings.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.mjs","names":[],"sources":["../../../../src/RS/to/input/settings.ts"],"sourcesContent":["import type { Types } from '../../types';\nimport type { ConnectedTypes } from '../../make-connected';\n\nexport function parseSettings (settings: ConnectedTypes.divisionSettings): Types.Entities.Settings {\n\n if (!settings.numDays) throw new Error('(RS::To::parseSettings) numDays is falsy');\n if (!settings.discretization) throw new Error('(RS::To::parseSettings) discretization is falsy');\n\n return {\n numDays: settings.numDays,\n discretization: settings.discretization,\n };\n};"],"mappings":";AAGA,SAAgB,cAAe,UAAoE;AAEjG,KAAI,CAAC,SAAS,QAAgB,OAAM,IAAI,MAAM,2CAA2C;AACzF,KAAI,CAAC,SAAS,eAAgB,OAAM,IAAI,MAAM,kDAAkD;AAEhG,QAAO;EACL,SAAgB,SAAS;EACzB,gBAAgB,SAAS;EAC1B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { idOf } from "./util/util.mjs";
|
|
2
|
+
import { parseDayIndices } from "./util/parse-days.mjs";
|
|
3
|
+
import { parseMaxWorkingHours } from "./util/parse-max-working-hours.mjs";
|
|
4
|
+
import { getDefaultInterval } from "./intervals.mjs";
|
|
5
|
+
import { omitBy } from "lodash-es";
|
|
6
|
+
|
|
7
|
+
//#region src/RS/to/input/teachers.ts
|
|
8
|
+
function fromTeachers(teachers, settings, options) {
|
|
9
|
+
const defaultInterval = getDefaultInterval(settings);
|
|
10
|
+
return teachers.map((teacher) => {
|
|
11
|
+
const intervals = teacher.intervals ?? defaultInterval;
|
|
12
|
+
const rootInterval = teacher.rootInterval ?? settings.defaultRootInterval;
|
|
13
|
+
const doc = {
|
|
14
|
+
id: idOf.teacher(teacher, options),
|
|
15
|
+
group_type: "personal",
|
|
16
|
+
minimizeGaps: settings.minimizeTeacherGaps,
|
|
17
|
+
minimizeDependencyAlternation: true,
|
|
18
|
+
weight: teacher.weight,
|
|
19
|
+
intervals: idOf.intervalPairReference(intervals, rootInterval, options),
|
|
20
|
+
days: parseDayIndices(teacher.days, settings),
|
|
21
|
+
blockedTimes: teacher.lockedTimes?.map((x) => idOf.lockedTime(x, options)),
|
|
22
|
+
minBreakDuration: teacher.minBreakLength,
|
|
23
|
+
...parseMaxWorkingHours(teacher)
|
|
24
|
+
};
|
|
25
|
+
if (options.includeEntityMeta) doc.name = teacher.displayName;
|
|
26
|
+
return omitBy(doc, (x) => x == null);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
export { fromTeachers };
|
|
32
|
+
//# sourceMappingURL=teachers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teachers.mjs","names":[],"sources":["../../../../src/RS/to/input/teachers.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { Types } from '../../types';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { parseMaxWorkingHours } from './util/parse-max-working-hours';\nimport { parseDayIndices } from './util/parse-days';\nimport { idOf } from './util/util';\nimport { getDefaultInterval } from './intervals';\n\nexport function fromTeachers (\n teachers: ConnectedTypes.teacher[],\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions\n): Types.Entities.Group[] {\n const defaultInterval = getDefaultInterval(settings);\n\n return teachers\n .map(teacher => {\n const intervals = teacher.intervals ?? defaultInterval;\n const rootInterval = teacher.rootInterval ?? settings.defaultRootInterval;\n\n const doc: Types.Entities.Group = {\n id: idOf.teacher(teacher, options),\n group_type: 'personal',\n minimizeGaps: settings.minimizeTeacherGaps,\n minimizeDependencyAlternation: true,\n weight: teacher.weight,\n intervals: idOf.intervalPairReference(intervals, rootInterval, options),\n days: parseDayIndices(teacher.days, settings),\n blockedTimes: teacher.lockedTimes?.map(x => idOf.lockedTime(x, options)),\n minBreakDuration: teacher.minBreakLength,\n ...parseMaxWorkingHours(teacher),\n };\n\n if (options.includeEntityMeta) {\n doc.name = teacher.displayName;\n }\n\n return omitBy(doc, x => x == null) as Types.Entities.Group;\n });\n};\n"],"mappings":";;;;;;;AAQA,SAAgB,aACd,UACA,UACA,SACwB;CACxB,MAAM,kBAAkB,mBAAmB,SAAS;AAEpD,QAAO,SACJ,KAAI,YAAW;EACd,MAAM,YAAe,QAAQ,aAAgB;EAC7C,MAAM,eAAe,QAAQ,gBAAgB,SAAS;EAEtD,MAAM,MAA4B;GAChC,IAA+B,KAAK,QAAQ,SAAS,QAAQ;GAC7D,YAA+B;GAC/B,cAA+B,SAAS;GACxC,+BAA+B;GAC/B,QAA+B,QAAQ;GACvC,WAA+B,KAAK,sBAAsB,WAAW,cAAc,QAAQ;GAC3F,MAA+B,gBAAgB,QAAQ,MAAM,SAAS;GACtE,cAA+B,QAAQ,aAAa,KAAI,MAAK,KAAK,WAAW,GAAG,QAAQ,CAAC;GACzF,kBAA+B,QAAQ;GACvC,GAAG,qBAAqB,QAAQ;GACjC;AAED,MAAI,QAAQ,kBACV,KAAI,OAAO,QAAQ;AAGrB,SAAO,OAAO,MAAK,MAAK,KAAK,KAAK;GAClC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/RS/to/input/util/parse-days.ts
|
|
2
|
+
function parseDayIndices(days, settings) {
|
|
3
|
+
if (!days) return;
|
|
4
|
+
if (days.length) return days.map((x) => x.day);
|
|
5
|
+
return [...Array.from({ length: settings.numDays })].map((_, i) => i);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { parseDayIndices };
|
|
10
|
+
//# sourceMappingURL=parse-days.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-days.mjs","names":[],"sources":["../../../../../src/RS/to/input/util/parse-days.ts"],"sourcesContent":["import type { ConnectedTypes } from '../../../make-connected';\nimport type { Types } from '../../../types';\n\nexport function parseDayIndices (\n days: ConnectedTypes.event['days'] | ConnectedTypes.course['days'],\n settings: ConnectedTypes.divisionSettings\n): Types.Shared.DayIndices | undefined {\n if (!days) return;\n\n if (days.length) return days.map(x => x.day);\n\n // empty days means all days selected (since no days selected is prohibited)\n return [...Array.from({ length: settings.numDays })].map((_, i) => i);\n}"],"mappings":";AAGA,SAAgB,gBACd,MACA,UACqC;AACrC,KAAI,CAAC,KAAM;AAEX,KAAI,KAAK,OAAQ,QAAO,KAAK,KAAI,MAAK,EAAE,IAAI;AAG5C,QAAO,CAAC,GAAG,MAAM,KAAK,EAAE,QAAQ,SAAS,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,EAAE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { getVertexId } from "../../../../core/util.mjs";
|
|
2
|
+
import { makeChainable } from "../../../../common/make-chainable/index.mjs";
|
|
3
|
+
import { idOf } from "./util.mjs";
|
|
4
|
+
import { groupBy } from "lodash-es";
|
|
5
|
+
|
|
6
|
+
//#region src/RS/to/input/util/parse-group-references.ts
|
|
7
|
+
/**
|
|
8
|
+
* Merges group references with their parent groups while ensuring that a group is present at
|
|
9
|
+
* most once and that parent groups are prioritized as they carry no member exclusions.
|
|
10
|
+
*/
|
|
11
|
+
function mergeWithParentGroups(references, options) {
|
|
12
|
+
return makeChainable(references).chain((x) => x.flatMap((x) => [x, ...(x.to.parentGroups ?? []).map((y) => ({
|
|
13
|
+
to: y,
|
|
14
|
+
isParentGroup: true
|
|
15
|
+
}))]), (x) => groupBy(x, (x) => getVertexId(x.to, options)), (x) => Object.values(x).map((xs) => xs.find((x) => x.isParentGroup) ?? xs.at(0)).filter((x) => x != null)).value;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns the source of group, teacher, and participant references for a given item while taking into account event inheritance.
|
|
19
|
+
*/
|
|
20
|
+
function getSources(itemAndType) {
|
|
21
|
+
if (itemAndType.type == "lockedTime") return {
|
|
22
|
+
teachers: itemAndType.item.coalesced?.filter((x) => x.toModel == "teachers"),
|
|
23
|
+
groups: itemAndType.item.coalesced?.filter((x) => x.toModel == "groups")
|
|
24
|
+
};
|
|
25
|
+
const item = itemAndType.item;
|
|
26
|
+
const teachersSource = item.teachers ? item : "course" in item && item.course ? item.course : item;
|
|
27
|
+
const groupsAndParticipantsSource = item.groups || item.participants ? item : "course" in item && item.course ? item.course : item;
|
|
28
|
+
return {
|
|
29
|
+
teachers: teachersSource.teachers ?? void 0,
|
|
30
|
+
groups: groupsAndParticipantsSource.groups ?? void 0,
|
|
31
|
+
participants: groupsAndParticipantsSource.participants ?? void 0
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parses group references from a course or event while carrying out event inheritance and taking into account parent groups.
|
|
36
|
+
*/
|
|
37
|
+
function parseGroupReferences(itemAndType, options) {
|
|
38
|
+
const sources = getSources(itemAndType);
|
|
39
|
+
const teacherReferences = (sources.teachers ?? []).map((x) => ({ group: idOf.teacher(x.to, options) }));
|
|
40
|
+
const groupReferences = mergeWithParentGroups(sources.groups ?? [], options).map((x) => {
|
|
41
|
+
if (x.to.species != "class" || x.exclude?.length) return { individuals: idOf.groupReference(x, options) };
|
|
42
|
+
return { group: idOf.group(x.to, options) };
|
|
43
|
+
});
|
|
44
|
+
const participantReferences = sources.participants?.length ? { individuals: sources.participants.map((x) => idOf.person(x.to, options)) } : void 0;
|
|
45
|
+
return new Array().concat(teacherReferences, groupReferences, participantReferences ? [participantReferences] : []).map((x) => [x]);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { parseGroupReferences };
|
|
50
|
+
//# sourceMappingURL=parse-group-references.mjs.map
|