@elice/material-quiz 1.230328.0 → 1.230418.0
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/cjs/_virtual/_rollupPluginBabelHelpers.js +409 -0
- package/cjs/components/eb-sortable/EbDraggable.js +37 -36
- package/cjs/components/eb-sortable/EbDroppable.js +20 -20
- package/cjs/components/material-quiz/MaterialQuiz.i18n.js +4 -4
- package/cjs/components/material-quiz/MaterialQuiz.js +64 -57
- package/cjs/components/material-quiz/MaterialQuizAnswerExplanation.js +10 -12
- package/cjs/components/material-quiz/MaterialQuizInfo.js +11 -10
- package/cjs/components/material-quiz/MaterialQuizSelectMultiple.js +138 -107
- package/cjs/components/material-quiz/MaterialQuizSelectMultipleOrder.js +236 -212
- package/cjs/components/material-quiz/MaterialQuizSelectOne.js +133 -102
- package/cjs/components/material-quiz/MaterialQuizShimmer.js +12 -11
- package/cjs/components/material-quiz/MaterialQuizText.js +119 -85
- package/cjs/components/material-quiz/QuizResultBadge.js +9 -10
- package/cjs/components/material-quiz/QuizSubmitStatusText.js +6 -8
- package/cjs/components/material-quiz/context/MaterialQuizContext.js +104 -81
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +217 -158
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.js +65 -63
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.js +75 -73
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupOptionItem.js +42 -42
- package/cjs/components/material-quiz/material-quiz-group/context/context.js +4 -2
- package/cjs/components/material-quiz/material-quiz-group/index.js +3 -1
- package/cjs/components/material-quiz-edit/MaterialQuizEdit.js +45 -38
- package/cjs/components/material-quiz-edit/MaterialQuizEditContent.js +140 -177
- package/cjs/components/material-quiz-edit/context.js +4 -2
- package/cjs/components/material-quiz-edit/locales.js +2 -2
- package/cjs/components/material-quiz-edit/options/OptionSelectMultiple.js +101 -105
- package/cjs/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +102 -106
- package/cjs/components/material-quiz-edit/options/OptionSelectOne.js +89 -104
- package/cjs/components/material-quiz-edit/options/OptionText.js +31 -31
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroup.js +6 -4
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerInfo.js +73 -66
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +177 -149
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroupGroupInfo.js +47 -54
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroupGroupListItem.js +40 -48
- package/cjs/components/material-quiz-edit/utils/checkTwoDimensionArray.js +5 -1
- package/cjs/components/material-quiz-edit/utils/editValue.js +17 -15
- package/cjs/components/shared/QuestionBox.js +50 -56
- package/cjs/components/shared/QuizDraggbleDroppedOption.js +12 -10
- package/cjs/components/shared/QuizDraggbleDummyOption.js +8 -8
- package/cjs/components/shared/QuizDraggbleOption.js +41 -67
- package/cjs/components/shared/StyledMarkdown.js +4 -2
- package/cjs/components/shared/question-checkbox/QuestionCheckbox.js +7 -9
- package/cjs/components/shared/question-checkbox/QuestionCheckboxContext.js +15 -18
- package/cjs/components/shared/question-checkbox/QuestionCheckboxOption.js +47 -84
- package/cjs/components/shared/question-radio/QuestionRadio.js +7 -9
- package/cjs/components/shared/question-radio/QuestionRadioContext.js +15 -18
- package/cjs/components/shared/question-radio/QuestionRadioOption.js +40 -70
- package/cjs/helpers/index.js +8 -22
- package/cjs/index.js +10 -10
- package/es/_virtual/_rollupPluginBabelHelpers.js +394 -0
- package/es/components/eb-sortable/EbDraggable.js +34 -35
- package/es/components/eb-sortable/EbDroppable.js +17 -19
- package/es/components/material-quiz/MaterialQuiz.i18n.js +4 -4
- package/es/components/material-quiz/MaterialQuiz.js +59 -52
- package/es/components/material-quiz/MaterialQuizAnswerExplanation.js +7 -11
- package/es/components/material-quiz/MaterialQuizInfo.js +7 -8
- package/es/components/material-quiz/MaterialQuizSelectMultiple.js +130 -101
- package/es/components/material-quiz/MaterialQuizSelectMultipleOrder.js +228 -206
- package/es/components/material-quiz/MaterialQuizSelectOne.js +125 -96
- package/es/components/material-quiz/MaterialQuizShimmer.js +9 -10
- package/es/components/material-quiz/MaterialQuizText.js +114 -82
- package/es/components/material-quiz/QuizResultBadge.js +6 -9
- package/es/components/material-quiz/QuizSubmitStatusText.js +3 -7
- package/es/components/material-quiz/context/MaterialQuizContext.js +105 -82
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +209 -152
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.js +62 -62
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.js +72 -72
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupOptionItem.js +39 -41
- package/es/components/material-quiz/material-quiz-group/context/context.js +1 -1
- package/es/components/material-quiz-edit/MaterialQuizEdit.js +41 -36
- package/es/components/material-quiz-edit/MaterialQuizEditContent.js +132 -171
- package/es/components/material-quiz-edit/context.js +4 -2
- package/es/components/material-quiz-edit/locales.js +2 -2
- package/es/components/material-quiz-edit/options/OptionSelectMultiple.js +98 -104
- package/es/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +99 -105
- package/es/components/material-quiz-edit/options/OptionSelectOne.js +86 -103
- package/es/components/material-quiz-edit/options/OptionText.js +28 -30
- package/es/components/material-quiz-edit/options/options-group/OptionGroup.js +1 -1
- package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerInfo.js +70 -65
- package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +175 -149
- package/es/components/material-quiz-edit/options/options-group/OptionGroupGroupInfo.js +44 -53
- package/es/components/material-quiz-edit/options/options-group/OptionGroupGroupListItem.js +37 -47
- package/es/components/material-quiz-edit/utils/checkTwoDimensionArray.js +5 -1
- package/es/components/material-quiz-edit/utils/editValue.js +17 -15
- package/es/components/shared/QuestionBox.js +50 -56
- package/es/components/shared/QuizDraggbleDroppedOption.js +8 -8
- package/es/components/shared/QuizDraggbleDummyOption.js +5 -7
- package/es/components/shared/QuizDraggbleOption.js +37 -65
- package/es/components/shared/StyledMarkdown.js +1 -1
- package/es/components/shared/question-checkbox/QuestionCheckbox.js +4 -8
- package/es/components/shared/question-checkbox/QuestionCheckboxContext.js +15 -18
- package/es/components/shared/question-checkbox/QuestionCheckboxOption.js +44 -83
- package/es/components/shared/question-radio/QuestionRadio.js +4 -8
- package/es/components/shared/question-radio/QuestionRadioContext.js +15 -18
- package/es/components/shared/question-radio/QuestionRadioOption.js +37 -69
- package/es/helpers/index.js +8 -22
- package/package.json +8 -8
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
|
|
3
6
|
var React = require('react');
|
|
4
7
|
var reactIntl = require('react-intl');
|
|
5
8
|
var reactUse = require('react-use');
|
|
@@ -13,99 +16,103 @@ var MaterialQuiz_i18n = require('./MaterialQuiz.i18n.js');
|
|
|
13
16
|
|
|
14
17
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
18
|
|
|
16
|
-
function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, 'default': e }); }
|
|
17
|
-
|
|
18
19
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
19
20
|
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
var AsyncMaterialQuizSelectMultiple = React__default["default"].lazy(function () {
|
|
23
|
+
return Promise.resolve().then(function () { return require('./MaterialQuizSelectMultiple.js'); });
|
|
24
|
+
});
|
|
25
|
+
var AsyncMaterialQuizSelectMultipleOrder = React__default["default"].lazy(function () {
|
|
26
|
+
return Promise.resolve().then(function () { return require('./MaterialQuizSelectMultipleOrder.js'); });
|
|
27
|
+
});
|
|
28
|
+
var AsyncMaterialQuizText = React__default["default"].lazy(function () {
|
|
29
|
+
return Promise.resolve().then(function () { return require('./MaterialQuizText.js'); });
|
|
30
|
+
});
|
|
31
|
+
var AsyncMaterialQuizSelectOne = React__default["default"].lazy(function () {
|
|
32
|
+
return Promise.resolve().then(function () { return require('./MaterialQuizSelectOne.js'); });
|
|
33
|
+
});
|
|
34
|
+
var AsyncMaterialQuizGroup = React__default["default"].lazy(function () {
|
|
35
|
+
return Promise.resolve().then(function () { return require('./material-quiz-group/index.js'); });
|
|
36
|
+
});
|
|
37
|
+
var StyledMaterialQuizInfo = styled__default["default"].div.withConfig({
|
|
27
38
|
componentId: "sc-1eyn8fb-0"
|
|
28
39
|
})([""]);
|
|
29
|
-
|
|
40
|
+
var StyledMaterialQuizContent = styled__default["default"].div.withConfig({
|
|
30
41
|
componentId: "sc-1eyn8fb-1"
|
|
31
42
|
})(["min-width:0;"]);
|
|
32
|
-
|
|
43
|
+
var StyledMaterialQuizWrapper = styled__default["default"].div.withConfig({
|
|
33
44
|
componentId: "sc-1eyn8fb-2"
|
|
34
|
-
})(["-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;width:100%;height:100%;flex-direction:", ";& > *{flex:", ";}& > *:first-child{margin-right:", ";margin-bottom:", ";}", "{height:", ";overflow-y:", ";}"], ({
|
|
35
|
-
vertical
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
vertical
|
|
40
|
-
}
|
|
41
|
-
vertical
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
vertical
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
45
|
+
})(["-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;width:100%;height:100%;flex-direction:", ";& > *{flex:", ";}& > *:first-child{margin-right:", ";margin-bottom:", ";}", "{height:", ";overflow-y:", ";}"], function (_ref) {
|
|
46
|
+
var vertical = _ref.vertical;
|
|
47
|
+
return vertical ? 'column' : 'row';
|
|
48
|
+
}, function (_ref2) {
|
|
49
|
+
var vertical = _ref2.vertical;
|
|
50
|
+
return vertical ? 'auto' : '1 0 calc(50% - 1rem);';
|
|
51
|
+
}, function (_ref3) {
|
|
52
|
+
var vertical = _ref3.vertical;
|
|
53
|
+
return vertical ? '0' : '1rem';
|
|
54
|
+
}, function (_ref4) {
|
|
55
|
+
var vertical = _ref4.vertical;
|
|
56
|
+
return vertical ? '1rem' : '0';
|
|
57
|
+
}, StyledMaterialQuizInfo, function (_ref5) {
|
|
58
|
+
var vertical = _ref5.vertical;
|
|
59
|
+
return vertical ? 'auto' : '100%';
|
|
60
|
+
}, function (_ref6) {
|
|
61
|
+
var vertical = _ref6.vertical;
|
|
62
|
+
return vertical ? 'intial' : 'auto';
|
|
63
|
+
});
|
|
64
|
+
var MaterialQuiz = function MaterialQuiz() {
|
|
65
|
+
var _useMaterialQuizState = MaterialQuizContext.useMaterialQuizState(),
|
|
66
|
+
materialQuiz = _useMaterialQuizState.materialQuiz,
|
|
67
|
+
vertical = _useMaterialQuizState.vertical;
|
|
68
|
+
var _useMaterialQuizDispa = MaterialQuizContext.useMaterialQuizDispatch(),
|
|
69
|
+
setVertical = _useMaterialQuizDispa.setVertical;
|
|
70
|
+
var _useMeasure = reactUse.useMeasure(),
|
|
71
|
+
_useMeasure2 = _rollupPluginBabelHelpers.slicedToArray(_useMeasure, 2),
|
|
72
|
+
ref = _useMeasure2[0],
|
|
73
|
+
width = _useMeasure2[1].width;
|
|
74
|
+
var isQuizGroupType = Boolean((materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.optionType) === types.enums.QuizOptionType.Group);
|
|
75
|
+
React__default["default"].useEffect(function () {
|
|
61
76
|
if (width > 0) {
|
|
62
77
|
setVertical(width <= designTokens.base.screen.medium);
|
|
63
78
|
}
|
|
64
79
|
}, [width, setVertical]);
|
|
65
|
-
|
|
66
|
-
|
|
80
|
+
var Component = null;
|
|
67
81
|
switch (materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.optionType) {
|
|
68
82
|
case types.enums.QuizOptionType.SelectOne:
|
|
69
83
|
Component = React__default["default"].createElement(AsyncMaterialQuizSelectOne, null);
|
|
70
84
|
break;
|
|
71
|
-
|
|
72
85
|
case types.enums.QuizOptionType.SelectMultiple:
|
|
73
86
|
Component = React__default["default"].createElement(AsyncMaterialQuizSelectMultiple, null);
|
|
74
87
|
break;
|
|
75
|
-
|
|
76
88
|
case types.enums.QuizOptionType.Text:
|
|
77
89
|
Component = React__default["default"].createElement(AsyncMaterialQuizText, null);
|
|
78
90
|
break;
|
|
79
|
-
|
|
80
91
|
case types.enums.QuizOptionType.SelectMultipleOrder:
|
|
81
92
|
Component = React__default["default"].createElement(AsyncMaterialQuizSelectMultipleOrder, null);
|
|
82
93
|
break;
|
|
83
|
-
|
|
84
94
|
case types.enums.QuizOptionType.Group:
|
|
85
95
|
Component = React__default["default"].createElement(AsyncMaterialQuizGroup, null);
|
|
86
96
|
break;
|
|
87
|
-
|
|
88
97
|
default:
|
|
89
|
-
Component = React__default["default"].createElement(MaterialQuizShimmer, null);
|
|
98
|
+
Component = React__default["default"].createElement(MaterialQuizShimmer["default"], null);
|
|
90
99
|
break;
|
|
91
100
|
}
|
|
92
|
-
|
|
93
101
|
return React__default["default"].createElement(React__default["default"].Suspense, {
|
|
94
102
|
fallback: null
|
|
95
103
|
}, React__default["default"].createElement(StyledMaterialQuizWrapper, {
|
|
96
104
|
ref: ref,
|
|
97
105
|
vertical: vertical
|
|
98
|
-
}, isQuizGroupType ? null : React__default["default"].createElement(StyledMaterialQuizInfo, null, React__default["default"].createElement(MaterialQuizInfo, null)), React__default["default"].createElement(StyledMaterialQuizContent, null, Component)));
|
|
106
|
+
}, isQuizGroupType ? null : React__default["default"].createElement(StyledMaterialQuizInfo, null, React__default["default"].createElement(MaterialQuizInfo["default"], null)), React__default["default"].createElement(StyledMaterialQuizContent, null, Component)));
|
|
99
107
|
};
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}) => {
|
|
108
|
+
var MaterialQuizContainer = function MaterialQuizContainer(_ref7) {
|
|
109
|
+
var materialQuizId = _ref7.materialQuizId,
|
|
110
|
+
userId = _ref7.userId,
|
|
111
|
+
_ref7$locale = _ref7.locale,
|
|
112
|
+
locale = _ref7$locale === void 0 ? 'en' : _ref7$locale,
|
|
113
|
+
onDirty = _ref7.onDirty,
|
|
114
|
+
onSubmit = _ref7.onSubmit,
|
|
115
|
+
onNext = _ref7.onNext;
|
|
109
116
|
return React__default["default"].createElement(reactIntl.IntlProvider, {
|
|
110
117
|
locale: locale,
|
|
111
118
|
defaultLocale: "en",
|
|
@@ -119,4 +126,4 @@ const MaterialQuizContainer = ({
|
|
|
119
126
|
}, React__default["default"].createElement(MaterialQuiz, null)));
|
|
120
127
|
};
|
|
121
128
|
|
|
122
|
-
|
|
129
|
+
exports["default"] = MaterialQuizContainer;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
3
5
|
var React = require('react');
|
|
4
6
|
var reactIntl = require('react-intl');
|
|
5
7
|
var blocks = require('@elice/blocks');
|
|
@@ -14,24 +16,20 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
14
16
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
15
17
|
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
var StyledMarkdownSSR = styled__default["default"](markdown.MarkdownSSR).withConfig({
|
|
18
20
|
componentId: "sc-18kg5i5-0"
|
|
19
21
|
})(["p{margin:0 !important;}"]);
|
|
20
|
-
|
|
22
|
+
var StyledAccordion = styled__default["default"](blocks.Accordion).withConfig({
|
|
21
23
|
componentId: "sc-18kg5i5-1"
|
|
22
24
|
})(["border-radius:8px;overflow:hidden;background-color:", " !important;border-radius:8px;overflow:hidden;& > *:first-child{background-color:", " !important;}& > *:last-child{background-color:", " !important;}"], designTokens.base.color.navy5, designTokens.base.color.navy7, designTokens.base.color.navy7);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
} = MaterialQuizContext.useMaterialQuizState();
|
|
29
|
-
const intl = reactIntl.useIntl();
|
|
30
|
-
|
|
25
|
+
var MaterialQuizAnswerExplanation = function MaterialQuizAnswerExplanation() {
|
|
26
|
+
var _useMaterialQuizState = MaterialQuizContext.useMaterialQuizState(),
|
|
27
|
+
lecture = _useMaterialQuizState.lecture,
|
|
28
|
+
materialQuiz = _useMaterialQuizState.materialQuiz;
|
|
29
|
+
var intl = reactIntl.useIntl();
|
|
31
30
|
if (!materialQuiz || !materialQuiz.explanationInfo.isEnabled || !materialQuiz.isResponded || (lecture === null || lecture === void 0 ? void 0 : lecture.lectureType) === types.enums.LectureType.Test && (lecture === null || lecture === void 0 ? void 0 : lecture.testUserStatus) !== types.enums.LectureTestUserStatus.Completed) {
|
|
32
31
|
return null;
|
|
33
32
|
}
|
|
34
|
-
|
|
35
33
|
return React__default["default"].createElement(blocks.Flex, {
|
|
36
34
|
column: true,
|
|
37
35
|
margintop: "1rem"
|
|
@@ -55,4 +53,4 @@ const MaterialQuizAnswerExplanation = () => {
|
|
|
55
53
|
}))));
|
|
56
54
|
};
|
|
57
55
|
|
|
58
|
-
|
|
56
|
+
exports["default"] = MaterialQuizAnswerExplanation;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
3
5
|
var React = require('react');
|
|
4
6
|
var blocks = require('@elice/blocks');
|
|
5
7
|
var markdown = require('@elice/markdown');
|
|
@@ -15,17 +17,16 @@ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
|
15
17
|
|
|
16
18
|
//
|
|
17
19
|
//
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
//
|
|
21
|
+
var StyledMarkdownSSR = styled__default["default"](markdown.MarkdownSSR).withConfig({
|
|
20
22
|
componentId: "sc-1s7jbf9-0"
|
|
21
|
-
})([".elicemd--theme-dark{pre{border:0;}table td,table th{border-bottom-color:rgba(255,255,255,0.16);}}"]);
|
|
23
|
+
})([".elicemd--theme-dark{pre{border:0;}table td,table th{border-bottom-color:rgba(255,255,255,0.16);}}"]);
|
|
22
24
|
//
|
|
23
25
|
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
materialQuiz
|
|
28
|
-
} = MaterialQuizContext.useMaterialQuizState();
|
|
26
|
+
//
|
|
27
|
+
var MaterialQuizInfo = function MaterialQuizInfo() {
|
|
28
|
+
var _useMaterialQuizState = MaterialQuizContext.useMaterialQuizState(),
|
|
29
|
+
materialQuiz = _useMaterialQuizState.materialQuiz;
|
|
29
30
|
return React__default["default"].createElement(QuestionBox["default"], {
|
|
30
31
|
title: materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.questionTitle,
|
|
31
32
|
titlePrefix: "Q."
|
|
@@ -62,7 +63,7 @@ const MaterialQuizInfo = () => {
|
|
|
62
63
|
borderRadius: '4px',
|
|
63
64
|
width: "100%",
|
|
64
65
|
height: '40px'
|
|
65
|
-
})), React__default["default"].createElement(MaterialQuizAnswerExplanation, null));
|
|
66
|
+
})), React__default["default"].createElement(MaterialQuizAnswerExplanation["default"], null));
|
|
66
67
|
};
|
|
67
68
|
|
|
68
|
-
|
|
69
|
+
exports["default"] = MaterialQuizInfo;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
|
|
3
6
|
var React = require('react');
|
|
4
7
|
var reactIntl = require('react-intl');
|
|
5
8
|
var apiClient = require('@elice/api-client');
|
|
@@ -20,78 +23,88 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
20
23
|
|
|
21
24
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
var MaterialQuizSelectMultiple = function MaterialQuizSelectMultiple() {
|
|
24
27
|
// context
|
|
25
|
-
|
|
26
|
-
course,
|
|
27
|
-
lecture,
|
|
28
|
-
materialQuiz,
|
|
29
|
-
userId
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
28
|
+
var _useMaterialQuizState = MaterialQuizContext.useMaterialQuizState(),
|
|
29
|
+
course = _useMaterialQuizState.course,
|
|
30
|
+
lecture = _useMaterialQuizState.lecture,
|
|
31
|
+
materialQuiz = _useMaterialQuizState.materialQuiz,
|
|
32
|
+
userId = _useMaterialQuizState.userId;
|
|
33
|
+
var _useMaterialQuizDispa = MaterialQuizContext.useMaterialQuizDispatch(),
|
|
34
|
+
onSubmit = _useMaterialQuizDispa.onSubmit,
|
|
35
|
+
onNext = _useMaterialQuizDispa.onNext,
|
|
36
|
+
refreshOrgMaterialQuiz = _useMaterialQuizDispa.refreshOrgMaterialQuiz,
|
|
37
|
+
onDirty = _useMaterialQuizDispa.onDirty;
|
|
38
|
+
// state
|
|
39
|
+
var intl = reactIntl.useIntl();
|
|
40
|
+
var _React$useState = React__default["default"].useState([]),
|
|
41
|
+
_React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
|
|
42
|
+
selectedAnswer = _React$useState2[0],
|
|
43
|
+
setSelectedAnswer = _React$useState2[1];
|
|
44
|
+
var _React$useState3 = React__default["default"].useState(),
|
|
45
|
+
_React$useState4 = _rollupPluginBabelHelpers.slicedToArray(_React$useState3, 2),
|
|
46
|
+
materialQuizResponse = _React$useState4[0],
|
|
47
|
+
setMaterialQuizResponse = _React$useState4[1];
|
|
48
|
+
var _React$useState5 = React__default["default"].useState('idle'),
|
|
49
|
+
_React$useState6 = _rollupPluginBabelHelpers.slicedToArray(_React$useState5, 2),
|
|
50
|
+
submitStatus = _React$useState6[0],
|
|
51
|
+
setSubmitStatus = _React$useState6[1];
|
|
52
|
+
// Whether user has clicked any options
|
|
53
|
+
var _React$useState7 = React__default["default"].useState(false),
|
|
54
|
+
_React$useState8 = _rollupPluginBabelHelpers.slicedToArray(_React$useState7, 2),
|
|
55
|
+
isActive = _React$useState8[0],
|
|
56
|
+
setIsActive = _React$useState8[1];
|
|
57
|
+
var _React$useState9 = React__default["default"].useState(false),
|
|
58
|
+
_React$useState10 = _rollupPluginBabelHelpers.slicedToArray(_React$useState9, 2),
|
|
59
|
+
hasSubmitted = _React$useState10[0],
|
|
60
|
+
setHasSubmitted = _React$useState10[1];
|
|
61
|
+
// answer select handler
|
|
62
|
+
var handleAnswerSelect = function handleAnswerSelect(index$1) {
|
|
47
63
|
if (index.checkUserLectureTestEnded(lecture) || !!userId) {
|
|
48
64
|
return;
|
|
49
65
|
}
|
|
50
|
-
|
|
51
66
|
onDirty(true);
|
|
52
67
|
setHasSubmitted(false);
|
|
53
68
|
setIsActive(true);
|
|
54
|
-
setSelectedAnswer(prevState
|
|
55
|
-
|
|
69
|
+
setSelectedAnswer(function (prevState) {
|
|
70
|
+
var newState = prevState.includes(index$1) ? prevState.filter(function (ident) {
|
|
71
|
+
return ident !== index$1;
|
|
72
|
+
}) : [].concat(_rollupPluginBabelHelpers.toConsumableArray(prevState), [index$1]);
|
|
56
73
|
return newState;
|
|
57
74
|
});
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
React__default["default"].useEffect(() => {
|
|
75
|
+
};
|
|
76
|
+
// quiz response fetcher
|
|
77
|
+
React__default["default"].useEffect(function () {
|
|
62
78
|
if (!userId && (materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.lastQuizResponseId)) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
signal
|
|
66
|
-
} = controller;
|
|
79
|
+
var controller = new AbortController();
|
|
80
|
+
var signal = controller.signal;
|
|
67
81
|
apiClient.getOrgMaterialQuizResponseGet({
|
|
68
82
|
quizResponseId: materialQuiz.lastQuizResponseId
|
|
69
83
|
}, {
|
|
70
|
-
signal
|
|
71
|
-
}).then(response
|
|
72
|
-
setMaterialQuizResponse(response.quizResponse);
|
|
84
|
+
signal: signal
|
|
85
|
+
}).then(function (response) {
|
|
86
|
+
setMaterialQuizResponse(response.quizResponse);
|
|
87
|
+
// when user submitted answers and not get the result yet, update selected options (for example, test quiz)
|
|
73
88
|
// when is is a survey type quiz
|
|
74
|
-
|
|
75
89
|
if (!index.shouldResetOptions({
|
|
76
90
|
materialQuizResponse: response.quizResponse
|
|
77
91
|
})) {
|
|
78
92
|
setSelectedAnswer(response.quizResponse.answer);
|
|
79
93
|
}
|
|
80
|
-
|
|
81
94
|
setSelectedAnswer(response.quizResponse.answer);
|
|
82
|
-
}).catch(error
|
|
95
|
+
}).catch(function (error) {
|
|
83
96
|
console.error(error);
|
|
84
97
|
});
|
|
85
|
-
return ()
|
|
98
|
+
return function () {
|
|
99
|
+
return controller.abort();
|
|
100
|
+
};
|
|
86
101
|
}
|
|
87
|
-
}, [materialQuiz, userId]);
|
|
88
|
-
|
|
89
|
-
React__default["default"].useEffect(()
|
|
102
|
+
}, [materialQuiz, userId]);
|
|
103
|
+
// quiz response fetcher
|
|
104
|
+
React__default["default"].useEffect(function () {
|
|
90
105
|
if (userId && materialQuiz) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
signal
|
|
94
|
-
} = controller;
|
|
106
|
+
var controller = new AbortController();
|
|
107
|
+
var signal = controller.signal;
|
|
95
108
|
apiClient.getOrgMaterialQuizResponseList({
|
|
96
109
|
materialQuizId: materialQuiz.id,
|
|
97
110
|
filterUserIds: [userId],
|
|
@@ -100,55 +113,77 @@ const MaterialQuizSelectMultiple = () => {
|
|
|
100
113
|
offset: 0,
|
|
101
114
|
count: 1
|
|
102
115
|
}, {
|
|
103
|
-
signal
|
|
104
|
-
}).then(response
|
|
105
|
-
|
|
106
|
-
|
|
116
|
+
signal: signal
|
|
117
|
+
}).then(function (response) {
|
|
118
|
+
var quizResponse = response.quizResponses[0];
|
|
119
|
+
var quizResponseAnswer = quizResponse.answer;
|
|
107
120
|
setMaterialQuizResponse(quizResponse);
|
|
108
|
-
|
|
109
121
|
if (Array.isArray(quizResponseAnswer)) {
|
|
110
122
|
setSelectedAnswer(quizResponseAnswer);
|
|
111
123
|
}
|
|
112
|
-
}).catch(error
|
|
124
|
+
}).catch(function (error) {
|
|
113
125
|
console.error(error);
|
|
114
126
|
});
|
|
115
|
-
return ()
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const handleSubmit = async () => {
|
|
120
|
-
if (!materialQuiz) {
|
|
121
|
-
return;
|
|
127
|
+
return function () {
|
|
128
|
+
return controller.abort();
|
|
129
|
+
};
|
|
122
130
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
131
|
+
}, [materialQuiz, userId]);
|
|
132
|
+
// submit handler
|
|
133
|
+
var handleSubmit = /*#__PURE__*/function () {
|
|
134
|
+
var _ref = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
|
|
135
|
+
var _yield$postOrgMateria, quizResponseId, _yield$getOrgMaterial, quizResponse;
|
|
136
|
+
return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
|
|
137
|
+
while (1) switch (_context.prev = _context.next) {
|
|
138
|
+
case 0:
|
|
139
|
+
if (materialQuiz) {
|
|
140
|
+
_context.next = 2;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
return _context.abrupt("return");
|
|
144
|
+
case 2:
|
|
145
|
+
setSubmitStatus('pending');
|
|
146
|
+
_context.prev = 3;
|
|
147
|
+
_context.next = 6;
|
|
148
|
+
return apiClient.postOrgMaterialQuizResponseAdd({
|
|
149
|
+
materialQuizId: materialQuiz.id,
|
|
150
|
+
answer: selectedAnswer
|
|
151
|
+
});
|
|
152
|
+
case 6:
|
|
153
|
+
_yield$postOrgMateria = _context.sent;
|
|
154
|
+
quizResponseId = _yield$postOrgMateria.quizResponseId;
|
|
155
|
+
_context.next = 10;
|
|
156
|
+
return apiClient.getOrgMaterialQuizResponseGet({
|
|
157
|
+
quizResponseId: quizResponseId
|
|
158
|
+
});
|
|
159
|
+
case 10:
|
|
160
|
+
_yield$getOrgMaterial = _context.sent;
|
|
161
|
+
quizResponse = _yield$getOrgMaterial.quizResponse;
|
|
162
|
+
setIsActive(false);
|
|
163
|
+
setMaterialQuizResponse(quizResponse);
|
|
164
|
+
void refreshOrgMaterialQuiz();
|
|
165
|
+
onSubmit(true, index.getQuizResult(quizResponse));
|
|
166
|
+
setSubmitStatus('resolved');
|
|
167
|
+
setHasSubmitted(true);
|
|
168
|
+
onDirty(false);
|
|
169
|
+
_context.next = 26;
|
|
170
|
+
break;
|
|
171
|
+
case 21:
|
|
172
|
+
_context.prev = 21;
|
|
173
|
+
_context.t0 = _context["catch"](3);
|
|
174
|
+
console.error(_context.t0);
|
|
175
|
+
onSubmit(false);
|
|
176
|
+
setSubmitStatus('rejected');
|
|
177
|
+
case 26:
|
|
178
|
+
case "end":
|
|
179
|
+
return _context.stop();
|
|
180
|
+
}
|
|
181
|
+
}, _callee, null, [[3, 21]]);
|
|
182
|
+
}));
|
|
183
|
+
return function handleSubmit() {
|
|
184
|
+
return _ref.apply(this, arguments);
|
|
185
|
+
};
|
|
186
|
+
}();
|
|
152
187
|
return React__default["default"].createElement(QuestionBox["default"], {
|
|
153
188
|
title: intl.formatMessage({
|
|
154
189
|
id: 'materialQuiz.selectMultiple.answer.title'
|
|
@@ -156,10 +191,10 @@ const MaterialQuizSelectMultiple = () => {
|
|
|
156
191
|
titlePrefix: "A.",
|
|
157
192
|
onNext: onNext,
|
|
158
193
|
isNextActive: hasSubmitted && typeof onNext === 'function',
|
|
159
|
-
submitResult: React__default["default"].createElement(QuizResultBadge, {
|
|
194
|
+
submitResult: React__default["default"].createElement(QuizResultBadge["default"], {
|
|
160
195
|
materialQuizResponse: materialQuizResponse
|
|
161
196
|
}),
|
|
162
|
-
submitStatus: React__default["default"].createElement(QuizSubmitStatusText, {
|
|
197
|
+
submitStatus: React__default["default"].createElement(QuizSubmitStatusText["default"], {
|
|
163
198
|
status: submitStatus
|
|
164
199
|
}),
|
|
165
200
|
footerActions: [{
|
|
@@ -174,36 +209,32 @@ const MaterialQuizSelectMultiple = () => {
|
|
|
174
209
|
id: 'materialQuiz.submit'
|
|
175
210
|
})
|
|
176
211
|
}]
|
|
177
|
-
}, React__default["default"].createElement(QuestionCheckbox, {
|
|
212
|
+
}, React__default["default"].createElement(QuestionCheckbox["default"], {
|
|
178
213
|
onSelect: handleAnswerSelect,
|
|
179
214
|
selectedOptions: selectedAnswer,
|
|
180
215
|
disabled: submitStatus === 'pending' || index.checkUserLectureTestEnded(lecture) || !!userId
|
|
181
|
-
}, (materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.options) ? materialQuiz.options.map((option, index$1)
|
|
216
|
+
}, (materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.options) ? materialQuiz.options.map(function (option, index$1) {
|
|
182
217
|
var _a;
|
|
183
|
-
|
|
184
|
-
const getIsSelected = (index, materialQuizResponse) => {
|
|
218
|
+
var getIsSelected = function getIsSelected(index, materialQuizResponse) {
|
|
185
219
|
var _a;
|
|
186
|
-
|
|
187
220
|
if (!materialQuizResponse) {
|
|
188
221
|
return false;
|
|
189
222
|
}
|
|
190
|
-
|
|
191
|
-
const materialQuizResponseAnswer = materialQuizResponse.answer;
|
|
223
|
+
var materialQuizResponseAnswer = materialQuizResponse.answer;
|
|
192
224
|
return (_a = materialQuizResponseAnswer.includes(index)) !== null && _a !== void 0 ? _a : false;
|
|
193
225
|
};
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
materialQuizResponse,
|
|
226
|
+
var status = index.getOptionStatus({
|
|
227
|
+
materialQuizResponse: materialQuizResponse,
|
|
197
228
|
isSelected: getIsSelected(index$1, materialQuizResponse),
|
|
198
|
-
isActive
|
|
229
|
+
isActive: isActive
|
|
199
230
|
});
|
|
200
|
-
|
|
201
|
-
return React__default["default"].createElement(QuestionCheckboxOption, {
|
|
231
|
+
var materialQuizAnswerInfo = materialQuiz.answerInfo;
|
|
232
|
+
return React__default["default"].createElement(QuestionCheckboxOption["default"], {
|
|
202
233
|
key: index$1,
|
|
203
234
|
value: index$1,
|
|
204
235
|
status: status,
|
|
205
236
|
isAnswer: !!userId && Array.isArray(materialQuizAnswerInfo) && materialQuizAnswerInfo.includes(index$1)
|
|
206
|
-
}, (course === null || course === void 0 ? void 0 : course.preference.renderMarkdownInQuizOptions) ? React__default["default"].createElement(StyledMarkdown, {
|
|
237
|
+
}, (course === null || course === void 0 ? void 0 : course.preference.renderMarkdownInQuizOptions) ? React__default["default"].createElement(StyledMarkdown["default"], {
|
|
207
238
|
children: (_a = option === null || option === void 0 ? void 0 : option.content) !== null && _a !== void 0 ? _a : '',
|
|
208
239
|
paddingx: 0,
|
|
209
240
|
paddingy: 0,
|
|
@@ -212,4 +243,4 @@ const MaterialQuizSelectMultiple = () => {
|
|
|
212
243
|
}) : null));
|
|
213
244
|
};
|
|
214
245
|
|
|
215
|
-
|
|
246
|
+
exports["default"] = MaterialQuizSelectMultiple;
|