@instructure/quiz-core 17.64.1-rc.2 → 17.64.1-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/common/components/resources/quizSessionResult/Info/index.js +31 -1
- package/es/common/components/resources/sessionItemResult/SessionItemResult/presenter.js +3 -1
- package/es/common/components/resources/sessionItemResult/SessionItemResultsList/index.js +5 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/Row/presenter.js +8 -4
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/presenter.js +4 -1
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +3 -3
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +4 -4
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/presenter.js +1 -1
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +1 -1
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/utils.js +10 -1
- package/lib/common/components/resources/quizSessionResult/Info/index.js +33 -1
- package/lib/common/components/resources/sessionItemResult/SessionItemResult/presenter.js +3 -1
- package/lib/common/components/resources/sessionItemResult/SessionItemResultsList/index.js +6 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/Row/presenter.js +8 -4
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/presenter.js +4 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +3 -3
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +4 -4
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/presenter.js +1 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +1 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/utils.js +10 -1
- package/package.json +10 -9
|
@@ -7,6 +7,7 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
|
7
7
|
var _dec, _class, _class2, _temp;
|
|
8
8
|
|
|
9
9
|
import React, { Component } from 'react';
|
|
10
|
+
import PropTypes from 'prop-types';
|
|
10
11
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
|
11
12
|
import classNames from 'classnames';
|
|
12
13
|
import { AccessibleContent, ScreenReaderContent } from '@instructure/ui-a11y-content';
|
|
@@ -17,6 +18,7 @@ import { Heading } from '@instructure/ui-heading';
|
|
|
17
18
|
import { View } from '@instructure/ui-view';
|
|
18
19
|
import { themeable } from '@instructure/ui-themeable';
|
|
19
20
|
import t from '@instructure/quiz-i18n/es/format-message';
|
|
21
|
+
import { scoreToLetterGrade } from '@instructure/grading-utils';
|
|
20
22
|
import { withI18nSupport } from '@instructure/quiz-common';
|
|
21
23
|
import FormattedDuration from "../../../shared/FormattedDuration/index.js";
|
|
22
24
|
import { formatTime } from "../../../../util/formatTimespan.js";
|
|
@@ -114,6 +116,26 @@ export var Info = (_dec = themeable(theme, styles), _dec(_class = (_temp = _clas
|
|
|
114
116
|
}, alerts));
|
|
115
117
|
}
|
|
116
118
|
}
|
|
119
|
+
}, {
|
|
120
|
+
key: "renderLetterGrade",
|
|
121
|
+
value: function renderLetterGrade() {
|
|
122
|
+
var letterGrade = scoreToLetterGrade(this.percentageVal * 100, this.props.gradingScheme);
|
|
123
|
+
var gradeText = t('Grade for this attempt');
|
|
124
|
+
var alt = t('Grade for this attempt: { grade }', {
|
|
125
|
+
grade: letterGrade
|
|
126
|
+
});
|
|
127
|
+
return /*#__PURE__*/React.createElement(AccessibleContent, {
|
|
128
|
+
alt: alt
|
|
129
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
130
|
+
as: "div"
|
|
131
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
132
|
+
size: "xx-large",
|
|
133
|
+
weight: "bold",
|
|
134
|
+
color: "primary"
|
|
135
|
+
}, letterGrade)), /*#__PURE__*/React.createElement(Text, {
|
|
136
|
+
color: "secondary"
|
|
137
|
+
}, gradeText));
|
|
138
|
+
}
|
|
117
139
|
}, {
|
|
118
140
|
key: "renderScoreStats",
|
|
119
141
|
value: function renderScoreStats() {
|
|
@@ -186,7 +208,7 @@ export var Info = (_dec = themeable(theme, styles), _dec(_class = (_temp = _clas
|
|
|
186
208
|
className: classNames('fs-mask', styles.info)
|
|
187
209
|
}, /*#__PURE__*/React.createElement(ScreenReaderContent, null, /*#__PURE__*/React.createElement(Heading, {
|
|
188
210
|
level: "h2"
|
|
189
|
-
}, t('Assessment Statistics'))), this.renderScoreStats(), /*#__PURE__*/React.createElement("div", {
|
|
211
|
+
}, t('Assessment Statistics'))), this.props.restrictQuantitativeData ? this.renderLetterGrade() : this.renderScoreStats(), /*#__PURE__*/React.createElement("div", {
|
|
190
212
|
className: styles.infoWrapper
|
|
191
213
|
}, this.renderTime()))));
|
|
192
214
|
}
|
|
@@ -286,8 +308,16 @@ export var Info = (_dec = themeable(theme, styles), _dec(_class = (_temp = _clas
|
|
|
286
308
|
Info.displayName = "Info";
|
|
287
309
|
return Info;
|
|
288
310
|
}(withI18nSupport(Component)), _class2.propTypes = {
|
|
311
|
+
gradingScheme: PropTypes.arrayOf(PropTypes.shape({
|
|
312
|
+
name: PropTypes.string,
|
|
313
|
+
value: PropTypes.number
|
|
314
|
+
})),
|
|
289
315
|
quizSession: ImmutablePropTypes.record.isRequired,
|
|
290
316
|
quizSessionResult: ImmutablePropTypes.record.isRequired,
|
|
317
|
+
restrictQuantitativeData: PropTypes.bool,
|
|
291
318
|
sessionItemResults: ImmutablePropTypes.list.isRequired
|
|
319
|
+
}, _class2.defaultProps = {
|
|
320
|
+
gradingScheme: [],
|
|
321
|
+
restrictQuantitativeData: false
|
|
292
322
|
}, _temp)) || _class);
|
|
293
323
|
export default Info;
|
|
@@ -136,7 +136,7 @@ export var SessionItemResult = (_dec = themeable(theme, styles), _dec(_class = (
|
|
|
136
136
|
value: function renderHeader() {
|
|
137
137
|
return /*#__PURE__*/React.createElement("div", {
|
|
138
138
|
className: styles.sessionItemResultHeader
|
|
139
|
-
}, this.renderResultPosition(), this.hasRegradeInfo() ? this.renderRegradePoints() : this.renderPoints());
|
|
139
|
+
}, this.renderResultPosition(), !this.props.restrictQuantitativeData && (this.hasRegradeInfo() ? this.renderRegradePoints() : this.renderPoints()));
|
|
140
140
|
}
|
|
141
141
|
}, {
|
|
142
142
|
key: "renderResultPosition",
|
|
@@ -345,6 +345,7 @@ export var SessionItemResult = (_dec = themeable(theme, styles), _dec(_class = (
|
|
|
345
345
|
editGraderFeedback: PropTypes.func,
|
|
346
346
|
hideGraderFeedback: PropTypes.bool,
|
|
347
347
|
itemResultsModifications: ImmutablePropTypes.map,
|
|
348
|
+
restrictQuantitativeData: PropTypes.bool,
|
|
348
349
|
sessionItem: ImmutablePropTypes.record.isRequired,
|
|
349
350
|
sessionItemResult: ImmutablePropTypes.record.isRequired,
|
|
350
351
|
shouldRenderAnswerFeedback: PropTypes.bool,
|
|
@@ -353,6 +354,7 @@ export var SessionItemResult = (_dec = themeable(theme, styles), _dec(_class = (
|
|
|
353
354
|
editGraderFeedback: null,
|
|
354
355
|
hideGraderFeedback: false,
|
|
355
356
|
itemResultsModifications: null,
|
|
357
|
+
restrictQuantitativeData: false,
|
|
356
358
|
shouldRenderAnswerFeedback: false,
|
|
357
359
|
shouldRenderTopBorder: true
|
|
358
360
|
}, _temp)) || _class);
|
|
@@ -6,6 +6,7 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
|
6
6
|
var _dec, _class, _class2, _temp;
|
|
7
7
|
|
|
8
8
|
import React, { Component } from 'react';
|
|
9
|
+
import PropTypes from 'prop-types';
|
|
9
10
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
|
10
11
|
import { Heading } from '@instructure/ui-heading';
|
|
11
12
|
import { themeable } from '@instructure/ui-themeable';
|
|
@@ -44,6 +45,7 @@ export var SessionItemResultsList = (_dec = themeable(theme, styles), _dec(_clas
|
|
|
44
45
|
return /*#__PURE__*/React.createElement(SessionItemResult, {
|
|
45
46
|
appContainer: _this.props.appContainer,
|
|
46
47
|
key: sessionItem.id,
|
|
48
|
+
restrictQuantitativeData: _this.props.restrictQuantitativeData,
|
|
47
49
|
sessionItem: sessionItem,
|
|
48
50
|
sessionItemResult: sessionItem.sessionItemResult,
|
|
49
51
|
shouldRenderTopBorder: shouldRenderTopBorder
|
|
@@ -93,6 +95,9 @@ export var SessionItemResultsList = (_dec = themeable(theme, styles), _dec(_clas
|
|
|
93
95
|
return SessionItemResultsList;
|
|
94
96
|
}(Component), _class2.propTypes = {
|
|
95
97
|
appContainer: CustomPropTypes.selectors.isRequired,
|
|
98
|
+
restrictQuantitativeData: PropTypes.bool,
|
|
96
99
|
sessionItems: ImmutablePropTypes.list.isRequired
|
|
100
|
+
}, _class2.defaultProps = {
|
|
101
|
+
restrictQuantitativeData: false
|
|
97
102
|
}, _temp)) || _class);
|
|
98
103
|
export default SessionItemResultsList;
|
package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/Row/presenter.js
CHANGED
|
@@ -75,20 +75,24 @@ export var Row = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class
|
|
|
75
75
|
key: _this.props.choiceIndex
|
|
76
76
|
}, /*#__PURE__*/React.createElement(Table.Cell, {
|
|
77
77
|
theme: {
|
|
78
|
-
padding: '0px'
|
|
78
|
+
padding: '0px',
|
|
79
|
+
fontWeight: 'bold'
|
|
79
80
|
}
|
|
80
81
|
}, _this.renderIcon(correct)), /*#__PURE__*/React.createElement(Table.RowHeader, {
|
|
81
82
|
theme: {
|
|
82
|
-
padding: cellPadding
|
|
83
|
+
padding: cellPadding,
|
|
84
|
+
fontWeight: 'bold'
|
|
83
85
|
},
|
|
84
86
|
className: styles.tableBody
|
|
85
87
|
}, _this.renderMiddleCell(correct, extractTextFromHtml(_this.props.choice.body))), /*#__PURE__*/React.createElement(Table.Cell, {
|
|
86
88
|
theme: {
|
|
87
|
-
padding: cellPadding
|
|
89
|
+
padding: cellPadding,
|
|
90
|
+
fontWeight: 'bold'
|
|
88
91
|
}
|
|
89
92
|
}, _this.renderMiddleCell(correct, _this.props.choice.count)), /*#__PURE__*/React.createElement(Table.Cell, {
|
|
90
93
|
theme: {
|
|
91
|
-
padding: cellPadding
|
|
94
|
+
padding: cellPadding,
|
|
95
|
+
fontWeight: 'bold'
|
|
92
96
|
},
|
|
93
97
|
textAlign: "center"
|
|
94
98
|
}, _this.renderLastCell(correct, "".concat(_this.props.choice.percentage, "%"))));
|
package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/presenter.js
CHANGED
|
@@ -48,7 +48,10 @@ export var AnswerSummaryTable = (_dec = themeable(theme, styles), _dec(_class =
|
|
|
48
48
|
className: styles.tableWrapper
|
|
49
49
|
}, /*#__PURE__*/React.createElement(Heading, {
|
|
50
50
|
margin: "large 0 small 0",
|
|
51
|
-
level: "h3"
|
|
51
|
+
level: "h3",
|
|
52
|
+
theme: {
|
|
53
|
+
h3FontWeight: 'normal'
|
|
54
|
+
}
|
|
52
55
|
}, t('Answer Frequency Summary')), /*#__PURE__*/React.createElement(ChoiceInfo, {
|
|
53
56
|
itemId: itemId,
|
|
54
57
|
choices: choices,
|
package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js
CHANGED
|
@@ -143,7 +143,7 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
143
143
|
}, /*#__PURE__*/React.createElement(AnalysisPopoverMetric, {
|
|
144
144
|
metricKey: "difficulty_index",
|
|
145
145
|
label: t('Item Difficulty'),
|
|
146
|
-
value:
|
|
146
|
+
value: scores.difficulty_index,
|
|
147
147
|
popoverDescription: difficultyIndex
|
|
148
148
|
})), /*#__PURE__*/React.createElement(Flex.Item, {
|
|
149
149
|
margin: "none medium none none"
|
|
@@ -162,7 +162,7 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
162
162
|
}, /*#__PURE__*/React.createElement(AnalysisPopoverMetric, {
|
|
163
163
|
metricKey: "discrimination_index",
|
|
164
164
|
label: t('Discrimination Index'),
|
|
165
|
-
value:
|
|
165
|
+
value: scores.discrimination_index,
|
|
166
166
|
popoverDescription: discriminationIndex
|
|
167
167
|
})))), /*#__PURE__*/React.createElement(Flex.Item, {
|
|
168
168
|
overflowY: "visible",
|
|
@@ -176,7 +176,7 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
176
176
|
}, /*#__PURE__*/React.createElement(AnalysisPopoverMetric, {
|
|
177
177
|
metricKey: "pearson_correlation",
|
|
178
178
|
label: t('Corrected Item-Total Correlation Coefficient'),
|
|
179
|
-
value:
|
|
179
|
+
value: scores.pearson_correlation,
|
|
180
180
|
popoverDescription: pearsonCorrelation
|
|
181
181
|
}))))));
|
|
182
182
|
};
|
package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js
CHANGED
|
@@ -63,12 +63,12 @@ export var NewQuizAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
63
63
|
className: styles.metricGroup
|
|
64
64
|
}, /*#__PURE__*/React.createElement(AnalysisPopoverMetric, {
|
|
65
65
|
metricKey: "stddev",
|
|
66
|
-
value:
|
|
66
|
+
value: scores === null || scores === void 0 ? void 0 : scores.stddev,
|
|
67
67
|
label: t('Standard Deviation'),
|
|
68
68
|
popoverDescription: standardDeviation
|
|
69
69
|
}), /*#__PURE__*/React.createElement(AnalysisPopoverMetric, {
|
|
70
70
|
metricKey: "cronbachs_alpha",
|
|
71
|
-
value:
|
|
71
|
+
value: scores === null || scores === void 0 ? void 0 : scores.cronbachs_alpha,
|
|
72
72
|
label: t('Cronbach\'s Alpha'),
|
|
73
73
|
popoverDescription: cronbachsAlpha
|
|
74
74
|
})));
|
|
@@ -117,7 +117,7 @@ export var NewQuizAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
117
117
|
}, /*#__PURE__*/React.createElement(AnalysisMetric, {
|
|
118
118
|
metricKey: "median_percentage",
|
|
119
119
|
label: t('Median Score'),
|
|
120
|
-
value:
|
|
120
|
+
value: scores === null || scores === void 0 ? void 0 : scores.median_percentage,
|
|
121
121
|
suffix: "%"
|
|
122
122
|
}), /*#__PURE__*/React.createElement(AnalysisMetric, {
|
|
123
123
|
metricKey: "mean_elapsed_sec",
|
|
@@ -130,7 +130,7 @@ export var NewQuizAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
130
130
|
title: expanded ? t('collapse quiz analysis') : t('expand quiz analysis'),
|
|
131
131
|
isExpanded: expanded
|
|
132
132
|
}))), expanded && this.renderExpanded(), /*#__PURE__*/React.createElement(ScoreDistribution, {
|
|
133
|
-
decileDistribution:
|
|
133
|
+
decileDistribution: scores === null || scores === void 0 ? void 0 : scores.decile_distribution
|
|
134
134
|
}));
|
|
135
135
|
}
|
|
136
136
|
}]);
|
|
@@ -62,7 +62,7 @@ export var ScoreDistribution = (_dec = themeable(theme, styles), _dec(_class = (
|
|
|
62
62
|
}, t('Score Distribution'))), /*#__PURE__*/React.createElement(QuintileDistribution, {
|
|
63
63
|
animateDelay: 1000,
|
|
64
64
|
animateDuration: 1000,
|
|
65
|
-
visualDistribution: this.props.decileDistribution,
|
|
65
|
+
visualDistribution: this.props.decileDistribution || [],
|
|
66
66
|
calculateLabelForColumn: this.calculateLabelForColumn
|
|
67
67
|
}), /*#__PURE__*/React.createElement("div", {
|
|
68
68
|
className: styles.chartLabel
|
|
@@ -43,7 +43,7 @@ export var NewQuizAndItemAnalysisPresenter = /*#__PURE__*/function (_Component)
|
|
|
43
43
|
})), /*#__PURE__*/React.createElement(NewQuizAnalysis, {
|
|
44
44
|
quizAnalysis: quizAnalysis
|
|
45
45
|
}), /*#__PURE__*/React.createElement(Heading, {
|
|
46
|
-
level: "
|
|
46
|
+
level: "h2",
|
|
47
47
|
color: "primary"
|
|
48
48
|
}, t('Item Analysis')), itemAnalyses === null || itemAnalyses === void 0 ? void 0 : itemAnalyses.map(function (itemAnalysis) {
|
|
49
49
|
return /*#__PURE__*/React.createElement(NewItemAnalysis, {
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import t from '@instructure/quiz-i18n/es/format-message';
|
|
2
2
|
|
|
3
|
+
var formatNumbers = function formatNumbers(value) {
|
|
4
|
+
if (typeof value === 'number') {
|
|
5
|
+
return t.number(value);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
return value;
|
|
9
|
+
};
|
|
10
|
+
|
|
3
11
|
var getSanitizedMetricValue = function getSanitizedMetricValue(value, suffix) {
|
|
4
12
|
if (value === null || value === void 0) {
|
|
5
13
|
return t('N/A');
|
|
6
14
|
}
|
|
7
15
|
|
|
8
|
-
|
|
16
|
+
var formattedValue = formatNumbers(value);
|
|
17
|
+
return suffix ? formattedValue + suffix : formattedValue;
|
|
9
18
|
};
|
|
10
19
|
|
|
11
20
|
export { getSanitizedMetricValue };
|
|
@@ -21,6 +21,8 @@ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
21
21
|
|
|
22
22
|
var _react = _interopRequireWildcard(require("react"));
|
|
23
23
|
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
+
|
|
24
26
|
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
|
25
27
|
|
|
26
28
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
@@ -41,6 +43,8 @@ var _uiThemeable = require("@instructure/ui-themeable");
|
|
|
41
43
|
|
|
42
44
|
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
43
45
|
|
|
46
|
+
var _gradingUtils = require("@instructure/grading-utils");
|
|
47
|
+
|
|
44
48
|
var _quizCommon = require("@instructure/quiz-common");
|
|
45
49
|
|
|
46
50
|
var _index = _interopRequireDefault(require("../../../shared/FormattedDuration/index.js"));
|
|
@@ -143,6 +147,26 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
143
147
|
}, alerts));
|
|
144
148
|
}
|
|
145
149
|
}
|
|
150
|
+
}, {
|
|
151
|
+
key: "renderLetterGrade",
|
|
152
|
+
value: function renderLetterGrade() {
|
|
153
|
+
var letterGrade = (0, _gradingUtils.scoreToLetterGrade)(this.percentageVal * 100, this.props.gradingScheme);
|
|
154
|
+
var gradeText = (0, _formatMessage.default)('Grade for this attempt');
|
|
155
|
+
var alt = (0, _formatMessage.default)('Grade for this attempt: { grade }', {
|
|
156
|
+
grade: letterGrade
|
|
157
|
+
});
|
|
158
|
+
return /*#__PURE__*/_react.default.createElement(_uiA11yContent.AccessibleContent, {
|
|
159
|
+
alt: alt
|
|
160
|
+
}, /*#__PURE__*/_react.default.createElement(_uiView.View, {
|
|
161
|
+
as: "div"
|
|
162
|
+
}, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
163
|
+
size: "xx-large",
|
|
164
|
+
weight: "bold",
|
|
165
|
+
color: "primary"
|
|
166
|
+
}, letterGrade)), /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
167
|
+
color: "secondary"
|
|
168
|
+
}, gradeText));
|
|
169
|
+
}
|
|
146
170
|
}, {
|
|
147
171
|
key: "renderScoreStats",
|
|
148
172
|
value: function renderScoreStats() {
|
|
@@ -215,7 +239,7 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
215
239
|
className: (0, _classnames.default)('fs-mask', styles.info)
|
|
216
240
|
}, /*#__PURE__*/_react.default.createElement(_uiA11yContent.ScreenReaderContent, null, /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
|
|
217
241
|
level: "h2"
|
|
218
|
-
}, (0, _formatMessage.default)('Assessment Statistics'))), this.renderScoreStats(), /*#__PURE__*/_react.default.createElement("div", {
|
|
242
|
+
}, (0, _formatMessage.default)('Assessment Statistics'))), this.props.restrictQuantitativeData ? this.renderLetterGrade() : this.renderScoreStats(), /*#__PURE__*/_react.default.createElement("div", {
|
|
219
243
|
className: styles.infoWrapper
|
|
220
244
|
}, this.renderTime()))));
|
|
221
245
|
}
|
|
@@ -314,9 +338,17 @@ var Info = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
|
|
|
314
338
|
Info.displayName = "Info";
|
|
315
339
|
return Info;
|
|
316
340
|
}((0, _quizCommon.withI18nSupport)(_react.Component)), _class2.propTypes = {
|
|
341
|
+
gradingScheme: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
342
|
+
name: _propTypes.default.string,
|
|
343
|
+
value: _propTypes.default.number
|
|
344
|
+
})),
|
|
317
345
|
quizSession: _reactImmutableProptypes.default.record.isRequired,
|
|
318
346
|
quizSessionResult: _reactImmutableProptypes.default.record.isRequired,
|
|
347
|
+
restrictQuantitativeData: _propTypes.default.bool,
|
|
319
348
|
sessionItemResults: _reactImmutableProptypes.default.list.isRequired
|
|
349
|
+
}, _class2.defaultProps = {
|
|
350
|
+
gradingScheme: [],
|
|
351
|
+
restrictQuantitativeData: false
|
|
320
352
|
}, _temp)) || _class);
|
|
321
353
|
exports.Info = Info;
|
|
322
354
|
var _default = Info;
|
|
@@ -168,7 +168,7 @@ var SessionItemResult = (_dec = (0, _uiThemeable.themeable)(_theme.default, styl
|
|
|
168
168
|
value: function renderHeader() {
|
|
169
169
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
170
170
|
className: styles.sessionItemResultHeader
|
|
171
|
-
}, this.renderResultPosition(), this.hasRegradeInfo() ? this.renderRegradePoints() : this.renderPoints());
|
|
171
|
+
}, this.renderResultPosition(), !this.props.restrictQuantitativeData && (this.hasRegradeInfo() ? this.renderRegradePoints() : this.renderPoints()));
|
|
172
172
|
}
|
|
173
173
|
}, {
|
|
174
174
|
key: "renderResultPosition",
|
|
@@ -376,6 +376,7 @@ var SessionItemResult = (_dec = (0, _uiThemeable.themeable)(_theme.default, styl
|
|
|
376
376
|
editGraderFeedback: _propTypes.default.func,
|
|
377
377
|
hideGraderFeedback: _propTypes.default.bool,
|
|
378
378
|
itemResultsModifications: _reactImmutableProptypes.default.map,
|
|
379
|
+
restrictQuantitativeData: _propTypes.default.bool,
|
|
379
380
|
sessionItem: _reactImmutableProptypes.default.record.isRequired,
|
|
380
381
|
sessionItemResult: _reactImmutableProptypes.default.record.isRequired,
|
|
381
382
|
shouldRenderAnswerFeedback: _propTypes.default.bool,
|
|
@@ -384,6 +385,7 @@ var SessionItemResult = (_dec = (0, _uiThemeable.themeable)(_theme.default, styl
|
|
|
384
385
|
editGraderFeedback: null,
|
|
385
386
|
hideGraderFeedback: false,
|
|
386
387
|
itemResultsModifications: null,
|
|
388
|
+
restrictQuantitativeData: false,
|
|
387
389
|
shouldRenderAnswerFeedback: false,
|
|
388
390
|
shouldRenderTopBorder: true
|
|
389
391
|
}, _temp)) || _class);
|
|
@@ -19,6 +19,8 @@ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
19
19
|
|
|
20
20
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
21
|
|
|
22
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
23
|
+
|
|
22
24
|
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
|
23
25
|
|
|
24
26
|
var _uiHeading = require("@instructure/ui-heading");
|
|
@@ -68,6 +70,7 @@ var SessionItemResultsList = (_dec = (0, _uiThemeable.themeable)(_theme.default,
|
|
|
68
70
|
return /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
69
71
|
appContainer: _this.props.appContainer,
|
|
70
72
|
key: sessionItem.id,
|
|
73
|
+
restrictQuantitativeData: _this.props.restrictQuantitativeData,
|
|
71
74
|
sessionItem: sessionItem,
|
|
72
75
|
sessionItemResult: sessionItem.sessionItemResult,
|
|
73
76
|
shouldRenderTopBorder: shouldRenderTopBorder
|
|
@@ -116,7 +119,10 @@ var SessionItemResultsList = (_dec = (0, _uiThemeable.themeable)(_theme.default,
|
|
|
116
119
|
return SessionItemResultsList;
|
|
117
120
|
}(_react.Component), _class2.propTypes = {
|
|
118
121
|
appContainer: _CustomPropTypes.default.selectors.isRequired,
|
|
122
|
+
restrictQuantitativeData: _propTypes.default.bool,
|
|
119
123
|
sessionItems: _reactImmutableProptypes.default.list.isRequired
|
|
124
|
+
}, _class2.defaultProps = {
|
|
125
|
+
restrictQuantitativeData: false
|
|
120
126
|
}, _temp)) || _class);
|
|
121
127
|
exports.SessionItemResultsList = SessionItemResultsList;
|
|
122
128
|
var _default = SessionItemResultsList;
|
|
@@ -97,20 +97,24 @@ var Row = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cla
|
|
|
97
97
|
key: _this.props.choiceIndex
|
|
98
98
|
}, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Cell, {
|
|
99
99
|
theme: {
|
|
100
|
-
padding: '0px'
|
|
100
|
+
padding: '0px',
|
|
101
|
+
fontWeight: 'bold'
|
|
101
102
|
}
|
|
102
103
|
}, _this.renderIcon(correct)), /*#__PURE__*/_react.default.createElement(_uiTable.Table.RowHeader, {
|
|
103
104
|
theme: {
|
|
104
|
-
padding: cellPadding
|
|
105
|
+
padding: cellPadding,
|
|
106
|
+
fontWeight: 'bold'
|
|
105
107
|
},
|
|
106
108
|
className: styles.tableBody
|
|
107
109
|
}, _this.renderMiddleCell(correct, (0, _quizInteractions.extractTextFromHtml)(_this.props.choice.body))), /*#__PURE__*/_react.default.createElement(_uiTable.Table.Cell, {
|
|
108
110
|
theme: {
|
|
109
|
-
padding: cellPadding
|
|
111
|
+
padding: cellPadding,
|
|
112
|
+
fontWeight: 'bold'
|
|
110
113
|
}
|
|
111
114
|
}, _this.renderMiddleCell(correct, _this.props.choice.count)), /*#__PURE__*/_react.default.createElement(_uiTable.Table.Cell, {
|
|
112
115
|
theme: {
|
|
113
|
-
padding: cellPadding
|
|
116
|
+
padding: cellPadding,
|
|
117
|
+
fontWeight: 'bold'
|
|
114
118
|
},
|
|
115
119
|
textAlign: "center"
|
|
116
120
|
}, _this.renderLastCell(correct, "".concat(_this.props.choice.percentage, "%"))));
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/presenter.js
CHANGED
|
@@ -69,7 +69,10 @@ var AnswerSummaryTable = (_dec = (0, _uiThemeable.themeable)(_theme.default, sty
|
|
|
69
69
|
className: styles.tableWrapper
|
|
70
70
|
}, /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
|
|
71
71
|
margin: "large 0 small 0",
|
|
72
|
-
level: "h3"
|
|
72
|
+
level: "h3",
|
|
73
|
+
theme: {
|
|
74
|
+
h3FontWeight: 'normal'
|
|
75
|
+
}
|
|
73
76
|
}, (0, _formatMessage.default)('Answer Frequency Summary')), /*#__PURE__*/_react.default.createElement(_presenter.ChoiceInfo, {
|
|
74
77
|
itemId: itemId,
|
|
75
78
|
choices: choices,
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js
CHANGED
|
@@ -175,7 +175,7 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
175
175
|
}, /*#__PURE__*/_react.default.createElement(_index4.default, {
|
|
176
176
|
metricKey: "difficulty_index",
|
|
177
177
|
label: (0, _formatMessage.default)('Item Difficulty'),
|
|
178
|
-
value:
|
|
178
|
+
value: scores.difficulty_index,
|
|
179
179
|
popoverDescription: _popoverContent.difficultyIndex
|
|
180
180
|
})), /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, {
|
|
181
181
|
margin: "none medium none none"
|
|
@@ -194,7 +194,7 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
194
194
|
}, /*#__PURE__*/_react.default.createElement(_index4.default, {
|
|
195
195
|
metricKey: "discrimination_index",
|
|
196
196
|
label: (0, _formatMessage.default)('Discrimination Index'),
|
|
197
|
-
value:
|
|
197
|
+
value: scores.discrimination_index,
|
|
198
198
|
popoverDescription: _popoverContent.discriminationIndex
|
|
199
199
|
})))), /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, {
|
|
200
200
|
overflowY: "visible",
|
|
@@ -208,7 +208,7 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
208
208
|
}, /*#__PURE__*/_react.default.createElement(_index4.default, {
|
|
209
209
|
metricKey: "pearson_correlation",
|
|
210
210
|
label: (0, _formatMessage.default)('Corrected Item-Total Correlation Coefficient'),
|
|
211
|
-
value:
|
|
211
|
+
value: scores.pearson_correlation,
|
|
212
212
|
popoverDescription: _popoverContent.pearsonCorrelation
|
|
213
213
|
}))))));
|
|
214
214
|
};
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js
CHANGED
|
@@ -90,12 +90,12 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
90
90
|
className: styles.metricGroup
|
|
91
91
|
}, /*#__PURE__*/_react.default.createElement(_index3.default, {
|
|
92
92
|
metricKey: "stddev",
|
|
93
|
-
value:
|
|
93
|
+
value: scores === null || scores === void 0 ? void 0 : scores.stddev,
|
|
94
94
|
label: (0, _formatMessage.default)('Standard Deviation'),
|
|
95
95
|
popoverDescription: _popoverContent.standardDeviation
|
|
96
96
|
}), /*#__PURE__*/_react.default.createElement(_index3.default, {
|
|
97
97
|
metricKey: "cronbachs_alpha",
|
|
98
|
-
value:
|
|
98
|
+
value: scores === null || scores === void 0 ? void 0 : scores.cronbachs_alpha,
|
|
99
99
|
label: (0, _formatMessage.default)('Cronbach\'s Alpha'),
|
|
100
100
|
popoverDescription: _popoverContent.cronbachsAlpha
|
|
101
101
|
})));
|
|
@@ -144,7 +144,7 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
144
144
|
}, /*#__PURE__*/_react.default.createElement(_index4.default, {
|
|
145
145
|
metricKey: "median_percentage",
|
|
146
146
|
label: (0, _formatMessage.default)('Median Score'),
|
|
147
|
-
value:
|
|
147
|
+
value: scores === null || scores === void 0 ? void 0 : scores.median_percentage,
|
|
148
148
|
suffix: "%"
|
|
149
149
|
}), /*#__PURE__*/_react.default.createElement(_index4.default, {
|
|
150
150
|
metricKey: "mean_elapsed_sec",
|
|
@@ -157,7 +157,7 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
157
157
|
title: expanded ? (0, _formatMessage.default)('collapse quiz analysis') : (0, _formatMessage.default)('expand quiz analysis'),
|
|
158
158
|
isExpanded: expanded
|
|
159
159
|
}))), expanded && this.renderExpanded(), /*#__PURE__*/_react.default.createElement(_presenter.ScoreDistribution, {
|
|
160
|
-
decileDistribution:
|
|
160
|
+
decileDistribution: scores === null || scores === void 0 ? void 0 : scores.decile_distribution
|
|
161
161
|
}));
|
|
162
162
|
}
|
|
163
163
|
}]);
|
|
@@ -84,7 +84,7 @@ var ScoreDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styl
|
|
|
84
84
|
}, (0, _formatMessage.default)('Score Distribution'))), /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
85
85
|
animateDelay: 1000,
|
|
86
86
|
animateDuration: 1000,
|
|
87
|
-
visualDistribution: this.props.decileDistribution,
|
|
87
|
+
visualDistribution: this.props.decileDistribution || [],
|
|
88
88
|
calculateLabelForColumn: this.calculateLabelForColumn
|
|
89
89
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
90
90
|
className: styles.chartLabel
|
|
@@ -66,7 +66,7 @@ var NewQuizAndItemAnalysisPresenter = /*#__PURE__*/function (_Component) {
|
|
|
66
66
|
})), /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
67
67
|
quizAnalysis: quizAnalysis
|
|
68
68
|
}), /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
|
|
69
|
-
level: "
|
|
69
|
+
level: "h2",
|
|
70
70
|
color: "primary"
|
|
71
71
|
}, (0, _formatMessage.default)('Item Analysis')), itemAnalyses === null || itemAnalyses === void 0 ? void 0 : itemAnalyses.map(function (itemAnalysis) {
|
|
72
72
|
return /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
@@ -9,12 +9,21 @@ exports.getSanitizedMetricValue = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
11
11
|
|
|
12
|
+
var formatNumbers = function formatNumbers(value) {
|
|
13
|
+
if (typeof value === 'number') {
|
|
14
|
+
return _formatMessage.default.number(value);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return value;
|
|
18
|
+
};
|
|
19
|
+
|
|
12
20
|
var getSanitizedMetricValue = function getSanitizedMetricValue(value, suffix) {
|
|
13
21
|
if (value === null || value === void 0) {
|
|
14
22
|
return (0, _formatMessage.default)('N/A');
|
|
15
23
|
}
|
|
16
24
|
|
|
17
|
-
|
|
25
|
+
var formattedValue = formatNumbers(value);
|
|
26
|
+
return suffix ? formattedValue + suffix : formattedValue;
|
|
18
27
|
};
|
|
19
28
|
|
|
20
29
|
exports.getSanitizedMetricValue = getSanitizedMetricValue;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "17.64.1-rc.
|
|
3
|
+
"version": "17.64.1-rc.5+7ab6e1fd3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The Quiz React SDK by Instructure Inc.",
|
|
6
6
|
"author": "Instructure, Inc. Engineering and Product Design",
|
|
@@ -40,12 +40,13 @@
|
|
|
40
40
|
"lib"
|
|
41
41
|
],
|
|
42
42
|
"dependencies": {
|
|
43
|
+
"@instructure/grading-utils": "^1.0.0",
|
|
43
44
|
"@instructure/outcomes-ui": "^2.1.9",
|
|
44
|
-
"@instructure/quiz-common": "17.64.1-rc.
|
|
45
|
-
"@instructure/quiz-i18n": "17.64.1-rc.
|
|
46
|
-
"@instructure/quiz-interactions": "17.64.1-rc.
|
|
47
|
-
"@instructure/quiz-number-input": "17.64.1-rc.
|
|
48
|
-
"@instructure/quiz-rce": "17.64.1-rc.
|
|
45
|
+
"@instructure/quiz-common": "17.64.1-rc.5+7ab6e1fd3",
|
|
46
|
+
"@instructure/quiz-i18n": "17.64.1-rc.5+7ab6e1fd3",
|
|
47
|
+
"@instructure/quiz-interactions": "17.64.1-rc.5+7ab6e1fd3",
|
|
48
|
+
"@instructure/quiz-number-input": "17.64.1-rc.5+7ab6e1fd3",
|
|
49
|
+
"@instructure/quiz-rce": "17.64.1-rc.5+7ab6e1fd3",
|
|
49
50
|
"@instructure/ui-a11y-content": "^7.20.0",
|
|
50
51
|
"@instructure/ui-alerts": "^7.20.0",
|
|
51
52
|
"@instructure/ui-avatar": "^7.20.0",
|
|
@@ -106,7 +107,7 @@
|
|
|
106
107
|
"eventemitter3": "^3.1.0",
|
|
107
108
|
"humps": "^2.0.0",
|
|
108
109
|
"immutable": "^3.8.1",
|
|
109
|
-
"instructure-validations": "17.64.1-rc.
|
|
110
|
+
"instructure-validations": "17.64.1-rc.5+7ab6e1fd3",
|
|
110
111
|
"ipaddr.js": "^1.5.4",
|
|
111
112
|
"isomorphic-fetch": "^2.2.0",
|
|
112
113
|
"isuuid": "^0.1.0",
|
|
@@ -157,7 +158,7 @@
|
|
|
157
158
|
"intl": "^1.2.4",
|
|
158
159
|
"jquery": "^2.2.3",
|
|
159
160
|
"most-subject": "^5.3.0",
|
|
160
|
-
"quiz-presets": "17.64.1-rc.
|
|
161
|
+
"quiz-presets": "17.64.1-rc.5+7ab6e1fd3",
|
|
161
162
|
"react": "^16.8.6",
|
|
162
163
|
"react-addons-test-utils": "^15.6.2",
|
|
163
164
|
"react-dom": "^16.8.6",
|
|
@@ -173,5 +174,5 @@
|
|
|
173
174
|
"publishConfig": {
|
|
174
175
|
"access": "public"
|
|
175
176
|
},
|
|
176
|
-
"gitHead": "
|
|
177
|
+
"gitHead": "7ab6e1fd33c7aca23bea334c6a88cedaa883f812"
|
|
177
178
|
}
|