@instructure/quiz-core 20.11.4 → 20.11.5-rc.1
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/MetricsListItem/index.js +13 -19
- package/es/reporting/components/MetricsListItem/styles.js +12 -0
- package/es/reporting/components/MetricsListItem/theme.js +0 -3
- package/es/reporting/components/itemAnalysis/AnswerFrequencySummary/index.js +33 -61
- package/es/reporting/components/itemAnalysis/AnswerFrequencySummary/styles.js +45 -0
- package/es/reporting/components/itemAnalysis/AnswerFrequencySummary/theme.js +4 -2
- package/es/reporting/components/itemAnalysis/ItemAnalysisRow/presenter.js +6 -6
- package/es/reporting/components/quizAnalysis/QuizAnalysisOverview.js +9 -9
- package/es/reporting/components/resources/QuizAndItemAnalysis/presenter.js +46 -50
- package/es/reporting/components/resources/QuizAndItemAnalysis/styles.js +18 -0
- package/es/reporting/components/resources/QuizAndItemAnalysis/theme.js +4 -2
- package/lib/reporting/components/MetricsListItem/index.js +12 -22
- package/lib/reporting/components/MetricsListItem/styles.js +20 -0
- package/lib/reporting/components/MetricsListItem/theme.js +1 -10
- package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/index.js +32 -64
- package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/styles.js +56 -0
- package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/theme.js +6 -3
- package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/presenter.js +5 -5
- package/lib/reporting/components/quizAnalysis/QuizAnalysisOverview.js +9 -9
- package/lib/reporting/components/resources/QuizAndItemAnalysis/presenter.js +45 -54
- package/lib/reporting/components/resources/QuizAndItemAnalysis/styles.js +26 -0
- package/lib/reporting/components/resources/QuizAndItemAnalysis/theme.js +6 -3
- package/package.json +10 -10
|
@@ -6,22 +6,15 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
|
6
6
|
|
|
7
7
|
var _dec, _class, _class2, _temp;
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
/** @jsx jsx */
|
|
10
|
+
import { Component } from 'react';
|
|
10
11
|
import PropTypes from 'prop-types';
|
|
11
|
-
import classNames from 'classnames';
|
|
12
12
|
import { Metric } from '@instructure/ui-metric';
|
|
13
13
|
import { ScreenReaderContent, PresentationContent } from '@instructure/ui-a11y-content';
|
|
14
|
-
import {
|
|
14
|
+
import { withStyle, jsx } from '@instructure/emotion';
|
|
15
15
|
import t from '@instructure/quiz-i18n/es/format-message';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
template: function template(theme) {
|
|
19
|
-
return "\n\n.fvWlS_bGBk{align-items:center;display:flex;flex-direction:row;justify-content:center}";
|
|
20
|
-
},
|
|
21
|
-
'root': 'fvWlS_bGBk'
|
|
22
|
-
};
|
|
23
|
-
import theme from "./theme.js";
|
|
24
|
-
export var MetricsListItem = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
16
|
+
import generateStyle from "./styles.js";
|
|
17
|
+
export var MetricsListItem = (_dec = withStyle(generateStyle, null), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
25
18
|
_inherits(MetricsListItem, _Component);
|
|
26
19
|
|
|
27
20
|
var _super = _createSuper(MetricsListItem);
|
|
@@ -35,19 +28,19 @@ export var MetricsListItem = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
35
28
|
_createClass(MetricsListItem, [{
|
|
36
29
|
key: "renderNoValue",
|
|
37
30
|
value: function renderNoValue() {
|
|
38
|
-
return
|
|
31
|
+
return jsx("span", null, jsx(ScreenReaderContent, null, t('No value')), jsx(PresentationContent, null, t('--')));
|
|
39
32
|
}
|
|
40
33
|
}, {
|
|
41
34
|
key: "render",
|
|
42
35
|
value: function render() {
|
|
43
|
-
var
|
|
36
|
+
var styles = [this.props.styles.root, this.props.customStyles];
|
|
44
37
|
var _this$props = this.props,
|
|
45
38
|
renderValue = _this$props.renderValue,
|
|
46
39
|
renderLabel = _this$props.renderLabel,
|
|
47
40
|
isGroupChild = _this$props.isGroupChild;
|
|
48
|
-
return
|
|
49
|
-
|
|
50
|
-
},
|
|
41
|
+
return jsx("div", {
|
|
42
|
+
css: styles
|
|
43
|
+
}, jsx(Metric, {
|
|
51
44
|
renderLabel: renderLabel,
|
|
52
45
|
renderValue: renderValue || this.renderNoValue(),
|
|
53
46
|
isGroupChild: isGroupChild
|
|
@@ -58,8 +51,9 @@ export var MetricsListItem = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
58
51
|
MetricsListItem.displayName = "MetricsListItem";
|
|
59
52
|
return MetricsListItem;
|
|
60
53
|
}(Component), _class2.propTypes = _objectSpread(_objectSpread({}, Metric.propTypes), {}, {
|
|
61
|
-
|
|
54
|
+
customStyles: PropTypes.object,
|
|
55
|
+
styles: PropTypes.object
|
|
62
56
|
}), _class2.defaultProps = {
|
|
63
|
-
|
|
57
|
+
customStyles: {}
|
|
64
58
|
}, _temp)) || _class);
|
|
65
59
|
export default MetricsListItem;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
2
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
3
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
@@ -6,41 +5,26 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
|
6
5
|
|
|
7
6
|
var _dec, _class, _class2, _temp;
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
/** @jsx jsx */
|
|
9
|
+
import { Component } from 'react';
|
|
10
|
+
import PropTypes from 'prop-types';
|
|
10
11
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
|
11
|
-
import classNames from 'classnames';
|
|
12
12
|
import { fromJS } from 'immutable';
|
|
13
13
|
import { scaleLinear } from 'd3-scale';
|
|
14
14
|
import { IconXSolid, IconCheckSolid } from '@instructure/ui-icons';
|
|
15
15
|
import { ScreenReaderContent } from '@instructure/ui-a11y-content';
|
|
16
16
|
import { Table } from '@instructure/ui-table';
|
|
17
|
-
import {
|
|
17
|
+
import { withStyle, jsx } from '@instructure/emotion';
|
|
18
18
|
import t from '@instructure/quiz-i18n/es/format-message';
|
|
19
19
|
import { extractTextFromHtml } from '@instructure/quiz-interactions';
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
'answerRow': 'deQQP_ddmB',
|
|
29
|
-
'answerRowCorrect': 'deQQP_dOeq',
|
|
30
|
-
'answerIcon': 'deQQP_cLIq',
|
|
31
|
-
'answerRatio': 'deQQP_ccwL',
|
|
32
|
-
'answerTextfield': 'deQQP_bFWU',
|
|
33
|
-
'bar': 'deQQP_fKwc',
|
|
34
|
-
'respondentLink': 'deQQP_fTiR',
|
|
35
|
-
'respondentLinkPresent': 'deQQP_lHsH',
|
|
36
|
-
'answerDistributionCell': 'deQQP_dEZf'
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
var _ref = /*#__PURE__*/React.createElement(IconCheckSolid, null);
|
|
40
|
-
|
|
41
|
-
var _ref2 = /*#__PURE__*/React.createElement(IconXSolid, null);
|
|
42
|
-
|
|
43
|
-
export var AnswerFrequencySummary = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
20
|
+
import generateComponentTheme from "./theme.js";
|
|
21
|
+
import generateStyle from "./styles.js";
|
|
22
|
+
|
|
23
|
+
var _ref = jsx(IconCheckSolid, null);
|
|
24
|
+
|
|
25
|
+
var _ref2 = jsx(IconXSolid, null);
|
|
26
|
+
|
|
27
|
+
export var AnswerFrequencySummary = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
44
28
|
_inherits(AnswerFrequencySummary, _Component);
|
|
45
29
|
|
|
46
30
|
var _super = _createSuper(AnswerFrequencySummary);
|
|
@@ -57,29 +41,16 @@ export var AnswerFrequencySummary = (_dec = themeable(theme, styles), _dec(_clas
|
|
|
57
41
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
58
42
|
|
|
59
43
|
_this.renderAnswerTableRow = function (choiceInfo, choiceIndex) {
|
|
60
|
-
var _classNames, _classNames2;
|
|
61
|
-
|
|
62
44
|
var choiceSum = _this.props.itemAnalysis.choiceCountSum();
|
|
63
45
|
|
|
64
46
|
var choiceBody = _this.renderChoiceBody(choiceInfo);
|
|
65
47
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
className: rowClassNames
|
|
71
|
-
}, /*#__PURE__*/React.createElement(Table.Cell, {
|
|
72
|
-
className: styles.answerIcon
|
|
73
|
-
}, _this.isCorrect(choiceInfo) ? _ref : _ref2, /*#__PURE__*/React.createElement(ScreenReaderContent, null, _this.getBarTitle(choiceInfo))), /*#__PURE__*/React.createElement(Table.RowHeader, {
|
|
74
|
-
className: styles.answerTextfield
|
|
75
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
48
|
+
return jsx(Table.Row, {
|
|
49
|
+
key: choiceIndex
|
|
50
|
+
}, jsx(Table.Cell, null, _this.isCorrect(choiceInfo) ? _ref : _ref2, jsx(ScreenReaderContent, null, _this.getBarTitle(choiceInfo))), jsx(Table.RowHeader, null, jsx("span", {
|
|
51
|
+
"data-testid": "answer-textfield",
|
|
76
52
|
title: choiceBody
|
|
77
|
-
}, choiceBody)),
|
|
78
|
-
className: respondentClassNames
|
|
79
|
-
}, t.number(Math.floor(choiceInfo.get('choiceCount')))), /*#__PURE__*/React.createElement(Table.Cell, {
|
|
80
|
-
className: styles.answerRatio
|
|
81
|
-
}, choiceSum > 0 ? t.number(choiceInfo.get('choiceCount') / choiceSum, 'percent') : 0), /*#__PURE__*/React.createElement(Table.Cell, {
|
|
82
|
-
className: styles.answerDistributionCell,
|
|
53
|
+
}, choiceBody)), jsx(Table.Cell, null, t.number(Math.floor(choiceInfo.get('choiceCount')))), jsx(Table.Cell, null, choiceSum > 0 ? t.number(choiceInfo.get('choiceCount') / choiceSum, 'percent') : 0), jsx(Table.Cell, {
|
|
83
54
|
"aria-hidden": "true"
|
|
84
55
|
}, _this.renderBarPlot(choiceInfo)));
|
|
85
56
|
};
|
|
@@ -112,8 +83,10 @@ export var AnswerFrequencySummary = (_dec = themeable(theme, styles), _dec(_clas
|
|
|
112
83
|
}, {
|
|
113
84
|
key: "renderBarPlot",
|
|
114
85
|
value: function renderBarPlot(choiceInfo) {
|
|
115
|
-
|
|
116
|
-
|
|
86
|
+
var barStyles = this.isCorrect(choiceInfo) ? [this.props.styles.barCorrect, this.props.styles.bar] : [this.props.styles.bar];
|
|
87
|
+
return jsx("div", {
|
|
88
|
+
"data-testid": "bar",
|
|
89
|
+
css: barStyles,
|
|
117
90
|
style: this.getBarStyles(choiceInfo),
|
|
118
91
|
alt: t('Graph bar'),
|
|
119
92
|
title: this.getBarTitle(choiceInfo)
|
|
@@ -134,28 +107,27 @@ export var AnswerFrequencySummary = (_dec = themeable(theme, styles), _dec(_clas
|
|
|
134
107
|
itemBody: t('(No answer)'),
|
|
135
108
|
choiceCount: this.props.itemAnalysis.unansweredInfo()
|
|
136
109
|
});
|
|
137
|
-
return
|
|
138
|
-
|
|
110
|
+
return jsx("div", {
|
|
111
|
+
css: this.props.styles.content,
|
|
139
112
|
"data-automation": "sdk-reporting-frequency-summary"
|
|
140
|
-
},
|
|
113
|
+
}, jsx(Table, {
|
|
141
114
|
caption: t('Answer Frequency Summary')
|
|
142
|
-
},
|
|
115
|
+
}, jsx(Table.Head, null, jsx(Table.Row, null, jsx(Table.ColHeader, {
|
|
143
116
|
id: "answer-frequency-summary-is-correct"
|
|
144
|
-
},
|
|
117
|
+
}, jsx(ScreenReaderContent, null, t('Is Correct?'))), jsx(Table.ColHeader, {
|
|
145
118
|
id: "answer-frequency-sumary-answer"
|
|
146
|
-
}, t('Answer')),
|
|
147
|
-
id: "answer-frequency-summary-respondents"
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
className: styles.answerRatio
|
|
152
|
-
}, t('Percentage')))), /*#__PURE__*/React.createElement(Table.Body, null, choiceInfo.toArray().map(this.renderAnswerTableRow), this.renderAnswerTableRow(this.unansweredChoiceInfo, choiceInfo.size))));
|
|
119
|
+
}, t('Answer')), jsx(Table.ColHeader, {
|
|
120
|
+
id: "answer-frequency-summary-respondents"
|
|
121
|
+
}, t('Respondents')), jsx(Table.ColHeader, {
|
|
122
|
+
id: "answer-frequency-summary-answer-ratio"
|
|
123
|
+
}, t('Percentage')))), jsx(Table.Body, null, choiceInfo.toArray().map(this.renderAnswerTableRow), this.renderAnswerTableRow(this.unansweredChoiceInfo, choiceInfo.size))));
|
|
153
124
|
}
|
|
154
125
|
}]);
|
|
155
126
|
|
|
156
127
|
AnswerFrequencySummary.displayName = "AnswerFrequencySummary";
|
|
157
128
|
return AnswerFrequencySummary;
|
|
158
129
|
}(Component), _class2.propTypes = {
|
|
159
|
-
itemAnalysis: ImmutablePropTypes.record.isRequired
|
|
130
|
+
itemAnalysis: ImmutablePropTypes.record.isRequired,
|
|
131
|
+
styles: PropTypes.object
|
|
160
132
|
}, _temp)) || _class);
|
|
161
133
|
export default AnswerFrequencySummary;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
2
|
+
|
|
3
|
+
function _templateObject() {
|
|
4
|
+
var data = _taggedTemplateLiteral(["\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }"]);
|
|
5
|
+
|
|
6
|
+
_templateObject = function _templateObject() {
|
|
7
|
+
return data;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
import { keyframes } from '@instructure/emotion';
|
|
14
|
+
var contentAnimation = keyframes(_templateObject());
|
|
15
|
+
|
|
16
|
+
var generateStyle = function generateStyle(componentTheme, props) {
|
|
17
|
+
var contentCellStyles = {
|
|
18
|
+
borderBottomColor: componentTheme.contentCellBorderColor,
|
|
19
|
+
paddingLeft: '0.35rem',
|
|
20
|
+
paddingRight: '0.35rem'
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
content: {
|
|
24
|
+
opacity: '0.01',
|
|
25
|
+
transform: 'translate3d(0, 0, 0)',
|
|
26
|
+
animationName: contentAnimation,
|
|
27
|
+
animationFillMode: 'forwards',
|
|
28
|
+
animationDuration: '0.3s',
|
|
29
|
+
'th': contentCellStyles,
|
|
30
|
+
'td': contentCellStyles
|
|
31
|
+
},
|
|
32
|
+
bar: {
|
|
33
|
+
background: componentTheme.barBackgroundColor,
|
|
34
|
+
transition: componentTheme.barTransition,
|
|
35
|
+
position: 'relative',
|
|
36
|
+
minWidth: componentTheme.barMinWidth,
|
|
37
|
+
height: '100%'
|
|
38
|
+
},
|
|
39
|
+
barCorrect: {
|
|
40
|
+
background: componentTheme.answerRowCorrectBarBackgroundColor
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export default generateStyle;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
var generateComponentTheme = function generateComponentTheme(_ref) {
|
|
2
2
|
var breakpoints = _ref.breakpoints,
|
|
3
3
|
colors = _ref.colors,
|
|
4
4
|
spacing = _ref.spacing,
|
|
@@ -23,4 +23,6 @@ export default function generator(_ref) {
|
|
|
23
23
|
phoneBreakPoint: "max-width: ".concat(breakpoints.medium),
|
|
24
24
|
barTransition: "width ".concat(transitions.duration)
|
|
25
25
|
};
|
|
26
|
-
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export default generateComponentTheme;
|
|
@@ -14,7 +14,7 @@ import { MetricGroup } from '@instructure/ui-metric';
|
|
|
14
14
|
import { Heading } from '@instructure/ui-heading';
|
|
15
15
|
import { ScreenReaderContent, PresentationContent } from '@instructure/ui-a11y-content';
|
|
16
16
|
import { withStyle, jsx } from '@instructure/emotion';
|
|
17
|
-
import {
|
|
17
|
+
import { RichContentRendererEmotion } from '@instructure/quiz-rce';
|
|
18
18
|
import Card from "../../../../common/components/shared/Card/index.js";
|
|
19
19
|
import ExpandButton from "../../../../common/components/shared/ExpandButton/index.js";
|
|
20
20
|
import Spinner from "../../../../common/components/shared/spinner/Spinner.js";
|
|
@@ -103,7 +103,7 @@ export var ItemAnalysisRow = (_dec = withStyle(generateStyle, generateComponentT
|
|
|
103
103
|
}, {
|
|
104
104
|
key: "renderStem",
|
|
105
105
|
value: function renderStem() {
|
|
106
|
-
return jsx(
|
|
106
|
+
return jsx(RichContentRendererEmotion, {
|
|
107
107
|
customStyles: this.props.styles.stem,
|
|
108
108
|
content: this.props.itemAnalysis.itemBody
|
|
109
109
|
});
|
|
@@ -128,25 +128,25 @@ export var ItemAnalysisRow = (_dec = withStyle(generateStyle, generateComponentT
|
|
|
128
128
|
key: "difficultyIndex",
|
|
129
129
|
renderLabel: t('Difficulty Index'),
|
|
130
130
|
renderValue: this.props.itemAnalysis.difficultyIndex(this.locale),
|
|
131
|
-
|
|
131
|
+
customStyles: this.props.styles.metric,
|
|
132
132
|
isGroupChild: true
|
|
133
133
|
}), jsx(MetricsListItem, {
|
|
134
134
|
key: "discriminationIndex",
|
|
135
135
|
renderLabel: t('Discrimination Index'),
|
|
136
136
|
renderValue: this.props.itemAnalysis.discriminationIndex(this.locale),
|
|
137
|
-
|
|
137
|
+
customStyles: this.props.styles.metric,
|
|
138
138
|
isGroupChild: true
|
|
139
139
|
}), jsx(MetricsListItem, {
|
|
140
140
|
key: "rpb",
|
|
141
141
|
renderLabel: t('RPB'),
|
|
142
142
|
renderValue: this.props.itemAnalysis.pointBiserial(this.locale),
|
|
143
|
-
|
|
143
|
+
customStyles: this.props.styles.metric,
|
|
144
144
|
isGroupChild: true
|
|
145
145
|
}), jsx(MetricsListItem, {
|
|
146
146
|
key: "meanEarnedScore",
|
|
147
147
|
renderLabel: t('Mean Earned Score'),
|
|
148
148
|
renderValue: mean,
|
|
149
|
-
|
|
149
|
+
customStyles: this.props.styles.metric,
|
|
150
150
|
isGroupChild: true
|
|
151
151
|
}));
|
|
152
152
|
}
|
|
@@ -56,8 +56,8 @@ export var QuizAnalysisOverview = (_dec = withStyle(generateStyle, generateCompo
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
_createClass(QuizAnalysisOverview, [{
|
|
59
|
-
key: "
|
|
60
|
-
value: function
|
|
59
|
+
key: "defaultMetrics",
|
|
60
|
+
value: function defaultMetrics() {
|
|
61
61
|
var quizAnalysis = this.props.quizAnalysis;
|
|
62
62
|
var formattedElapsedTime = jsx(FormattedDuration, {
|
|
63
63
|
fontSize: "x-large",
|
|
@@ -67,25 +67,25 @@ export var QuizAnalysisOverview = (_dec = withStyle(generateStyle, generateCompo
|
|
|
67
67
|
key: "highScore",
|
|
68
68
|
renderLabel: t('High Score'),
|
|
69
69
|
renderValue: quizAnalysis.highScore(),
|
|
70
|
-
|
|
70
|
+
customStyles: this.props.styles.metric,
|
|
71
71
|
isGroupChild: true
|
|
72
72
|
}), jsx(MetricsListItem, {
|
|
73
73
|
key: "lowScore",
|
|
74
74
|
renderLabel: t('Low Score'),
|
|
75
75
|
renderValue: quizAnalysis.lowScore(),
|
|
76
|
-
|
|
76
|
+
customStyles: this.props.styles.metric,
|
|
77
77
|
isGroupChild: true
|
|
78
78
|
}), jsx(MetricsListItem, {
|
|
79
79
|
key: "meanScore",
|
|
80
80
|
renderLabel: t('Mean Score'),
|
|
81
81
|
renderValue: quizAnalysis.meanScore(),
|
|
82
|
-
|
|
82
|
+
customStyles: this.props.styles.metric,
|
|
83
83
|
isGroupChild: true
|
|
84
84
|
}), jsx(MetricsListItem, {
|
|
85
85
|
key: "standardDeviation",
|
|
86
86
|
renderLabel: t('Standard Deviation'),
|
|
87
87
|
renderValue: quizAnalysis.standardDeviation(),
|
|
88
|
-
|
|
88
|
+
customStyles: this.props.styles.metric,
|
|
89
89
|
isGroupChild: true
|
|
90
90
|
}), jsx(MetricsListItem, {
|
|
91
91
|
key: "meanElapsedTime",
|
|
@@ -93,13 +93,13 @@ export var QuizAnalysisOverview = (_dec = withStyle(generateStyle, generateCompo
|
|
|
93
93
|
renderValue: jsx(Text, {
|
|
94
94
|
size: "x-large"
|
|
95
95
|
}, formattedElapsedTime),
|
|
96
|
-
|
|
96
|
+
customStyles: this.props.styles.metric,
|
|
97
97
|
isGroupChild: true
|
|
98
98
|
}), jsx(MetricsListItem, {
|
|
99
99
|
key: "cronbachsAlpha",
|
|
100
100
|
renderLabel: t('Cronbach\'s Alpha'),
|
|
101
101
|
renderValue: quizAnalysis.cronbachsAlpha(),
|
|
102
|
-
|
|
102
|
+
customStyles: this.props.styles.metric,
|
|
103
103
|
isGroupChild: true
|
|
104
104
|
}));
|
|
105
105
|
}
|
|
@@ -112,7 +112,7 @@ export var QuizAnalysisOverview = (_dec = withStyle(generateStyle, generateCompo
|
|
|
112
112
|
quizAnalysis = _this$props.quizAnalysis,
|
|
113
113
|
quizTitle = _this$props.quizTitle;
|
|
114
114
|
if (!quizAnalysis.isLoaded()) return _ref2;
|
|
115
|
-
var list = React.Children.count(this.props.children) === 0 ? this.
|
|
115
|
+
var list = React.Children.count(this.props.children) === 0 ? this.defaultMetrics() : jsx(MetricGroup, null, this.props.children);
|
|
116
116
|
return jsx(Card, {
|
|
117
117
|
css: this.props.styles.root
|
|
118
118
|
}, jsx(Heading, {
|