touchstudy-core 0.1.150 → 0.1.152

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.
@@ -6532,26 +6532,23 @@ var formatDataMyAnswer = function formatDataMyAnswer(inputData, categories) {
6532
6532
  });
6533
6533
  return questionsByCategory;
6534
6534
  };
6535
- var formatTextbookDataMyAnswer = function formatTextbookDataMyAnswer(inputData, categories) {
6536
- var uniqueCategories = new Set();
6537
- var filterCategories = categories.filter(function (category) {
6538
- if (!uniqueCategories.has(category.name)) {
6539
- uniqueCategories.add(category.name);
6540
- return true;
6541
- }
6542
- return false;
6543
- });
6544
- var questionsByCategory = filterCategories.map(function (category) {
6535
+ var formatTextbookDataMyAnswer = function formatTextbookDataMyAnswer(inputData, questionGroupIds) {
6536
+ var questionsByCategories = questionGroupIds.map(function (questionGroupId) {
6537
+ var _questions$, _questions$$categorie, _questions$2, _questions$2$categori;
6538
+ var questions = inputData.studentQuestionResults.filter(function (question) {
6539
+ return question.questionGroupId === questionGroupId;
6540
+ });
6541
+ var category = questions === null || questions === void 0 ? void 0 : (_questions$ = questions[0]) === null || _questions$ === void 0 ? void 0 : (_questions$$categorie = _questions$.categories) === null || _questions$$categorie === void 0 ? void 0 : _questions$$categorie[0];
6542
+ var subcategory = !category ? null : questions === null || questions === void 0 ? void 0 : (_questions$2 = questions[0]) === null || _questions$2 === void 0 ? void 0 : (_questions$2$categori = _questions$2.categories) === null || _questions$2$categori === void 0 ? void 0 : _questions$2$categori.find(function (c) {
6543
+ return !!c.parentCategoryId && c.parentCategoryId === (category === null || category === void 0 ? void 0 : category.id);
6544
+ });
6545
6545
  return {
6546
- category: category,
6547
- questions: inputData.studentQuestionResults.filter(function (question) {
6548
- return !!question.categories.find(function (i) {
6549
- return i.name === category.name;
6550
- });
6551
- })
6546
+ categories: category && subcategory ? [category, subcategory] : category ? [category] : [],
6547
+ questions: questions,
6548
+ questionGroupId: questionGroupId
6552
6549
  };
6553
6550
  });
6554
- return questionsByCategory;
6551
+ return questionsByCategories;
6555
6552
  };
6556
6553
  var totalSolveTimeCategories = function totalSolveTimeCategories(inputData, categories) {
6557
6554
  var uniqueCategories = new Set();
@@ -18511,11 +18508,12 @@ var TimeOrderChart = function TimeOrderChart(_ref) {
18511
18508
  };
18512
18509
 
18513
18510
  var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18511
+ var _data$selectedAnswers, _data$textualAnswers, _data$selectedAnswers2, _data$textualAnswers2, _data$selectedAnswers3, _data$textualAnswers3;
18514
18512
  var data = _ref.data,
18515
18513
  nextData = _ref.nextData,
18516
18514
  isFirst = _ref.isFirst,
18517
18515
  isLast = _ref.isLast,
18518
- categoryId = _ref.categoryId,
18516
+ questionGroupId = _ref.questionGroupId,
18519
18517
  _ref$menuContextActio = _ref.menuContextActions,
18520
18518
  menuContextActions = _ref$menuContextActio === void 0 ? [] : _ref$menuContextActio,
18521
18519
  openContextMenu = _ref.openContextMenu,
@@ -18527,14 +18525,14 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18527
18525
  var isLearningSpace = getLearningSpace();
18528
18526
  var handleCloseContextMenu = function handleCloseContextMenu() {
18529
18527
  onCloseContextMenu === null || onCloseContextMenu === void 0 ? void 0 : onCloseContextMenu(_extends({}, data, {
18530
- id: ((data === null || data === void 0 ? void 0 : data.id) || 0) + categoryId
18528
+ id: ((data === null || data === void 0 ? void 0 : data.id) || 0) + questionGroupId
18531
18529
  }));
18532
18530
  };
18533
18531
  var handleMoreClick = function handleMoreClick(e) {
18534
18532
  e.preventDefault();
18535
18533
  e.stopPropagation();
18536
18534
  onOpenContextMenu === null || onOpenContextMenu === void 0 ? void 0 : onOpenContextMenu(_extends({}, data, {
18537
- id: ((data === null || data === void 0 ? void 0 : data.id) || 0) + categoryId
18535
+ id: ((data === null || data === void 0 ? void 0 : data.id) || 0) + questionGroupId
18538
18536
  }));
18539
18537
  };
18540
18538
  return React__default.createElement("div", {
@@ -18564,11 +18562,11 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18564
18562
  alignItems: "center",
18565
18563
  gap: "4px"
18566
18564
  }
18567
- }, data.isCorrect && data.selectedAnswers !== "" && React__default.createElement(Fragment$1, null, React__default.createElement(iconCorrectAnswer, null), React__default.createElement("span", {
18565
+ }, data.isCorrect && (!!((_data$selectedAnswers = data.selectedAnswers) !== null && _data$selectedAnswers !== void 0 && _data$selectedAnswers.length) || !!((_data$textualAnswers = data.textualAnswers) !== null && _data$textualAnswers !== void 0 && _data$textualAnswers.length)) && React__default.createElement(Fragment$1, null, React__default.createElement(iconCorrectAnswer, null), React__default.createElement("span", {
18568
18566
  className: styles$4["answerCorrect"]
18569
- }, t("correct"))), !data.isCorrect && data.selectedAnswers !== "" && React__default.createElement(Fragment$1, null, React__default.createElement(iconCorrectAnswer$1, null), React__default.createElement("span", {
18567
+ }, t("correct"))), !data.isCorrect && (!!((_data$selectedAnswers2 = data.selectedAnswers) !== null && _data$selectedAnswers2 !== void 0 && _data$selectedAnswers2.length) || !!((_data$textualAnswers2 = data.textualAnswers) !== null && _data$textualAnswers2 !== void 0 && _data$textualAnswers2.length)) && React__default.createElement(Fragment$1, null, React__default.createElement(iconCorrectAnswer$1, null), React__default.createElement("span", {
18570
18568
  className: styles$4["answerIncorrect"]
18571
- }, t("incorrect"))), data.selectedAnswers === "" && React__default.createElement(Fragment$1, null, React__default.createElement(iconNoGrass, null), React__default.createElement("span", {
18569
+ }, t("incorrect"))), !((_data$selectedAnswers3 = data.selectedAnswers) !== null && _data$selectedAnswers3 !== void 0 && _data$selectedAnswers3.length) && !((_data$textualAnswers3 = data.textualAnswers) !== null && _data$textualAnswers3 !== void 0 && _data$textualAnswers3.length) && React__default.createElement(Fragment$1, null, React__default.createElement(iconNoGrass, null), React__default.createElement("span", {
18572
18570
  className: styles$4["answerNograss"]
18573
18571
  }, t("no_solution")))), React__default.createElement("div", {
18574
18572
  className: styles["custom-col-2"],
@@ -18661,24 +18659,28 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18661
18659
 
18662
18660
  var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
18663
18661
  var data = _ref.data,
18664
- categories = _ref.categories,
18665
18662
  itemProps = _ref.itemProps,
18666
18663
  questionIdContextMenu = _ref.questionIdContextMenu,
18667
18664
  isStudent = _ref.isStudent;
18668
- var formattedData = formatTextbookDataMyAnswer(data, categories);
18665
+ var questionGroupIds = Array.from(new Set(data.studentQuestionResults.map(function (i) {
18666
+ return i.questionGroupId;
18667
+ }))).sort(function (a, b) {
18668
+ return a - b;
18669
+ });
18670
+ var formattedData = formatTextbookDataMyAnswer(data, questionGroupIds);
18669
18671
  var _useTranslation = useTranslation(),
18670
18672
  t = _useTranslation.t;
18671
- var renderAnswer = function renderAnswer(item, index, questions, categoryId) {
18673
+ var renderAnswer = function renderAnswer(item, index, questions, questionGroupId) {
18672
18674
  var nextItem = index < questions.length - 1 ? questions[index + 1] : undefined;
18673
18675
  var isLast = index === questions.length - 1;
18674
18676
  var isFirst = index === 0;
18675
- var isSelected = (item === null || item === void 0 ? void 0 : item.id) + categoryId === questionIdContextMenu;
18677
+ var isSelected = (item === null || item === void 0 ? void 0 : item.id) + questionGroupId === questionIdContextMenu;
18676
18678
  return React__default.createElement(TextbookAnswerItem, Object.assign({
18677
18679
  key: index
18678
18680
  }, itemProps, {
18679
18681
  openContextMenu: isSelected,
18680
18682
  data: item,
18681
- categoryId: categoryId,
18683
+ questionGroupId: questionGroupId,
18682
18684
  nextData: nextItem,
18683
18685
  isLast: isLast,
18684
18686
  isFirst: isFirst,
@@ -18688,8 +18690,9 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
18688
18690
  return React__default.createElement("div", {
18689
18691
  className: "" + styles$4["myanswer"]
18690
18692
  }, formattedData && formattedData.length > 0 && formattedData.map(function (item) {
18693
+ var _item$categories;
18691
18694
  return React__default.createElement("div", {
18692
- key: item.category.id
18695
+ key: item.questionGroupId
18693
18696
  }, React__default.createElement("div", {
18694
18697
  className: "" + printStyles["avoid-break-inside"]
18695
18698
  }, React__default.createElement(Stack, {
@@ -18787,12 +18790,14 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
18787
18790
  fontSize: "12px",
18788
18791
  fontWeight: 700
18789
18792
  }
18790
- }, item.category.name))), React__default.createElement("div", {
18793
+ }, (_item$categories = item.categories) === null || _item$categories === void 0 ? void 0 : _item$categories.map(function (i) {
18794
+ return i.name;
18795
+ }).join(" / ")))), React__default.createElement("div", {
18791
18796
  className: styles$4["contentMyAnswer"]
18792
18797
  }, React__default.createElement(ListView, {
18793
18798
  data: item.questions,
18794
18799
  render: function render(question, index) {
18795
- return renderAnswer(question, index, item.questions, item.category.id);
18800
+ return renderAnswer(question, index, item.questions, item.questionGroupId);
18796
18801
  }
18797
18802
  })));
18798
18803
  }));
@@ -18952,11 +18957,30 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
18952
18957
  var isOpen = openProblem === keyOpen;
18953
18958
  var incorrectQuestions = useMemo(function () {
18954
18959
  return data === null || data === void 0 ? void 0 : data.studentQuestionResults.filter(function (i) {
18955
- return i.selectedAnswers !== "" && i.isCorrect === false && i.isStar === false && i.overallCorrectRate >= correctRateThreshHold$1;
18960
+ var _i$selectedAnswers, _i$textualAnswers;
18961
+ return (((_i$selectedAnswers = i.selectedAnswers) === null || _i$selectedAnswers === void 0 ? void 0 : _i$selectedAnswers.length) || ((_i$textualAnswers = i.textualAnswers) === null || _i$textualAnswers === void 0 ? void 0 : _i$textualAnswers.length)) && i.isCorrect === false && i.isStar === false && i.overallCorrectRate >= correctRateThreshHold$1;
18956
18962
  }).sort(function (q1, q2) {
18957
18963
  return q2.overallCorrectRate === q1.overallCorrectRate ? q1.questionOrder - q2.questionOrder : q2.overallCorrectRate - q1.overallCorrectRate;
18958
18964
  }).slice(0, limitQuestions$1);
18959
18965
  }, [JSON.stringify(data === null || data === void 0 ? void 0 : data.studentQuestionResults)]);
18966
+ var renderTextbookAnswer = function renderTextbookAnswer(type, answers, textualAnswers, isCorrect) {
18967
+ var _textualAnswers$;
18968
+ switch (type) {
18969
+ case QuestionAnswerType.ShortAnswer:
18970
+ case QuestionAnswerType.SynonymProcessing:
18971
+ return isCorrect ? textualAnswers === null || textualAnswers === void 0 ? void 0 : textualAnswers.join(" | ") : (_textualAnswers$ = textualAnswers === null || textualAnswers === void 0 ? void 0 : textualAnswers[0]) != null ? _textualAnswers$ : "";
18972
+ case QuestionAnswerType.SingleChoice:
18973
+ case QuestionAnswerType.MultipleChoice:
18974
+ if (!(answers !== null && answers !== void 0 && answers.length)) return "";
18975
+ return answers.map(function (i) {
18976
+ return t("number_question", {
18977
+ number: i
18978
+ });
18979
+ }).join(",");
18980
+ default:
18981
+ return textualAnswers === null || textualAnswers === void 0 ? void 0 : textualAnswers.join(", ");
18982
+ }
18983
+ };
18960
18984
  var renderAnswer = function renderAnswer(type, content) {
18961
18985
  var _content$split, _content$split$map;
18962
18986
  if (!content) return "";
@@ -19013,12 +19037,12 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19013
19037
  fontSize: "13px",
19014
19038
  fontWeight: 500
19015
19039
  }
19016
- }, renderAnswer(item === null || item === void 0 ? void 0 : item.questionAnswerType, item === null || item === void 0 ? void 0 : item.selectedAnswers)), React__default.createElement("td", {
19040
+ }, typeof item.selectedAnswers === "string" ? renderAnswer(item.questionAnswerType, item.selectedAnswers) : renderTextbookAnswer(item.questionAnswerType, item.selectedAnswers, item.textualAnswers)), React__default.createElement("td", {
19017
19041
  style: {
19018
19042
  textAlign: "center",
19019
19043
  color: styles$4.gray_700
19020
19044
  }
19021
- }, renderAnswer(item === null || item === void 0 ? void 0 : item.questionAnswerType, item === null || item === void 0 ? void 0 : item.correctAnswers)), React__default.createElement("td", {
19045
+ }, typeof item.correctAnswers === "string" ? renderAnswer(item.questionAnswerType, item.correctAnswers) : renderTextbookAnswer(item.questionAnswerType, item.correctAnswers, item.correctTextualAnswers, true)), React__default.createElement("td", {
19022
19046
  style: {
19023
19047
  textAlign: "center",
19024
19048
  color: styles$4.gray_700
@@ -19030,7 +19054,6 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19030
19054
  };
19031
19055
  var renderQuestions = function renderQuestions(questions) {
19032
19056
  return questions.map(function (question) {
19033
- var _question$selectedAns, _question$selectedAns2, _question$selectedAns3, _question$correctAnsw, _question$correctAnsw2, _question$correctAnsw3;
19034
19057
  return React__default.createElement(Grid, {
19035
19058
  container: true,
19036
19059
  flexWrap: "nowrap",
@@ -19057,29 +19080,9 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19057
19080
  className: styles$4["span2"]
19058
19081
  }, t("my_wrong_answer"))), React__default.createElement("div", null, React__default.createElement("span", {
19059
19082
  className: styles$4["overallCorrectRate"]
19060
- }, question.overallCorrectRate.toFixed(2), "%"), (question === null || question === void 0 ? void 0 : question.questionAnswerType) === QuestionAnswerType.ShortAnswer ? React__default.createElement("span", {
19061
- className: styles$4["answer"]
19062
- }, React__default.createElement(MathJaxContainer, {
19063
- content: question === null || question === void 0 ? void 0 : question.selectedAnswers
19064
- }), " ", React__default.createElement(MathJaxContainer, {
19065
- content: question === null || question === void 0 ? void 0 : question.correctAnswers
19066
- })) : QuestionAnswerType.MultipleChoice ? React__default.createElement("span", {
19067
- className: styles$4["answer"]
19068
- }, (_question$selectedAns = question.selectedAnswers) === null || _question$selectedAns === void 0 ? void 0 : (_question$selectedAns2 = _question$selectedAns.split("|")) === null || _question$selectedAns2 === void 0 ? void 0 : (_question$selectedAns3 = _question$selectedAns2.map(function (i) {
19069
- return t("number_question", {
19070
- number: i
19071
- });
19072
- })) === null || _question$selectedAns3 === void 0 ? void 0 : _question$selectedAns3.join(","), " ", "(", t("answer"), " ", (_question$correctAnsw = question.correctAnswers) === null || _question$correctAnsw === void 0 ? void 0 : (_question$correctAnsw2 = _question$correctAnsw.split("|")) === null || _question$correctAnsw2 === void 0 ? void 0 : (_question$correctAnsw3 = _question$correctAnsw2.map(function (i) {
19073
- return t("number_question", {
19074
- number: i
19075
- });
19076
- })) === null || _question$correctAnsw3 === void 0 ? void 0 : _question$correctAnsw3.join(","), ")", " ") : React__default.createElement("span", {
19083
+ }, question.overallCorrectRate.toFixed(2), "%"), React__default.createElement("span", {
19077
19084
  className: styles$4["answer"]
19078
- }, t("number_question", {
19079
- number: question.selectedAnswers
19080
- }), " ", "(", t("answer"), " ", t("number_question", {
19081
- number: question.correctAnswers
19082
- }), ")"))));
19085
+ }, typeof question.selectedAnswers === "string" ? renderAnswer(question.questionAnswerType, question.selectedAnswers) : renderTextbookAnswer(question.questionAnswerType, question.selectedAnswers, question.textualAnswers), " ", t("answer"), " ", typeof question.correctAnswers === "string" ? renderAnswer(question.questionAnswerType, question.correctAnswers) : renderTextbookAnswer(question.questionAnswerType, question.correctAnswers, question.correctTextualAnswers, true)))));
19083
19086
  });
19084
19087
  };
19085
19088
  var handleToggle = function handleToggle() {
@@ -20906,7 +20909,6 @@ var ExamResultV2 = function ExamResultV2(props) {
20906
20909
  index: 0
20907
20910
  }, chapterId ? textbookResult && React__default.createElement(TextbookMyAnswer, {
20908
20911
  data: textbookResult,
20909
- categories: categoryResponses,
20910
20912
  isStudent: isStudent,
20911
20913
  questionIdContextMenu: questionIdContextMenu,
20912
20914
  itemProps: questionItemProp