@elice/material-quiz 1.240718.0-trasncript.2 → 1.240718.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 (127) hide show
  1. package/cjs/components/eb-sortable/EbDraggable.js +33 -42
  2. package/cjs/components/eb-sortable/EbDroppable.js +20 -27
  3. package/cjs/components/markdown-editor/index.d.ts +2 -1
  4. package/cjs/components/markdown-editor/index.js +10 -19
  5. package/cjs/components/material-quiz/MaterialQuiz.js +83 -114
  6. package/cjs/components/material-quiz/MaterialQuizAnswerExplanation.js +29 -36
  7. package/cjs/components/material-quiz/MaterialQuizInfo.js +149 -151
  8. package/cjs/components/material-quiz/MaterialQuizSelectMultiple.js +127 -175
  9. package/cjs/components/material-quiz/MaterialQuizSelectMultipleOrder.js +286 -360
  10. package/cjs/components/material-quiz/MaterialQuizSelectOne.js +126 -172
  11. package/cjs/components/material-quiz/MaterialQuizShimmer.js +39 -46
  12. package/cjs/components/material-quiz/MaterialQuizText.js +115 -163
  13. package/cjs/components/material-quiz/QuizResultBadge.js +22 -32
  14. package/cjs/components/material-quiz/QuizSubmitStatusText.js +16 -21
  15. package/cjs/components/material-quiz/constants/color.js +5 -5
  16. package/cjs/components/material-quiz/context/MaterialQuizContext.d.ts +1 -1
  17. package/cjs/components/material-quiz/context/MaterialQuizContext.js +93 -156
  18. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +161 -259
  19. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.js +100 -134
  20. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.js +101 -130
  21. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupOptionItem.js +52 -64
  22. package/cjs/components/material-quiz/material-quiz-group/context/context.js +1 -5
  23. package/cjs/components/material-quiz-edit/MaterialQuizEdit.js +36 -47
  24. package/cjs/components/material-quiz-edit/MaterialQuizEditContent.js +232 -280
  25. package/cjs/components/material-quiz-edit/context.js +2 -8
  26. package/cjs/components/material-quiz-edit/options/OptionEditor.js +46 -70
  27. package/cjs/components/material-quiz-edit/options/OptionSelectMultiple.js +148 -174
  28. package/cjs/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +149 -175
  29. package/cjs/components/material-quiz-edit/options/OptionSelectOne.js +144 -164
  30. package/cjs/components/material-quiz-edit/options/OptionText.js +82 -90
  31. package/cjs/components/material-quiz-edit/options/options-group/OptionGroup.js +8 -9
  32. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerInfo.js +112 -156
  33. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +196 -288
  34. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupGroupInfo.js +75 -88
  35. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupGroupListItem.js +92 -108
  36. package/cjs/components/material-quiz-edit/utils/checkTwoDimensionArray.js +1 -5
  37. package/cjs/components/material-quiz-edit/utils/editValue.js +12 -21
  38. package/cjs/components/shared/QuestionBox.js +165 -198
  39. package/cjs/components/shared/QuizDraggbleDroppedOption.js +12 -11
  40. package/cjs/components/shared/QuizDraggbleDummyOption.js +16 -23
  41. package/cjs/components/shared/QuizDraggbleOption.js +59 -65
  42. package/cjs/components/shared/StyledMarkdown.js +1 -5
  43. package/cjs/components/shared/question-checkbox/QuestionCheckbox.js +7 -13
  44. package/cjs/components/shared/question-checkbox/QuestionCheckboxContext.d.ts +1 -1
  45. package/cjs/components/shared/question-checkbox/QuestionCheckboxContext.js +17 -24
  46. package/cjs/components/shared/question-checkbox/QuestionCheckboxOption.js +68 -59
  47. package/cjs/components/shared/question-radio/QuestionRadio.js +7 -13
  48. package/cjs/components/shared/question-radio/QuestionRadioContext.d.ts +1 -1
  49. package/cjs/components/shared/question-radio/QuestionRadioContext.js +17 -24
  50. package/cjs/components/shared/question-radio/QuestionRadioOption.js +59 -52
  51. package/cjs/components/shared/utils/getQuestionStatusStyle.js +9 -7
  52. package/cjs/components/shared/utils/mergeRefs.js +6 -15
  53. package/cjs/constant/element.js +3 -3
  54. package/cjs/helpers/index.js +10 -8
  55. package/cjs/hooks/useCaculatePassage.js +20 -21
  56. package/es/components/eb-sortable/EbDraggable.js +33 -37
  57. package/es/components/eb-sortable/EbDroppable.js +20 -22
  58. package/es/components/markdown-editor/index.d.ts +2 -1
  59. package/es/components/markdown-editor/index.js +10 -15
  60. package/es/components/material-quiz/MaterialQuiz.js +83 -109
  61. package/es/components/material-quiz/MaterialQuizAnswerExplanation.js +29 -32
  62. package/es/components/material-quiz/MaterialQuizInfo.js +150 -148
  63. package/es/components/material-quiz/MaterialQuizSelectMultiple.js +127 -171
  64. package/es/components/material-quiz/MaterialQuizSelectMultipleOrder.js +287 -356
  65. package/es/components/material-quiz/MaterialQuizSelectOne.js +126 -168
  66. package/es/components/material-quiz/MaterialQuizShimmer.js +39 -42
  67. package/es/components/material-quiz/MaterialQuizText.js +115 -158
  68. package/es/components/material-quiz/QuizResultBadge.js +22 -27
  69. package/es/components/material-quiz/QuizSubmitStatusText.js +16 -17
  70. package/es/components/material-quiz/constants/color.js +5 -5
  71. package/es/components/material-quiz/context/MaterialQuizContext.d.ts +1 -1
  72. package/es/components/material-quiz/context/MaterialQuizContext.js +94 -153
  73. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +161 -253
  74. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.js +100 -129
  75. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.js +101 -125
  76. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupOptionItem.js +52 -60
  77. package/es/components/material-quiz/material-quiz-group/context/context.js +1 -1
  78. package/es/components/material-quiz-edit/MaterialQuizEdit.js +36 -43
  79. package/es/components/material-quiz-edit/MaterialQuizEditContent.js +229 -272
  80. package/es/components/material-quiz-edit/context.js +2 -4
  81. package/es/components/material-quiz-edit/options/OptionEditor.js +46 -64
  82. package/es/components/material-quiz-edit/options/OptionSelectMultiple.js +148 -170
  83. package/es/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +149 -171
  84. package/es/components/material-quiz-edit/options/OptionSelectOne.js +144 -159
  85. package/es/components/material-quiz-edit/options/OptionText.js +82 -86
  86. package/es/components/material-quiz-edit/options/options-group/OptionGroup.js +8 -9
  87. package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerInfo.js +112 -151
  88. package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +197 -283
  89. package/es/components/material-quiz-edit/options/options-group/OptionGroupGroupInfo.js +75 -83
  90. package/es/components/material-quiz-edit/options/options-group/OptionGroupGroupListItem.js +92 -103
  91. package/es/components/material-quiz-edit/utils/checkTwoDimensionArray.js +1 -5
  92. package/es/components/material-quiz-edit/utils/editValue.js +12 -17
  93. package/es/components/shared/QuestionBox.js +165 -192
  94. package/es/components/shared/QuizDraggbleDroppedOption.js +12 -11
  95. package/es/components/shared/QuizDraggbleDummyOption.js +16 -19
  96. package/es/components/shared/QuizDraggbleOption.js +59 -61
  97. package/es/components/shared/StyledMarkdown.js +1 -1
  98. package/es/components/shared/question-checkbox/QuestionCheckbox.js +7 -9
  99. package/es/components/shared/question-checkbox/QuestionCheckboxContext.d.ts +1 -1
  100. package/es/components/shared/question-checkbox/QuestionCheckboxContext.js +17 -20
  101. package/es/components/shared/question-checkbox/QuestionCheckboxOption.js +68 -54
  102. package/es/components/shared/question-radio/QuestionRadio.js +7 -9
  103. package/es/components/shared/question-radio/QuestionRadioContext.d.ts +1 -1
  104. package/es/components/shared/question-radio/QuestionRadioContext.js +17 -20
  105. package/es/components/shared/question-radio/QuestionRadioOption.js +59 -47
  106. package/es/components/shared/utils/getQuestionStatusStyle.js +9 -7
  107. package/es/components/shared/utils/mergeRefs.js +6 -15
  108. package/es/constant/element.js +3 -3
  109. package/es/helpers/index.js +10 -8
  110. package/es/hooks/useCaculatePassage.js +20 -21
  111. package/package.json +15 -12
  112. package/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -423
  113. package/cjs/components/material-quiz/index.js +0 -9
  114. package/cjs/components/material-quiz/locales/index.js +0 -13
  115. package/cjs/components/material-quiz-edit/index.js +0 -7
  116. package/cjs/components/material-quiz-edit/locales/index.js +0 -13
  117. package/cjs/components/shared/index.js +0 -19
  118. package/cjs/constant/index.js +0 -9
  119. package/cjs/hooks/index.js +0 -7
  120. package/es/_virtual/_rollupPluginBabelHelpers.js +0 -408
  121. package/es/components/material-quiz/index.js +0 -2
  122. package/es/components/material-quiz/locales/index.js +0 -4
  123. package/es/components/material-quiz-edit/index.js +0 -1
  124. package/es/components/material-quiz-edit/locales/index.js +0 -4
  125. package/es/components/shared/index.js +0 -7
  126. package/es/constant/index.js +0 -1
  127. package/es/hooks/index.js +0 -1
