@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.
- package/dist/analytics.js +329 -25
- package/dist/analytics.js.map +1 -1
- package/dist/index.native.d.mts +2836 -0
- package/dist/index.native.d.ts +2272 -27
- package/dist/index.native.js +2995 -166
- package/dist/index.native.js.map +1 -1
- package/dist/index.native.mjs +3322 -0
- package/dist/index.native.mjs.map +1 -0
- package/dist/index.web.d.mts +2836 -0
- package/dist/index.web.js +3244 -12
- package/dist/index.web.js.map +1 -1
- package/package.json +10 -61
- package/dist/assignment.constants-BIKM6fYi.d.ts +0 -32
- package/dist/assignment.model-DLMWAp0Y.d.ts +0 -301
- package/dist/card.constants-DhKFipX3.d.ts +0 -54
- package/dist/chunk-233VJDUF.js +0 -149
- package/dist/chunk-233VJDUF.js.map +0 -1
- package/dist/chunk-2CRI5MJP.js +0 -225
- package/dist/chunk-2CRI5MJP.js.map +0 -1
- package/dist/chunk-AWVUNWML.js +0 -141
- package/dist/chunk-AWVUNWML.js.map +0 -1
- package/dist/chunk-CJ5JXKII.js +0 -129
- package/dist/chunk-CJ5JXKII.js.map +0 -1
- package/dist/chunk-EEBMPASA.js +0 -21
- package/dist/chunk-EEBMPASA.js.map +0 -1
- package/dist/chunk-H5XNOXRC.js +0 -11
- package/dist/chunk-H5XNOXRC.js.map +0 -1
- package/dist/chunk-LZG3MTSH.js +0 -53
- package/dist/chunk-LZG3MTSH.js.map +0 -1
- package/dist/chunk-OLSTHM2U.js +0 -154
- package/dist/chunk-OLSTHM2U.js.map +0 -1
- package/dist/chunk-TQGDTKTE.js +0 -13
- package/dist/chunk-TQGDTKTE.js.map +0 -1
- package/dist/chunk-YKUMIPSO.js +0 -212
- package/dist/chunk-YKUMIPSO.js.map +0 -1
- package/dist/chunk-YMJRCINF.js +0 -68
- package/dist/chunk-YMJRCINF.js.map +0 -1
- package/dist/chunk-YO34TZYN.js +0 -28
- package/dist/chunk-YO34TZYN.js.map +0 -1
- package/dist/const.d.ts +0 -331
- package/dist/const.js +0 -193
- package/dist/const.js.map +0 -1
- package/dist/hooks.d.ts +0 -294
- package/dist/hooks.js +0 -1015
- package/dist/hooks.js.map +0 -1
- package/dist/index.web.d.ts +0 -405
- package/dist/models.d.ts +0 -56
- package/dist/models.js +0 -17
- package/dist/models.js.map +0 -1
- package/dist/notification.constants-Da4-_0kX.d.ts +0 -21
- package/dist/repos.d.ts +0 -209
- package/dist/repos.js +0 -26
- package/dist/repos.js.map +0 -1
- package/dist/utils.d.ts +0 -39
- package/dist/utils.js +0 -180
- package/dist/utils.js.map +0 -1
- /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(/ /g, " ").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/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(/ /g, ' ')\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/"/g, '\"')\n .replace(/'/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
|