@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
package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js
CHANGED
|
@@ -10,20 +10,21 @@ import { Heading } from '@instructure/ui-heading';
|
|
|
10
10
|
import { PresentationContent } from '@instructure/ui-a11y-content';
|
|
11
11
|
import React, { Component } from 'react';
|
|
12
12
|
var styles = {
|
|
13
|
-
componentId: '
|
|
13
|
+
componentId: 'eObAE',
|
|
14
14
|
template: function template(theme) {
|
|
15
|
-
return "\n\n.
|
|
15
|
+
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)}");
|
|
16
16
|
},
|
|
17
|
-
'cardWrapper': '
|
|
18
|
-
'itemCardInnerContainer': '
|
|
19
|
-
'metricsContainer': '
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
17
|
+
'cardWrapper': 'eObAE_eKXQ',
|
|
18
|
+
'itemCardInnerContainer': 'eObAE_bwlc',
|
|
19
|
+
'metricsContainer': 'eObAE_bqdH',
|
|
20
|
+
'blankSpace': 'eObAE_eTaq',
|
|
21
|
+
'itemCardToggleButtonWrapper': 'eObAE_NpIG',
|
|
22
|
+
'metricNumberContext': 'eObAE_eoBe',
|
|
23
|
+
'hiddenMetrics': 'eObAE_fFDJ',
|
|
24
|
+
'itemBodyToggleButtonWrapper': 'eObAE_fxkJ',
|
|
25
|
+
'itemBody': 'eObAE_esVF',
|
|
26
|
+
'hiddenItemBody': 'eObAE_eTZq',
|
|
27
|
+
'answerFrequencySummaryContainer': 'eObAE_cVld'
|
|
27
28
|
};
|
|
28
29
|
import t from '@instructure/quiz-i18n/es/format-message';
|
|
29
30
|
import ExpandButton from "../../../../../common/components/shared/ExpandButton/index.js";
|
|
@@ -42,6 +43,10 @@ import { Flex } from '@instructure/ui-flex';
|
|
|
42
43
|
import { RichContentRenderer } from '@instructure/quiz-rce';
|
|
43
44
|
import { ensureRCEContentIsLoaded } from "../../../../../common/util/rceChecker.js";
|
|
44
45
|
import { PropTypes } from '@instructure/quiz-interactions';
|
|
46
|
+
import { RICH_FILL_BLANK_SLUG } from '@instructure/quiz-common';
|
|
47
|
+
var parser = new DOMParser();
|
|
48
|
+
var parsererrorElement = 'parsererror';
|
|
49
|
+
var parseType = 'text/html';
|
|
45
50
|
export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
46
51
|
_inherits(NewItemAnalysis, _Component);
|
|
47
52
|
|
|
@@ -113,6 +118,34 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
113
118
|
}, _this.mapInteractionTypeToTranslation(interactionType));
|
|
114
119
|
};
|
|
115
120
|
|
|
121
|
+
_this.isBlank = function (element) {
|
|
122
|
+
if (element.textContent) return false;
|
|
123
|
+
if (!element.hasAttribute('id')) return false;
|
|
124
|
+
var regex = new RegExp('^blank_.+$');
|
|
125
|
+
return regex.test(element.getAttribute('id'));
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
_this.enhanceItemBody = function (itemBody) {
|
|
129
|
+
var tempDoc = parser.parseFromString(itemBody, parseType);
|
|
130
|
+
var errorNode = tempDoc.querySelector(parsererrorElement);
|
|
131
|
+
|
|
132
|
+
if (errorNode) {
|
|
133
|
+
// eslint-disable-next-line no-console
|
|
134
|
+
console.error('Parsing failed: ', errorNode);
|
|
135
|
+
return itemBody;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
Array.from(tempDoc.querySelectorAll('span')).filter(function (span) {
|
|
139
|
+
return _this.isBlank(span);
|
|
140
|
+
}).forEach(function (span, index) {
|
|
141
|
+
var newSpan = span.cloneNode();
|
|
142
|
+
newSpan.setAttribute('class', styles.blankSpace);
|
|
143
|
+
newSpan.innerHTML = "".concat(index + 1);
|
|
144
|
+
span.replaceWith(newSpan);
|
|
145
|
+
});
|
|
146
|
+
return tempDoc.querySelector('body').innerHTML;
|
|
147
|
+
};
|
|
148
|
+
|
|
116
149
|
_this.renderRichContent = function (itemBody, itemBodyClass, itemId) {
|
|
117
150
|
return /*#__PURE__*/React.createElement(Flex, {
|
|
118
151
|
direction: "row",
|
|
@@ -203,6 +236,14 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
203
236
|
})));
|
|
204
237
|
};
|
|
205
238
|
|
|
239
|
+
_this.shouldEnhanceItemBody = function () {
|
|
240
|
+
var _this$props = _this.props,
|
|
241
|
+
itemAnalysis = _this$props.itemAnalysis,
|
|
242
|
+
afsFlags = _this$props.afsFlags;
|
|
243
|
+
var metadata = itemAnalysis.metadata;
|
|
244
|
+
return afsFlags.fillInTheBlankEnabled && metadata.interaction_type === RICH_FILL_BLANK_SLUG && metadata.item_body;
|
|
245
|
+
};
|
|
246
|
+
|
|
206
247
|
return _this;
|
|
207
248
|
}
|
|
208
249
|
|
|
@@ -243,10 +284,10 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
243
284
|
value: function render() {
|
|
244
285
|
var _metadata$item_title;
|
|
245
286
|
|
|
246
|
-
var _this$
|
|
247
|
-
showFrequencyTable = _this$
|
|
248
|
-
itemAnalysis = _this$
|
|
249
|
-
afsFlags = _this$
|
|
287
|
+
var _this$props2 = this.props,
|
|
288
|
+
showFrequencyTable = _this$props2.showFrequencyTable,
|
|
289
|
+
itemAnalysis = _this$props2.itemAnalysis,
|
|
290
|
+
afsFlags = _this$props2.afsFlags;
|
|
250
291
|
var answer_summary = itemAnalysis.answer_summary,
|
|
251
292
|
metadata = itemAnalysis.metadata,
|
|
252
293
|
scores = itemAnalysis.scores;
|
|
@@ -255,6 +296,7 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
255
296
|
var metricsClass = classnames(_defineProperty({}, styles.hiddenMetrics, !this.state.metricsExpanded));
|
|
256
297
|
var itemBodyClass = classnames(styles.itemBody, _defineProperty({}, styles.hiddenItemBody, this.isBodyHigherThanContainer() && !this.state.bodyExpanded));
|
|
257
298
|
var title = (_metadata$item_title = metadata.item_title) !== null && _metadata$item_title !== void 0 ? _metadata$item_title : t('Untitled item');
|
|
299
|
+
var itemBodyEnhanced = this.shouldEnhanceItemBody() ? this.enhanceItemBody(metadata.item_body) : metadata.item_body;
|
|
258
300
|
return /*#__PURE__*/React.createElement(Card, {
|
|
259
301
|
className: styles.cardWrapper
|
|
260
302
|
}, /*#__PURE__*/React.createElement(Flex, {
|
|
@@ -275,7 +317,7 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
275
317
|
padding: "small xx-small none none",
|
|
276
318
|
overflowY: "hidden",
|
|
277
319
|
size: !this.state.bodyExpanded ? '60px' : void 0
|
|
278
|
-
}, this.renderRichContent(
|
|
320
|
+
}, this.renderRichContent(itemBodyEnhanced, itemBodyClass, itemId)))), /*#__PURE__*/React.createElement(Flex.Item, null, this.renderMetrics(scores, metricsClass)))), showFrequencyTable && this.renderAnswerSummaryTable(itemId, answer_summary, metricsClass, interactionType, afsFlags)));
|
|
279
321
|
}
|
|
280
322
|
}]);
|
|
281
323
|
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
export default function generator(_ref) {
|
|
2
2
|
var spacing = _ref.spacing,
|
|
3
3
|
breakpoints = _ref.breakpoints,
|
|
4
|
-
typography = _ref.typography
|
|
4
|
+
typography = _ref.typography,
|
|
5
|
+
colors = _ref.colors;
|
|
5
6
|
return {
|
|
6
7
|
tabletBreakPoint: "max-width: ".concat(breakpoints.large),
|
|
7
8
|
cardWrapperPadding: spacing.medium,
|
|
8
9
|
viewPaddingRight: spacing.xxSmall,
|
|
9
10
|
metricNumberContextFontSize: typography.fontSizeMedium,
|
|
10
|
-
metricNumberContextFontWeight: typography.fontWeightNormal
|
|
11
|
+
metricNumberContextFontWeight: typography.fontWeightNormal,
|
|
12
|
+
blankBorderColor: colors.tiara,
|
|
13
|
+
blankBorderRadius: '14px',
|
|
14
|
+
blankMinWidth: '20px',
|
|
15
|
+
blankHeight: '20px'
|
|
11
16
|
};
|
|
12
17
|
}
|
|
@@ -26,11 +26,11 @@ export var quizAnalysisPropType = PropTypes.shape({
|
|
|
26
26
|
average_attempts: PropTypes.number
|
|
27
27
|
}).isRequired
|
|
28
28
|
});
|
|
29
|
-
var aggregateDetailPropType = PropTypes.shape({
|
|
29
|
+
export var aggregateDetailPropType = PropTypes.shape({
|
|
30
30
|
count: PropTypes.number.isRequired,
|
|
31
31
|
percentage: PropTypes.number.isRequired
|
|
32
32
|
});
|
|
33
|
-
var aggregatePropType = PropTypes.shape({
|
|
33
|
+
export var aggregatePropType = PropTypes.shape({
|
|
34
34
|
correct: aggregateDetailPropType.isRequired,
|
|
35
35
|
incorrect: aggregateDetailPropType.isRequired,
|
|
36
36
|
partial_correct: aggregateDetailPropType
|
|
@@ -39,14 +39,16 @@ export var onlyAggregatePropType = PropTypes.shape({
|
|
|
39
39
|
no_answer: aggregateDetailPropType,
|
|
40
40
|
aggregate: aggregatePropType
|
|
41
41
|
});
|
|
42
|
+
export var choiceTypeObject = PropTypes.shape({
|
|
43
|
+
body: PropTypes.string,
|
|
44
|
+
correct: PropTypes.bool,
|
|
45
|
+
count: PropTypes.number,
|
|
46
|
+
percentage: PropTypes.number
|
|
47
|
+
});
|
|
42
48
|
export var choiceTypeAnswerSummaryPropType = PropTypes.shape({
|
|
43
|
-
choices: PropTypes.arrayOf(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
count: PropTypes.number,
|
|
47
|
-
percentage: PropTypes.number
|
|
48
|
-
})),
|
|
49
|
-
no_answer: aggregateDetailPropType
|
|
49
|
+
choices: PropTypes.arrayOf(choiceTypeObject),
|
|
50
|
+
no_answer: aggregateDetailPropType,
|
|
51
|
+
aggregate: aggregatePropType
|
|
50
52
|
});
|
|
51
53
|
export var matchingTypeAnswerSummaryPropType = PropTypes.shape({
|
|
52
54
|
questions: PropTypes.objectOf(PropTypes.shape({
|
|
@@ -57,9 +59,25 @@ export var matchingTypeAnswerSummaryPropType = PropTypes.shape({
|
|
|
57
59
|
body: PropTypes.string,
|
|
58
60
|
distractor: PropTypes.bool
|
|
59
61
|
}))
|
|
60
|
-
}))
|
|
62
|
+
})),
|
|
63
|
+
no_answer: aggregateDetailPropType,
|
|
64
|
+
aggregate: aggregatePropType
|
|
65
|
+
});
|
|
66
|
+
export var richFillBlankTypeAnswerSummaryPropType = PropTypes.shape({
|
|
67
|
+
blanks: PropTypes.arrayOf(PropTypes.shape({
|
|
68
|
+
choices: PropTypes.arrayOf(choiceTypeObject),
|
|
69
|
+
blank_text: PropTypes.string,
|
|
70
|
+
blank_type: PropTypes.string,
|
|
71
|
+
no_answer: PropTypes.number,
|
|
72
|
+
aggregate: PropTypes.shape({
|
|
73
|
+
correct: PropTypes.number,
|
|
74
|
+
incorrect: PropTypes.number
|
|
75
|
+
})
|
|
76
|
+
})),
|
|
77
|
+
no_answer: aggregateDetailPropType,
|
|
78
|
+
aggregate: aggregatePropType
|
|
61
79
|
});
|
|
62
|
-
export var answerSummaryPropType = PropTypes.oneOfType([choiceTypeAnswerSummaryPropType, onlyAggregatePropType, matchingTypeAnswerSummaryPropType]);
|
|
80
|
+
export var answerSummaryPropType = PropTypes.oneOfType([choiceTypeAnswerSummaryPropType, onlyAggregatePropType, matchingTypeAnswerSummaryPropType, richFillBlankTypeAnswerSummaryPropType]);
|
|
63
81
|
export var itemAnalysisPropType = PropTypes.shape({
|
|
64
82
|
attempts: PropTypes.shape({
|
|
65
83
|
students_responded: PropTypes.number,
|
|
@@ -90,5 +108,6 @@ export var afsFlags = PropTypes.shape({
|
|
|
90
108
|
categorizationEnabled: PropTypes.bool.isRequired,
|
|
91
109
|
trueFalseEnabled: PropTypes.bool.isRequired,
|
|
92
110
|
choiceEnabled: PropTypes.bool.isRequired,
|
|
93
|
-
multiAnswerEnabled: PropTypes.bool.isRequired
|
|
111
|
+
multiAnswerEnabled: PropTypes.bool.isRequired,
|
|
112
|
+
fillInTheBlankEnabled: PropTypes.bool.isRequired
|
|
94
113
|
});
|
|
@@ -19,7 +19,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
21
21
|
|
|
22
|
-
var _index = _interopRequireDefault(require("
|
|
22
|
+
var _index = _interopRequireDefault(require("../shared/ChoiceTypeTable/index.js"));
|
|
23
23
|
|
|
24
24
|
var _propTypes2 = require("../../propTypes.js");
|
|
25
25
|
|
|
@@ -52,7 +52,7 @@ var ChoiceType = /*#__PURE__*/function (_Component) {
|
|
|
52
52
|
return /*#__PURE__*/_react.default.createElement(_index3.default, null, /*#__PURE__*/_react.default.createElement(_presenter.AfsPartsContainer, {
|
|
53
53
|
afsTable: /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
54
54
|
itemId: itemId,
|
|
55
|
-
|
|
55
|
+
choices: answerSummary.choices
|
|
56
56
|
}),
|
|
57
57
|
aggregationTable: /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
58
58
|
itemId: itemId,
|
|
@@ -138,6 +138,7 @@ var MatchingTypeTable = (_dec = (0, _uiThemeable.themeable)(_theme.default, styl
|
|
|
138
138
|
padding: '0 0 0 0'
|
|
139
139
|
}
|
|
140
140
|
}, /*#__PURE__*/_react.default.createElement(_uiA11yContent.ScreenReaderContent, null, correct ? "".concat((0, _formatMessage.default)('Correct answer'), ": ").concat(count) : count), /*#__PURE__*/_react.default.createElement("div", {
|
|
141
|
+
"aria-hidden": "true",
|
|
141
142
|
className: containerClassNames
|
|
142
143
|
}, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
143
144
|
direction: "row",
|
|
@@ -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.RichFillBlankType;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _presenter = require("./presenter.js");
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.RichFillBlankType = 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 _index = _interopRequireDefault(require("../shared/AfsTableWrapper/index.js"));
|
|
23
|
+
|
|
24
|
+
var _presenter = require("../shared/AfsPartsContainer/presenter.js");
|
|
25
|
+
|
|
26
|
+
var _index2 = _interopRequireDefault(require("../shared/ChoiceGroupTypeTable/index.js"));
|
|
27
|
+
|
|
28
|
+
var _uiText = require("@instructure/ui-text");
|
|
29
|
+
|
|
30
|
+
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
31
|
+
|
|
32
|
+
var _index3 = _interopRequireDefault(require("../shared/AggregationTable/index.js"));
|
|
33
|
+
|
|
34
|
+
var _emotion = require("@instructure/emotion");
|
|
35
|
+
|
|
36
|
+
var _styles = _interopRequireDefault(require("./styles.js"));
|
|
37
|
+
|
|
38
|
+
var _theme = _interopRequireDefault(require("./theme.js"));
|
|
39
|
+
|
|
40
|
+
var _dec, _class, _class2, _temp;
|
|
41
|
+
|
|
42
|
+
var RichFillBlankType = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
43
|
+
(0, _inherits2.default)(RichFillBlankType, _Component);
|
|
44
|
+
|
|
45
|
+
var _super = (0, _createSuper2.default)(RichFillBlankType);
|
|
46
|
+
|
|
47
|
+
function RichFillBlankType() {
|
|
48
|
+
var _this;
|
|
49
|
+
|
|
50
|
+
(0, _classCallCheck2.default)(this, RichFillBlankType);
|
|
51
|
+
|
|
52
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
53
|
+
args[_key] = arguments[_key];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
57
|
+
|
|
58
|
+
_this.renderBlankInfo = function (blank) {
|
|
59
|
+
var _blank$aggregate, _blank$aggregate2;
|
|
60
|
+
|
|
61
|
+
var correctCount = (blank === null || blank === void 0 ? void 0 : (_blank$aggregate = blank.aggregate) === null || _blank$aggregate === void 0 ? void 0 : _blank$aggregate.correct) || 0;
|
|
62
|
+
var incorrectCount = (blank === null || blank === void 0 ? void 0 : (_blank$aggregate2 = blank.aggregate) === null || _blank$aggregate2 === void 0 ? void 0 : _blank$aggregate2.incorrect) || 0;
|
|
63
|
+
var noAnswer = (blank === null || blank === void 0 ? void 0 : blank.no_answer) || 0;
|
|
64
|
+
var correctString = "".concat((0, _formatMessage.default)('Correct'), ": ").concat(correctCount, " ");
|
|
65
|
+
var incorrectString = "".concat((0, _formatMessage.default)('Incorrect'), ": ").concat(incorrectCount, " ");
|
|
66
|
+
var noAnswerString = "".concat((0, _formatMessage.default)('No Answer'), ": ").concat(noAnswer, " ");
|
|
67
|
+
return (0, _emotion.jsx)("div", {
|
|
68
|
+
css: _this.props.styles.groupAggregationContainer
|
|
69
|
+
}, (0, _emotion.jsx)(_uiText.Text, null, correctString), (0, _emotion.jsx)(_uiText.Text, null, incorrectString), (0, _emotion.jsx)(_uiText.Text, null, noAnswerString));
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
_this.renderGroup = function (key, itemId, blank, index) {
|
|
73
|
+
return (0, _emotion.jsx)(_index2.default, {
|
|
74
|
+
key: key,
|
|
75
|
+
itemId: itemId,
|
|
76
|
+
blank: blank,
|
|
77
|
+
blankInfo: _this.renderBlankInfo(blank),
|
|
78
|
+
index: index
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
_this.renderGroups = function () {
|
|
83
|
+
var _this$props = _this.props,
|
|
84
|
+
answerSummary = _this$props.answerSummary,
|
|
85
|
+
itemId = _this$props.itemId;
|
|
86
|
+
var blanks = answerSummary.blanks;
|
|
87
|
+
return blanks.map(function (blank, index) {
|
|
88
|
+
var key = "ChoiceGroupTypeTable_".concat(index);
|
|
89
|
+
return _this.renderGroup(key, itemId, blank, index);
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
_this.render = function () {
|
|
94
|
+
var _this$props2 = _this.props,
|
|
95
|
+
answerSummary = _this$props2.answerSummary,
|
|
96
|
+
itemId = _this$props2.itemId;
|
|
97
|
+
return (0, _emotion.jsx)(_index.default, null, (0, _emotion.jsx)(_presenter.AfsPartsContainer, {
|
|
98
|
+
afsTable: _this.renderGroups(),
|
|
99
|
+
aggregationTable: (0, _emotion.jsx)(_index3.default, {
|
|
100
|
+
itemId: itemId,
|
|
101
|
+
answerSummary: answerSummary
|
|
102
|
+
})
|
|
103
|
+
}));
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
return _this;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return RichFillBlankType;
|
|
110
|
+
}(_react.Component), _class2.propTypes = {
|
|
111
|
+
itemId: _propTypes.default.number.isRequired,
|
|
112
|
+
answerSummary: _propTypes2.richFillBlankTypeAnswerSummaryPropType.isRequired,
|
|
113
|
+
styles: _propTypes.default.object
|
|
114
|
+
}.isRequired, _temp)) || _class);
|
|
115
|
+
exports.RichFillBlankType = RichFillBlankType;
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
groupAggregationContainer: {
|
|
11
|
+
display: 'flex',
|
|
12
|
+
gap: componentTheme.aggregateSpacing
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
var _default = generateStyle;
|
|
18
|
+
exports.default = _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
aggregateSpacing: spacing.xSmall
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
var _default = generateComponentTheme;
|
|
16
|
+
exports.default = _default;
|
|
@@ -23,9 +23,11 @@ var _index = _interopRequireDefault(require("./LegacyChoiceType/index.js"));
|
|
|
23
23
|
|
|
24
24
|
var _index2 = _interopRequireDefault(require("./ChoiceType/index.js"));
|
|
25
25
|
|
|
26
|
-
var _index3 = _interopRequireDefault(require("./
|
|
26
|
+
var _index3 = _interopRequireDefault(require("./RichFillBlankType/index.js"));
|
|
27
27
|
|
|
28
|
-
var _index4 = require("./
|
|
28
|
+
var _index4 = _interopRequireDefault(require("./AggregationType/index.js"));
|
|
29
|
+
|
|
30
|
+
var _index5 = require("./MatchingType/index.js");
|
|
29
31
|
|
|
30
32
|
var _propTypes = require("../propTypes.js");
|
|
31
33
|
|
|
@@ -48,23 +50,23 @@ var AnswerFrequencySummary = /*#__PURE__*/function (_Component) {
|
|
|
48
50
|
|
|
49
51
|
_this.addAfsComponentsByFlags = function (afsFlags) {
|
|
50
52
|
if (afsFlags.formulaEnabled) {
|
|
51
|
-
_this.afsTableComponentMap.set('formula',
|
|
53
|
+
_this.afsTableComponentMap.set('formula', _index4.default);
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
if (afsFlags.hotSpotEnabled) {
|
|
55
|
-
_this.afsTableComponentMap.set('hot-spot',
|
|
57
|
+
_this.afsTableComponentMap.set('hot-spot', _index4.default);
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
if (afsFlags.matchingEnabled) {
|
|
59
|
-
_this.afsTableComponentMap.set('matching',
|
|
61
|
+
_this.afsTableComponentMap.set('matching', _index5.MatchingType);
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
if (afsFlags.orderingEnabled) {
|
|
63
|
-
_this.afsTableComponentMap.set('ordering',
|
|
65
|
+
_this.afsTableComponentMap.set('ordering', _index5.OrderingType);
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
if (afsFlags.categorizationEnabled) {
|
|
67
|
-
_this.afsTableComponentMap.set('categorization',
|
|
69
|
+
_this.afsTableComponentMap.set('categorization', _index5.CategorizationType);
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
if (afsFlags.trueFalseEnabled) {
|
|
@@ -78,6 +80,10 @@ var AnswerFrequencySummary = /*#__PURE__*/function (_Component) {
|
|
|
78
80
|
if (afsFlags.multiAnswerEnabled) {
|
|
79
81
|
_this.afsTableComponentMap.set('multi-answer', _index2.default);
|
|
80
82
|
}
|
|
83
|
+
|
|
84
|
+
if (afsFlags.fillInTheBlankEnabled) {
|
|
85
|
+
_this.afsTableComponentMap.set('rich-fill-blank', _index3.default);
|
|
86
|
+
}
|
|
81
87
|
};
|
|
82
88
|
|
|
83
89
|
_this.render = function () {
|
|
@@ -23,8 +23,6 @@ var _uiTable = require("@instructure/ui-table");
|
|
|
23
23
|
|
|
24
24
|
var _propTypes = require("../../../propTypes.js");
|
|
25
25
|
|
|
26
|
-
var _uiA11yContent = require("@instructure/ui-a11y-content");
|
|
27
|
-
|
|
28
26
|
var _propTypes2 = _interopRequireDefault(require("prop-types"));
|
|
29
27
|
|
|
30
28
|
var _uiIcons = require("@instructure/ui-icons");
|
|
@@ -124,7 +122,7 @@ var AggregationTable = (_dec = (0, _uiThemeable.themeable)(_theme.default, style
|
|
|
124
122
|
themeOverride: {
|
|
125
123
|
padding: '0px'
|
|
126
124
|
}
|
|
127
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
125
|
+
}, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
128
126
|
direction: "row",
|
|
129
127
|
alignItems: "center"
|
|
130
128
|
}, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, {
|
|
@@ -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.ChoiceGroupTypeTable;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _presenter = require("./presenter.js");
|