@elice/material-quiz 1.240718.0-trasncript.1 → 1.240718.0-trasncript.2

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/_virtual/_rollupPluginBabelHelpers.js +423 -0
  2. package/cjs/components/eb-sortable/EbDraggable.js +42 -33
  3. package/cjs/components/eb-sortable/EbDroppable.js +27 -20
  4. package/cjs/components/markdown-editor/index.d.ts +1 -2
  5. package/cjs/components/markdown-editor/index.js +19 -10
  6. package/cjs/components/material-quiz/MaterialQuiz.js +114 -83
  7. package/cjs/components/material-quiz/MaterialQuizAnswerExplanation.js +36 -29
  8. package/cjs/components/material-quiz/MaterialQuizInfo.js +151 -149
  9. package/cjs/components/material-quiz/MaterialQuizSelectMultiple.js +175 -127
  10. package/cjs/components/material-quiz/MaterialQuizSelectMultipleOrder.js +360 -286
  11. package/cjs/components/material-quiz/MaterialQuizSelectOne.js +172 -126
  12. package/cjs/components/material-quiz/MaterialQuizShimmer.js +46 -39
  13. package/cjs/components/material-quiz/MaterialQuizText.js +163 -115
  14. package/cjs/components/material-quiz/QuizResultBadge.js +32 -22
  15. package/cjs/components/material-quiz/QuizSubmitStatusText.js +21 -16
  16. package/cjs/components/material-quiz/constants/color.js +5 -5
  17. package/cjs/components/material-quiz/context/MaterialQuizContext.d.ts +1 -1
  18. package/cjs/components/material-quiz/context/MaterialQuizContext.js +156 -93
  19. package/cjs/components/material-quiz/index.js +9 -0
  20. package/cjs/components/material-quiz/locales/index.js +13 -0
  21. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +259 -161
  22. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.js +134 -100
  23. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.js +130 -101
  24. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupOptionItem.js +64 -52
  25. package/cjs/components/material-quiz/material-quiz-group/context/context.js +5 -1
  26. package/cjs/components/material-quiz-edit/MaterialQuizEdit.js +47 -36
  27. package/cjs/components/material-quiz-edit/MaterialQuizEditContent.js +280 -232
  28. package/cjs/components/material-quiz-edit/context.js +8 -2
  29. package/cjs/components/material-quiz-edit/index.js +7 -0
  30. package/cjs/components/material-quiz-edit/locales/index.js +13 -0
  31. package/cjs/components/material-quiz-edit/options/OptionEditor.js +70 -46
  32. package/cjs/components/material-quiz-edit/options/OptionSelectMultiple.js +174 -148
  33. package/cjs/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +175 -149
  34. package/cjs/components/material-quiz-edit/options/OptionSelectOne.js +164 -144
  35. package/cjs/components/material-quiz-edit/options/OptionText.js +90 -82
  36. package/cjs/components/material-quiz-edit/options/options-group/OptionGroup.js +9 -8
  37. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerInfo.js +156 -112
  38. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +288 -196
  39. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupGroupInfo.js +88 -75
  40. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupGroupListItem.js +108 -92
  41. package/cjs/components/material-quiz-edit/utils/checkTwoDimensionArray.js +5 -1
  42. package/cjs/components/material-quiz-edit/utils/editValue.js +21 -12
  43. package/cjs/components/shared/QuestionBox.js +198 -165
  44. package/cjs/components/shared/QuizDraggbleDroppedOption.js +11 -12
  45. package/cjs/components/shared/QuizDraggbleDummyOption.js +23 -16
  46. package/cjs/components/shared/QuizDraggbleOption.js +65 -59
  47. package/cjs/components/shared/StyledMarkdown.js +5 -1
  48. package/cjs/components/shared/index.js +19 -0
  49. package/cjs/components/shared/question-checkbox/QuestionCheckbox.js +13 -7
  50. package/cjs/components/shared/question-checkbox/QuestionCheckboxContext.d.ts +1 -1
  51. package/cjs/components/shared/question-checkbox/QuestionCheckboxContext.js +24 -17
  52. package/cjs/components/shared/question-checkbox/QuestionCheckboxOption.js +59 -68
  53. package/cjs/components/shared/question-radio/QuestionRadio.js +13 -7
  54. package/cjs/components/shared/question-radio/QuestionRadioContext.d.ts +1 -1
  55. package/cjs/components/shared/question-radio/QuestionRadioContext.js +24 -17
  56. package/cjs/components/shared/question-radio/QuestionRadioOption.js +52 -59
  57. package/cjs/components/shared/utils/getQuestionStatusStyle.js +7 -9
  58. package/cjs/components/shared/utils/mergeRefs.js +15 -6
  59. package/cjs/constant/element.js +3 -3
  60. package/cjs/constant/index.js +9 -0
  61. package/cjs/helpers/index.js +8 -10
  62. package/cjs/hooks/index.js +7 -0
  63. package/cjs/hooks/useCaculatePassage.js +21 -20
  64. package/es/_virtual/_rollupPluginBabelHelpers.js +408 -0
  65. package/es/components/eb-sortable/EbDraggable.js +37 -33
  66. package/es/components/eb-sortable/EbDroppable.js +22 -20
  67. package/es/components/markdown-editor/index.d.ts +1 -2
  68. package/es/components/markdown-editor/index.js +15 -10
  69. package/es/components/material-quiz/MaterialQuiz.js +109 -83
  70. package/es/components/material-quiz/MaterialQuizAnswerExplanation.js +32 -29
  71. package/es/components/material-quiz/MaterialQuizInfo.js +148 -150
  72. package/es/components/material-quiz/MaterialQuizSelectMultiple.js +171 -127
  73. package/es/components/material-quiz/MaterialQuizSelectMultipleOrder.js +356 -287
  74. package/es/components/material-quiz/MaterialQuizSelectOne.js +168 -126
  75. package/es/components/material-quiz/MaterialQuizShimmer.js +42 -39
  76. package/es/components/material-quiz/MaterialQuizText.js +158 -115
  77. package/es/components/material-quiz/QuizResultBadge.js +27 -22
  78. package/es/components/material-quiz/QuizSubmitStatusText.js +17 -16
  79. package/es/components/material-quiz/constants/color.js +5 -5
  80. package/es/components/material-quiz/context/MaterialQuizContext.d.ts +1 -1
  81. package/es/components/material-quiz/context/MaterialQuizContext.js +153 -94
  82. package/es/components/material-quiz/index.js +2 -0
  83. package/es/components/material-quiz/locales/index.js +4 -0
  84. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +253 -161
  85. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.js +129 -100
  86. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.js +125 -101
  87. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupOptionItem.js +60 -52
  88. package/es/components/material-quiz/material-quiz-group/context/context.js +1 -1
  89. package/es/components/material-quiz-edit/MaterialQuizEdit.js +43 -36
  90. package/es/components/material-quiz-edit/MaterialQuizEditContent.js +272 -229
  91. package/es/components/material-quiz-edit/context.js +4 -2
  92. package/es/components/material-quiz-edit/index.js +1 -0
  93. package/es/components/material-quiz-edit/locales/index.js +4 -0
  94. package/es/components/material-quiz-edit/options/OptionEditor.js +64 -46
  95. package/es/components/material-quiz-edit/options/OptionSelectMultiple.js +170 -148
  96. package/es/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +171 -149
  97. package/es/components/material-quiz-edit/options/OptionSelectOne.js +159 -144
  98. package/es/components/material-quiz-edit/options/OptionText.js +86 -82
  99. package/es/components/material-quiz-edit/options/options-group/OptionGroup.js +9 -8
  100. package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerInfo.js +151 -112
  101. package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +283 -197
  102. package/es/components/material-quiz-edit/options/options-group/OptionGroupGroupInfo.js +83 -75
  103. package/es/components/material-quiz-edit/options/options-group/OptionGroupGroupListItem.js +103 -92
  104. package/es/components/material-quiz-edit/utils/checkTwoDimensionArray.js +5 -1
  105. package/es/components/material-quiz-edit/utils/editValue.js +17 -12
  106. package/es/components/shared/QuestionBox.js +192 -165
  107. package/es/components/shared/QuizDraggbleDroppedOption.js +11 -12
  108. package/es/components/shared/QuizDraggbleDummyOption.js +19 -16
  109. package/es/components/shared/QuizDraggbleOption.js +61 -59
  110. package/es/components/shared/StyledMarkdown.js +1 -1
  111. package/es/components/shared/index.js +7 -0
  112. package/es/components/shared/question-checkbox/QuestionCheckbox.js +9 -7
  113. package/es/components/shared/question-checkbox/QuestionCheckboxContext.d.ts +1 -1
  114. package/es/components/shared/question-checkbox/QuestionCheckboxContext.js +20 -17
  115. package/es/components/shared/question-checkbox/QuestionCheckboxOption.js +54 -68
  116. package/es/components/shared/question-radio/QuestionRadio.js +9 -7
  117. package/es/components/shared/question-radio/QuestionRadioContext.d.ts +1 -1
  118. package/es/components/shared/question-radio/QuestionRadioContext.js +20 -17
  119. package/es/components/shared/question-radio/QuestionRadioOption.js +47 -59
  120. package/es/components/shared/utils/getQuestionStatusStyle.js +7 -9
  121. package/es/components/shared/utils/mergeRefs.js +15 -6
  122. package/es/constant/element.js +3 -3
  123. package/es/constant/index.js +1 -0
  124. package/es/helpers/index.js +8 -10
  125. package/es/hooks/index.js +1 -0
  126. package/es/hooks/useCaculatePassage.js +21 -20
  127. package/package.json +12 -15
