@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.
Files changed (97) hide show
  1. package/cjs/_virtual/_rollupPluginBabelHelpers.js +409 -0
  2. package/cjs/components/eb-sortable/EbDraggable.js +37 -36
  3. package/cjs/components/eb-sortable/EbDroppable.js +20 -20
  4. package/cjs/components/material-quiz/MaterialQuiz.i18n.js +4 -4
  5. package/cjs/components/material-quiz/MaterialQuiz.js +64 -57
  6. package/cjs/components/material-quiz/MaterialQuizAnswerExplanation.js +10 -12
  7. package/cjs/components/material-quiz/MaterialQuizInfo.js +11 -10
  8. package/cjs/components/material-quiz/MaterialQuizSelectMultiple.js +138 -107
  9. package/cjs/components/material-quiz/MaterialQuizSelectMultipleOrder.js +236 -212
  10. package/cjs/components/material-quiz/MaterialQuizSelectOne.js +133 -102
  11. package/cjs/components/material-quiz/MaterialQuizShimmer.js +12 -11
  12. package/cjs/components/material-quiz/MaterialQuizText.js +119 -85
  13. package/cjs/components/material-quiz/QuizResultBadge.js +9 -10
  14. package/cjs/components/material-quiz/QuizSubmitStatusText.js +6 -8
  15. package/cjs/components/material-quiz/context/MaterialQuizContext.js +104 -81
  16. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +217 -158
  17. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.js +65 -63
  18. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.js +75 -73
  19. package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupOptionItem.js +42 -42
  20. package/cjs/components/material-quiz/material-quiz-group/context/context.js +4 -2
  21. package/cjs/components/material-quiz/material-quiz-group/index.js +3 -1
  22. package/cjs/components/material-quiz-edit/MaterialQuizEdit.js +45 -38
  23. package/cjs/components/material-quiz-edit/MaterialQuizEditContent.js +140 -177
  24. package/cjs/components/material-quiz-edit/context.js +4 -2
  25. package/cjs/components/material-quiz-edit/locales.js +2 -2
  26. package/cjs/components/material-quiz-edit/options/OptionSelectMultiple.js +101 -105
  27. package/cjs/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +102 -106
  28. package/cjs/components/material-quiz-edit/options/OptionSelectOne.js +89 -104
  29. package/cjs/components/material-quiz-edit/options/OptionText.js +31 -31
  30. package/cjs/components/material-quiz-edit/options/options-group/OptionGroup.js +6 -4
  31. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerInfo.js +73 -66
  32. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +177 -149
  33. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupGroupInfo.js +47 -54
  34. package/cjs/components/material-quiz-edit/options/options-group/OptionGroupGroupListItem.js +40 -48
  35. package/cjs/components/material-quiz-edit/utils/checkTwoDimensionArray.js +5 -1
  36. package/cjs/components/material-quiz-edit/utils/editValue.js +17 -15
  37. package/cjs/components/shared/QuestionBox.js +50 -56
  38. package/cjs/components/shared/QuizDraggbleDroppedOption.js +12 -10
  39. package/cjs/components/shared/QuizDraggbleDummyOption.js +8 -8
  40. package/cjs/components/shared/QuizDraggbleOption.js +41 -67
  41. package/cjs/components/shared/StyledMarkdown.js +4 -2
  42. package/cjs/components/shared/question-checkbox/QuestionCheckbox.js +7 -9
  43. package/cjs/components/shared/question-checkbox/QuestionCheckboxContext.js +15 -18
  44. package/cjs/components/shared/question-checkbox/QuestionCheckboxOption.js +47 -84
  45. package/cjs/components/shared/question-radio/QuestionRadio.js +7 -9
  46. package/cjs/components/shared/question-radio/QuestionRadioContext.js +15 -18
  47. package/cjs/components/shared/question-radio/QuestionRadioOption.js +40 -70
  48. package/cjs/helpers/index.js +8 -22
  49. package/cjs/index.js +10 -10
  50. package/es/_virtual/_rollupPluginBabelHelpers.js +394 -0
  51. package/es/components/eb-sortable/EbDraggable.js +34 -35
  52. package/es/components/eb-sortable/EbDroppable.js +17 -19
  53. package/es/components/material-quiz/MaterialQuiz.i18n.js +4 -4
  54. package/es/components/material-quiz/MaterialQuiz.js +59 -52
  55. package/es/components/material-quiz/MaterialQuizAnswerExplanation.js +7 -11
  56. package/es/components/material-quiz/MaterialQuizInfo.js +7 -8
  57. package/es/components/material-quiz/MaterialQuizSelectMultiple.js +130 -101
  58. package/es/components/material-quiz/MaterialQuizSelectMultipleOrder.js +228 -206
  59. package/es/components/material-quiz/MaterialQuizSelectOne.js +125 -96
  60. package/es/components/material-quiz/MaterialQuizShimmer.js +9 -10
  61. package/es/components/material-quiz/MaterialQuizText.js +114 -82
  62. package/es/components/material-quiz/QuizResultBadge.js +6 -9
  63. package/es/components/material-quiz/QuizSubmitStatusText.js +3 -7
  64. package/es/components/material-quiz/context/MaterialQuizContext.js +105 -82
  65. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +209 -152
  66. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.js +62 -62
  67. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.js +72 -72
  68. package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupOptionItem.js +39 -41
  69. package/es/components/material-quiz/material-quiz-group/context/context.js +1 -1
  70. package/es/components/material-quiz-edit/MaterialQuizEdit.js +41 -36
  71. package/es/components/material-quiz-edit/MaterialQuizEditContent.js +132 -171
  72. package/es/components/material-quiz-edit/context.js +4 -2
  73. package/es/components/material-quiz-edit/locales.js +2 -2
  74. package/es/components/material-quiz-edit/options/OptionSelectMultiple.js +98 -104
  75. package/es/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +99 -105
  76. package/es/components/material-quiz-edit/options/OptionSelectOne.js +86 -103
  77. package/es/components/material-quiz-edit/options/OptionText.js +28 -30
  78. package/es/components/material-quiz-edit/options/options-group/OptionGroup.js +1 -1
  79. package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerInfo.js +70 -65
  80. package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +175 -149
  81. package/es/components/material-quiz-edit/options/options-group/OptionGroupGroupInfo.js +44 -53
  82. package/es/components/material-quiz-edit/options/options-group/OptionGroupGroupListItem.js +37 -47
  83. package/es/components/material-quiz-edit/utils/checkTwoDimensionArray.js +5 -1
  84. package/es/components/material-quiz-edit/utils/editValue.js +17 -15
  85. package/es/components/shared/QuestionBox.js +50 -56
  86. package/es/components/shared/QuizDraggbleDroppedOption.js +8 -8
  87. package/es/components/shared/QuizDraggbleDummyOption.js +5 -7
  88. package/es/components/shared/QuizDraggbleOption.js +37 -65
  89. package/es/components/shared/StyledMarkdown.js +1 -1
  90. package/es/components/shared/question-checkbox/QuestionCheckbox.js +4 -8
  91. package/es/components/shared/question-checkbox/QuestionCheckboxContext.js +15 -18
  92. package/es/components/shared/question-checkbox/QuestionCheckboxOption.js +44 -83
  93. package/es/components/shared/question-radio/QuestionRadio.js +4 -8
  94. package/es/components/shared/question-radio/QuestionRadioContext.js +15 -18
  95. package/es/components/shared/question-radio/QuestionRadioOption.js +37 -69
  96. package/es/helpers/index.js +8 -22
  97. 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
