@speakableio/core 0.1.106 → 1.0.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.
Files changed (57) hide show
  1. package/dist/analytics.js +329 -25
  2. package/dist/analytics.js.map +1 -1
  3. package/dist/index.native.d.mts +2836 -0
  4. package/dist/index.native.d.ts +2272 -27
  5. package/dist/index.native.js +2995 -166
  6. package/dist/index.native.js.map +1 -1
  7. package/dist/index.native.mjs +3322 -0
  8. package/dist/index.native.mjs.map +1 -0
  9. package/dist/index.web.d.mts +2836 -0
  10. package/dist/index.web.js +3244 -12
  11. package/dist/index.web.js.map +1 -1
  12. package/package.json +10 -61
  13. package/dist/assignment.constants-BIKM6fYi.d.ts +0 -32
  14. package/dist/assignment.model-DLMWAp0Y.d.ts +0 -301
  15. package/dist/card.constants-DhKFipX3.d.ts +0 -54
  16. package/dist/chunk-233VJDUF.js +0 -149
  17. package/dist/chunk-233VJDUF.js.map +0 -1
  18. package/dist/chunk-2CRI5MJP.js +0 -225
  19. package/dist/chunk-2CRI5MJP.js.map +0 -1
  20. package/dist/chunk-AWVUNWML.js +0 -141
  21. package/dist/chunk-AWVUNWML.js.map +0 -1
  22. package/dist/chunk-CJ5JXKII.js +0 -129
  23. package/dist/chunk-CJ5JXKII.js.map +0 -1
  24. package/dist/chunk-EEBMPASA.js +0 -21
  25. package/dist/chunk-EEBMPASA.js.map +0 -1
  26. package/dist/chunk-H5XNOXRC.js +0 -11
  27. package/dist/chunk-H5XNOXRC.js.map +0 -1
  28. package/dist/chunk-LZG3MTSH.js +0 -53
  29. package/dist/chunk-LZG3MTSH.js.map +0 -1
  30. package/dist/chunk-OLSTHM2U.js +0 -154
  31. package/dist/chunk-OLSTHM2U.js.map +0 -1
  32. package/dist/chunk-TQGDTKTE.js +0 -13
  33. package/dist/chunk-TQGDTKTE.js.map +0 -1
  34. package/dist/chunk-YKUMIPSO.js +0 -212
  35. package/dist/chunk-YKUMIPSO.js.map +0 -1
  36. package/dist/chunk-YMJRCINF.js +0 -68
  37. package/dist/chunk-YMJRCINF.js.map +0 -1
  38. package/dist/chunk-YO34TZYN.js +0 -28
  39. package/dist/chunk-YO34TZYN.js.map +0 -1
  40. package/dist/const.d.ts +0 -331
  41. package/dist/const.js +0 -193
  42. package/dist/const.js.map +0 -1
  43. package/dist/hooks.d.ts +0 -294
  44. package/dist/hooks.js +0 -1015
  45. package/dist/hooks.js.map +0 -1
  46. package/dist/index.web.d.ts +0 -405
  47. package/dist/models.d.ts +0 -56
  48. package/dist/models.js +0 -17
  49. package/dist/models.js.map +0 -1
  50. package/dist/notification.constants-Da4-_0kX.d.ts +0 -21
  51. package/dist/repos.d.ts +0 -209
  52. package/dist/repos.js +0 -26
  53. package/dist/repos.js.map +0 -1
  54. package/dist/utils.d.ts +0 -39
  55. package/dist/utils.js +0 -180
  56. package/dist/utils.js.map +0 -1
  57. /package/dist/{analytics.d.ts → analytics.d.mts} +0 -0