@@ -2,8 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
- var jsxRuntime = require('react/jsx-runtime');
7
5
  var React = require('react');
8
6
  var apiClient = require('@elice/api-client');
9
7
  var blocks = require('@elice/blocks');
@@ -25,79 +23,51 @@ var context = require('./context/context.js');
25
23
  var MaterialQuizGroupDesktop = require('./MaterialQuizGroupDesktop.js');
26
24
  var MaterialQuizGroupMobile = require('./MaterialQuizGroupMobile.js');
27
25
 
28
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
29
-
30
- var React__default = /*#__PURE__*/_interopDefaultCompat(React);
31
- var cloneDeep__default = /*#__PURE__*/_interopDefaultCompat(cloneDeep);
32
- var flattenDeep__default = /*#__PURE__*/_interopDefaultCompat(flattenDeep);
33
-
34
26
  //
35
27
  //
36
28
  //
37
- var MaterialQuizGroup = function MaterialQuizGroup() {
38
- var intl$1 = intl.useRawEliceIntl();
29
+ const MaterialQuizGroup = () => {
30
+ const intl$1 = intl.useRawEliceIntl();
39
31
  // context
40
- var _useMaterialQuizState = MaterialQuizContext.useMaterialQuizState(),
41
- materialQuiz = _useMaterialQuizState.materialQuiz,
42
- userId = _useMaterialQuizState.userId,
43
- vertical = _useMaterialQuizState.vertical,
44
- isLongPassage = _useMaterialQuizState.isLongPassage;
45
- var _useMaterialQuizDispa = MaterialQuizContext.useMaterialQuizDispatch(),
46
- onSubmit = _useMaterialQuizDispa.onSubmit,
47
- onNext = _useMaterialQuizDispa.onNext,
48
- refreshOrgMaterialQuiz = _useMaterialQuizDispa.refreshOrgMaterialQuiz,
49
- onDirty = _useMaterialQuizDispa.onDirty;
50
- var theme = material.useTheme();
51
- var _React$useState = React__default.default.useState([]),
52
- _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
53
- groupList = _React$useState2[0],
54
- setGroupList = _React$useState2[1];
55
- var _React$useState3 = React__default.default.useState([]),
56
- _React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
57
- optionList = _React$useState4[0],
58
- setOptionList = _React$useState4[1];
59
- var _React$useState5 = React__default.default.useState([]),
60
- _React$useState6 = _rollupPluginBabelHelpers.slicedToArray(_React$useState5, 2),
61
- currentAnswerList = _React$useState6[0],
62
- setCurrentAnswerList = _React$useState6[1];
63
- var _React$useState7 = React__default.default.useState([]),
64
- _React$useState8 = _rollupPluginBabelHelpers.slicedToArray(_React$useState7, 2),
65
- currentOptionList = _React$useState8[0],
66
- setCurrentOptionList = _React$useState8[1];
67
- var _React$useState9 = React__default.default.useState(),
68
- _React$useState10 = _rollupPluginBabelHelpers.slicedToArray(_React$useState9, 2),
69
- materialQuizResponse = _React$useState10[0],
70
- setMaterialQuizResponse = _React$useState10[1];
71
- var _React$useState11 = React__default.default.useState('idle'),
72
- _React$useState12 = _rollupPluginBabelHelpers.slicedToArray(_React$useState11, 2),
73
- submitStatus = _React$useState12[0],
74
- setSubmitStatus = _React$useState12[1];
75
- var _React$useState13 = React__default.default.useState(false),
76
- _React$useState14 = _rollupPluginBabelHelpers.slicedToArray(_React$useState13, 2),
77
- hasSubmitted = _React$useState14[0],
78
- setHasSubmitted = _React$useState14[1];
79
- var isNextActive = hasSubmitted && typeof onNext === 'function';
80
- var isDisabled = !flattenDeep__default.default(currentAnswerList).length || !!userId;
81
- var _useCaculatePassage = useCaculatePassage.useCaculatePassage(),
82
- questionRef = _useCaculatePassage.questionRef,
83
- containerRef = _useCaculatePassage.containerRef;
84
- var isVisibleSideBySide = !vertical && isLongPassage;
32
+ const {
33
+ materialQuiz,
34
+ userId,
35
+ vertical,
36
+ isLongPassage
37
+ } = MaterialQuizContext.useMaterialQuizState();
38
+ const {
39
+ onSubmit,
40
+ onNext,
41
+ refreshOrgMaterialQuiz,
42
+ onDirty
43
+ } = MaterialQuizContext.useMaterialQuizDispatch();
44
+ const theme = material.useTheme();
45
+ const [groupList, setGroupList] = React.useState([]);
46
+ const [optionList, setOptionList] = React.useState([]);
47
+ const [currentAnswerList, setCurrentAnswerList] = React.useState([]);
48
+ const [currentOptionList, setCurrentOptionList] = React.useState([]);
49
+ const [materialQuizResponse, setMaterialQuizResponse] = React.useState();
50
+ const [submitStatus, setSubmitStatus] = React.useState('idle');
51
+ const [hasSubmitted, setHasSubmitted] = React.useState(false);
52
+ const isNextActive = hasSubmitted && typeof onNext === 'function';
53
+ const isDisabled = !flattenDeep(currentAnswerList).length || !!userId;
54
+ const {
55
+ questionRef,
56
+ containerRef
57
+ } = useCaculatePassage.useCaculatePassage();
58
+ const isVisibleSideBySide = !vertical && isLongPassage;
85
59
  /**
86
60
  *
87
61
  */
88
- var getCurrentAnswer = function getCurrentAnswer(answerInfo, materialOptionList, materialGroupList) {
62
+ const getCurrentAnswer = (answerInfo, materialOptionList, materialGroupList) => {
89
63
  if (answerInfo.length) {
90
- var userAnswerList = answerInfo.map(function (answers) {
91
- return answers.map(function (answer) {
92
- return {
93
- order: answer,
94
- options: materialOptionList[answer]
95
- };
96
- });
97
- });
64
+ const userAnswerList = answerInfo.map(answers => answers.map(answer => ({
65
+ order: answer,
66
+ options: materialOptionList[answer]
67
+ })));
98
68
  if (answerInfo.length !== materialGroupList.length) {
99
- var deficientAnswerList = new Array(materialGroupList.length - answerInfo.length).fill([]);
100
- return [].concat(_rollupPluginBabelHelpers.toConsumableArray(userAnswerList), _rollupPluginBabelHelpers.toConsumableArray(deficientAnswerList));
69
+ const deficientAnswerList = new Array(materialGroupList.length - answerInfo.length).fill([]);
70
+ return [...userAnswerList, ...deficientAnswerList];
101
71
  }
102
72
  return userAnswerList;
103
73
  } else {
@@ -107,34 +77,26 @@ var MaterialQuizGroup = function MaterialQuizGroup() {
107
77
  /**
108
78
  *
109
79
  */
110
- var initQuizGroupInfo = React__default.default.useCallback(function (answerInfo) {
80
+ const initQuizGroupInfo = React.useCallback(answerInfo => {
111
81
  var _a, _b;
112
82
  if (!materialQuiz) {
113
83
  return;
114
84
  }
115
- var materialOptionList = (_a = materialQuiz.options) !== null && _a !== void 0 ? _a : []; // options
116
- var materialGroupList = (_b = materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.groups) !== null && _b !== void 0 ? _b : []; // groups
117
- var flattenAnswerList = flattenDeep__default.default(answerInfo);
118
- var userAnswerList = getCurrentAnswer(answerInfo, materialOptionList, materialGroupList);
119
- var userOptionList = materialOptionList.filter(function (_, index) {
120
- return !flattenAnswerList.includes(index);
121
- }).map(function (option) {
122
- var order = materialOptionList.findIndex(function (optionInfo) {
123
- return optionInfo === option;
124
- });
85
+ const materialOptionList = (_a = materialQuiz.options) !== null && _a !== void 0 ? _a : []; // options
86
+ const materialGroupList = (_b = materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.groups) !== null && _b !== void 0 ? _b : []; // groups
87
+ const flattenAnswerList = flattenDeep(answerInfo);
88
+ const userAnswerList = getCurrentAnswer(answerInfo, materialOptionList, materialGroupList);
89
+ const userOptionList = materialOptionList.filter((_, index) => !flattenAnswerList.includes(index)).map(option => {
90
+ const order = materialOptionList.findIndex(optionInfo => optionInfo === option);
125
91
  return {
126
- order: order,
92
+ order,
127
93
  options: materialOptionList[order]
128
94
  };
129
95
  });
130
- var optionList = materialOptionList.map(function (option, index) {
131
- return {
132
- order: materialOptionList.findIndex(function (optionInfo) {
133
- return optionInfo === option;
134
- }),
135
- options: materialOptionList[index]
136
- };
137
- });
96
+ const optionList = materialOptionList.map((option, index) => ({
97
+ order: materialOptionList.findIndex(optionInfo => optionInfo === option),
98
+ options: materialOptionList[index]
99
+ }));
138
100
  setGroupList(materialGroupList);
139
101
  setOptionList(optionList);
140
102
  setCurrentAnswerList(userAnswerList);
@@ -143,102 +105,60 @@ var MaterialQuizGroup = function MaterialQuizGroup() {
143
105
  /**
144
106
  * submit handler
145
107
  */
146
- var handleSubmit = /*#__PURE__*/function () {
147
- var _ref = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
148
- var _yield$postOrgMateria, quizResponseId, _yield$getOrgMaterial, quizResponse;
149
- return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
150
- while (1) switch (_context.prev = _context.next) {
151
- case 0:
152
- if (materialQuiz) {
153
- _context.next = 2;
154
- break;
155
- }
156
- return _context.abrupt("return");
157
- case 2:
158
- setSubmitStatus('pending');
159
- _context.prev = 3;
160
- _context.next = 6;
161
- return apiClient.postOrgMaterialQuizResponseAdd({
162
- materialQuizId: materialQuiz.id,
163
- answer: currentAnswerList.map(function (answers) {
164
- return answers.map(function (answer) {
165
- return answer.order;
166
- });
167
- })
168
- });
169
- case 6:
170
- _yield$postOrgMateria = _context.sent;
171
- quizResponseId = _yield$postOrgMateria.quizResponseId;
172
- _context.next = 10;
173
- return apiClient.getOrgMaterialQuizResponseGet({
174
- quizResponseId: quizResponseId
175
- });
176
- case 10:
177
- _yield$getOrgMaterial = _context.sent;
178
- quizResponse = _yield$getOrgMaterial.quizResponse;
179
- setMaterialQuizResponse(quizResponse);
180
- void refreshOrgMaterialQuiz();
181
- setHasSubmitted(true);
182
- onSubmit(true, index.getQuizResult(quizResponse));
183
- setSubmitStatus('resolved');
184
- onDirty(false);
185
- _context.next = 25;
186
- break;
187
- case 20:
188
- _context.prev = 20;
189
- _context.t0 = _context["catch"](3);
190
- console.error(_context.t0);
191
- onSubmit(false);
192
- setSubmitStatus('rejected');
193
- case 25:
194
- case "end":
195
- return _context.stop();
196
- }
197
- }, _callee, null, [[3, 20]]);
198
- }));
199
- return function handleSubmit() {
200
- return _ref.apply(this, arguments);
201
- };
202
- }();
108
+ const handleSubmit = async () => {
109
+ if (!materialQuiz) {
110
+ return;
111
+ }
112
+ setSubmitStatus('pending');
113
+ try {
114
+ const {
115
+ quizResponseId
116
+ } = await apiClient.postOrgMaterialQuizResponseAdd({
117
+ materialQuizId: materialQuiz.id,
118
+ answer: currentAnswerList.map(answers => answers.map(answer => answer.order))
119
+ });
120
+ const {
121
+ quizResponse
122
+ } = await apiClient.getOrgMaterialQuizResponseGet({
123
+ quizResponseId
124
+ });
125
+ setMaterialQuizResponse(quizResponse);
126
+ void refreshOrgMaterialQuiz();
127
+ setHasSubmitted(true);
128
+ onSubmit(true, index.getQuizResult(quizResponse));
129
+ setSubmitStatus('resolved');
130
+ onDirty(false);
131
+ } catch (error) {
132
+ console.error(error);
133
+ onSubmit(false);
134
+ setSubmitStatus('rejected');
135
+ }
136
+ };
203
137
  /**
204
138
  *
205
139
  */
206
- var handleAnswerReset = function handleAnswerReset() {
207
- var cloneAnswerList = cloneDeep__default.default(currentAnswerList);
208
- var emptyAnswerList = cloneAnswerList.map(function () {
209
- return [];
210
- });
140
+ const handleAnswerReset = () => {
141
+ const cloneAnswerList = cloneDeep(currentAnswerList);
142
+ const emptyAnswerList = cloneAnswerList.map(() => []);
211
143
  setCurrentAnswerList(emptyAnswerList);
212
144
  setCurrentOptionList(optionList);
213
145
  };
214
146
  /**
215
147
  *
216
148
  */
217
- var updateCurrentAnswer = function updateCurrentAnswer(targetId, dropzoneIndex) {
218
- var selectedUserOption = currentOptionList.find(function (option) {
219
- return option.order === targetId;
220
- });
221
- var selectedAnswerOption = optionList.find(function (option) {
222
- return option.order === targetId;
223
- });
149
+ const updateCurrentAnswer = (targetId, dropzoneIndex) => {
150
+ const selectedUserOption = currentOptionList.find(option => option.order === targetId);
151
+ const selectedAnswerOption = optionList.find(option => option.order === targetId);
224
152
  if (selectedUserOption) {
225
- setCurrentOptionList(function (prevOptionList) {
226
- return prevOptionList.filter(function (option) {
227
- return option.order !== selectedUserOption.order;
228
- });
229
- });
153
+ setCurrentOptionList(prevOptionList => prevOptionList.filter(option => option.order !== selectedUserOption.order));
230
154
  }
231
155
  if (!selectedAnswerOption) {
232
156
  return;
233
157
  }
234
- setCurrentAnswerList(function (prevAnswerList) {
235
- var cloneAnswerList = cloneDeep__default.default(prevAnswerList);
236
- var answerList = cloneAnswerList.map(function (answers) {
237
- return answers.filter(function (answer) {
238
- return answer.order !== targetId;
239
- });
240
- });
241
- answerList[dropzoneIndex] = [].concat(_rollupPluginBabelHelpers.toConsumableArray(answerList[dropzoneIndex]), [selectedAnswerOption]);
158
+ setCurrentAnswerList(prevAnswerList => {
159
+ const cloneAnswerList = cloneDeep(prevAnswerList);
160
+ const answerList = cloneAnswerList.map(answers => answers.filter(answer => answer.order !== targetId));
161
+ answerList[dropzoneIndex] = [...answerList[dropzoneIndex], selectedAnswerOption];
242
162
  return answerList;
243
163
  });
244
164
  onDirty(true);
@@ -247,62 +167,54 @@ var MaterialQuizGroup = function MaterialQuizGroup() {
247
167
  /**
248
168
  *
249
169
  */
250
- var updateCurrentOption = function updateCurrentOption(targetId) {
170
+ const updateCurrentOption = targetId => {
251
171
  var _a;
252
- var pastTargetZoneIndex = currentAnswerList.findIndex(function (answer) {
253
- return answer === null || answer === void 0 ? void 0 : answer.find(function (item) {
254
- return item.order === targetId;
255
- });
256
- });
257
- var selectedOption = (_a = currentAnswerList[pastTargetZoneIndex]) === null || _a === void 0 ? void 0 : _a.find(function (answer) {
258
- return answer.order === targetId;
259
- });
172
+ const pastTargetZoneIndex = currentAnswerList.findIndex(answer => answer === null || answer === void 0 ? void 0 : answer.find(item => item.order === targetId));
173
+ const selectedOption = (_a = currentAnswerList[pastTargetZoneIndex]) === null || _a === void 0 ? void 0 : _a.find(answer => answer.order === targetId);
260
174
  if (!selectedOption) {
261
175
  return;
262
176
  }
263
- setCurrentAnswerList(function (prevAnswerList) {
264
- var filteredAnswerList = prevAnswerList[pastTargetZoneIndex].filter(function (answer) {
265
- return answer.order !== selectedOption.order;
266
- });
177
+ setCurrentAnswerList(prevAnswerList => {
178
+ const filteredAnswerList = prevAnswerList[pastTargetZoneIndex].filter(answer => answer.order !== selectedOption.order);
267
179
  prevAnswerList[pastTargetZoneIndex] = filteredAnswerList;
268
- return _rollupPluginBabelHelpers.toConsumableArray(prevAnswerList);
269
- });
270
- setCurrentOptionList(function (prevOptionList) {
271
- return [].concat(_rollupPluginBabelHelpers.toConsumableArray(prevOptionList), [selectedOption]);
180
+ return [...prevAnswerList];
272
181
  });
182
+ setCurrentOptionList(prevOptionList => [...prevOptionList, ...[selectedOption]]);
273
183
  onDirty(true);
274
184
  };
275
185
  //
276
186
  //
277
187
  // quiz response fetcher
278
- React__default.default.useEffect(function () {
188
+ React.useEffect(() => {
279
189
  if (!userId && (materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.lastQuizResponseId)) {
280
- var controller = new AbortController();
281
- var signal = controller.signal;
190
+ const controller = new AbortController();
191
+ const {
192
+ signal
193
+ } = controller;
282
194
  apiClient.getOrgMaterialQuizResponseGet({
283
195
  quizResponseId: materialQuiz.lastQuizResponseId
284
196
  }, {
285
- signal: signal
286
- }).then(function (response) {
287
- var answerInfo = response.quizResponse.answer;
197
+ signal
198
+ }).then(response => {
199
+ const answerInfo = response.quizResponse.answer;
288
200
  initQuizGroupInfo(answerInfo);
289
201
  setMaterialQuizResponse(response.quizResponse);
290
- }).catch(function (error) {
202
+ }).catch(error => {
291
203
  console.error(error);
292
204
  });
293
- return function () {
294
- return controller.abort();
295
- };
205
+ return () => controller.abort();
296
206
  } else {
297
- var answerInfo = [];
207
+ const answerInfo = [];
298
208
  initQuizGroupInfo(answerInfo);
299
209
  }
300
210
  }, [initQuizGroupInfo, materialQuiz, userId]);
301
211
  // Tutoring
302
- React__default.default.useEffect(function () {
212
+ React.useEffect(() => {
303
213
  if (userId && materialQuiz) {
304
- var controller = new AbortController();
305
- var signal = controller.signal;
214
+ const controller = new AbortController();
215
+ const {
216
+ signal
217
+ } = controller;
306
218
  apiClient.getOrgMaterialQuizResponseList({
307
219
  materialQuizId: materialQuiz.id,
308
220
  filterUserIds: [userId],
@@ -311,88 +223,78 @@ var MaterialQuizGroup = function MaterialQuizGroup() {
311
223
  offset: 0,
312
224
  count: 1
313
225
  }, {
314
- signal: signal
315
- }).then(function (response) {
316
- var quizResponse = response.quizResponses[0];
317
- var answerInfo = quizResponse === null || quizResponse === void 0 ? void 0 : quizResponse.answer;
226
+ signal
227
+ }).then(response => {
228
+ const quizResponse = response.quizResponses[0];
229
+ const answerInfo = quizResponse === null || quizResponse === void 0 ? void 0 : quizResponse.answer;
318
230
  initQuizGroupInfo(answerInfo !== null && answerInfo !== void 0 ? answerInfo : []);
319
231
  setMaterialQuizResponse(quizResponse);
320
- }).catch(function (error) {
321
- return console.error(error);
322
- });
323
- return function () {
324
- return controller.abort();
325
- };
232
+ }).catch(error => console.error(error));
233
+ return () => controller.abort();
326
234
  }
327
235
  }, [initQuizGroupInfo, materialQuiz, userId]);
328
236
  /**
329
237
  *
330
238
  */
331
- var renderQuizInfo = function renderQuizInfo() {
239
+ const renderQuizInfo = () => {
332
240
  if (!materialQuiz || isVisibleSideBySide) {
333
241
  return null;
334
242
  }
335
- return jsxRuntime.jsx(blocks.Flex, {
243
+ return React.createElement(blocks.Flex, {
336
244
  marginbottom: "1.5rem",
337
245
  id: element.MATERIAL_QUIZ_PASSIVE_ID,
338
246
  column: true,
339
- ref: questionRef,
340
- children: jsxRuntime.jsx(MaterialQuizInfo.default, {
341
- renderWithBox: false
342
- })
343
- });
247
+ ref: questionRef
248
+ }, React.createElement(MaterialQuizInfo.default, {
249
+ renderWithBox: false
250
+ }));
344
251
  };
345
252
  //
346
253
  //
347
254
  //
348
- return jsxRuntime.jsx(context.default.Provider, {
255
+ return React.createElement(context.default.Provider, {
349
256
  value: {
350
- groupList: groupList,
351
- optionList: optionList,
352
- currentOptionList: currentOptionList,
353
- currentAnswerList: currentAnswerList,
257
+ groupList,
258
+ optionList,
259
+ currentOptionList,
260
+ currentAnswerList,
354
261
  onUpdateAnswer: setCurrentAnswerList,
355
262
  onUpdateOption: setCurrentOptionList,
356
263
  onUpdateHasSubmitted: setHasSubmitted,
357
- onDirty: onDirty,
358
- updateCurrentAnswer: updateCurrentAnswer,
359
- updateCurrentOption: updateCurrentOption,
360
- handleAnswerReset: handleAnswerReset
361
- },
362
- children: jsxRuntime.jsxs(QuestionBox.default, {
363
- title: materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.questionTitle,
364
- onNext: onNext,
365
- isNextActive: isNextActive,
366
- submitStatus: jsxRuntime.jsx(QuizSubmitStatusText.default, {
367
- status: submitStatus
368
- }),
369
- submitResult: jsxRuntime.jsx(QuizResultBadge.default, {
370
- materialQuizResponse: materialQuizResponse
264
+ onDirty,
265
+ updateCurrentAnswer,
266
+ updateCurrentOption,
267
+ handleAnswerReset
268
+ }
269
+ }, React.createElement(QuestionBox.default, {
270
+ title: materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.title,
271
+ onNext: onNext,
272
+ isNextActive: isNextActive,
273
+ submitStatus: React.createElement(QuizSubmitStatusText.default, {
274
+ status: submitStatus
275
+ }),
276
+ submitResult: React.createElement(QuizResultBadge.default, {
277
+ materialQuizResponse: materialQuizResponse
278
+ }),
279
+ bodyContainerRef: containerRef,
280
+ footerActions: [{
281
+ border: false,
282
+ disabled: isDisabled,
283
+ loading: submitStatus === 'pending',
284
+ tabIndex: 0,
285
+ transparent: false,
286
+ onClick: handleSubmit,
287
+ children: intl$1.formatMessage({
288
+ id: isNextActive ? 'materialQuiz.resubmit' : 'materialQuiz.submit'
371
289
  }),
372
- bodyContainerRef: containerRef,
373
- footerActions: [{
374
- border: false,
375
- disabled: isDisabled,
376
- loading: submitStatus === 'pending',
377
- tabIndex: 0,
378
- transparent: false,
379
- onClick: handleSubmit,
380
- children: intl$1.formatMessage({
381
- id: isNextActive ? 'materialQuiz.resubmit' : 'materialQuiz.submit'
382
- }),
383
- customStyles: {
384
- backgroundColor: isNextActive ? theme.palette.secondary.main : isDisabled ? designTokens.base.color.gray6 : theme.palette.primary.main,
385
- color: isNextActive ? theme.palette.secondary.contrastText : isDisabled ? designTokens.base.color.gray3 : theme.palette.primary.contrastText
386
- }
387
- }],
388
- children: [renderQuizInfo(), vertical || isVisibleSideBySide ? jsxRuntime.jsx("div", {
389
- id: element.MATERIAL_QUIZ_ANSWER_ID,
390
- children: jsxRuntime.jsx(MaterialQuizGroupMobile.default, {})
391
- }) : jsxRuntime.jsx(jsxRuntime.Fragment, {
392
- children: jsxRuntime.jsx(MaterialQuizGroupDesktop.default, {})
393
- }), jsxRuntime.jsx(MaterialQuizAnswerExplanation.default, {})]
394
- })
395
- });
290
+ customStyles: {
291
+ backgroundColor: isNextActive ? theme.palette.secondary.main : isDisabled ? designTokens.base.color.gray6 : theme.palette.primary.main,
292
+ color: isNextActive ? theme.palette.secondary.contrastText : isDisabled ? designTokens.base.color.gray3 : theme.palette.primary.contrastText
293
+ }
294
+ }]
295
+ }, renderQuizInfo(), vertical || isVisibleSideBySide ? React.createElement("div", {
296
+ id: element.MATERIAL_QUIZ_ANSWER_ID
297
+ }, React.createElement(MaterialQuizGroupMobile.default, null)) : React.createElement(React.Fragment, null, React.createElement(MaterialQuizGroupDesktop.default, null)), React.createElement(MaterialQuizAnswerExplanation.default, null)));
396
298
  };
397
299
  var MaterialQuizGroup$1 = MaterialQuizGroup;
398
300