@@ -2,6 +2,8 @@
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');
5
7
  var React = require('react');
6
8
  var apiClient = require('@elice/api-client');
7
9
  var blocks = require('@elice/blocks');
@@ -23,51 +25,79 @@ var context = require('./context/context.js');
23
25
  var MaterialQuizGroupDesktop = require('./MaterialQuizGroupDesktop.js');
24
26
  var MaterialQuizGroupMobile = require('./MaterialQuizGroupMobile.js');
25
27
 
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
+
26
34
  //
27
35
  //
28
36
  //
29
- const MaterialQuizGroup = () => {
30
- const intl$1 = intl.useRawEliceIntl();
37
+ var MaterialQuizGroup = function MaterialQuizGroup() {
38
+ var intl$1 = intl.useRawEliceIntl();
31
39
  // context
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;
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;
59
85
  /**
60
86
  *
61
87
  */
62
- const getCurrentAnswer = (answerInfo, materialOptionList, materialGroupList) => {
88
+ var getCurrentAnswer = function getCurrentAnswer(answerInfo, materialOptionList, materialGroupList) {
63
89
  if (answerInfo.length) {
64
- const userAnswerList = answerInfo.map(answers => answers.map(answer => ({
65
- order: answer,
66
- options: materialOptionList[answer]
67
- })));
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
+ });
68
98
  if (answerInfo.length !== materialGroupList.length) {
69
- const deficientAnswerList = new Array(materialGroupList.length - answerInfo.length).fill([]);
70
- return [...userAnswerList, ...deficientAnswerList];
99
+ var deficientAnswerList = new Array(materialGroupList.length - answerInfo.length).fill([]);
100
+ return [].concat(_rollupPluginBabelHelpers.toConsumableArray(userAnswerList), _rollupPluginBabelHelpers.toConsumableArray(deficientAnswerList));
71
101
  }
72
102
  return userAnswerList;
73
103
  } else {
@@ -77,26 +107,34 @@ const MaterialQuizGroup = () => {
77
107
  /**
78
108
  *
79
109
  */
80
- const initQuizGroupInfo = React.useCallback(answerInfo => {
110
+ var initQuizGroupInfo = React__default.default.useCallback(function (answerInfo) {
81
111
  var _a, _b;
82
112
  if (!materialQuiz) {
83
113
  return;
84
114
  }
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);
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
+ });
91
125
  return {
92
- order,
126
+ order: order,
93
127
  options: materialOptionList[order]
94
128
  };
95
129
  });
96
- const optionList = materialOptionList.map((option, index) => ({
97
- order: materialOptionList.findIndex(optionInfo => optionInfo === option),
98
- options: materialOptionList[index]
99
- }));
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
+ });
100
138
  setGroupList(materialGroupList);
101
139
  setOptionList(optionList);
102
140
  setCurrentAnswerList(userAnswerList);
@@ -105,60 +143,102 @@ const MaterialQuizGroup = () => {
105
143
  /**
106
144
  * submit handler
107
145
  */
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
- };
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
+ }();
137
203
  /**
138
204
  *
139
205
  */
