@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
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
import { makeChainable } from "../../../common/make-chainable/index.mjs";
|
|
2
|
+
import { countBy, isNumber, isString } from "lodash-es";
|
|
3
|
+
import { nanoid } from "nanoid";
|
|
4
|
+
|
|
5
|
+
//#region src/Excel/v2/from/index.ts
|
|
6
|
+
function generateId(map) {
|
|
7
|
+
let id;
|
|
8
|
+
do
|
|
9
|
+
id = nanoid(8);
|
|
10
|
+
while (map.has(id));
|
|
11
|
+
return id;
|
|
12
|
+
}
|
|
13
|
+
function toPositiveMultipleOf5(val) {
|
|
14
|
+
const num = isString(val) ? parseInt(val) : val;
|
|
15
|
+
if (isNaN(num)) throw new Error(`toMultipleOf5: ${val} is not a number`);
|
|
16
|
+
const res = Math.floor(num / 5) * 5;
|
|
17
|
+
if (res <= 0) throw new Error(`toMultipleOf5: the result ${res} is not positive`);
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
function toPositiveInteger(val) {
|
|
21
|
+
const num = isString(val) ? parseInt(val) : val;
|
|
22
|
+
if (isNaN(num)) throw new Error(`toInteger: ${val} is not a number`);
|
|
23
|
+
if (num <= 0) throw new Error(`toInteger: te result ${num} is not positive`);
|
|
24
|
+
return num;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Converts a string/number to a trimmed string
|
|
28
|
+
*/
|
|
29
|
+
function toString(x) {
|
|
30
|
+
return isNumber(x) ? x.toString() : x.trim();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Converts a possible nullish string/number to a trimmed string or undefined
|
|
34
|
+
*/
|
|
35
|
+
function toStringIfExists(x) {
|
|
36
|
+
if (x == null) return void 0;
|
|
37
|
+
return toString(x);
|
|
38
|
+
}
|
|
39
|
+
function extractLocations(course, locationsNameMap, warnings) {
|
|
40
|
+
if (course.locations == null) return;
|
|
41
|
+
const locationsStr = toString(course.locations);
|
|
42
|
+
if (!locationsStr) return;
|
|
43
|
+
const locationReferences = [];
|
|
44
|
+
locationsStr.split("+").flatMap((x, i) => x.split(",").map((x) => [i, x.trim()])).forEach(([i, x]) => {
|
|
45
|
+
const key = x.toLowerCase();
|
|
46
|
+
const ref = locationsNameMap.get(key);
|
|
47
|
+
if (!ref) {
|
|
48
|
+
warnings.push({
|
|
49
|
+
code: "invalid_location_reference",
|
|
50
|
+
context: x
|
|
51
|
+
});
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (locationReferences.some((y) => y.to == ref.id)) {
|
|
55
|
+
warnings.push({
|
|
56
|
+
code: "location_referenced_multiple_times",
|
|
57
|
+
context: x
|
|
58
|
+
});
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
locationReferences.push({
|
|
62
|
+
groupIndex: i,
|
|
63
|
+
to: ref.id
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
return locationReferences;
|
|
67
|
+
}
|
|
68
|
+
function extractGroups(course, groupsNameMap, warnings) {
|
|
69
|
+
if (course.groups == null) return;
|
|
70
|
+
const groupsStr = toString(course.groups);
|
|
71
|
+
if (!groupsStr) return;
|
|
72
|
+
const groupReferences = [];
|
|
73
|
+
groupsStr.split(",").map((x) => x.trim()).forEach((x) => {
|
|
74
|
+
const key = x.toLowerCase();
|
|
75
|
+
const ref = groupsNameMap.get(key);
|
|
76
|
+
if (!ref) {
|
|
77
|
+
warnings.push({
|
|
78
|
+
code: "invalid_group_reference",
|
|
79
|
+
context: x
|
|
80
|
+
});
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (groupReferences.some((y) => y.to == ref.id)) {
|
|
84
|
+
warnings.push({
|
|
85
|
+
code: "group_referenced_multiple_times",
|
|
86
|
+
context: x
|
|
87
|
+
});
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
groupReferences.push({ to: ref.id });
|
|
91
|
+
});
|
|
92
|
+
return groupReferences;
|
|
93
|
+
}
|
|
94
|
+
function extractTeachers(course, teachersNameMap, warnings) {
|
|
95
|
+
if (course.teachers == null) return;
|
|
96
|
+
const teachersStr = toString(course.teachers);
|
|
97
|
+
if (!teachersStr) return void 0;
|
|
98
|
+
const teacherReferences = [];
|
|
99
|
+
teachersStr.split(",").map((x) => x.trim()).forEach((x) => {
|
|
100
|
+
const key = x.toLowerCase();
|
|
101
|
+
const ref = teachersNameMap.get(key);
|
|
102
|
+
if (!ref) {
|
|
103
|
+
warnings.push({
|
|
104
|
+
code: "invalid_teacher_reference",
|
|
105
|
+
context: x
|
|
106
|
+
});
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (teacherReferences.some((y) => y.to == ref.id)) {
|
|
110
|
+
warnings.push({
|
|
111
|
+
code: "teacher_referenced_multiple_times",
|
|
112
|
+
context: x
|
|
113
|
+
});
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
teacherReferences.push({ to: ref.id });
|
|
117
|
+
});
|
|
118
|
+
return teacherReferences;
|
|
119
|
+
}
|
|
120
|
+
function extractSyllabus(course, syllabusesCodeMap, syllabusesNameMap, warnings) {
|
|
121
|
+
if (course.syllabus == null) return void 0;
|
|
122
|
+
const syllabusValue = toString(course.syllabus);
|
|
123
|
+
if (!syllabusValue) return void 0;
|
|
124
|
+
const syllabus = syllabusesCodeMap.get(syllabusValue) || syllabusesNameMap.get(syllabusValue.toLowerCase());
|
|
125
|
+
if (!syllabus) {
|
|
126
|
+
warnings.push({
|
|
127
|
+
code: "invalid_syllabus_reference",
|
|
128
|
+
context: syllabusValue
|
|
129
|
+
});
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
return syllabus.id;
|
|
133
|
+
}
|
|
134
|
+
function _schedules(source) {
|
|
135
|
+
const warnings = [];
|
|
136
|
+
source.settings = source.settings?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
|
|
137
|
+
source.locations = source.locations?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
|
|
138
|
+
source.teachers = source.teachers?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
|
|
139
|
+
source.groups = source.groups?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
|
|
140
|
+
source.persons = source.persons?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
|
|
141
|
+
source.courses = source.courses?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
|
|
142
|
+
const settings = {
|
|
143
|
+
discretization: 5,
|
|
144
|
+
numDays: 5,
|
|
145
|
+
dayStart: "08:00",
|
|
146
|
+
dayEnd: "17:00"
|
|
147
|
+
};
|
|
148
|
+
if (!source.settings) warnings.push({ code: "missing_settings_sheet" });
|
|
149
|
+
if (source.settings?.[0]?.number_of_days) {
|
|
150
|
+
const numDays = source.settings?.[0]?.number_of_days;
|
|
151
|
+
try {
|
|
152
|
+
settings.numDays = toPositiveInteger(numDays);
|
|
153
|
+
if (settings.numDays !== 5 && settings.numDays !== 7) {
|
|
154
|
+
warnings.push({
|
|
155
|
+
code: "invalid_number_of_days",
|
|
156
|
+
context: numDays
|
|
157
|
+
});
|
|
158
|
+
settings.numDays = 5;
|
|
159
|
+
}
|
|
160
|
+
} catch {
|
|
161
|
+
warnings.push({
|
|
162
|
+
code: "invalid_number_of_days",
|
|
163
|
+
context: numDays
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const syllabusesIdMap = /* @__PURE__ */ new Map();
|
|
168
|
+
const syllabusesNameMap = /* @__PURE__ */ new Map();
|
|
169
|
+
const syllabusesCodeMap = /* @__PURE__ */ new Map();
|
|
170
|
+
if (!source.syllabuses) {}
|
|
171
|
+
source.syllabuses?.forEach((x) => {
|
|
172
|
+
const ids = toStringIfExists(x.foreign_ID);
|
|
173
|
+
const subjectCode = toStringIfExists(x.subject_code);
|
|
174
|
+
const subjectName = toStringIfExists(x.subject_name);
|
|
175
|
+
const courseCode = toStringIfExists(x.course_code);
|
|
176
|
+
const courseName = toStringIfExists(x.course_name);
|
|
177
|
+
const schoolType = toStringIfExists(x.school_type);
|
|
178
|
+
const id = toStringIfExists(x.ID) ?? generateId(syllabusesIdMap);
|
|
179
|
+
if (syllabusesIdMap.has(id)) {
|
|
180
|
+
warnings.push({
|
|
181
|
+
code: "ignoring_duplicate_syllabus",
|
|
182
|
+
context: `${subjectName} (${courseName})`
|
|
183
|
+
});
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (!subjectName) {
|
|
187
|
+
warnings.push({
|
|
188
|
+
code: "missing_subject_name",
|
|
189
|
+
context: x
|
|
190
|
+
});
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
if (!schoolType) {
|
|
194
|
+
warnings.push({
|
|
195
|
+
code: "missing_school_type",
|
|
196
|
+
context: x
|
|
197
|
+
});
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
const y = {
|
|
201
|
+
id,
|
|
202
|
+
...ids && { ids },
|
|
203
|
+
...subjectCode && { subjectCode },
|
|
204
|
+
subjectName,
|
|
205
|
+
...courseCode && { courseCode },
|
|
206
|
+
...courseName && { courseName },
|
|
207
|
+
schoolType,
|
|
208
|
+
official: true,
|
|
209
|
+
__raw: x
|
|
210
|
+
};
|
|
211
|
+
syllabusesIdMap.set(id, y);
|
|
212
|
+
const code = courseCode || subjectCode;
|
|
213
|
+
const name = courseName || subjectName;
|
|
214
|
+
if (code) syllabusesCodeMap.set(code, y);
|
|
215
|
+
if (name) syllabusesNameMap.set(name.toLowerCase(), y);
|
|
216
|
+
});
|
|
217
|
+
const locationsIdMap = /* @__PURE__ */ new Map();
|
|
218
|
+
const locationsNameMap = /* @__PURE__ */ new Map();
|
|
219
|
+
const teachersIdMap = /* @__PURE__ */ new Map();
|
|
220
|
+
const teachersNameMap = /* @__PURE__ */ new Map();
|
|
221
|
+
[{
|
|
222
|
+
name: {
|
|
223
|
+
singular: "location",
|
|
224
|
+
plural: "locations"
|
|
225
|
+
},
|
|
226
|
+
data: source.locations,
|
|
227
|
+
idMap: locationsIdMap,
|
|
228
|
+
nameMap: locationsNameMap
|
|
229
|
+
}, {
|
|
230
|
+
name: {
|
|
231
|
+
singular: "teacher",
|
|
232
|
+
plural: "teachers"
|
|
233
|
+
},
|
|
234
|
+
data: source.teachers,
|
|
235
|
+
idMap: teachersIdMap,
|
|
236
|
+
nameMap: teachersNameMap
|
|
237
|
+
}].forEach(({ name, data, idMap, nameMap }) => {
|
|
238
|
+
if (!data) warnings.push({ code: `missing_${name.plural}_sheet` });
|
|
239
|
+
data?.forEach((x) => {
|
|
240
|
+
const ids = toStringIfExists(x.foreign_ID);
|
|
241
|
+
const displayName = toStringIfExists(x.name);
|
|
242
|
+
const id = toStringIfExists(x.ID) ?? generateId(idMap);
|
|
243
|
+
if (idMap.has(id)) {
|
|
244
|
+
warnings.push({
|
|
245
|
+
code: `ignoring_duplicate_${name.singular}`,
|
|
246
|
+
context: displayName
|
|
247
|
+
});
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const y = {
|
|
251
|
+
id,
|
|
252
|
+
...ids && { ids },
|
|
253
|
+
...displayName && { displayName },
|
|
254
|
+
__raw: x
|
|
255
|
+
};
|
|
256
|
+
idMap.set(id, y);
|
|
257
|
+
if (displayName) nameMap.set(displayName.toLowerCase(), y);
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
const groupsIdMap = /* @__PURE__ */ new Map();
|
|
261
|
+
const groupsNameMap = /* @__PURE__ */ new Map();
|
|
262
|
+
if (!source.groups) warnings.push({ code: "missing_groups_sheet" });
|
|
263
|
+
source.groups?.forEach((x) => {
|
|
264
|
+
const ids = toStringIfExists(x.foreign_ID);
|
|
265
|
+
const displayName = toStringIfExists(x.name);
|
|
266
|
+
const id = toStringIfExists(x.ID) ?? generateId(groupsIdMap);
|
|
267
|
+
if (groupsIdMap.has(id)) {
|
|
268
|
+
warnings.push({
|
|
269
|
+
code: "ignoring_duplicate_group",
|
|
270
|
+
context: displayName
|
|
271
|
+
});
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
const species = toStringIfExists(x.is_class) == "1" ? "class" : void 0;
|
|
275
|
+
const y = {
|
|
276
|
+
id,
|
|
277
|
+
...ids && { ids },
|
|
278
|
+
...displayName && { displayName },
|
|
279
|
+
...species && { species },
|
|
280
|
+
__raw: x
|
|
281
|
+
};
|
|
282
|
+
groupsIdMap.set(id, y);
|
|
283
|
+
if (displayName) groupsNameMap.set(displayName.toLowerCase(), y);
|
|
284
|
+
});
|
|
285
|
+
const personsIdMap = /* @__PURE__ */ new Map();
|
|
286
|
+
const personsSsnMap = /* @__PURE__ */ new Map();
|
|
287
|
+
if (!source.persons) warnings.push({ code: "missing_persons_sheet" });
|
|
288
|
+
source.persons?.forEach((x) => {
|
|
289
|
+
const ids = toStringIfExists(x.foreign_ID);
|
|
290
|
+
const firstName = toStringIfExists(x.first_name);
|
|
291
|
+
const lastName = toStringIfExists(x.last_name);
|
|
292
|
+
const SSN = toStringIfExists(x.SSN);
|
|
293
|
+
const id = toStringIfExists(x.ID) ?? generateId(personsIdMap);
|
|
294
|
+
if (personsIdMap.has(id)) {
|
|
295
|
+
warnings.push({
|
|
296
|
+
code: "ignoring_duplicate_person",
|
|
297
|
+
context: `${firstName} ${lastName}`
|
|
298
|
+
});
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
let group = void 0;
|
|
302
|
+
if (x.group) {
|
|
303
|
+
const key = toString(x.group).toLowerCase();
|
|
304
|
+
const ref = groupsNameMap.get(key);
|
|
305
|
+
if (!ref) warnings.push({
|
|
306
|
+
code: "invalid_group_reference",
|
|
307
|
+
context: x.group
|
|
308
|
+
});
|
|
309
|
+
else if (ref.species !== "class") warnings.push({
|
|
310
|
+
code: "forbidden_group_reference",
|
|
311
|
+
context: x.group
|
|
312
|
+
});
|
|
313
|
+
else group = ref.id;
|
|
314
|
+
}
|
|
315
|
+
let sex;
|
|
316
|
+
if (x.sex) if (isString(x.sex) && x.sex.toLowerCase() == "man") sex = "Man";
|
|
317
|
+
else if (isString(x.sex) && x.sex.toLowerCase() == "woman") sex = "Woman";
|
|
318
|
+
else warnings.push({
|
|
319
|
+
code: "invalid_sex",
|
|
320
|
+
context: x.sex
|
|
321
|
+
});
|
|
322
|
+
const person = {
|
|
323
|
+
id,
|
|
324
|
+
...ids && { ids },
|
|
325
|
+
...firstName && { firstName },
|
|
326
|
+
...lastName && { lastName },
|
|
327
|
+
...sex && { sex },
|
|
328
|
+
...group && { group },
|
|
329
|
+
...SSN && { SSN: { value: SSN } },
|
|
330
|
+
__raw: x
|
|
331
|
+
};
|
|
332
|
+
personsIdMap.set(id, person);
|
|
333
|
+
if (SSN) personsSsnMap.set(SSN, person);
|
|
334
|
+
});
|
|
335
|
+
groupsNameMap.forEach((x) => {
|
|
336
|
+
let duplicateReported = false;
|
|
337
|
+
if (!x.__raw.members) return;
|
|
338
|
+
x.members = makeChainable(x.__raw.members).chain((x) => toString(x).split(",").map((x) => x.trim()).filter((x) => x != null)).chain((x) => countBy(x)).chain((y) => Object.entries(y).map(([ssn, count]) => {
|
|
339
|
+
if (!ssn) return;
|
|
340
|
+
if (!duplicateReported && count > 1) {
|
|
341
|
+
warnings.push({
|
|
342
|
+
code: "duplicate_group_member",
|
|
343
|
+
context: x.displayName
|
|
344
|
+
});
|
|
345
|
+
duplicateReported = true;
|
|
346
|
+
}
|
|
347
|
+
const person = personsSsnMap.get(ssn);
|
|
348
|
+
if (!person) {
|
|
349
|
+
warnings.push({
|
|
350
|
+
code: "invalid_person_reference",
|
|
351
|
+
context: ssn
|
|
352
|
+
});
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
if (x.species == "class") {
|
|
356
|
+
if (!person.group) person.group = x.id;
|
|
357
|
+
else if (person.group != x.id) {
|
|
358
|
+
warnings.push({
|
|
359
|
+
code: "person_in_multiple_classes",
|
|
360
|
+
context: ssn
|
|
361
|
+
});
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return person.id;
|
|
366
|
+
}).filter((x) => x != null)).value;
|
|
367
|
+
});
|
|
368
|
+
const coursesIdMap = /* @__PURE__ */ new Map();
|
|
369
|
+
const eventsIdMap = /* @__PURE__ */ new Map();
|
|
370
|
+
const overlapGroupsKeyMap = /* @__PURE__ */ new Map();
|
|
371
|
+
if (!source.courses) warnings.push({ code: "missing_courses_sheet" });
|
|
372
|
+
source.courses?.forEach((x) => {
|
|
373
|
+
if (toStringIfExists(x.merge_with)) return;
|
|
374
|
+
const ids = toStringIfExists(x.foreign_ID);
|
|
375
|
+
const displayName = toStringIfExists(x.name);
|
|
376
|
+
const subject = toStringIfExists(x.subject);
|
|
377
|
+
const courseId = toStringIfExists(x.ID) ?? generateId(coursesIdMap);
|
|
378
|
+
if (coursesIdMap.has(courseId)) {
|
|
379
|
+
warnings.push({
|
|
380
|
+
code: "ignoring_duplicate_course",
|
|
381
|
+
context: displayName + (subject ? ` (${subject})` : "")
|
|
382
|
+
});
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
let expectedTotalHours = void 0;
|
|
386
|
+
if (x.total_hours) try {
|
|
387
|
+
expectedTotalHours = toPositiveInteger(x.total_hours);
|
|
388
|
+
} catch {
|
|
389
|
+
warnings.push({
|
|
390
|
+
code: "invalid_total_hours",
|
|
391
|
+
context: x.total_hours
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
let minutesPerWeek = void 0;
|
|
395
|
+
if (x.minutes_per_week) try {
|
|
396
|
+
minutesPerWeek = toPositiveMultipleOf5(x.minutes_per_week);
|
|
397
|
+
} catch {
|
|
398
|
+
warnings.push({
|
|
399
|
+
code: "invalid_minutes_per_week",
|
|
400
|
+
context: x.minutes_per_week
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
if (minutesPerWeek != null && expectedTotalHours != null) warnings.push({
|
|
404
|
+
code: "ambiguous_planned_duration",
|
|
405
|
+
context: `${minutesPerWeek} min/week OR ${expectedTotalHours} hrs`
|
|
406
|
+
});
|
|
407
|
+
const plannedDuration = expectedTotalHours ? `${expectedTotalHours} hrs` : minutesPerWeek ? `${minutesPerWeek} min/week` : void 0;
|
|
408
|
+
if (x.lesson_durations) (typeof x.lesson_durations === "string" ? x.lesson_durations.split(",").map((x) => x.trim()) : [x.lesson_durations]).map((e) => {
|
|
409
|
+
try {
|
|
410
|
+
return toPositiveMultipleOf5(e);
|
|
411
|
+
} catch {
|
|
412
|
+
warnings.push({
|
|
413
|
+
code: "invalid_lesson_durations",
|
|
414
|
+
context: x.lesson_durations
|
|
415
|
+
});
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
}).filter((x) => x !== void 0).forEach((x) => {
|
|
419
|
+
const id = generateId(eventsIdMap);
|
|
420
|
+
const event = {
|
|
421
|
+
id,
|
|
422
|
+
course: courseId,
|
|
423
|
+
preferredDuration: x
|
|
424
|
+
};
|
|
425
|
+
eventsIdMap.set(id, event);
|
|
426
|
+
});
|
|
427
|
+
if (x.overlap_group && toString(x.overlap_group)) {
|
|
428
|
+
const key = toString(x.overlap_group).toLowerCase();
|
|
429
|
+
const og = overlapGroupsKeyMap.get(key);
|
|
430
|
+
if (og) og.coalesced?.push({
|
|
431
|
+
toModel: "courses",
|
|
432
|
+
to: courseId
|
|
433
|
+
});
|
|
434
|
+
else {
|
|
435
|
+
const id = generateId(overlapGroupsKeyMap);
|
|
436
|
+
const coalesced = [{
|
|
437
|
+
toModel: "courses",
|
|
438
|
+
to: courseId
|
|
439
|
+
}];
|
|
440
|
+
overlapGroupsKeyMap.set(key, {
|
|
441
|
+
id,
|
|
442
|
+
coalesced
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
const locations = extractLocations(x, locationsNameMap, warnings)?.map((x) => ({
|
|
447
|
+
groupIndex: x.groupIndex,
|
|
448
|
+
locations: [x.to]
|
|
449
|
+
}));
|
|
450
|
+
const groups = extractGroups(x, groupsNameMap, warnings);
|
|
451
|
+
const teachers = extractTeachers(x, teachersNameMap, warnings);
|
|
452
|
+
const syllabus = extractSyllabus(x, syllabusesCodeMap, syllabusesNameMap, warnings);
|
|
453
|
+
const course = {
|
|
454
|
+
id: courseId,
|
|
455
|
+
...ids && { ids },
|
|
456
|
+
...displayName && { displayName },
|
|
457
|
+
...subject && { subject },
|
|
458
|
+
...expectedTotalHours && { expectedTotalHours },
|
|
459
|
+
...minutesPerWeek && { minutesPerWeek },
|
|
460
|
+
...plannedDuration && { plannedDuration },
|
|
461
|
+
...groups && { groups },
|
|
462
|
+
...teachers && { teachers },
|
|
463
|
+
...locations && { locations },
|
|
464
|
+
...syllabus && { syllabus },
|
|
465
|
+
__raw: x
|
|
466
|
+
};
|
|
467
|
+
coursesIdMap.set(courseId, course);
|
|
468
|
+
});
|
|
469
|
+
source.courses?.forEach((x) => {
|
|
470
|
+
const mergeWith = toStringIfExists(x.merge_with);
|
|
471
|
+
if (!mergeWith) return;
|
|
472
|
+
if (!coursesIdMap.has(mergeWith)) {
|
|
473
|
+
warnings.push({
|
|
474
|
+
code: "invalid_course_reference",
|
|
475
|
+
context: mergeWith
|
|
476
|
+
});
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
const displayName = toStringIfExists(x.name);
|
|
480
|
+
const locations = extractLocations(x, locationsNameMap, warnings)?.map((x) => ({
|
|
481
|
+
groupIndex: x.groupIndex,
|
|
482
|
+
locations: [x.to]
|
|
483
|
+
}));
|
|
484
|
+
const groups = extractGroups(x, groupsNameMap, warnings);
|
|
485
|
+
const teachers = extractTeachers(x, teachersNameMap, warnings);
|
|
486
|
+
if (x.lesson_durations) (typeof x.lesson_durations === "string" ? x.lesson_durations.split(",").map((x) => x.trim()) : [x.lesson_durations]).map((e) => {
|
|
487
|
+
try {
|
|
488
|
+
return toPositiveMultipleOf5(e);
|
|
489
|
+
} catch {
|
|
490
|
+
warnings.push({
|
|
491
|
+
code: "invalid_lesson_durations",
|
|
492
|
+
context: x.lesson_durations
|
|
493
|
+
});
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
}).filter((x) => x !== void 0).forEach((preferredDuration) => {
|
|
497
|
+
const id = generateId(eventsIdMap);
|
|
498
|
+
const event = {
|
|
499
|
+
id,
|
|
500
|
+
course: mergeWith,
|
|
501
|
+
preferredDuration,
|
|
502
|
+
...displayName && { displayName },
|
|
503
|
+
...groups && { groups },
|
|
504
|
+
...teachers && { teachers },
|
|
505
|
+
...locations && { locations },
|
|
506
|
+
__raw: x
|
|
507
|
+
};
|
|
508
|
+
eventsIdMap.set(id, event);
|
|
509
|
+
});
|
|
510
|
+
});
|
|
511
|
+
return {
|
|
512
|
+
settings,
|
|
513
|
+
locations: [...locationsIdMap.values()],
|
|
514
|
+
teachers: [...teachersIdMap.values()],
|
|
515
|
+
persons: [...personsIdMap.values()],
|
|
516
|
+
groups: [...groupsIdMap.values()],
|
|
517
|
+
courses: [...coursesIdMap.values()],
|
|
518
|
+
events: [...eventsIdMap.values()],
|
|
519
|
+
overlapGroups: [...overlapGroupsKeyMap.values()],
|
|
520
|
+
syllabuses: [...syllabusesIdMap.values()],
|
|
521
|
+
meta: { ...warnings.length && { warnings } }
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
var from_default = { schedules: _schedules };
|
|
525
|
+
|
|
526
|
+
//#endregion
|
|
527
|
+
export { from_default as default };
|
|
528
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/Excel/v2/from/index.ts"],"sourcesContent":["import { isString, isNumber, countBy } from 'lodash-es';\nimport { nanoid } from 'nanoid';\nimport type { CoreTypes } from '../../../core';\nimport type { Types } from '../types';\nimport type { FromInterface } from '../../../common/types';\nimport { makeChainable } from '../../../common/make-chainable';\n\ntype C_Settings = Pick<CoreTypes.Serialized.Settings, 'discretization' | 'numDays' | 'dayStart' | 'dayEnd'>;\ntype C_Location = Omit<CoreTypes.Serialized.Location, '_id'> & { __raw: Types.Location };\ntype C_Group = Omit<CoreTypes.Serialized.Group, '_id'> & { __raw: Types.Group };\ntype C_Teacher = Omit<CoreTypes.Serialized.Teacher, '_id'> & { __raw: Types.Teacher };\ntype C_Course = Omit<CoreTypes.Serialized.Course, '_id'> & { __raw: Types.Course };\ntype C_Person = Omit<CoreTypes.Serialized.Person, '_id'> & { __raw: Types.Person };\ntype C_Event = Omit<CoreTypes.Serialized.Event, '_id'> & { __raw?: Types.Course };\ntype C_OverlapGroup = Omit<CoreTypes.Serialized.OverlapGroup, '_id'> & { /* raw: Types.OverlapGroup */ };\ntype C_Syllabus = Omit<CoreTypes.Serialized.Syllabus, '_id'> & { __raw?: Types.Syllabus };\n\ntype Out = {\n settings: C_Settings;\n locations: C_Location[];\n teachers: C_Teacher[];\n persons: C_Person[];\n groups: C_Group[];\n courses: C_Course[];\n events: C_Event[];\n overlapGroups: C_OverlapGroup[];\n syllabuses: C_Syllabus[];\n meta: {\n // errors?: string[];\n warnings?: { code: Types.ErrorCode, context?: unknown }[];\n };\n};\n\n\nfunction generateId (map: Map<string, unknown>) {\n // generate a unique id\n let id: string;\n do {\n id = nanoid(8);\n } while (map.has(id));\n\n return id;\n}\n\nfunction toPositiveMultipleOf5 (val: number | string) {\n const num = isString(val) ? parseInt(val) : val;\n\n // throw error if nan\n if (isNaN(num)) throw new Error(`toMultipleOf5: ${val} is not a number`);\n\n const res = Math.floor(num / 5) * 5;\n\n if (res <= 0) throw new Error(`toMultipleOf5: the result ${res} is not positive`);\n\n return res;\n}\n\nfunction toPositiveInteger (val: number | string) {\n const num = isString(val) ? parseInt(val) : val;\n\n // throw error if nan\n if (isNaN(num)) throw new Error(`toInteger: ${val} is not a number`);\n if (num <= 0) throw new Error(`toInteger: te result ${num} is not positive`);\n\n return num;\n}\n\n/**\n * Converts a string/number to a trimmed string\n */\nfunction toString (x: string | number): string {\n return isNumber(x)\n ? x.toString()\n : x.trim();\n}\n\n/**\n * Converts a possible nullish string/number to a trimmed string or undefined\n */\nfunction toStringIfExists (x: string | number | undefined | null): string | undefined {\n if (x == null) return undefined;\n return toString(x);\n}\n\nfunction extractLocations (\n course: Types.Course,\n locationsNameMap: Map<string, C_Location>,\n warnings: { code: Types.ErrorCode, context?: unknown }[],\n) {\n if (course.locations == null) return;\n const locationsStr = toString(course.locations);\n if (!locationsStr) return;\n\n const locationReferences: { groupIndex: number; to: string }[] = [];\n\n locationsStr.split('+')\n .flatMap((x, i) => x.split(',').map(x => [i, x.trim()] as [number, string]))\n .forEach(([i, x]) => {\n const key = x.toLowerCase();\n const ref = locationsNameMap.get(key);\n if (!ref) {\n warnings.push({ code: 'invalid_location_reference', context: x });\n return;\n }\n\n if (locationReferences.some(y => y.to == ref.id)) {\n warnings.push({ code: 'location_referenced_multiple_times', context: x });\n return;\n }\n\n locationReferences.push({ groupIndex: i, to: ref.id });\n });\n\n return locationReferences;\n}\n\nfunction extractGroups (\n course: Types.Course,\n groupsNameMap: Map<string, C_Group>,\n warnings: { code: Types.ErrorCode, context?: unknown }[],\n) {\n if (course.groups == null) return;\n const groupsStr = toString(course.groups);\n if (!groupsStr) return;\n\n const groupReferences: { to: string }[] = [];\n groupsStr.split(',').map(x => x.trim())\n .forEach(x => {\n const key = x.toLowerCase();\n const ref = groupsNameMap.get(key);\n if (!ref) {\n warnings.push({ code: 'invalid_group_reference', context: x });\n return;\n }\n\n if (groupReferences.some(y => y.to == ref.id)) {\n warnings.push({ code: 'group_referenced_multiple_times', context: x });\n return;\n }\n\n groupReferences.push({ to: ref.id });\n });\n\n return groupReferences;\n}\n\nfunction extractTeachers (\n course: Types.Course,\n teachersNameMap: Map<string, C_Teacher>,\n warnings: { code: Types.ErrorCode, context?: unknown }[],\n) {\n if (course.teachers == null) return;\n const teachersStr = toString(course.teachers);\n if (!teachersStr) return undefined;\n\n const teacherReferences: { to: string }[] = [];\n teachersStr.split(',').map(x => x.trim())\n .forEach(x => {\n const key = x.toLowerCase();\n const ref = teachersNameMap.get(key);\n if (!ref) {\n warnings.push({ code: 'invalid_teacher_reference', context: x });\n return;\n }\n\n if (teacherReferences.some(y => y.to == ref.id)) {\n warnings.push({ code: 'teacher_referenced_multiple_times', context: x });\n return;\n }\n\n teacherReferences.push({ to: ref.id });\n });\n\n return teacherReferences;\n}\n\nfunction extractSyllabus (\n course: Types.Course,\n syllabusesCodeMap: Map<string, C_Syllabus>,\n syllabusesNameMap: Map<string, C_Syllabus>,\n warnings: { code: Types.ErrorCode, context?: unknown }[],\n): string | undefined {\n if (course.syllabus == null) return undefined;\n const syllabusValue = toString(course.syllabus);\n if (!syllabusValue) return undefined;\n\n const syllabus = syllabusesCodeMap.get(syllabusValue) || syllabusesNameMap.get(syllabusValue.toLowerCase());\n\n if (!syllabus) {\n warnings.push({ code: 'invalid_syllabus_reference', context: syllabusValue });\n return undefined;\n }\n\n return syllabus.id;\n}\n\n\nfunction _schedules (\n source: Types.Source\n): Out {\n // gather all import related warnings/errors\n const warnings: { code: Types.ErrorCode, context?: unknown }[] = [];\n // let errors: string[] = [];\n\n source.settings = source.settings ?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n source.locations = source.locations?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n source.teachers = source.teachers ?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n source.groups = source.groups ?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n source.persons = source.persons ?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n source.courses = source.courses ?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n\n\n ////\n //// settings\n ////\n const settings: C_Settings = {\n discretization: 5,\n numDays: 5,\n dayStart: '08:00',\n dayEnd: '17:00',\n };\n if (!source.settings) {\n warnings.push({ code: 'missing_settings_sheet' });\n }\n if (source.settings?.[0]?.number_of_days) {\n const numDays = source.settings?.[0]?.number_of_days;\n try {\n settings.numDays = toPositiveInteger(numDays);\n\n // must be 5 or 7\n if (settings.numDays !== 5 && settings.numDays !== 7) {\n warnings.push({ code: 'invalid_number_of_days', context: numDays });\n settings.numDays = 5;\n }\n } catch {\n warnings.push({ code: 'invalid_number_of_days', context: numDays });\n }\n }\n\n ////\n //// syllabuses\n ////\n const syllabusesIdMap = new Map<string, C_Syllabus>();\n const syllabusesNameMap = new Map<string, C_Syllabus>();\n const syllabusesCodeMap = new Map<string, C_Syllabus>();\n if (!source.syllabuses) {\n // warnings.push({ code: 'missing_syllabus_sheet' });\n }\n source.syllabuses?.forEach(x => {\n const ids = toStringIfExists(x.foreign_ID );\n const subjectCode = toStringIfExists(x.subject_code);\n const subjectName = toStringIfExists(x.subject_name);\n const courseCode = toStringIfExists(x.course_code );\n const courseName = toStringIfExists(x.course_name );\n const schoolType = toStringIfExists(x.school_type );\n\n const id = toStringIfExists(x.ID) ?? generateId(syllabusesIdMap);\n if (syllabusesIdMap.has(id)) {\n warnings.push({ code: 'ignoring_duplicate_syllabus', context: `${subjectName} (${courseName})` });\n return;\n }\n\n if (!subjectName) {\n warnings.push({ code: 'missing_subject_name', context: x });\n return;\n }\n\n if (!schoolType) {\n warnings.push({ code: 'missing_school_type', context: x });\n return;\n }\n\n // create the syllabus object\n const y: C_Syllabus = {\n id,\n ...ids && { ids },\n ...subjectCode && { subjectCode },\n subjectName,\n ...courseCode && { courseCode },\n ...courseName && { courseName },\n schoolType,\n official: true, // always true for imported syllabuses\n __raw: x\n };\n syllabusesIdMap.set(id, y);\n const code = courseCode || subjectCode;\n const name = courseName || subjectName;\n if (code) syllabusesCodeMap.set(code, y);\n if (name) syllabusesNameMap.set(name.toLowerCase(), y);\n });\n\n\n ////\n //// locations, teachers\n ////\n const locationsIdMap = new Map<string, C_Location>();\n const locationsNameMap = new Map<string, C_Location>();\n const teachersIdMap = new Map<string, C_Teacher>();\n const teachersNameMap = new Map<string, C_Teacher>();\n [\n {\n name: { singular: 'location', plural: 'locations' } as const,\n data: source.locations,\n idMap: locationsIdMap,\n nameMap: locationsNameMap,\n },\n {\n name: { singular: 'teacher', plural: 'teachers' } as const,\n data: source.teachers,\n idMap: teachersIdMap,\n nameMap: teachersNameMap,\n }\n ].forEach(({ name, data, idMap, nameMap }) => {\n if (!data) {\n warnings.push({ code: `missing_${name.plural}_sheet` });\n }\n data?.forEach(x => {\n const ids = toStringIfExists(x.foreign_ID);\n const displayName = toStringIfExists(x.name );\n\n const id = toStringIfExists(x.ID) ?? generateId(idMap);\n if (idMap.has(id)) {\n warnings.push({ code: `ignoring_duplicate_${name.singular}`, context: displayName });\n return;\n }\n\n const y = {\n id,\n ...ids && { ids },\n ...displayName && { displayName },\n __raw: x\n };\n idMap.set(id, y);\n if (displayName) nameMap.set(displayName.toLowerCase(), y);\n });\n });\n\n\n ////\n //// groups\n ////\n const groupsIdMap = new Map<string, C_Group>();\n const groupsNameMap = new Map<string, C_Group>();\n if (!source.groups) {\n warnings.push({ code: 'missing_groups_sheet' });\n }\n source.groups?.forEach(x => {\n const ids = toStringIfExists(x.foreign_ID);\n const displayName = toStringIfExists(x.name );\n\n const id = toStringIfExists(x.ID) ?? generateId(groupsIdMap);\n if (groupsIdMap.has(id)) {\n warnings.push({ code: 'ignoring_duplicate_group', context: displayName });\n return;\n }\n\n // parent groups determine the species of the group\n const species = toStringIfExists(x.is_class) == '1' ? 'class' as const : undefined;\n\n const y = {\n id,\n ...ids && { ids },\n ...displayName && { displayName },\n ...species && { species },\n __raw: x\n } as C_Group;\n groupsIdMap.set(id, y);\n if (displayName) groupsNameMap.set(displayName.toLowerCase(), y);\n });\n\n\n ////\n //// persons\n ////\n const personsIdMap = new Map<string, C_Person>();\n const personsSsnMap = new Map<string, C_Person>();\n if (!source.persons) {\n warnings.push({ code: 'missing_persons_sheet' });\n }\n source.persons?.forEach(x => {\n const ids = toStringIfExists(x.foreign_ID);\n const firstName = toStringIfExists(x.first_name);\n const lastName = toStringIfExists(x.last_name );\n const SSN = toStringIfExists(x.SSN );\n\n const id = toStringIfExists(x.ID) ?? generateId(personsIdMap);\n if (personsIdMap.has(id)) {\n warnings.push({ code: 'ignoring_duplicate_person', context: `${firstName} ${lastName}` });\n return;\n }\n\n let group: string | undefined = undefined;\n if (x.group) {\n const key = toString(x.group).toLowerCase();\n const ref = groupsNameMap.get(key);\n if (!ref) {\n warnings.push({ code: 'invalid_group_reference', context: x.group });\n } else if (ref.species !== 'class') {\n warnings.push({ code: 'forbidden_group_reference', context: x.group });\n } else {\n group = ref.id;\n }\n }\n\n let sex: C_Person['sex'];\n if (x.sex) {\n if (isString(x.sex) && x.sex.toLowerCase() == 'man') sex = 'Man';\n else if (isString(x.sex) && x.sex.toLowerCase() == 'woman') sex = 'Woman';\n else {\n warnings.push({ code: 'invalid_sex', context: x.sex });\n }\n }\n\n const person: C_Person = {\n id,\n ...ids && { ids },\n ...firstName && { firstName },\n ...lastName && { lastName },\n ...sex && { sex },\n ...group && { group },\n ...SSN && { SSN: { value: SSN } },\n __raw: x\n };\n personsIdMap.set(id, person);\n if (SSN) personsSsnMap.set(SSN, person);\n });\n\n ////\n //// group.members (need to wait for persons to be parsed)\n ////\n groupsNameMap.forEach(x => {\n let duplicateReported = false;\n\n // ignore if no members\n if (!x.__raw.members) return;\n\n // parse and replace SSN by person id\n x.members = makeChainable(x.__raw.members)\n .chain(x => toString(x)\n .split(',')\n .map(x => x.trim())\n .filter(x => x != null)\n )\n .chain(x => countBy(x))\n .chain(y => Object.entries(y)\n .map(([ssn, count]) => {\n // ignore empty ssn\n if (!ssn) return;\n\n // warn if duplicate member\n if (!duplicateReported && count > 1) {\n warnings.push({ code: 'duplicate_group_member', context: x.displayName });\n duplicateReported = true;\n }\n\n // fetch person and warn if not found\n const person = personsSsnMap.get(ssn);\n if (!person) {\n warnings.push({ code: 'invalid_person_reference', context: ssn });\n return;\n }\n\n // warn if the group is a class and the person is already in a different class\n // (we also need to set the group of the person if it is empty)\n if (x.species == 'class') {\n if (!person.group) {\n person.group = x.id;\n }\n else if (person.group != x.id) {\n warnings.push({ code: 'person_in_multiple_classes', context: ssn });\n return;\n }\n }\n\n return person.id;\n })\n .filter(x => x != null)\n )\n .value;\n });\n\n\n ////\n //// courses\n ////\n const coursesIdMap = new Map<string, C_Course >();\n const eventsIdMap = new Map<string, C_Event >();\n const overlapGroupsKeyMap = new Map<string, C_OverlapGroup>();\n if (!source.courses) {\n warnings.push({ code: 'missing_courses_sheet' });\n }\n source.courses?.forEach(x => {\n // await loading events until courses are created\n const mergeWith = toStringIfExists(x.merge_with);\n if (mergeWith) return;\n\n const ids = toStringIfExists(x.foreign_ID);\n const displayName = toStringIfExists(x.name );\n const subject = toStringIfExists(x.subject );\n\n const courseId = toStringIfExists(x.ID) ?? generateId(coursesIdMap);\n if (coursesIdMap.has(courseId)) {\n warnings.push({ code: 'ignoring_duplicate_course', context: displayName + (subject ? ` (${subject})` : '') });\n return;\n }\n\n // try to parse the total hours as an integer\n let expectedTotalHours: number | undefined = undefined;\n if (x.total_hours) {\n try {\n expectedTotalHours = toPositiveInteger(x.total_hours);\n } catch {\n warnings.push({ code: 'invalid_total_hours', context: x.total_hours });\n }\n }\n\n // try to parse the minutes per week as an multiple of 5\n let minutesPerWeek: number | undefined = undefined;\n if (x.minutes_per_week) {\n try {\n minutesPerWeek = toPositiveMultipleOf5(x.minutes_per_week);\n } catch {\n warnings.push({ code: 'invalid_minutes_per_week', context: x.minutes_per_week });\n }\n }\n\n // only one of minutes_per_week or total_hours should be defined\n if (minutesPerWeek != null && expectedTotalHours != null) {\n warnings.push({ code: 'ambiguous_planned_duration', context: `${minutesPerWeek} min/week OR ${expectedTotalHours} hrs` });\n }\n const plannedDuration =\n expectedTotalHours\n ? `${expectedTotalHours} hrs` :\n minutesPerWeek\n ? `${minutesPerWeek} min/week` :\n undefined;\n\n\n // try to parse the lesson durations as an array of integers from which we will generate events\n if (x.lesson_durations) {\n const _durations = typeof x.lesson_durations === 'string'\n ? x.lesson_durations.split(',').map(x => x.trim())\n : [x.lesson_durations];\n\n // truncate to multiple of 5 and filter out zero duration events\n const durations = _durations\n .map(e => {\n try {\n return toPositiveMultipleOf5(e);\n } catch {\n warnings.push({ code: 'invalid_lesson_durations', context: x.lesson_durations });\n return undefined;\n }\n })\n .filter((x): x is number => x !== undefined);\n\n durations.forEach(x => {\n const id = generateId(eventsIdMap);\n const event: C_Event = { id, course: courseId, preferredDuration: x };\n eventsIdMap.set(id, event);\n });\n }\n\n // overlap group\n if (x.overlap_group && toString(x.overlap_group)) {\n const key = toString(x.overlap_group).toLowerCase();\n\n const og = overlapGroupsKeyMap.get(key);\n if (og) og.coalesced?.push({ toModel: 'courses', to: courseId });\n else {\n const id = generateId(overlapGroupsKeyMap);\n const coalesced = [{ toModel: 'courses' as const, to: courseId }];\n overlapGroupsKeyMap.set(key, { id, coalesced });\n }\n }\n\n const locations = extractLocations(x, locationsNameMap, warnings)?.map(x => ({ groupIndex: x.groupIndex, locations: [x.to] as [string] }));\n const groups = extractGroups (x, groupsNameMap, warnings);\n const teachers = extractTeachers (x, teachersNameMap, warnings);\n const syllabus = extractSyllabus(x, syllabusesCodeMap, syllabusesNameMap, warnings);\n\n const course: C_Course = {\n id: courseId,\n ...ids && { ids },\n ...displayName && { displayName },\n ...subject && { subject },\n /* TO BE DEPRECATED */ ...expectedTotalHours && { expectedTotalHours },\n /* TO BE DEPRECATED */ ...minutesPerWeek && { minutesPerWeek },\n ...plannedDuration && { plannedDuration },\n ...groups && { groups },\n ...teachers && { teachers },\n ...locations && { locations },\n ...syllabus && { syllabus },\n __raw: x\n };\n coursesIdMap.set(courseId, course);\n });\n\n\n ////\n //// events\n ////\n source.courses?.forEach(x => {\n // load courses\n const mergeWith = toStringIfExists(x.merge_with);\n if (!mergeWith) return;\n\n // ensure that the course to merge with exists\n if (!coursesIdMap.has(mergeWith)) {\n warnings.push({ code: 'invalid_course_reference', context: mergeWith });\n return;\n }\n\n const displayName = toStringIfExists(x.name);\n const locations = extractLocations(x, locationsNameMap, warnings)?.map(x => ({ groupIndex: x.groupIndex, locations: [x.to] as [string] }));\n const groups = extractGroups (x, groupsNameMap, warnings);\n const teachers = extractTeachers (x, teachersNameMap, warnings);\n\n // try to parse the lesson durations as an array of integers from which we will generate events\n if (x.lesson_durations) {\n const _durations = typeof x.lesson_durations === 'string'\n ? x.lesson_durations.split(',').map(x => x.trim())\n : [x.lesson_durations];\n\n // truncate to multiple of 5 and filter out zero duration events\n const durations = _durations\n .map(e => {\n try {\n return toPositiveMultipleOf5(e);\n } catch {\n warnings.push({ code: 'invalid_lesson_durations', context: x.lesson_durations });\n return undefined;\n }\n })\n .filter((x): x is number => x !== undefined);\n\n durations.forEach(preferredDuration => {\n const id = generateId(eventsIdMap);\n const event: C_Event = {\n id,\n course: mergeWith,\n preferredDuration: preferredDuration,\n ...displayName && { displayName },\n ...groups && { groups },\n ...teachers && { teachers },\n ...locations && { locations },\n __raw: x\n };\n eventsIdMap.set(id, event);\n });\n }\n });\n\n\n ////\n //// return\n ////\n return {\n settings,\n locations: [...locationsIdMap .values()],\n teachers: [...teachersIdMap .values()],\n persons: [...personsIdMap .values()],\n groups: [...groupsIdMap .values()],\n courses: [...coursesIdMap .values()],\n events: [...eventsIdMap .values()],\n overlapGroups: [...overlapGroupsKeyMap.values()],\n syllabuses: [...syllabusesIdMap .values()],\n meta: {\n // ...errors .length && { errors: errors },\n ...warnings.length && { warnings: warnings }\n }\n };\n}\n\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":"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"}
|