package/dist/repos.d.ts DELETED
@@ -1,209 +0,0 @@
1
- import { A as AssignmentWithId, b as CustomTimestamp, c as ActivityPageType, P as PageActivity, d as PageActivityWithId } from './assignment.model-DLMWAp0Y.js';
2
- import { A as AssignmentAnalyticsType } from './assignment.constants-BIKM6fYi.js';
3
- import { V as VerificationCardStatus } from './card.constants-DhKFipX3.js';
4
- import { SetWithId } from './models.js';
5
- import '@react-native-firebase/firestore';
6
- import 'firebase/firestore';
7
-
8
- declare const createAssignmentRepo: () => {
9
- getAssignment: (params: {
10
- assignmentId: string;
11
- currentUserId: string;
12
- analyticType?: AssignmentAnalyticsType;
13
- studentId?: string;
14
- }) => Promise<AssignmentWithId | {
15
- scores: any;
16
- id: string;
17
- isAvailable: boolean;
18
- name: string;
19
- description: string;
20
- scheduledTime?: string | null;
21
- dueTime?: {
22
- hours: number;
23
- minutes: number;
24
- nanos: number;
25
- };
26
- speakableio: boolean;
27
- owners: string[];
28
- image: {
29
- path: string | null;
30
- url: string;
31
- };
32
- dueDate: {
33
- day: number;
34
- month: number;
35
- year: number;
36
- };
37
- teacherName: string;
38
- courseWorkId: string | null;
39
- dueDateTimestamp: CustomTimestamp;
40
- scheduledTimeTimestamp: number;
41
- active: boolean;
42
- voice: string | null;
43
- setId: string;
44
- dateMade: {
45
- seconds: number;
46
- nanoseconds: number;
47
- };
48
- maxPoints: number;
49
- courseId: string;
50
- isAssessment: boolean;
51
- ltiDeeplink?: string;
52
- content?: string[];
53
- weights?: Record<string, number>;
54
- language?: string;
55
- types?: { [key in ActivityPageType]?: number; };
56
- aiEnabled?: boolean;
57
- chat_experience?: boolean;
58
- } | null>;
59
- attachScoresAssignment: (args_0: {
60
- assignments: AssignmentWithId[];
61
- analyticType: AssignmentAnalyticsType;
62
- studentId?: string;
63
- currentUserId: string;
64
- }) => Promise<{
65
- scores: any;
66
- id: string;
67
- isAvailable: boolean;
68
- name: string;
69
- description: string;
70
- scheduledTime?: string | null;
71
- dueTime?: {
72
- hours: number;
73
- minutes: number;
74
- nanos: number;
75
- };
76
- speakableio: boolean;
77
- owners: string[];
78
- image: {
79
- path: string | null;
80
- url: string;
81
- };
82
- dueDate: {
83
- day: number;
84
- month: number;
85
- year: number;
86
- };
87
- teacherName: string;
88
- courseWorkId: string | null;
89
- dueDateTimestamp: CustomTimestamp;
90
- scheduledTimeTimestamp: number;
91
- active: boolean;
92
- voice: string | null;
93
- setId: string;
94
- dateMade: {
95
- seconds: number;
96
- nanoseconds: number;
97
- };
98
- maxPoints: number;
99
- courseId: string;
100
- isAssessment: boolean;
101
- ltiDeeplink?: string;
102
- content?: string[];
103
- weights?: Record<string, number>;
104
- language?: string;
105
- types?: { [key in ActivityPageType]?: number; };
106
- aiEnabled?: boolean;
107
- chat_experience?: boolean;
108
- }[]>;
109
- getAssignmentScores: (args_0: {
110
- assignmentId: string;
111
- currentUserId: string;
112
- analyticType?: AssignmentAnalyticsType;
113
- studentId?: string;
114
- }) => Promise<{
115
- scores: unknown;
116
- id: string;
117
- } | undefined>;
118
- getAllAssignments: () => Promise<(AssignmentWithId & {
119
- id: string;
120
- })[]>;
121
- };
122
-
123
- declare const createCardRepo: () => {
124
- createCard: (args_0: {
125
- data: Partial<PageActivity>;
126
- }) => Promise<{
127
- id: string;
128
- } & Partial<PageActivity>>;
129
- createCards: (args_0: {
130
- cards: PageActivity[];
131
- }) => Promise<{
132
- id: string;
133
- owners: string[];
134
- checked?: boolean;
135
- completed?: boolean;
136
- media_area_id?: string | null;
137
- media_area_layout?: "left" | "right" | null;
138
- score?: number;
139
- verificationStatus?: VerificationCardStatus;
140
- native_text?: string;
141
- repeat?: number;
142
- language?: string | null;
143
- image?: {
144
- path?: string | null;
145
- url?: string;
146
- };
147
- audio?: {
148
- path?: string | null;
149
- url?: string;
150
- } | null;
151
- notes?: string;
152
- difficulty?: string;
153
- default_language?: string;
154
- target_text?: string;
155
- type: ActivityPageType;
156
- grading_criteria?: string;
157
- scoring_type?: string;
158
- grading_method?: "simple" | "rubric" | "manual" | "standards_based";
159
- feedback_types?: string[];
160
- rubricId?: string;
161
- prompt?: string;
162
- title?: string;
163
- passing_score?: number;
164
- maxCharacters?: number;
165
- answer?: string[];
166
- choices?: {
167
- value: string;
168
- option: string;
169
- }[];
170
- MCQType?: string;
171
- multipleAttemptsAllowed?: boolean;
172
- allowRetries?: boolean;
173
- question?: string;
174
- respondTime?: number;
175
- hidePrompt?: boolean;
176
- videoUrl?: string;
177
- link?: string;
178
- text?: string;
179
- isListenAloud?: boolean;
180
- embedCode?: string;
181
- attempt?: number;
182
- correct?: number;
183
- autoGrade?: boolean;
184
- points?: number;
185
- shuffle?: boolean;
186
- translation?: string;
187
- includeAIContext?: boolean;
188
- media_area_context_ref?: string | null;
189
- standardId?: string;
190
- target_proficiency_level?: string;
191
- allowTTS?: boolean;
192
- feedback_language?: string | null;
193
- correct_answer?: string | null;
194
- limit_attempts?: boolean;
195
- max_attempts?: number;
196
- rich_text?: string;
197
- }[]>;
198
- getCard: (params: {
199
- cardId: string;
200
- }) => Promise<PageActivityWithId | null>;
201
- };
202
-
203
- declare const createSetRepo: () => {
204
- getSet: (args_0: {
205
- setId: string;
206
- }) => Promise<SetWithId | null>;
207
- };
208
-
209
- export { createAssignmentRepo, createCardRepo, createSetRepo };
package/dist/repos.js DELETED
@@ -1,26 +0,0 @@
1
- import {
2
- createAssignmentRepo,
3
- createCardRepo
4
- } from "./chunk-OLSTHM2U.js";
5
- import {
6
- getSet
7
- } from "./chunk-EEBMPASA.js";
8
- import "./chunk-233VJDUF.js";
9
- import "./chunk-H5XNOXRC.js";
10
- import "./chunk-AWVUNWML.js";
11
- import "./chunk-TQGDTKTE.js";
12
- import "./chunk-CJ5JXKII.js";
13
- import "./chunk-LZG3MTSH.js";
14
-
15
- // src/domains/sets/set.repo.ts
16
- var createSetRepo = () => {
17
- return {
18
- getSet
19
- };
20
- };
21
- export {
22
- createAssignmentRepo,
23
- createCardRepo,
24
- createSetRepo
25
- };
26
- //# sourceMappingURL=repos.js.map
package/dist/repos.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/domains/sets/set.repo.ts"],"sourcesContent":["import { getSet } from './services/get-set.service'\n\nexport const createSetRepo = () => {\n return {\n getSet,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAEO,IAAM,gBAAgB,MAAM;AACjC,SAAO;AAAA,IACL;AAAA,EACF;AACF;","names":[]}
package/dist/utils.d.ts DELETED
@@ -1,39 +0,0 @@
1
- import { b as CustomTimestamp, e as Score, c as ActivityPageType, d as PageActivityWithId } from './assignment.model-DLMWAp0Y.js';
2
- import '@react-native-firebase/firestore';
3
- import 'firebase/firestore';
4
- import './card.constants-DhKFipX3.js';
5
-
6
- declare const checkAssignmentAvailability: (scheduledTime: string | CustomTimestamp | null | undefined) => boolean;
7
-
8
- declare const defaultScore: (props: {
9
- owners: string[];
10
- courseId?: string;
11
- userId: string;
12
- googleClassroomUserId?: string;
13
- }) => Score;
14
-
15
- declare const checkTypePageActivity: (cardType: ActivityPageType | undefined) => {
16
- isRespondAudio: boolean;
17
- isRespondWritten: boolean;
18
- isRespond: boolean;
19
- isMC: boolean;
20
- isRepeat: boolean;
21
- isMediaPage: boolean;
22
- isShortAnswer: boolean;
23
- };
24
-
25
- declare function getPagePrompt(card: PageActivityWithId | undefined): {
26
- has: boolean;
27
- text: string;
28
- rich_text: string;
29
- isTextEqualToRichText: boolean;
30
- };
31
-
32
- declare const getTotalCompletedCards: (pageScores: Score["cards"] | undefined) => number;
33
-
34
- declare const getLabelPage: (pageType: ActivityPageType | undefined) => {
35
- short: string;
36
- long: string;
37
- };
38
-
39
- export { checkAssignmentAvailability, checkTypePageActivity, defaultScore, getLabelPage, getPagePrompt, getTotalCompletedCards };
package/dist/utils.js DELETED
@@ -1,180 +0,0 @@
1
- import {
2
- defaultScore
3
- } from "./chunk-YMJRCINF.js";
4
- import {
5
- checkAssignmentAvailability
6
- } from "./chunk-TQGDTKTE.js";
7
- import "./chunk-CJ5JXKII.js";
8
- import {
9
- MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES,
10
- REPEAT_PAGE_ACTIVITY_TYPES,
11
- RESPOND_AUDIO_PAGE_ACTIVITY_TYPES,
12
- RESPOND_PAGE_ACTIVITY_TYPES,
13
- RESPOND_WRITE_PAGE_ACTIVITY_TYPES
14
- } from "./chunk-LZG3MTSH.js";
15
-
16
- // src/domains/cards/utils/check-page-type.ts
17
- function checkIsRepeatPage(cardType) {
18
- if (cardType === void 0) return false;
19
- return REPEAT_PAGE_ACTIVITY_TYPES.includes(cardType);
20
- }
21
- function checkIsMCPage(cardType) {
22
- if (cardType === void 0) return false;
23
- return MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES.includes(cardType);
24
- }
25
- function checkIsRespondPage(cardType) {
26
- if (cardType === void 0) return false;
27
- return RESPOND_PAGE_ACTIVITY_TYPES.includes(cardType);
28
- }
29
- function checkIsRespondWrittenPage(cardType) {
30
- if (cardType === void 0) return false;
31
- return RESPOND_WRITE_PAGE_ACTIVITY_TYPES.includes(cardType);
32
- }
33
- function checkIsRespondAudioPage(cardType) {
34
- if (cardType === void 0) return false;
35
- return RESPOND_AUDIO_PAGE_ACTIVITY_TYPES.includes(cardType);
36
- }
37
- var checkIsMediaPage = (cardType) => {
38
- if (cardType === void 0) return false;
39
- return cardType === "MEDIA_PAGE" /* MEDIA_PAGE */;
40
- };
41
- var checkIsShortAnswerPage = (cardType) => {
42
- if (cardType === void 0) return false;
43
- return cardType === "SHORT_ANSWER" /* SHORT_ANSWER */;
44
- };
45
- var checkTypePageActivity = (cardType) => {
46
- const isRespondAudio = checkIsRespondAudioPage(cardType);
47
- const isRespondWritten = checkIsRespondWrittenPage(cardType);
48
- const isRespond = checkIsRespondPage(cardType);
49
- const isMC = checkIsMCPage(cardType);
50
- const isRepeat = checkIsRepeatPage(cardType);
51
- const isMediaPage = checkIsMediaPage(cardType);
52
- const isShortAnswer = checkIsShortAnswerPage(cardType);
53
- return {
54
- isRespondAudio,
55
- isRespondWritten,
56
- isRespond,
57
- isMC,
58
- isRepeat,
59
- isMediaPage,
60
- isShortAnswer
61
- };
62
- };
63
-
64
- // src/domains/cards/utils/get-page-prompt.ts
65
- function extractTextFromRichText(richText) {
66
- if (!richText) return "";
67
- return richText.replace(/<[^>]*>/g, "").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").trim();
68
- }
69
- function getPagePrompt(card) {
70
- if (!card) return { has: false, text: "", rich_text: "", isTextEqualToRichText: false };
71
- const { isMC, isRepeat, isRespond, isShortAnswer } = checkTypePageActivity(card == null ? void 0 : card.type);
72
- const hidePrompt = (card == null ? void 0 : card.hidePrompt) === true;
73
- const createReturnObject = (text, richText) => {
74
- const plainText = text || "";
75
- const richTextPlain = extractTextFromRichText(richText);
76
- return {
77
- has: true,
78
- text: plainText,
79
- rich_text: richText || "",
80
- isTextEqualToRichText: plainText.trim() === richTextPlain.trim()
81
- };
82
- };
83
- if (isRepeat) {
84
- return createReturnObject(card == null ? void 0 : card.target_text, card == null ? void 0 : card.rich_text);
85
- }
86
- if (isRespond && !hidePrompt) {
87
- return createReturnObject(card == null ? void 0 : card.prompt, card == null ? void 0 : card.rich_text);
88
- }
89
- if (isMC) {
90
- return createReturnObject(card == null ? void 0 : card.question, card == null ? void 0 : card.rich_text);
91
- }
92
- if (isShortAnswer && !hidePrompt) {
93
- return createReturnObject(card == null ? void 0 : card.prompt, card == null ? void 0 : card.rich_text);
94
- }
95
- return {
96
- has: false,
97
- text: "",
98
- rich_text: "",
99
- isTextEqualToRichText: false
100
- };
101
- }
102
-
103
- // src/domains/cards/utils/get-completed-pages.ts
104
- var getTotalCompletedCards = (pageScores) => {
105
- return Object.values(pageScores != null ? pageScores : {}).reduce((acc, cardScore) => {
106
- var _a, _b;
107
- if (((_b = (_a = cardScore.completed) != null ? _a : cardScore.score) != null ? _b : cardScore.score === 0) && !cardScore.media_area_opened) {
108
- acc++;
109
- }
110
- return acc;
111
- }, 0);
112
- };
113
-
114
- // src/domains/cards/utils/get-label-page.ts
115
- var labels = {
116
- repeat: {
117
- short: "Repeat",
118
- long: "Listen & Repeat"
119
- },
120
- mc: {
121
- short: "Multiple Choice",
122
- long: "Multiple Choice"
123
- },
124
- mediaPage: {
125
- short: "Media Page",
126
- long: "Media Page"
127
- },
128
- shortAnswer: {
129
- short: "Short Answer",
130
- long: "Short Answer"
131
- },
132
- respondWritten: {
133
- short: "Open Response",
134
- long: "Written Open Response"
135
- },
136
- respondAudio: {
137
- short: "Open Response",
138
- long: "Spoken Open Response"
139
- }
140
- };
141
- var getLabelPage = (pageType) => {
142
- if (!pageType) {
143
- return {
144
- short: "",
145
- long: ""
146
- };
147
- }
148
- const { isRepeat, isMC, isMediaPage, isShortAnswer, isRespondWritten, isRespondAudio } = checkTypePageActivity(pageType);
149
- if (isRepeat) {
150
- return labels.repeat;
151
- }
152
- if (isMC) {
153
- return labels.mc;
154
- }
155
- if (isMediaPage) {
156
- return labels.mediaPage;
157
- }
158
- if (isShortAnswer) {
159
- return labels.shortAnswer;
160
- }
161
- if (isRespondWritten) {
162
- return labels.respondWritten;
163
- }
164
- if (isRespondAudio) {
165
- return labels.respondAudio;
166
- }
167
- return {
168
- short: "",
169
- long: ""
170
- };
171
- };
172
- export {
173
- checkAssignmentAvailability,
174
- checkTypePageActivity,
175
- defaultScore,
176
- getLabelPage,
177
- getPagePrompt,
178
- getTotalCompletedCards
179
- };
180
- //# sourceMappingURL=utils.js.map
package/dist/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/domains/cards/utils/check-page-type.ts","../src/domains/cards/utils/get-page-prompt.ts","../src/domains/cards/utils/get-completed-pages.ts","../src/domains/cards/utils/get-label-page.ts"],"sourcesContent":["import {\n ActivityPageType,\n REPEAT_PAGE_ACTIVITY_TYPES,\n MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES,\n RESPOND_PAGE_ACTIVITY_TYPES,\n RESPOND_WRITE_PAGE_ACTIVITY_TYPES,\n RESPOND_AUDIO_PAGE_ACTIVITY_TYPES,\n} from '../card.model'\n\nfunction checkIsRepeatPage(cardType: ActivityPageType | undefined) {\n if (cardType === undefined) return false\n\n return REPEAT_PAGE_ACTIVITY_TYPES.includes(cardType)\n}\n\nfunction checkIsMCPage(cardType: ActivityPageType | undefined) {\n if (cardType === undefined) return false\n\n return MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES.includes(cardType)\n}\n\nfunction checkIsRespondPage(cardType: ActivityPageType | undefined) {\n if (cardType === undefined) return false\n\n return RESPOND_PAGE_ACTIVITY_TYPES.includes(cardType)\n}\n\nfunction checkIsRespondWrittenPage(cardType: ActivityPageType | undefined) {\n if (cardType === undefined) return false\n\n return RESPOND_WRITE_PAGE_ACTIVITY_TYPES.includes(cardType)\n}\n\nfunction checkIsRespondAudioPage(cardType: ActivityPageType | undefined) {\n if (cardType === undefined) return false\n\n return RESPOND_AUDIO_PAGE_ACTIVITY_TYPES.includes(cardType)\n}\n\nconst checkIsMediaPage = (cardType: ActivityPageType | undefined) => {\n if (cardType === undefined) return false\n\n return cardType === ActivityPageType.MEDIA_PAGE\n}\n\nconst checkIsShortAnswerPage = (cardType: ActivityPageType | undefined) => {\n if (cardType === undefined) return false\n\n return cardType === ActivityPageType.SHORT_ANSWER\n}\n\nexport const checkTypePageActivity = (cardType: ActivityPageType | undefined) => {\n const isRespondAudio = checkIsRespondAudioPage(cardType)\n const isRespondWritten = checkIsRespondWrittenPage(cardType)\n\n const isRespond = checkIsRespondPage(cardType)\n const isMC = checkIsMCPage(cardType)\n const isRepeat = checkIsRepeatPage(cardType)\n const isMediaPage = checkIsMediaPage(cardType)\n\n const isShortAnswer = checkIsShortAnswerPage(cardType)\n\n return {\n isRespondAudio,\n isRespondWritten,\n isRespond,\n isMC,\n isRepeat,\n isMediaPage,\n isShortAnswer,\n }\n}\n","import { type PageActivityWithId } from '../card.model'\n\nimport { checkTypePageActivity } from './check-page-type'\n\nfunction extractTextFromRichText(richText: string | undefined): string {\n if (!richText) return ''\n\n return richText\n .replace(/<[^>]*>/g, '')\n .replace(/&nbsp;/g, ' ')\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&quot;/g, '\"')\n .replace(/&#39;/g, \"'\")\n .trim()\n}\n\nexport function getPagePrompt(card: PageActivityWithId | undefined) {\n if (!card) return { has: false, text: '', rich_text: '', isTextEqualToRichText: false }\n\n const { isMC, isRepeat, isRespond, isShortAnswer } = checkTypePageActivity(card?.type)\n const hidePrompt = card?.hidePrompt === true\n\n const createReturnObject = (text: string | undefined, richText: string | undefined) => {\n const plainText = text || ''\n const richTextPlain = extractTextFromRichText(richText)\n\n return {\n has: true,\n text: plainText,\n rich_text: richText || '',\n isTextEqualToRichText: plainText.trim() === richTextPlain.trim(),\n }\n }\n\n if (isRepeat) {\n return createReturnObject(card?.target_text, card?.rich_text)\n }\n\n if (isRespond && !hidePrompt) {\n return createReturnObject(card?.prompt, card?.rich_text)\n }\n\n if (isMC) {\n return createReturnObject(card?.question, card?.rich_text)\n }\n\n if (isShortAnswer && !hidePrompt) {\n return createReturnObject(card?.prompt, card?.rich_text)\n }\n\n return {\n has: false,\n text: '',\n rich_text: '',\n isTextEqualToRichText: false,\n }\n}\n","import { type Score } from '@core/domains/assignment/assignment.model'\n\nexport const getTotalCompletedCards = (pageScores: Score['cards'] | undefined) => {\n return Object.values(pageScores ?? {}).reduce((acc, cardScore) => {\n if (\n (cardScore.completed ?? cardScore.score ?? cardScore.score === 0) &&\n !cardScore.media_area_opened\n ) {\n acc++\n }\n\n return acc\n }, 0)\n}\n","import { type ActivityPageType } from '../card.model'\n\nimport { checkTypePageActivity } from './check-page-type'\n\nconst labels = {\n repeat: {\n short: 'Repeat',\n long: 'Listen & Repeat',\n },\n mc: {\n short: 'Multiple Choice',\n long: 'Multiple Choice',\n },\n mediaPage: {\n short: 'Media Page',\n long: 'Media Page',\n },\n shortAnswer: {\n short: 'Short Answer',\n long: 'Short Answer',\n },\n respondWritten: {\n short: 'Open Response',\n long: 'Written Open Response',\n },\n respondAudio: {\n short: 'Open Response',\n long: 'Spoken Open Response',\n },\n}\n\nexport const getLabelPage = (pageType: ActivityPageType | undefined) => {\n if (!pageType) {\n return {\n short: '',\n long: '',\n }\n }\n\n const { isRepeat, isMC, isMediaPage, isShortAnswer, isRespondWritten, isRespondAudio } =\n checkTypePageActivity(pageType)\n\n if (isRepeat) {\n return labels.repeat\n }\n\n if (isMC) {\n return labels.mc\n }\n\n if (isMediaPage) {\n return labels.mediaPage\n }\n\n if (isShortAnswer) {\n return labels.shortAnswer\n }\n\n if (isRespondWritten) {\n return labels.respondWritten\n }\n\n if (isRespondAudio) {\n return labels.respondAudio\n }\n\n return {\n short: '',\n long: '',\n }\n}\n"],"mappings":"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","names":[]}
File without changes