@ueu/ueu-canvas 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Account.js +60 -0
- package/dist/Account.js.map +1 -0
- package/dist/NotImplementedException.js +8 -0
- package/dist/NotImplementedException.js.map +1 -0
- package/dist/__mocks__/Account.d.ts +3 -3
- package/dist/__mocks__/Account.js +51 -0
- package/dist/__mocks__/Account.js.map +1 -0
- package/dist/__mocks__/index.js +25 -0
- package/dist/__mocks__/index.js.map +1 -0
- package/dist/__mocks__/mockAccountData.js +45 -0
- package/dist/__mocks__/mockAccountData.js.map +1 -0
- package/dist/__mocks__/mockEnrollment.d.ts +1 -1
- package/dist/__mocks__/mockEnrollment.js +24 -0
- package/dist/__mocks__/mockEnrollment.js.map +1 -0
- package/dist/__mocks__/mockRubricData.d.ts +1 -1
- package/dist/__mocks__/mockRubricData.js +56 -0
- package/dist/__mocks__/mockRubricData.js.map +1 -0
- package/dist/__mocks__/mockTabData.d.ts +1 -1
- package/dist/__mocks__/mockTabData.js +14 -0
- package/dist/__mocks__/mockTabData.js.map +1 -0
- package/dist/__mocks__/mockTermData.d.ts +1 -1
- package/dist/__mocks__/mockTermData.js +8 -0
- package/dist/__mocks__/mockTermData.js.map +1 -0
- package/dist/__mocks__/mockUserData.js +15 -0
- package/dist/__mocks__/mockUserData.js.map +1 -0
- package/dist/__mocks__/utils.js +14 -0
- package/dist/__mocks__/utils.js.map +1 -0
- package/dist/__tests__/canvasUtils.test.js +431 -0
- package/dist/__tests__/canvasUtils.test.js.map +1 -0
- package/dist/__tests__/fetch.test.js +236 -0
- package/dist/__tests__/fetch.test.js.map +1 -0
- package/dist/__tests__/profile.test.js +17 -0
- package/dist/__tests__/profile.test.js.map +1 -0
- package/dist/__tests__/rubrics.test.js +136 -0
- package/dist/__tests__/rubrics.test.js.map +1 -0
- package/dist/baseCanvasObject.js +115 -0
- package/dist/baseCanvasObject.js.map +1 -0
- package/dist/canvasDataDefs.d.ts +4 -0
- package/dist/canvasDataDefs.d.ts.map +1 -1
- package/dist/canvasDataDefs.js +3 -0
- package/dist/canvasDataDefs.js.map +1 -0
- package/dist/canvasUtils.d.ts +1 -1
- package/dist/canvasUtils.js +358 -0
- package/dist/canvasUtils.js.map +1 -0
- package/dist/consts.js +6 -0
- package/dist/consts.js.map +1 -0
- package/dist/content/BaseContentItem.d.ts +6 -6
- package/dist/content/BaseContentItem.js +182 -0
- package/dist/content/BaseContentItem.js.map +1 -0
- package/dist/content/ContentKind.d.ts +3 -3
- package/dist/content/ContentKind.js +45 -0
- package/dist/content/ContentKind.js.map +1 -0
- package/dist/content/__mocks__/determineContent.d.ts +14 -14
- package/dist/content/__mocks__/determineContent.js +27 -0
- package/dist/content/__mocks__/determineContent.js.map +1 -0
- package/dist/content/__mocks__/mockAssignmentSubmission.d.ts +2 -2
- package/dist/content/__mocks__/mockAssignmentSubmission.d.ts.map +1 -1
- package/dist/content/__mocks__/mockAssignmentSubmission.js +38 -0
- package/dist/content/__mocks__/mockAssignmentSubmission.js.map +1 -0
- package/dist/content/__mocks__/mockContentData.d.ts +3 -3
- package/dist/content/__mocks__/mockContentData.js +92 -0
- package/dist/content/__mocks__/mockContentData.js.map +1 -0
- package/dist/content/__mocks__/openThisContentInTarget.d.ts +1 -1
- package/dist/content/__mocks__/openThisContentInTarget.d.ts.map +1 -1
- package/dist/content/__mocks__/openThisContentInTarget.js +6 -0
- package/dist/content/__mocks__/openThisContentInTarget.js.map +1 -0
- package/dist/content/__testingUtils__/utils.d.ts +1 -1
- package/dist/content/__testingUtils__/utils.js +43 -0
- package/dist/content/__testingUtils__/utils.js.map +1 -0
- package/dist/content/__tests__/determineContent.test.js +115 -0
- package/dist/content/__tests__/determineContent.test.js.map +1 -0
- package/dist/content/__tests__/getContentFuncs.test.js +66 -0
- package/dist/content/__tests__/getContentFuncs.test.js.map +1 -0
- package/dist/content/assignments/Assignment.d.ts +4 -4
- package/dist/content/assignments/Assignment.js +61 -0
- package/dist/content/assignments/Assignment.js.map +1 -0
- package/dist/content/assignments/AssignmentKind.d.ts +4 -4
- package/dist/content/assignments/AssignmentKind.d.ts.map +1 -1
- package/dist/content/assignments/AssignmentKind.js +24 -0
- package/dist/content/assignments/AssignmentKind.js.map +1 -0
- package/dist/content/assignments/__tests__/AssignmentKind.test.js +56 -0
- package/dist/content/assignments/__tests__/AssignmentKind.test.js.map +1 -0
- package/dist/content/assignments/__tests__/assignments.test.js +95 -0
- package/dist/content/assignments/__tests__/assignments.test.js.map +1 -0
- package/dist/content/assignments/deleteAssignmentGroup.d.ts +2 -1
- package/dist/content/assignments/deleteAssignmentGroup.d.ts.map +1 -1
- package/dist/content/assignments/deleteAssignmentGroup.js +17 -0
- package/dist/content/assignments/deleteAssignmentGroup.js.map +1 -0
- package/dist/content/assignments/genAssignmentGroups.d.ts +3 -2
- package/dist/content/assignments/genAssignmentGroups.d.ts.map +1 -1
- package/dist/content/assignments/genAssignmentGroups.js +14 -0
- package/dist/content/assignments/genAssignmentGroups.js.map +1 -0
- package/dist/content/assignments/index.d.ts +4 -4
- package/dist/content/assignments/index.js +28 -0
- package/dist/content/assignments/index.js.map +1 -0
- package/dist/content/assignments/legacy.js +12 -0
- package/dist/content/assignments/legacy.js.map +1 -0
- package/dist/content/assignments/updateAssignmentDueDates.d.ts +2 -2
- package/dist/content/assignments/updateAssignmentDueDates.js +22 -0
- package/dist/content/assignments/updateAssignmentDueDates.js.map +1 -0
- package/dist/content/determineContent.d.ts +8 -8
- package/dist/content/determineContent.d.ts.map +1 -1
- package/dist/content/determineContent.js +70 -0
- package/dist/content/determineContent.js.map +1 -0
- package/dist/content/discussions/Discussion.d.ts +4 -4
- package/dist/content/discussions/Discussion.js +32 -0
- package/dist/content/discussions/Discussion.js.map +1 -0
- package/dist/content/discussions/DiscussionKind.d.ts +3 -3
- package/dist/content/discussions/DiscussionKind.d.ts.map +1 -1
- package/dist/content/discussions/DiscussionKind.js +23 -0
- package/dist/content/discussions/DiscussionKind.js.map +1 -0
- package/dist/content/discussions/__tests__/DiscussionKind.test.js +56 -0
- package/dist/content/discussions/__tests__/DiscussionKind.test.js.map +1 -0
- package/dist/content/discussions/genEquivalentDiscussionData.js +97 -0
- package/dist/content/discussions/genEquivalentDiscussionData.js.map +1 -0
- package/dist/content/discussions/index.js +19 -0
- package/dist/content/discussions/index.js.map +1 -0
- package/dist/content/getContentFuncs.js +25 -0
- package/dist/content/getContentFuncs.js.map +1 -0
- package/dist/content/index.js +27 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content/openThisContentInTarget.d.ts +3 -2
- package/dist/content/openThisContentInTarget.d.ts.map +1 -1
- package/dist/content/openThisContentInTarget.js +35 -0
- package/dist/content/openThisContentInTarget.js.map +1 -0
- package/dist/content/pages/Page.d.ts +5 -4
- package/dist/content/pages/Page.d.ts.map +1 -1
- package/dist/content/pages/Page.js +39 -0
- package/dist/content/pages/Page.js.map +1 -0
- package/dist/content/pages/PageKind.d.ts +4 -3
- package/dist/content/pages/PageKind.d.ts.map +1 -1
- package/dist/content/pages/PageKind.js +24 -0
- package/dist/content/pages/PageKind.js.map +1 -0
- package/dist/content/pages/__tests__/PageKind.test.js +69 -0
- package/dist/content/pages/__tests__/PageKind.test.js.map +1 -0
- package/dist/content/pages/__tests__/learningMaterialsForModule.js +82 -0
- package/dist/content/pages/__tests__/learningMaterialsForModule.js.map +1 -0
- package/dist/content/pages/index.d.ts +4 -0
- package/dist/content/pages/index.d.ts.map +1 -1
- package/dist/content/pages/index.js +56 -0
- package/dist/content/pages/index.js.map +1 -0
- package/dist/content/pages/learningMaterialsForModule.d.ts +2 -2
- package/dist/content/pages/learningMaterialsForModule.js +16 -0
- package/dist/content/pages/learningMaterialsForModule.js.map +1 -0
- package/dist/content/pages/types.d.ts +2 -1
- package/dist/content/pages/types.d.ts.map +1 -1
- package/dist/content/pages/types.js +3 -0
- package/dist/content/pages/types.js.map +1 -0
- package/dist/content/quizzes/Quiz.d.ts +1 -1
- package/dist/content/quizzes/Quiz.js +27 -0
- package/dist/content/quizzes/Quiz.js.map +1 -0
- package/dist/content/quizzes/QuizKind.d.ts +3 -3
- package/dist/content/quizzes/QuizKind.d.ts.map +1 -1
- package/dist/content/quizzes/QuizKind.js +22 -0
- package/dist/content/quizzes/QuizKind.js.map +1 -0
- package/dist/content/quizzes/__tests__/QuizKind.test.js +56 -0
- package/dist/content/quizzes/__tests__/QuizKind.test.js.map +1 -0
- package/dist/content/quizzes/index.js +3 -0
- package/dist/content/quizzes/index.js.map +1 -0
- package/dist/content/quizzes/types.js +3 -0
- package/dist/content/quizzes/types.js.map +1 -0
- package/dist/content/types.d.ts +6 -6
- package/dist/content/types.js +3 -0
- package/dist/content/types.js.map +1 -0
- package/dist/course/Course.d.ts +15 -11
- package/dist/course/Course.d.ts.map +1 -1
- package/dist/course/Course.js +473 -0
- package/dist/course/Course.js.map +1 -0
- package/dist/course/IBlueprintCourse.d.ts +2 -2
- package/dist/course/IBlueprintCourse.js +3 -0
- package/dist/course/IBlueprintCourse.js.map +1 -0
- package/dist/course/__mocks__/blueprint.d.ts +1 -1
- package/dist/course/__mocks__/blueprint.js +28 -0
- package/dist/course/__mocks__/blueprint.js.map +1 -0
- package/dist/course/__mocks__/mockCourseData.d.ts +1 -1
- package/dist/course/__mocks__/mockCourseData.js +50 -0
- package/dist/course/__mocks__/mockCourseData.js.map +1 -0
- package/dist/course/__mocks__/mockLatePolicy.d.ts +1 -1
- package/dist/course/__mocks__/mockLatePolicy.d.ts.map +1 -1
- package/dist/course/__mocks__/mockLatePolicy.js +15 -0
- package/dist/course/__mocks__/mockLatePolicy.js.map +1 -0
- package/dist/course/__mocks__/mockModuleData.js +55 -0
- package/dist/course/__mocks__/mockModuleData.js.map +1 -0
- package/dist/course/__mocks__/mockProgressData.js +29 -0
- package/dist/course/__mocks__/mockProgressData.js.map +1 -0
- package/dist/course/__tests__/Course.test.js +75 -0
- package/dist/course/__tests__/Course.test.js.map +1 -0
- package/dist/course/__tests__/blueprint.test.js +273 -0
- package/dist/course/__tests__/blueprint.test.js.map +1 -0
- package/dist/course/__tests__/changeStartDate.test.js +240 -0
- package/dist/course/__tests__/changeStartDate.test.js.map +1 -0
- package/dist/course/__tests__/index.test.js +77 -0
- package/dist/course/__tests__/index.test.js.map +1 -0
- package/dist/course/blueprint.d.ts +1 -1
- package/dist/course/blueprint.js +108 -0
- package/dist/course/blueprint.js.map +1 -0
- package/dist/course/cachedGetAssociatedCoursesFunc.d.ts +2 -2
- package/dist/course/cachedGetAssociatedCoursesFunc.js +14 -0
- package/dist/course/cachedGetAssociatedCoursesFunc.js.map +1 -0
- package/dist/course/changeStartDate.d.ts +7 -6
- package/dist/course/changeStartDate.d.ts.map +1 -1
- package/dist/course/changeStartDate.js +182 -0
- package/dist/course/changeStartDate.js.map +1 -0
- package/dist/course/code.js +39 -0
- package/dist/course/code.js.map +1 -0
- package/dist/course/courseTypes.d.ts +5 -5
- package/dist/course/courseTypes.js +3 -0
- package/dist/course/courseTypes.js.map +1 -0
- package/dist/course/getCourseIdFromUrl.d.ts +2 -1
- package/dist/course/getCourseIdFromUrl.d.ts.map +1 -1
- package/dist/course/getCourseIdFromUrl.js +12 -0
- package/dist/course/getCourseIdFromUrl.js.map +1 -0
- package/dist/course/getSections.d.ts +3 -3
- package/dist/course/getSections.js +10 -0
- package/dist/course/getSections.js.map +1 -0
- package/dist/course/getTermNameFromSections.d.ts +1 -1
- package/dist/course/getTermNameFromSections.js +13 -0
- package/dist/course/getTermNameFromSections.js.map +1 -0
- package/dist/course/index.js +28 -0
- package/dist/course/index.js.map +1 -0
- package/dist/course/migration/__mocks__/mockMigrationData.js +41 -0
- package/dist/course/migration/__mocks__/mockMigrationData.js.map +1 -0
- package/dist/course/migration/__tests__/migration.test.js +141 -0
- package/dist/course/migration/__tests__/migration.test.js.map +1 -0
- package/dist/course/migration/__tests__/migrationCache.test.js +42 -0
- package/dist/course/migration/__tests__/migrationCache.test.js.map +1 -0
- package/dist/course/migration/index.d.ts +2 -2
- package/dist/course/migration/index.js +74 -0
- package/dist/course/migration/index.js.map +1 -0
- package/dist/course/migration/migrationCache.js +44 -0
- package/dist/course/migration/migrationCache.js.map +1 -0
- package/dist/course/modules.d.ts +1 -1
- package/dist/course/modules.js +82 -0
- package/dist/course/modules.js.map +1 -0
- package/dist/course/notABlueprintError.js +8 -0
- package/dist/course/notABlueprintError.js.map +1 -0
- package/dist/course/references/getReferencesForText.d.ts +3 -2
- package/dist/course/references/getReferencesForText.d.ts.map +1 -1
- package/dist/course/references/getReferencesForText.js +14 -0
- package/dist/course/references/getReferencesForText.js.map +1 -0
- package/dist/course/references/getReferencesForText.test.js +21 -0
- package/dist/course/references/getReferencesForText.test.js.map +1 -0
- package/dist/course/references/getReferencesTemplate.d.ts +6 -6
- package/dist/course/references/getReferencesTemplate.d.ts.map +1 -1
- package/dist/course/references/getReferencesTemplate.js +30 -0
- package/dist/course/references/getReferencesTemplate.js.map +1 -0
- package/dist/course/references/mockCiteAsResponse.d.ts +2 -2
- package/dist/course/references/mockCiteAsResponse.d.ts.map +1 -1
- package/dist/course/references/mockCiteAsResponse.js +323 -0
- package/dist/course/references/mockCiteAsResponse.js.map +1 -0
- package/dist/course/retireBlueprint.d.ts +2 -2
- package/dist/course/retireBlueprint.js +21 -0
- package/dist/course/retireBlueprint.js.map +1 -0
- package/dist/course/toolbox.d.ts +3 -3
- package/dist/course/toolbox.js +96 -0
- package/dist/course/toolbox.js.map +1 -0
- package/dist/date.js +119 -0
- package/dist/date.js.map +1 -0
- package/dist/enrollments/EnrollmentTypes.d.ts +2 -2
- package/dist/enrollments/EnrollmentTypes.js +3 -0
- package/dist/enrollments/EnrollmentTypes.js.map +1 -0
- package/dist/enrollments/enrollmentRole.js +7 -0
- package/dist/enrollments/enrollmentRole.js.map +1 -0
- package/dist/enrollments/getEnrollmentGenerator.d.ts +2 -2
- package/dist/enrollments/getEnrollmentGenerator.js +25 -0
- package/dist/enrollments/getEnrollmentGenerator.js.map +1 -0
- package/dist/enrollments/index.js +20 -0
- package/dist/enrollments/index.js.map +1 -0
- package/dist/fetch/__mocks__/fetchJson.js +5 -0
- package/dist/fetch/__mocks__/fetchJson.js.map +1 -0
- package/dist/fetch/__mocks__/getPagedDataGenerator.js +10 -0
- package/dist/fetch/__mocks__/getPagedDataGenerator.js.map +1 -0
- package/dist/fetch/__mocks__/index.js +8 -0
- package/dist/fetch/__mocks__/index.js.map +1 -0
- package/dist/fetch/apiGetConfig.d.ts +1 -1
- package/dist/fetch/apiGetConfig.js +11 -0
- package/dist/fetch/apiGetConfig.js.map +1 -0
- package/dist/fetch/apiWriteConfig.d.ts +2 -2
- package/dist/fetch/apiWriteConfig.js +16 -0
- package/dist/fetch/apiWriteConfig.js.map +1 -0
- package/dist/fetch/canvasDataFetchGenFunc.d.ts +2 -2
- package/dist/fetch/canvasDataFetchGenFunc.js +13 -0
- package/dist/fetch/canvasDataFetchGenFunc.js.map +1 -0
- package/dist/fetch/fetchJson.d.ts +1 -1
- package/dist/fetch/fetchJson.js +19 -0
- package/dist/fetch/fetchJson.js.map +1 -0
- package/dist/fetch/getPagedDataGenerator.d.ts +2 -2
- package/dist/fetch/getPagedDataGenerator.js +145 -0
- package/dist/fetch/getPagedDataGenerator.js.map +1 -0
- package/dist/fetch/index.js +22 -0
- package/dist/fetch/index.js.map +1 -0
- package/dist/fetch/utils.d.ts +1 -1
- package/dist/fetch/utils.js +14 -0
- package/dist/fetch/utils.js.map +1 -0
- package/dist/files.js +33 -0
- package/dist/files.js.map +1 -0
- package/dist/fixes/annotations.d.ts +1 -1
- package/dist/fixes/annotations.js +95 -0
- package/dist/fixes/annotations.js.map +1 -0
- package/dist/fixes/index.js +87 -0
- package/dist/fixes/index.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +60 -8923
- package/dist/index.js.map +1 -0
- package/dist/profile.d.ts +2 -2
- package/dist/profile.js +230 -0
- package/dist/profile.js.map +1 -0
- package/dist/rubricTypes.d.ts +14 -0
- package/dist/rubricTypes.d.ts.map +1 -1
- package/dist/rubricTypes.js +3 -0
- package/dist/rubricTypes.js.map +1 -0
- package/dist/rubrics.d.ts +1 -1
- package/dist/rubrics.js +46 -0
- package/dist/rubrics.js.map +1 -0
- package/dist/term/Term.d.ts +3 -3
- package/dist/term/Term.js +64 -0
- package/dist/term/Term.js.map +1 -0
- package/dist/term/__tests__/dateFromTermName.test.js +26 -0
- package/dist/term/__tests__/dateFromTermName.test.js.map +1 -0
- package/dist/term/__tests__/getTermsGenerator.test.js +19 -0
- package/dist/term/__tests__/getTermsGenerator.test.js.map +1 -0
- package/dist/term/dateFromTermName.js +17 -0
- package/dist/term/dateFromTermName.js.map +1 -0
- package/dist/term/getTermsGenerator.js +15 -0
- package/dist/term/getTermsGenerator.js.map +1 -0
- package/dist/term/index.js +20 -0
- package/dist/term/index.js.map +1 -0
- package/dist/toolbox.js +25 -0
- package/dist/toolbox.js.map +1 -0
- package/dist/types.d.ts +4 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/users/getUserGenerator.d.ts +1 -1
- package/dist/users/getUserGenerator.js +21 -0
- package/dist/users/getUserGenerator.js.map +1 -0
- package/dist/users/index.js +18 -0
- package/dist/users/index.js.map +1 -0
- package/package.json +16 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiscussionKind.js","sourceRoot":"","sources":["../../../src/content/discussions/DiscussionKind.ts"],"names":[],"mappings":";;;AACA,iDAA4C;AAC5C,yEAAoE;AACpE,uDAAmF;AAMtE,QAAA,kBAAkB,GAAG,IAAA,6BAAe,EAAC,mBAAmB,CAAC,CAAC;AAC1D,QAAA,cAAc,GAIvB;IACA,GAAG,0BAAkB;IACrB,cAAc,CAAC,IAAI;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;IACxB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO;IAC/B,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAE,MAAgD;QAC3F,OAAO,MAAM,IAAA,qBAAS,EAAC,0BAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,CAAoB,CAAC;IACzG,CAAC;IACD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,IAAA,6CAAqB,EAAkB,0BAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC9H,GAAG,EAAE,IAAA,4BAAc,EAAsC,0BAAkB,CAAC,SAAS,CAAC;CACzF,CAAA;AAED,kBAAe,sBAAc,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const mockContentData_1 = require("../../../content/__mocks__/mockContentData");
|
|
37
|
+
const utils_1 = require("../../../content/__testingUtils__/utils");
|
|
38
|
+
const DiscussionKind_1 = __importStar(require("../../../content/discussions/DiscussionKind"));
|
|
39
|
+
jest.mock('@/fetch/fetchJson');
|
|
40
|
+
jest.mock('@/fetch/getPagedDataGenerator');
|
|
41
|
+
describe('DiscussionKind', () => {
|
|
42
|
+
it('getId works', () => expect(DiscussionKind_1.default.getId({ ...mockContentData_1.mockDiscussionData, id: 100 })).toEqual(100));
|
|
43
|
+
it('getName works', () => expect(DiscussionKind_1.default.getName({
|
|
44
|
+
...mockContentData_1.mockDiscussionData,
|
|
45
|
+
title: "Discussion"
|
|
46
|
+
})).toEqual('Discussion'));
|
|
47
|
+
it('getBody works', () => expect(DiscussionKind_1.default.getBody({
|
|
48
|
+
...mockContentData_1.mockDiscussionData,
|
|
49
|
+
message: "<p>Instructions</p>"
|
|
50
|
+
})).toEqual("<p>Instructions</p>"));
|
|
51
|
+
describe('get Data Tests', (0, utils_1.getDataTests)(DiscussionKind_1.default, [
|
|
52
|
+
{ ...mockContentData_1.mockDiscussionData, id: 1 },
|
|
53
|
+
], { title: "x" }));
|
|
54
|
+
});
|
|
55
|
+
describe('DiscussionUrlFuncs', (0, utils_1.kindUrlTests)(DiscussionKind_1.discussionUrlFuncs, 1, 3, '/api/v1/courses/1/discussion_topics/3', '/courses/1/discussion_topics/3', '/api/v1/courses/1/discussion_topics'));
|
|
56
|
+
//# sourceMappingURL=DiscussionKind.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiscussionKind.test.js","sourceRoot":"","sources":["../../../../src/content/discussions/__tests__/DiscussionKind.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yEAA2F;AAC3F,4DAA4E;AAC5E,uFAAwF;AAExF,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;AAC9B,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;AAC1C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAc,CAAC,KAAK,CAAC,EAAC,GAAG,oCAAkB,EAAE,EAAE,EAAE,GAAG,EAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACpG,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAc,CAAC,OAAO,CAAC;QACpD,GAAG,oCAAkB;QACrB,KAAK,EAAE,YAAY;KACtB,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;IAC1B,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAc,CAAC,OAAO,CAAC;QACpD,GAAG,oCAAkB;QACrB,OAAO,EAAE,qBAAqB;KACjC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAEnC,QAAQ,CAAC,gBAAgB,EAAE,IAAA,oBAAY,EAAC,wBAAc,EAAE;QACpD,EAAC,GAAG,oCAAkB,EAAE,EAAE,EAAE,CAAC,EAAC;KACjC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAExB,CAAC,CAAC,CAAA;AAGF,QAAQ,CAAC,oBAAoB,EAAE,IAAA,oBAAY,EAAC,mCAAkB,EAC1D,CAAC,EAAE,CAAC,EACJ,uCAAuC,EACvC,gCAAgC,EAChC,qCAAqC,CACxC,CAAC,CAAA"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import {genBlueprintDataForCode} from "../../course/blueprint";
|
|
3
|
+
// import {Course} from "../../course/Course";
|
|
4
|
+
// import AssignmentKind from "../../content/assignments/AssignmentKind";
|
|
5
|
+
// import {ContentData, IAssignmentData, IDiscussionData} from "../../content/types";
|
|
6
|
+
// import {Assignment} from "../../content/assignments/Assignment";
|
|
7
|
+
// import DiscussionKind from "../../content/discussions/DiscussionKind";
|
|
8
|
+
// import {getModuleWeekNumber, moduleGenerator} from "../../course/modules";
|
|
9
|
+
// import {ContentKind} from "../../content/ContentKind";
|
|
10
|
+
// import {
|
|
11
|
+
// CONTENT_KINDS,
|
|
12
|
+
// ContentKindInPractice,
|
|
13
|
+
// ContentDataType,
|
|
14
|
+
// getContentKindFromContent
|
|
15
|
+
// } from "../../content/determineContent";
|
|
16
|
+
// import {getModuleInfo} from "@/ui/speedGrader/modules";
|
|
17
|
+
// import {renderAsyncGen} from "../../canvasUtils";
|
|
18
|
+
// import {IModuleItemData} from "../../canvasDataDefs";
|
|
19
|
+
/**
|
|
20
|
+
* Retrieves the equivalent discussion data for a given assignment across multiple course blueprints.
|
|
21
|
+
*
|
|
22
|
+
* This function searches through the assignments in various blueprints of a course, attempting to find
|
|
23
|
+
* discussions that were originally associated with a given assignment (identified by its `assignmentId`).
|
|
24
|
+
* If a matching discussion is found in any blueprint, the corresponding discussion data (`IDiscussionData`) is yielded.
|
|
25
|
+
* This is useful for recovering lost or missing discussion data when the original discussion ID is not available,
|
|
26
|
+
* but the assignment information is accessible.
|
|
27
|
+
*
|
|
28
|
+
* The function processes the blueprints lazily, yielding results one by one as they are found. This ensures efficient memory usage
|
|
29
|
+
* when dealing with large sets of blueprint data.
|
|
30
|
+
*
|
|
31
|
+
* @param {Course} course - The course from which the blueprint data is being retrieved. This course is used to find
|
|
32
|
+
* the relevant blueprints through the `genBlueprintDataForCode` function.
|
|
33
|
+
* @param {number} assignmentId - The ID of the assignment whose associated discussion data is being retrieved.
|
|
34
|
+
* The function will search across blueprints to find discussions linked to this assignment.
|
|
35
|
+
*
|
|
36
|
+
* @yields {IDiscussionData} - The `IDiscussionData` object that corresponds to the found discussion, if any.
|
|
37
|
+
* This data includes the discussion properties like `discussion_type`, `require_initial_post`, etc.
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* - If no discussion is found for the given assignment ID across the blueprints, the generator will complete without yielding any values.
|
|
41
|
+
* - If the discussion is found, the function will yield the associated `discussion_topic` object, which can then be processed or restored as needed.
|
|
42
|
+
* - The function operates asynchronously and uses a generator to lazily fetch and yield discussion data, ensuring efficient handling of large datasets.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* const generator = getEquivalentDiscussionData(course, 123);
|
|
46
|
+
* for await (const discussion of generator) {
|
|
47
|
+
* console.log(discussion); // Process each matching discussion found
|
|
48
|
+
* }
|
|
49
|
+
*/
|
|
50
|
+
// export async function* genEquivalentDiscussionData(course: {id: number, courseCode: string, accountId: number }, assignmentId: number): AsyncGenerator {
|
|
51
|
+
// const blueprintGen = genBlueprintDataForCode(course.courseCode, [course.accountId]);
|
|
52
|
+
// if (!blueprintGen) throw new Error("Blueprint generator not found");
|
|
53
|
+
// const assignmentData = await AssignmentKind.get(course.id, assignmentId, { });
|
|
54
|
+
// if(!assignmentData) return;
|
|
55
|
+
// for await (const blueprint of blueprintGen) {
|
|
56
|
+
// const bpModules = await renderAsyncGen(moduleGenerator(blueprint.id));
|
|
57
|
+
// for await (const bpModule of bpModules) {
|
|
58
|
+
// const items = bpModule.items;
|
|
59
|
+
// for(const item of items) {
|
|
60
|
+
// if(item.title == assignmentData.name) {
|
|
61
|
+
// let analogAssignment: IAssignmentData;
|
|
62
|
+
// const contentKind = item.type === 'Assignment' ? AssignmentKind :
|
|
63
|
+
// item.type === 'Discussion' ? DiscussionKind :
|
|
64
|
+
// undefined;
|
|
65
|
+
// if(!contentKind) continue; //this is not a relevant data type
|
|
66
|
+
// const primaryData = await contentKind.get(blueprint.id, item.content_id);
|
|
67
|
+
//
|
|
68
|
+
//
|
|
69
|
+
// if (!analogDiscussionId) return undefined;
|
|
70
|
+
// const analogDiscussionData = await DiscussionKind.get(analogAssignment.courseId, analogDiscussionId);
|
|
71
|
+
//
|
|
72
|
+
//
|
|
73
|
+
// }
|
|
74
|
+
// }
|
|
75
|
+
//
|
|
76
|
+
// }
|
|
77
|
+
// // Iterate through assignments in this blueprint
|
|
78
|
+
// // Find assignments in the blueprint that match the given assignmentId
|
|
79
|
+
// const moduleItem = getModuleInfo(analogAssignment.id);
|
|
80
|
+
// // If a match is found, yield the associated discussion
|
|
81
|
+
// }
|
|
82
|
+
// }
|
|
83
|
+
//
|
|
84
|
+
//
|
|
85
|
+
// async function getByName<Kind extends ContentKindInPractice>(items: AsyncGenerator<ContentDataType<Kind>>, search: string | ((toCheck: string) => boolean)) {
|
|
86
|
+
//
|
|
87
|
+
// const checkFunc = typeof search != 'string' ? search : (toCheck:string) => search == toCheck;
|
|
88
|
+
// for await (const item of items) {
|
|
89
|
+
// const contentKind = getContentKindFromContent(item) as Kind & { getByName: (name:string) => typeof item};
|
|
90
|
+
// if(!contentKind) continue;
|
|
91
|
+
// if(!contentKind.dataIsThisKind(item)) throw new Error("Data constraint violation in getting content by name");
|
|
92
|
+
// const name = (contentKind as { getName: (data:ContentDataType<Kind>) => string|undefined}).getName(item);
|
|
93
|
+
// if(name && checkFunc(name)) return item;
|
|
94
|
+
// }
|
|
95
|
+
// return undefined;
|
|
96
|
+
// }
|
|
97
|
+
//# sourceMappingURL=genEquivalentDiscussionData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genEquivalentDiscussionData.js","sourceRoot":"","sources":["../../../src/content/discussions/genEquivalentDiscussionData.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,gDAAgD;AAChD,2EAA2E;AAC3E,uFAAuF;AACvF,qEAAqE;AACrE,2EAA2E;AAC3E,+EAA+E;AAC/E,2DAA2D;AAC3D,WAAW;AACX,qBAAqB;AACrB,6BAA6B;AAC7B,uBAAuB;AACvB,gCAAgC;AAChC,6CAA6C;AAC7C,0DAA0D;AAC1D,sDAAsD;AACtD,0DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,2JAA2J;AAC3J,2FAA2F;AAC3F,2EAA2E;AAC3E,qFAAqF;AACrF,kCAAkC;AAClC,oDAAoD;AACpD,iFAAiF;AACjF,oDAAoD;AACpD,4CAA4C;AAC5C,yCAAyC;AACzC,0DAA0D;AAC1D,6DAA6D;AAC7D,wFAAwF;AACxF,wEAAwE;AACxE,yCAAyC;AACzC,oFAAoF;AACpF,gGAAgG;AAChG,EAAE;AACF,EAAE;AACF,iEAAiE;AACjE,4HAA4H;AAC5H,EAAE;AACF,EAAE;AACF,oBAAoB;AACpB,gBAAgB;AAChB,EAAE;AACF,YAAY;AACZ,2DAA2D;AAC3D,iFAAiF;AACjF,iEAAiE;AACjE,kEAAkE;AAClE,QAAQ;AACR,IAAI;AACJ,EAAE;AACF,EAAE;AACF,gKAAgK;AAChK,EAAE;AACF,kGAAkG;AAClG,sCAAsC;AACtC,gHAAgH;AAChH,iCAAiC;AACjC,qHAAqH;AACrH,gHAAgH;AAChH,+CAA+C;AAC/C,MAAM;AACN,sBAAsB;AACtB,IAAI"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Discussion"), exports);
|
|
18
|
+
__exportStar(require("./DiscussionKind"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content/discussions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,mDAAiC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFileLinks = getFileLinks;
|
|
4
|
+
exports.getExternalLinks = getExternalLinks;
|
|
5
|
+
function getAllLinks(body) {
|
|
6
|
+
const el = bodyAsElement(body);
|
|
7
|
+
const anchors = el.querySelectorAll('a');
|
|
8
|
+
const urls = [];
|
|
9
|
+
for (const link of anchors)
|
|
10
|
+
urls.push(link.href);
|
|
11
|
+
return urls;
|
|
12
|
+
}
|
|
13
|
+
function bodyAsElement(body) {
|
|
14
|
+
const el = document.createElement('div');
|
|
15
|
+
el.innerHTML = body;
|
|
16
|
+
return el;
|
|
17
|
+
}
|
|
18
|
+
function getFileLinks(body, courseId) {
|
|
19
|
+
return getAllLinks(body).filter(a => a.match(/instructure\.com.*files\/\d+/i)).map(a => a.split('?')[0]);
|
|
20
|
+
}
|
|
21
|
+
function getExternalLinks(body, courseId) {
|
|
22
|
+
// Correct regex to exclude unity.instructure.com links properly
|
|
23
|
+
return getAllLinks(body).filter(a => !a.match(/:\/\/unity\.instructure\.com\//i));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=getContentFuncs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getContentFuncs.js","sourceRoot":"","sources":["../../src/content/getContentFuncs.ts"],"names":[],"mappings":";;AAqBA,oCAEC;AAED,4CAIC;AAvBD,SAAS,WAAW,CAAC,IAAW;IAC5B,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AAEhB,CAAC;AAGD,SAAS,aAAa,CAAC,IAAY;IAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC;AACd,CAAC;AACD,SAAgB,YAAY,CAAC,IAAY,EAAE,QAAgB;IACvD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7G,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY,EAAE,QAAgB;IAC3D,gEAAgE;IAChE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAA;AAErF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./BaseContentItem"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./determineContent"), exports);
|
|
20
|
+
__exportStar(require("./getContentFuncs"), exports);
|
|
21
|
+
__exportStar(require("./ContentKind"), exports);
|
|
22
|
+
__exportStar(require("./openThisContentInTarget"), exports);
|
|
23
|
+
__exportStar(require("./pages"), exports);
|
|
24
|
+
__exportStar(require("./quizzes"), exports);
|
|
25
|
+
__exportStar(require("./discussions"), exports);
|
|
26
|
+
__exportStar(require("./assignments"), exports);
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,0CAAuB;AACvB,qDAAmC;AACnC,oDAAkC;AAClC,gDAA8B;AAC9B,4DAA0C;AAE1C,0CAAwB;AACxB,4CAA0B;AAC1B,gDAA8B;AAC9B,gDAA8B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { Course } from "
|
|
2
|
-
export
|
|
1
|
+
import { Course } from "../course/Course";
|
|
2
|
+
export declare const openThisContentInTarget: (currentCourse: Course | number, target: Course | Course[] | number | number[]) => Promise<void>;
|
|
3
|
+
export default openThisContentInTarget;
|
|
3
4
|
//# sourceMappingURL=openThisContentInTarget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openThisContentInTarget.d.ts","sourceRoot":"","sources":["../../src/content/openThisContentInTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AASvC,
|
|
1
|
+
{"version":3,"file":"openThisContentInTarget.d.ts","sourceRoot":"","sources":["../../src/content/openThisContentInTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AASvC,eAAO,MAAM,uBAAuB,GAChC,eAAe,MAAM,GAAG,MAAM,EAC9B,QAAQ,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,kBAyBhD,CAAA;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.openThisContentInTarget = void 0;
|
|
4
|
+
const determineContent_1 = require("../content/determineContent");
|
|
5
|
+
function getIdOrCourse(courseOrId) {
|
|
6
|
+
if (typeof courseOrId === 'object')
|
|
7
|
+
return courseOrId.id;
|
|
8
|
+
return courseOrId;
|
|
9
|
+
}
|
|
10
|
+
const openThisContentInTarget = async function (currentCourse, target) {
|
|
11
|
+
if (!window)
|
|
12
|
+
return;
|
|
13
|
+
const currentCourseId = getIdOrCourse(currentCourse);
|
|
14
|
+
const targetCourseIds = Array.isArray(target) ? target.map(getIdOrCourse) : [getIdOrCourse(target)];
|
|
15
|
+
const currentContentItem = await (0, determineContent_1.getContentItemFromUrl)(document.documentURI);
|
|
16
|
+
const targetInfos = targetCourseIds.map((targetCourseId) => {
|
|
17
|
+
return {
|
|
18
|
+
courseId: targetCourseId,
|
|
19
|
+
contentItemPromise: currentContentItem?.getMeInAnotherCourse(targetCourseId)
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
for (const { courseId, contentItemPromise } of targetInfos) {
|
|
23
|
+
const targetContentItem = await contentItemPromise;
|
|
24
|
+
if (targetContentItem) {
|
|
25
|
+
window.open(targetContentItem.htmlContentUrl);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const url = document.URL.replace(currentCourseId.toString(), courseId.toString());
|
|
29
|
+
window.open(url);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.openThisContentInTarget = openThisContentInTarget;
|
|
34
|
+
exports.default = exports.openThisContentInTarget;
|
|
35
|
+
//# sourceMappingURL=openThisContentInTarget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openThisContentInTarget.js","sourceRoot":"","sources":["../../src/content/openThisContentInTarget.ts"],"names":[],"mappings":";;;AACA,iEAAiE;AAGjE,SAAS,aAAa,CAAC,UAA2B;IAC9C,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,EAAE,CAAC;IACzD,OAAO,UAAU,CAAC;AACtB,CAAC;AAEM,MAAM,uBAAuB,GAAG,KAAK,WACxC,aAA8B,EAC9B,MAA6C;IAE7C,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,eAAe,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAGpG,MAAM,kBAAkB,GAA2B,MAAM,IAAA,wCAAqB,EAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrG,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;QACvD,OAAO;YACH,QAAQ,EAAE,cAAc;YACxB,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,cAAc,CAAC;SAC/E,CAAA;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,EAAC,QAAQ,EAAE,kBAAkB,EAAC,IAAI,WAAW,EAAE,CAAC;QACvD,MAAM,iBAAiB,GAAG,MAAM,kBAAkB,CAAC;QACnD,IAAI,iBAAiB,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;YACjF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACL,CAAC;AACL,CAAC,CAAA;AA3BY,QAAA,uBAAuB,2BA2BnC;AAED,kBAAe,+BAAuB,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BaseContentItem } from "
|
|
2
|
-
import { ICanvasCallConfig } from "
|
|
3
|
-
import { IPageData } from "
|
|
1
|
+
import { BaseContentItem } from "../../content/BaseContentItem";
|
|
2
|
+
import { ICanvasCallConfig } from "../../canvasUtils";
|
|
3
|
+
import { IPageData } from "../../content/pages/types";
|
|
4
4
|
export declare class Page extends BaseContentItem {
|
|
5
|
-
static kindInfo: Required<import("..").ContentKind<IPageData, import("
|
|
5
|
+
static kindInfo: Required<import("..").ContentKind<IPageData, import("../../content/pages/PageKind").GetPageOptions, import("../../content/pages/PageKind").SavePageOptions>>;
|
|
6
6
|
static idProperty: string;
|
|
7
7
|
static nameProperty: string;
|
|
8
8
|
static bodyProperty: string;
|
|
@@ -10,6 +10,7 @@ export declare class Page extends BaseContentItem {
|
|
|
10
10
|
static allContentUrlTemplate: string;
|
|
11
11
|
constructor(canvasData: IPageData, courseId: number);
|
|
12
12
|
get body(): string;
|
|
13
|
+
get title(): string;
|
|
13
14
|
updateContent(text?: string | null, name?: string | null, config?: ICanvasCallConfig): Promise<import("../..").CanvasData>;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=Page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/content/pages/Page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAGhD,qBAAa,IAAK,SAAQ,eAAe;IACrC,MAAM,CAAC,QAAQ,uJAAW;IAC1B,MAAM,CAAC,UAAU,SAAa;IAC9B,MAAM,CAAC,YAAY,SAAW;IAC9B,MAAM,CAAC,YAAY,SAAU;IAC7B,MAAM,CAAC,kBAAkB,SAAoD;IAC7E,MAAM,CAAC,qBAAqB,SAAuC;gBAEvD,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAInD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,iBAAiB;CAY7F"}
|
|
1
|
+
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/content/pages/Page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAGhD,qBAAa,IAAK,SAAQ,eAAe;IACrC,MAAM,CAAC,QAAQ,uJAAW;IAC1B,MAAM,CAAC,UAAU,SAAa;IAC9B,MAAM,CAAC,YAAY,SAAW;IAC9B,MAAM,CAAC,YAAY,SAAU;IAC7B,MAAM,CAAC,kBAAkB,SAAoD;IAC7E,MAAM,CAAC,qBAAqB,SAAuC;gBAEvD,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAInD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAEK,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,iBAAiB;CAY7F"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Page = void 0;
|
|
7
|
+
const BaseContentItem_1 = require("../../content/BaseContentItem");
|
|
8
|
+
const PageKind_1 = __importDefault(require("../../content/pages/PageKind"));
|
|
9
|
+
class Page extends BaseContentItem_1.BaseContentItem {
|
|
10
|
+
static kindInfo = PageKind_1.default;
|
|
11
|
+
static idProperty = 'page_id';
|
|
12
|
+
static nameProperty = 'title';
|
|
13
|
+
static bodyProperty = 'body';
|
|
14
|
+
static contentUrlTemplate = "/api/v1/courses/{course_id}/pages/{content_id}";
|
|
15
|
+
static allContentUrlTemplate = "/api/v1/courses/{course_id}/pages";
|
|
16
|
+
constructor(canvasData, courseId) {
|
|
17
|
+
super(canvasData, courseId);
|
|
18
|
+
}
|
|
19
|
+
get body() {
|
|
20
|
+
return this.canvasData[this.bodyKey];
|
|
21
|
+
}
|
|
22
|
+
get title() {
|
|
23
|
+
return this.canvasData[this.nameKey];
|
|
24
|
+
}
|
|
25
|
+
async updateContent(text, name, config) {
|
|
26
|
+
const data = {};
|
|
27
|
+
if (text) {
|
|
28
|
+
this.canvasData[this.bodyKey] = text;
|
|
29
|
+
data['wiki_page[body]'] = text;
|
|
30
|
+
}
|
|
31
|
+
if (name) {
|
|
32
|
+
this.canvasData[this.nameKey] = name;
|
|
33
|
+
data[this.nameKey] = name;
|
|
34
|
+
}
|
|
35
|
+
return this.saveData(data, config);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.Page = Page;
|
|
39
|
+
//# sourceMappingURL=Page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Page.js","sourceRoot":"","sources":["../../../src/content/pages/Page.ts"],"names":[],"mappings":";;;;;;AAAA,+DAA0D;AAE1D,wEAAgD;AAIhD,MAAa,IAAK,SAAQ,iCAAe;IACrC,MAAM,CAAC,QAAQ,GAAG,kBAAQ,CAAA;IAC1B,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,kBAAkB,GAAG,gDAAgD,CAAC;IAC7E,MAAM,CAAC,qBAAqB,GAAG,mCAAmC,CAAC;IAEnE,YAAY,UAAqB,EAAE,QAAgB;QAC/C,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAoB,EAAE,IAAoB,EAAE,MAA0B;QACtF,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;;AA/BL,oBAgCC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IPageData } from "
|
|
2
|
-
import { ContentKind } from "
|
|
1
|
+
import { IPageData } from "../../content/pages/types";
|
|
2
|
+
import { ContentKind } from "../../content/ContentKind";
|
|
3
3
|
export declare const PageUrlFuncs: {
|
|
4
4
|
contentUrlPart: string;
|
|
5
5
|
getApiUrl: (courseId: number, contentId: number) => string;
|
|
@@ -10,6 +10,7 @@ export declare const PageUrlFuncs: {
|
|
|
10
10
|
};
|
|
11
11
|
export type GetPageOptions = Record<string, any>;
|
|
12
12
|
export type SavePageOptions = Record<string, any>;
|
|
13
|
-
|
|
13
|
+
export type GetByStringIdOptions = Record<string, any>;
|
|
14
|
+
export declare const PageKind: Required<ContentKind<IPageData, GetPageOptions, SavePageOptions>>;
|
|
14
15
|
export default PageKind;
|
|
15
16
|
//# sourceMappingURL=PageKind.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageKind.d.ts","sourceRoot":"","sources":["../../../src/content/pages/PageKind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EACH,WAAW,EAKd,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,YAAY;;;;;;;CAA2B,CAAA;AACpD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"PageKind.d.ts","sourceRoot":"","sources":["../../../src/content/pages/PageKind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EACH,WAAW,EAKd,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,YAAY;;;;;;;CAA2B,CAAA;AACpD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAClD,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAKvD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAC3B,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,CAiB1D,CAAA;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PageKind = exports.PageUrlFuncs = void 0;
|
|
4
|
+
const fetchJson_1 = require("../../fetch/fetchJson");
|
|
5
|
+
const getPagedDataGenerator_1 = require("../../fetch/getPagedDataGenerator");
|
|
6
|
+
const ContentKind_1 = require("../../content/ContentKind");
|
|
7
|
+
exports.PageUrlFuncs = (0, ContentKind_1.contentUrlFuncs)('pages');
|
|
8
|
+
const getStringApiUrl = (0, ContentKind_1.courseContentUrlFunc)(`/api/v1/courses/{courseId}/pages/{contentId}`);
|
|
9
|
+
exports.PageKind = {
|
|
10
|
+
...exports.PageUrlFuncs,
|
|
11
|
+
dataIsThisKind: (data) => {
|
|
12
|
+
return 'page_id' in data;
|
|
13
|
+
},
|
|
14
|
+
getName: page => page.title,
|
|
15
|
+
getBody: page => page.body,
|
|
16
|
+
getId: page => page.page_id,
|
|
17
|
+
get: (id, courseId, config) => (0, fetchJson_1.fetchJson)(exports.PageUrlFuncs.getApiUrl(courseId, id), config),
|
|
18
|
+
getByString: (courseId, contentId, config) => (0, fetchJson_1.fetchJson)(getStringApiUrl(courseId, contentId), config),
|
|
19
|
+
dataGenerator: (courseId, config = { queryParams: { include: ['body'] } }) => (0, getPagedDataGenerator_1.getPagedDataGenerator)(exports.PageUrlFuncs.getAllApiUrl(courseId), config),
|
|
20
|
+
put: (0, ContentKind_1.putContentFunc)(exports.PageUrlFuncs.getApiUrl),
|
|
21
|
+
post: (0, ContentKind_1.postContentFunc)(exports.PageUrlFuncs.getAllApiUrl),
|
|
22
|
+
};
|
|
23
|
+
exports.default = exports.PageKind;
|
|
24
|
+
//# sourceMappingURL=PageKind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageKind.js","sourceRoot":"","sources":["../../../src/content/pages/PageKind.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAC5C,yEAAoE;AAEpE,uDAM+B;AAElB,QAAA,YAAY,GAAG,IAAA,6BAAe,EAAC,OAAO,CAAC,CAAA;AAMpD,MAAM,eAAe,GAAG,IAAA,kCAAoB,EAAS,8CAA8C,CAAC,CAAA;AAEvF,QAAA,QAAQ,GAElB;IACC,GAAG,oBAAY;IACf,cAAc,EAAE,CAAC,IAAI,EAAqB,EAAE;QACxC,OAAO,SAAS,IAAI,IAAI,CAAA;IAC5B,CAAC;IACD,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;IAC3B,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI;IAC1B,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO;IAC3B,GAAG,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAC1B,IAAA,qBAAS,EAAC,oBAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAC3D,WAAW,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CACzC,IAAA,qBAAS,EAA8B,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IACxF,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,WAAW,EAAE,EAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC,EAAC,EAAE,EAAE,CACtE,IAAA,6CAAqB,EAAC,oBAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IACtE,GAAG,EAAE,IAAA,4BAAc,EAAC,oBAAY,CAAC,SAAS,CAAC;IAC3C,IAAI,EAAE,IAAA,6BAAe,EAAC,oBAAY,CAAC,YAAY,CAAC;CACnD,CAAA;AAED,kBAAe,gBAAQ,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fetchJson_1 = require("../../../fetch/fetchJson");
|
|
7
|
+
const getPagedDataGenerator_1 = require("../../../fetch/getPagedDataGenerator");
|
|
8
|
+
const mockContentData_1 = require("../../../content/__mocks__/mockContentData");
|
|
9
|
+
const PageKind_1 = __importDefault(require("../../../content/pages/PageKind"));
|
|
10
|
+
// Mock dependencies
|
|
11
|
+
jest.mock("@/fetch/fetchJson");
|
|
12
|
+
jest.mock("@/fetch/getPagedDataGenerator");
|
|
13
|
+
describe("PageKind", () => {
|
|
14
|
+
const courseId = 123;
|
|
15
|
+
const pageId = 456;
|
|
16
|
+
const contentId = "sample-page";
|
|
17
|
+
const mockConfig = {};
|
|
18
|
+
const localMockPageData = {
|
|
19
|
+
...mockContentData_1.mockPageData,
|
|
20
|
+
id: pageId,
|
|
21
|
+
title: "Sample Page",
|
|
22
|
+
body: "This is a sample page.",
|
|
23
|
+
page_id: pageId,
|
|
24
|
+
};
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
jest.clearAllMocks();
|
|
27
|
+
});
|
|
28
|
+
it("should return true for dataIsThisKind when data contains page_id", () => {
|
|
29
|
+
expect(PageKind_1.default.dataIsThisKind(localMockPageData)).toBe(true);
|
|
30
|
+
});
|
|
31
|
+
it("should return false for dataIsThisKind when data does not contain page_id", () => {
|
|
32
|
+
const data = { name: "Sample Page", body: "No ID here", ...mockContentData_1.mockDiscussionData };
|
|
33
|
+
expect(PageKind_1.default.dataIsThisKind(data)).toBe(false);
|
|
34
|
+
});
|
|
35
|
+
it("should return the correct name of the page", () => {
|
|
36
|
+
expect(PageKind_1.default.getName(localMockPageData)).toBe(localMockPageData.title);
|
|
37
|
+
});
|
|
38
|
+
it("should return the correct body of the page", () => {
|
|
39
|
+
expect(PageKind_1.default.getBody(localMockPageData)).toBe(localMockPageData.body);
|
|
40
|
+
});
|
|
41
|
+
it("should return the correct id of the page", () => {
|
|
42
|
+
expect(PageKind_1.default.getId(localMockPageData)).toBe(localMockPageData.id);
|
|
43
|
+
});
|
|
44
|
+
it("should fetch page data using get function", async () => {
|
|
45
|
+
fetchJson_1.fetchJson.mockResolvedValue(localMockPageData);
|
|
46
|
+
const result = await PageKind_1.default.get(pageId, courseId, mockConfig);
|
|
47
|
+
expect(fetchJson_1.fetchJson).toHaveBeenCalledWith(PageKind_1.default.getApiUrl(courseId, pageId), mockConfig);
|
|
48
|
+
expect(result).toBe(localMockPageData);
|
|
49
|
+
});
|
|
50
|
+
it("should fetch page data using getByString function", async () => {
|
|
51
|
+
fetchJson_1.fetchJson.mockResolvedValue(localMockPageData);
|
|
52
|
+
const result = await PageKind_1.default.getByString(courseId, contentId, mockConfig);
|
|
53
|
+
expect(result).toBe(localMockPageData);
|
|
54
|
+
});
|
|
55
|
+
it("should generate paged data using dataGenerator function", async () => {
|
|
56
|
+
const mockGenerator = jest.fn();
|
|
57
|
+
getPagedDataGenerator_1.getPagedDataGenerator.mockReturnValue(mockGenerator);
|
|
58
|
+
const result = PageKind_1.default.dataGenerator(courseId, mockConfig);
|
|
59
|
+
expect(getPagedDataGenerator_1.getPagedDataGenerator).toHaveBeenCalledWith(PageKind_1.default.getAllApiUrl(courseId), mockConfig);
|
|
60
|
+
expect(result).toBe(mockGenerator);
|
|
61
|
+
});
|
|
62
|
+
it("should call putContentFunc when put is called", async () => {
|
|
63
|
+
const mockPutResponse = { success: true };
|
|
64
|
+
fetchJson_1.fetchJson.mockResolvedValue(mockPutResponse);
|
|
65
|
+
const result = await PageKind_1.default.put(courseId, pageId, localMockPageData);
|
|
66
|
+
expect(result).toBe(mockPutResponse);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=PageKind.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageKind.test.js","sourceRoot":"","sources":["../../../../src/content/pages/__tests__/PageKind.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const PageKind_1 = __importDefault(require("../../../content/pages/PageKind"));
|
|
40
|
+
const globals_1 = require("@jest/globals");
|
|
41
|
+
const mockModuleData_1 = __importStar(require("../../../course/__mocks__/mockModuleData"));
|
|
42
|
+
const learningMaterialsForModule_1 = __importDefault(require("../learningMaterialsForModule"));
|
|
43
|
+
const canvasUtils_1 = require("../../../canvasUtils");
|
|
44
|
+
jest.mock('@canvas/content/pages/PageKind', () => ({
|
|
45
|
+
get: jest.fn(),
|
|
46
|
+
}));
|
|
47
|
+
const pageGet = PageKind_1.default.get;
|
|
48
|
+
describe('getLearningMaterialsWithModule', () => {
|
|
49
|
+
(0, globals_1.beforeEach)(() => {
|
|
50
|
+
jest.clearAllMocks();
|
|
51
|
+
});
|
|
52
|
+
(0, globals_1.afterEach)(() => {
|
|
53
|
+
jest.clearAllMocks();
|
|
54
|
+
});
|
|
55
|
+
it('Gets learning materials from course pages', async () => {
|
|
56
|
+
const courseId = 123;
|
|
57
|
+
const mockModule = {
|
|
58
|
+
...mockModuleData_1.default,
|
|
59
|
+
id: 1,
|
|
60
|
+
items: [{ title: 'Week 1 Learning Materials', content_id: 101 }]
|
|
61
|
+
};
|
|
62
|
+
pageGet.mockResolvedValueOnce({ id: 101, content: 'Learning materials content' });
|
|
63
|
+
const result = await (0, canvasUtils_1.renderAsyncGen)((0, learningMaterialsForModule_1.default)(courseId, mockModule));
|
|
64
|
+
expect(pageGet).toHaveBeenCalledWith(courseId, 101);
|
|
65
|
+
expect(result).toEqual([{
|
|
66
|
+
item: { content_id: 101, title: 'Week 1 Learning Materials' },
|
|
67
|
+
page: { id: 101, content: 'Learning materials content' }
|
|
68
|
+
}]);
|
|
69
|
+
});
|
|
70
|
+
it('Skips non learning materials', async () => {
|
|
71
|
+
const courseId = 123;
|
|
72
|
+
const mockModule = {
|
|
73
|
+
...mockModuleData_1.default,
|
|
74
|
+
id: 1,
|
|
75
|
+
items: [{ ...mockModuleData_1.mockModuleItemData, title: 'Week 1 Overview', content_id: 101 }]
|
|
76
|
+
.map(a => ({ ...mockModuleData_1.mockModuleItemData, ...a })),
|
|
77
|
+
};
|
|
78
|
+
const result = await (0, canvasUtils_1.renderAsyncGen)((0, learningMaterialsForModule_1.default)(courseId, mockModule));
|
|
79
|
+
expect(result).toEqual([]);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=learningMaterialsForModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learningMaterialsForModule.js","sourceRoot":"","sources":["../../../../src/content/pages/__tests__/learningMaterialsForModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAAsD;AACtD,2CAAoD;AACpD,0FAA2F;AAE3F,+FAAuE;AACvE,qDAAmD;AAGnD,IAAI,CAAC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;CACjB,CAAC,CAAC,CAAC;AAEJ,MAAM,OAAO,GAAG,kBAAQ,CAAC,GAAgB,CAAC;AAE1C,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC5C,IAAA,oBAAU,EAAC,GAAG,EAAE;QACZ,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,IAAA,mBAAS,EAAC,GAAG,EAAE;QACX,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,MAAM,UAAU,GACZ;YACI,GAAG,wBAAc;YACjB,EAAE,EAAE,CAAC;YACL,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,UAAU,EAAE,GAAG,EAAC,CAAC;SAClE,CAAC;QAEN,OAAO,CAAC,qBAAqB,CAAC,EAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,4BAA4B,EAAC,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAc,EAAC,IAAA,oCAA0B,EAAC,QAAQ,EAAE,UAAyB,CAAC,CAAC,CAAC;QAErG,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAE,CAAC;gBACrB,IAAI,EAAE,EAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,2BAA2B,EAAC;gBAC3D,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,4BAA4B,EAAC;aAC7D,CAAC,CAAE,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,MAAM,UAAU,GACZ;YACI,GAAG,wBAAc;YACjB,EAAE,EAAE,CAAC;YACL,KAAK,EAAE,CAAC,EAAC,GAAG,mCAAkB,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,EAAC,CAAC;iBACtE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,GAAG,mCAAkB,EAAE,GAAG,CAAC,EAAC,CAAC,CAAC;SACjD,CAAC;QAGN,MAAM,MAAM,GAAG,MAAO,IAAA,4BAAc,EAAC,IAAA,oCAA0B,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAEvF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import learningMaterialsForModule from "./learningMaterialsForModule";
|
|
2
2
|
import { Page } from "./Page";
|
|
3
3
|
import * as pageTypes from './types';
|
|
4
|
+
export * from "./learningMaterialsForModule";
|
|
5
|
+
export * from "./Page";
|
|
6
|
+
export * from "./PageKind";
|
|
7
|
+
export * from './types';
|
|
4
8
|
declare const _default: {
|
|
5
9
|
learningMaterialsForModule: typeof learningMaterialsForModule;
|
|
6
10
|
Page: typeof Page;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content/pages/index.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content/pages/index.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AAErC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;;;;;;AAExB,wBAMC"}
|