@elice/material-quiz 1.240718.0-trasncript.0 → 1.240718.0-trasncript.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/_virtual/_rollupPluginBabelHelpers.js +423 -0
- package/cjs/components/eb-sortable/EbDraggable.js +42 -33
- package/cjs/components/eb-sortable/EbDroppable.js +27 -20
- package/cjs/components/markdown-editor/index.d.ts +1 -2
- package/cjs/components/markdown-editor/index.js +19 -10
- package/cjs/components/material-quiz/MaterialQuiz.js +114 -83
- package/cjs/components/material-quiz/MaterialQuizAnswerExplanation.js +36 -29
- package/cjs/components/material-quiz/MaterialQuizInfo.js +151 -149
- package/cjs/components/material-quiz/MaterialQuizSelectMultiple.js +175 -127
- package/cjs/components/material-quiz/MaterialQuizSelectMultipleOrder.js +360 -286
- package/cjs/components/material-quiz/MaterialQuizSelectOne.js +172 -126
- package/cjs/components/material-quiz/MaterialQuizShimmer.js +46 -39
- package/cjs/components/material-quiz/MaterialQuizText.js +163 -115
- package/cjs/components/material-quiz/QuizResultBadge.js +32 -22
- package/cjs/components/material-quiz/QuizSubmitStatusText.js +21 -16
- package/cjs/components/material-quiz/constants/color.js +5 -5
- package/cjs/components/material-quiz/context/MaterialQuizContext.d.ts +1 -1
- package/cjs/components/material-quiz/context/MaterialQuizContext.js +156 -93
- package/cjs/components/material-quiz/index.js +9 -0
- package/cjs/components/material-quiz/locales/index.js +13 -0
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +259 -161
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.js +134 -100
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.js +130 -101
- package/cjs/components/material-quiz/material-quiz-group/MaterialQuizGroupOptionItem.js +64 -52
- package/cjs/components/material-quiz/material-quiz-group/context/context.js +5 -1
- package/cjs/components/material-quiz-edit/MaterialQuizEdit.js +47 -36
- package/cjs/components/material-quiz-edit/MaterialQuizEditContent.js +280 -232
- package/cjs/components/material-quiz-edit/context.js +8 -2
- package/cjs/components/material-quiz-edit/index.js +7 -0
- package/cjs/components/material-quiz-edit/locales/index.js +13 -0
- package/cjs/components/material-quiz-edit/options/OptionEditor.js +70 -46
- package/cjs/components/material-quiz-edit/options/OptionSelectMultiple.js +174 -148
- package/cjs/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +175 -149
- package/cjs/components/material-quiz-edit/options/OptionSelectOne.js +164 -144
- package/cjs/components/material-quiz-edit/options/OptionText.js +90 -82
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroup.js +9 -8
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerInfo.js +156 -112
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +288 -196
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroupGroupInfo.js +88 -75
- package/cjs/components/material-quiz-edit/options/options-group/OptionGroupGroupListItem.js +108 -92
- package/cjs/components/material-quiz-edit/utils/checkTwoDimensionArray.js +5 -1
- package/cjs/components/material-quiz-edit/utils/editValue.js +21 -12
- package/cjs/components/shared/QuestionBox.js +198 -165
- package/cjs/components/shared/QuizDraggbleDroppedOption.js +11 -12
- package/cjs/components/shared/QuizDraggbleDummyOption.js +23 -16
- package/cjs/components/shared/QuizDraggbleOption.js +65 -59
- package/cjs/components/shared/StyledMarkdown.js +5 -1
- package/cjs/components/shared/index.js +19 -0
- package/cjs/components/shared/question-checkbox/QuestionCheckbox.js +13 -7
- package/cjs/components/shared/question-checkbox/QuestionCheckboxContext.d.ts +1 -1
- package/cjs/components/shared/question-checkbox/QuestionCheckboxContext.js +24 -17
- package/cjs/components/shared/question-checkbox/QuestionCheckboxOption.js +59 -68
- package/cjs/components/shared/question-radio/QuestionRadio.js +13 -7
- package/cjs/components/shared/question-radio/QuestionRadioContext.d.ts +1 -1
- package/cjs/components/shared/question-radio/QuestionRadioContext.js +24 -17
- package/cjs/components/shared/question-radio/QuestionRadioOption.js +52 -59
- package/cjs/components/shared/utils/getQuestionStatusStyle.js +7 -9
- package/cjs/components/shared/utils/mergeRefs.js +15 -6
- package/cjs/constant/element.js +3 -3
- package/cjs/constant/index.js +9 -0
- package/cjs/helpers/index.js +8 -10
- package/cjs/hooks/index.js +7 -0
- package/cjs/hooks/useCaculatePassage.js +21 -20
- package/es/_virtual/_rollupPluginBabelHelpers.js +408 -0
- package/es/components/eb-sortable/EbDraggable.js +37 -33
- package/es/components/eb-sortable/EbDroppable.js +22 -20
- package/es/components/markdown-editor/index.d.ts +1 -2
- package/es/components/markdown-editor/index.js +15 -10
- package/es/components/material-quiz/MaterialQuiz.js +109 -83
- package/es/components/material-quiz/MaterialQuizAnswerExplanation.js +32 -29
- package/es/components/material-quiz/MaterialQuizInfo.js +148 -150
- package/es/components/material-quiz/MaterialQuizSelectMultiple.js +171 -127
- package/es/components/material-quiz/MaterialQuizSelectMultipleOrder.js +356 -287
- package/es/components/material-quiz/MaterialQuizSelectOne.js +168 -126
- package/es/components/material-quiz/MaterialQuizShimmer.js +42 -39
- package/es/components/material-quiz/MaterialQuizText.js +158 -115
- package/es/components/material-quiz/QuizResultBadge.js +27 -22
- package/es/components/material-quiz/QuizSubmitStatusText.js +17 -16
- package/es/components/material-quiz/constants/color.js +5 -5
- package/es/components/material-quiz/context/MaterialQuizContext.d.ts +1 -1
- package/es/components/material-quiz/context/MaterialQuizContext.js +153 -94
- package/es/components/material-quiz/index.js +2 -0
- package/es/components/material-quiz/locales/index.js +4 -0
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroup.js +253 -161
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupDesktop.js +129 -100
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupMobile.js +125 -101
- package/es/components/material-quiz/material-quiz-group/MaterialQuizGroupOptionItem.js +60 -52
- package/es/components/material-quiz/material-quiz-group/context/context.js +1 -1
- package/es/components/material-quiz-edit/MaterialQuizEdit.js +43 -36
- package/es/components/material-quiz-edit/MaterialQuizEditContent.js +272 -229
- package/es/components/material-quiz-edit/context.js +4 -2
- package/es/components/material-quiz-edit/index.js +1 -0
- package/es/components/material-quiz-edit/locales/index.js +4 -0
- package/es/components/material-quiz-edit/options/OptionEditor.js +64 -46
- package/es/components/material-quiz-edit/options/OptionSelectMultiple.js +170 -148
- package/es/components/material-quiz-edit/options/OptionSelectMultipleOrder.js +171 -149
- package/es/components/material-quiz-edit/options/OptionSelectOne.js +159 -144
- package/es/components/material-quiz-edit/options/OptionText.js +86 -82
- package/es/components/material-quiz-edit/options/options-group/OptionGroup.js +9 -8
- package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerInfo.js +151 -112
- package/es/components/material-quiz-edit/options/options-group/OptionGroupAnswerListItem.js +283 -197
- package/es/components/material-quiz-edit/options/options-group/OptionGroupGroupInfo.js +83 -75
- package/es/components/material-quiz-edit/options/options-group/OptionGroupGroupListItem.js +103 -92
- package/es/components/material-quiz-edit/utils/checkTwoDimensionArray.js +5 -1
- package/es/components/material-quiz-edit/utils/editValue.js +17 -12
- package/es/components/shared/QuestionBox.js +192 -165
- package/es/components/shared/QuizDraggbleDroppedOption.js +11 -12
- package/es/components/shared/QuizDraggbleDummyOption.js +19 -16
- package/es/components/shared/QuizDraggbleOption.js +61 -59
- package/es/components/shared/StyledMarkdown.js +1 -1
- package/es/components/shared/index.js +7 -0
- package/es/components/shared/question-checkbox/QuestionCheckbox.js +9 -7
- package/es/components/shared/question-checkbox/QuestionCheckboxContext.d.ts +1 -1
- package/es/components/shared/question-checkbox/QuestionCheckboxContext.js +20 -17
- package/es/components/shared/question-checkbox/QuestionCheckboxOption.js +54 -68
- package/es/components/shared/question-radio/QuestionRadio.js +9 -7
- package/es/components/shared/question-radio/QuestionRadioContext.d.ts +1 -1
- package/es/components/shared/question-radio/QuestionRadioContext.js +20 -17
- package/es/components/shared/question-radio/QuestionRadioOption.js +47 -59
- package/es/components/shared/utils/getQuestionStatusStyle.js +7 -9
- package/es/components/shared/utils/mergeRefs.js +15 -6
- package/es/constant/element.js +3 -3
- package/es/constant/index.js +1 -0
- package/es/helpers/index.js +8 -10
- package/es/hooks/index.js +1 -0
- package/es/hooks/useCaculatePassage.js +21 -20
- package/package.json +12 -15
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var reactHookForm = require('react-hook-form');
|
|
7
7
|
var reactSortableHoc = require('react-sortable-hoc');
|
|
8
8
|
var blocks = require('@elice/blocks');
|
|
@@ -14,53 +14,55 @@ var context = require('../../context.js');
|
|
|
14
14
|
var randomId = require('../../utils/randomId.js');
|
|
15
15
|
var OptionGroupGroupListItem = require('./OptionGroupGroupListItem.js');
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
18
|
+
|
|
19
|
+
var cloneDeep__default = /*#__PURE__*/_interopDefaultCompat(cloneDeep);
|
|
20
|
+
var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
|
|
21
|
+
|
|
22
|
+
var MAX_GROUP_INFO_COUNT = 6;
|
|
23
|
+
var StyledSortableList = styled__default.default.div.withConfig({
|
|
19
24
|
componentId: "sc-9aq3yn-0"
|
|
20
25
|
})(["margin:1rem 0;padding:0;"]);
|
|
21
26
|
//
|
|
22
27
|
//
|
|
23
28
|
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
control,
|
|
28
|
-
setValue
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
});
|
|
42
|
-
const watchedGroups = reactHookForm.useWatch({
|
|
43
|
-
control,
|
|
29
|
+
var OptionGroupGroupInfo = function OptionGroupGroupInfo() {
|
|
30
|
+
var intl$1 = intl.useRawEliceIntl();
|
|
31
|
+
var _useFormContext = reactHookForm.useFormContext(),
|
|
32
|
+
control = _useFormContext.control,
|
|
33
|
+
setValue = _useFormContext.setValue;
|
|
34
|
+
var _useMaterialQuizEditC = context.useMaterialQuizEditContext(),
|
|
35
|
+
disabled = _useMaterialQuizEditC.disabled;
|
|
36
|
+
var _useFieldArray = reactHookForm.useFieldArray({
|
|
37
|
+
name: 'groups',
|
|
38
|
+
keyName: 'id',
|
|
39
|
+
shouldUnregister: true
|
|
40
|
+
}),
|
|
41
|
+
groupInfoFields = _useFieldArray.fields,
|
|
42
|
+
appendGroupInfoFieldItem = _useFieldArray.append,
|
|
43
|
+
removeGroupInfoFieldItem = _useFieldArray.remove;
|
|
44
|
+
var watchedGroups = reactHookForm.useWatch({
|
|
45
|
+
control: control,
|
|
44
46
|
name: 'groups'
|
|
45
47
|
});
|
|
46
|
-
|
|
47
|
-
control,
|
|
48
|
+
var watchedAnswerInfo = reactHookForm.useWatch({
|
|
49
|
+
control: control,
|
|
48
50
|
name: 'answerInfoDefault'
|
|
49
51
|
});
|
|
50
|
-
|
|
52
|
+
var isMaximumGroups = groupInfoFields.length >= MAX_GROUP_INFO_COUNT;
|
|
51
53
|
/**
|
|
52
54
|
*
|
|
53
55
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
var addGroupAnswerInfo = function addGroupAnswerInfo() {
|
|
57
|
+
var cloneAnswerList = cloneDeep__default.default(watchedAnswerInfo);
|
|
56
58
|
cloneAnswerList[groupInfoFields.length] = [];
|
|
57
59
|
setValue('answerInfoDefault', cloneAnswerList);
|
|
58
60
|
};
|
|
59
61
|
/**
|
|
60
62
|
*
|
|
61
63
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
var removeGroupAnswerInfo = function removeGroupAnswerInfo(index) {
|
|
65
|
+
var cloneAnswerList = cloneDeep__default.default(watchedAnswerInfo);
|
|
64
66
|
cloneAnswerList.splice(index, 1);
|
|
65
67
|
setValue('answerInfoDefault', cloneAnswerList.filter(Boolean));
|
|
66
68
|
removeGroupInfoFieldItem(Number(index));
|
|
@@ -68,12 +70,11 @@ const OptionGroupGroupInfo = () => {
|
|
|
68
70
|
/**
|
|
69
71
|
*
|
|
70
72
|
*/
|
|
71
|
-
|
|
72
|
-
oldIndex,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const temp = cloneAnswerList[oldIndex];
|
|
73
|
+
var onSortEnd = function onSortEnd(_ref) {
|
|
74
|
+
var oldIndex = _ref.oldIndex,
|
|
75
|
+
newIndex = _ref.newIndex;
|
|
76
|
+
var cloneAnswerList = cloneDeep__default.default(watchedAnswerInfo);
|
|
77
|
+
var temp = cloneAnswerList[oldIndex];
|
|
77
78
|
cloneAnswerList[oldIndex] = cloneAnswerList[newIndex];
|
|
78
79
|
cloneAnswerList[newIndex] = temp;
|
|
79
80
|
setValue('groups', reactSortableHoc.arrayMove(watchedGroups, oldIndex, newIndex), {
|
|
@@ -84,57 +85,69 @@ const OptionGroupGroupInfo = () => {
|
|
|
84
85
|
/**
|
|
85
86
|
*
|
|
86
87
|
*/
|
|
87
|
-
|
|
88
|
-
return
|
|
88
|
+
var renderGroupOptionList = function renderGroupOptionList() {
|
|
89
|
+
return jsxRuntime.jsx(blocks.SortableListGroup, {
|
|
89
90
|
onSortEnd: onSortEnd,
|
|
90
|
-
useDragHandle: true
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
91
|
+
useDragHandle: true,
|
|
92
|
+
children: jsxRuntime.jsx(StyledSortableList, {
|
|
93
|
+
children: groupInfoFields.map(function (group, index) {
|
|
94
|
+
return jsxRuntime.jsx(OptionGroupGroupListItem.default, {
|
|
95
|
+
disabled: disabled,
|
|
96
|
+
groupId: index,
|
|
97
|
+
groupsCount: groupInfoFields.length,
|
|
98
|
+
onRemoveOption: function onRemoveOption() {
|
|
99
|
+
return removeGroupAnswerInfo(index);
|
|
100
|
+
}
|
|
101
|
+
}, group.id);
|
|
102
|
+
})
|
|
103
|
+
})
|
|
104
|
+
});
|
|
98
105
|
};
|
|
99
106
|
/**
|
|
100
107
|
*
|
|
101
108
|
*/
|
|
102
|
-
|
|
103
|
-
return
|
|
109
|
+
var renderGroupOptionAddButton = function renderGroupOptionAddButton() {
|
|
110
|
+
return jsxRuntime.jsx(blocks.Tooltip, {
|
|
104
111
|
title: isMaximumGroups ? intl$1.formatMessage({
|
|
105
112
|
id: 'group.option.tooltip.maxDisabled'
|
|
106
113
|
}) : undefined,
|
|
107
|
-
placement: "top"
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
114
|
+
placement: "top",
|
|
115
|
+
children: jsxRuntime.jsx("span", {
|
|
116
|
+
children: jsxRuntime.jsx(blocks.Button, {
|
|
117
|
+
borderDashed: true,
|
|
118
|
+
block: true,
|
|
119
|
+
transparent: true,
|
|
120
|
+
icon: jsxRuntime.jsx(blocks.Icon, {
|
|
121
|
+
icon: icons.eilMathsignAddBasic
|
|
122
|
+
}),
|
|
123
|
+
disabled: isMaximumGroups || disabled,
|
|
124
|
+
onClick: function onClick() {
|
|
125
|
+
appendGroupInfoFieldItem({
|
|
126
|
+
id: randomId.createRandomId(),
|
|
127
|
+
group: ''
|
|
128
|
+
});
|
|
129
|
+
addGroupAnswerInfo();
|
|
130
|
+
},
|
|
131
|
+
children: intl$1.formatMessage({
|
|
132
|
+
id: 'group.option.addButton'
|
|
133
|
+
})
|
|
134
|
+
})
|
|
135
|
+
})
|
|
136
|
+
});
|
|
126
137
|
};
|
|
127
138
|
//
|
|
128
139
|
//
|
|
129
140
|
//
|
|
130
|
-
return
|
|
131
|
-
column: true
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
141
|
+
return jsxRuntime.jsxs(blocks.Flex, {
|
|
142
|
+
column: true,
|
|
143
|
+
children: [jsxRuntime.jsx(blocks.Text, {
|
|
144
|
+
size: "small",
|
|
145
|
+
bold: true,
|
|
146
|
+
children: intl$1.formatMessage({
|
|
147
|
+
id: 'group.option.title'
|
|
148
|
+
})
|
|
149
|
+
}), renderGroupOptionList(), renderGroupOptionAddButton()]
|
|
150
|
+
});
|
|
138
151
|
};
|
|
139
152
|
|
|
140
153
|
exports.default = OptionGroupGroupInfo;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var reactHookForm = require('react-hook-form');
|
|
7
7
|
var blocks = require('@elice/blocks');
|
|
8
8
|
var designTokens = require('@elice/design-tokens');
|
|
@@ -11,126 +11,142 @@ var intl = require('@elice/intl');
|
|
|
11
11
|
var trim = require('lodash-es/trim');
|
|
12
12
|
var styled = require('styled-components');
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
15
|
+
|
|
16
|
+
var trim__default = /*#__PURE__*/_interopDefaultCompat(trim);
|
|
17
|
+
var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
|
|
18
|
+
|
|
19
|
+
var SHEET_Z_INDEX = 982;
|
|
20
|
+
var MIN_GROUP_INFO_COUNT = 2;
|
|
21
|
+
var StyledSortableListItem = styled__default.default(blocks.SortableListItem).withConfig({
|
|
17
22
|
componentId: "sc-hj5nic-0"
|
|
18
23
|
})(["display:flex;z-index:", ";width:100%;padding:0;background:transparent;box-shadow:none;&:not(:last-child){margin-bottom:0.5rem;}"], SHEET_Z_INDEX + 1);
|
|
19
|
-
|
|
24
|
+
var StyledSortableListItemOptionWrapper = styled__default.default.div.withConfig({
|
|
20
25
|
componentId: "sc-hj5nic-1"
|
|
21
|
-
})(["display:flex;align-items:center;overflow:hidden;width:100%;height:100%;border-radius:4px;border:1px solid ", ";background:", ";"], ({
|
|
22
|
-
isGroupChildAnswer
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
})(["display:flex;align-items:center;overflow:hidden;width:100%;height:100%;border-radius:4px;border:1px solid ", ";background:", ";"], function (_ref) {
|
|
27
|
+
var isGroupChildAnswer = _ref.isGroupChildAnswer;
|
|
28
|
+
return isGroupChildAnswer ? designTokens.base.color.red8 : designTokens.base.color.gray3;
|
|
29
|
+
}, designTokens.base.color.white);
|
|
30
|
+
var StyledInputGroup = styled__default.default(blocks.Input).withConfig({
|
|
25
31
|
componentId: "sc-hj5nic-2"
|
|
26
32
|
})(["& > div{border:0;}"]);
|
|
27
|
-
|
|
28
|
-
disabled,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}) => {
|
|
33
|
+
var OptionGroupGroupListItem = function OptionGroupGroupListItem(_ref2) {
|
|
34
|
+
var disabled = _ref2.disabled,
|
|
35
|
+
groupId = _ref2.groupId,
|
|
36
|
+
groupsCount = _ref2.groupsCount,
|
|
37
|
+
onRemoveOption = _ref2.onRemoveOption;
|
|
33
38
|
var _a, _b, _c, _d, _e;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
control,
|
|
37
|
-
formState
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
control,
|
|
39
|
+
var intl$1 = intl.useRawEliceIntl();
|
|
40
|
+
var _useFormContext = reactHookForm.useFormContext(),
|
|
41
|
+
control = _useFormContext.control,
|
|
42
|
+
formState = _useFormContext.formState;
|
|
43
|
+
var watchedAnswerInfo = reactHookForm.useWatch({
|
|
44
|
+
control: control,
|
|
41
45
|
name: 'answerInfoDefault'
|
|
42
46
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
var isGroupChildAnswer = Boolean((_a = watchedAnswerInfo[groupId]) === null || _a === void 0 ? void 0 : _a.length);
|
|
48
|
+
var isMinimumGroups = groupsCount <= MIN_GROUP_INFO_COUNT;
|
|
49
|
+
var errorMessage = (_e = (_d = (_c = (_b = formState.errors) === null || _b === void 0 ? void 0 : _b.groups) === null || _c === void 0 ? void 0 : _c[groupId]) === null || _d === void 0 ? void 0 : _d.group) === null || _e === void 0 ? void 0 : _e.message;
|
|
46
50
|
/**
|
|
47
51
|
*
|
|
48
52
|
*/
|
|
49
|
-
|
|
50
|
-
return
|
|
51
|
-
isGroupChildAnswer: !isGroupChildAnswer
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
id: 'group.option.errorMessage.required'
|
|
60
|
-
})
|
|
61
|
-
},
|
|
62
|
-
validate: e => {
|
|
63
|
-
if (!trim(e).length) {
|
|
64
|
-
return intl$1.formatMessage({
|
|
53
|
+
var renderOptionGroupInput = function renderOptionGroupInput() {
|
|
54
|
+
return jsxRuntime.jsx(StyledSortableListItemOptionWrapper, {
|
|
55
|
+
isGroupChildAnswer: !isGroupChildAnswer,
|
|
56
|
+
children: jsxRuntime.jsx(reactHookForm.Controller, {
|
|
57
|
+
control: control,
|
|
58
|
+
name: "groups.".concat(groupId, ".group"),
|
|
59
|
+
rules: {
|
|
60
|
+
required: {
|
|
61
|
+
value: true,
|
|
62
|
+
message: intl$1.formatMessage({
|
|
65
63
|
id: 'group.option.errorMessage.required'
|
|
66
|
-
})
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
64
|
+
})
|
|
65
|
+
},
|
|
66
|
+
validate: function validate(e) {
|
|
67
|
+
if (!trim__default.default(e).length) {
|
|
68
|
+
return intl$1.formatMessage({
|
|
69
|
+
id: 'group.option.errorMessage.required'
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (!isGroupChildAnswer) {
|
|
73
|
+
return intl$1.formatMessage({
|
|
74
|
+
id: 'group.option.errorMessage.notChild'
|
|
75
|
+
});
|
|
76
|
+
}
|
|
72
77
|
}
|
|
78
|
+
},
|
|
79
|
+
render: function render(_ref3) {
|
|
80
|
+
var field = _ref3.field,
|
|
81
|
+
fieldState = _ref3.fieldState;
|
|
82
|
+
return jsxRuntime.jsx(StyledInputGroup, Object.assign({
|
|
83
|
+
invalid: fieldState.invalid || !isGroupChildAnswer,
|
|
84
|
+
width: "full",
|
|
85
|
+
disabled: disabled
|
|
86
|
+
}, field, {
|
|
87
|
+
ref: null
|
|
88
|
+
}));
|
|
73
89
|
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
field,
|
|
77
|
-
fieldState
|
|
78
|
-
}) => React.createElement(StyledInputGroup, Object.assign({
|
|
79
|
-
invalid: fieldState.invalid || !isGroupChildAnswer,
|
|
80
|
-
width: "full",
|
|
81
|
-
disabled: disabled
|
|
82
|
-
}, field, {
|
|
83
|
-
ref: null
|
|
84
|
-
}))
|
|
85
|
-
}));
|
|
90
|
+
})
|
|
91
|
+
});
|
|
86
92
|
};
|
|
87
93
|
/**
|
|
88
94
|
*
|
|
89
95
|
*/
|
|
90
|
-
|
|
91
|
-
return
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
96
|
+
var renderOptionRemoveButton = function renderOptionRemoveButton() {
|
|
97
|
+
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
98
|
+
children: [jsxRuntime.jsx(blocks.Hspace, {
|
|
99
|
+
width: 0.5
|
|
100
|
+
}), jsxRuntime.jsx(blocks.Tooltip, {
|
|
101
|
+
title: isMinimumGroups ? intl$1.formatMessage({
|
|
102
|
+
id: 'group.option.tooltip.minDisabled'
|
|
103
|
+
}) : undefined,
|
|
104
|
+
placement: "top",
|
|
105
|
+
children: jsxRuntime.jsx("span", {
|
|
106
|
+
children: jsxRuntime.jsx(blocks.IconButton, {
|
|
107
|
+
transparent: true,
|
|
108
|
+
icon: icons.eilMathsignMultiplyBasic,
|
|
109
|
+
role: "gray6",
|
|
110
|
+
size: "micro",
|
|
111
|
+
border: false,
|
|
112
|
+
disabled: isMinimumGroups || disabled,
|
|
113
|
+
onClick: onRemoveOption
|
|
114
|
+
})
|
|
115
|
+
})
|
|
116
|
+
})]
|
|
117
|
+
});
|
|
107
118
|
};
|
|
108
119
|
/**
|
|
109
120
|
*
|
|
110
121
|
*/
|
|
111
|
-
|
|
122
|
+
var renderErrorMessage = function renderErrorMessage() {
|
|
112
123
|
if (!errorMessage) {
|
|
113
124
|
return null;
|
|
114
125
|
}
|
|
115
|
-
return
|
|
116
|
-
paddingleft: "0.25rem"
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
126
|
+
return jsxRuntime.jsx(blocks.Flex, {
|
|
127
|
+
paddingleft: "0.25rem",
|
|
128
|
+
children: jsxRuntime.jsx(blocks.Text, {
|
|
129
|
+
size: "small",
|
|
130
|
+
role: "danger",
|
|
131
|
+
children: errorMessage
|
|
132
|
+
})
|
|
133
|
+
});
|
|
121
134
|
};
|
|
122
135
|
//
|
|
123
136
|
//
|
|
124
137
|
//
|
|
125
|
-
return
|
|
126
|
-
index: groupId
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
138
|
+
return jsxRuntime.jsx(StyledSortableListItem, {
|
|
139
|
+
index: groupId,
|
|
140
|
+
children: jsxRuntime.jsxs(blocks.Flex, {
|
|
141
|
+
justify: "center",
|
|
142
|
+
width: "100%",
|
|
143
|
+
column: true,
|
|
144
|
+
children: [jsxRuntime.jsxs(blocks.Flex, {
|
|
145
|
+
align: "center",
|
|
146
|
+
children: [renderOptionGroupInput(), renderOptionRemoveButton()]
|
|
147
|
+
}), renderErrorMessage()]
|
|
148
|
+
})
|
|
149
|
+
});
|
|
134
150
|
};
|
|
135
151
|
|
|
136
152
|
exports.default = OptionGroupGroupListItem;
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
function checkTwoDimensionArray(answerInfo) {
|
|
4
4
|
try {
|
|
5
|
-
return answerInfo.every(
|
|
5
|
+
return answerInfo.every(function (i) {
|
|
6
|
+
return i.every(function (j) {
|
|
7
|
+
return typeof j === 'number';
|
|
8
|
+
});
|
|
9
|
+
});
|
|
6
10
|
} catch (_a) {
|
|
7
11
|
return false;
|
|
8
12
|
}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
var trim = require('lodash-es/trim');
|
|
4
4
|
var randomId = require('./randomId.js');
|
|
5
5
|
|
|
6
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var trim__default = /*#__PURE__*/_interopDefaultCompat(trim);
|
|
9
|
+
|
|
6
10
|
/**
|
|
7
11
|
*
|
|
8
12
|
*/
|
|
@@ -10,7 +14,7 @@ function manipulateValue(v) {
|
|
|
10
14
|
return Object.assign(Object.assign({}, v), {
|
|
11
15
|
// convert string array to object array
|
|
12
16
|
// - ref: https://github.com/react-hook-form/react-hook-form/issues/7622#issuecomment-1018893318
|
|
13
|
-
optionsDefault: Array.isArray(v.optionsDefault) ? v.optionsDefault.map(option
|
|
17
|
+
optionsDefault: Array.isArray(v.optionsDefault) ? v.optionsDefault.map(function (option) {
|
|
14
18
|
var _a, _b;
|
|
15
19
|
return {
|
|
16
20
|
id: randomId.createRandomId(),
|
|
@@ -18,10 +22,12 @@ function manipulateValue(v) {
|
|
|
18
22
|
content: (_b = option === null || option === void 0 ? void 0 : option.content) !== null && _b !== void 0 ? _b : ''
|
|
19
23
|
};
|
|
20
24
|
}) : [],
|
|
21
|
-
groups: Array.isArray(v.groups) ? v.groups.map(group
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
groups: Array.isArray(v.groups) ? v.groups.map(function (group) {
|
|
26
|
+
return {
|
|
27
|
+
id: randomId.createRandomId(),
|
|
28
|
+
group: group
|
|
29
|
+
};
|
|
30
|
+
}) : []
|
|
25
31
|
});
|
|
26
32
|
}
|
|
27
33
|
/**
|
|
@@ -29,14 +35,17 @@ function manipulateValue(v) {
|
|
|
29
35
|
*/
|
|
30
36
|
function restoreValue(v) {
|
|
31
37
|
return Object.assign(Object.assign({}, v), {
|
|
32
|
-
optionsDefault: v.optionsDefault.length ? v.optionsDefault.map(option
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
optionsDefault: v.optionsDefault.length ? v.optionsDefault.map(function (option) {
|
|
39
|
+
return {
|
|
40
|
+
title: trim__default.default(option.title),
|
|
41
|
+
content: option.content
|
|
42
|
+
};
|
|
43
|
+
}) : null,
|
|
36
44
|
answerInfoDefault: Array.isArray(v.answerInfoDefault) || typeof v.answerInfoDefault === 'string' ? v.answerInfoDefault : undefined,
|
|
37
|
-
groups: v.groups.length ? v.groups.map(({
|
|
38
|
-
group
|
|
39
|
-
|
|
45
|
+
groups: v.groups.length ? v.groups.map(function (_ref) {
|
|
46
|
+
var group = _ref.group;
|
|
47
|
+
return trim__default.default(group);
|
|
48
|
+
}) : null
|
|
40
49
|
});
|
|
41
50
|
}
|
|
42
51
|
|