@kth/om-kursen-ladok-client 2.1.4 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attributVardenConstants.js +10 -0
- package/dist/attributVardenConstants.js.map +1 -1
- package/dist/kth/KTHPeriod/KTHPeriod.d.ts +19 -0
- package/dist/kth/KTHPeriod/KTHPeriod.js +60 -0
- package/dist/kth/KTHPeriod/KTHPeriod.js.map +1 -0
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.d.ts +10 -0
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js +41 -0
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js.map +1 -0
- package/dist/kth/KTHPeriod/convertToKTHPeriods.d.ts +12 -0
- package/dist/kth/KTHPeriod/convertToKTHPeriods.js +76 -0
- package/dist/kth/KTHPeriod/convertToKTHPeriods.js.map +1 -0
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.d.ts +7 -0
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js +36 -0
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js.map +1 -0
- package/dist/kth/KTHPeriod/getKTHPeriodSemesters.d.ts +16 -0
- package/dist/kth/KTHPeriod/getKTHPeriodSemesters.js +28 -0
- package/dist/kth/KTHPeriod/getKTHPeriodSemesters.js.map +1 -0
- package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.d.ts +9 -0
- package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.js +21 -0
- package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.js.map +1 -0
- package/dist/kth/KTHPeriod/testdata/kthPeriods.d.ts +8 -0
- package/dist/kth/KTHPeriod/testdata/kthPeriods.js +43 -0
- package/dist/kth/KTHPeriod/testdata/kthPeriods.js.map +1 -0
- package/dist/kth/extractFunctions/extractBasicCourseData.d.ts +18 -0
- package/dist/kth/extractFunctions/extractBasicCourseData.js +47 -0
- package/dist/kth/extractFunctions/extractBasicCourseData.js.map +1 -0
- package/dist/kth/extractFunctions/extractDiscontinuationData.d.ts +9 -0
- package/dist/kth/extractFunctions/extractDiscontinuationData.js +33 -0
- package/dist/kth/extractFunctions/extractDiscontinuationData.js.map +1 -0
- package/dist/mapCourse.d.ts +1 -10
- package/dist/mapCourse.js +6 -46
- package/dist/mapCourse.js.map +1 -1
- package/dist/mapCourseRound.d.ts +8 -15
- package/dist/mapCourseRound.js.map +1 -1
- package/dist/mapCourseSyllabus.d.ts +15 -44
- package/dist/mapCourseSyllabus.js +39 -43
- package/dist/mapCourseSyllabus.js.map +1 -1
- package/dist/mapProgramSyllabus.js +6 -41
- package/dist/mapProgramSyllabus.js.map +1 -1
- package/dist/search/types.d.ts +4 -1
- package/dist/supportApis/PeriodService.d.ts +8 -0
- package/dist/supportApis/PeriodService.js +46 -0
- package/dist/supportApis/PeriodService.js.map +1 -0
- package/dist/utils/AcademicSemester.d.ts +1 -0
- package/dist/utils/AcademicSemester.js +5 -0
- package/dist/utils/AcademicSemester.js.map +1 -1
- package/dist/utils/courseSyllabusUtil.d.ts +1 -1
- package/dist/utils/courseSyllabusUtil.js +12 -29
- package/dist/utils/courseSyllabusUtil.js.map +1 -1
- package/dist/utils/languageUtil.d.ts +5 -0
- package/dist/utils/languageUtil.js +11 -2
- package/dist/utils/languageUtil.js.map +1 -1
- package/dist/utils/periodUtil.d.ts +6 -0
- package/dist/utils/periodUtil.js +12 -2
- package/dist/utils/periodUtil.js.map +1 -1
- package/dist/utils/syllabusExtractionUtil.d.ts +8 -0
- package/dist/utils/syllabusExtractionUtil.js +71 -0
- package/dist/utils/syllabusExtractionUtil.js.map +1 -0
- package/dist/utils/typeChecking.d.ts +6 -0
- package/dist/utils/typeChecking.js +8 -1
- package/dist/utils/typeChecking.js.map +1 -1
- package/package.json +2 -2
package/dist/mapCourse.js
CHANGED
|
@@ -3,54 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.mapCourse = void 0;
|
|
4
4
|
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
5
5
|
const languageUtil_1 = require("./utils/languageUtil");
|
|
6
|
-
const creditsUtil_1 = require("./utils/creditsUtil");
|
|
7
6
|
const schoolUtil_1 = require("./utils/schoolUtil");
|
|
7
|
+
const extractDiscontinuationData_1 = require("./kth/extractFunctions/extractDiscontinuationData");
|
|
8
|
+
const extractBasicCourseData_1 = require("./kth/extractFunctions/extractBasicCourseData");
|
|
8
9
|
const extractBasicData = (course, language) => {
|
|
9
|
-
|
|
10
|
-
const kod = (0, ladok_attributvarde_utils_1.extractString)(course.Attributvarden, 'utbildning.attribut.kod');
|
|
11
|
-
const benamningMultiLingual = {
|
|
12
|
-
sv: (0, ladok_attributvarde_utils_1.extractString)(course.Attributvarden, 'utbildning.attribut.svensk.benamning'),
|
|
13
|
-
en: (0, ladok_attributvarde_utils_1.extractString)(course.Attributvarden, 'utbildning.attribut.engelsk.benamning'),
|
|
14
|
-
};
|
|
15
|
-
const omfattningRaw = (_a = (0, ladok_attributvarde_utils_1.extractString)(course.Attributvarden, 'utbildning.attribut.omfattning', 'omfattning')) !== null && _a !== void 0 ? _a : '';
|
|
16
|
-
const utbildningstyp = (0, ladok_attributvarde_utils_1.extractUtbildningstyp)(course.Attributvarden);
|
|
17
|
-
const omfattning = {
|
|
18
|
-
number: omfattningRaw,
|
|
19
|
-
formattedWithUnit: (0, creditsUtil_1.formatCreditsWithUnitLabel)(omfattningRaw, utbildningstyp, language),
|
|
20
|
-
};
|
|
21
|
-
return {
|
|
22
|
-
kod,
|
|
23
|
-
benamning: benamningMultiLingual[language],
|
|
24
|
-
omfattning,
|
|
25
|
-
uid: course.instans_uid,
|
|
26
|
-
versionsnummer: (0, ladok_attributvarde_utils_1.extractVersionNumber)(course.Attributvarden),
|
|
27
|
-
};
|
|
10
|
+
return (0, extractBasicCourseData_1.extractBasicCourseData)(course.Attributvarden, language, course.instans_uid);
|
|
28
11
|
};
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
if (statusCode !== ladok_attributvarde_utils_1.LadokStatusCode.Complete)
|
|
32
|
-
return {};
|
|
33
|
-
const underavvecklingLadok = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'avvecklad.status', ladok_attributvarde_utils_1.LokaltAttributType.Boolean);
|
|
34
|
-
const avvecklingsbeslutLadok = (_a = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'avvecklingsbeslut2', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _a === void 0 ? void 0 : _a[language];
|
|
35
|
-
const avvecklingsbeslutLadokAlternative = (_b = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'avvecklingsbeslut3', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _b === void 0 ? void 0 : _b[language];
|
|
36
|
-
const underavvecklingMigrated = ((_c = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'kursstatus', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _c === void 0 ? void 0 : _c.en) === 'DEACTIVATED';
|
|
37
|
-
const avvecklingsbeslutMigrated = (_d = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'avvecklingsbeslut', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _d === void 0 ? void 0 : _d[language];
|
|
38
|
-
const sistaexaminationstermin = (_e = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'sista.examinationstermin1', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _e === void 0 ? void 0 : _e[language];
|
|
39
|
-
if (underavvecklingLadok || underavvecklingMigrated) {
|
|
40
|
-
const isFromLadok = underavvecklingLadok;
|
|
41
|
-
const avvecklingsbeslut = isFromLadok
|
|
42
|
-
? ((_f = avvecklingsbeslutLadokAlternative !== null && avvecklingsbeslutLadokAlternative !== void 0 ? avvecklingsbeslutLadokAlternative : avvecklingsbeslutLadok) !== null && _f !== void 0 ? _f : avvecklingsbeslutMigrated)
|
|
43
|
-
: avvecklingsbeslutMigrated;
|
|
44
|
-
const avvecklingsInfo = {
|
|
45
|
-
underavveckling: true,
|
|
46
|
-
avvecklingsbeslut,
|
|
47
|
-
};
|
|
48
|
-
if (!isFromLadok) {
|
|
49
|
-
avvecklingsInfo.sistaexaminationstermin = sistaexaminationstermin;
|
|
50
|
-
}
|
|
51
|
-
return avvecklingsInfo;
|
|
52
|
-
}
|
|
53
|
-
return {};
|
|
12
|
+
const extractDiscontinuationDataFromCourse = (course, language, statusCode) => {
|
|
13
|
+
return (0, extractDiscontinuationData_1.extractDiscontinuationData)(course.Attributvarden, language, statusCode);
|
|
54
14
|
};
|
|
55
15
|
const mapCourse = (course, language, gradingScalesCodes) => {
|
|
56
16
|
const status = (0, ladok_attributvarde_utils_1.extractLadokStatus)(course.Attributvarden);
|
|
@@ -59,7 +19,7 @@ const mapCourse = (course, language, gradingScalesCodes) => {
|
|
|
59
19
|
const huvudomraden = (0, ladok_attributvarde_utils_1.extractHuvudomraden)(course.Attributvarden);
|
|
60
20
|
const organisation = (0, ladok_attributvarde_utils_1.extractOrganisation)(course.Attributvarden);
|
|
61
21
|
const utbildningstyp = (0, ladok_attributvarde_utils_1.extractUtbildningstyp)(course.Attributvarden);
|
|
62
|
-
const { underavveckling, avvecklingsbeslut, sistaexaminationstermin } =
|
|
22
|
+
const { underavveckling, avvecklingsbeslut, sistaexaminationstermin } = extractDiscontinuationDataFromCourse(course, language, status === null || status === void 0 ? void 0 : status.code);
|
|
63
23
|
const isMiljo = (0, ladok_attributvarde_utils_1.extractIsMiljo)(course.Attributvarden);
|
|
64
24
|
return {
|
|
65
25
|
uid,
|
package/dist/mapCourse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapCourse.js","sourceRoot":"","sources":["../src/mapCourse.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"mapCourse.js","sourceRoot":"","sources":["../src/mapCourse.ts"],"names":[],"mappings":";;;AAAA,8EASuC;AAGvC,uDAQ6B;AAC7B,mDAAsE;AAEtE,kGAAmH;AACnH,0FAAmG;AAiBnG,MAAM,gBAAgB,GAAG,CACvB,MAAiE,EACjE,QAAkB,EACL,EAAE;IACf,OAAO,IAAA,+CAAsB,EAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,oCAAoC,GAAG,CAC3C,MAAiE,EACjE,QAAkB,EAClB,UAA4B,EACP,EAAE;IACvB,OAAO,IAAA,uDAA0B,EAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AAChF,CAAC,CAAA;AAEM,MAAM,SAAS,GAAG,CACvB,MAAiE,EACjE,QAAkB,EAClB,kBAAsC,EAC9B,EAAE;IACV,MAAM,MAAM,GAAG,IAAA,8CAAkB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IACxD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE9F,MAAM,WAAW,GAAG,IAAA,4CAAgB,EAAC,MAAM,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAA;IAC9F,MAAM,YAAY,GAAG,IAAA,+CAAmB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAC/D,MAAM,YAAY,GAAG,IAAA,+CAAmB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAC/D,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAEnE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,GAAG,oCAAoC,CAC1G,MAAM,EACN,QAAQ,EACR,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CACb,CAAA;IAED,MAAM,OAAO,GAAG,IAAA,0CAAc,EAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAErD,OAAO;QACL,GAAG;QACH,cAAc;QACd,GAAG;QACH,SAAS;QACT,UAAU;QACV,YAAY,EAAE,YAAY,IAAI,IAAA,oCAAqB,EAAC,YAAY,EAAE,QAAQ,CAAC;QAC3E,cAAc,EAAE,cAAc,IAAI,IAAA,sCAAuB,EAAC,cAAc,EAAE,QAAQ,CAAC;QACnF,WAAW,EAAE,WAAW,oCACnB,IAAA,iCAAkB,EAAC,WAAW,EAAE,QAAQ,CAAC,KAC5C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,GAChD;QACD,YAAY,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iCAAkB,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrE,UAAU,EAAE,IAAA,8CAAiC,EAAC,YAAY,EAAE,QAAQ,CAAC;QACrE,SAAS,EAAE,IAAA,0CAAc,EAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC;QAC7D,eAAe;QACf,iBAAiB;QACjB,uBAAuB;QACvB,eAAe,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;QAC7B,OAAO;KACR,CAAA;AACH,CAAC,CAAA;AA1CY,QAAA,SAAS,aA0CrB"}
|
package/dist/mapCourseRound.d.ts
CHANGED
|
@@ -2,25 +2,19 @@ import { LadokStatus } from '@kth/ladok-attributvarde-utils';
|
|
|
2
2
|
import { SokUtbildningsTillfalleItem, SokUtbildningsTillfalleSlimItem } from '@kth/ladok-mellanlager-client';
|
|
3
3
|
import { Language, TranslatedGrunddata } from './utils';
|
|
4
4
|
import { PartOfProgramme } from './mapPartOfProgramme';
|
|
5
|
-
|
|
5
|
+
export type Lasperiodsfordelning = {
|
|
6
|
+
Lasperiodskod: string;
|
|
7
|
+
Omfattningsvarde: number;
|
|
8
|
+
link: string[];
|
|
9
|
+
};
|
|
10
|
+
export type Tillfallesperiod = {
|
|
6
11
|
ForstaRegistreringsdatum: string;
|
|
7
12
|
ForstaUndervisningsdatum: string;
|
|
8
13
|
SistaRegistreringsdatum: string;
|
|
9
|
-
Lasperiodsfordelning: [
|
|
10
|
-
{
|
|
11
|
-
Lasperiodskod: string;
|
|
12
|
-
Omfattningsvarde: number;
|
|
13
|
-
link: string[];
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
Lasperiodskod: string;
|
|
17
|
-
Omfattningsvarde: number;
|
|
18
|
-
link: string[];
|
|
19
|
-
}
|
|
20
|
-
];
|
|
14
|
+
Lasperiodsfordelning: Lasperiodsfordelning[];
|
|
21
15
|
Omfattningsvarde: number;
|
|
22
16
|
SistaUndervisningsdatum: string;
|
|
23
|
-
}
|
|
17
|
+
};
|
|
24
18
|
export type CourseRound = {
|
|
25
19
|
uid: string;
|
|
26
20
|
utbildningstyp: string;
|
|
@@ -60,4 +54,3 @@ export type CourseRound = {
|
|
|
60
54
|
schemaUrl?: string;
|
|
61
55
|
};
|
|
62
56
|
export declare const mapCourseRound: (item: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, language: Language, partOfProgramme?: PartOfProgramme[]) => CourseRound;
|
|
63
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapCourseRound.js","sourceRoot":"","sources":["../src/mapCourseRound.ts"],"names":[],"mappings":";;;AAAA,8EAWuC;AAEvC,mCAOgB;AAChB,qDAAoD;
|
|
1
|
+
{"version":3,"file":"mapCourseRound.js","sourceRoot":"","sources":["../src/mapCourseRound.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SokPlanItem, SokPlanSlimItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
-
import {
|
|
3
|
-
import { Language } from './utils';
|
|
2
|
+
import { Language, TranslatedGrunddata, TranslatedOrganisation, TranslatedUtbildningstyp } from './utils';
|
|
4
3
|
import { GradingScalesCodes } from './mapGradingScales';
|
|
5
4
|
interface FormattedExaminationModules {
|
|
6
5
|
completeExaminationStrings: string;
|
|
@@ -10,62 +9,33 @@ export type KursPlan = {
|
|
|
10
9
|
course: {
|
|
11
10
|
kod: string | undefined;
|
|
12
11
|
benamning: {
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
name: string | undefined;
|
|
13
|
+
nameOther: string | undefined;
|
|
15
14
|
};
|
|
16
15
|
omfattning: {
|
|
17
16
|
number: string | undefined;
|
|
18
17
|
formattedWithUnit: string | undefined;
|
|
19
18
|
};
|
|
20
|
-
betygsskala
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
betygsskala?: TranslatedGrunddata & {
|
|
20
|
+
formatted: string | undefined;
|
|
21
|
+
};
|
|
22
|
+
utbildningstyp?: TranslatedUtbildningstyp;
|
|
23
|
+
huvudomraden?: TranslatedGrunddata[];
|
|
24
|
+
organisation?: TranslatedOrganisation;
|
|
25
|
+
avvecklad?: boolean;
|
|
26
|
+
underavveckling?: boolean;
|
|
27
|
+
sistaexaminationstermin?: string;
|
|
24
28
|
};
|
|
25
29
|
kursplan: {
|
|
26
30
|
giltigfrom: string | undefined;
|
|
27
|
-
utgava: string | undefined;
|
|
28
|
-
undervisningssprak: string | undefined;
|
|
29
|
-
larandemal: string | undefined;
|
|
30
|
-
kursinnehall: string | undefined;
|
|
31
|
-
etisktforhallningssatt: string | undefined;
|
|
32
|
-
faststallande: string | undefined;
|
|
33
|
-
examinationModules: Partial<FormattedExaminationModules>;
|
|
34
|
-
kommentartillexamination: string | undefined;
|
|
35
|
-
ovrigakravforslutbetyg: string | undefined;
|
|
36
|
-
ovrigaForeskrifter: string | undefined;
|
|
37
|
-
kurslitteratur: string | undefined;
|
|
38
|
-
kursupplagg: string | undefined;
|
|
39
|
-
sarskildbehorighet: string | undefined;
|
|
40
|
-
gammalutrustning: string | undefined;
|
|
41
|
-
avvecklingsbeslut: string | undefined;
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
export declare const mapCourseSyllabus: (syllabus: SokPlanItem | SokPlanSlimItem, gradingScalesCodes: GradingScalesCodes, examinationModules: FormattedExaminationModules, language: Language) => {
|
|
45
|
-
course: {
|
|
46
|
-
kod: string | undefined;
|
|
47
|
-
benamning: {
|
|
48
|
-
sv: string | undefined;
|
|
49
|
-
en: string | undefined;
|
|
50
|
-
};
|
|
51
|
-
omfattning: {
|
|
52
|
-
number: string;
|
|
53
|
-
formattedWithUnit: string;
|
|
54
|
-
};
|
|
55
|
-
betygsskala: string;
|
|
56
|
-
nivainomstudieordning: import("@kth/ladok-attributvarde-utils").Utbildningstyp | undefined;
|
|
57
|
-
huvudomraden: Grunddata[] | undefined;
|
|
58
31
|
overgangsbestammelser: string | undefined;
|
|
59
|
-
|
|
60
|
-
kursplan: {
|
|
61
|
-
giltigfrom: string;
|
|
62
|
-
utgava: string | undefined;
|
|
32
|
+
utgava: number | undefined;
|
|
63
33
|
undervisningssprak: string | undefined;
|
|
64
34
|
larandemal: string | undefined;
|
|
65
35
|
kursinnehall: string | undefined;
|
|
66
36
|
etisktforhallningssatt: string | undefined;
|
|
67
37
|
faststallande: string | undefined;
|
|
68
|
-
examinationModules: FormattedExaminationModules
|
|
38
|
+
examinationModules: Partial<FormattedExaminationModules>;
|
|
69
39
|
kommentartillexamination: string | undefined;
|
|
70
40
|
ovrigakravforslutbetyg: string | undefined;
|
|
71
41
|
ovrigaForeskrifter: string | undefined;
|
|
@@ -76,4 +46,5 @@ export declare const mapCourseSyllabus: (syllabus: SokPlanItem | SokPlanSlimItem
|
|
|
76
46
|
avvecklingsbeslut: string | undefined;
|
|
77
47
|
};
|
|
78
48
|
};
|
|
49
|
+
export declare const mapCourseSyllabus: (syllabus: SokPlanItem | SokPlanSlimItem, gradingScalesCodes: GradingScalesCodes, examinationModules: FormattedExaminationModules, language: Language) => KursPlan;
|
|
79
50
|
export {};
|
|
@@ -1,64 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.mapCourseSyllabus = void 0;
|
|
7
4
|
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
8
|
-
const creditsUtil_1 = require("./utils/creditsUtil");
|
|
9
5
|
const ladok_attributvarde_utils_2 = require("@kth/ladok-attributvarde-utils");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
10
7
|
const courseSyllabusUtil_1 = require("./utils/courseSyllabusUtil");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
const extractDiscontinuationData_1 = require("./kth/extractFunctions/extractDiscontinuationData");
|
|
9
|
+
const syllabusExtractionUtil_1 = require("./utils/syllabusExtractionUtil");
|
|
10
|
+
const extractBasicCourseData_1 = require("./kth/extractFunctions/extractBasicCourseData");
|
|
11
|
+
const extractBasicData = (syllabus, language) => {
|
|
12
|
+
return (0, extractBasicCourseData_1.extractBasicCourseData)(syllabus.instans.Attributvarden, language);
|
|
16
13
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var _a;
|
|
20
|
-
return convertMarkdownToHtml((_a = syllabus.AktuellaAttributvarden.find(item => { var _a; return ((_a = item.Attributdefinition) === null || _a === void 0 ? void 0 : _a.Kod) === `utbildning.lokalt.attribut.29.${attributeName}.${language}`; })) === null || _a === void 0 ? void 0 : _a.Varden[0]);
|
|
14
|
+
const extractDiscontinuationDataFromPlan = (ladokResponse, language) => {
|
|
15
|
+
return (0, extractDiscontinuationData_1.extractDiscontinuationData)(ladokResponse.instans.Attributvarden, language);
|
|
21
16
|
};
|
|
22
17
|
const mapCourseSyllabus = (syllabus, gradingScalesCodes, examinationModules, language) => {
|
|
23
|
-
var _a
|
|
24
|
-
const kod = (
|
|
18
|
+
var _a;
|
|
19
|
+
const { kod, benamning, omfattning } = extractBasicData(syllabus, language);
|
|
25
20
|
const betygsskala = (_a = (0, ladok_attributvarde_utils_2.extractGrunddata)(syllabus.instans.Attributvarden, 'utbildning.attribut.betygsskala')) !== null && _a !== void 0 ? _a : (0, ladok_attributvarde_utils_2.extractGrunddata)(syllabus.AktuellaAttributvarden, 'utbildning.attribut.betygsskala');
|
|
21
|
+
const huvudomraden = (0, ladok_attributvarde_utils_1.extractHuvudomraden)(syllabus.instans.Attributvarden);
|
|
22
|
+
const organisation = (0, ladok_attributvarde_utils_1.extractOrganisation)(syllabus.instans.Attributvarden);
|
|
23
|
+
const utbildningstyp = (0, ladok_attributvarde_utils_2.extractUtbildningstyp)(syllabus.instans.Attributvarden);
|
|
26
24
|
if (!(betygsskala === null || betygsskala === void 0 ? void 0 : betygsskala.code))
|
|
27
25
|
throw new Error(`"utbildning.attribut.betygsskala.kod" does not have any value for ${kod}`);
|
|
28
|
-
const
|
|
26
|
+
const { underavveckling, sistaexaminationstermin } = extractDiscontinuationDataFromPlan(syllabus, language);
|
|
29
27
|
return {
|
|
30
28
|
course: {
|
|
31
|
-
kod
|
|
32
|
-
benamning
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
nivainomstudieordning: (0, ladok_attributvarde_utils_2.extractUtbildningstyp)(syllabus.instans.Attributvarden),
|
|
42
|
-
huvudomraden: (0, ladok_attributvarde_utils_1.extractHuvudomraden)(syllabus.instans.Attributvarden),
|
|
43
|
-
overgangsbestammelser: extractString(syllabus, 'overgangsbestammelser', language),
|
|
29
|
+
kod,
|
|
30
|
+
benamning,
|
|
31
|
+
omfattning,
|
|
32
|
+
betygsskala: betygsskala && Object.assign(Object.assign({}, (0, utils_1.translateGrunddata)(betygsskala, language)), { formatted: gradingScalesCodes[betygsskala.code] }),
|
|
33
|
+
utbildningstyp: utbildningstyp && (0, utils_1.translateUtbildningstyp)(utbildningstyp, language),
|
|
34
|
+
huvudomraden: huvudomraden === null || huvudomraden === void 0 ? void 0 : huvudomraden.map(x => (0, utils_1.translateGrunddata)(x, language)),
|
|
35
|
+
organisation: organisation && (0, utils_1.translateOrganisation)(organisation, language),
|
|
36
|
+
avvecklad: (0, ladok_attributvarde_utils_1.extractBoolean)(syllabus.instans.Attributvarden, 'avvecklad'),
|
|
37
|
+
underavveckling,
|
|
38
|
+
sistaexaminationstermin,
|
|
44
39
|
},
|
|
45
40
|
kursplan: {
|
|
46
41
|
giltigfrom: (0, courseSyllabusUtil_1.getSemester)(syllabus.GiltigFran),
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
overgangsbestammelser: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'overgangsbestammelser', language),
|
|
43
|
+
utgava: (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(syllabus.AktuellaAttributvarden, 'utgava', ladok_attributvarde_utils_1.LokaltAttributType.Integer, true),
|
|
44
|
+
undervisningssprak: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'undervisningssprak', language),
|
|
45
|
+
larandemal: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'larandemal', language),
|
|
46
|
+
kursinnehall: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'kursinnehall', language),
|
|
47
|
+
etisktforhallningssatt: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'etiskt.forhallningssatt', language),
|
|
48
|
+
faststallande: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'fastallande1', language),
|
|
53
49
|
examinationModules,
|
|
54
|
-
kommentartillexamination:
|
|
55
|
-
ovrigakravforslutbetyg:
|
|
56
|
-
ovrigaForeskrifter:
|
|
57
|
-
kurslitteratur:
|
|
58
|
-
kursupplagg:
|
|
59
|
-
sarskildbehorighet:
|
|
60
|
-
gammalutrustning:
|
|
61
|
-
avvecklingsbeslut:
|
|
50
|
+
kommentartillexamination: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'kommentar.till.examination', language),
|
|
51
|
+
ovrigakravforslutbetyg: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'ovriga.krav.for.slutbeyg', language),
|
|
52
|
+
ovrigaForeskrifter: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'ovriga.foreskrifter', language),
|
|
53
|
+
kurslitteratur: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'gammal.kurslitteratur', language),
|
|
54
|
+
kursupplagg: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'gammal.kursupplagg', language),
|
|
55
|
+
sarskildbehorighet: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'sarskild.behorighet', language),
|
|
56
|
+
gammalutrustning: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'gammal.utrustning', language),
|
|
57
|
+
avvecklingsbeslut: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'avvecklingsbeslut', language),
|
|
62
58
|
},
|
|
63
59
|
};
|
|
64
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapCourseSyllabus.js","sourceRoot":"","sources":["../src/mapCourseSyllabus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapCourseSyllabus.js","sourceRoot":"","sources":["../src/mapCourseSyllabus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.mapProgramSyllabus = void 0;
|
|
7
4
|
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
8
5
|
const utils_1 = require("./utils");
|
|
9
|
-
const
|
|
10
|
-
const normalizeMarkdownTables = (raw) => {
|
|
11
|
-
if (!raw)
|
|
12
|
-
return raw;
|
|
13
|
-
let normalized = raw
|
|
14
|
-
// Step 1: Convert escaped \n to real newlines
|
|
15
|
-
.replace(/\\n/g, '\n')
|
|
16
|
-
// Step 2: Remove unnecessary escapes (but preserve Markdown ones like \*, \_)
|
|
17
|
-
.replace(/\\(?![|*_\\])/g, '')
|
|
18
|
-
// Step 3: Fix escaped pipe characters in full table rows
|
|
19
|
-
.replace(/^\\\|(.+?)\\\|$/gm, (_match, row) => `|${row}|`)
|
|
20
|
-
.replace(/\\\|/g, '|')
|
|
21
|
-
// Step 4: Replace double backslashes with single
|
|
22
|
-
.replace(/\\\\/g, '\\')
|
|
23
|
-
// Step 5: Insert newline between two table rows if they're mashed together
|
|
24
|
-
.replace(/(\|.+?\|)\s*(?=\|)/g, '$1\n')
|
|
25
|
-
// Step 6: Remove \n at the end of the <br>
|
|
26
|
-
.replace(/<br>\n/g, '<br>');
|
|
27
|
-
return normalized;
|
|
28
|
-
};
|
|
29
|
-
const convertMarkdownToHtml = (markdownText) => {
|
|
30
|
-
const converter = new showdown_1.default.Converter({ tables: true });
|
|
31
|
-
if (markdownText)
|
|
32
|
-
return converter.makeHtml(markdownText);
|
|
33
|
-
};
|
|
6
|
+
const syllabusExtractionUtil_1 = require("./utils/syllabusExtractionUtil");
|
|
34
7
|
const mapProgramSyllabus = (syllabus, periods, language) => {
|
|
35
8
|
var _a;
|
|
36
|
-
const buildAttributeKey = (attribute, onlyEn = false) => {
|
|
37
|
-
return `utbildning.lokalt.attribut.29.${attribute}.${onlyEn ? 'en' : language}`;
|
|
38
|
-
};
|
|
39
9
|
const findAndConvertMarkdownValue = (attribute, attributvarden = syllabus.AktuellaAttributvarden) => {
|
|
40
|
-
|
|
41
|
-
const extractedValueForAttribute = (0, ladok_attributvarde_utils_1.extractString)(attributvarden, attributeKey, 'markdown');
|
|
42
|
-
const normalizedMarkdownData = normalizeMarkdownTables(extractedValueForAttribute);
|
|
43
|
-
return convertMarkdownToHtml(normalizedMarkdownData);
|
|
10
|
+
return (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(attributvarden, attribute, language, false, true);
|
|
44
11
|
};
|
|
45
12
|
const findIntegerValue = (attribute, attributvarden = syllabus.AktuellaAttributvarden) => {
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
return extractedValueForAttribute;
|
|
13
|
+
const result = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(attributvarden, attribute, ladok_attributvarde_utils_1.LokaltAttributType.Integer);
|
|
14
|
+
return result === null || result === void 0 ? void 0 : result[language];
|
|
49
15
|
};
|
|
50
16
|
const findStringValues = (attribute, onlyEn = false) => {
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
return extractedValueForAttribute;
|
|
17
|
+
const result = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(syllabus.AktuellaAttributvarden, attribute, ladok_attributvarde_utils_1.LokaltAttributType.StringArray);
|
|
18
|
+
return onlyEn ? result === null || result === void 0 ? void 0 : result.en : result === null || result === void 0 ? void 0 : result[language];
|
|
54
19
|
};
|
|
55
20
|
const giltigFran = (0, utils_1.findMatchingPeriod)(syllabus.GiltigFran, periods);
|
|
56
21
|
const specializations = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapProgramSyllabus.js","sourceRoot":"","sources":["../src/mapProgramSyllabus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapProgramSyllabus.js","sourceRoot":"","sources":["../src/mapProgramSyllabus.ts"],"names":[],"mappings":"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"}
|
package/dist/search/types.d.ts
CHANGED
|
@@ -27,7 +27,10 @@ export type CleanSearchParams = Omit<SearchParams, 'utbildningsniva'> & {
|
|
|
27
27
|
};
|
|
28
28
|
export type CourseVersionDTO = {
|
|
29
29
|
kod: string;
|
|
30
|
-
benamning:
|
|
30
|
+
benamning: {
|
|
31
|
+
name: string | undefined;
|
|
32
|
+
nameOther: string | undefined;
|
|
33
|
+
};
|
|
31
34
|
omfattning: string;
|
|
32
35
|
utbildningstyp: string;
|
|
33
36
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LadokMellanlagerApiClient, PeriodItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
export declare class PeriodService {
|
|
3
|
+
private ladokClient;
|
|
4
|
+
private static cache;
|
|
5
|
+
constructor(ladokClient: LadokMellanlagerApiClient);
|
|
6
|
+
private aggregatePeriodItems;
|
|
7
|
+
getPeriodItems(): Promise<PeriodItem[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.PeriodService = void 0;
|
|
13
|
+
const cache_1 = require("../cache");
|
|
14
|
+
// Refresh every 24 hours should be more than enough for period information
|
|
15
|
+
const cacheTTLInMinutes = 60 * 24;
|
|
16
|
+
class PeriodService {
|
|
17
|
+
constructor(ladokClient) {
|
|
18
|
+
this.ladokClient = ladokClient;
|
|
19
|
+
}
|
|
20
|
+
aggregatePeriodItems() {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
try {
|
|
23
|
+
const periodResponse = yield this.ladokClient.period();
|
|
24
|
+
if (periodResponse.type !== 'success') {
|
|
25
|
+
throw new Error(`API call failed: ${periodResponse.responseInfo.apiError || 'Unknown error'}`);
|
|
26
|
+
}
|
|
27
|
+
if (typeof periodResponse.data !== 'object') {
|
|
28
|
+
throw new Error('periodResponse.data is not an object.');
|
|
29
|
+
}
|
|
30
|
+
return periodResponse.data.Period;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
// TODO log.error
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
getPeriodItems() {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
return PeriodService.cache.getData('periodItems', () => this.aggregatePeriodItems());
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.PeriodService = PeriodService;
|
|
45
|
+
PeriodService.cache = new cache_1.Cache(cacheTTLInMinutes);
|
|
46
|
+
//# sourceMappingURL=PeriodService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PeriodService.js","sourceRoot":"","sources":["../../src/supportApis/PeriodService.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oCAAgC;AAEhC,2EAA2E;AAC3E,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,CAAA;AAEjC,MAAa,aAAa;IAExB,YAAoB,WAAsC;QAAtC,gBAAW,GAAX,WAAW,CAA2B;IAAG,CAAC;IAEhD,oBAAoB;;YAChC,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;gBAEtD,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,oBAAoB,cAAc,CAAC,YAAY,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC,CAAA;gBAChG,CAAC;gBACD,IAAI,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;gBAC1D,CAAC;gBAED,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAA;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iBAAiB;gBAEjB,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;YACzB,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;QACtF,CAAC;KAAA;;AAzBH,sCA0BC;AAzBgB,mBAAK,GAAwB,IAAI,aAAK,CAAe,iBAAiB,CAAC,CAAA"}
|
|
@@ -30,6 +30,7 @@ export declare class AcademicSemester {
|
|
|
30
30
|
* Create from a plain JSON object, as produced by toJSON().
|
|
31
31
|
*/
|
|
32
32
|
static fromJSON({ year, semesterNumber }: AcademicSemesterJSON): AcademicSemester;
|
|
33
|
+
static compare(a: AcademicSemester, b: AcademicSemester): number;
|
|
33
34
|
/**
|
|
34
35
|
* Returns a KTH semester string in the format 20241 for VT2024 or 20242 for HT2024.
|
|
35
36
|
*/
|
|
@@ -45,6 +45,11 @@ class AcademicSemester {
|
|
|
45
45
|
static fromJSON({ year, semesterNumber }) {
|
|
46
46
|
return new AcademicSemester(year, semesterNumber);
|
|
47
47
|
}
|
|
48
|
+
static compare(a, b) {
|
|
49
|
+
if (a.year !== b.year)
|
|
50
|
+
return a.year - b.year;
|
|
51
|
+
return a.semesterNumber - b.semesterNumber;
|
|
52
|
+
}
|
|
48
53
|
/**
|
|
49
54
|
* Returns a KTH semester string in the format 20241 for VT2024 or 20242 for HT2024.
|
|
50
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcademicSemester.js","sourceRoot":"","sources":["../../src/utils/AcademicSemester.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uDAAU,CAAA;IACV,uDAAU,CAAA;AACZ,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAOD,MAAa,gBAAgB;IAI3B,YAAY,IAAY,EAAE,cAA8B;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACtC,CAAC;IAcD;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,KAAa;QAC/C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAC1C,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAC5B,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAA;QAC/B,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,IAAmB,CAAC,CAAC,CAAA;IAC3G,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,QAAgB;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAC5B,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,KAAK,CAAA;QAClC,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAmB,CAAC,CAAA;IACjF,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAwB;QACnE,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,MAAM,MAAM,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1E,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAChC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAA;IACnC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAA;IACH,CAAC;;
|
|
1
|
+
{"version":3,"file":"AcademicSemester.js","sourceRoot":"","sources":["../../src/utils/AcademicSemester.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SokPlanItem, SokPlanSlimItem } from '@kth/ladok-mellanlager-client';
|
|
2
2
|
import { PeriodItem } from '@kth/ladok-mellanlager-client/dist/types/endpoints/period';
|
|
3
3
|
export declare const getSemester: (dateStr: string) => string;
|
|
4
|
-
export declare function sortSyllabuses
|
|
4
|
+
export declare function sortSyllabuses<T extends SokPlanItem | SokPlanSlimItem>(syllabuses: T[]): T[];
|
|
5
5
|
export declare function getSyllabusForSemester(semester: string, syllabuses: SokPlanItem[] | SokPlanSlimItem[], periods: PeriodItem[]): SokPlanItem | SokPlanSlimItem | null;
|
|
6
6
|
export declare const uniqueSyllabusesByGiltigFran: (syllabuses: (SokPlanItem | SokPlanSlimItem)[]) => any[];
|