@royalschedule/maps 4.0.33 → 4.1.1-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.js.map +1 -1
- package/dist/Additio/from/events.js.map +1 -1
- package/dist/Additio/from/groups.js.map +1 -1
- package/dist/Additio/from/index.js.map +1 -1
- package/dist/Additio/from/locations.js.map +1 -1
- package/dist/Additio/from/persons.js.map +1 -1
- package/dist/Additio/from/schedules.d.ts +0 -1
- package/dist/Additio/from/schedules.js +4 -2
- package/dist/Additio/from/schedules.js.map +1 -1
- package/dist/Additio/from/teachers.js.map +1 -1
- package/dist/Additio/to/index.d.ts +2 -4
- package/dist/Additio/to/schedules.js +4 -2
- package/dist/Additio/to/schedules.js.map +1 -1
- package/dist/Admentum/from/courses.js.map +1 -1
- package/dist/Admentum/from/events.js.map +1 -1
- package/dist/Admentum/from/groups.js.map +1 -1
- package/dist/Admentum/from/index.js.map +1 -1
- package/dist/Admentum/from/locations.js.map +1 -1
- package/dist/Admentum/from/persons.js.map +1 -1
- package/dist/Admentum/from/schedules.d.ts +0 -1
- package/dist/Admentum/from/schedules.js +6 -3
- package/dist/Admentum/from/schedules.js.map +1 -1
- package/dist/Admentum/from/teachers.js.map +1 -1
- package/dist/Admentum/to/index.d.ts +0 -1
- package/dist/Admentum/to/schedules.js +7 -4
- package/dist/Admentum/to/schedules.js.map +1 -1
- package/dist/Excel/index.d.ts +1 -1
- package/dist/Excel/v1/from/index.js +1 -1
- package/dist/Excel/v1/from/index.js.map +1 -1
- package/dist/Excel/v1/index.d.ts +4 -4
- package/dist/Excel/v2/from/index.js +54 -45
- package/dist/Excel/v2/from/index.js.map +1 -1
- package/dist/Excel/v2/index.d.ts +4 -4
- package/dist/IdunSoft/from/courses.js.map +1 -1
- package/dist/IdunSoft/from/events.js +2 -1
- package/dist/IdunSoft/from/events.js.map +1 -1
- package/dist/IdunSoft/from/groups.js.map +1 -1
- package/dist/IdunSoft/from/index.js.map +1 -1
- package/dist/IdunSoft/from/locations.js.map +1 -1
- package/dist/IdunSoft/from/schedules.d.ts +0 -1
- package/dist/IdunSoft/from/schedules.js.map +1 -1
- package/dist/IdunSoft/from/teachers.js.map +1 -1
- package/dist/IdunSoft/to/index.d.ts +0 -1
- package/dist/IdunSoft/to/schedules.js +7 -4
- package/dist/IdunSoft/to/schedules.js.map +1 -1
- package/dist/InfoMentor/to/index.d.ts +0 -1
- package/dist/InfoMentor/to/schedules.js +3 -2
- package/dist/InfoMentor/to/schedules.js.map +1 -1
- package/dist/PlanDigital/from/index.js.map +1 -1
- package/dist/PlanDigital/from/schedules.js +11 -9
- package/dist/PlanDigital/from/schedules.js.map +1 -1
- package/dist/PlanDigital/index.d.ts +0 -1
- package/dist/Quiculum/file/to/index.d.ts +0 -1
- package/dist/Quiculum/file/to/schedules.js +9 -5
- package/dist/Quiculum/file/to/schedules.js.map +1 -1
- package/dist/RS/from/division.d.ts +0 -1
- package/dist/RS/from/division.js +2 -1
- package/dist/RS/from/division.js.map +1 -1
- package/dist/RS/from/index.js.map +1 -1
- package/dist/RS/from/schedules.d.ts +0 -1
- package/dist/RS/from/schedules.js.map +1 -1
- package/dist/RS/make-connected.d.ts +2 -4
- package/dist/RS/make-connected.js +46 -54
- package/dist/RS/make-connected.js.map +1 -1
- package/dist/RS/to/index.js.map +1 -1
- package/dist/RS/to/initial-configuration.js +7 -5
- package/dist/RS/to/initial-configuration.js.map +1 -1
- package/dist/RS/to/input/default.js +16 -21
- package/dist/RS/to/input/default.js.map +1 -1
- package/dist/RS/to/input/dependencies.js +12 -10
- package/dist/RS/to/input/dependencies.js.map +1 -1
- package/dist/RS/to/input/events.js +53 -41
- package/dist/RS/to/input/events.js.map +1 -1
- package/dist/RS/to/input/groups.js +7 -15
- package/dist/RS/to/input/groups.js.map +1 -1
- package/dist/RS/to/input/individuals.js +4 -6
- package/dist/RS/to/input/individuals.js.map +1 -1
- package/dist/RS/to/input/input.js +21 -13
- package/dist/RS/to/input/input.js.map +1 -1
- package/dist/RS/to/input/intervals.js +10 -8
- package/dist/RS/to/input/intervals.js.map +1 -1
- package/dist/RS/to/input/linked-events-sets.js +96 -0
- package/dist/RS/to/input/linked-events-sets.js.map +1 -0
- package/dist/RS/to/input/locked-times.js +91 -0
- package/dist/RS/to/input/locked-times.js.map +1 -0
- package/dist/RS/to/input/periods.js +5 -36
- package/dist/RS/to/input/periods.js.map +1 -1
- package/dist/RS/to/input/settings.js +1 -8
- package/dist/RS/to/input/settings.js.map +1 -1
- package/dist/RS/to/input/teachers.js +8 -16
- package/dist/RS/to/input/teachers.js.map +1 -1
- package/dist/RS/to/input/util/parse-days.js +2 -2
- package/dist/RS/to/input/util/parse-days.js.map +1 -1
- package/dist/RS/to/input/util/parse-group-references.js +2 -10
- package/dist/RS/to/input/util/parse-group-references.js.map +1 -1
- package/dist/RS/to/input/util/parse-location-references.js +1 -7
- package/dist/RS/to/input/util/parse-location-references.js.map +1 -1
- package/dist/RS/to/input/util/parse-max-working-hours.js +4 -7
- package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -1
- package/dist/RS/to/input/util/parse-minimum-break-length.js +2 -2
- package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -1
- package/dist/RS/to/input/util/util.js +5 -11
- package/dist/RS/to/input/util/util.js.map +1 -1
- package/dist/RS/to/schedules.js.map +1 -1
- package/dist/RS/types/algorithm-parameters.d.ts +1 -2
- package/dist/RS/types/index.d.ts +2 -31
- package/dist/RS/types/schedule-data.d.ts +12 -15
- package/dist/RS/types/to.d.ts +10 -18
- package/dist/RS/types/to.js +1 -1
- package/dist/RS/types/to.js.map +1 -1
- package/dist/SS12000/from/activities.js +2 -1
- package/dist/SS12000/from/activities.js.map +1 -1
- package/dist/SS12000/from/calendar-events.js.map +1 -1
- package/dist/SS12000/from/duties.js.map +1 -1
- package/dist/SS12000/from/groups.js.map +1 -1
- package/dist/SS12000/from/index.js.map +1 -1
- package/dist/SS12000/from/persons.js.map +1 -1
- package/dist/SS12000/from/resources.js.map +1 -1
- package/dist/SS12000/from/rooms.js.map +1 -1
- package/dist/SS12000/from/syllabuses.js.map +1 -1
- package/dist/SS12000/index.d.ts +9 -12782
- package/dist/SS12000/to/activities.js.map +1 -1
- package/dist/SS12000/to/calendar-events.js.map +1 -1
- package/dist/SS12000/to/common.js.map +1 -1
- package/dist/SS12000/to/duties.js.map +1 -1
- package/dist/SS12000/to/groups.js.map +1 -1
- package/dist/SS12000/to/index.d.ts +0 -1
- package/dist/SS12000/to/persons.js.map +1 -1
- package/dist/SS12000/to/resources.js.map +1 -1
- package/dist/SS12000/to/rooms.js.map +1 -1
- package/dist/SS12000/to/syllabuses.js.map +1 -1
- package/dist/SchoolSoft/api/from/index.js.map +1 -1
- package/dist/SchoolSoft/api/from/schedules.js +12 -8
- package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
- package/dist/SchoolSoft/api/index.d.ts +7 -6
- package/dist/SchoolSoft/file/from/index.js.map +1 -1
- package/dist/SchoolSoft/file/from/schedules.js +87 -83
- package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
- package/dist/SchoolSoft/file/index.d.ts +0 -1
- package/dist/SchoolSoft/file/to/index.d.ts +2 -3
- package/dist/SchoolSoft/file/to/schedules.js +2 -1
- package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
- package/dist/SchoolSoft/index.d.ts +0 -1
- package/dist/Schoolity/txt/to/index.d.ts +0 -1
- package/dist/Schoolity/txt/to/schedules.js +14 -7
- package/dist/Schoolity/txt/to/schedules.js.map +1 -1
- package/dist/Skola24/mdb/from/course-and-events.js +5 -3
- package/dist/Skola24/mdb/from/course-and-events.js.map +1 -1
- package/dist/Skola24/mdb/from/groups.js.map +1 -1
- package/dist/Skola24/mdb/from/index.js.map +1 -1
- package/dist/Skola24/mdb/from/locations.js.map +1 -1
- package/dist/Skola24/mdb/from/schedule.d.ts +0 -1
- package/dist/Skola24/mdb/from/schedule.js.map +1 -1
- package/dist/Skola24/mdb/from/teachers.js.map +1 -1
- package/dist/Skola24/txt/from/calendar-exceptions.js +2 -1
- package/dist/Skola24/txt/from/calendar-exceptions.js.map +1 -1
- package/dist/Skola24/txt/from/division.js.map +1 -1
- package/dist/Skola24/txt/from/index.js.map +1 -1
- package/dist/Skola24/txt/from/period.js +34 -31
- package/dist/Skola24/txt/from/period.js.map +1 -1
- package/dist/Skola24/txt/from/schedules.d.ts +0 -1
- package/dist/Skola24/txt/from/schedules.js +10 -6
- package/dist/Skola24/txt/from/schedules.js.map +1 -1
- package/dist/Skola24/txt/from/util.js.map +1 -1
- package/dist/Skola24/txt/index.d.ts +0 -1
- package/dist/Skola24/txt/to/index.d.ts +0 -1
- package/dist/Skola24/txt/to/schedules.js +15 -8
- package/dist/Skola24/txt/to/schedules.js.map +1 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/functions.js +2 -2
- package/dist/common/functions.js.map +1 -1
- package/dist/common/get-date.js.map +1 -1
- package/dist/common/make-chainable/index.js.map +1 -1
- package/dist/common/types.d.ts +28 -2
- package/dist/core/from/configurations.js.map +1 -1
- package/dist/core/from/courses.js.map +1 -1
- package/dist/core/from/events.js.map +1 -1
- package/dist/core/from/exceptions.js.map +1 -1
- package/dist/core/from/groups.js.map +1 -1
- package/dist/core/from/index.js.map +1 -1
- package/dist/core/from/locations.js.map +1 -1
- package/dist/core/from/locked-times.js.map +1 -1
- package/dist/core/from/overlap-groups.js.map +1 -1
- package/dist/core/from/periods.js.map +1 -1
- package/dist/core/from/persons.js.map +1 -1
- package/dist/core/from/root-intervals.js.map +1 -1
- package/dist/core/from/schedules.js.map +1 -1
- package/dist/core/from/settings.js.map +1 -1
- package/dist/core/from/syllabuses.js.map +1 -1
- package/dist/core/from/teachers.js.map +1 -1
- package/dist/core/index.d.ts +0 -1
- package/dist/core/interfaces/other/companies.d.ts +0 -1
- package/dist/core/interfaces/other/companies.js.map +1 -1
- package/dist/core/interfaces/other/operations.d.ts +0 -1
- package/dist/core/interfaces/vertices/companies.d.ts +0 -1
- package/dist/core/interfaces/vertices/configurations.d.ts +0 -1
- package/dist/core/interfaces/vertices/courses.d.ts +0 -1
- package/dist/core/interfaces/vertices/division-settings.d.ts +2 -3
- package/dist/core/interfaces/vertices/divisions.d.ts +0 -1
- package/dist/core/interfaces/vertices/events.d.ts +3 -1
- package/dist/core/interfaces/vertices/exceptions.d.ts +0 -1
- package/dist/core/interfaces/vertices/generations.d.ts +1 -3
- package/dist/core/interfaces/vertices/groups.d.ts +0 -1
- package/dist/core/interfaces/vertices/index.d.ts +15 -8
- package/dist/core/interfaces/vertices/linked-events-sets.d.ts +18 -0
- package/dist/core/interfaces/vertices/locations.d.ts +0 -1
- package/dist/core/interfaces/vertices/locked-times.d.ts +0 -2
- package/dist/core/interfaces/vertices/overlap-groups.d.ts +0 -1
- package/dist/core/interfaces/vertices/periods.d.ts +0 -3
- package/dist/core/interfaces/vertices/persons.d.ts +0 -1
- package/dist/core/interfaces/vertices/properties/belongs-to.d.ts +0 -1
- package/dist/core/interfaces/vertices/properties/coalesced.d.ts +0 -1
- package/dist/core/interfaces/vertices/root-intervals.d.ts +0 -2
- package/dist/core/interfaces/vertices/syllabuses.d.ts +0 -1
- package/dist/core/interfaces/vertices/teachers.d.ts +0 -1
- package/dist/core/interfaces/vertices/threads.d.ts +0 -1
- package/dist/core/interfaces/vertices/users.d.ts +0 -1
- package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.ts +6 -6
- package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.ts +4 -4
- package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.ts +10 -10
- package/dist/core/interfaces/vertices/util/edges.d.ts +7 -7
- package/dist/core/interfaces/vertices/util/util.d.ts +24 -20
- package/dist/core/interfaces/vertices/util/vertex-query/index.d.ts +11 -11
- package/dist/core/interfaces/vertices/util/vertex.d.ts +5 -4
- package/dist/core/interfaces/vertices/vertex-query.d.ts +29 -27
- package/dist/core/interfaces/vertices/vertex-query.js +4 -0
- package/dist/core/interfaces/vertices/vertex-query.js.map +1 -1
- package/dist/core/to/configurations.js +2 -1
- package/dist/core/to/configurations.js.map +1 -1
- package/dist/core/to/courses.js +2 -1
- package/dist/core/to/courses.js.map +1 -1
- package/dist/core/to/division.js.map +1 -1
- package/dist/core/to/events.js +3 -1
- package/dist/core/to/events.js.map +1 -1
- package/dist/core/to/exceptions.js +2 -1
- package/dist/core/to/exceptions.js.map +1 -1
- package/dist/core/to/groups.js +2 -1
- package/dist/core/to/groups.js.map +1 -1
- package/dist/core/to/linked-events-sets.js +18 -0
- package/dist/core/to/linked-events-sets.js.map +1 -0
- package/dist/core/to/locations.js +2 -1
- package/dist/core/to/locations.js.map +1 -1
- package/dist/core/to/locked-times.js +2 -1
- package/dist/core/to/locked-times.js.map +1 -1
- package/dist/core/to/overlap-groups.js +2 -1
- package/dist/core/to/overlap-groups.js.map +1 -1
- package/dist/core/to/periods.js +2 -1
- package/dist/core/to/periods.js.map +1 -1
- package/dist/core/to/persons.js +2 -1
- package/dist/core/to/persons.js.map +1 -1
- package/dist/core/to/root-intervals.js +2 -1
- package/dist/core/to/root-intervals.js.map +1 -1
- package/dist/core/to/schedules.d.ts +2 -1
- package/dist/core/to/schedules.js +3 -1
- package/dist/core/to/schedules.js.map +1 -1
- package/dist/core/to/settings.js +2 -1
- package/dist/core/to/settings.js.map +1 -1
- package/dist/core/to/syllabuses.js +2 -1
- package/dist/core/to/syllabuses.js.map +1 -1
- package/dist/core/to/teachers.js +2 -1
- package/dist/core/to/teachers.js.map +1 -1
- package/dist/core/to/util.d.ts +0 -2
- package/dist/core/to/util.js +2 -1
- package/dist/core/to/util.js.map +1 -1
- package/dist/core/types/index.d.ts +5 -1
- package/dist/core/util.js +5 -3
- package/dist/core/util.js.map +1 -1
- package/dist/identify/constants/index.d.ts +1 -1
- package/dist/identify/constants/index.js.map +1 -1
- package/dist/identify/index.js +2 -1
- package/dist/identify/index.js.map +1 -1
- package/dist/sdui/from/classes.js.map +1 -1
- package/dist/sdui/from/courses.js.map +1 -1
- package/dist/sdui/from/holidays.js.map +1 -1
- package/dist/sdui/from/index.js.map +1 -1
- package/dist/sdui/from/lessons.js.map +1 -1
- package/dist/sdui/from/rooms.js.map +1 -1
- package/dist/sdui/from/schedules.d.ts +0 -2
- package/dist/sdui/from/schedules.js.map +1 -1
- package/dist/sdui/from/school-years.js.map +1 -1
- package/dist/sdui/from/substitution-plans.js.map +1 -1
- package/dist/sdui/from/teachers.js.map +1 -1
- package/dist/sdui/to/classes.js.map +1 -1
- package/dist/sdui/to/courses.js.map +1 -1
- package/dist/sdui/to/holidays.js +1 -1
- package/dist/sdui/to/holidays.js.map +1 -1
- package/dist/sdui/to/hours.js.map +1 -1
- package/dist/sdui/to/index.d.ts +0 -2
- package/dist/sdui/to/lessons.js +1 -1
- package/dist/sdui/to/lessons.js.map +1 -1
- package/dist/sdui/to/rooms.js.map +1 -1
- package/dist/sdui/to/schedules.js.map +1 -1
- package/dist/sdui/to/school-years.js +1 -1
- package/dist/sdui/to/school-years.js.map +1 -1
- package/dist/sdui/to/substitution-plans.js +7 -4
- package/dist/sdui/to/substitution-plans.js.map +1 -1
- package/dist/sdui/to/teachers.js.map +1 -1
- package/dist/vKlass/from/index.js.map +1 -1
- package/dist/vKlass/from/schedule.d.ts +0 -1
- package/dist/vKlass/from/schedule.js.map +1 -1
- package/dist/vKlass/to/schedules.js +17 -6
- package/dist/vKlass/to/schedules.js.map +1 -1
- package/package.json +29 -24
- package/dist/RS/to/input/collections.js +0 -58
- package/dist/RS/to/input/collections.js.map +0 -1
- package/dist/RS/to/input/dynamic-locked-times.js +0 -69
- package/dist/RS/to/input/dynamic-locked-times.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-intervals.js +0 -56
- package/dist/RS/to/input/util/parse-intervals.js.map +0 -1
- package/dist/RS/types/collections.d.ts +0 -33
- package/dist/RS/types/default.d.ts +0 -31
- package/dist/RS/types/dependencies.d.ts +0 -16
- package/dist/RS/types/events.d.ts +0 -34
- package/dist/RS/types/groups.d.ts +0 -27
- 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/settings.d.ts +0 -15
- package/dist/RS/types/shared.d.ts +0 -27
- package/dist/core/interfaces/index.d.ts +0 -23
- package/dist/core/interfaces/other/index.d.ts +0 -6
- package/dist/core/interfaces/vertices/util/index.d.ts +0 -6
package/package.json
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@royalschedule/maps",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "4.0
|
|
4
|
+
"version": "4.1.1-beta.0",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "dist/index.
|
|
7
|
-
"types": "dist/index.d.
|
|
6
|
+
"main": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.mts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.mjs",
|
|
11
|
+
"types": "./dist/index.d.mts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
8
14
|
"engines": {
|
|
9
15
|
"node": "22.14.0"
|
|
10
16
|
},
|
|
@@ -48,42 +54,41 @@
|
|
|
48
54
|
"license": "ISC",
|
|
49
55
|
"homepage": "https://bitbucket.org/royalschedule/maps#readme",
|
|
50
56
|
"devDependencies": {
|
|
51
|
-
"@eslint/js": "^
|
|
52
|
-
"@royalschedule/input-verifier": "^5.0.
|
|
53
|
-
"@stylistic/eslint-plugin": "^5.
|
|
54
|
-
"@tsconfig/strictest": "^2.0.
|
|
57
|
+
"@eslint/js": "^10.0.1",
|
|
58
|
+
"@royalschedule/input-verifier": "^5.0.7",
|
|
59
|
+
"@stylistic/eslint-plugin": "^5.9.0",
|
|
60
|
+
"@tsconfig/strictest": "^2.0.8",
|
|
55
61
|
"@types/json2csv": "^5.0.7",
|
|
56
62
|
"@types/lodash-es": "^4.17.12",
|
|
57
|
-
"@types/node": "^
|
|
58
|
-
"@types/papaparse": "^5.
|
|
59
|
-
"@typescript-eslint/parser": "^8.
|
|
60
|
-
"@typescript-eslint/utils": "^8.
|
|
61
|
-
"@vitest/coverage-v8": "^4.0.
|
|
62
|
-
"eslint": "^
|
|
63
|
-
"eslint-plugin-jsdoc": "^
|
|
64
|
-
"eslint-plugin-unused-imports": "^4.
|
|
63
|
+
"@types/node": "^25.3.0",
|
|
64
|
+
"@types/papaparse": "^5.5.2",
|
|
65
|
+
"@typescript-eslint/parser": "^8.56.0",
|
|
66
|
+
"@typescript-eslint/utils": "^8.56.0",
|
|
67
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
68
|
+
"eslint": "^10.0.1",
|
|
69
|
+
"eslint-plugin-jsdoc": "^62.7.0",
|
|
70
|
+
"eslint-plugin-unused-imports": "^4.4.1",
|
|
65
71
|
"jiti": "^2.6.1",
|
|
66
72
|
"madge": "^8.0.0",
|
|
67
|
-
"nodemon": "^3.1.
|
|
68
|
-
"tsdown": "^0.
|
|
73
|
+
"nodemon": "^3.1.14",
|
|
74
|
+
"tsdown": "^0.20.3",
|
|
69
75
|
"tslib": "^2.8.1",
|
|
70
|
-
"tsx": "^4.
|
|
76
|
+
"tsx": "^4.21.0",
|
|
71
77
|
"typescript": "^5.9.3",
|
|
72
|
-
"typescript-eslint": "^8.
|
|
73
|
-
"vitest": "^4.0.
|
|
78
|
+
"typescript-eslint": "^8.56.0",
|
|
79
|
+
"vitest": "^4.0.18"
|
|
74
80
|
},
|
|
75
81
|
"dependencies": {
|
|
76
82
|
"@json2csv/plainjs": "^7.0.6",
|
|
77
83
|
"csv-parser": "^3.2.0",
|
|
78
|
-
"iconv-lite": "^0.7.
|
|
79
|
-
"lodash-es": "^4.17.
|
|
84
|
+
"iconv-lite": "^0.7.2",
|
|
85
|
+
"lodash-es": "^4.17.23",
|
|
80
86
|
"moment": "^2.30.1",
|
|
81
|
-
"mongoose": "^8.19.2",
|
|
82
87
|
"nanoid": "^5.1.6",
|
|
83
88
|
"papaparse": "^5.5.3",
|
|
84
89
|
"ts-expect": "^1.3.0",
|
|
85
90
|
"uuid": "^13.0.0",
|
|
86
91
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
|
|
87
|
-
"zod": "^4.
|
|
92
|
+
"zod": "^4.3.6"
|
|
88
93
|
}
|
|
89
94
|
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { getVertexId } from "../../../core/util.js";
|
|
2
|
-
import { makeChainable } from "../../../common/make-chainable/index.js";
|
|
3
|
-
import { getPeriodIndex, idOf } from "./util/util.js";
|
|
4
|
-
import { attachLockedTimes } from "./util/attach-locked-times.js";
|
|
5
|
-
import { parseDays } from "./util/parse-days.js";
|
|
6
|
-
import { parseMinimumBreakLength } from "./util/parse-minimum-break-length.js";
|
|
7
|
-
import { getDefaultInterval } from "./intervals.js";
|
|
8
|
-
import { parseIntervals } from "./util/parse-intervals.js";
|
|
9
|
-
import { parseGroupReferences } from "./util/parse-group-references.js";
|
|
10
|
-
import { parseLocationReferences } from "./util/parse-location-references.js";
|
|
11
|
-
import { parseEvents } from "./events.js";
|
|
12
|
-
import { groupBy, omit, omitBy, values } from "lodash-es";
|
|
13
|
-
|
|
14
|
-
//#region src/RS/to/input/collections.ts
|
|
15
|
-
function fromCollections(courses, settings, options, periodsMap) {
|
|
16
|
-
const defaultInterval = getDefaultInterval(settings);
|
|
17
|
-
const collections = courses.map((course) => {
|
|
18
|
-
const id = getVertexId(course, options);
|
|
19
|
-
const intervals = course.intervals ?? defaultInterval;
|
|
20
|
-
const doc = {
|
|
21
|
-
id,
|
|
22
|
-
weight: course.weight,
|
|
23
|
-
density: course.density,
|
|
24
|
-
maxEventLengthVariance: course.eventDurationVariance,
|
|
25
|
-
potentialCenter: course.centerOfAttraction ? parseFloat(course.centerOfAttraction.replace(":", ".")) : void 0,
|
|
26
|
-
distributionKey: id,
|
|
27
|
-
events: parseEvents(course.events, settings, options, periodsMap),
|
|
28
|
-
dependencies: parseLocationReferences(course.locations, options),
|
|
29
|
-
groups: parseGroupReferences({
|
|
30
|
-
type: "course",
|
|
31
|
-
item: course
|
|
32
|
-
}, options),
|
|
33
|
-
intervals: options.oldFormat ? parseIntervals(intervals, void 0, settings) : idOf.intervalPairReference(intervals, void 0, options),
|
|
34
|
-
days: parseDays(course.days, settings),
|
|
35
|
-
minBreakLength: parseMinimumBreakLength(course.minBreakLength),
|
|
36
|
-
lockedTimes: attachLockedTimes(course.lockedTimes, options),
|
|
37
|
-
period: getPeriodIndex(course.period, periodsMap, options),
|
|
38
|
-
_period: course.period ? getVertexId(course.period, options) : void 0
|
|
39
|
-
};
|
|
40
|
-
if (options.includeEntityMeta) doc.meta = omitBy({
|
|
41
|
-
color: course.color,
|
|
42
|
-
ids: course.ids,
|
|
43
|
-
name: course.displayName
|
|
44
|
-
}, (x) => x == null);
|
|
45
|
-
doc.overlapGroupId = course.overlapGroup ? getVertexId(course.overlapGroup, options) : void 0;
|
|
46
|
-
return omitBy(doc, (x) => x == null);
|
|
47
|
-
});
|
|
48
|
-
const overlapping = makeChainable(collections).chain((x) => x.filter((x$1) => x$1.overlapGroupId != null), (x) => groupBy(x, (x$1) => x$1.overlapGroupId), (x) => values(x).map((xs) => xs.map((x$1) => omit(x$1, "overlapGroupId")))).value;
|
|
49
|
-
const plain = collections.filter((x) => x.overlapGroupId == null).map((x) => {
|
|
50
|
-
delete x.overlapGroupId;
|
|
51
|
-
return x;
|
|
52
|
-
});
|
|
53
|
-
return overlapping.concat(plain);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
//#endregion
|
|
57
|
-
export { fromCollections };
|
|
58
|
-
//# sourceMappingURL=collections.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","names":["doc: Types.collection & { overlapGroupId?: string }","x"],"sources":["../../../../src/RS/to/input/collections.ts"],"sourcesContent":["import { groupBy, omit, omitBy, values } from 'lodash-es';\nimport { attachLockedTimes } from './util/attach-locked-times';\nimport { parseEvents } from './events';\nimport { parseMinimumBreakLength } from './util/parse-minimum-break-length';\nimport { parseGroupReferences } from './util/parse-group-references';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { getVertexId } from '../../../core/util';\nimport { getPeriodIndex, idOf } from './util/util';\nimport { parseLocationReferences } from './util/parse-location-references';\nimport { parseDays } from './util/parse-days';\nimport { parseIntervals } from './util/parse-intervals';\nimport type { Types } from '../../types';\nimport { makeChainable } from '../../../common/make-chainable';\nimport { getDefaultInterval } from './intervals';\n\nexport function fromCollections (\n courses: ConnectedTypes.course[],\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions,\n periodsMap: Map<string | undefined, number>,\n): (Types.collection[] | Types.collection)[] {\n const defaultInterval = getDefaultInterval(settings);\n\n const collections = courses\n .map(course => {\n const id = getVertexId(course, options);\n const intervals = course.intervals ?? defaultInterval;\n\n const doc: Types.collection & { overlapGroupId?: string } = {\n id,\n\n weight: course.weight,\n density: course.density,\n maxEventLengthVariance: course.eventDurationVariance,\n potentialCenter: course.centerOfAttraction ? parseFloat(course.centerOfAttraction.replace(':', '.')) : undefined,\n distributionKey: id,\n\n events: parseEvents (course.events, settings, options, periodsMap),\n dependencies: parseLocationReferences (course.locations, options),\n groups: parseGroupReferences ({ type: 'course', item: course }, options),\n intervals: options.oldFormat\n ? parseIntervals(intervals, undefined, settings)\n : idOf.intervalPairReference(intervals, undefined, options),\n days: parseDays (course.days, settings),\n minBreakLength: parseMinimumBreakLength (course.minBreakLength),\n lockedTimes: attachLockedTimes (course.lockedTimes, options),\n period: getPeriodIndex (course.period, periodsMap, options),\n _period: course.period ? getVertexId(course.period, options) : undefined,\n };\n\n if (options.includeEntityMeta) {\n doc.meta = omitBy({\n color: course.color,\n ids: course.ids,\n name: course.displayName,\n }, x => x == null);\n }\n\n // temporarily attach overlap group\n doc.overlapGroupId = course.overlapGroup\n ? getVertexId(course.overlapGroup, options)\n : undefined;\n\n return omitBy(doc, x => x == null) as Types.collection & { overlapGroupId?: string };\n });\n\n const overlapping = makeChainable(collections)\n .chain(\n x => x.filter(x => x.overlapGroupId != null),\n x => groupBy(x, x => x.overlapGroupId),\n x => values(x)\n .map(xs => xs.map(x => omit(x, 'overlapGroupId') as Types.collection))\n )\n .value;\n\n const plain = collections\n .filter(x => x.overlapGroupId == null)\n .map(x => {\n delete x.overlapGroupId; // remove overlapGroupId from individual collections\n return x as Types.collection;\n });\n\n return overlapping.concat(plain);\n};"],"mappings":";;;;;;;;;;;;;;AAeA,SAAgB,gBACd,SACA,UACA,SACA,YAC2C;CAC3C,MAAM,kBAAkB,mBAAmB,SAAS;CAEpD,MAAM,cAAc,QACjB,KAAI,WAAU;EACb,MAAM,KAAY,YAAY,QAAQ,QAAQ;EAC9C,MAAM,YAAY,OAAO,aAAa;EAEtC,MAAMA,MAAsD;GAC1D;GAEA,QAAwB,OAAO;GAC/B,SAAwB,OAAO;GAC/B,wBAAwB,OAAO;GAC/B,iBAAwB,OAAO,qBAAqB,WAAW,OAAO,mBAAmB,QAAQ,KAAK,IAAI,CAAC,GAAG;GAC9G,iBAAwB;GAExB,QAAc,YAA2B,OAAO,QAAQ,UAAU,SAAS,WAAW;GACtF,cAAc,wBAA2B,OAAO,WAAW,QAAQ;GACnE,QAAc,qBAA2B;IAAE,MAAM;IAAU,MAAM;IAAQ,EAAE,QAAQ;GACnF,WAAc,QAAQ,YAClB,eAAe,WAAW,QAAW,SAAS,GAC9C,KAAK,sBAAsB,WAAW,QAAW,QAAQ;GAC7D,MAAgB,UAA2B,OAAO,MAAM,SAAS;GACjE,gBAAgB,wBAA2B,OAAO,eAAe;GACjE,aAAgB,kBAA2B,OAAO,aAAa,QAAQ;GACvE,QAAgB,eAA2B,OAAO,QAAQ,YAAY,QAAQ;GAC9E,SAAgB,OAAO,SAAS,YAAY,OAAO,QAAQ,QAAQ,GAAG;GACvE;AAED,MAAI,QAAQ,kBACV,KAAI,OAAO,OAAO;GAChB,OAAO,OAAO;GACd,KAAO,OAAO;GACd,MAAO,OAAO;GACf,GAAE,MAAK,KAAK,KAAK;AAIpB,MAAI,iBAAiB,OAAO,eACxB,YAAY,OAAO,cAAc,QAAQ,GACzC;AAEJ,SAAO,OAAO,MAAK,MAAK,KAAK,KAAK;GAClC;CAEJ,MAAM,cAAc,cAAc,YAAY,CAC3C,OACC,MAAK,EAAE,QAAO,QAAKC,IAAE,kBAAkB,KAAK,GAC5C,MAAK,QAAQ,IAAG,QAAKA,IAAE,eAAe,GACtC,MAAK,OAAO,EAAE,CACX,KAAI,OAAM,GAAG,KAAI,QAAK,KAAKA,KAAG,iBAAiB,CAAqB,CAAC,CACzE,CACA;CAEH,MAAM,QAAQ,YACX,QAAO,MAAK,EAAE,kBAAkB,KAAK,CACrC,KAAI,MAAK;AACR,SAAO,EAAE;AACT,SAAO;GACP;AAEJ,QAAO,YAAY,OAAO,MAAM"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { getDayIndex, getVertexId } from "../../../core/util.js";
|
|
2
|
-
import { makeChainable } from "../../../common/make-chainable/index.js";
|
|
3
|
-
import { idOf } from "./util/util.js";
|
|
4
|
-
import { getDefaultInterval } from "./intervals.js";
|
|
5
|
-
import { parseIntervals } from "./util/parse-intervals.js";
|
|
6
|
-
import { parseGroupReferences } from "./util/parse-group-references.js";
|
|
7
|
-
import { toDayAndStart } from "./events.js";
|
|
8
|
-
import { groupBy, omitBy, uniq } from "lodash-es";
|
|
9
|
-
|
|
10
|
-
//#region src/RS/to/input/dynamic-locked-times.ts
|
|
11
|
-
function parse(lockedTime, settings, options, defaultInterval) {
|
|
12
|
-
const duration = lockedTime.duration;
|
|
13
|
-
if (!duration || duration < 5) throw new Error("(RS::To::DynamicLockedTimes) Length of a locked time is less than 5 min");
|
|
14
|
-
const dependencyReferences = makeChainable(lockedTime.coalesced ?? []).chain((x) => x.filter((x$1) => x$1.toModel == "locations").map((x$1) => getVertexId(x$1.to, options)), (x) => uniq(x), (x) => x.map((x$1) => [x$1])).value;
|
|
15
|
-
const days = lockedTime.intervals ? makeChainable(lockedTime.intervals).chain((x) => x.map((x$1) => getDayIndex(x$1.start)), (x) => uniq(x)).value : void 0;
|
|
16
|
-
const day = days?.length == 1 ? days[0] : void 0;
|
|
17
|
-
if (day != null && lockedTime.coalesced) {
|
|
18
|
-
if (!lockedTime.coalesced.every((x) => !x.to.days?.length || x.to.days.some((x$1) => x$1.day == day))) return;
|
|
19
|
-
}
|
|
20
|
-
const distributionKey = lockedTime.type == "COMPLEMENTARY_TIME" ? "COMPLEMENTARY_TIME." + lockedTime.tags?.at(0)?.value : void 0;
|
|
21
|
-
const intervals = lockedTime.intervals ?? defaultInterval;
|
|
22
|
-
const doc = {
|
|
23
|
-
id: idOf.lockedTime(lockedTime, options),
|
|
24
|
-
length: duration,
|
|
25
|
-
minBreakLength: false,
|
|
26
|
-
maxLengthVariance: lockedTime.durationVariance,
|
|
27
|
-
groups: parseGroupReferences({
|
|
28
|
-
type: "lockedTime",
|
|
29
|
-
item: lockedTime
|
|
30
|
-
}, options),
|
|
31
|
-
dependencies: dependencyReferences,
|
|
32
|
-
intervals: options.oldFormat ? parseIntervals(intervals, void 0, settings) : idOf.intervalPairReference(intervals, void 0, options),
|
|
33
|
-
distributionKey,
|
|
34
|
-
...days && { days },
|
|
35
|
-
...day && { day }
|
|
36
|
-
};
|
|
37
|
-
if (options.partialScheduleOptions) {
|
|
38
|
-
const { includedEvents, omittedEventsHandling } = options.partialScheduleOptions;
|
|
39
|
-
if (includedEvents && !includedEvents.has(doc.id)) {
|
|
40
|
-
if (omittedEventsHandling == "ignore") return;
|
|
41
|
-
if (omittedEventsHandling == "freeze") {
|
|
42
|
-
if (lockedTime.parked || !lockedTime.start || !lockedTime.duration) return;
|
|
43
|
-
Object.assign(doc, toDayAndStart(lockedTime.start));
|
|
44
|
-
doc.length = lockedTime.duration;
|
|
45
|
-
doc.maxLengthVariance = 0;
|
|
46
|
-
const numDays = settings.numDays ?? 5;
|
|
47
|
-
doc.days = Array.from({ length: numDays }, (_, i) => i);
|
|
48
|
-
doc.intervals = Array.from({ length: numDays }, () => [{
|
|
49
|
-
beg: 0,
|
|
50
|
-
end: 23.55
|
|
51
|
-
}]);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return omitBy(doc, (x) => x == null);
|
|
56
|
-
}
|
|
57
|
-
function fromDynamicLockedTimes(lockedTimes, settings, options) {
|
|
58
|
-
const defaultInterval = getDefaultInterval(settings);
|
|
59
|
-
const complementaryHours = makeChainable(lockedTimes).chain((x) => x.filter((x$1) => x$1.type == "COMPLEMENTARY_TIME").map((x$1) => parse(x$1, settings, options, defaultInterval)).filter((x$1) => !!x$1), (x) => groupBy(x, (x$1) => [x$1.distributionKey].flat().toSorted().join("|")), (x) => Object.entries(x).map(([id, events]) => ({
|
|
60
|
-
id: `COMPLEMENTARY_TIME.${id}`,
|
|
61
|
-
events
|
|
62
|
-
}))).value;
|
|
63
|
-
const lunches = lockedTimes.filter((x) => x.type == "LUNCH").map((lockedTime) => parse(lockedTime, settings, options, defaultInterval)).filter((x) => !!x);
|
|
64
|
-
return [...complementaryHours, ...lunches];
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
//#endregion
|
|
68
|
-
export { fromDynamicLockedTimes };
|
|
69
|
-
//# sourceMappingURL=dynamic-locked-times.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-locked-times.js","names":["x","doc: Types.event"],"sources":["../../../../src/RS/to/input/dynamic-locked-times.ts"],"sourcesContent":["import { groupBy, omitBy, uniq } from 'lodash-es';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { getDayIndex, getVertexId } from '../../../core/util';\nimport { idOf } from './util/util';\nimport { parseGroupReferences } from './util/parse-group-references';\nimport { parseIntervals } from './util/parse-intervals';\nimport type { Types } from '../../types';\nimport { makeChainable } from '../../../common/make-chainable';\nimport { toDayAndStart } from './events';\nimport { getDefaultInterval } from './intervals';\nimport type { Interval } from '../../../core/interfaces';\n\nfunction parse (\n lockedTime: ConnectedTypes.lockedTime,\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions,\n defaultInterval: Interval[]\n) {\n const duration = lockedTime.duration;\n if (!duration || duration < 5) throw new Error('(RS::To::DynamicLockedTimes) Length of a locked time is less than 5 min');\n\n const dependencyReferences = makeChainable(lockedTime.coalesced ?? [])\n .chain(\n x => x\n .filter(x => x.toModel == 'locations')\n .map(x => getVertexId(x.to, options)),\n x => uniq(x),\n x => x.map(x => [x])\n )\n .value;\n\n const days = lockedTime.intervals\n ? makeChainable(lockedTime.intervals)\n .chain(\n x => x.map(x => getDayIndex(x.start)),\n x => uniq(x),\n )\n .value\n : undefined;\n const day = days?.length == 1 ? days[0] : undefined;\n\n // ignore locked times that reside on days that are not part of any coalesced's days\n if (day != null && lockedTime.coalesced) {\n const allowedByEvery = lockedTime.coalesced.every(x => !x.to.days?.length || x.to.days.some(x => x.day == day));\n if (!allowedByEvery) return;\n }\n\n // each type (tag) of complementary hours should distribute evenly\n const distributionKey = lockedTime.type == 'COMPLEMENTARY_TIME'\n ? 'COMPLEMENTARY_TIME.' + lockedTime.tags?.at(0)?.value\n : undefined;\n\n const intervals = lockedTime.intervals ?? defaultInterval;\n\n const doc: Types.event = {\n id: idOf.lockedTime(lockedTime, options),\n length: duration,\n minBreakLength: false,\n maxLengthVariance: lockedTime.durationVariance,\n groups: parseGroupReferences({ type: 'lockedTime', item: lockedTime }, options),\n dependencies: dependencyReferences,\n intervals: options.oldFormat\n ? parseIntervals(intervals, undefined, settings)\n : idOf.intervalPairReference(intervals, undefined, options),\n distributionKey,\n ...days && { days },\n ...day && { day },\n };\n\n\n ////\n //// filter based on partialScheduleOptions\n ////\n if (options.partialScheduleOptions) {\n const { includedEvents, omittedEventsHandling } = options.partialScheduleOptions;\n if (includedEvents && !includedEvents.has(doc.id)) {\n\n if (omittedEventsHandling == 'ignore') return;\n\n if (omittedEventsHandling == 'freeze') {\n // must not be parked and have a start and duration to be frozen, otherwise it's ignored\n if (lockedTime.parked || !lockedTime.start || !lockedTime.duration) return;\n\n // fix day, start and end\n Object.assign(doc, toDayAndStart(lockedTime.start));\n doc.length = lockedTime.duration;\n doc.maxLengthVariance = 0;\n\n // override intervals and days to not cause conflicts\n const numDays = settings.numDays ?? 5;\n doc.days = Array.from({ length: numDays }, (_, i) => i);\n doc.intervals = Array.from({ length: numDays }, () => [{ beg: 0, end: 23.55 }]);\n\n // fix locations\n // > locations are always fixed for locked times\n }\n }\n }\n\n return omitBy(doc, x => x == null) as Types.event;\n}\n\nexport function fromDynamicLockedTimes (\n lockedTimes: ConnectedTypes.lockedTime[],\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions,\n): (Types.collection | Types.event)[] {\n const defaultInterval = getDefaultInterval(settings);\n\n const complementaryHours = makeChainable(lockedTimes)\n .chain(\n x => x\n .filter(x => x.type == 'COMPLEMENTARY_TIME')\n .map(x => parse(x, settings, options, defaultInterval))\n .filter(x => !!x),\n x => groupBy(x, x => [x.distributionKey].flat().toSorted().join('|')),\n x => Object.entries(x)\n .map(([id, events]) => ({ id: `COMPLEMENTARY_TIME.${id}`, events }) as Types.collection),\n )\n .value;\n\n const lunches = lockedTimes\n .filter(x => x.type == 'LUNCH')\n .map(lockedTime => parse(lockedTime, settings, options, defaultInterval))\n .filter(x => !!x);\n\n return [...complementaryHours, ...lunches];\n};"],"mappings":";;;;;;;;;;AAYA,SAAS,MACP,YACA,UACA,SACA,iBACA;CACA,MAAM,WAAW,WAAW;AAC5B,KAAI,CAAC,YAAY,WAAW,EAAG,OAAM,IAAI,MAAM,0EAA0E;CAEzH,MAAM,uBAAuB,cAAc,WAAW,aAAa,EAAE,CAAC,CACnE,OACC,MAAK,EACF,QAAO,QAAKA,IAAE,WAAW,YAAY,CACrC,KAAI,QAAK,YAAYA,IAAE,IAAI,QAAQ,CAAC,GACvC,MAAK,KAAK,EAAE,GACZ,MAAK,EAAE,KAAI,QAAK,CAACA,IAAE,CAAC,CACrB,CACA;CAEH,MAAM,OAAO,WAAW,YACpB,cAAc,WAAW,UAAU,CAClC,OACC,MAAK,EAAE,KAAI,QAAK,YAAYA,IAAE,MAAM,CAAC,GACrC,MAAK,KAAK,EAAE,CACb,CACA,QACD;CACJ,MAAM,MAAM,MAAM,UAAU,IAAI,KAAK,KAAK;AAG1C,KAAI,OAAO,QAAQ,WAAW,WAE5B;MAAI,CADmB,WAAW,UAAU,OAAM,MAAK,CAAC,EAAE,GAAG,MAAM,UAAU,EAAE,GAAG,KAAK,MAAK,QAAKA,IAAE,OAAO,IAAI,CAAC,CAC1F;;CAIvB,MAAM,kBAAkB,WAAW,QAAQ,uBACvC,wBAAwB,WAAW,MAAM,GAAG,EAAE,EAAE,QAChD;CAEJ,MAAM,YAAY,WAAW,aAAa;CAE1C,MAAMC,MAAmB;EACvB,IAAmB,KAAK,WAAW,YAAY,QAAQ;EACvD,QAAmB;EACnB,gBAAmB;EACnB,mBAAmB,WAAW;EAC9B,QAAmB,qBAAqB;GAAE,MAAM;GAAc,MAAM;GAAY,EAAE,QAAQ;EAC1F,cAAmB;EACnB,WAAmB,QAAQ,YACvB,eAAe,WAAW,QAAW,SAAS,GAC9C,KAAK,sBAAsB,WAAW,QAAW,QAAQ;EAC7D;EACA,GAAG,QAAQ,EAAE,MAAM;EACnB,GAAG,OAAO,EAAE,KAAK;EAClB;AAMD,KAAI,QAAQ,wBAAwB;EAClC,MAAM,EAAE,gBAAgB,0BAA0B,QAAQ;AAC1D,MAAI,kBAAkB,CAAC,eAAe,IAAI,IAAI,GAAG,EAAE;AAEjD,OAAI,yBAAyB,SAAU;AAEvC,OAAI,yBAAyB,UAAU;AAErC,QAAI,WAAW,UAAU,CAAC,WAAW,SAAS,CAAC,WAAW,SAAU;AAGpE,WAAO,OAAO,KAAK,cAAc,WAAW,MAAM,CAAC;AACnD,QAAI,SAAS,WAAW;AACxB,QAAI,oBAAoB;IAGxB,MAAM,UAAU,SAAS,WAAW;AACpC,QAAI,OAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,GAAG,GAAG,MAAM,EAAE;AAC5D,QAAI,YAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,QAAQ,CAAC;KAAE,KAAK;KAAG,KAAK;KAAO,CAAC,CAAC;;;;AAQrF,QAAO,OAAO,MAAK,MAAK,KAAK,KAAK;;AAGpC,SAAgB,uBACd,aACA,UACA,SACoC;CACpC,MAAM,kBAAkB,mBAAmB,SAAS;CAEpD,MAAM,qBAAqB,cAAc,YAAY,CAClD,OACC,MAAK,EACF,QAAO,QAAKD,IAAE,QAAQ,qBAAqB,CAC3C,KAAI,QAAK,MAAMA,KAAG,UAAU,SAAS,gBAAgB,CAAC,CACtD,QAAO,QAAK,CAAC,CAACA,IAAE,GACnB,MAAK,QAAQ,IAAG,QAAK,CAACA,IAAE,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GACrE,MAAK,OAAO,QAAQ,EAAE,CACnB,KAAK,CAAC,IAAI,aAAa;EAAE,IAAI,sBAAsB;EAAM;EAAQ,EAAsB,CAC3F,CACA;CAEH,MAAM,UAAU,YACb,QAAO,MAAK,EAAE,QAAQ,QAAQ,CAC9B,KAAI,eAAc,MAAM,YAAY,UAAU,SAAS,gBAAgB,CAAC,CACxE,QAAO,MAAK,CAAC,CAAC,EAAE;AAEnB,QAAO,CAAC,GAAG,oBAAoB,GAAG,QAAQ"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { getDayIndex, getVertexId, parseDateInterval } from "../../../../core/util.js";
|
|
2
|
-
import { omitBy } from "lodash-es";
|
|
3
|
-
|
|
4
|
-
//#region src/RS/to/input/util/attach-locked-times.ts
|
|
5
|
-
function attachLockedTimes(lockedTimes, options) {
|
|
6
|
-
return lockedTimes?.map((lockedTime) => {
|
|
7
|
-
const { start: startDate, end: endDate } = parseDateInterval(lockedTime, "locked time");
|
|
8
|
-
const length = endDate.diff(startDate, "minutes");
|
|
9
|
-
if (length < 5) throw new Error("(RS::To::LockedTimes) Length of a locked time is less than 5 min");
|
|
10
|
-
const start = parseFloat(startDate.format("HH.mm"));
|
|
11
|
-
const doc = {
|
|
12
|
-
day: getDayIndex(startDate),
|
|
13
|
-
start,
|
|
14
|
-
length
|
|
15
|
-
};
|
|
16
|
-
if (options.includeEntityMeta) doc.meta = omitBy({
|
|
17
|
-
id: getVertexId(lockedTime, options),
|
|
18
|
-
visible: lockedTime.visible,
|
|
19
|
-
name: lockedTime.displayName
|
|
20
|
-
}, (x) => x == null);
|
|
21
|
-
return omitBy(doc, (x) => x == null);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
//#endregion
|
|
26
|
-
export { attachLockedTimes };
|
|
27
|
-
//# sourceMappingURL=attach-locked-times.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attach-locked-times.js","names":["doc: Types.lockedTime"],"sources":["../../../../../src/RS/to/input/util/attach-locked-times.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { Types } from '../../../types';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport { getDayIndex, getVertexId, parseDateInterval } from '../../../../core/util';\n\nexport function attachLockedTimes (\n lockedTimes: ConnectedTypes.lockedTime[] | null | undefined,\n options: Types.parsedToOptions\n): Types.lockedTime[] | undefined {\n\n return lockedTimes?.map(lockedTime => {\n const { start: startDate, end: endDate } = parseDateInterval(lockedTime, 'locked time');\n\n const length = endDate.diff(startDate, 'minutes');\n if (length < 5) throw new Error('(RS::To::LockedTimes) Length of a locked time is less than 5 min');\n\n const start = parseFloat(startDate.format('HH.mm'));\n\n const doc: Types.lockedTime = {\n day: getDayIndex(startDate),\n start: start,\n length: length,\n };\n\n if (options.includeEntityMeta) {\n doc.meta = omitBy({\n id: getVertexId(lockedTime, options),\n visible: lockedTime.visible,\n name: lockedTime.displayName,\n }, x => x == null);\n }\n\n return omitBy(doc, x => x == null) as Types.lockedTime;\n });\n};"],"mappings":";;;;AAKA,SAAgB,kBACd,aACA,SACgC;AAEhC,QAAO,aAAa,KAAI,eAAc;EACpC,MAAM,EAAE,OAAO,WAAW,KAAK,YAAY,kBAAkB,YAAY,cAAc;EAEvF,MAAM,SAAS,QAAQ,KAAK,WAAW,UAAU;AACjD,MAAI,SAAS,EAAG,OAAM,IAAI,MAAM,mEAAmE;EAEnG,MAAM,QAAQ,WAAW,UAAU,OAAO,QAAQ,CAAC;EAEnD,MAAMA,MAAwB;GAC5B,KAAQ,YAAY,UAAU;GACtB;GACA;GACT;AAED,MAAI,QAAQ,kBACV,KAAI,OAAO,OAAO;GAChB,IAAS,YAAY,YAAY,QAAQ;GACzC,SAAS,WAAW;GACpB,MAAS,WAAW;GACrB,GAAE,MAAK,KAAK,KAAK;AAGpB,SAAO,OAAO,MAAK,MAAK,KAAK,KAAK;GAClC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { getDayIndex } from "../../../../core/util.js";
|
|
2
|
-
import { makeChainable } from "../../../../common/make-chainable/index.js";
|
|
3
|
-
import { parseIntervalDate } from "../intervals.js";
|
|
4
|
-
import { groupBy } from "lodash-es";
|
|
5
|
-
|
|
6
|
-
//#region src/RS/to/input/util/parse-intervals.ts
|
|
7
|
-
function getDayLimits(intervals, settings) {
|
|
8
|
-
if (!intervals) {
|
|
9
|
-
const start = parseIntervalDate(settings.dayStart);
|
|
10
|
-
const end = parseIntervalDate(settings.dayEnd);
|
|
11
|
-
intervals = Array.from({ length: settings.numDays }, () => ({
|
|
12
|
-
start: start.clone(),
|
|
13
|
-
end: end.clone()
|
|
14
|
-
}));
|
|
15
|
-
} else if (intervals.length == 1) {
|
|
16
|
-
const i = intervals[0];
|
|
17
|
-
const start = parseIntervalDate(i.start);
|
|
18
|
-
const end = parseIntervalDate(i.end);
|
|
19
|
-
intervals = Array.from({ length: settings.numDays }, () => ({
|
|
20
|
-
start: start.clone(),
|
|
21
|
-
end: end.clone()
|
|
22
|
-
}));
|
|
23
|
-
} else if (intervals.length != settings.numDays) throw new Error(`(RS::To::Intervals) Intervals length ${intervals.length} does not match settings.numDays ${settings.numDays}`);
|
|
24
|
-
return intervals.map((i, day) => {
|
|
25
|
-
if (!i.start || !i.end) throw new Error(`(RS::To::Intervals) Interval missing start or end for day ${day}`);
|
|
26
|
-
return {
|
|
27
|
-
beg: parseFloat(parseIntervalDate(i.start).format("HH.mm")),
|
|
28
|
-
end: parseFloat(parseIntervalDate(i.end).format("HH.mm"))
|
|
29
|
-
};
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* @deprecated The old way of parsing intervals
|
|
34
|
-
*/
|
|
35
|
-
function parseIntervals(intervals, rootInterval, settings) {
|
|
36
|
-
if (intervals && !rootInterval) return getDayLimits(intervals, settings).map((i) => [i]);
|
|
37
|
-
if (rootInterval) {
|
|
38
|
-
const dayLimits = getDayLimits(intervals, settings);
|
|
39
|
-
return makeChainable(rootInterval.intervals).chain((x) => groupBy(x, (x$1) => getDayIndex(x$1.start)), (x) => Object.entries(x).map(([day, xs]) => {
|
|
40
|
-
const limit = dayLimits.at(parseInt(day));
|
|
41
|
-
if (!limit) throw new Error(`(RS::To::Intervals) Day ${day} not found in dayStartAndEnds`);
|
|
42
|
-
return xs.map((x$1) => ({
|
|
43
|
-
beg: parseFloat(parseIntervalDate(x$1.start).format("HH.mm")),
|
|
44
|
-
end: parseFloat(parseIntervalDate(x$1.end).format("HH.mm")),
|
|
45
|
-
binary: true
|
|
46
|
-
})).filter((x$1) => x$1.beg >= limit.beg && x$1.end <= limit.end);
|
|
47
|
-
}).reduce((acc, curr, index) => {
|
|
48
|
-
acc[index] = curr;
|
|
49
|
-
return acc;
|
|
50
|
-
}, Array.from({ length: settings.numDays }, () => []))).value;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
//#endregion
|
|
55
|
-
export { parseIntervals };
|
|
56
|
-
//# sourceMappingURL=parse-intervals.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-intervals.js","names":["x"],"sources":["../../../../../src/RS/to/input/util/parse-intervals.ts"],"sourcesContent":["import { groupBy } from 'lodash-es';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport { getDayIndex } from '../../../../core/util';\nimport type { Types } from '../../../types';\nimport { makeChainable } from '../../../../common/make-chainable';\nimport { parseIntervalDate } from '../intervals';\nimport type { Interval } from '../../../../core/interfaces';\n\nfunction getDayLimits (\n intervals: Interval[] | undefined,\n settings: ConnectedTypes.divisionSettings\n): { beg: number, end: number }[] {\n // remove short-hand notation (a single interval for all days)\n if (!intervals) {\n const start = parseIntervalDate(settings.dayStart);\n const end = parseIntervalDate(settings.dayEnd);\n intervals = Array.from({ length: settings.numDays }, () => ({ start: start.clone(), end: end.clone() }));\n }\n else if (intervals.length == 1) {\n const i = intervals[0];\n const start = parseIntervalDate(i.start);\n const end = parseIntervalDate(i.end);\n intervals = Array.from({ length: settings.numDays }, () => ({ start: start.clone(), end: end.clone() }));\n } else if (intervals.length != settings.numDays) {\n throw new Error(`(RS::To::Intervals) Intervals length ${intervals.length} does not match settings.numDays ${settings.numDays}`);\n }\n\n // the day start and end times of each day\n return intervals.map((i, day: number) => {\n if (!i.start || !i.end) throw new Error(`(RS::To::Intervals) Interval missing start or end for day ${day}`);\n const start = parseFloat(parseIntervalDate(i.start).format('HH.mm'));\n const end = parseFloat(parseIntervalDate(i.end ).format('HH.mm'));\n return { beg: start, end: end };\n });\n}\n\n\n/**\n * @deprecated The old way of parsing intervals\n */\nexport function parseIntervals (\n intervals: Interval[] | undefined,\n rootInterval: ConnectedTypes.rootInterval | undefined,\n settings: ConnectedTypes.divisionSettings\n): Types.interval[][] | undefined {\n // if only intervals are provided\n if (intervals && !rootInterval) return getDayLimits(intervals, settings).map(i => [i]);\n\n // if root intervals are present\n if (rootInterval) {\n const dayLimits = getDayLimits(intervals, settings);\n return makeChainable(rootInterval.intervals)\n .chain(\n x => groupBy(x, x => getDayIndex(x.start)),\n x => Object.entries(x)\n .map(([day, xs]) => {\n const limit = dayLimits.at(parseInt(day));\n if (!limit) throw new Error(`(RS::To::Intervals) Day ${day} not found in dayStartAndEnds`);\n\n // remove all block intervals that lay outside the day start and end\n return xs\n .map(x => ({\n beg: parseFloat(parseIntervalDate(x.start).format('HH.mm')),\n end: parseFloat(parseIntervalDate(x.end ).format('HH.mm')),\n binary: true\n } satisfies Types.interval))\n .filter(x => x.beg >= limit.beg && x.end <= limit.end);\n })\n // ensure that all days are represented, even if empty\n .reduce<Types.interval[][]>((acc, curr, index) => {\n acc[index] = curr;\n return acc;\n }, Array.from({ length: settings.numDays }, () => []))\n )\n .value;\n }\n\n // only remaining case here is \"!intervals && !rootInterval\"\n return;\n};\n"],"mappings":";;;;;;AAQA,SAAS,aACP,WACA,UACgC;AAEhC,KAAI,CAAC,WAAW;EACd,MAAM,QAAQ,kBAAkB,SAAS,SAAS;EAClD,MAAM,MAAQ,kBAAkB,SAAS,OAAO;AAChD,cAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,SAAS,SAAS;GAAE,OAAO,MAAM,OAAO;GAAE,KAAK,IAAI,OAAO;GAAE,EAAE;YAEjG,UAAU,UAAU,GAAG;EAC9B,MAAM,IAAI,UAAU;EACpB,MAAM,QAAQ,kBAAkB,EAAE,MAAM;EACxC,MAAM,MAAQ,kBAAkB,EAAE,IAAI;AACtC,cAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,SAAS,SAAS;GAAE,OAAO,MAAM,OAAO;GAAE,KAAK,IAAI,OAAO;GAAE,EAAE;YAC/F,UAAU,UAAU,SAAS,QACtC,OAAM,IAAI,MAAM,wCAAwC,UAAU,OAAO,mCAAmC,SAAS,UAAU;AAIjI,QAAO,UAAU,KAAK,GAAG,QAAgB;AACvC,MAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAK,OAAM,IAAI,MAAM,6DAA6D,MAAM;AAG3G,SAAO;GAAE,KAFK,WAAW,kBAAkB,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC;GAE/C,KADP,WAAW,kBAAkB,EAAE,IAAM,CAAC,OAAO,QAAQ,CAAC;GACrC;GAC/B;;;;;AAOJ,SAAgB,eACd,WACA,cACA,UACgC;AAEhC,KAAI,aAAa,CAAC,aAAc,QAAO,aAAa,WAAW,SAAS,CAAC,KAAI,MAAK,CAAC,EAAE,CAAC;AAGtF,KAAI,cAAc;EAChB,MAAM,YAAY,aAAa,WAAW,SAAS;AACnD,SAAO,cAAc,aAAa,UAAU,CACzC,OACC,MAAK,QAAQ,IAAG,QAAK,YAAYA,IAAE,MAAM,CAAC,GAC1C,MAAK,OAAO,QAAQ,EAAE,CACnB,KAAK,CAAC,KAAK,QAAQ;GAClB,MAAM,QAAQ,UAAU,GAAG,SAAS,IAAI,CAAC;AACzC,OAAI,CAAC,MAAO,OAAM,IAAI,MAAM,2BAA2B,IAAI,+BAA+B;AAG1F,UAAO,GACJ,KAAI,SAAM;IACT,KAAQ,WAAW,kBAAkBA,IAAE,MAAM,CAAC,OAAO,QAAQ,CAAC;IAC9D,KAAQ,WAAW,kBAAkBA,IAAE,IAAM,CAAC,OAAO,QAAQ,CAAC;IAC9D,QAAQ;IACT,EAA2B,CAC3B,QAAO,QAAKA,IAAE,OAAO,MAAM,OAAOA,IAAE,OAAO,MAAM,IAAI;IACxD,CAED,QAA4B,KAAK,MAAM,UAAU;AAChD,OAAI,SAAS;AACb,UAAO;KACN,MAAM,KAAK,EAAE,QAAQ,SAAS,SAAS,QAAQ,EAAE,CAAC,CAAC,CACzD,CACA"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Types } from "./index.js";
|
|
2
|
-
|
|
3
|
-
//#region src/RS/types/collections.d.ts
|
|
4
|
-
interface Collection {
|
|
5
|
-
id: string;
|
|
6
|
-
events: (Types.event | number)[];
|
|
7
|
-
name?: string;
|
|
8
|
-
subject?: string;
|
|
9
|
-
color?: string;
|
|
10
|
-
potentialCenter?: number;
|
|
11
|
-
density?: number;
|
|
12
|
-
weight?: number;
|
|
13
|
-
minBreakLength?: Types.breakLength;
|
|
14
|
-
lockedTimes?: Types.lockedTime[];
|
|
15
|
-
intervals?: string | Types.interval[][];
|
|
16
|
-
days?: (Types.day | number)[];
|
|
17
|
-
groups?: Types.groupReference[][];
|
|
18
|
-
dependencies?: (Types.availableDependency[] | Types.availableDependency)[];
|
|
19
|
-
/**
|
|
20
|
-
* @deprecated to be replaced by `_period` in future versions
|
|
21
|
-
*/
|
|
22
|
-
period?: number;
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated to be renamed to `period` in future versions
|
|
25
|
-
*/
|
|
26
|
-
_period?: string;
|
|
27
|
-
maxEventLengthVariance?: number;
|
|
28
|
-
distributionKey?: string | string[];
|
|
29
|
-
meta?: Record<string, unknown>;
|
|
30
|
-
}
|
|
31
|
-
//#endregion
|
|
32
|
-
export { Collection };
|
|
33
|
-
//# sourceMappingURL=collections.d.ts.map
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Types } from "./index.js";
|
|
2
|
-
|
|
3
|
-
//#region src/RS/types/default.d.ts
|
|
4
|
-
interface Default {
|
|
5
|
-
intervals: string | Types.interval[][];
|
|
6
|
-
dependencyMinBreakLength: number;
|
|
7
|
-
groupMinBreakLength: number;
|
|
8
|
-
eventMinBreakLength: Types.breakLength;
|
|
9
|
-
potentialCenter: number;
|
|
10
|
-
eventDensity: number;
|
|
11
|
-
maxEventLengthVariance: number;
|
|
12
|
-
maxNumWorkingHours: number | boolean;
|
|
13
|
-
maxNumDailyWorkingHours: number | number[] | boolean;
|
|
14
|
-
dependencyRank: number;
|
|
15
|
-
groupRank: number;
|
|
16
|
-
dayRank: number;
|
|
17
|
-
groupWeight: number;
|
|
18
|
-
collectionWeight: number;
|
|
19
|
-
eventWeight: number;
|
|
20
|
-
/**
|
|
21
|
-
* @deprecated To be replaced by `_period` in future versions
|
|
22
|
-
*/
|
|
23
|
-
period?: number;
|
|
24
|
-
/**
|
|
25
|
-
* @deprecated To be renamed `period` in future versions
|
|
26
|
-
*/
|
|
27
|
-
_period?: string;
|
|
28
|
-
}
|
|
29
|
-
//#endregion
|
|
30
|
-
export { Default };
|
|
31
|
-
//# sourceMappingURL=default.d.ts.map
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Types } from "./index.js";
|
|
2
|
-
|
|
3
|
-
//#region src/RS/types/dependencies.d.ts
|
|
4
|
-
interface Dependency {
|
|
5
|
-
id?: string;
|
|
6
|
-
minBreakLength?: number;
|
|
7
|
-
name?: string;
|
|
8
|
-
area?: string;
|
|
9
|
-
days?: (Types.day | number)[];
|
|
10
|
-
intervals?: string | Types.interval[][];
|
|
11
|
-
lockedTimes?: Types.lockedTime[];
|
|
12
|
-
meta?: Record<string, unknown>;
|
|
13
|
-
}
|
|
14
|
-
//#endregion
|
|
15
|
-
export { Dependency };
|
|
16
|
-
//# sourceMappingURL=dependencies.d.ts.map
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Types } from "./index.js";
|
|
2
|
-
|
|
3
|
-
//#region src/RS/types/events.d.ts
|
|
4
|
-
interface Event {
|
|
5
|
-
id: string;
|
|
6
|
-
length: number;
|
|
7
|
-
name?: string;
|
|
8
|
-
potentialCenter?: number;
|
|
9
|
-
density?: number;
|
|
10
|
-
weight?: number;
|
|
11
|
-
minBreakLength?: Types.breakLength;
|
|
12
|
-
maxLengthVariance?: number;
|
|
13
|
-
start?: number;
|
|
14
|
-
lockedTimes?: Types.lockedTime[];
|
|
15
|
-
intervals?: string | Types.interval[][];
|
|
16
|
-
days?: (Types.day | number)[];
|
|
17
|
-
day?: number;
|
|
18
|
-
groups?: Types.groupReference[][];
|
|
19
|
-
dependencies?: (Types.availableDependency[] | Types.availableDependency | string | string[])[];
|
|
20
|
-
/**
|
|
21
|
-
* @deprecated to be replaced by `_period` in future versions
|
|
22
|
-
*/
|
|
23
|
-
period?: number;
|
|
24
|
-
/**
|
|
25
|
-
* @deprecated to be renamed to `period` in future versions
|
|
26
|
-
*/
|
|
27
|
-
_period?: string;
|
|
28
|
-
forcedOverlapId?: string;
|
|
29
|
-
distributionKey?: string | string[];
|
|
30
|
-
meta?: Record<string, unknown>;
|
|
31
|
-
}
|
|
32
|
-
//#endregion
|
|
33
|
-
export { Event };
|
|
34
|
-
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Types } from "./index.js";
|
|
2
|
-
|
|
3
|
-
//#region src/RS/types/groups.d.ts
|
|
4
|
-
type GroupType = 'personal' | 'classes' | 'persons';
|
|
5
|
-
interface Group {
|
|
6
|
-
id: string;
|
|
7
|
-
group_type: GroupType;
|
|
8
|
-
name?: string;
|
|
9
|
-
minBreakLength?: Types.breakLength;
|
|
10
|
-
maxNumWorkingHours?: number | boolean;
|
|
11
|
-
maxNumDailyWorkingHours?: number | number[] | boolean;
|
|
12
|
-
weight?: number;
|
|
13
|
-
rank?: number;
|
|
14
|
-
lockedTimes?: Types.lockedTime[];
|
|
15
|
-
intervals?: string | Types.interval[][];
|
|
16
|
-
days?: (Types.day | number)[];
|
|
17
|
-
minimizeGaps?: boolean;
|
|
18
|
-
minimizeDependencyAlternation?: boolean;
|
|
19
|
-
/** @deprecated in v3 */
|
|
20
|
-
forbidOverlappingEvents?: boolean;
|
|
21
|
-
/** @deprecated replaced by minimizeGaps in v3 */
|
|
22
|
-
disableDayLengthPunishment?: boolean;
|
|
23
|
-
meta?: Record<string, unknown>;
|
|
24
|
-
}
|
|
25
|
-
//#endregion
|
|
26
|
-
export { Group };
|
|
27
|
-
//# sourceMappingURL=groups.d.ts.map
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Types } from "./index.js";
|
|
2
|
-
|
|
3
|
-
//#region src/RS/types/individuals.d.ts
|
|
4
|
-
type Individual = {
|
|
5
|
-
id: string;
|
|
6
|
-
group?: Types.group['id'];
|
|
7
|
-
meta?: Record<string, unknown>;
|
|
8
|
-
};
|
|
9
|
-
type IndividualsSet = {
|
|
10
|
-
id: string;
|
|
11
|
-
individuals: Individual['id'][];
|
|
12
|
-
meta?: Record<string, unknown>;
|
|
13
|
-
};
|
|
14
|
-
//#endregion
|
|
15
|
-
export { Individual, IndividualsSet };
|
|
16
|
-
//# sourceMappingURL=individuals.d.ts.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
//#region src/RS/types/locked-times.d.ts
|
|
2
|
-
interface LockedTime {
|
|
3
|
-
id?: string;
|
|
4
|
-
name?: string;
|
|
5
|
-
start?: number;
|
|
6
|
-
length?: number;
|
|
7
|
-
day?: number;
|
|
8
|
-
meta?: Record<string, unknown>;
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { LockedTime };
|
|
12
|
-
//# sourceMappingURL=locked-times.d.ts.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
//#region src/RS/types/period.d.ts
|
|
2
|
-
type Period = {
|
|
3
|
-
id: string;
|
|
4
|
-
/**
|
|
5
|
-
* A binary string (containing only ones and zeros) representing the weeks this period is active in. All periods `weeks` strings
|
|
6
|
-
* have the same length to make it unambiguous which week each position corresponds to.
|
|
7
|
-
*/
|
|
8
|
-
weeks: string;
|
|
9
|
-
/**
|
|
10
|
-
* The logical and operation between two period's binary `overlaps` strings is used to determine whether they overlap,
|
|
11
|
-
* i.e., are active during at least one common week.
|
|
12
|
-
*
|
|
13
|
-
* There are three cases for the format of this string:
|
|
14
|
-
*
|
|
15
|
-
* 1. If there are less than 64 weeks this string is simply a copy of the `weeks` string.
|
|
16
|
-
*
|
|
17
|
-
* 2. If there are more than 64 weeks but less than or equal to 64 periods, we compute the overlaps directly. This binary string
|
|
18
|
-
* then has the same length as the number of periods and a '1' at position j indicates that the period overlaps with the one whose
|
|
19
|
-
* index is j. There is at least one '1' in the string at the position corresponding to its own index (self-overlap).
|
|
20
|
-
*
|
|
21
|
-
* 3. If there are more than 64 weeks and more than 64 periods this string is empty, as the overlaps cannot not be stored in 64 bits.
|
|
22
|
-
*/
|
|
23
|
-
overlaps: string;
|
|
24
|
-
};
|
|
25
|
-
//#endregion
|
|
26
|
-
export { Period };
|
|
27
|
-
//# sourceMappingURL=period.d.ts.map
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
//#region src/RS/types/settings.d.ts
|
|
2
|
-
interface Settings {
|
|
3
|
-
numDays: number;
|
|
4
|
-
discretization: number;
|
|
5
|
-
periodIdKey: 'id';
|
|
6
|
-
intervalIdKey: 'id';
|
|
7
|
-
dependencyIdKey: 'id';
|
|
8
|
-
groupIdKey: 'id';
|
|
9
|
-
individualIdKey: 'id';
|
|
10
|
-
collectionIdKey: 'id';
|
|
11
|
-
eventIdKey: 'id';
|
|
12
|
-
}
|
|
13
|
-
//#endregion
|
|
14
|
-
export { Settings };
|
|
15
|
-
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
//#region src/RS/types/shared.d.ts
|
|
2
|
-
interface AvailableDependency {
|
|
3
|
-
dependency: string;
|
|
4
|
-
rank?: number;
|
|
5
|
-
}
|
|
6
|
-
type GroupReference = string | {
|
|
7
|
-
group: string;
|
|
8
|
-
} | {
|
|
9
|
-
individuals: string | string[];
|
|
10
|
-
};
|
|
11
|
-
type AsymType = {
|
|
12
|
-
bef: number;
|
|
13
|
-
aft: number;
|
|
14
|
-
};
|
|
15
|
-
type BreakLength = boolean | number | AsymType;
|
|
16
|
-
interface Day {
|
|
17
|
-
day?: number;
|
|
18
|
-
rank?: number;
|
|
19
|
-
}
|
|
20
|
-
interface Interval {
|
|
21
|
-
beg: number;
|
|
22
|
-
end: number;
|
|
23
|
-
binary?: boolean;
|
|
24
|
-
}
|
|
25
|
-
//#endregion
|
|
26
|
-
export { AvailableDependency, BreakLength, Day, GroupReference, Interval };
|
|
27
|
-
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Coalesced } from "./vertices/properties/coalesced.js";
|
|
2
|
-
import { Species } from "./vertices/properties/species.js";
|
|
3
|
-
import { AllWeeks, Week, allWeeks } from "./vertices/properties/week.js";
|
|
4
|
-
import { Day } from "./vertices/properties/days.js";
|
|
5
|
-
import { Interval } from "./vertices/properties/intervals.js";
|
|
6
|
-
import { Tag, TagType } from "./vertices/properties/tags.js";
|
|
7
|
-
import { MaximumScheduleSpan } from "./vertices/properties/maximum-schedule-span.js";
|
|
8
|
-
import { PlannedScheduledDuration } from "./vertices/properties/planned-scheduled-duration.js";
|
|
9
|
-
import { MinBreakLength } from "./vertices/properties/min-break-length.js";
|
|
10
|
-
import { PublicId } from "./vertices/properties/index.js";
|
|
11
|
-
import { CalendarException } from "./vertices/division-settings.js";
|
|
12
|
-
import { Address, AutoSyncConfig, Company, GlobalDefaultValues, INACTIVITY_ACTIONS, InactivityAction, InactivitySettings, PublicConfig, TimeRosterSection } from "./other/companies.js";
|
|
13
|
-
import { Integration } from "./other/integrations.js";
|
|
14
|
-
import { User } from "./other/users.js";
|
|
15
|
-
import { Action, Policy, Statement } from "./other/policies.js";
|
|
16
|
-
import { Operation, OperationType, operationType } from "./other/operations.js";
|
|
17
|
-
import { ErrorCode, SyncLog } from "./other/sync-logs.js";
|
|
18
|
-
import "./other/index.js";
|
|
19
|
-
import { StepGuideProgress } from "./vertices/divisions.js";
|
|
20
|
-
import { CalendarExceptionAction, ExceptionStatus } from "./vertices/exceptions.js";
|
|
21
|
-
import { LockedTimeType } from "./vertices/locked-times.js";
|
|
22
|
-
import { Infer, VertexQuery, createVertexQuery } from "./vertices/vertex-query.js";
|
|
23
|
-
import { Deep, DeepWithoutPrivateId, Mixed, MixedWithOptionalId, Serialized, SerializedWithOptionalId } from "./vertices/index.js";
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Address, AutoSyncConfig, Company, GlobalDefaultValues, INACTIVITY_ACTIONS, InactivityAction, InactivitySettings, PublicConfig, TimeRosterSection } from "./companies.js";
|
|
2
|
-
import { Integration } from "./integrations.js";
|
|
3
|
-
import { User } from "./users.js";
|
|
4
|
-
import { Action, Policy, Statement } from "./policies.js";
|
|
5
|
-
import { Operation, OperationType, operationType } from "./operations.js";
|
|
6
|
-
import { ErrorCode, SyncLog } from "./sync-logs.js";
|