@instructure/quiz-core 20.4.2-rc.1 → 20.4.2-rc.3
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/common/components/resources/quiz/instructions/Instructions.js +17 -18
- package/es/common/components/resources/quiz/instructions/styles.js +21 -0
- package/es/common/components/resources/quiz/instructions/theme.js +4 -2
- package/es/common/components/resources/quiz/title/Title.js +15 -18
- package/es/common/components/resources/quiz/title/styles.js +19 -0
- package/es/common/components/resources/quiz/title/theme.js +4 -2
- package/es/common/components/resources/quizSessionResult/Header/index.js +22 -29
- package/es/common/components/resources/quizSessionResult/Header/styles.js +29 -0
- package/es/common/components/resources/quizSessionResult/Header/theme.js +4 -2
- package/es/common/components/resources/quizSessionResult/Info/index.js +43 -53
- package/es/common/components/resources/quizSessionResult/Info/styles.js +61 -0
- package/es/common/components/resources/quizSessionResult/Info/theme.js +4 -2
- 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 +2 -1
- package/lib/common/components/resources/quiz/instructions/Instructions.js +15 -22
- package/lib/common/components/resources/quiz/instructions/styles.js +29 -0
- package/lib/common/components/resources/quiz/instructions/theme.js +6 -3
- package/lib/common/components/resources/quiz/title/Title.js +15 -23
- package/lib/common/components/resources/quiz/title/styles.js +27 -0
- package/lib/common/components/resources/quiz/title/theme.js +6 -3
- package/lib/common/components/resources/quizSessionResult/Header/index.js +21 -31
- package/lib/common/components/resources/quizSessionResult/Header/styles.js +37 -0
- package/lib/common/components/resources/quizSessionResult/Header/theme.js +6 -3
- package/lib/common/components/resources/quizSessionResult/Info/index.js +42 -55
- package/lib/common/components/resources/quizSessionResult/Info/styles.js +69 -0
- package/lib/common/components/resources/quizSessionResult/Info/theme.js +6 -3
- 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 +2 -1
- package/package.json +9 -9
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
@@ -19,14 +17,12 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
|
|
|
19
17
|
|
|
20
18
|
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
21
19
|
|
|
22
|
-
var _react =
|
|
20
|
+
var _react = require("react");
|
|
23
21
|
|
|
24
22
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
23
|
|
|
26
24
|
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
|
27
25
|
|
|
28
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
29
|
-
|
|
30
26
|
var _uiA11yContent = require("@instructure/ui-a11y-content");
|
|
31
27
|
|
|
32
28
|
var _uiAlerts = require("@instructure/ui-alerts");
|
|
@@ -39,7 +35,7 @@ var _uiHeading = require("@instructure/ui-heading");
|
|
|
39
35
|
|
|
40
36
|
var _uiView = require("@instructure/ui-view");
|
|
41
37
|
|
|
42
|
-
var
|
|
38
|
+
var _emotion = require("@instructure/emotion");
|
|
43
39
|
|
|
44
40
|
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
45
41
|
|
|
@@ -51,26 +47,14 @@ var _index = _interopRequireDefault(require("../../../shared/FormattedDuration/i
|
|
|
51
47
|
|
|
52
48
|
var _formatTimespan = require("../../../../util/formatTimespan.js");
|
|
53
49
|
|
|
50
|
+
var _styles = _interopRequireDefault(require("./styles.js"));
|
|
51
|
+
|
|
54
52
|
var _theme = _interopRequireDefault(require("./theme.js"));
|
|
55
53
|
|
|
56
54
|
var _dec, _class, _class2, _temp;
|
|
57
55
|
|
|
58
|
-
var styles = {
|
|
59
|
-
componentId: 'fhrSa',
|
|
60
|
-
template: function template(theme) {
|
|
61
|
-
return "\n\n.fhrSa_ekHz{align-items:center;display:flex;flex-direction:row;justify-content:center;margin-top:".concat(theme.alertWrapperMargin || 'inherit', "}\n\n.fhrSa_bANW{flex-grow:1;max-width:33rem}\n\n.fhrSa_gasz{margin:none;padding:none}\n\n.fhrSa_pypk,.fhrSa_gasz{align-items:center;display:flex;justify-content:center}\n\n.fhrSa_pypk{align-self:center;flex-wrap:wrap}\n\n.fhrSa_bCqi{flex-wrap:wrap;justify-content:flex-start}\n\n.fhrSa_frHB,.fhrSa_bCqi{align-items:center;display:flex;flex:1 1 auto}\n\n.fhrSa_frHB{height:150px;margin:").concat(theme.scoreMargin || 'inherit', ";width:150px;z-index:").concat(theme.scoreZIndex || 'inherit', "}\n\n.fhrSa_fkZg{font-size:").concat(theme.scorePercentageFontSize || 'inherit', ";font-weight:").concat(theme.scorePercentageFontWeight || 'inherit', "}\n\n.fhrSa_vsBM{flex:1 1 auto;margin:").concat(theme.infoWrapperMargin || 'inherit', ";padding-left:").concat(theme.inforWrapperPadding || 'inherit', "}");
|
|
62
|
-
},
|
|
63
|
-
'alertWrapper': 'fhrSa_ekHz',
|
|
64
|
-
'alertWidth': 'fhrSa_bANW',
|
|
65
|
-
'wrapper': 'fhrSa_gasz',
|
|
66
|
-
'info': 'fhrSa_pypk',
|
|
67
|
-
'scoreStats': 'fhrSa_bCqi',
|
|
68
|
-
'score': 'fhrSa_frHB',
|
|
69
|
-
'scorePercentage': 'fhrSa_fkZg',
|
|
70
|
-
'infoWrapper': 'fhrSa_vsBM'
|
|
71
|
-
};
|
|
72
56
|
var unknownPercentageValue = 'UNKNOWN_PERCENTAGE';
|
|
73
|
-
var Info = (_dec = (0,
|
|
57
|
+
var Info = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_withI18nSupport) {
|
|
74
58
|
(0, _inherits2.default)(Info, _withI18nSupport);
|
|
75
59
|
|
|
76
60
|
var _super = (0, _createSuper2.default)(Info);
|
|
@@ -105,8 +89,8 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
105
89
|
default: '?',
|
|
106
90
|
description: 'placeholder for an unknown percentage value'
|
|
107
91
|
}) : this.formatPercentMax2FractionDigits(valueNow);
|
|
108
|
-
return
|
|
109
|
-
|
|
92
|
+
return (0, _emotion.jsx)("div", {
|
|
93
|
+
css: this.props.styles.scorePercentage,
|
|
110
94
|
"data-automation": "sdk-quiz-score-percentage"
|
|
111
95
|
}, valueToShow);
|
|
112
96
|
}
|
|
@@ -124,7 +108,7 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
124
108
|
|
|
125
109
|
if (quizSessionResult.isLoaded() && quizSessionResult.autogradingFailed()) {
|
|
126
110
|
var msg = (0, _formatMessage.default)('There was a grading problem. Please inform your instructor.');
|
|
127
|
-
alerts.push(
|
|
111
|
+
alerts.push((0, _emotion.jsx)(_uiAlerts.Alert, {
|
|
128
112
|
key: "autograding_failed",
|
|
129
113
|
variant: "warning"
|
|
130
114
|
}, msg));
|
|
@@ -134,17 +118,17 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
134
118
|
var ungradedText = (0, _formatMessage.default)("{\n count, plural,\n one {# question requires grading}\n other {# questions require grading}\n }", {
|
|
135
119
|
count: ungradedCount
|
|
136
120
|
});
|
|
137
|
-
alerts.push(
|
|
121
|
+
alerts.push((0, _emotion.jsx)(_uiAlerts.Alert, {
|
|
138
122
|
key: "manual_grading",
|
|
139
123
|
variant: "info"
|
|
140
124
|
}, ungradedText));
|
|
141
125
|
}
|
|
142
126
|
|
|
143
127
|
if (alerts.length) {
|
|
144
|
-
return
|
|
145
|
-
|
|
146
|
-
},
|
|
147
|
-
|
|
128
|
+
return (0, _emotion.jsx)("div", {
|
|
129
|
+
css: this.props.styles.alertWrapper
|
|
130
|
+
}, (0, _emotion.jsx)("div", {
|
|
131
|
+
css: this.props.styles.alertWidth,
|
|
148
132
|
"data-automation": "sdk-results-requires-grading"
|
|
149
133
|
}, alerts));
|
|
150
134
|
}
|
|
@@ -157,23 +141,23 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
157
141
|
var alt = (0, _formatMessage.default)('Grade for this attempt: { grade }', {
|
|
158
142
|
grade: letterGrade
|
|
159
143
|
});
|
|
160
|
-
return
|
|
144
|
+
return (0, _emotion.jsx)(_uiA11yContent.AccessibleContent, {
|
|
161
145
|
alt: alt
|
|
162
|
-
},
|
|
146
|
+
}, (0, _emotion.jsx)(_uiView.View, {
|
|
163
147
|
as: "div"
|
|
164
|
-
},
|
|
148
|
+
}, (0, _emotion.jsx)(_uiText.Text, {
|
|
165
149
|
size: "xx-large",
|
|
166
150
|
weight: "bold",
|
|
167
151
|
color: "primary"
|
|
168
|
-
}, letterGrade)),
|
|
152
|
+
}, letterGrade)), (0, _emotion.jsx)(_uiText.Text, {
|
|
169
153
|
color: "secondary"
|
|
170
154
|
}, gradeText));
|
|
171
155
|
}
|
|
172
156
|
}, {
|
|
173
157
|
key: "renderScoreStats",
|
|
174
158
|
value: function renderScoreStats() {
|
|
175
|
-
return
|
|
176
|
-
|
|
159
|
+
return (0, _emotion.jsx)("div", {
|
|
160
|
+
css: this.props.styles.scoreStats
|
|
177
161
|
}, this.renderProgress(), this.renderPointsDisplay());
|
|
178
162
|
}
|
|
179
163
|
}, {
|
|
@@ -183,10 +167,10 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
183
167
|
return null;
|
|
184
168
|
}
|
|
185
169
|
|
|
186
|
-
return
|
|
187
|
-
|
|
170
|
+
return (0, _emotion.jsx)("div", {
|
|
171
|
+
css: this.props.styles.score,
|
|
188
172
|
"data-automation": "sdk-info-score"
|
|
189
|
-
},
|
|
173
|
+
}, (0, _emotion.jsx)(_uiProgress.ProgressCircle, {
|
|
190
174
|
shouldAnimateOnMount: true,
|
|
191
175
|
size: "large",
|
|
192
176
|
screenReaderLabel: (0, _formatMessage.default)('Your Score'),
|
|
@@ -199,16 +183,16 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
199
183
|
}, {
|
|
200
184
|
key: "renderPointsDisplay",
|
|
201
185
|
value: function renderPointsDisplay() {
|
|
202
|
-
return
|
|
203
|
-
|
|
204
|
-
},
|
|
186
|
+
return (0, _emotion.jsx)("div", {
|
|
187
|
+
css: this.props.styles.infoWrapper
|
|
188
|
+
}, (0, _emotion.jsx)(_uiA11yContent.AccessibleContent, {
|
|
205
189
|
alt: this.pointsText
|
|
206
|
-
},
|
|
190
|
+
}, (0, _emotion.jsx)(_uiText.Text, {
|
|
207
191
|
as: "div",
|
|
208
192
|
color: "primary",
|
|
209
193
|
size: "xx-large",
|
|
210
194
|
weight: "bold"
|
|
211
|
-
}, this.mainPointsText),
|
|
195
|
+
}, this.mainPointsText), (0, _emotion.jsx)(_uiText.Text, {
|
|
212
196
|
color: "secondary"
|
|
213
197
|
}, this.subPointsText)));
|
|
214
198
|
}
|
|
@@ -219,29 +203,30 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
219
203
|
var alt = (0, _formatMessage.default)('Time for this attempt: { time }', {
|
|
220
204
|
time: (0, _formatTimespan.formatTime)(this.props.quizSession.elapsedTime)
|
|
221
205
|
});
|
|
222
|
-
return
|
|
206
|
+
return (0, _emotion.jsx)(_uiA11yContent.AccessibleContent, {
|
|
223
207
|
alt: alt
|
|
224
|
-
},
|
|
208
|
+
}, (0, _emotion.jsx)(_uiView.View, {
|
|
225
209
|
as: "div"
|
|
226
|
-
},
|
|
210
|
+
}, (0, _emotion.jsx)(_index.default, {
|
|
227
211
|
fontSize: "xx-large",
|
|
228
212
|
fontWeight: "bold",
|
|
229
213
|
seconds: this.props.quizSession.elapsedTime
|
|
230
|
-
})),
|
|
214
|
+
})), (0, _emotion.jsx)(_uiText.Text, {
|
|
231
215
|
color: "secondary"
|
|
232
216
|
}, attemptText));
|
|
233
217
|
}
|
|
234
218
|
}, {
|
|
235
219
|
key: "render",
|
|
236
220
|
value: function render() {
|
|
237
|
-
return
|
|
238
|
-
|
|
239
|
-
},
|
|
240
|
-
|
|
241
|
-
|
|
221
|
+
return (0, _emotion.jsx)("div", null, this.renderAlert(), (0, _emotion.jsx)("div", {
|
|
222
|
+
css: this.props.styles.wrapper
|
|
223
|
+
}, (0, _emotion.jsx)("div", {
|
|
224
|
+
css: this.props.styles.info,
|
|
225
|
+
className: "fs-mask"
|
|
226
|
+
}, (0, _emotion.jsx)(_uiA11yContent.ScreenReaderContent, null, (0, _emotion.jsx)(_uiHeading.Heading, {
|
|
242
227
|
level: "h2"
|
|
243
|
-
}, (0, _formatMessage.default)('Assessment Statistics'))), this.props.restrictQuantitativeData ? this.renderLetterGrade() : this.renderScoreStats(),
|
|
244
|
-
|
|
228
|
+
}, (0, _formatMessage.default)('Assessment Statistics'))), this.props.restrictQuantitativeData ? this.renderLetterGrade() : this.renderScoreStats(), (0, _emotion.jsx)("div", {
|
|
229
|
+
css: this.props.styles.infoWrapper
|
|
245
230
|
}, this.renderTime()))));
|
|
246
231
|
}
|
|
247
232
|
}, {
|
|
@@ -346,7 +331,9 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
346
331
|
quizSession: _reactImmutableProptypes.default.record.isRequired,
|
|
347
332
|
quizSessionResult: _reactImmutableProptypes.default.record.isRequired,
|
|
348
333
|
restrictQuantitativeData: _propTypes.default.bool,
|
|
349
|
-
sessionItemResults: _reactImmutableProptypes.default.list.isRequired
|
|
334
|
+
sessionItemResults: _reactImmutableProptypes.default.list.isRequired,
|
|
335
|
+
// eslint-disable-next-line react/require-default-props,react/forbid-prop-types
|
|
336
|
+
styles: _propTypes.default.object
|
|
350
337
|
}, _class2.defaultProps = {
|
|
351
338
|
gradingScheme: [],
|
|
352
339
|
restrictQuantitativeData: false
|
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
alertWrapper: {
|
|
11
|
+
display: 'flex',
|
|
12
|
+
flexDirection: 'row',
|
|
13
|
+
alignItems: 'center',
|
|
14
|
+
justifyContent: 'center',
|
|
15
|
+
marginTop: componentTheme.alertWrapperMargin
|
|
16
|
+
},
|
|
17
|
+
alertWidth: {
|
|
18
|
+
flexGrow: 1,
|
|
19
|
+
maxWidth: '33rem,'
|
|
20
|
+
},
|
|
21
|
+
wrapper: {
|
|
22
|
+
padding: 'none',
|
|
23
|
+
margin: 'none',
|
|
24
|
+
display: 'flex',
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
justifyContent: 'center'
|
|
27
|
+
},
|
|
28
|
+
info: {
|
|
29
|
+
alignSelf: 'center',
|
|
30
|
+
display: 'flex',
|
|
31
|
+
flexWrap: 'wrap',
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
justifyContent: 'center'
|
|
34
|
+
},
|
|
35
|
+
scoreStats: {
|
|
36
|
+
display: 'flex',
|
|
37
|
+
flexWrap: 'wrap',
|
|
38
|
+
alignItems: 'center',
|
|
39
|
+
justifyContent: 'flex-start',
|
|
40
|
+
flex: '1 1 auto'
|
|
41
|
+
},
|
|
42
|
+
score: {
|
|
43
|
+
display: 'flex',
|
|
44
|
+
alignItems: 'center',
|
|
45
|
+
flex: '1 1 auto',
|
|
46
|
+
margin: componentTheme.scoreMargin,
|
|
47
|
+
height: '150px',
|
|
48
|
+
width: '150px',
|
|
49
|
+
|
|
50
|
+
/*
|
|
51
|
+
progress modal sets a -1 z-index on its content
|
|
52
|
+
and this raises it above the app background
|
|
53
|
+
*/
|
|
54
|
+
zIndex: componentTheme.scoreZIndex
|
|
55
|
+
},
|
|
56
|
+
scorePercentage: {
|
|
57
|
+
fontSize: componentTheme.scorePercentageFontSize,
|
|
58
|
+
fontWeight: componentTheme.scorePercentageFontWeight
|
|
59
|
+
},
|
|
60
|
+
infoWrapper: {
|
|
61
|
+
flex: '1 1 auto',
|
|
62
|
+
margin: componentTheme.infoWrapperMargin,
|
|
63
|
+
paddingLeft: componentTheme.inforWrapperPadding
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
var _default = generateStyle;
|
|
69
|
+
exports.default = _default;
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
function
|
|
8
|
+
var generateComponentTheme = function generateComponentTheme(_ref) {
|
|
9
9
|
var spacing = _ref.spacing,
|
|
10
10
|
typography = _ref.typography;
|
|
11
11
|
return {
|
|
@@ -17,4 +17,7 @@ function generator(_ref) {
|
|
|
17
17
|
infoWrapperMargin: spacing.small,
|
|
18
18
|
inforWrapperPadding: spacing.small
|
|
19
19
|
};
|
|
20
|
-
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
var _default = generateComponentTheme;
|
|
23
|
+
exports.default = _default;
|
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
|
}
|
|
@@ -123,7 +123,8 @@ var afsFlags = _propTypes.default.shape({
|
|
|
123
123
|
categorizationEnabled: _propTypes.default.bool.isRequired,
|
|
124
124
|
trueFalseEnabled: _propTypes.default.bool.isRequired,
|
|
125
125
|
choiceEnabled: _propTypes.default.bool.isRequired,
|
|
126
|
-
multiAnswerEnabled: _propTypes.default.bool.isRequired
|
|
126
|
+
multiAnswerEnabled: _propTypes.default.bool.isRequired,
|
|
127
|
+
fillInTheBlankEnabled: _propTypes.default.bool.isRequired
|
|
127
128
|
});
|
|
128
129
|
|
|
129
130
|
exports.afsFlags = afsFlags;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "20.4.2-rc.
|
|
3
|
+
"version": "20.4.2-rc.3+22ec8e38d",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The Quiz React SDK by Instructure Inc.",
|
|
6
6
|
"author": "Instructure, Inc. Engineering and Product Design",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"@instructure/emotion": "^8.51.0",
|
|
45
45
|
"@instructure/grading-utils": "^1.0.0",
|
|
46
46
|
"@instructure/outcomes-ui": "^3.0.0",
|
|
47
|
-
"@instructure/quiz-common": "20.4.2-rc.
|
|
48
|
-
"@instructure/quiz-i18n": "20.4.2-rc.
|
|
49
|
-
"@instructure/quiz-interactions": "20.4.2-rc.
|
|
50
|
-
"@instructure/quiz-number-input": "20.4.2-rc.
|
|
51
|
-
"@instructure/quiz-rce": "20.4.2-rc.
|
|
47
|
+
"@instructure/quiz-common": "20.4.2-rc.3+22ec8e38d",
|
|
48
|
+
"@instructure/quiz-i18n": "20.4.2-rc.3+22ec8e38d",
|
|
49
|
+
"@instructure/quiz-interactions": "20.4.2-rc.3+22ec8e38d",
|
|
50
|
+
"@instructure/quiz-number-input": "20.4.2-rc.3+22ec8e38d",
|
|
51
|
+
"@instructure/quiz-rce": "20.4.2-rc.3+22ec8e38d",
|
|
52
52
|
"@instructure/ui-a11y-content": "^8.51.0",
|
|
53
53
|
"@instructure/ui-alerts": "^8.51.0",
|
|
54
54
|
"@instructure/ui-avatar": "^8.51.0",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"file-saver": "~2.0.5",
|
|
113
113
|
"humps": "^2.0.0",
|
|
114
114
|
"immutable": "^3.8.1",
|
|
115
|
-
"instructure-validations": "20.4.2-rc.
|
|
115
|
+
"instructure-validations": "20.4.2-rc.3+22ec8e38d",
|
|
116
116
|
"ipaddr.js": "^1.5.4",
|
|
117
117
|
"isomorphic-fetch": "^2.2.0",
|
|
118
118
|
"isuuid": "^0.1.0",
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
"intl": "^1.2.4",
|
|
164
164
|
"jquery": "^2.2.3",
|
|
165
165
|
"most-subject": "^5.3.0",
|
|
166
|
-
"quiz-presets": "20.4.2-rc.
|
|
166
|
+
"quiz-presets": "20.4.2-rc.3+22ec8e38d",
|
|
167
167
|
"react": "^16.8.6",
|
|
168
168
|
"react-addons-test-utils": "^15.6.2",
|
|
169
169
|
"react-dom": "^16.8.6",
|
|
@@ -179,5 +179,5 @@
|
|
|
179
179
|
"publishConfig": {
|
|
180
180
|
"access": "public"
|
|
181
181
|
},
|
|
182
|
-
"gitHead": "
|
|
182
|
+
"gitHead": "22ec8e38d00de672820ed31af18d8936f9d54d6f"
|
|
183
183
|
}
|