@elice/material-quiz 1.220803.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 (160) hide show
  1. package/README.md +3 -0
  2. package/cjs/components/eb-sortable/EbDraggable.d.ts +18 -0
  3. package/cjs/components/eb-sortable/EbDraggable.js +112 -0
  4. package/cjs/components/eb-sortable/EbDroppable.d.ts +13 -0
  5. package/cjs/components/eb-sortable/EbDroppable.js +60 -0
  6. package/cjs/components/eb-sortable/EbSortable.d.ts +17 -0
  7. package/cjs/components/material-quiz/MaterialQuiz.d.ts +4 -0
  8. package/cjs/components/material-quiz/MaterialQuiz.i18n.d.ts +25 -0
  9. package/cjs/components/material-quiz/MaterialQuiz.i18n.js +55 -0
  10. package/cjs/components/material-quiz/MaterialQuiz.js +114 -0
  11. package/cjs/components/material-quiz/MaterialQuizAnswerExplanation.d.ts +3 -0
  12. package/cjs/components/material-quiz/MaterialQuizAnswerExplanation.js +55 -0
  13. package/cjs/components/material-quiz/MaterialQuizError.d.ts +3 -0
  14. package/cjs/components/material-quiz/MaterialQuizInfo.d.ts +3 -0
  15. package/cjs/components/material-quiz/MaterialQuizInfo.js +74 -0
  16. package/cjs/components/material-quiz/MaterialQuizSelectMultiple.d.ts +3 -0
  17. package/cjs/components/material-quiz/MaterialQuizSelectMultiple.js +203 -0
  18. package/cjs/components/material-quiz/MaterialQuizSelectMultipleOrder.d.ts +3 -0
  19. package/cjs/components/material-quiz/MaterialQuizSelectMultipleOrder.js +468 -0
  20. package/cjs/components/material-quiz/MaterialQuizSelectOne.d.ts +3 -0
  21. package/cjs/components/material-quiz/MaterialQuizSelectOne.js +191 -0
  22. package/cjs/components/material-quiz/MaterialQuizShimmer.d.ts +3 -0
  23. package/cjs/components/material-quiz/MaterialQuizShimmer.js +61 -0
  24. package/cjs/components/material-quiz/MaterialQuizText.d.ts +3 -0
  25. package/cjs/components/material-quiz/MaterialQuizText.js +181 -0
  26. package/cjs/components/material-quiz/QuizResultBadge.d.ts +7 -0
  27. package/cjs/components/material-quiz/QuizResultBadge.js +48 -0
  28. package/cjs/components/material-quiz/QuizSubmitStatusText.d.ts +7 -0
  29. package/cjs/components/material-quiz/QuizSubmitStatusText.js +38 -0
  30. package/cjs/components/material-quiz/context/MaterialQuizContext.d.ts +31 -0
  31. package/cjs/components/material-quiz/context/MaterialQuizContext.js +134 -0
  32. package/cjs/components/material-quiz/index.d.ts +3 -0
  33. package/cjs/components/material-quiz-edit/MaterialQuizEdit.d.ts +25 -0
  34. package/cjs/components/material-quiz-edit/MaterialQuizEdit.js +91 -0
  35. package/cjs/components/material-quiz-edit/MaterialQuizEditContent.d.ts +3 -0
  36. package/cjs/components/material-quiz-edit/MaterialQuizEditContent.js +463 -0
  37. package/cjs/components/material-quiz-edit/context.d.ts +6 -0
  38. package/cjs/components/material-quiz-edit/context.js +15 -0
  39. package/cjs/components/material-quiz-edit/index.d.ts +2 -0
  40. package/cjs/components/material-quiz-edit/locales.d.ts +34 -0
  41. package/cjs/components/material-quiz-edit/locales.js +73 -0
  42. package/cjs/components/material-quiz-edit/options/OptionSelectMultiple.d.ts +3 -0
  43. package/cjs/components/material-quiz-edit/options/OptionSelectMultiple.js +204 -0
  44. package/cjs/components/material-quiz-edit/options/OptionSelectMultipleOrder.d.ts +3 -0
  45. package/cjs/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +205 -0
  46. package/cjs/components/material-quiz-edit/options/OptionSelectOne.d.ts +3 -0
  47. package/cjs/components/material-quiz-edit/options/OptionSelectOne.js +207 -0
  48. package/cjs/components/material-quiz-edit/options/OptionText.d.ts +3 -0
  49. package/cjs/components/material-quiz-edit/options/OptionText.js +99 -0
  50. package/cjs/components/material-quiz-edit/utils/editValue.d.ts +15 -0
  51. package/cjs/components/material-quiz-edit/utils/editValue.js +37 -0
  52. package/cjs/components/material-quiz-edit/utils/randomId.d.ts +4 -0
  53. package/cjs/components/material-quiz-edit/utils/randomId.js +12 -0
  54. package/cjs/components/shared/QuestionBox.d.ts +16 -0
  55. package/cjs/components/shared/QuestionBox.js +111 -0
  56. package/cjs/components/shared/QuizDraggbleDroppedOption.d.ts +12 -0
  57. package/cjs/components/shared/QuizDraggbleDroppedOption.js +31 -0
  58. package/cjs/components/shared/QuizDraggbleDummyOption.d.ts +8 -0
  59. package/cjs/components/shared/QuizDraggbleDummyOption.js +36 -0
  60. package/cjs/components/shared/QuizDraggbleOption.d.ts +14 -0
  61. package/cjs/components/shared/QuizDraggbleOption.js +191 -0
  62. package/cjs/components/shared/StyledMarkdown.d.ts +3 -0
  63. package/cjs/components/shared/StyledMarkdown.js +14 -0
  64. package/cjs/components/shared/index.d.ts +7 -0
  65. package/cjs/components/shared/question-checkbox/QuestionCheckbox.d.ts +8 -0
  66. package/cjs/components/shared/question-checkbox/QuestionCheckbox.js +26 -0
  67. package/cjs/components/shared/question-checkbox/QuestionCheckboxContext.d.ts +9 -0
  68. package/cjs/components/shared/question-checkbox/QuestionCheckboxContext.js +42 -0
  69. package/cjs/components/shared/question-checkbox/QuestionCheckboxOption.d.ts +9 -0
  70. package/cjs/components/shared/question-checkbox/QuestionCheckboxOption.js +188 -0
  71. package/cjs/components/shared/question-radio/QuestionRadio.d.ts +8 -0
  72. package/cjs/components/shared/question-radio/QuestionRadio.js +26 -0
  73. package/cjs/components/shared/question-radio/QuestionRadioContext.d.ts +9 -0
  74. package/cjs/components/shared/question-radio/QuestionRadioContext.js +42 -0
  75. package/cjs/components/shared/question-radio/QuestionRadioOption.d.ts +9 -0
  76. package/cjs/components/shared/question-radio/QuestionRadioOption.js +156 -0
  77. package/cjs/helpers/index.d.ts +50 -0
  78. package/cjs/helpers/index.js +86 -0
  79. package/cjs/index.d.ts +3 -0
  80. package/cjs/index.js +27 -0
  81. package/es/components/eb-sortable/EbDraggable.d.ts +18 -0
  82. package/es/components/eb-sortable/EbDraggable.js +105 -0
  83. package/es/components/eb-sortable/EbDroppable.d.ts +13 -0
  84. package/es/components/eb-sortable/EbDroppable.js +53 -0
  85. package/es/components/eb-sortable/EbSortable.d.ts +17 -0
  86. package/es/components/material-quiz/MaterialQuiz.d.ts +4 -0
  87. package/es/components/material-quiz/MaterialQuiz.i18n.d.ts +25 -0
  88. package/es/components/material-quiz/MaterialQuiz.i18n.js +50 -0
  89. package/es/components/material-quiz/MaterialQuiz.js +106 -0
  90. package/es/components/material-quiz/MaterialQuizAnswerExplanation.d.ts +3 -0
  91. package/es/components/material-quiz/MaterialQuizAnswerExplanation.js +48 -0
  92. package/es/components/material-quiz/MaterialQuizError.d.ts +3 -0
  93. package/es/components/material-quiz/MaterialQuizInfo.d.ts +3 -0
  94. package/es/components/material-quiz/MaterialQuizInfo.js +68 -0
  95. package/es/components/material-quiz/MaterialQuizSelectMultiple.d.ts +3 -0
  96. package/es/components/material-quiz/MaterialQuizSelectMultiple.js +197 -0
  97. package/es/components/material-quiz/MaterialQuizSelectMultipleOrder.d.ts +3 -0
  98. package/es/components/material-quiz/MaterialQuizSelectMultipleOrder.js +461 -0
  99. package/es/components/material-quiz/MaterialQuizSelectOne.d.ts +3 -0
  100. package/es/components/material-quiz/MaterialQuizSelectOne.js +185 -0
  101. package/es/components/material-quiz/MaterialQuizShimmer.d.ts +3 -0
  102. package/es/components/material-quiz/MaterialQuizShimmer.js +54 -0
  103. package/es/components/material-quiz/MaterialQuizText.d.ts +3 -0
  104. package/es/components/material-quiz/MaterialQuizText.js +174 -0
  105. package/es/components/material-quiz/QuizResultBadge.d.ts +7 -0
  106. package/es/components/material-quiz/QuizResultBadge.js +42 -0
  107. package/es/components/material-quiz/QuizSubmitStatusText.d.ts +7 -0
  108. package/es/components/material-quiz/QuizSubmitStatusText.js +32 -0
  109. package/es/components/material-quiz/context/MaterialQuizContext.d.ts +31 -0
  110. package/es/components/material-quiz/context/MaterialQuizContext.js +124 -0
  111. package/es/components/material-quiz/index.d.ts +3 -0
  112. package/es/components/material-quiz-edit/MaterialQuizEdit.d.ts +25 -0
  113. package/es/components/material-quiz-edit/MaterialQuizEdit.js +86 -0
  114. package/es/components/material-quiz-edit/MaterialQuizEditContent.d.ts +3 -0
  115. package/es/components/material-quiz-edit/MaterialQuizEditContent.js +456 -0
  116. package/es/components/material-quiz-edit/context.d.ts +6 -0
  117. package/es/components/material-quiz-edit/context.js +6 -0
  118. package/es/components/material-quiz-edit/index.d.ts +2 -0
  119. package/es/components/material-quiz-edit/locales.d.ts +34 -0
  120. package/es/components/material-quiz-edit/locales.js +68 -0
  121. package/es/components/material-quiz-edit/options/OptionSelectMultiple.d.ts +3 -0
  122. package/es/components/material-quiz-edit/options/OptionSelectMultiple.js +197 -0
  123. package/es/components/material-quiz-edit/options/OptionSelectMultipleOrder.d.ts +3 -0
  124. package/es/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +198 -0
  125. package/es/components/material-quiz-edit/options/OptionSelectOne.d.ts +3 -0
  126. package/es/components/material-quiz-edit/options/OptionSelectOne.js +200 -0
  127. package/es/components/material-quiz-edit/options/OptionText.d.ts +3 -0
  128. package/es/components/material-quiz-edit/options/OptionText.js +93 -0
  129. package/es/components/material-quiz-edit/utils/editValue.d.ts +15 -0
  130. package/es/components/material-quiz-edit/utils/editValue.js +32 -0
  131. package/es/components/material-quiz-edit/utils/randomId.d.ts +4 -0
  132. package/es/components/material-quiz-edit/utils/randomId.js +8 -0
  133. package/es/components/shared/QuestionBox.d.ts +16 -0
  134. package/es/components/shared/QuestionBox.js +101 -0
  135. package/es/components/shared/QuizDraggbleDroppedOption.d.ts +12 -0
  136. package/es/components/shared/QuizDraggbleDroppedOption.js +25 -0
  137. package/es/components/shared/QuizDraggbleDummyOption.d.ts +8 -0
  138. package/es/components/shared/QuizDraggbleDummyOption.js +29 -0
  139. package/es/components/shared/QuizDraggbleOption.d.ts +14 -0
  140. package/es/components/shared/QuizDraggbleOption.js +184 -0
  141. package/es/components/shared/StyledMarkdown.d.ts +3 -0
  142. package/es/components/shared/StyledMarkdown.js +8 -0
  143. package/es/components/shared/index.d.ts +7 -0
  144. package/es/components/shared/question-checkbox/QuestionCheckbox.d.ts +8 -0
  145. package/es/components/shared/question-checkbox/QuestionCheckbox.js +19 -0
  146. package/es/components/shared/question-checkbox/QuestionCheckboxContext.d.ts +9 -0
  147. package/es/components/shared/question-checkbox/QuestionCheckboxContext.js +33 -0
  148. package/es/components/shared/question-checkbox/QuestionCheckboxOption.d.ts +9 -0
  149. package/es/components/shared/question-checkbox/QuestionCheckboxOption.js +181 -0
  150. package/es/components/shared/question-radio/QuestionRadio.d.ts +8 -0
  151. package/es/components/shared/question-radio/QuestionRadio.js +19 -0
  152. package/es/components/shared/question-radio/QuestionRadioContext.d.ts +9 -0
  153. package/es/components/shared/question-radio/QuestionRadioContext.js +33 -0
  154. package/es/components/shared/question-radio/QuestionRadioOption.d.ts +9 -0
  155. package/es/components/shared/question-radio/QuestionRadioOption.js +149 -0
  156. package/es/helpers/index.d.ts +50 -0
  157. package/es/helpers/index.js +78 -0
  158. package/es/index.d.ts +3 -0
  159. package/es/index.js +10 -0
  160. package/package.json +75 -0
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # elice-material-quiz
2
+
3
+ User view and editing components of Elice material quiz.
@@ -0,0 +1,18 @@
1
+ /// <reference types="jquery" />
2
+ /// <reference types="jqueryui" />
3
+ import React from 'react';
4
+ import 'jquery-ui/ui/widgets/draggable';
5
+ interface EbDraggableProps {
6
+ id?: string;
7
+ className?: string;
8
+ connectWith?: JQuery.Selector;
9
+ disabled?: boolean;
10
+ revert?: boolean;
11
+ clone?: boolean;
12
+ onStart?: (event: JQueryEventObject, ui: JQueryUI.DraggableEventUIParams) => void;
13
+ onStop?: (event: JQueryEventObject, ui: JQueryUI.DraggableEventUIParams) => void;
14
+ onDrag?: (event: JQueryEventObject, ui: JQueryUI.DraggableEventUIParams) => void;
15
+ onCreate?: (event: JQueryEventObject, ui: JQueryUI.DraggableEventUIParams) => void;
16
+ }
17
+ declare const EbDraggable: React.FC<EbDraggableProps>;
18
+ export default EbDraggable;
@@ -0,0 +1,112 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var $ = require('jquery');
5
+ require('jquery-ui/ui/widgets/draggable');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
+ var $__default = /*#__PURE__*/_interopDefaultLegacy($);
11
+
12
+ const EbDraggable = ({
13
+ children,
14
+ id,
15
+ disabled = false,
16
+ revert = true,
17
+ clone = false,
18
+ className,
19
+ onStart,
20
+ onStop,
21
+ onDrag,
22
+ onCreate
23
+ }) => {
24
+ const rootEl = React__default["default"].useRef(null);
25
+ const onStartCallback = React__default["default"].useCallback((event, ui) => {
26
+ if (onStart) {
27
+ return onStart(event, ui);
28
+ } else {
29
+ return () => {
30
+ return;
31
+ };
32
+ }
33
+ }, [onStart]);
34
+ const onStopCallback = React__default["default"].useCallback((event, ui) => {
35
+ if (onStop) {
36
+ return onStop(event, ui);
37
+ } else {
38
+ return () => {
39
+ return;
40
+ };
41
+ }
42
+ }, [onStop]);
43
+ const onDragCallback = React__default["default"].useCallback((event, ui) => {
44
+ if (onDrag) {
45
+ return onDrag(event, ui);
46
+ } else {
47
+ return () => {
48
+ return;
49
+ };
50
+ }
51
+ }, [onDrag]);
52
+ const onCreateCallback = React__default["default"].useCallback((event, ui) => {
53
+ if (onCreate) {
54
+ return onCreate(event, ui);
55
+ } else {
56
+ return () => {
57
+ return;
58
+ };
59
+ }
60
+ }, [onCreate]);
61
+ React__default["default"].useEffect(() => {
62
+ if (!rootEl.current) {
63
+ return;
64
+ }
65
+
66
+ const draggableEl = $__default["default"](rootEl.current);
67
+ draggableEl.draggable(Object.assign(Object.assign(Object.assign(Object.assign({}, disabled ? {
68
+ disabled
69
+ } : null), revert ? {
70
+ revert
71
+ } : null), clone ? {
72
+ helper: 'clone'
73
+ } : null), {
74
+ zIndex: 200,
75
+ revertDuration: 0,
76
+ start: (event, ui) => {
77
+ if (!onStartCallback) {
78
+ return;
79
+ }
80
+
81
+ onStartCallback(event, ui);
82
+ },
83
+ stop: (event, ui) => {
84
+ if (!onStopCallback) {
85
+ return;
86
+ } // draggableEl.draggable('cancel');
87
+
88
+
89
+ onStopCallback(event, ui);
90
+ },
91
+ drag: (event, ui) => {
92
+ onDragCallback(event, ui);
93
+ },
94
+ create: (event, ui) => {
95
+ onCreateCallback(event, ui);
96
+ }
97
+ }));
98
+ return () => {
99
+ draggableEl.draggable('destroy');
100
+ };
101
+ }, [clone, disabled, onCreateCallback, onDragCallback, onStartCallback, onStopCallback, revert]);
102
+ return React__default["default"].createElement("div", {
103
+ ref: rootEl,
104
+ id: id,
105
+ className: className,
106
+ style: {
107
+ cursor: disabled ? 'auto' : 'move'
108
+ }
109
+ }, children);
110
+ };
111
+
112
+ module.exports = EbDraggable;
@@ -0,0 +1,13 @@
1
+ /// <reference types="jquery" />
2
+ /// <reference types="jqueryui" />
3
+ import React from 'react';
4
+ import 'jquery-ui/ui/widgets/droppable';
5
+ export interface EbDroppableProps {
6
+ id?: string;
7
+ className?: string;
8
+ disabled?: boolean;
9
+ accept?: JQuery.Selector;
10
+ onDrop?: (event: JQueryEventObject, ui: JQueryUI.DroppableEventUIParam) => void;
11
+ }
12
+ declare const EbDroppable: React.FC<EbDroppableProps>;
13
+ export default EbDroppable;
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var $ = require('jquery');
5
+ require('jquery-ui/ui/widgets/droppable');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
+ var $__default = /*#__PURE__*/_interopDefaultLegacy($);
11
+
12
+ const EbDroppable = ({
13
+ children,
14
+ id,
15
+ disabled = false,
16
+ accept,
17
+ className,
18
+ onDrop
19
+ }) => {
20
+ const rootEl = React__default["default"].useRef(null);
21
+ const onDropCallback = React__default["default"].useCallback((event, ui) => {
22
+ if (onDrop) {
23
+ return onDrop(event, ui);
24
+ } else {
25
+ return () => {
26
+ return;
27
+ };
28
+ }
29
+ }, [onDrop]);
30
+ React__default["default"].useEffect(() => {
31
+ if (!rootEl.current) {
32
+ return;
33
+ }
34
+
35
+ const draggableEl = $__default["default"](rootEl.current);
36
+ draggableEl.droppable(Object.assign(Object.assign(Object.assign({}, disabled ? {
37
+ disabled
38
+ } : null), accept ? {
39
+ accept
40
+ } : null), {
41
+ drop: (event, ui) => {
42
+ if (!onDropCallback) {
43
+ return;
44
+ }
45
+
46
+ onDropCallback(event, ui);
47
+ }
48
+ }));
49
+ return () => {
50
+ draggableEl.droppable('destroy');
51
+ };
52
+ }, [accept, disabled, onDropCallback]);
53
+ return React__default["default"].createElement("div", {
54
+ ref: rootEl,
55
+ id: id,
56
+ className: className
57
+ }, children);
58
+ };
59
+
60
+ module.exports = EbDroppable;
@@ -0,0 +1,17 @@
1
+ /// <reference types="jquery" />
2
+ /// <reference types="jqueryui" />
3
+ import React from 'react';
4
+ import 'jquery-ui/ui/widgets/sortable.js';
5
+ import 'jquery-ui/ui/widgets/sortable';
6
+ declare type SortedIds = string[];
7
+ interface EbSortableProps {
8
+ id?: string;
9
+ className?: string;
10
+ connectWith?: JQuery.Selector;
11
+ onStart?: (event: JQueryEventObject, ui: JQueryUI.SortableUIParams, ids: SortedIds) => void;
12
+ onStop?: (event: JQueryEventObject, ui: JQueryUI.SortableUIParams, ids: SortedIds) => void;
13
+ onRemove?: (event: JQueryEventObject, ui: JQueryUI.SortableUIParams, targetIndex: number, receivedId: string) => void;
14
+ onReceive?: (event: JQueryEventObject, ui: JQueryUI.SortableUIParams, targetIndex: number, receivedId: string) => void;
15
+ }
16
+ declare const EbSortable: React.FC<EbSortableProps>;
17
+ export default EbSortable;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { MaterialQuizProps } from './context/MaterialQuizContext';
3
+ declare const MaterialQuizContainer: React.FC<MaterialQuizProps>;
4
+ export default MaterialQuizContainer;
@@ -0,0 +1,25 @@
1
+ export declare const en: {
2
+ 'materialQuiz.error': string;
3
+ 'materialQuiz.submit': string;
4
+ 'materialQuiz.submittedAnswer': string;
5
+ 'materialQuiz.answer': string;
6
+ 'materialQuiz.next': string;
7
+ 'materialQuiz.myAnswer': string;
8
+ 'materialQuiz.empty.title': string;
9
+ 'materialQuiz.empty.description': string;
10
+ 'materialQuiz.survey.empty.title': string;
11
+ 'materialQuiz.survey.empty.description': string;
12
+ 'materialQuiz.submitStatus.success': string;
13
+ 'materialQuiz.submitStatus.failure': string;
14
+ 'materialQuiz.resultStatus.correct': string;
15
+ 'materialQuiz.resultStatus.wrong': string;
16
+ 'materialQuiz.resultStatus.submitted': string;
17
+ 'materialQuiz.explanation.close': string;
18
+ 'materialQuiz.explanation.show': string;
19
+ 'materialQuiz.explanation.empty': string;
20
+ 'materialQuiz.text.placeholder': string;
21
+ 'materialQuiz.text.correct': string;
22
+ 'materialQuiz.text.wrong': string;
23
+ 'materialQuiz.order.answerEmpty': string;
24
+ };
25
+ export declare const ko: typeof en;
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const en = {
6
+ 'materialQuiz.error': 'Failed to fetch quiz',
7
+ 'materialQuiz.submit': 'Submit',
8
+ 'materialQuiz.submittedAnswer': 'Submitted Answer',
9
+ 'materialQuiz.answer': 'Answer',
10
+ 'materialQuiz.next': 'Next question >',
11
+ 'materialQuiz.myAnswer': 'My answer',
12
+ 'materialQuiz.empty.title': 'Quiz is now preparing.',
13
+ 'materialQuiz.empty.description': 'Please check again after quiz posting!',
14
+ 'materialQuiz.survey.empty.title': 'Survey is now preparing.',
15
+ 'materialQuiz.survey.empty.description': 'Please check again after survey posting!',
16
+ 'materialQuiz.submitStatus.success': 'Submitted',
17
+ 'materialQuiz.submitStatus.failure': 'Failed to submit',
18
+ 'materialQuiz.resultStatus.correct': 'Correct',
19
+ 'materialQuiz.resultStatus.wrong': 'Wrong',
20
+ 'materialQuiz.resultStatus.submitted': 'Submitted',
21
+ 'materialQuiz.explanation.close': 'close quiz explanations',
22
+ 'materialQuiz.explanation.show': 'show quiz explanations',
23
+ 'materialQuiz.explanation.empty': 'no explanations',
24
+ 'materialQuiz.text.placeholder': 'please fill the answer',
25
+ 'materialQuiz.text.correct': `that's correct!`,
26
+ 'materialQuiz.text.wrong': `that's wrong. try it again!`,
27
+ 'materialQuiz.order.answerEmpty': 'You could move the options back here'
28
+ };
29
+ const ko = {
30
+ 'materialQuiz.error': '퀴즈를 불러오는데 실패했습니다.\n잠시 후 다시 시도해주세요.',
31
+ 'materialQuiz.submit': '제출',
32
+ 'materialQuiz.submittedAnswer': '제출한 답',
33
+ 'materialQuiz.answer': '정답',
34
+ 'materialQuiz.next': '다음 문제로 이동 >',
35
+ 'materialQuiz.myAnswer': '내 답안',
36
+ 'materialQuiz.empty.title': '퀴즈가 준비 중 입니다.',
37
+ 'materialQuiz.empty.description': '퀴즈 게시 후 다시 확인해주세요!',
38
+ 'materialQuiz.survey.empty.title': '설문조사 준비 중 입니다.',
39
+ 'materialQuiz.survey.empty.description': '설문지 게시 후 다시 확인해주세요!',
40
+ 'materialQuiz.submitStatus.success': '제출되었습니다.',
41
+ 'materialQuiz.submitStatus.failure': '제출에 실패하였습니다.',
42
+ 'materialQuiz.resultStatus.correct': '정답',
43
+ 'materialQuiz.resultStatus.wrong': '오답',
44
+ 'materialQuiz.resultStatus.submitted': '제출완료',
45
+ 'materialQuiz.explanation.close': '퀴즈해설 닫기',
46
+ 'materialQuiz.explanation.show': '퀴즈 해설 보기',
47
+ 'materialQuiz.explanation.empty': '작성된 해설이 없습니다.',
48
+ 'materialQuiz.text.placeholder': '답을 입력하세요.',
49
+ 'materialQuiz.text.correct': '정답입니다.',
50
+ 'materialQuiz.text.wrong': '오답입니다. 다시 답안을 제출해보세요.',
51
+ 'materialQuiz.order.answerEmpty': '항목을 다시 이곳으로 옮길 수 있습니다.'
52
+ };
53
+
54
+ exports.en = en;
55
+ exports.ko = ko;
@@ -0,0 +1,114 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactIntl = require('react-intl');
5
+ var reactUse = require('react-use');
6
+ var designTokens = require('@elice/design-tokens');
7
+ var types = require('@elice/types');
8
+ var styled = require('styled-components');
9
+ var MaterialQuizContext = require('./context/MaterialQuizContext.js');
10
+ var MaterialQuizShimmer = require('./MaterialQuizShimmer.js');
11
+ var MaterialQuizInfo = require('./MaterialQuizInfo.js');
12
+ var MaterialQuiz_i18n = require('./MaterialQuiz.i18n.js');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, 'default': e }); }
17
+
18
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
19
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
20
+
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 StyledMaterialQuizInfo = styled__default["default"].div.withConfig({
26
+ componentId: "sc-1eyn8fb-0"
27
+ })([""]);
28
+ const StyledMaterialQuizContent = styled__default["default"].div.withConfig({
29
+ componentId: "sc-1eyn8fb-1"
30
+ })(["min-width:0;"]);
31
+ const StyledMaterialQuizWrapper = styled__default["default"].div.withConfig({
32
+ componentId: "sc-1eyn8fb-2"
33
+ })(["display:flex;width:100%;height:100%;flex-direction:", ";& > *{flex:", ";}& > *:first-child{margin-right:", ";margin-bottom:", ";}", "{height:", ";overflow-y:", ";}"], ({
34
+ vertical
35
+ }) => vertical ? 'column' : 'row', ({
36
+ vertical
37
+ }) => vertical ? 'auto' : '1 0 calc(50% - 1rem);', ({
38
+ vertical
39
+ }) => vertical ? '0' : '1rem', ({
40
+ vertical
41
+ }) => vertical ? '1rem' : '0', StyledMaterialQuizInfo, ({
42
+ vertical
43
+ }) => vertical ? 'auto' : '100%', ({
44
+ vertical
45
+ }) => vertical ? 'intial' : 'auto');
46
+
47
+ const MaterialQuiz = () => {
48
+ const {
49
+ materialQuiz,
50
+ vertical
51
+ } = MaterialQuizContext.useMaterialQuizState();
52
+ const {
53
+ setVertical
54
+ } = MaterialQuizContext.useMaterialQuizDispatch();
55
+ const [ref, {
56
+ width
57
+ }] = reactUse.useMeasure();
58
+ React__default["default"].useEffect(() => {
59
+ if (width > 0) {
60
+ setVertical(width <= designTokens.base.screen.medium);
61
+ }
62
+ }, [width, setVertical]);
63
+ let Component = null;
64
+
65
+ switch (materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.optionType) {
66
+ case types.enums.QuizOptionType.SelectOne:
67
+ Component = React__default["default"].createElement(AsyncMaterialQuizSelectOne, null);
68
+ break;
69
+
70
+ case types.enums.QuizOptionType.SelectMultiple:
71
+ Component = React__default["default"].createElement(AsyncMaterialQuizSelectMultiple, null);
72
+ break;
73
+
74
+ case types.enums.QuizOptionType.Text:
75
+ Component = React__default["default"].createElement(AsyncMaterialQuizText, null);
76
+ break;
77
+
78
+ case types.enums.QuizOptionType.SelectMultipleOrder:
79
+ Component = React__default["default"].createElement(AsyncMaterialQuizSelectMultipleOrder, null);
80
+ break;
81
+
82
+ default:
83
+ Component = React__default["default"].createElement(MaterialQuizShimmer, null);
84
+ break;
85
+ }
86
+
87
+ return React__default["default"].createElement(React__default["default"].Suspense, {
88
+ fallback: null
89
+ }, React__default["default"].createElement(StyledMaterialQuizWrapper, {
90
+ ref: ref,
91
+ vertical: vertical
92
+ }, React__default["default"].createElement(StyledMaterialQuizInfo, null, React__default["default"].createElement(MaterialQuizInfo, null)), React__default["default"].createElement(StyledMaterialQuizContent, null, Component)));
93
+ };
94
+
95
+ const MaterialQuizContainer = ({
96
+ materialQuizId,
97
+ userId,
98
+ locale = 'en',
99
+ onSubmit,
100
+ onNext
101
+ }) => {
102
+ return React__default["default"].createElement(reactIntl.IntlProvider, {
103
+ locale: locale,
104
+ defaultLocale: "en",
105
+ messages: locale in MaterialQuiz_i18n ? MaterialQuiz_i18n[locale] : MaterialQuiz_i18n.en
106
+ }, React__default["default"].createElement(MaterialQuizContext.MaterialQuizProvider, {
107
+ materialQuizId: materialQuizId,
108
+ userId: userId,
109
+ onSubmit: onSubmit,
110
+ onNext: onNext
111
+ }, React__default["default"].createElement(MaterialQuiz, null)));
112
+ };
113
+
114
+ module.exports = MaterialQuizContainer;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const MaterialQuizAnswerExplanation: React.FC;
3
+ export default MaterialQuizAnswerExplanation;
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactIntl = require('react-intl');
5
+ var blocks = require('@elice/blocks');
6
+ var designTokens = require('@elice/design-tokens');
7
+ var markdown = require('@elice/markdown');
8
+ var types = require('@elice/types');
9
+ var styled = require('styled-components');
10
+ var MaterialQuizContext = require('./context/MaterialQuizContext.js');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
16
+
17
+ const StyledMarkdownSSR = styled__default["default"](markdown.MarkdownSSR).withConfig({
18
+ componentId: "sc-18kg5i5-0"
19
+ })(["p{margin:0 !important;}"]);
20
+ const StyledAccordion = styled__default["default"](blocks.Accordion).withConfig({
21
+ componentId: "sc-18kg5i5-1"
22
+ })(["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.navy5, designTokens.base.color.navy4);
23
+
24
+ const MaterialQuizAnswerExplanation = () => {
25
+ const {
26
+ lecture,
27
+ materialQuiz
28
+ } = MaterialQuizContext.useMaterialQuizState();
29
+ const intl = reactIntl.useIntl();
30
+
31
+ 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
+ return null;
33
+ }
34
+
35
+ return React__default["default"].createElement(blocks.Flex, {
36
+ column: true,
37
+ margintop: "1rem"
38
+ }, React__default["default"].createElement(StyledAccordion, {
39
+ dark: true,
40
+ header: intl.formatMessage({
41
+ id: 'materialQuiz.explanation.show'
42
+ })
43
+ }, materialQuiz.explanationInfo.isEnabled ? React__default["default"].createElement(StyledMarkdownSSR, {
44
+ dark: true,
45
+ children: materialQuiz.explanationInfo.value
46
+ }) : React__default["default"].createElement(blocks.Text, {
47
+ role: "info",
48
+ lineHeight: 1.4,
49
+ userSelect: "none"
50
+ }, intl.formatMessage({
51
+ id: 'materialQuiz.explanation.empty'
52
+ }))));
53
+ };
54
+
55
+ module.exports = MaterialQuizAnswerExplanation;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const MaterialQuizError: React.FC;
3
+ export default MaterialQuizError;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const MaterialQuizInfo: React.FC;
3
+ export default MaterialQuizInfo;
@@ -0,0 +1,74 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var blocks = require('@elice/blocks');
5
+ var designTokens = require('@elice/design-tokens');
6
+ var markdown = require('@elice/markdown');
7
+ var QuestionBox = require('../shared/QuestionBox.js');
8
+ var MaterialQuizContext = require('./context/MaterialQuizContext.js');
9
+ var MaterialQuizAnswerExplanation = require('./MaterialQuizAnswerExplanation.js');
10
+
11
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
+
15
+ const MaterialQuizInfo = () => {
16
+ const {
17
+ materialQuiz
18
+ } = MaterialQuizContext.useMaterialQuizState();
19
+ return React__default["default"].createElement(QuestionBox["default"], {
20
+ title: materialQuiz === null || materialQuiz === void 0 ? void 0 : materialQuiz.title
21
+ }, materialQuiz ? React__default["default"].createElement(blocks.Flex, null, React__default["default"].createElement(blocks.Text, {
22
+ bold: true,
23
+ size: "large",
24
+ customStyles: {
25
+ color: designTokens.base.color.primary3,
26
+ marginRight: '0.5rem'
27
+ }
28
+ }, 'Q.'), React__default["default"].createElement(blocks.Text, {
29
+ bold: true,
30
+ role: "white",
31
+ size: "large",
32
+ wordBreak: "break-word"
33
+ }, materialQuiz.questionTitle)) : React__default["default"].createElement(blocks.Shimmer, {
34
+ dark: true,
35
+ borderRadius: '4px',
36
+ width: "80%",
37
+ height: '40px'
38
+ }), React__default["default"].createElement(blocks.Vspace, {
39
+ height: 1
40
+ }), materialQuiz ? React__default["default"].createElement(markdown.MarkdownSSR, {
41
+ children: materialQuiz.questionDescription,
42
+ dark: true,
43
+ paddingx: 0,
44
+ paddingy: 0
45
+ }) : React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(blocks.Shimmer, {
46
+ dark: true,
47
+ borderRadius: '4px',
48
+ width: "80%",
49
+ height: '40px'
50
+ }), React__default["default"].createElement(blocks.Vspace, {
51
+ height: 1
52
+ }), React__default["default"].createElement(blocks.Shimmer, {
53
+ dark: true,
54
+ borderRadius: '4px',
55
+ width: "100%",
56
+ height: '40px'
57
+ }), React__default["default"].createElement(blocks.Vspace, {
58
+ height: 1
59
+ }), React__default["default"].createElement(blocks.Shimmer, {
60
+ dark: true,
61
+ borderRadius: '4px',
62
+ width: "100%",
63
+ height: '40px'
64
+ }), React__default["default"].createElement(blocks.Vspace, {
65
+ height: 1
66
+ }), React__default["default"].createElement(blocks.Shimmer, {
67
+ dark: true,
68
+ borderRadius: '4px',
69
+ width: "100%",
70
+ height: '40px'
71
+ })), React__default["default"].createElement(MaterialQuizAnswerExplanation, null));
72
+ };
73
+
74
+ module.exports = MaterialQuizInfo;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const MaterialQuizSelectMultiple: React.FC;
3
+ export default MaterialQuizSelectMultiple;