@instructure/quiz-core 20.4.2-rc.2 → 20.4.2-rc.5
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/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ChoiceType/presenter.js +2 -2
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/MatchingTypeTable/presenter.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/RichFillBlankType/index.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/RichFillBlankType/presenter.js +92 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/RichFillBlankType/styles.js +10 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/RichFillBlankType/theme.js +8 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/presenter.js +5 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AggregationTable/presenter.js +1 -2
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ChoiceGroupTypeTable/index.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ChoiceGroupTypeTable/presenter.js +165 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ChoiceGroupTypeTable/styles.js +15 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ChoiceGroupTypeTable/theme.js +9 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/{ChoiceType → shared}/ChoiceTypeTable/presenter.js +23 -20
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/index.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/presenter.js +40 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/styles.js +17 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/theme.js +11 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +2 -1
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +59 -17
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +7 -2
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +31 -12
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ChoiceType/presenter.js +2 -2
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/MatchingTypeTable/presenter.js +1 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/RichFillBlankType/index.js +13 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/RichFillBlankType/presenter.js +115 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/RichFillBlankType/styles.js +18 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/RichFillBlankType/theme.js +16 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/presenter.js +13 -7
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AggregationTable/presenter.js +1 -3
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ChoiceGroupTypeTable/index.js +13 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ChoiceGroupTypeTable/presenter.js +189 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ChoiceGroupTypeTable/styles.js +23 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/ChoiceGroupTypeTable/theme.js +17 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/{ChoiceType → shared}/ChoiceTypeTable/presenter.js +22 -19
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/index.js +13 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/presenter.js +55 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/styles.js +25 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/theme.js +19 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +2 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +60 -17
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +7 -2
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +40 -11
- package/package.json +9 -9
- /package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/{ChoiceType → shared}/ChoiceTypeTable/index.js +0 -0
- /package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/{ChoiceType → shared}/ChoiceTypeTable/theme.js +0 -0
- /package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/{ChoiceType → shared}/ChoiceTypeTable/index.js +0 -0
- /package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/{ChoiceType → shared}/ChoiceTypeTable/theme.js +0 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ChoiceGroupTypeTable = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
+
|
|
14
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
15
|
+
|
|
16
|
+
var _react = require("react");
|
|
17
|
+
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
+
|
|
20
|
+
var _propTypes2 = require("../../../propTypes.js");
|
|
21
|
+
|
|
22
|
+
var _uiFlex = require("@instructure/ui-flex");
|
|
23
|
+
|
|
24
|
+
var _uiText = require("@instructure/ui-text");
|
|
25
|
+
|
|
26
|
+
var _index = _interopRequireDefault(require("../../../../../../../common/components/shared/ExpandButton/index.js"));
|
|
27
|
+
|
|
28
|
+
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
29
|
+
|
|
30
|
+
var _index2 = _interopRequireDefault(require("../../../../../../../common/components/shared/Card/index.js"));
|
|
31
|
+
|
|
32
|
+
var _index3 = _interopRequireDefault(require("../ChoiceTypeTable/index.js"));
|
|
33
|
+
|
|
34
|
+
var _index4 = _interopRequireDefault(require("../../../NewItemAnalysis/BlankIcon/index.js"));
|
|
35
|
+
|
|
36
|
+
var _emotion = require("@instructure/emotion");
|
|
37
|
+
|
|
38
|
+
var _styles = _interopRequireDefault(require("./styles.js"));
|
|
39
|
+
|
|
40
|
+
var _theme = _interopRequireDefault(require("./theme.js"));
|
|
41
|
+
|
|
42
|
+
var _dec, _class, _class2, _temp;
|
|
43
|
+
|
|
44
|
+
var ChoiceGroupTypeTable = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
45
|
+
(0, _inherits2.default)(ChoiceGroupTypeTable, _Component);
|
|
46
|
+
|
|
47
|
+
var _super = (0, _createSuper2.default)(ChoiceGroupTypeTable);
|
|
48
|
+
|
|
49
|
+
function ChoiceGroupTypeTable() {
|
|
50
|
+
var _this;
|
|
51
|
+
|
|
52
|
+
(0, _classCallCheck2.default)(this, ChoiceGroupTypeTable);
|
|
53
|
+
|
|
54
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
55
|
+
args[_key] = arguments[_key];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
59
|
+
_this.state = {
|
|
60
|
+
bodyExpanded: false
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
_this.getTranslatedBlankType = function (blank_type) {
|
|
64
|
+
switch (blank_type) {
|
|
65
|
+
case 'openEntry':
|
|
66
|
+
return (0, _formatMessage.default)('Open Entry');
|
|
67
|
+
|
|
68
|
+
case 'wordbank':
|
|
69
|
+
return (0, _formatMessage.default)('Word Bank');
|
|
70
|
+
|
|
71
|
+
case 'dropdown':
|
|
72
|
+
return (0, _formatMessage.default)('Dropdown');
|
|
73
|
+
|
|
74
|
+
default:
|
|
75
|
+
return blank_type;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
_this.handleBodyToggle = function () {
|
|
80
|
+
_this.setState({
|
|
81
|
+
bodyExpanded: !_this.state.bodyExpanded
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
_this.renderTable = function () {
|
|
86
|
+
var _this$props = _this.props,
|
|
87
|
+
itemId = _this$props.itemId,
|
|
88
|
+
blank = _this$props.blank,
|
|
89
|
+
index = _this$props.index;
|
|
90
|
+
var choices = blank.choices;
|
|
91
|
+
var tableId = "".concat(itemId, "_").concat(index, "_choiceGroup");
|
|
92
|
+
var tableContainerSizeClass = '';
|
|
93
|
+
return (0, _emotion.jsx)(_index3.default, {
|
|
94
|
+
itemId: tableId,
|
|
95
|
+
choices: choices,
|
|
96
|
+
tableContainerSizeClass: tableContainerSizeClass
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
_this.renderBlankIcon = function () {
|
|
101
|
+
var index = _this.props.index;
|
|
102
|
+
var blankIconKey = "blank_icon_".concat(index);
|
|
103
|
+
return (0, _emotion.jsx)(_index4.default, {
|
|
104
|
+
key: blankIconKey,
|
|
105
|
+
number: index + 1
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
_this.renderHeadLine = function () {
|
|
110
|
+
var _this$props2 = _this.props,
|
|
111
|
+
blank = _this$props2.blank,
|
|
112
|
+
blankInfo = _this$props2.blankInfo;
|
|
113
|
+
var blank_text = blank.blank_text,
|
|
114
|
+
blank_type = blank.blank_type;
|
|
115
|
+
var blankTextAndType = "".concat(blank_text, " (").concat(_this.getTranslatedBlankType(blank_type), ")");
|
|
116
|
+
return (0, _emotion.jsx)(_uiFlex.Flex, {
|
|
117
|
+
overflowY: "visible",
|
|
118
|
+
direction: "row",
|
|
119
|
+
alignItems: "start",
|
|
120
|
+
wrap: "wrap"
|
|
121
|
+
}, (0, _emotion.jsx)(_uiFlex.Flex.Item, null, _this.renderBlankIcon()), (0, _emotion.jsx)(_uiFlex.Flex.Item, {
|
|
122
|
+
margin: "xxx-small medium small x-small"
|
|
123
|
+
}, (0, _emotion.jsx)(_uiText.Text, {
|
|
124
|
+
weight: "bold"
|
|
125
|
+
}, blankTextAndType)), (0, _emotion.jsx)(_uiFlex.Flex.Item, {
|
|
126
|
+
shouldShrink: true,
|
|
127
|
+
margin: "xxx-small none small none"
|
|
128
|
+
}, blankInfo));
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
_this.renderGroup = function () {
|
|
132
|
+
return (0, _emotion.jsx)(_uiFlex.Flex, {
|
|
133
|
+
direction: "row",
|
|
134
|
+
alignItems: "start"
|
|
135
|
+
}, (0, _emotion.jsx)(_uiFlex.Flex.Item, {
|
|
136
|
+
shouldShrink: true,
|
|
137
|
+
shouldGrow: true,
|
|
138
|
+
margin: "xx-small none none none"
|
|
139
|
+
}, _this.renderHeadLine()), (0, _emotion.jsx)(_uiFlex.Flex.Item, {
|
|
140
|
+
margin: "none none none x-small"
|
|
141
|
+
}, (0, _emotion.jsx)(_index.default, {
|
|
142
|
+
onClick: _this.handleBodyToggle,
|
|
143
|
+
title: _this.state.bodyExpanded ? (0, _formatMessage.default)('collapse group result') : (0, _formatMessage.default)('expand group result'),
|
|
144
|
+
isExpanded: _this.state.bodyExpanded
|
|
145
|
+
})));
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
_this.render = function () {
|
|
149
|
+
return (0, _emotion.jsx)("div", {
|
|
150
|
+
css: _this.props.styles.groupWrapper
|
|
151
|
+
}, (0, _emotion.jsx)(_index2.default, {
|
|
152
|
+
css: _this.props.styles.cardWrapper
|
|
153
|
+
}, (0, _emotion.jsx)(_uiFlex.Flex, {
|
|
154
|
+
direction: "column",
|
|
155
|
+
justifyItems: "start"
|
|
156
|
+
}, (0, _emotion.jsx)(_uiFlex.Flex.Item, {
|
|
157
|
+
overflowY: "visible"
|
|
158
|
+
}, (0, _emotion.jsx)(_uiFlex.Flex.Item, {
|
|
159
|
+
shouldGrow: true,
|
|
160
|
+
shouldShrink: true
|
|
161
|
+
}, (0, _emotion.jsx)(_uiFlex.Flex, {
|
|
162
|
+
direction: "column",
|
|
163
|
+
justifyItems: "start"
|
|
164
|
+
}, (0, _emotion.jsx)(_uiFlex.Flex.Item, {
|
|
165
|
+
shouldShrink: true,
|
|
166
|
+
padding: "x-small small x-small medium",
|
|
167
|
+
overflowY: "hidden"
|
|
168
|
+
}, _this.renderGroup()), _this.state.bodyExpanded && (0, _emotion.jsx)(_uiFlex.Flex.Item, {
|
|
169
|
+
shouldShrink: true,
|
|
170
|
+
padding: "x-small small x-small small"
|
|
171
|
+
}, _this.renderTable())))))));
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
return _this;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
return ChoiceGroupTypeTable;
|
|
178
|
+
}(_react.Component), _class2.propTypes = {
|
|
179
|
+
itemId: _propTypes.default.number.isRequired,
|
|
180
|
+
blank: _propTypes.default.shape({
|
|
181
|
+
choices: _propTypes.default.arrayOf(_propTypes2.choiceTypeObject).isRequired,
|
|
182
|
+
blank_text: _propTypes.default.string.isRequired,
|
|
183
|
+
blank_type: _propTypes.default.string.isRequired
|
|
184
|
+
}).isRequired,
|
|
185
|
+
blankInfo: _propTypes.default.node.isRequired,
|
|
186
|
+
index: _propTypes.default.number.isRequired,
|
|
187
|
+
styles: _propTypes.default.object
|
|
188
|
+
}.isRequired, _temp)) || _class);
|
|
189
|
+
exports.ChoiceGroupTypeTable = ChoiceGroupTypeTable;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var generateStyle = function generateStyle(componentTheme) {
|
|
9
|
+
return {
|
|
10
|
+
groupWrapper: {
|
|
11
|
+
padding: '0',
|
|
12
|
+
width: 'calc(25% + 350px)',
|
|
13
|
+
minWidth: componentTheme.cardMinWidth,
|
|
14
|
+
maxWidth: '100%'
|
|
15
|
+
},
|
|
16
|
+
cardWrapper: {
|
|
17
|
+
margin: "0 0 ".concat(componentTheme.cardBottomMargin, " 0")
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
var _default = generateStyle;
|
|
23
|
+
exports.default = _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var generateComponentTheme = function generateComponentTheme(_ref) {
|
|
9
|
+
var spacing = _ref.spacing;
|
|
10
|
+
return {
|
|
11
|
+
cardBottomMargin: spacing.xSmall,
|
|
12
|
+
cardMinWidth: '500px'
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
var _default = generateComponentTheme;
|
|
17
|
+
exports.default = _default;
|
|
@@ -48,19 +48,20 @@ var _uiText = require("@instructure/ui-text");
|
|
|
48
48
|
var _rowStyleMap, _dec, _class, _class2, _temp;
|
|
49
49
|
|
|
50
50
|
var styles = {
|
|
51
|
-
componentId: '
|
|
51
|
+
componentId: 'cYrxJ',
|
|
52
52
|
template: function template(theme) {
|
|
53
|
-
return "\n\n.
|
|
53
|
+
return "\n\n.cYrxJ_rMrG{display:flex;flex-basis:100%;flex-direction:column;padding-bottom:".concat(theme.tableBottomPadding || 'inherit', "}\n\n.cYrxJ_fgIl{max-width:100%;width:calc(25% + 350px)}\n\n.cYrxJ_SVtU table{border-collapse:separate;border-spacing:0 1px}\n\n.cYrxJ_eviJ table thead tr td,.cYrxJ_eviJ table thead tr th{border-bottom:solid 0.0625rem ").concat(theme.colorGray || 'inherit', "}\n\n.cYrxJ_SVtU table tbody tr th{font-weight:400;width:33.33%}\n\n.cYrxJ_SVtU table tbody tr td{width:33.33%}\n\n.cYrxJ_cvRx{align-items:center;display:flex;height:100%;justify-content:center;min-height:47px;width:46px}\n\n.cYrxJ_EKAb{background-color:").concat(theme.colorGreen || 'inherit', "}\n\n.cYrxJ_EKAb svg{fill:#fff}\n\n.cYrxJ_cCmC{align-items:center;display:flex;height:calc(100% - 4px);justify-content:center}\n\n.cYrxJ_dJVn{padding:").concat(theme.cellPadding || 'inherit', "}\n\n.cYrxJ_eEOp td,.cYrxJ_eEOp th{border-bottom:solid 0.0625rem ").concat(theme.colorGray || 'inherit', "}\n\n.cYrxJ_UAZE td{border-width:2px 0 2px 0}\n\n.cYrxJ_UAZE td,.cYrxJ_UAZE th:first-child{border-color:").concat(theme.colorGreen || 'inherit', ";border-style:solid}\n\n.cYrxJ_UAZE th:first-child{border-radius:4px 0 0 4px;border-width:2px 0 2px 2px}\n\n.cYrxJ_UAZE td:last-child{border-color:").concat(theme.colorGreen || 'inherit', ";border-radius:0 4px 4px 0;border-style:solid;border-width:2px 2px 2px 0}");
|
|
54
54
|
},
|
|
55
|
-
'tableWrapper': '
|
|
56
|
-
'
|
|
57
|
-
'
|
|
58
|
-
'
|
|
59
|
-
'
|
|
60
|
-
'
|
|
61
|
-
'
|
|
62
|
-
'
|
|
63
|
-
'
|
|
55
|
+
'tableWrapper': 'cYrxJ_rMrG',
|
|
56
|
+
'tableWidthMax': 'cYrxJ_fgIl',
|
|
57
|
+
'tableContainer': 'cYrxJ_SVtU',
|
|
58
|
+
'headerGrayBottomBorder': 'cYrxJ_eviJ',
|
|
59
|
+
'iconWrapper': 'cYrxJ_cvRx',
|
|
60
|
+
'iconCorrect': 'cYrxJ_EKAb',
|
|
61
|
+
'textContainer': 'cYrxJ_cCmC',
|
|
62
|
+
'firstTextContainer': 'cYrxJ_dJVn',
|
|
63
|
+
'incorrectRow': 'cYrxJ_eEOp',
|
|
64
|
+
'correctRow': 'cYrxJ_UAZE'
|
|
64
65
|
};
|
|
65
66
|
var correctAttribute = 'correct';
|
|
66
67
|
var incorrectAttribute = 'incorrect';
|
|
@@ -124,8 +125,7 @@ var ChoiceTypeTable = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
124
125
|
};
|
|
125
126
|
|
|
126
127
|
_this.getDataIconAttribute = function (correct, choiceIndex) {
|
|
127
|
-
var
|
|
128
|
-
var choices = answerSummary.choices;
|
|
128
|
+
var choices = _this.props.choices;
|
|
129
129
|
|
|
130
130
|
if (_this.nextChoiceIsCorrect(choices, choiceIndex + 1) && !correct) {
|
|
131
131
|
return '';
|
|
@@ -199,13 +199,13 @@ var ChoiceTypeTable = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
199
199
|
|
|
200
200
|
_this.render = function () {
|
|
201
201
|
var _this$props = _this.props,
|
|
202
|
-
|
|
203
|
-
itemId = _this$props.itemId
|
|
204
|
-
|
|
202
|
+
choices = _this$props.choices,
|
|
203
|
+
itemId = _this$props.itemId,
|
|
204
|
+
tableContainerSizeClass = _this$props.tableContainerSizeClass;
|
|
205
205
|
var answerHeaderId = "answer-frequency-summary-answer-".concat(itemId);
|
|
206
206
|
var respondentsHeaderId = "answer-frequency-summary-respondents-".concat(itemId);
|
|
207
207
|
var percentageHeaderId = "answer-frequency-summary-percentage-".concat(itemId);
|
|
208
|
-
var containerClasses = (0, _classnames.default)(styles.tableContainer, (0, _defineProperty2.default)({}, styles.headerGrayBottomBorder, !_this.nextChoiceIsCorrect(choices, 0)));
|
|
208
|
+
var containerClasses = (0, _classnames.default)(tableContainerSizeClass, styles.tableContainer, (0, _defineProperty2.default)({}, styles.headerGrayBottomBorder, !_this.nextChoiceIsCorrect(choices, 0)));
|
|
209
209
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
210
210
|
className: containerClasses
|
|
211
211
|
}, /*#__PURE__*/_react.default.createElement(_uiTable.Table, {
|
|
@@ -234,6 +234,9 @@ var ChoiceTypeTable = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
234
234
|
return ChoiceTypeTable;
|
|
235
235
|
}(_react.Component), _class2.propTypes = {
|
|
236
236
|
itemId: _propTypes.default.number,
|
|
237
|
-
|
|
238
|
-
|
|
237
|
+
choices: _propTypes.default.arrayOf(_propTypes2.choiceTypeObject),
|
|
238
|
+
tableContainerClass: _propTypes.default.string
|
|
239
|
+
}.isRequired, _class2.defaultProps = {
|
|
240
|
+
tableContainerSizeClass: styles.tableWidthMax
|
|
241
|
+
}, _temp)) || _class);
|
|
239
242
|
exports.ChoiceTypeTable = ChoiceTypeTable;
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _presenter.BlankIcon;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _presenter = require("./presenter.js");
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.BlankIcon = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
17
|
+
|
|
18
|
+
var _react = require("react");
|
|
19
|
+
|
|
20
|
+
var _emotion = require("@instructure/emotion");
|
|
21
|
+
|
|
22
|
+
var _styles = _interopRequireDefault(require("./styles.js"));
|
|
23
|
+
|
|
24
|
+
var _theme = _interopRequireDefault(require("./theme.js"));
|
|
25
|
+
|
|
26
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
+
|
|
28
|
+
var _dec, _class, _class2, _temp;
|
|
29
|
+
|
|
30
|
+
var BlankIcon = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
31
|
+
(0, _inherits2.default)(BlankIcon, _Component);
|
|
32
|
+
|
|
33
|
+
var _super = (0, _createSuper2.default)(BlankIcon);
|
|
34
|
+
|
|
35
|
+
function BlankIcon() {
|
|
36
|
+
(0, _classCallCheck2.default)(this, BlankIcon);
|
|
37
|
+
return _super.apply(this, arguments);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
(0, _createClass2.default)(BlankIcon, [{
|
|
41
|
+
key: "render",
|
|
42
|
+
value: function render() {
|
|
43
|
+
var number = this.props.number;
|
|
44
|
+
return (0, _emotion.jsx)("span", {
|
|
45
|
+
css: this.props.styles.blankSpace
|
|
46
|
+
}, number);
|
|
47
|
+
}
|
|
48
|
+
}]);
|
|
49
|
+
BlankIcon.displayName = "BlankIcon";
|
|
50
|
+
return BlankIcon;
|
|
51
|
+
}(_react.Component), _class2.propTypes = {
|
|
52
|
+
number: _propTypes.default.number.isRequired,
|
|
53
|
+
styles: _propTypes.default.object
|
|
54
|
+
}.isRequired, _temp)) || _class);
|
|
55
|
+
exports.BlankIcon = BlankIcon;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var generateStyle = function generateStyle(componentTheme) {
|
|
9
|
+
return {
|
|
10
|
+
blankSpace: {
|
|
11
|
+
display: 'inline-flex',
|
|
12
|
+
justifyContent: 'center',
|
|
13
|
+
alignItems: 'center',
|
|
14
|
+
height: componentTheme.blankHeight,
|
|
15
|
+
minWidth: componentTheme.blankMinWidth,
|
|
16
|
+
verticalAlign: 'middle',
|
|
17
|
+
border: "1px solid ".concat(componentTheme.blankBorderColor),
|
|
18
|
+
borderRadius: componentTheme.blankBorderRadius,
|
|
19
|
+
padding: '2px 2px'
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
var _default = generateStyle;
|
|
25
|
+
exports.default = _default;
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/theme.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var generateComponentTheme = function generateComponentTheme(_ref) {
|
|
9
|
+
var colors = _ref.colors;
|
|
10
|
+
return {
|
|
11
|
+
blankBorderColor: colors.tiara,
|
|
12
|
+
blankBorderRadius: '14px',
|
|
13
|
+
blankMinWidth: '20px',
|
|
14
|
+
blankHeight: '20px'
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
var _default = generateComponentTheme;
|
|
19
|
+
exports.default = _default;
|
|
@@ -23,7 +23,8 @@ function mapStateToProps(_state) {
|
|
|
23
23
|
categorizationEnabled: (0, _featureCheck.featureOn)('ia_categorization_afs'),
|
|
24
24
|
trueFalseEnabled: (0, _featureCheck.featureOn)('ia_true_false_afs'),
|
|
25
25
|
choiceEnabled: (0, _featureCheck.featureOn)('ia_choice_afs'),
|
|
26
|
-
multiAnswerEnabled: (0, _featureCheck.featureOn)('ia_multi_answer_afs')
|
|
26
|
+
multiAnswerEnabled: (0, _featureCheck.featureOn)('ia_multi_answer_afs'),
|
|
27
|
+
fillInTheBlankEnabled: (0, _featureCheck.featureOn)('ia_rich_fill_blank_afs')
|
|
27
28
|
}
|
|
28
29
|
};
|
|
29
30
|
}
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js
CHANGED
|
@@ -59,24 +59,30 @@ var _rceChecker = require("../../../../../common/util/rceChecker.js");
|
|
|
59
59
|
|
|
60
60
|
var _quizInteractions = require("@instructure/quiz-interactions");
|
|
61
61
|
|
|
62
|
+
var _quizCommon = require("@instructure/quiz-common");
|
|
63
|
+
|
|
62
64
|
var _dec, _class, _class2, _temp;
|
|
63
65
|
|
|
64
66
|
var styles = {
|
|
65
|
-
componentId: '
|
|
67
|
+
componentId: 'eObAE',
|
|
66
68
|
template: function template(theme) {
|
|
67
|
-
return "\n\n.
|
|
69
|
+
return "\n\n.eObAE_eKXQ{padding:".concat(theme.cardWrapperPadding || 'inherit', "}\n\n.eObAE_bwlc{gap:24px;justify-content:space-between;position:relative;row-gap:32px}\n\n.eObAE_bwlc,.eObAE_bqdH{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:wrap}\n\n.eObAE_bqdH{row-gap:24px}\n\n.eObAE_eTaq{align-items:center;border:1px solid ").concat(theme.blankBorderColor || 'inherit', ";border-radius:").concat(theme.blankBorderRadius || 'inherit', ";display:inline-flex;height:").concat(theme.blankHeight || 'inherit', ";justify-content:center;min-width:").concat(theme.blankMinWidth || 'inherit', ";padding:2px 2px;vertical-align:middle}\n\n.eObAE_NpIG{position:absolute;right:").concat(theme.viewPaddingRight || 'inherit', ";top:0}\n\n.eObAE_eoBe{font-size:").concat(theme.metricNumberContextFontSize || 'inherit', ";font-weight:").concat(theme.metricNumberContextFontWeight || 'inherit', "}\n\n.eObAE_fFDJ{display:none}\n\n.eObAE_fxkJ{margin-top:-8px}\n\n.eObAE_esVF{min-height:48px}\n\n.eObAE_eTZq{position:relative}\n\n.eObAE_eTZq:after{background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff);content:\"\";height:48px;left:0;position:absolute;top:0;width:100%}\n\n.eObAE_cVld{max-width:100%;width:calc(25% + 350px)}");
|
|
68
70
|
},
|
|
69
|
-
'cardWrapper': '
|
|
70
|
-
'itemCardInnerContainer': '
|
|
71
|
-
'metricsContainer': '
|
|
72
|
-
'
|
|
73
|
-
'
|
|
74
|
-
'
|
|
75
|
-
'
|
|
76
|
-
'
|
|
77
|
-
'
|
|
78
|
-
'
|
|
71
|
+
'cardWrapper': 'eObAE_eKXQ',
|
|
72
|
+
'itemCardInnerContainer': 'eObAE_bwlc',
|
|
73
|
+
'metricsContainer': 'eObAE_bqdH',
|
|
74
|
+
'blankSpace': 'eObAE_eTaq',
|
|
75
|
+
'itemCardToggleButtonWrapper': 'eObAE_NpIG',
|
|
76
|
+
'metricNumberContext': 'eObAE_eoBe',
|
|
77
|
+
'hiddenMetrics': 'eObAE_fFDJ',
|
|
78
|
+
'itemBodyToggleButtonWrapper': 'eObAE_fxkJ',
|
|
79
|
+
'itemBody': 'eObAE_esVF',
|
|
80
|
+
'hiddenItemBody': 'eObAE_eTZq',
|
|
81
|
+
'answerFrequencySummaryContainer': 'eObAE_cVld'
|
|
79
82
|
};
|
|
83
|
+
var parser = new DOMParser();
|
|
84
|
+
var parsererrorElement = 'parsererror';
|
|
85
|
+
var parseType = 'text/html';
|
|
80
86
|
var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
81
87
|
(0, _inherits2.default)(NewItemAnalysis, _Component);
|
|
82
88
|
|
|
@@ -148,6 +154,34 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
148
154
|
}, _this.mapInteractionTypeToTranslation(interactionType));
|
|
149
155
|
};
|
|
150
156
|
|
|
157
|
+
_this.isBlank = function (element) {
|
|
158
|
+
if (element.textContent) return false;
|
|
159
|
+
if (!element.hasAttribute('id')) return false;
|
|
160
|
+
var regex = new RegExp('^blank_.+$');
|
|
161
|
+
return regex.test(element.getAttribute('id'));
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
_this.enhanceItemBody = function (itemBody) {
|
|
165
|
+
var tempDoc = parser.parseFromString(itemBody, parseType);
|
|
166
|
+
var errorNode = tempDoc.querySelector(parsererrorElement);
|
|
167
|
+
|
|
168
|
+
if (errorNode) {
|
|
169
|
+
// eslint-disable-next-line no-console
|
|
170
|
+
console.error('Parsing failed: ', errorNode);
|
|
171
|
+
return itemBody;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
Array.from(tempDoc.querySelectorAll('span')).filter(function (span) {
|
|
175
|
+
return _this.isBlank(span);
|
|
176
|
+
}).forEach(function (span, index) {
|
|
177
|
+
var newSpan = span.cloneNode();
|
|
178
|
+
newSpan.setAttribute('class', styles.blankSpace);
|
|
179
|
+
newSpan.innerHTML = "".concat(index + 1);
|
|
180
|
+
span.replaceWith(newSpan);
|
|
181
|
+
});
|
|
182
|
+
return tempDoc.querySelector('body').innerHTML;
|
|
183
|
+
};
|
|
184
|
+
|
|
151
185
|
_this.renderRichContent = function (itemBody, itemBodyClass, itemId) {
|
|
152
186
|
return /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
153
187
|
direction: "row",
|
|
@@ -238,6 +272,14 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
238
272
|
})));
|
|
239
273
|
};
|
|
240
274
|
|
|
275
|
+
_this.shouldEnhanceItemBody = function () {
|
|
276
|
+
var _this$props = _this.props,
|
|
277
|
+
itemAnalysis = _this$props.itemAnalysis,
|
|
278
|
+
afsFlags = _this$props.afsFlags;
|
|
279
|
+
var metadata = itemAnalysis.metadata;
|
|
280
|
+
return afsFlags.fillInTheBlankEnabled && metadata.interaction_type === _quizCommon.RICH_FILL_BLANK_SLUG && metadata.item_body;
|
|
281
|
+
};
|
|
282
|
+
|
|
241
283
|
return _this;
|
|
242
284
|
}
|
|
243
285
|
|
|
@@ -278,10 +320,10 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
278
320
|
value: function render() {
|
|
279
321
|
var _metadata$item_title;
|
|
280
322
|
|
|
281
|
-
var _this$
|
|
282
|
-
showFrequencyTable = _this$
|
|
283
|
-
itemAnalysis = _this$
|
|
284
|
-
afsFlags = _this$
|
|
323
|
+
var _this$props2 = this.props,
|
|
324
|
+
showFrequencyTable = _this$props2.showFrequencyTable,
|
|
325
|
+
itemAnalysis = _this$props2.itemAnalysis,
|
|
326
|
+
afsFlags = _this$props2.afsFlags;
|
|
285
327
|
var answer_summary = itemAnalysis.answer_summary,
|
|
286
328
|
metadata = itemAnalysis.metadata,
|
|
287
329
|
scores = itemAnalysis.scores;
|
|
@@ -290,6 +332,7 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
290
332
|
var metricsClass = (0, _classnames3.default)((0, _defineProperty2.default)({}, styles.hiddenMetrics, !this.state.metricsExpanded));
|
|
291
333
|
var itemBodyClass = (0, _classnames3.default)(styles.itemBody, (0, _defineProperty2.default)({}, styles.hiddenItemBody, this.isBodyHigherThanContainer() && !this.state.bodyExpanded));
|
|
292
334
|
var title = (_metadata$item_title = metadata.item_title) !== null && _metadata$item_title !== void 0 ? _metadata$item_title : (0, _formatMessage.default)('Untitled item');
|
|
335
|
+
var itemBodyEnhanced = this.shouldEnhanceItemBody() ? this.enhanceItemBody(metadata.item_body) : metadata.item_body;
|
|
293
336
|
return /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
294
337
|
className: styles.cardWrapper
|
|
295
338
|
}, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
@@ -310,7 +353,7 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
310
353
|
padding: "small xx-small none none",
|
|
311
354
|
overflowY: "hidden",
|
|
312
355
|
size: !this.state.bodyExpanded ? '60px' : void 0
|
|
313
|
-
}, this.renderRichContent(
|
|
356
|
+
}, this.renderRichContent(itemBodyEnhanced, itemBodyClass, itemId)))), /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, null, this.renderMetrics(scores, metricsClass)))), showFrequencyTable && this.renderAnswerSummaryTable(itemId, answer_summary, metricsClass, interactionType, afsFlags)));
|
|
314
357
|
}
|
|
315
358
|
}]);
|
|
316
359
|
NewItemAnalysis.displayName = "NewItemAnalysis";
|
|
@@ -8,12 +8,17 @@ exports.default = generator;
|
|
|
8
8
|
function generator(_ref) {
|
|
9
9
|
var spacing = _ref.spacing,
|
|
10
10
|
breakpoints = _ref.breakpoints,
|
|
11
|
-
typography = _ref.typography
|
|
11
|
+
typography = _ref.typography,
|
|
12
|
+
colors = _ref.colors;
|
|
12
13
|
return {
|
|
13
14
|
tabletBreakPoint: "max-width: ".concat(breakpoints.large),
|
|
14
15
|
cardWrapperPadding: spacing.medium,
|
|
15
16
|
viewPaddingRight: spacing.xxSmall,
|
|
16
17
|
metricNumberContextFontSize: typography.fontSizeMedium,
|
|
17
|
-
metricNumberContextFontWeight: typography.fontWeightNormal
|
|
18
|
+
metricNumberContextFontWeight: typography.fontWeightNormal,
|
|
19
|
+
blankBorderColor: colors.tiara,
|
|
20
|
+
blankBorderRadius: '14px',
|
|
21
|
+
blankMinWidth: '20px',
|
|
22
|
+
blankHeight: '20px'
|
|
18
23
|
};
|
|
19
24
|
}
|