- const AsyncMaterialQuizSelectMultiple = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./MaterialQuizSelectMultiple.js')); }));
22
- const AsyncMaterialQuizSelectMultipleOrder = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./MaterialQuizSelectMultipleOrder.js')); }));
23
- const AsyncMaterialQuizText = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./MaterialQuizText.js')); }));
24
- const AsyncMaterialQuizSelectOne = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./MaterialQuizSelectOne.js')); }));
25
- const AsyncMaterialQuizGroup = React__default["default"].lazy(() => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./material-quiz-group/index.js')); }));
26
- const StyledMaterialQuizInfo = styled__default["default"].div.withConfig({
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
- const StyledMaterialQuizContent = styled__default["default"].div.withConfig({
40
+ var StyledMaterialQuizContent = styled__default["default"].div.withConfig({
30
41
  componentId: "sc-1eyn8fb-1"
31
42
  })(["min-width:0;"]);
32
- const StyledMaterialQuizWrapper = styled__default["default"].div.withConfig({
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
- }) => vertical ? 'column' : 'row', ({
37
- vertical
38
- }) => vertical ? 'auto' : '1 0 calc(50% - 1rem);', ({
39
- vertical
40
- }) => vertical ? '0' : '1rem', ({
41
- vertical
42
- }) => vertical ? '1rem' : '0', StyledMaterialQuizInfo, ({
43
- vertical
44
- }) => vertical ? 'auto' : '100%', ({
45
- vertical
46
- }) => vertical ? 'intial' : 'auto');
47
-
48
- const MaterialQuiz = () => {
49
- const {
50
- materialQuiz,
51
- vertical
52
- } = MaterialQuizContext.useMaterialQuizState();
53
- const {
54
- setVertical
55
- } = MaterialQuizContext.useMaterialQuizDispatch();
56
- const [ref, {
57
- width
58
- }] = reactUse.useMeasure();
59
- const isQuizGroupType = Boolean((materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.optionType) === types.enums.QuizOptionType.Group);
60
- React__default["default"].useEffect(() => {
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
- let Component = null;
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
- const MaterialQuizContainer = ({
102
- materialQuizId,
103
- userId,
104
- locale = 'en',
105
- onDirty,
106
- onSubmit,
107
- onNext
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
- module.exports = MaterialQuizContainer;
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
- const StyledMarkdownSSR = styled__default["default"](markdown.MarkdownSSR).withConfig({
19
+ var StyledMarkdownSSR = styled__default["default"](markdown.MarkdownSSR).withConfig({
18
20
  componentId: "sc-18kg5i5-0"
19
21
  })(["p{margin:0 !important;}"]);
20
- const StyledAccordion = styled__default["default"](blocks.Accordion).withConfig({
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
- const MaterialQuizAnswerExplanation = () => {
25
- const {
26
- lecture,
27
- materialQuiz
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
- module.exports = MaterialQuizAnswerExplanation;
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
- const StyledMarkdownSSR = styled__default["default"](markdown.MarkdownSSR).withConfig({
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
- const MaterialQuizInfo = () => {
26
- const {
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
- module.exports = MaterialQuizInfo;
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
- const MaterialQuizSelectMultiple = () => {
26
+ var MaterialQuizSelectMultiple = function MaterialQuizSelectMultiple() {
24
27
  // context
25
- const {
26
- course,
27
- lecture,
28
- materialQuiz,
29
- userId
30
- } = MaterialQuizContext.useMaterialQuizState();
31
- const {
32
- onSubmit,
33
- onNext,
34
- refreshOrgMaterialQuiz,
35
- onDirty
36
- } = MaterialQuizContext.useMaterialQuizDispatch(); // state
37
-
38
- const intl = reactIntl.useIntl();
39
- const [selectedAnswer, setSelectedAnswer] = React__default["default"].useState([]);
40
- const [materialQuizResponse, setMaterialQuizResponse] = React__default["default"].useState();
41
- const [submitStatus, setSubmitStatus] = React__default["default"].useState('idle'); // Whether user has clicked any options
42
-
43
- const [isActive, setIsActive] = React__default["default"].useState(false);
44
- const [hasSubmitted, setHasSubmitted] = React__default["default"].useState(false); // answer select handler
45
-
46
- const handleAnswerSelect = index$1 => {
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
- const newState = prevState.includes(index$1) ? prevState.filter(ident => ident !== index$1) : [...prevState, index$1];
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
- }; // quiz response fetcher
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
- const controller = new AbortController();
64
- const {
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); // when user submitted answers and not get the result yet, update selected options (for example, test quiz)
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 () => controller.abort();
98
+ return function () {
99
+ return controller.abort();
100
+ };
86
101
  }
87
- }, [materialQuiz, userId]); // quiz response fetcher
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
- const controller = new AbortController();
92
- const {
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
- const quizResponse = response.quizResponses[0];
106
- const quizResponseAnswer = quizResponse.answer;
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 () => controller.abort();
116
- }
117
- }, [materialQuiz, userId]); // submit handler
118
-
119
- const handleSubmit = async () => {
120
- if (!materialQuiz) {
121
- return;
127
+ return function () {
128
+ return controller.abort();
129
+ };
122
130
  }
123
-
124
- setSubmitStatus('pending');
125
-
126
- try {
127
- const {
128
- quizResponseId
129
- } = await apiClient.postOrgMaterialQuizResponseAdd({
130
- materialQuizId: materialQuiz.id,
131
- answer: selectedAnswer
132
- });
133
- const {
134
- quizResponse
135
- } = await apiClient.getOrgMaterialQuizResponseGet({
136
- quizResponseId
137
- });
138
- setIsActive(false);
139
- setMaterialQuizResponse(quizResponse);
140
- void refreshOrgMaterialQuiz();
141
- onSubmit(true, index.getQuizResult(quizResponse));
142
- setSubmitStatus('resolved');
143
- setHasSubmitted(true);
144
- onDirty(false);
145
- } catch (error) {
146
- console.error(error);
147
- onSubmit(false);
148
- setSubmitStatus('rejected');
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
- const status = index.getOptionStatus({
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
- const materialQuizAnswerInfo = materialQuiz.answerInfo;
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
- module.exports = MaterialQuizSelectMultiple;
246
+ exports["default"] = MaterialQuizSelectMultiple;