140
- const handleAnswerReset = () => {
141
- const cloneAnswerList = cloneDeep(currentAnswerList);
142
- const emptyAnswerList = cloneAnswerList.map(() => []);
206
+ var handleAnswerReset = function handleAnswerReset() {
207
+ var cloneAnswerList = cloneDeep__default.default(currentAnswerList);
208
+ var emptyAnswerList = cloneAnswerList.map(function () {
209
+ return [];
210
+ });
143
211
  setCurrentAnswerList(emptyAnswerList);
144
212
  setCurrentOptionList(optionList);
145
213
  };
146
214
  /**
147
215
  *
148
216
  */
149
- const updateCurrentAnswer = (targetId, dropzoneIndex) => {
150
- const selectedUserOption = currentOptionList.find(option => option.order === targetId);
151
- const selectedAnswerOption = optionList.find(option => option.order === targetId);
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
+ });
152
224
  if (selectedUserOption) {
153
- setCurrentOptionList(prevOptionList => prevOptionList.filter(option => option.order !== selectedUserOption.order));
225
+ setCurrentOptionList(function (prevOptionList) {
226
+ return prevOptionList.filter(function (option) {
227
+ return option.order !== selectedUserOption.order;
228
+ });
229
+ });
154
230
  }
155
231
  if (!selectedAnswerOption) {
156
232
  return;
157
233
  }
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];
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]);
162
242
  return answerList;
