@royalschedule/maps 4.0.32 → 4.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +307 -0
- package/dist/Excel/index.mjs +13 -0
- package/dist/Excel/index.mjs.map +1 -0
- package/dist/Excel/v1/from/index.mjs +289 -0
- package/dist/Excel/v1/from/index.mjs.map +1 -0
- package/dist/Excel/v1/index.d.mts +240 -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 +528 -0
- package/dist/Excel/v2/from/index.mjs.map +1 -0
- package/dist/Excel/v2/index.d.mts +302 -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 +70 -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 +70 -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 +37 -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 +88 -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 +24 -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 +58 -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 +464 -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 +95 -0
- package/dist/Skola24/txt/from/period.mjs.map +1 -0
- package/dist/Skola24/txt/from/schedules.d.mts +17 -0
- package/dist/Skola24/txt/from/schedules.mjs +273 -0
- package/dist/Skola24/txt/from/schedules.mjs.map +1 -0
- package/dist/Skola24/txt/from/util.mjs +17 -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 +141 -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/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/overlap-groups.mjs +12 -0
- package/dist/core/from/overlap-groups.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 +132 -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/courses.d.mts +66 -0
- package/dist/core/interfaces/vertices/division-settings.d.mts +54 -0
- package/dist/core/interfaces/vertices/divisions.d.mts +31 -0
- package/dist/core/interfaces/vertices/events.d.mts +104 -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 +231 -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/overlap-groups.d.mts +17 -0
- package/dist/core/interfaces/vertices/periods.d.mts +15 -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 +18 -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 +69 -0
- package/dist/core/interfaces/vertices/vertex-query.d.mts +112 -0
- package/dist/core/interfaces/vertices/vertex-query.mjs +114 -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 +41 -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 +43 -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/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/overlap-groups.mjs +27 -0
- package/dist/core/to/overlap-groups.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 +29 -24
- 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 -305
- 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 -238
- 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 -300
- 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 -37
- 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 -232
- 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/collections.js +0 -58
- package/dist/RS/to/input/collections.js.map +0 -1
- package/dist/RS/to/input/default.js +0 -35
- package/dist/RS/to/input/default.js.map +0 -1
- package/dist/RS/to/input/dependencies.js +0 -31
- package/dist/RS/to/input/dependencies.js.map +0 -1
- package/dist/RS/to/input/dynamic-locked-times.js +0 -70
- package/dist/RS/to/input/dynamic-locked-times.js.map +0 -1
- package/dist/RS/to/input/events.js +0 -90
- package/dist/RS/to/input/events.js.map +0 -1
- package/dist/RS/to/input/groups.js +0 -40
- package/dist/RS/to/input/groups.js.map +0 -1
- package/dist/RS/to/input/individuals.js +0 -49
- package/dist/RS/to/input/individuals.js.map +0 -1
- package/dist/RS/to/input/input.js +0 -54
- 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/periods.js +0 -91
- package/dist/RS/to/input/periods.js.map +0 -1
- package/dist/RS/to/input/settings.js +0 -20
- package/dist/RS/to/input/settings.js.map +0 -1
- package/dist/RS/to/input/teachers.js +0 -40
- package/dist/RS/to/input/teachers.js.map +0 -1
- package/dist/RS/to/input/util/attach-locked-times.js +0 -27
- package/dist/RS/to/input/util/attach-locked-times.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 -58
- package/dist/RS/to/input/util/parse-group-references.js.map +0 -1
- package/dist/RS/to/input/util/parse-intervals.js +0 -58
- package/dist/RS/to/input/util/parse-intervals.js.map +0 -1
- package/dist/RS/to/input/util/parse-location-references.js +0 -31
- 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 -17
- 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 -66
- 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 -18
- package/dist/RS/types/collections.d.ts +0 -33
- package/dist/RS/types/configurations.d.ts +0 -10
- package/dist/RS/types/default.d.ts +0 -31
- package/dist/RS/types/dependencies.d.ts +0 -16
- package/dist/RS/types/event-configuration.d.ts +0 -20
- package/dist/RS/types/events.d.ts +0 -34
- package/dist/RS/types/groups.d.ts +0 -27
- package/dist/RS/types/index.d.ts +0 -50
- package/dist/RS/types/individuals.d.ts +0 -16
- package/dist/RS/types/locked-times.d.ts +0 -12
- package/dist/RS/types/period.d.ts +0 -27
- package/dist/RS/types/root-intervals.d.ts +0 -10
- package/dist/RS/types/schedule-data.d.ts +0 -23
- package/dist/RS/types/settings.d.ts +0 -15
- package/dist/RS/types/shared.d.ts +0 -27
- package/dist/RS/types/to.d.ts +0 -72
- 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 -12774
- 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 -461
- 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 -18
- 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 -132
- 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/courses.d.ts +0 -67
- package/dist/core/interfaces/vertices/division-settings.d.ts +0 -55
- package/dist/core/interfaces/vertices/divisions.d.ts +0 -30
- package/dist/core/interfaces/vertices/events.d.ts +0 -101
- 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 -222
- package/dist/core/interfaces/vertices/index.js +0 -3
- 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/overlap-groups.d.ts +0 -16
- package/dist/core/interfaces/vertices/periods.d.ts +0 -13
- 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 -17
- package/dist/core/interfaces/vertices/teachers.d.ts +0 -42
- package/dist/core/interfaces/vertices/threads.d.ts +0 -31
- 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 -70
- package/dist/core/interfaces/vertices/vertex-query.d.ts +0 -108
- package/dist/core/interfaces/vertices/vertex-query.js +0 -110
- 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 -43
- 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/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 -46
- package/dist/core/to/schedules.js +0 -42
- 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 -131
- package/dist/core/util.js +0 -46
- 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
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { getDayIndex } from "../../../core/util.js";
|
|
2
|
-
import { makeChainable } from "../../../common/make-chainable/index.js";
|
|
3
|
-
import { idOf } from "./util/util.js";
|
|
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::convertIntervals) Interval missing start or end for day ${day}: ${JSON.stringify(i)}`);
|
|
46
|
-
const start = parseFloat(parseIntervalDate(i.start).format("HH.mm"));
|
|
47
|
-
const end = parseFloat(parseIntervalDate(i.end).format("HH.mm"));
|
|
48
|
-
return {
|
|
49
|
-
beg: start,
|
|
50
|
-
end
|
|
51
|
-
};
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Converts
|
|
56
|
-
*/
|
|
57
|
-
function combineAndMapIntervals(_intervals, rootInterval, settings) {
|
|
58
|
-
const intervals = toFloatIntervals(standardizeIntervals(_intervals, settings));
|
|
59
|
-
if (rootInterval) {
|
|
60
|
-
if (!intervals) throw new Error("(RS::To::parseIntervals) no accompanying intervals for rootInterval");
|
|
61
|
-
return makeChainable(rootInterval.intervals).chain((x) => groupBy(x, (i) => getDayIndex(i.start)), (x) => Object.entries(x).map(([day, is]) => {
|
|
62
|
-
const limits = intervals.at(parseInt(day));
|
|
63
|
-
if (!limits) throw new Error(`(RS::To::Intervals) Day ${day} not found in dayStartAndEnds`);
|
|
64
|
-
return is.map((i) => ({
|
|
65
|
-
beg: parseFloat(parseIntervalDate(i.start).format("HH.mm")),
|
|
66
|
-
end: parseFloat(parseIntervalDate(i.end).format("HH.mm")),
|
|
67
|
-
binary: true
|
|
68
|
-
})).filter((i) => i.beg >= limits.beg && i.end <= limits.end);
|
|
69
|
-
}).reduce((acc, curr, index) => {
|
|
70
|
-
acc[index] = curr;
|
|
71
|
-
return acc;
|
|
72
|
-
}, Array.from({ length: settings.numDays }, () => []))).value;
|
|
73
|
-
}
|
|
74
|
-
if (intervals) return intervals.map((i) => [i]);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* extracts the default interval given the division settings
|
|
78
|
-
*/
|
|
79
|
-
function getDefaultInterval(settings) {
|
|
80
|
-
const { dayStart, dayEnd } = settings;
|
|
81
|
-
if (!dayStart) throw new Error("(RS::To::getDefaultInterval) \"settings.dayStart\" is falsy");
|
|
82
|
-
if (!dayEnd) throw new Error("(RS::To::getDefaultInterval) \"settings.dayEnd\" is falsy");
|
|
83
|
-
return [{
|
|
84
|
-
start: dayStart,
|
|
85
|
-
end: dayEnd
|
|
86
|
-
}];
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Computes the default interval id given the division settings
|
|
90
|
-
*/
|
|
91
|
-
function computesDefaultIntervalId(settings, options) {
|
|
92
|
-
return idOf.intervalPairReference(getDefaultInterval(settings), void 0, options);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Extracts all unique intervals and interval-root interval pairs used by the provided entities
|
|
96
|
-
*/
|
|
97
|
-
function extractUniqueIntervals(settings, groups, teachers, courses, events, lockedTimes, options) {
|
|
98
|
-
const defaultInterval = getDefaultInterval(settings);
|
|
99
|
-
const withRootIntervals = [...groups, ...teachers].map((item) => {
|
|
100
|
-
const intervals = item.intervals ?? defaultInterval;
|
|
101
|
-
const rootInterval = item.rootInterval ?? settings.defaultRootInterval;
|
|
102
|
-
return {
|
|
103
|
-
id: idOf.intervalPairReference(intervals, rootInterval, options),
|
|
104
|
-
data: [intervals, rootInterval]
|
|
105
|
-
};
|
|
106
|
-
});
|
|
107
|
-
const withoutRootIntervals = [
|
|
108
|
-
{ intervals: defaultInterval },
|
|
109
|
-
...courses,
|
|
110
|
-
...events,
|
|
111
|
-
...lockedTimes
|
|
112
|
-
].map((item) => {
|
|
113
|
-
const interval = item.intervals ?? ("course" in item ? item.course?.intervals : void 0) ?? defaultInterval;
|
|
114
|
-
return {
|
|
115
|
-
id: idOf.intervalPairReference(interval, void 0, options),
|
|
116
|
-
data: [interval, void 0]
|
|
117
|
-
};
|
|
118
|
-
});
|
|
119
|
-
return makeChainable(withRootIntervals).chain((x) => x.concat(withoutRootIntervals), (x) => uniqBy(x, (x$1) => x$1.id), (x) => x.map(({ id, data: [_intervals, rootInterval] }) => {
|
|
120
|
-
const value = combineAndMapIntervals(_intervals, rootInterval, settings);
|
|
121
|
-
if (!value) return;
|
|
122
|
-
return {
|
|
123
|
-
id,
|
|
124
|
-
value
|
|
125
|
-
};
|
|
126
|
-
}).filter((x$1) => x$1 != null)).value;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
//#endregion
|
|
130
|
-
export { computesDefaultIntervalId, extractUniqueIntervals, getDefaultInterval, parseIntervalDate };
|
|
131
|
-
//# sourceMappingURL=intervals.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"intervals.js","names":["x"],"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): { beg: number, end: number }[] | undefined {\n return intervals?.map((i, day: number) => {\n if (!i.start || !i.end) throw new Error(`(RS::To::convertIntervals) 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 { beg: start, end: 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.interval[][] | undefined {\n const intervals = toFloatIntervals(standardizeIntervals(_intervals, settings));\n\n if (rootInterval) {\n if (!intervals) throw new Error('(RS::To::parseIntervals) 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::Intervals) 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 beg: parseFloat(parseIntervalDate(i.start).format('HH.mm')),\n end: parseFloat(parseIntervalDate(i.end ).format('HH.mm')),\n binary: true\n } satisfies Types.interval))\n .filter(i => i.beg >= limits.beg && i.end <= limits.end);\n })\n // ensure that all days are represented, even if empty\n .reduce<Types.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.rootInterval[] {\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.rootInterval>;\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,MACzB,QAAO,OAAO,IAAI,MAAM;AAI1B,SAAO,OAAO,IAAI;;AAGpB,QAAO,OAAO,IAAI;;;;;AAMpB,SAAS,qBACP,WACA,UACwB;AACxB,KAAI,WAAW,UAAU,GAAG;EAC1B,MAAM,IAAI,UAAU;EACpB,MAAM,QAAQ,kBAAkB,EAAE;EAClC,MAAM,MAAQ,kBAAkB,EAAE;AAClC,SAAO,MAAM,KAAK,EAAE,QAAQ,SAAS,kBAAkB;GAAE,OAAO,MAAM;GAAS,KAAK,IAAI;;;AAG1F,QAAO;;;;;AAMT,SAAS,iBACP,WAC4C;AAC5C,QAAO,WAAW,KAAK,GAAG,QAAgB;AACxC,MAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAK,OAAM,IAAI,MAAM,oEAAoE,IAAI,IAAI,KAAK,UAAU;EACnI,MAAM,QAAQ,WAAW,kBAAkB,EAAE,OAAO,OAAO;EAC3D,MAAM,MAAQ,WAAW,kBAAkB,EAAE,KAAO,OAAO;AAC3D,SAAO;GAAE,KAAK;GAAY;;;;;;;AAO9B,SAAS,uBACP,YACA,cACA,UACgC;CAChC,MAAM,YAAY,iBAAiB,qBAAqB,YAAY;AAEpE,KAAI,cAAc;AAChB,MAAI,CAAC,UAAW,OAAM,IAAI,MAAM;AAChC,SAAO,cAAc,aAAa,WAC/B,OACC,MAAK,QAAQ,IAAG,MAAK,YAAY,EAAE,UACnC,MAAK,OAAO,QAAQ,GACjB,KAAK,CAAC,KAAK,QAAQ;GAClB,MAAM,SAAS,UAAU,GAAG,SAAS;AACrC,OAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,2BAA2B,IAAI;AAG5D,UAAO,GACJ,KAAI,OAAM;IACT,KAAQ,WAAW,kBAAkB,EAAE,OAAO,OAAO;IACrD,KAAQ,WAAW,kBAAkB,EAAE,KAAO,OAAO;IACrD,QAAQ;OAET,QAAO,MAAK,EAAE,OAAO,OAAO,OAAO,EAAE,OAAO,OAAO;KAGvD,QAA4B,KAAK,MAAM,UAAU;AAChD,OAAI,SAAS;AACb,UAAO;KACN,MAAM,KAAK,EAAE,QAAQ,SAAS,iBAAiB,MAErD;;AAEL,KAAI,UACF,QAAO,UAAU,KAAI,MAAK,CAAC;;;;;AAQ/B,SAAgB,mBAAoB,UAAuD;CACzF,MAAM,EAAE,UAAU,WAAW;AAC7B,KAAI,CAAC,SAAU,OAAM,IAAI,MAAM;AAC/B,KAAI,CAAC,OAAU,OAAM,IAAI,MAAM;AAC/B,QAAO,CAAC;EAAE,OAAO;EAAU,KAAK;;;;;;AAMlC,SAAgB,0BACd,UACA,SACQ;AACR,QAAO,KAAK,sBAAsB,mBAAmB,WAAW,QAAW;;;;;AAM7E,SAAgB,uBACd,UACA,QACA,UACA,SACA,QACA,aACA,SACsB;CACtB,MAAM,kBAAkB,mBAAmB;CAI3C,MAAM,oBAAoB,CAAC,GAAG,QAAQ,GAAG,UACtC,KAAK,SAA0B;EAC9B,MAAM,YAAe,KAAK,aAAgB;EAC1C,MAAM,eAAe,KAAK,gBAAgB,SAAS;AAEnD,SAAO;GACL,IAAM,KAAK,sBAAsB,WAAW,cAAc;GAC1D,MAAM,CAAC,WAAW;;;CAIxB,MAAM,uBAAuB;EAAC,EAAE,WAAW;EAAmB,GAAG;EAAS,GAAG;EAAQ,GAAG;GACrF,KAAK,SAA0B;EAC9B,MAAM,WAAW,KAAK,cAAc,YAAY,OAAO,KAAK,QAAQ,YAAY,WAAc;AAE9F,SAAO;GACL,IAAM,KAAK,sBAAsB,UAAU,QAAW;GACtD,MAAM,CAAC,UAAU;;;AAIvB,QAAO,cAAc,mBAClB,OACC,MAAK,EAAE,OAAO,wBACd,MAAK,OAAO,IAAG,QAAKA,IAAE,MACtB,MAAK,EACF,KAAK,EAAE,IAAI,MAAM,CAAC,YAAY,oBAAoB;EAEjD,MAAM,QAAQ,uBAAuB,YAAY,cAAc;AAC/D,MAAI,CAAC,MAAO;AACZ,SAAO;GAAE;GAAI;;IAEd,QAAO,QAAKA,OAAK,OAErB"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { getIdKey, getVertexId } from "../../../core/util.js";
|
|
2
|
-
import { makeChainable } from "../../../common/make-chainable/index.js";
|
|
3
|
-
import { range } from "../../../common/functions.js";
|
|
4
|
-
import { groupBy } from "lodash-es";
|
|
5
|
-
import moment from "moment";
|
|
6
|
-
|
|
7
|
-
//#region src/RS/to/input/periods.ts
|
|
8
|
-
function createRange({ start, end }) {
|
|
9
|
-
return {
|
|
10
|
-
start: moment.utc(start).clone().startOf("isoWeek"),
|
|
11
|
-
end: moment.utc(end).clone().endOf("isoWeek")
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Used by the default values as the id if no period is specified.
|
|
16
|
-
*/
|
|
17
|
-
const DEFAULT_PERIOD_ID = "DEFAULT_PERIOD";
|
|
18
|
-
function parsePeriods(periods, division, options) {
|
|
19
|
-
const idKey = getIdKey(options);
|
|
20
|
-
if (!periods?.length) return { map: /* @__PURE__ */ new Map() };
|
|
21
|
-
const parsedPeriods = periods.map((x) => ({
|
|
22
|
-
id: getVertexId(x, idKey),
|
|
23
|
-
ranges: x.ranges.map((r) => createRange(r))
|
|
24
|
-
}));
|
|
25
|
-
parsedPeriods.push({
|
|
26
|
-
id: DEFAULT_PERIOD_ID,
|
|
27
|
-
ranges: [createRange(division)]
|
|
28
|
-
});
|
|
29
|
-
const grouped = makeChainable(parsedPeriods).chain((x) => x.map((x$1) => ({
|
|
30
|
-
...x$1,
|
|
31
|
-
overlap: parsedPeriods.map((y) => range.overlaps(x$1.ranges, y.ranges) ? "1" : "0").join("")
|
|
32
|
-
})), (x) => groupBy(x, (x$1) => x$1.overlap), (x) => Object.values(x).map((x$1, i) => ({
|
|
33
|
-
ids: x$1.map((x$2) => x$2.id),
|
|
34
|
-
index: i,
|
|
35
|
-
ranges: x$1[0].ranges
|
|
36
|
-
}))).value;
|
|
37
|
-
const matrix = grouped.map((x) => grouped.map((y) => range.overlaps(x.ranges, y.ranges) ? "1" : "0").join("")).join("");
|
|
38
|
-
if (matrix == "" || matrix == "0") throw new Error("(RS::To::parsePeriods) invalid matrix value: " + matrix);
|
|
39
|
-
const indexMap = new Map(grouped.flatMap((xs) => xs.ids.map((id) => [id, xs.index])));
|
|
40
|
-
return {
|
|
41
|
-
map: indexMap,
|
|
42
|
-
matrix
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
function _parsePeriods(periods, division, options) {
|
|
46
|
-
const divisionRange = createRange(division);
|
|
47
|
-
const weeksMap = /* @__PURE__ */ new Map();
|
|
48
|
-
for (const x = divisionRange.start.clone(); x.isSameOrBefore(divisionRange.end); x.add(1, "week")) weeksMap.set(x.toISOString(), false);
|
|
49
|
-
const out = periods?.map((p) => {
|
|
50
|
-
const id = getVertexId(p, options);
|
|
51
|
-
const clippedRanges = p.ranges.map((r) => createRange(r)).filter((r) => range.overlaps(r, divisionRange)).map((r) => ({
|
|
52
|
-
start: moment.max(r.start, divisionRange.start).clone(),
|
|
53
|
-
end: moment.min(r.end, divisionRange.end).clone()
|
|
54
|
-
}));
|
|
55
|
-
const activeWeeksMap = new Map(weeksMap);
|
|
56
|
-
clippedRanges.forEach((r) => {
|
|
57
|
-
for (const x = r.start.clone(); x.isSameOrBefore(r.end); x.add(1, "week")) {
|
|
58
|
-
const key = x.toISOString();
|
|
59
|
-
activeWeeksMap.set(key, true);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
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("");
|
|
63
|
-
const overlaps = weeks.length <= 64 ? weeks : "";
|
|
64
|
-
return {
|
|
65
|
-
id,
|
|
66
|
-
weeks,
|
|
67
|
-
overlaps
|
|
68
|
-
};
|
|
69
|
-
});
|
|
70
|
-
if (weeksMap.size > 64 && out && out.length <= 64) for (let i = 0; i < out.length; i++) {
|
|
71
|
-
let overlaps = "";
|
|
72
|
-
for (let j = 0; j < out.length; j++) {
|
|
73
|
-
if (i == j) {
|
|
74
|
-
overlaps += "1";
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
let overlap = false;
|
|
78
|
-
for (let k = 0; k < out[i].weeks.length; k++) if (out[i].weeks[k] === "1" && out[j].weeks[k] === "1") {
|
|
79
|
-
overlap = true;
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
overlaps += overlap ? "1" : "0";
|
|
83
|
-
}
|
|
84
|
-
out[i].overlaps = overlaps;
|
|
85
|
-
}
|
|
86
|
-
return out;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
//#endregion
|
|
90
|
-
export { DEFAULT_PERIOD_ID, _parsePeriods, parsePeriods };
|
|
91
|
-
//# sourceMappingURL=periods.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"periods.js","names":["x"],"sources":["../../../../src/RS/to/input/periods.ts"],"sourcesContent":["import { groupBy } from 'lodash-es';\nimport moment from 'moment';\nimport { getIdKey, getVertexId } from '../../../core/util';\nimport type { ConnectedTypes } from '../../make-connected';\nimport type { Types } from '../../types';\nimport { range } from '../../../common/functions';\nimport { makeChainable } from '../../../common/make-chainable';\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\ntype Out = {\n map: Map<string | undefined, number>,\n matrix?: string\n};\n\n/**\n * Used by the default values as the id if no period is specified.\n */\nexport const DEFAULT_PERIOD_ID = 'DEFAULT_PERIOD';\n\nexport function parsePeriods (\n periods: ConnectedTypes.period[] | undefined,\n division: ConnectedTypes.division,\n options: Types.parsedToOptions\n): Out {\n const idKey = getIdKey(options);\n\n // if empty periods are given, return empty map only\n if (!periods?.length) {\n return { map: new Map<string | undefined, number>() };\n }\n\n // convert the ranges to moment ranges\n const parsedPeriods = periods.map(x => ({ id: getVertexId(x, idKey) as string | undefined, ranges: x.ranges.map(r => createRange(r)) }));\n\n // add default period that includes all weeks\n parsedPeriods.push({ id: DEFAULT_PERIOD_ID, ranges: [createRange(division)] });\n\n // Compute a pairwise binary overlapping string for each periods and group those that have identical such string.\n // The latter so that the number of periods may be reduced by omitting periods that overlap identically\n const grouped = makeChainable(parsedPeriods)\n .chain(\n x => x\n .map(x => ({\n ...x,\n overlap: parsedPeriods.map(y => range.overlaps(x.ranges, y.ranges) ? '1' : '0').join('')\n })),\n x => groupBy(x, x => x.overlap),\n x => Object.values(x)\n .map((x, i) => ({ ids: x.map(x => x.id), index: i, ranges: x[0].ranges }))\n )\n .value;\n\n // Merge the pairwise binary overlapping string and store it as a matrix string.\n const matrix = grouped\n .map(x => grouped\n .map(y => range.overlaps(x.ranges, y.ranges) ? '1' : '0')\n .join('')\n )\n .join('');\n\n if (matrix == '' || matrix == '0') {\n throw new Error('(RS::To::parsePeriods) invalid matrix value: ' + matrix);\n }\n\n // Also store in a map what period id corresponds to which row in the matrix.\n const indexMap = new Map(\n grouped.flatMap(xs => xs.ids.map(id => ([id, xs.index]) as const))\n );\n\n return { map: indexMap, matrix };\n}\n\n\nexport function _parsePeriods (\n periods: ConnectedTypes.period[] | undefined,\n division: ConnectedTypes.division,\n options: Types.parsedToOptions\n): Types.period[] | undefined {\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.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":";;;;;;;AAYA,SAAS,YAAa,EAAE,OAAO,OAAyB;AACtD,QAAO;EACL,OAAO,OAAO,IAAI,OAAO,QAAQ,QAAQ;EACzC,KAAO,OAAO,IAAI,KAAO,QAAQ,MAAQ;;;;;;AAY7C,MAAa,oBAAoB;AAEjC,SAAgB,aACd,SACA,UACA,SACK;CACL,MAAM,QAAQ,SAAS;AAGvB,KAAI,CAAC,SAAS,OACZ,QAAO,EAAE,qBAAK,IAAI;CAIpB,MAAM,gBAAgB,QAAQ,KAAI,OAAM;EAAE,IAAI,YAAY,GAAG;EAA8B,QAAQ,EAAE,OAAO,KAAI,MAAK,YAAY;;AAGjI,eAAc,KAAK;EAAE,IAAI;EAAmB,QAAQ,CAAC,YAAY;;CAIjE,MAAM,UAAU,cAAc,eAC3B,OACC,MAAK,EACF,KAAI,SAAM;EACT,GAAGA;EACH,SAAS,cAAc,KAAI,MAAK,MAAM,SAASA,IAAE,QAAQ,EAAE,UAAU,MAAM,KAAK,KAAK;OAEzF,MAAK,QAAQ,IAAG,QAAKA,IAAE,WACvB,MAAK,OAAO,OAAO,GAChB,KAAK,KAAG,OAAO;EAAE,KAAKA,IAAE,KAAI,QAAKA,IAAE;EAAK,OAAO;EAAI,QAAQA,IAAE,GAAG;MAEpE;CAGH,MAAM,SAAS,QACZ,KAAI,MAAK,QACP,KAAI,MAAK,MAAM,SAAS,EAAE,QAAQ,EAAE,UAAU,MAAM,KACpD,KAAK,KAEP,KAAK;AAER,KAAI,UAAU,MAAM,UAAU,IAC5B,OAAM,IAAI,MAAM,kDAAkD;CAIpE,MAAM,WAAW,IAAI,IACnB,QAAQ,SAAQ,OAAM,GAAG,IAAI,KAAI,OAAO,CAAC,IAAI,GAAG;AAGlD,QAAO;EAAE,KAAK;EAAU;;;AAI1B,SAAgB,cACd,SACA,UACA,SAC4B;CAC5B,MAAM,gBAAgB,YAAY;CAGlC,MAAM,2BAAW,IAAI;AACrB,MAAK,MAAM,IAAI,cAAc,MAAM,SAAS,EAAE,eAAe,cAAc,MAAM,EAAE,IAAI,GAAG,QACxF,UAAS,IAAI,EAAE,eAAe;CAGhC,MAAM,MAAM,SAAS,KAAK,MAAoB;EAC5C,MAAM,KAAK,YAAY,GAAG;EAG1B,MAAM,gBAAgB,EAAE,OACrB,KAAI,MAAK,YAAY,IACrB,QAAO,MAAK,MAAM,SAAS,GAAG,gBAC9B,KAAI,OAAM;GACT,OAAO,OAAO,IAAI,EAAE,OAAO,cAAc,OAAO;GAChD,KAAO,OAAO,IAAI,EAAE,KAAO,cAAc,KAAO;;EAIpD,MAAM,iBAAiB,IAAI,IAAI;AAC/B,gBAAc,SAAQ,MAAK;AACzB,QAAK,MAAM,IAAI,EAAE,MAAM,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,GAAG,SAAS;IACzE,MAAM,MAAM,EAAE;AACd,mBAAe,IAAI,KAAK;;;EAK5B,MAAM,QAAQ,MAAM,KAAK,eAAe,WACrC,MAAM,GAAG,MAAM,OAAO,IAAI,EAAE,IAAI,KAAK,OAAO,IAAI,EAAE,MAClD,KAAI,MAAK,EAAE,KAAK,MAAM,KACtB,KAAK;EAER,MAAM,WAAW,MAAM,UAAU,KAAK,QAAQ;AAE9C,SAAO;GAAE;GAAI;GAAO;;;AAItB,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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
-
periodIdKey: "id",
|
|
9
|
-
intervalIdKey: "id",
|
|
10
|
-
dependencyIdKey: "id",
|
|
11
|
-
groupIdKey: "id",
|
|
12
|
-
individualIdKey: "id",
|
|
13
|
-
collectionIdKey: "id",
|
|
14
|
-
eventIdKey: "id"
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { parseSettings };
|
|
20
|
-
//# sourceMappingURL=settings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","names":[],"sources":["../../../../src/RS/to/input/settings.ts"],"sourcesContent":["import type { Types } from '../../types';\nimport type { ConnectedTypes } from '../../make-connected';\n\nexport function parseSettings (settings: ConnectedTypes.divisionSettings): Types.settings {\n\n if (!settings.numDays) throw new Error('(RS::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 periodIdKey: 'id',\n intervalIdKey: 'id',\n dependencyIdKey: 'id',\n groupIdKey: 'id',\n individualIdKey: 'id',\n collectionIdKey: 'id',\n eventIdKey: 'id',\n };\n};"],"mappings":";AAGA,SAAgB,cAAe,UAA2D;AAExF,KAAI,CAAC,SAAS,QAAgB,OAAM,IAAI,MAAM;AAC9C,KAAI,CAAC,SAAS,eAAgB,OAAM,IAAI,MAAM;AAE9C,QAAO;EACL,SAAgB,SAAS;EACzB,gBAAgB,SAAS;EAEzB,aAAiB;EACjB,eAAiB;EACjB,iBAAiB;EACjB,YAAiB;EACjB,iBAAiB;EACjB,iBAAiB;EACjB,YAAiB"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { idOf } from "./util/util.js";
|
|
2
|
-
import { attachLockedTimes } from "./util/attach-locked-times.js";
|
|
3
|
-
import { parseDays } from "./util/parse-days.js";
|
|
4
|
-
import { parseMaxWorkingHours } from "./util/parse-max-working-hours.js";
|
|
5
|
-
import { parseMinimumBreakLength } from "./util/parse-minimum-break-length.js";
|
|
6
|
-
import { getDefaultInterval } from "./intervals.js";
|
|
7
|
-
import { parseIntervals } from "./util/parse-intervals.js";
|
|
8
|
-
import { omitBy } from "lodash-es";
|
|
9
|
-
|
|
10
|
-
//#region src/RS/to/input/teachers.ts
|
|
11
|
-
function fromTeachers(teachers, settings, options) {
|
|
12
|
-
const defaultInterval = getDefaultInterval(settings);
|
|
13
|
-
return teachers.map((teacher) => {
|
|
14
|
-
const intervals = teacher.intervals ?? defaultInterval;
|
|
15
|
-
const rootInterval = teacher.rootInterval ?? settings.defaultRootInterval;
|
|
16
|
-
const doc = {
|
|
17
|
-
id: idOf.teacher(teacher, options),
|
|
18
|
-
group_type: "personal",
|
|
19
|
-
minimizeGaps: false,
|
|
20
|
-
minimizeDependencyAlternation: true,
|
|
21
|
-
forbidOverlappingEvents: options.oldFormat ? teacher.forbidOverlappingEvents : void 0,
|
|
22
|
-
disableDayLengthPunishment: options.oldFormat ? teacher.disableDayLengthPunishment : void 0,
|
|
23
|
-
weight: teacher.weight,
|
|
24
|
-
intervals: options.oldFormat ? parseIntervals(intervals, rootInterval, settings) : idOf.intervalPairReference(intervals, rootInterval, options),
|
|
25
|
-
days: parseDays(teacher.days, settings),
|
|
26
|
-
lockedTimes: attachLockedTimes(teacher.lockedTimes, options),
|
|
27
|
-
minBreakLength: parseMinimumBreakLength(teacher.minBreakLength),
|
|
28
|
-
...parseMaxWorkingHours(teacher, options)
|
|
29
|
-
};
|
|
30
|
-
if (options.includeEntityMeta) doc.meta = omitBy({
|
|
31
|
-
ids: teacher.ids,
|
|
32
|
-
name: teacher.displayName
|
|
33
|
-
}, (x) => x == null);
|
|
34
|
-
return omitBy(doc, (x) => x == null);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
//#endregion
|
|
39
|
-
export { fromTeachers };
|
|
40
|
-
//# sourceMappingURL=teachers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"teachers.js","names":["doc: Types.group"],"sources":["../../../../src/RS/to/input/teachers.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { Types } from '../../types';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { parseMaxWorkingHours } from './util/parse-max-working-hours';\nimport { parseDays } from './util/parse-days';\nimport { attachLockedTimes } from './util/attach-locked-times';\nimport { parseMinimumBreakLength } from './util/parse-minimum-break-length';\nimport { idOf } from './util/util';\nimport { parseIntervals } from './util/parse-intervals';\nimport { getDefaultInterval } from './intervals';\n\nexport function fromTeachers (\n teachers: ConnectedTypes.teacher[],\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions\n): Types.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.group = {\n id: idOf.teacher(teacher, options),\n group_type: 'personal',\n minimizeGaps: false,\n minimizeDependencyAlternation: true,\n forbidOverlappingEvents: options.oldFormat ? teacher.forbidOverlappingEvents : undefined, // Deprecated in v3\n disableDayLengthPunishment: options.oldFormat ? teacher.disableDayLengthPunishment : undefined, // Deprecated in v3\n weight: teacher.weight,\n intervals: options.oldFormat\n ? parseIntervals(intervals, rootInterval, settings)\n : idOf.intervalPairReference(intervals, rootInterval, options),\n days: parseDays (teacher.days, settings),\n lockedTimes: attachLockedTimes (teacher.lockedTimes, options),\n minBreakLength: parseMinimumBreakLength (teacher.minBreakLength),\n\n ...parseMaxWorkingHours(teacher, options),\n };\n\n if (options.includeEntityMeta) {\n doc.meta = omitBy({\n ids: teacher.ids,\n name: teacher.displayName,\n }, x => x == null);\n }\n\n return omitBy(doc, x => x == null) as Types.group;\n });\n};\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,aACd,UACA,UACA,SACe;CACf,MAAM,kBAAkB,mBAAmB;AAE3C,QAAO,SACJ,KAAI,YAAW;EACd,MAAM,YAAe,QAAQ,aAAgB;EAC7C,MAAM,eAAe,QAAQ,gBAAgB,SAAS;EAEtD,MAAMA,MAAmB;GACvB,IAA+B,KAAK,QAAQ,SAAS;GACrD,YAA+B;GAC/B,cAA+B;GAC/B,+BAA+B;GAC/B,yBAA+B,QAAQ,YAAY,QAAQ,0BAA0B;GACrF,4BAA+B,QAAQ,YAAY,QAAQ,6BAA6B;GACxF,QAA+B,QAAQ;GACvC,WAA+B,QAAQ,YACnC,eAAe,WAAW,cAAc,YACxC,KAAK,sBAAsB,WAAW,cAAc;GACxD,MAAgB,UAA2B,QAAQ,MAAM;GACzD,aAAgB,kBAA2B,QAAQ,aAAa;GAChE,gBAAgB,wBAA2B,QAAQ;GAEnD,GAAG,qBAAqB,SAAS;;AAGnC,MAAI,QAAQ,kBACV,KAAI,OAAO,OAAO;GAChB,KAAM,QAAQ;GACd,MAAM,QAAQ;MACb,MAAK,KAAK;AAGf,SAAO,OAAO,MAAK,MAAK,KAAK"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { getDayIndex, getVertexId, parseDateInterval } from "../../../../core/util.js";
|
|
2
|
-
import { omitBy } from "lodash-es";
|
|
3
|
-
|
|
4
|
-
//#region src/RS/to/input/util/attach-locked-times.ts
|
|
5
|
-
function attachLockedTimes(lockedTimes, options) {
|
|
6
|
-
return lockedTimes?.map((lockedTime) => {
|
|
7
|
-
const { start: startDate, end: endDate } = parseDateInterval(lockedTime, "locked time");
|
|
8
|
-
const length = endDate.diff(startDate, "minutes");
|
|
9
|
-
if (length < 5) throw new Error("(RS::To::LockedTimes) Length of a locked time is less than 5 min");
|
|
10
|
-
const start = parseFloat(startDate.format("HH.mm"));
|
|
11
|
-
const doc = {
|
|
12
|
-
day: getDayIndex(startDate),
|
|
13
|
-
start,
|
|
14
|
-
length
|
|
15
|
-
};
|
|
16
|
-
if (options.includeEntityMeta) doc.meta = omitBy({
|
|
17
|
-
id: getVertexId(lockedTime, options),
|
|
18
|
-
visible: lockedTime.visible,
|
|
19
|
-
name: lockedTime.displayName
|
|
20
|
-
}, (x) => x == null);
|
|
21
|
-
return omitBy(doc, (x) => x == null);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
//#endregion
|
|
26
|
-
export { attachLockedTimes };
|
|
27
|
-
//# sourceMappingURL=attach-locked-times.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attach-locked-times.js","names":["doc: Types.lockedTime"],"sources":["../../../../../src/RS/to/input/util/attach-locked-times.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { Types } from '../../../types';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport { getDayIndex, getVertexId, parseDateInterval } from '../../../../core/util';\n\nexport function attachLockedTimes (\n lockedTimes: ConnectedTypes.lockedTime[] | null | undefined,\n options: Types.parsedToOptions\n): Types.lockedTime[] | undefined {\n\n return lockedTimes?.map(lockedTime => {\n const { start: startDate, end: endDate } = parseDateInterval(lockedTime, 'locked time');\n\n const length = endDate.diff(startDate, 'minutes');\n if (length < 5) throw new Error('(RS::To::LockedTimes) Length of a locked time is less than 5 min');\n\n const start = parseFloat(startDate.format('HH.mm'));\n\n const doc: Types.lockedTime = {\n day: getDayIndex(startDate),\n start: start,\n length: length,\n };\n\n if (options.includeEntityMeta) {\n doc.meta = omitBy({\n id: getVertexId(lockedTime, options),\n visible: lockedTime.visible,\n name: lockedTime.displayName,\n }, x => x == null);\n }\n\n return omitBy(doc, x => x == null) as Types.lockedTime;\n });\n};"],"mappings":";;;;AAKA,SAAgB,kBACd,aACA,SACgC;AAEhC,QAAO,aAAa,KAAI,eAAc;EACpC,MAAM,EAAE,OAAO,WAAW,KAAK,YAAY,kBAAkB,YAAY;EAEzE,MAAM,SAAS,QAAQ,KAAK,WAAW;AACvC,MAAI,SAAS,EAAG,OAAM,IAAI,MAAM;EAEhC,MAAM,QAAQ,WAAW,UAAU,OAAO;EAE1C,MAAMA,MAAwB;GAC5B,KAAQ,YAAY;GACZ;GACA;;AAGV,MAAI,QAAQ,kBACV,KAAI,OAAO,OAAO;GAChB,IAAS,YAAY,YAAY;GACjC,SAAS,WAAW;GACpB,MAAS,WAAW;MACnB,MAAK,KAAK;AAGf,SAAO,OAAO,MAAK,MAAK,KAAK"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
//#region src/RS/to/input/util/parse-days.ts
|
|
2
|
-
function parseDays(days, settings) {
|
|
3
|
-
if (!days) return;
|
|
4
|
-
if (days.length) return days.map((x) => x.day);
|
|
5
|
-
return [...Array.from({ length: settings.numDays })].map((_, i) => i);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
//#endregion
|
|
9
|
-
export { parseDays };
|
|
10
|
-
//# sourceMappingURL=parse-days.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-days.js","names":[],"sources":["../../../../../src/RS/to/input/util/parse-days.ts"],"sourcesContent":["import type { ConnectedTypes } from '../../../make-connected';\n\nexport function parseDays (\n days: ConnectedTypes.event['days'] | ConnectedTypes.course['days'],\n settings: ConnectedTypes.divisionSettings\n) {\n if (!days) return;\n\n if (days.length) return days.map(x => x.day);\n\n // empty days means all days selected (since no days selected is prohibited)\n return [...Array.from({ length: settings.numDays })].map((_, i) => i);\n}"],"mappings":";AAEA,SAAgB,UACd,MACA,UACA;AACA,KAAI,CAAC,KAAM;AAEX,KAAI,KAAK,OAAQ,QAAO,KAAK,KAAI,MAAK,EAAE;AAGxC,QAAO,CAAC,GAAG,MAAM,KAAK,EAAE,QAAQ,SAAS,YAAY,KAAK,GAAG,MAAM"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { getVertexId } from "../../../../core/util.js";
|
|
2
|
-
import { makeChainable } from "../../../../common/make-chainable/index.js";
|
|
3
|
-
import { idOf } from "./util.js";
|
|
4
|
-
import { groupBy, uniq } from "lodash-es";
|
|
5
|
-
|
|
6
|
-
//#region src/RS/to/input/util/parse-group-references.ts
|
|
7
|
-
/**
|
|
8
|
-
* Merges group references with their parent groups while ensuring that a group is present at
|
|
9
|
-
* most once and that parent groups are prioritized as they carry no member exclusions.
|
|
10
|
-
*/
|
|
11
|
-
function mergeWithParentGroups(references, options) {
|
|
12
|
-
return makeChainable(references).chain((x) => x.flatMap((x$1) => [x$1, ...(x$1.to.parentGroups ?? []).map((y) => ({
|
|
13
|
-
to: y,
|
|
14
|
-
isParentGroup: true
|
|
15
|
-
}))]), (x) => groupBy(x, (x$1) => getVertexId(x$1.to, options)), (x) => Object.values(x).map((xs) => xs.find((x$1) => x$1.isParentGroup) ?? xs.at(0)).filter((x$1) => x$1 != null)).value;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Returns the source of group, teacher, and participant references for a given item while taking into account event inheritance.
|
|
19
|
-
*/
|
|
20
|
-
function getSources(itemAndType) {
|
|
21
|
-
if (itemAndType.type == "lockedTime") return {
|
|
22
|
-
teachers: itemAndType.item.coalesced?.filter((x) => x.toModel == "teachers"),
|
|
23
|
-
groups: itemAndType.item.coalesced?.filter((x) => x.toModel == "groups")
|
|
24
|
-
};
|
|
25
|
-
const item = itemAndType.item;
|
|
26
|
-
const teachersSource = item.teachers ? item : "course" in item && item.course ? item.course : item;
|
|
27
|
-
const groupsAndParticipantsSource = item.groups || item.participants ? item : "course" in item && item.course ? item.course : item;
|
|
28
|
-
return {
|
|
29
|
-
teachers: teachersSource.teachers ?? void 0,
|
|
30
|
-
groups: groupsAndParticipantsSource.groups ?? void 0,
|
|
31
|
-
participants: groupsAndParticipantsSource.participants ?? void 0
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Parses group references from a course or event while carrying out event inheritance and taking into account parent groups.
|
|
36
|
-
*/
|
|
37
|
-
function parseGroupReferences(itemAndType, options) {
|
|
38
|
-
const sources = getSources(itemAndType);
|
|
39
|
-
if (options.oldFormat) return makeChainable([
|
|
40
|
-
...(sources.teachers ?? []).map((x) => idOf.teacher(x.to, options)),
|
|
41
|
-
...mergeWithParentGroups(sources.groups ?? [], options).flatMap((ref) => {
|
|
42
|
-
if (ref.to.species == "class") return idOf.group(ref.to, options);
|
|
43
|
-
return (ref.to.members ?? []).filter((x) => !ref.exclude?.includes(x)).map((x) => x.group ? idOf.group(x.group, options) : void 0).filter((x) => x != null);
|
|
44
|
-
}),
|
|
45
|
-
...(sources.participants ?? []).map((x) => x.to.group ? idOf.group(x.to.group, options) : void 0).filter((x) => x != null)
|
|
46
|
-
]).chain((x) => uniq(x).map((x$1) => [x$1])).value;
|
|
47
|
-
const teacherReferences = (sources.teachers ?? []).map((x) => ({ group: idOf.teacher(x.to, options) }));
|
|
48
|
-
const groupReferences = mergeWithParentGroups(sources.groups ?? [], options).map((x) => {
|
|
49
|
-
if (x.to.species != "class" || x.exclude?.length) return { individuals: idOf.groupReference(x, options) };
|
|
50
|
-
return { group: idOf.group(x.to, options) };
|
|
51
|
-
});
|
|
52
|
-
const participantReferences = sources.participants?.length ? { individuals: sources.participants.map((x) => idOf.person(x.to, options)) } : void 0;
|
|
53
|
-
return teacherReferences.concat(groupReferences, participantReferences ? [participantReferences] : []).map((x) => [x]);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
//#endregion
|
|
57
|
-
export { parseGroupReferences };
|
|
58
|
-
//# sourceMappingURL=parse-group-references.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-group-references.js","names":["x"],"sources":["../../../../../src/RS/to/input/util/parse-group-references.ts"],"sourcesContent":["import { groupBy, uniq } from 'lodash-es';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport { idOf } from './util';\nimport { getVertexId } from '../../../../core/util';\nimport type { Types } from '../../../types';\nimport { makeChainable } from '../../../../common/make-chainable';\nimport type { GroupWithExclude, Wrapped } from '../../../../core/interfaces/vertices/util/edges';\n\n/**\n * Merges group references with their parent groups while ensuring that a group is present at\n * most once and that parent groups are prioritized as they carry no member exclusions.\n */\nfunction mergeWithParentGroups (\n references: GroupWithExclude.Util.Value<ConnectedTypes.group, ConnectedTypes.person>[],\n options: Types.parsedToOptions\n): GroupWithExclude.Util.Value<ConnectedTypes.group, ConnectedTypes.person>[] {\n return makeChainable(references)\n .chain(\n x => x.flatMap((x): ((typeof x) & { isParentGroup?: boolean })[] => ([\n x, ...(x.to.parentGroups ?? []).map(y => ({ to: y, isParentGroup: true }))\n ])),\n x => groupBy(x, x => getVertexId(x.to, options)),\n x => Object.values(x)\n .map(xs => xs.find(x => x.isParentGroup) ?? xs.at(0))\n .filter(x => x != null)\n )\n .value;\n}\n\ntype ItemAndType =\n | { item: ConnectedTypes.course, type: 'course' }\n | { item: ConnectedTypes.event, type: 'event' }\n | { item: ConnectedTypes.lockedTime, type: 'lockedTime' };\n\ntype Source = {\n teachers?: Wrapped.Util.Value<'to', ConnectedTypes.teacher>[];\n groups?: GroupWithExclude.Util.Value<ConnectedTypes.group, ConnectedTypes.person>[];\n participants?: Wrapped.Util.Value<'to', ConnectedTypes.person>[];\n};\n\n/**\n * Returns the source of group, teacher, and participant references for a given item while taking into account event inheritance.\n */\nfunction getSources (itemAndType: ItemAndType): Source {\n if (itemAndType.type == 'lockedTime') return {\n teachers: itemAndType.item.coalesced?.filter(x => x.toModel == 'teachers'),\n groups: itemAndType.item.coalesced?.filter(x => x.toModel == 'groups' )\n };\n\n const item = itemAndType.item;\n const teachersSource = item.teachers\n ? item\n : ('course' in item && item.course ? item.course : item);\n const groupsAndParticipantsSource = (item.groups || item.participants)\n ? item\n : ('course' in item && item.course ? item.course : item);\n return {\n teachers: teachersSource.teachers ?? undefined,\n groups: groupsAndParticipantsSource.groups ?? undefined,\n participants: groupsAndParticipantsSource.participants ?? undefined\n };\n}\n\n/**\n * Parses group references from a course or event while carrying out event inheritance and taking into account parent groups.\n */\nexport function parseGroupReferences (\n itemAndType: ItemAndType,\n options: Types.parsedToOptions\n): Types.groupReference[][] {\n const sources = getSources(itemAndType);\n\n // if interested in the old format we care only about references to groups\n if (options.oldFormat) {\n return makeChainable([\n ...(sources.teachers ?? [])\n .map(x => idOf.teacher(x.to, options)),\n ...mergeWithParentGroups(sources.groups ?? [], options)\n .flatMap(ref => {\n if (ref.to.species == 'class') return idOf.group(ref.to, options);\n\n // if not a class fetch the remaining group member's parent group\n return (ref.to.members ?? [])\n .filter(x => !ref.exclude?.includes(x))\n .map(x => x.group ? idOf.group(x.group, options) : undefined)\n .filter(x => x != null);\n }),\n ...(sources.participants ?? [])\n .map(x => x.to.group ? idOf.group(x.to.group, options) : undefined)\n .filter(x => x != null)\n ])\n .chain(\n x => uniq(x).map(x => [x])\n )\n .value;\n }\n\n const teacherReferences = (sources.teachers ?? [])\n .map((x): Types.groupReference => ({ group: idOf.teacher(x.to, options) }));\n\n const groupReferences = mergeWithParentGroups(sources.groups ?? [], options)\n .map((x): Types.groupReference => {\n if (x.to.species != 'class' || x.exclude?.length) return { individuals: idOf.groupReference(x, options) }; // use individuals set if not a plain group reference\n return { group: idOf.group(x.to, options) };\n });\n\n const participantReferences = sources.participants?.length\n ? { individuals: sources.participants.map(x => idOf.person(x.to, options)) } as Types.groupReference\n : undefined;\n\n // combine all references\n return teacherReferences\n .concat(\n groupReferences,\n participantReferences ? [participantReferences] : []\n )\n .map(x => [x]);\n}"],"mappings":";;;;;;;;;;AAYA,SAAS,sBACP,YACA,SAC4E;AAC5E,QAAO,cAAc,YAClB,OACC,MAAK,EAAE,SAAS,QAAqD,CACnEA,KAAG,IAAIA,IAAE,GAAG,gBAAgB,IAAI,KAAI,OAAM;EAAE,IAAI;EAAG,eAAe;SAEpE,MAAK,QAAQ,IAAG,QAAK,YAAYA,IAAE,IAAI,YACvC,MAAK,OAAO,OAAO,GAChB,KAAI,OAAM,GAAG,MAAK,QAAKA,IAAE,kBAAkB,GAAG,GAAG,IACjD,QAAO,QAAKA,OAAK,OAErB;;;;;AAiBL,SAAS,WAAY,aAAkC;AACrD,KAAI,YAAY,QAAQ,aAAc,QAAO;EAC3C,UAAU,YAAY,KAAK,WAAW,QAAO,MAAK,EAAE,WAAW;EAC/D,QAAU,YAAY,KAAK,WAAW,QAAO,MAAK,EAAE,WAAW;;CAGjE,MAAM,OAAO,YAAY;CACzB,MAAM,iBAAiB,KAAK,WACxB,OACC,YAAY,QAAQ,KAAK,SAAS,KAAK,SAAS;CACrD,MAAM,8BAA+B,KAAK,UAAU,KAAK,eACrD,OACC,YAAY,QAAQ,KAAK,SAAS,KAAK,SAAS;AACrD,QAAO;EACL,UAAc,eAAe,YAA6B;EAC1D,QAAc,4BAA4B,UAAgB;EAC1D,cAAc,4BAA4B,gBAAgB;;;;;;AAO9D,SAAgB,qBACd,aACA,SAC0B;CAC1B,MAAM,UAAU,WAAW;AAG3B,KAAI,QAAQ,UACV,QAAO,cAAc;EACnB,IAAI,QAAQ,YAAY,IACrB,KAAI,MAAK,KAAK,QAAQ,EAAE,IAAI;EAC/B,GAAG,sBAAsB,QAAQ,UAAU,IAAI,SAC5C,SAAQ,QAAO;AACd,OAAI,IAAI,GAAG,WAAW,QAAS,QAAO,KAAK,MAAM,IAAI,IAAI;AAGzD,WAAQ,IAAI,GAAG,WAAW,IACvB,QAAO,MAAK,CAAC,IAAI,SAAS,SAAS,IACnC,KAAI,MAAK,EAAE,QAAQ,KAAK,MAAM,EAAE,OAAO,WAAW,QAClD,QAAO,MAAK,KAAK;;EAExB,IAAI,QAAQ,gBAAgB,IACzB,KAAI,MAAK,EAAE,GAAG,QAAQ,KAAK,MAAM,EAAE,GAAG,OAAO,WAAW,QACxD,QAAO,MAAK,KAAK;IAEnB,OACC,MAAK,KAAK,GAAG,KAAI,QAAK,CAACA,OAExB;CAGL,MAAM,qBAAqB,QAAQ,YAAY,IAC5C,KAAK,OAA6B,EAAE,OAAO,KAAK,QAAQ,EAAE,IAAI;CAEjE,MAAM,kBAAkB,sBAAsB,QAAQ,UAAU,IAAI,SACjE,KAAK,MAA4B;AAChC,MAAI,EAAE,GAAG,WAAW,WAAW,EAAE,SAAS,OAAQ,QAAO,EAAE,aAAa,KAAK,eAAe,GAAG;AAC/F,SAAO,EAAE,OAAO,KAAK,MAAM,EAAE,IAAI;;CAGrC,MAAM,wBAAwB,QAAQ,cAAc,SAChD,EAAE,aAAa,QAAQ,aAAa,KAAI,MAAK,KAAK,OAAO,EAAE,IAAI,cAC/D;AAGJ,QAAO,kBACJ,OACC,iBACA,wBAAwB,CAAC,yBAAyB,IAEnD,KAAI,MAAK,CAAC"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { getDayIndex } from "../../../../core/util.js";
|
|
2
|
-
import { makeChainable } from "../../../../common/make-chainable/index.js";
|
|
3
|
-
import { parseIntervalDate } from "../intervals.js";
|
|
4
|
-
import { groupBy } from "lodash-es";
|
|
5
|
-
|
|
6
|
-
//#region src/RS/to/input/util/parse-intervals.ts
|
|
7
|
-
function getDayLimits(intervals, settings) {
|
|
8
|
-
if (!intervals) {
|
|
9
|
-
const start = parseIntervalDate(settings.dayStart);
|
|
10
|
-
const end = parseIntervalDate(settings.dayEnd);
|
|
11
|
-
intervals = Array.from({ length: settings.numDays }, () => ({
|
|
12
|
-
start: start.clone(),
|
|
13
|
-
end: end.clone()
|
|
14
|
-
}));
|
|
15
|
-
} else if (intervals.length == 1) {
|
|
16
|
-
const i = intervals[0];
|
|
17
|
-
const start = parseIntervalDate(i.start);
|
|
18
|
-
const end = parseIntervalDate(i.end);
|
|
19
|
-
intervals = Array.from({ length: settings.numDays }, () => ({
|
|
20
|
-
start: start.clone(),
|
|
21
|
-
end: end.clone()
|
|
22
|
-
}));
|
|
23
|
-
} else if (intervals.length != settings.numDays) throw new Error(`(RS::To::Intervals) Intervals length ${intervals.length} does not match settings.numDays ${settings.numDays}`);
|
|
24
|
-
return intervals.map((i, day) => {
|
|
25
|
-
if (!i.start || !i.end) throw new Error(`(RS::To::Intervals) Interval missing start or end for day ${day}`);
|
|
26
|
-
const start = parseFloat(parseIntervalDate(i.start).format("HH.mm"));
|
|
27
|
-
const end = parseFloat(parseIntervalDate(i.end).format("HH.mm"));
|
|
28
|
-
return {
|
|
29
|
-
beg: start,
|
|
30
|
-
end
|
|
31
|
-
};
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* @deprecated The old way of parsing intervals
|
|
36
|
-
*/
|
|
37
|
-
function parseIntervals(intervals, rootInterval, settings) {
|
|
38
|
-
if (intervals && !rootInterval) return getDayLimits(intervals, settings).map((i) => [i]);
|
|
39
|
-
if (rootInterval) {
|
|
40
|
-
const dayLimits = getDayLimits(intervals, settings);
|
|
41
|
-
return makeChainable(rootInterval.intervals).chain((x) => groupBy(x, (x$1) => getDayIndex(x$1.start)), (x) => Object.entries(x).map(([day, xs]) => {
|
|
42
|
-
const limit = dayLimits.at(parseInt(day));
|
|
43
|
-
if (!limit) throw new Error(`(RS::To::Intervals) Day ${day} not found in dayStartAndEnds`);
|
|
44
|
-
return xs.map((x$1) => ({
|
|
45
|
-
beg: parseFloat(parseIntervalDate(x$1.start).format("HH.mm")),
|
|
46
|
-
end: parseFloat(parseIntervalDate(x$1.end).format("HH.mm")),
|
|
47
|
-
binary: true
|
|
48
|
-
})).filter((x$1) => x$1.beg >= limit.beg && x$1.end <= limit.end);
|
|
49
|
-
}).reduce((acc, curr, index) => {
|
|
50
|
-
acc[index] = curr;
|
|
51
|
-
return acc;
|
|
52
|
-
}, Array.from({ length: settings.numDays }, () => []))).value;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
//#endregion
|
|
57
|
-
export { parseIntervals };
|
|
58
|
-
//# sourceMappingURL=parse-intervals.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-intervals.js","names":["x"],"sources":["../../../../../src/RS/to/input/util/parse-intervals.ts"],"sourcesContent":["import { groupBy } from 'lodash-es';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport { getDayIndex } from '../../../../core/util';\nimport type { Types } from '../../../types';\nimport { makeChainable } from '../../../../common/make-chainable';\nimport { parseIntervalDate } from '../intervals';\nimport type { Interval } from '../../../../core/interfaces';\n\nfunction getDayLimits (\n intervals: Interval[] | undefined,\n settings: ConnectedTypes.divisionSettings\n): { beg: number, end: number }[] {\n // remove short-hand notation (a single interval for all days)\n if (!intervals) {\n const start = parseIntervalDate(settings.dayStart);\n const end = parseIntervalDate(settings.dayEnd);\n intervals = Array.from({ length: settings.numDays }, () => ({ start: start.clone(), end: end.clone() }));\n }\n else if (intervals.length == 1) {\n const i = intervals[0];\n const start = parseIntervalDate(i.start);\n const end = parseIntervalDate(i.end);\n intervals = Array.from({ length: settings.numDays }, () => ({ start: start.clone(), end: end.clone() }));\n } else if (intervals.length != settings.numDays) {\n throw new Error(`(RS::To::Intervals) Intervals length ${intervals.length} does not match settings.numDays ${settings.numDays}`);\n }\n\n // the day start and end times of each day\n return intervals.map((i, day: number) => {\n if (!i.start || !i.end) throw new Error(`(RS::To::Intervals) Interval missing start or end for day ${day}`);\n const start = parseFloat(parseIntervalDate(i.start).format('HH.mm'));\n const end = parseFloat(parseIntervalDate(i.end ).format('HH.mm'));\n return { beg: start, end: end };\n });\n}\n\n\n/**\n * @deprecated The old way of parsing intervals\n */\nexport function parseIntervals (\n intervals: Interval[] | undefined,\n rootInterval: ConnectedTypes.rootInterval | undefined,\n settings: ConnectedTypes.divisionSettings\n): Types.interval[][] | undefined {\n // if only intervals are provided\n if (intervals && !rootInterval) return getDayLimits(intervals, settings).map(i => [i]);\n\n // if root intervals are present\n if (rootInterval) {\n const dayLimits = getDayLimits(intervals, settings);\n return makeChainable(rootInterval.intervals)\n .chain(\n x => groupBy(x, x => getDayIndex(x.start)),\n x => Object.entries(x)\n .map(([day, xs]) => {\n const limit = dayLimits.at(parseInt(day));\n if (!limit) throw new Error(`(RS::To::Intervals) Day ${day} not found in dayStartAndEnds`);\n\n // remove all block intervals that lay outside the day start and end\n return xs\n .map(x => ({\n beg: parseFloat(parseIntervalDate(x.start).format('HH.mm')),\n end: parseFloat(parseIntervalDate(x.end ).format('HH.mm')),\n binary: true\n } satisfies Types.interval))\n .filter(x => x.beg >= limit.beg && x.end <= limit.end);\n })\n // ensure that all days are represented, even if empty\n .reduce<Types.interval[][]>((acc, curr, index) => {\n acc[index] = curr;\n return acc;\n }, Array.from({ length: settings.numDays }, () => []))\n )\n .value;\n }\n\n // only remaining case here is \"!intervals && !rootInterval\"\n return;\n};\n"],"mappings":";;;;;;AAQA,SAAS,aACP,WACA,UACgC;AAEhC,KAAI,CAAC,WAAW;EACd,MAAM,QAAQ,kBAAkB,SAAS;EACzC,MAAM,MAAQ,kBAAkB,SAAS;AACzC,cAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,kBAAkB;GAAE,OAAO,MAAM;GAAS,KAAK,IAAI;;YAEtF,UAAU,UAAU,GAAG;EAC9B,MAAM,IAAI,UAAU;EACpB,MAAM,QAAQ,kBAAkB,EAAE;EAClC,MAAM,MAAQ,kBAAkB,EAAE;AAClC,cAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,kBAAkB;GAAE,OAAO,MAAM;GAAS,KAAK,IAAI;;YACpF,UAAU,UAAU,SAAS,QACtC,OAAM,IAAI,MAAM,wCAAwC,UAAU,OAAO,mCAAmC,SAAS;AAIvH,QAAO,UAAU,KAAK,GAAG,QAAgB;AACvC,MAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAK,OAAM,IAAI,MAAM,6DAA6D;EACrG,MAAM,QAAQ,WAAW,kBAAkB,EAAE,OAAO,OAAO;EAC3D,MAAM,MAAQ,WAAW,kBAAkB,EAAE,KAAO,OAAO;AAC3D,SAAO;GAAE,KAAK;GAAY;;;;;;;AAQ9B,SAAgB,eACd,WACA,cACA,UACgC;AAEhC,KAAI,aAAa,CAAC,aAAc,QAAO,aAAa,WAAW,UAAU,KAAI,MAAK,CAAC;AAGnF,KAAI,cAAc;EAChB,MAAM,YAAY,aAAa,WAAW;AAC1C,SAAO,cAAc,aAAa,WAC/B,OACC,MAAK,QAAQ,IAAG,QAAK,YAAYA,IAAE,UACnC,MAAK,OAAO,QAAQ,GACjB,KAAK,CAAC,KAAK,QAAQ;GAClB,MAAM,QAAQ,UAAU,GAAG,SAAS;AACpC,OAAI,CAAC,MAAO,OAAM,IAAI,MAAM,2BAA2B,IAAI;AAG3D,UAAO,GACJ,KAAI,SAAM;IACT,KAAQ,WAAW,kBAAkBA,IAAE,OAAO,OAAO;IACrD,KAAQ,WAAW,kBAAkBA,IAAE,KAAO,OAAO;IACrD,QAAQ;OAET,QAAO,QAAKA,IAAE,OAAO,MAAM,OAAOA,IAAE,OAAO,MAAM;KAGrD,QAA4B,KAAK,MAAM,UAAU;AAChD,OAAI,SAAS;AACb,UAAO;KACN,MAAM,KAAK,EAAE,QAAQ,SAAS,iBAAiB,MAErD"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { getVertexId } from "../../../../core/util.js";
|
|
2
|
-
import { makeChainable } from "../../../../common/make-chainable/index.js";
|
|
3
|
-
import { groupBy } from "lodash-es";
|
|
4
|
-
|
|
5
|
-
//#region src/RS/to/input/util/parse-location-references.ts
|
|
6
|
-
function parseLocationReferences(references, options) {
|
|
7
|
-
if (!references) return;
|
|
8
|
-
return makeChainable(references).chain((x) => x.map(({ locations, groupIndex, rank }) => ({
|
|
9
|
-
dependency: getVertexId(locations[0], options),
|
|
10
|
-
rank,
|
|
11
|
-
groupIndex
|
|
12
|
-
})).filter((x$1) => {
|
|
13
|
-
const includedLocations = options.partialScheduleOptions?.includedLocations;
|
|
14
|
-
if (!includedLocations) return true;
|
|
15
|
-
return includedLocations.has(x$1.dependency);
|
|
16
|
-
}), (x) => groupBy(x, (x$1) => x$1.groupIndex), (x) => Object.values(x).map((xs) => xs.map((x$1) => ({
|
|
17
|
-
dependency: x$1.dependency,
|
|
18
|
-
...x$1.rank != null && { rank: x$1.rank }
|
|
19
|
-
})))).value;
|
|
20
|
-
}
|
|
21
|
-
function parseSelectedLocations(event, options) {
|
|
22
|
-
const locationsRef = event.locations ?? event.course?.locations;
|
|
23
|
-
const dependencies = parseLocationReferences(locationsRef, options);
|
|
24
|
-
const inLocations = event.inLocations ?? [];
|
|
25
|
-
if (inLocations.length === dependencies?.length) return inLocations.map((x) => x ? getVertexId(x, options) : null);
|
|
26
|
-
return inLocations.map((x) => x ? getVertexId(x, options) : null).concat(Array.from({ length: Math.max((dependencies?.length ?? 0) - inLocations.length, 0) }).map(() => null));
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
//#endregion
|
|
30
|
-
export { parseLocationReferences, parseSelectedLocations };
|
|
31
|
-
//# sourceMappingURL=parse-location-references.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-location-references.js","names":["x"],"sources":["../../../../../src/RS/to/input/util/parse-location-references.ts"],"sourcesContent":["import { groupBy } from 'lodash-es';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport type { Types } from '../../../types';\nimport { getVertexId } from '../../../../core/util';\nimport { makeChainable } from '../../../../common/make-chainable';\nimport type { AvailableLocation } from '../../../../core/interfaces/vertices/util/edges';\n\n\nexport function parseLocationReferences (\n references: AvailableLocation.Util.Value<ConnectedTypes.location, { groupIndex?: number; rank?: number; }>[] | null | undefined,\n options: Types.parsedToOptions\n) {\n if (!references) return;\n\n return makeChainable(references)\n .chain(\n x => x\n .map(({ locations, groupIndex, rank }) => ({\n dependency: getVertexId(locations[0], options),\n rank: rank,\n groupIndex: groupIndex\n }))\n .filter(x => {\n // filter location references based on partial schedule options\n const includedLocations = options.partialScheduleOptions?.includedLocations;\n if (!includedLocations) return true;\n return includedLocations.has(x.dependency);\n }),\n x => groupBy(x, x => x.groupIndex),\n x => Object.values(x)\n .map(xs => xs.map(x => ({\n dependency: x.dependency,\n ...x.rank != null && { rank: x.rank },\n }) as Types.availableDependency))\n )\n .value;\n}\n\nexport function parseSelectedLocations (event: ConnectedTypes.event, options: Types.parsedToOptions) {\n\n const locationsRef = event.locations ?? event.course?.locations;\n const dependencies = parseLocationReferences(locationsRef, options);\n const inLocations = event.inLocations ?? [];\n\n // simply use inLocations if they match the number of dependencies\n if (inLocations.length === dependencies?.length) {\n return inLocations.map(x => x ? getVertexId(x, options) : null);\n }\n\n // otherwise, fill inLocations with nulls to match the number of dependencies\n return inLocations\n .map(x => x ? getVertexId(x, options) : null)\n .concat(Array\n .from({ length: Math.max((dependencies?.length ?? 0) - inLocations.length, 0) })\n .map(() => null as string | null)\n );\n}"],"mappings":";;;;;AAQA,SAAgB,wBACd,YACA,SACA;AACA,KAAI,CAAC,WAAY;AAEjB,QAAO,cAAc,YAClB,OACC,MAAK,EACF,KAAK,EAAE,WAAW,YAAY,YAAY;EACzC,YAAY,YAAY,UAAU,IAAI;EAC1B;EACA;KAEb,QAAO,QAAK;EAEX,MAAM,oBAAoB,QAAQ,wBAAwB;AAC1D,MAAI,CAAC,kBAAmB,QAAO;AAC/B,SAAO,kBAAkB,IAAIA,IAAE;MAEnC,MAAK,QAAQ,IAAG,QAAKA,IAAE,cACvB,MAAK,OAAO,OAAO,GAChB,KAAI,OAAM,GAAG,KAAI,SAAM;EACtB,YAAYA,IAAE;EACd,GAAGA,IAAE,QAAQ,QAAQ,EAAE,MAAMA,IAAE;OAGpC;;AAGL,SAAgB,uBAAwB,OAA6B,SAAgC;CAEnG,MAAM,eAAe,MAAM,aAAa,MAAM,QAAQ;CACtD,MAAM,eAAe,wBAAwB,cAAc;CAC3D,MAAM,cAAe,MAAM,eAAe;AAG1C,KAAI,YAAY,WAAW,cAAc,OACvC,QAAO,YAAY,KAAI,MAAM,IAAI,YAAY,GAAG,WAAW;AAI7D,QAAO,YACJ,KAAI,MAAM,IAAI,YAAY,GAAG,WAAW,MACxC,OAAO,MACL,KAAK,EAAE,QAAQ,KAAK,KAAK,cAAc,UAAU,KAAK,YAAY,QAAQ,MAC1E,UAAU"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { min2hrs } from "./util.js";
|
|
2
|
-
|
|
3
|
-
//#region src/RS/to/input/util/parse-max-working-hours.ts
|
|
4
|
-
function parseMaxWorkingHours(group, options) {
|
|
5
|
-
if (options.useMaximumScheduleSpan && group.maximumScheduleSpan) return {
|
|
6
|
-
maxNumWorkingHours: min2hrs(group.maximumScheduleSpan.daily) ?? false,
|
|
7
|
-
maxNumDailyWorkingHours: min2hrs(group.maximumScheduleSpan.daily) ?? false
|
|
8
|
-
};
|
|
9
|
-
if (!options.useMaximumScheduleSpan) return {
|
|
10
|
-
..."maxNumWorkingHours" in group && { maxNumWorkingHours: group.maxNumWorkingHours },
|
|
11
|
-
..."maxNumDailyWorkingHours" in group && { maxNumDailyWorkingHours: group.maxNumDailyWorkingHours }
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
//#endregion
|
|
16
|
-
export { parseMaxWorkingHours };
|
|
17
|
-
//# sourceMappingURL=parse-max-working-hours.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-max-working-hours.js","names":[],"sources":["../../../../../src/RS/to/input/util/parse-max-working-hours.ts"],"sourcesContent":["import type { ConnectedTypes } from '../../../make-connected';\nimport type { Types } from '../../../types';\nimport { min2hrs } from './util';\n\nexport function parseMaxWorkingHours (\n group: ConnectedTypes.group | ConnectedTypes.teacher,\n options: Types.parsedToOptions\n): Pick<Types.group, 'maxNumWorkingHours' | 'maxNumDailyWorkingHours'> | undefined {\n // new format\n if (options.useMaximumScheduleSpan && group.maximumScheduleSpan) {\n return {\n maxNumWorkingHours: min2hrs(group.maximumScheduleSpan.daily) ?? false,\n maxNumDailyWorkingHours: min2hrs(group.maximumScheduleSpan.daily) ?? false,\n };\n }\n\n // old format, to become deprecated\n if (!options.useMaximumScheduleSpan) {\n return {\n ...'maxNumWorkingHours' in group && { maxNumWorkingHours: group.maxNumWorkingHours },\n ...'maxNumDailyWorkingHours' in group && { maxNumDailyWorkingHours: group.maxNumDailyWorkingHours },\n };\n }\n\n return;\n}\n"],"mappings":";;;AAIA,SAAgB,qBACd,OACA,SACiF;AAEjF,KAAI,QAAQ,0BAA0B,MAAM,oBAC1C,QAAO;EACL,oBAAyB,QAAQ,MAAM,oBAAoB,UAAU;EACrE,yBAAyB,QAAQ,MAAM,oBAAoB,UAAU;;AAKzE,KAAI,CAAC,QAAQ,uBACX,QAAO;EACL,GAAG,wBAA6B,SAAS,EAAE,oBAAyB,MAAM;EAC1E,GAAG,6BAA6B,SAAS,EAAE,yBAAyB,MAAM"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
//#region src/RS/to/input/util/parse-minimum-break-length.ts
|
|
2
|
-
function parseMinimumBreakLength(value) {
|
|
3
|
-
if (value == null) return;
|
|
4
|
-
if (typeof value === "boolean") return value;
|
|
5
|
-
if (typeof value === "number") return value;
|
|
6
|
-
if (Array.isArray(value)) {
|
|
7
|
-
if (value.length !== 2) throw new Error("(RS::To::BreakLengths) BreakLength array must have exactly two elements");
|
|
8
|
-
const [bef, aft] = value;
|
|
9
|
-
return {
|
|
10
|
-
bef,
|
|
11
|
-
aft
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
throw new Error("(RS::To::BreakLengths) BreakLength is neither boolean, number or number array");
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
//#endregion
|
|
18
|
-
export { parseMinimumBreakLength };
|
|
19
|
-
//# sourceMappingURL=parse-minimum-break-length.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-minimum-break-length.js","names":[],"sources":["../../../../../src/RS/to/input/util/parse-minimum-break-length.ts"],"sourcesContent":["import type { CoreTypes } from '../../../../core';\nimport type { Types } from '../../../types';\n\nexport function parseMinimumBreakLength (value: CoreTypes.breakLength | null | undefined): Types.breakLength | undefined {\n if (value == null) return;\n\n if (typeof value === 'boolean') return value;\n if (typeof value === 'number') return value;\n\n if (Array.isArray(value)) {\n if (value.length !== 2) throw new Error('(RS::To::BreakLengths) BreakLength array must have exactly two elements');\n const [bef, aft] = value;\n return { bef, aft };\n }\n\n throw new Error('(RS::To::BreakLengths) BreakLength is neither boolean, number or number array');\n};\n"],"mappings":";AAGA,SAAgB,wBAAyB,OAAgF;AACvH,KAAI,SAAS,KAAM;AAEnB,KAAI,OAAO,UAAU,UAAW,QAAO;AACvC,KAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,KAAI,MAAM,QAAQ,QAAQ;AACxB,MAAI,MAAM,WAAW,EAAG,OAAM,IAAI,MAAM;EACxC,MAAM,CAAC,KAAK,OAAO;AACnB,SAAO;GAAE;GAAK;;;AAGhB,OAAM,IAAI,MAAM"}
|