@quesmed/types-rn 2.6.217 → 2.6.219
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/package.json
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TOGGLE_STRIKE_OPTIONS = exports.optimisticEndMarksheet = exports.updateCacheOnEndMarksheet = exports.END_MARKSHEET = exports.LEAVE_MARKSHEET = exports.MODIFY_CURRENT_MARKSHEET_MARK = exports.MODIFY_MARKSHEET_MARK_QUESTIONCHOICEID = exports.MODIFY_MARKSHEET_MARK_STRIKED = exports.MODIFY_MARKSHEET_MARK = exports.MODIFY_MARKSHEET_STATE = exports.MODIFY_TOPIC_SELECTION = exports.MODIFY_BUILDER_CONFIG = exports.MODIFY_MARKSHEET = exports.optimisticModifyMarksheetBuilderConfig = exports.START_OR_JOIN_MARKSHEET = exports.optimisticRemoveFlaggedQuestion = exports.updateCacheRemoveFlaggedQuestion = exports.optimisticAddFlaggedQuestion = exports.updateCacheAddFlaggedQuestion = exports.REMOVE_FLAGGED_QUESTION = exports.ADD_FLAGGED_QUESTION = exports.optimisticSaveMarksheets = exports.updateMarksheets = exports.SAVE_MARKSHEET = exports.QUICK_BUILD_MARKSHEET = exports.RE_BUILD_MARKSHEET = exports.BUILD_UCAT_MARKSHEET = exports.BUILD_MARKSHEET = exports.BUILD_QUESTION_MARKSHEET = void 0;
|
|
4
4
|
const client_1 = require("@apollo/client");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
5
6
|
const marksheet_1 = require("../../fragments/marksheet");
|
|
6
7
|
const restricted_1 = require("../../query/restricted");
|
|
7
8
|
exports.BUILD_QUESTION_MARKSHEET = (0, client_1.gql) `
|
|
@@ -94,7 +95,7 @@ const updateMarksheets = (cache, result, options) => {
|
|
|
94
95
|
const { input } = variables;
|
|
95
96
|
for (let i = 0; i < input.length; i++) {
|
|
96
97
|
const inputData = input[i];
|
|
97
|
-
const savedMarks = saveMarksheets.find((m) => m.id === inputData.marksheetId)?.marks;
|
|
98
|
+
const savedMarks = saveMarksheets.find((m) => Number(m.id) === Number(inputData.marksheetId))?.marks;
|
|
98
99
|
const savedData = savedMarks?.find((m) => m.id === inputData.markId);
|
|
99
100
|
cache.writeFragment({
|
|
100
101
|
id: cache.identify({
|
|
@@ -119,8 +120,26 @@ const updateMarksheets = (cache, result, options) => {
|
|
|
119
120
|
};
|
|
120
121
|
exports.updateMarksheets = updateMarksheets;
|
|
121
122
|
const optimisticSaveMarksheets = (marksheet, marksheetInput, questionIndex) => {
|
|
122
|
-
const { timeTaken, choiceId, mark, marksheetId } = marksheetInput;
|
|
123
|
+
const { timeTaken, choiceId, mark, marksheetId, markId } = marksheetInput;
|
|
123
124
|
const { marks = [], ...rest } = marksheet || {};
|
|
125
|
+
const currentMark = marks.find((m) => Number(m.id) === Number(markId));
|
|
126
|
+
if (!currentMark) {
|
|
127
|
+
return {
|
|
128
|
+
restricted: {
|
|
129
|
+
saveMarksheets: [{ ...rest, marks }],
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
const { psaSectionId, choices, typeId } = currentMark.question;
|
|
134
|
+
const { answerField } = (0, utils_1.getQuestionInfo)(typeId, psaSectionId);
|
|
135
|
+
const answer = currentMark.question[answerField];
|
|
136
|
+
const { result, score } = (0, utils_1.evaluateMark)({
|
|
137
|
+
mark: mark || '',
|
|
138
|
+
answer,
|
|
139
|
+
psaSectionId,
|
|
140
|
+
questionTypeId: typeId,
|
|
141
|
+
choices,
|
|
142
|
+
});
|
|
124
143
|
const updatedMark = {
|
|
125
144
|
...marks[questionIndex],
|
|
126
145
|
marksheetId,
|
|
@@ -128,8 +147,8 @@ const optimisticSaveMarksheets = (marksheet, marksheetInput, questionIndex) => {
|
|
|
128
147
|
questionChoiceId: choiceId ?? null,
|
|
129
148
|
isAnswered: true,
|
|
130
149
|
mark: mark || null,
|
|
131
|
-
result
|
|
132
|
-
score
|
|
150
|
+
result,
|
|
151
|
+
score,
|
|
133
152
|
};
|
|
134
153
|
const updatedMarks = [
|
|
135
154
|
...marks.slice(0, questionIndex),
|
package/utils/evaluateMark.d.ts
CHANGED
|
@@ -4,7 +4,11 @@ export interface IEvaluateMarkData {
|
|
|
4
4
|
result: EMarkResult;
|
|
5
5
|
maxScore: number;
|
|
6
6
|
}
|
|
7
|
-
export
|
|
7
|
+
export type IQuestionInfo = {
|
|
8
|
+
maxScore: number;
|
|
9
|
+
answerField: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function getQuestionInfo(questionType: EQuestionType, psaSectionId: number | null): IQuestionInfo;
|
|
8
12
|
export declare function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, }: {
|
|
9
13
|
mark: IMarksheetMarkJSONB;
|
|
10
14
|
answer: IQuestionAnswer;
|
package/utils/evaluateMark.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.evaluateMark = exports.
|
|
3
|
+
exports.evaluateMark = exports.getQuestionInfo = void 0;
|
|
4
4
|
const models_1 = require("../models");
|
|
5
5
|
function isPrescribeAnswer(data) {
|
|
6
6
|
return Object(data).hasOwnProperty('dose');
|
|
@@ -44,51 +44,51 @@ function deepParse(data) {
|
|
|
44
44
|
}
|
|
45
45
|
return parsed;
|
|
46
46
|
}
|
|
47
|
-
function
|
|
47
|
+
function getQuestionInfo(questionType, psaSectionId) {
|
|
48
48
|
switch (questionType) {
|
|
49
49
|
case models_1.EQuestionType.SINGLE_BEST_ANSWER:
|
|
50
50
|
if (psaSectionId) {
|
|
51
|
-
return 2;
|
|
51
|
+
return { maxScore: 2, answerField: 'sbaAnswer' };
|
|
52
52
|
}
|
|
53
|
-
return 1;
|
|
53
|
+
return { maxScore: 1, answerField: 'sbaAnswer' };
|
|
54
54
|
case models_1.EQuestionType.QUESTION_ANSWER:
|
|
55
55
|
if (psaSectionId) {
|
|
56
|
-
return 2;
|
|
56
|
+
return { maxScore: 2, answerField: 'qaAnswer' };
|
|
57
57
|
}
|
|
58
|
-
return 1;
|
|
58
|
+
return { maxScore: 1, answerField: 'qaAnswer' };
|
|
59
59
|
case models_1.EQuestionType.MULTIPLE_ANSWERS:
|
|
60
|
-
return 4;
|
|
60
|
+
return { maxScore: 4, answerField: 'multiAnswer' };
|
|
61
61
|
case models_1.EQuestionType.PRESCRIPTION_ANSWER:
|
|
62
|
-
return 10;
|
|
62
|
+
return { maxScore: 10, answerField: 'prescribeAnswer' };
|
|
63
63
|
case models_1.EQuestionType.EXTENDED_MATCHING_ANSWER:
|
|
64
|
-
return 1;
|
|
64
|
+
return { maxScore: 1, answerField: 'emqAnswer' };
|
|
65
65
|
case models_1.EQuestionType.SELECT_THREE_ANSWER:
|
|
66
|
-
return 1;
|
|
66
|
+
return { maxScore: 1, answerField: 'select3Answer' };
|
|
67
67
|
case models_1.EQuestionType.RANKING_ANSWER:
|
|
68
|
-
return 1;
|
|
68
|
+
return { maxScore: 1, answerField: 'rankingAnswer' };
|
|
69
69
|
case models_1.EQuestionType.SBA_WITH_MULTIPLE_CHOICES:
|
|
70
|
-
return 1;
|
|
70
|
+
return { maxScore: 1, answerField: 'sbaAnswer' };
|
|
71
71
|
case models_1.EQuestionType.VERBAL_VERACITY:
|
|
72
|
-
return 1;
|
|
72
|
+
return { maxScore: 1, answerField: 'sbaAnswer' };
|
|
73
73
|
case models_1.EQuestionType.VERBAL_READING_COMPREHENSION:
|
|
74
|
-
return 1;
|
|
74
|
+
return { maxScore: 1, answerField: 'sbaAnswer' };
|
|
75
75
|
case models_1.EQuestionType.QUANTITATIVE_REASONING_SBA:
|
|
76
|
-
return 1;
|
|
76
|
+
return { maxScore: 1, answerField: 'sbaAnswer' };
|
|
77
77
|
case models_1.EQuestionType.DECISION_MAKING_SBA:
|
|
78
|
-
return 1;
|
|
78
|
+
return { maxScore: 1, answerField: 'sbaAnswer' };
|
|
79
79
|
case models_1.EQuestionType.DECISION_MAKING_YES_NO:
|
|
80
|
-
return 2;
|
|
80
|
+
return { maxScore: 2, answerField: 'multiAnswer' };
|
|
81
81
|
case models_1.EQuestionType.SJT_SINGLE_CHOICE:
|
|
82
|
-
return 1;
|
|
82
|
+
return { maxScore: 1, answerField: 'sbaAnswer' };
|
|
83
83
|
case models_1.EQuestionType.SJT_TWO_ANSWERS:
|
|
84
|
-
return 1;
|
|
84
|
+
return { maxScore: 1, answerField: 'rankingAnswer' };
|
|
85
85
|
default:
|
|
86
|
-
return 1;
|
|
86
|
+
return { maxScore: 1, answerField: 'answer' };
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
exports.
|
|
89
|
+
exports.getQuestionInfo = getQuestionInfo;
|
|
90
90
|
function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, }) {
|
|
91
|
-
const maxScore =
|
|
91
|
+
const { maxScore } = getQuestionInfo(questionTypeId, psaSectionId);
|
|
92
92
|
const data = {
|
|
93
93
|
score: 0,
|
|
94
94
|
result: models_1.EMarkResult.Incorrect,
|