163
243
  });
164
244
  onDirty(true);
@@ -167,54 +247,62 @@ const MaterialQuizGroup = () => {
167
247
  /**
168
248
  *
169
249
  */
170
- const updateCurrentOption = targetId => {
250
+ var updateCurrentOption = function updateCurrentOption(targetId) {
171
251
  var _a;
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);
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
+ });
174
260
  if (!selectedOption) {
175
261
  return;
176
262
  }
177
- setCurrentAnswerList(prevAnswerList => {
178
- const filteredAnswerList = prevAnswerList[pastTargetZoneIndex].filter(answer => answer.order !== selectedOption.order);
263
+ setCurrentAnswerList(function (prevAnswerList) {
264
+ var filteredAnswerList = prevAnswerList[pastTargetZoneIndex].filter(function (answer) {
265
+ return answer.order !== selectedOption.order;
266
+ });
179
267
  prevAnswerList[pastTargetZoneIndex] = filteredAnswerList;
180
- return [...prevAnswerList];
268
+ return _rollupPluginBabelHelpers.toConsumableArray(prevAnswerList);
269
+ });
270
+ setCurrentOptionList(function (prevOptionList) {
271
+ return [].concat(_rollupPluginBabelHelpers.toConsumableArray(prevOptionList), [selectedOption]);
181
272
  });
182
- setCurrentOptionList(prevOptionList => [...prevOptionList, ...[selectedOption]]);
183
273
  onDirty(true);
184
274
  };
185
275
  //
186
276
  //
187
277
  // quiz response fetcher
188
- React.useEffect(() => {
278
+ React__default.default.useEffect(function () {
189
279
  if (!userId && (materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.lastQuizResponseId)) {
190
- const controller = new AbortController();
191
- const {
192
- signal
193
- } = controller;
280
+ var controller = new AbortController();
281
+ var signal = controller.signal;
194
282
  apiClient.getOrgMaterialQuizResponseGet({
195
283
  quizResponseId: materialQuiz.lastQuizResponseId
196
284
  }, {
197
- signal
198
- }).then(response => {
199
- const answerInfo = response.quizResponse.answer;
285
+ signal: signal
286
+ }).then(function (response) {
287
+ var answerInfo = response.quizResponse.answer;
200
288
  initQuizGroupInfo(answerInfo);
201
289
  setMaterialQuizResponse(response.quizResponse);
202
- }).catch(error => {
290
+ }).catch(function (error) {
203
291
  console.error(error);
204
292
  });
205
- return () => controller.abort();
293
+ return function () {
294
+ return controller.abort();
295
+ };
206
296
  } else {
207
- const answerInfo = [];
297
+ var answerInfo = [];
208
298
  initQuizGroupInfo(answerInfo);
209
299
  }
210
300
  }, [initQuizGroupInfo, materialQuiz, userId]);
211
301
  // Tutoring
212
- React.useEffect(() => {
302
+ React__default.default.useEffect(function () {
213
303
  if (userId && materialQuiz) {
214
- const controller = new AbortController();
215
- const {
216
- signal
217
- } = controller;
304
+ var controller = new AbortController();
305
+ var signal = controller.signal;
218
306
  apiClient.getOrgMaterialQuizResponseList({
219
307
  materialQuizId: materialQuiz.id,
220
308
  filterUserIds: [userId],
@@ -223,78 +311,88 @@ const MaterialQuizGroup = () => {
223
311
  offset: 0,
224
312
  count: 1
225
313
  }, {
226
- signal
227
- }).then(response => {
228
- const quizResponse = response.quizResponses[0];
229
- const answerInfo = quizResponse === null || quizResponse === void 0 ? void 0 : quizResponse.answer;
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;
230
318
  initQuizGroupInfo(answerInfo !== null && answerInfo !== void 0 ? answerInfo : []);
231
319
  setMaterialQuizResponse(quizResponse);
232
- }).catch(error => console.error(error));
233
- return () => controller.abort();
320
+ }).catch(function (error) {
321
+ return console.error(error);
322
+ });
323
+ return function () {
324
+ return controller.abort();
325
+ };
234
326
  }
235
327
  }, [initQuizGroupInfo, materialQuiz, userId]);
236
328
  /**
237
329
  *
238
330
  */
239
- const renderQuizInfo = () => {
331
+ var renderQuizInfo = function renderQuizInfo() {
240
332
  if (!materialQuiz || isVisibleSideBySide) {
241
333
  return null;
242
334
  }
243
- return React.createElement(blocks.Flex, {
335
+ return jsxRuntime.jsx(blocks.Flex, {
244
336
  marginbottom: "1.5rem",
245
337
  id: element.MATERIAL_QUIZ_PASSIVE_ID,
246
338
  column: true,
247
- ref: questionRef
248
- }, React.createElement(MaterialQuizInfo.default, {
249
- renderWithBox: false
250
- }));
339
+ ref: questionRef,
340
+ children: jsxRuntime.jsx(MaterialQuizInfo.default, {
341
+ renderWithBox: false
342
+ })
343
+ });
251
344
  };
252
345
  //
253
346
  //
254
347
  //
255
- return React.createElement(context.default.Provider, {
348
+ return jsxRuntime.jsx(context.default.Provider, {
256
349
  value: {
257
- groupList,
258
- optionList,
259
- currentOptionList,
260
- currentAnswerList,
350
+ groupList: groupList,
351
+ optionList: optionList,
352
+ currentOptionList: currentOptionList,
353
+ currentAnswerList: currentAnswerList,
261
354
  onUpdateAnswer: setCurrentAnswerList,
262
355
  onUpdateOption: setCurrentOptionList,
263
356
  onUpdateHasSubmitted: setHasSubmitted,
264
- onDirty,
265
- updateCurrentAnswer,
266
- updateCurrentOption,
267
- handleAnswerReset
268
- }
269
- }, React.createElement(QuestionBox.default, {
270
- title: materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.questionTitle,
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'
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
289
368
  }),
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)));
369
+ submitResult: jsxRuntime.jsx(QuizResultBadge.default, {
370
+ materialQuizResponse: materialQuizResponse
371
+ }),
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
+ });
298
396
  };
299
397
  var MaterialQuizGroup$1 = MaterialQuizGroup;
300
398