@tinyweb_dev/oe-exam-sdk 0.2.14 → 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/README.md +12 -0
- package/dist/api/exam-questions.d.ts +1 -1
- package/dist/api/exam-questions.js +39 -1
- package/dist/api/exam-questions.types.d.ts +28 -0
- package/dist/api/exam-taking.types.d.ts +1 -0
- package/dist/components/exams/ExamCreator.d.ts +7 -1
- package/dist/components/exams/ExamCreator.js +57 -21
- package/dist/components/exams/ExamPreviewDialog.js +4 -2
- package/dist/components/exams/ExamQuestionsPageContainer.d.ts +5 -0
- package/dist/components/exams/ExamQuestionsPageContainer.js +2 -2
- package/dist/components/exams/api.d.ts +1 -1
- package/dist/components/exams/index.d.ts +1 -1
- package/dist/components/exams/take/components/QuestionRenderer.d.ts +6 -1
- package/dist/components/exams/take/components/QuestionRenderer.js +4 -4
- package/dist/components/exams/take/components/question-renderers/MoversListenAndWriteRenderer.d.ts +3 -1
- package/dist/components/exams/take/components/question-renderers/MoversListenAndWriteRenderer.js +5 -2
- package/dist/components/exams/take/components/question-renderers/MoversWordFillStructuredFormRenderer.d.ts +7 -1
- package/dist/components/exams/take/components/question-renderers/MoversWordFillStructuredFormRenderer.js +18 -9
- package/dist/components/exams/take/exam-taking.utils.d.ts +1 -0
- package/dist/components/exams/take/exam-taking.utils.js +1 -0
- package/dist/components/exams/take/index.d.ts +6 -0
- package/dist/components/exams/take/index.js +5 -0
- package/dist/components/exams/take/utils/question-transformers.d.ts +9 -1
- package/dist/components/exams/take/utils/question-transformers.js +68 -4
- package/dist/components/questions/_shared/hooks/useBasicQuestionGroup.d.ts +6 -2
- package/dist/components/questions/_shared/hooks/useBasicQuestionGroup.js +26 -5
- package/dist/components/questions/_shared/types/fill-in-blank.type.d.ts +9 -0
- package/dist/components/questions/_shared/types/question-group.type.d.ts +11 -0
- package/dist/components/questions/_shared/types/question-group.type.js +4 -1
- package/dist/components/questions/_shared/types/spontaneous-qa.type.d.ts +7 -0
- package/dist/components/questions/groups/ImageLabelGroupCard.d.ts +15 -0
- package/dist/components/questions/groups/ImageLabelGroupCard.js +42 -0
- package/dist/components/questions/groups/ImageLabelWordBank.d.ts +10 -0
- package/dist/components/questions/groups/ImageLabelWordBank.js +17 -0
- package/dist/components/questions/question-bank/QuestionBankPickerDialog.d.ts +45 -0
- package/dist/components/questions/question-bank/QuestionBankPickerDialog.js +209 -0
- package/dist/components/questions/question-bank/QuestionBankPickerRow.d.ts +9 -0
- package/dist/components/questions/question-bank/QuestionBankPickerRow.js +20 -0
- package/dist/components/questions/question-bank/index.d.ts +1 -0
- package/dist/components/questions/question-bank/index.js +1 -0
- package/dist/components/questions/question-bank/question-bank-picker.utils.d.ts +55 -0
- package/dist/components/questions/question-bank/question-bank-picker.utils.js +408 -0
- package/dist/components/questions/types/choose-the-correct-answer/ChooseTheCorrectAnswerClient.js +1 -2
- package/dist/components/questions/types/choose-the-correct-answer/ChooseTheCorrectAnswerCreator.js +33 -9
- package/dist/components/questions/types/fill-in-blank/FillInBlankClient.js +6 -2
- package/dist/components/questions/types/fill-in-blank/FillInBlankCreator.js +28 -5
- package/dist/components/questions/types/fill-in-blank/register.js +5 -0
- package/dist/components/questions/types/fill-in-blank/transform.js +4 -1
- package/dist/components/questions/types/speaking-cue-card/SpeakingCueCardClient.d.ts +11 -0
- package/dist/components/questions/types/speaking-cue-card/SpeakingCueCardClient.js +27 -0
- package/dist/components/questions/types/spontaneous-qa/SpontaneousQAClient.d.ts +2 -0
- package/dist/components/questions/types/spontaneous-qa/SpontaneousQAClient.js +15 -0
- package/dist/components/questions/types/spontaneous-qa/map-spontaneous-qa-data.d.ts +2 -0
- package/dist/components/questions/types/spontaneous-qa/map-spontaneous-qa-data.js +33 -0
- package/dist/components/questions/types/word-fill-structured-form/map-wfsf-question-data.js +8 -1
- package/dist/components/questions/types/word-fill-structured-form/transform.js +4 -0
- package/dist/components/questions/types/word-ordering/WordOrderingClient.js +51 -33
- package/dist/components/questions/viewer/QuestionViewer.js +12 -1
- package/dist/components/results/renderers/ReviewListenAndWriteRenderer.d.ts +3 -1
- package/dist/components/results/renderers/ReviewListenAndWriteRenderer.js +4 -2
- package/dist/components/results/renderers/review-question-body-dedicated.js +2 -2
- package/dist/components/themes/english-certification/EnglishCertificationQuestionRenderer.js +8 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +2 -1
- package/dist/shared/constants/ApiConstant.d.ts +1 -0
- package/dist/shared/constants/ApiConstant.js +1 -0
- package/dist/shared/lib/rich-text.d.ts +4 -0
- package/dist/shared/lib/rich-text.js +25 -0
- package/dist/shared/lib/stores/examQuestionStore.d.ts +4 -0
- package/dist/shared/lib/utils/question-transform-types.d.ts +4 -0
- package/dist/shared/lib/utils/question-transform.js +1 -1
- package/package.json +1 -1
|
@@ -22,3 +22,28 @@ export function richTextToPlainText(value) {
|
|
|
22
22
|
export function isRichTextEmpty(value) {
|
|
23
23
|
return richTextToPlainText(value) === '';
|
|
24
24
|
}
|
|
25
|
+
const SIMPLE_WRAPPER_TAG_RE = /<\/?(?:p|br)\s*\/?>/gi;
|
|
26
|
+
/** True when HTML has marks/blocks beyond a plain paragraph (bold, list, table, …). */
|
|
27
|
+
export function hasRichTextFormatting(value) {
|
|
28
|
+
if (!value)
|
|
29
|
+
return false;
|
|
30
|
+
return /<[^>]+>/.test(value.replace(SIMPLE_WRAPPER_TAG_RE, ''));
|
|
31
|
+
}
|
|
32
|
+
/** Show stored TipTap HTML as editable plain text without collapsing line breaks. */
|
|
33
|
+
export function htmlToPlainEditorText(value) {
|
|
34
|
+
if (!value)
|
|
35
|
+
return '';
|
|
36
|
+
if (!/<[a-z][\s\S]*>/i.test(value))
|
|
37
|
+
return value;
|
|
38
|
+
return value
|
|
39
|
+
.replace(/<br\s*\/?>/gi, '\n')
|
|
40
|
+
.replace(/<\/p>\s*<p>/gi, '\n')
|
|
41
|
+
.replace(HTML_TAG_RE, '')
|
|
42
|
+
.replace(/ |&|<|>|"|'/gi, (entity) => {
|
|
43
|
+
return HTML_ENTITIES[entity.toLowerCase()] ?? entity;
|
|
44
|
+
})
|
|
45
|
+
.replace(/\u00a0/g, ' ')
|
|
46
|
+
.replace(/[ \t]+\n/g, '\n')
|
|
47
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
48
|
+
.trim();
|
|
49
|
+
}
|
|
@@ -175,7 +175,7 @@ function resolveQuestionGroupPayload(sources) {
|
|
|
175
175
|
return passageData;
|
|
176
176
|
if (imageData)
|
|
177
177
|
return imageData;
|
|
178
|
-
if (basicGroupData && (basicGroupData.title || basicGroupData.subtitle || basicGroupData.content || basicGroupData.imageUrl || basicGroupData.articles)) {
|
|
178
|
+
if (basicGroupData && (basicGroupData.title || basicGroupData.subtitle || basicGroupData.content || basicGroupData.imageUrl || basicGroupData.articles || (basicGroupData.imageLabels && basicGroupData.imageLabels.length > 0))) {
|
|
179
179
|
return basicGroupData;
|
|
180
180
|
}
|
|
181
181
|
if (sceneData)
|