@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.
Files changed (23) hide show
  1. package/es/reporting/components/MetricsListItem/index.js +13 -19
  2. package/es/reporting/components/MetricsListItem/styles.js +12 -0
  3. package/es/reporting/components/MetricsListItem/theme.js +0 -3
  4. package/es/reporting/components/itemAnalysis/AnswerFrequencySummary/index.js +33 -61
  5. package/es/reporting/components/itemAnalysis/AnswerFrequencySummary/styles.js +45 -0
  6. package/es/reporting/components/itemAnalysis/AnswerFrequencySummary/theme.js +4 -2
  7. package/es/reporting/components/itemAnalysis/ItemAnalysisRow/presenter.js +6 -6
  8. package/es/reporting/components/quizAnalysis/QuizAnalysisOverview.js +9 -9
  9. package/es/reporting/components/resources/QuizAndItemAnalysis/presenter.js +46 -50
  10. package/es/reporting/components/resources/QuizAndItemAnalysis/styles.js +18 -0
  11. package/es/reporting/components/resources/QuizAndItemAnalysis/theme.js +4 -2
  12. package/lib/reporting/components/MetricsListItem/index.js +12 -22
  13. package/lib/reporting/components/MetricsListItem/styles.js +20 -0
  14. package/lib/reporting/components/MetricsListItem/theme.js +1 -10
  15. package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/index.js +32 -64
  16. package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/styles.js +56 -0
  17. package/lib/reporting/components/itemAnalysis/AnswerFrequencySummary/theme.js +6 -3
  18. package/lib/reporting/components/itemAnalysis/ItemAnalysisRow/presenter.js +5 -5
  19. package/lib/reporting/components/quizAnalysis/QuizAnalysisOverview.js +9 -9
  20. package/lib/reporting/components/resources/QuizAndItemAnalysis/presenter.js +45 -54
  21. package/lib/reporting/components/resources/QuizAndItemAnalysis/styles.js +26 -0
  22. package/lib/reporting/components/resources/QuizAndItemAnalysis/theme.js +6 -3
  23. 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
- import React, { Component } from 'react';
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 { themeable } from '@instructure/ui-themeable';
14
+ import { withStyle, jsx } from '@instructure/emotion';
15
15
  import t from '@instructure/quiz-i18n/es/format-message';
16
- var styles = {
17
- componentId: 'fvWlS',
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 /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(ScreenReaderContent, null, t('No value')), /*#__PURE__*/React.createElement(PresentationContent, null, t('--')));
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 names = classNames(styles.root, this.props.className);
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 /*#__PURE__*/React.createElement("div", {
49
- className: names
50
- }, /*#__PURE__*/React.createElement(Metric, {
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
- className: PropTypes.string
54
+ customStyles: PropTypes.object,
55
+ styles: PropTypes.object
62
56
  }), _class2.defaultProps = {
63
- className: ''
57
+ customStyles: {}
64
58
  }, _temp)) || _class);
65
59
  export default MetricsListItem;
@@ -0,0 +1,12 @@
1
+ var generateStyle = function generateStyle() {
2
+ return {
3
+ root: {
4
+ display: 'flex',
5
+ flexDirection: 'row',
6
+ alignItems: 'center',
7
+ justifyContent: 'center'
8
+ }
9
+ };
10
+ };
11
+
12
+ export default generateStyle;
@@ -1,3 +0,0 @@
1
- export default function generator() {
2
- return {};
3
- }
@@ -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
- import React, { Component } from 'react';
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 { themeable } from '@instructure/ui-themeable';
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 theme from "./theme.js";
21
- var styles = {
22
- componentId: 'deQQP',
23
- template: function template(theme) {
24
- return "\n\n@keyframes deQQP_dFUU{to{opacity:1;transform:translateZ(0)}}\n\n.deQQP_caGd{animation-duration:0.3s;animation-fill-mode:forwards;animation-name:deQQP_dFUU;opacity:0.01;transform:translateZ(0)}\n\n.deQQP_caGd td,.deQQP_caGd th{border-bottom-color:".concat(theme.contentCellBorderColor || 'inherit', ";padding-left:0.35rem;padding-right:0.35rem}\n\n.deQQP_ddmB td,.deQQP_ddmB th{padding-bottom:").concat(theme.answerRowCellPadding || 'inherit', ";padding-top:").concat(theme.answerRowCellPadding || 'inherit', ";white-space:nowrap}\n\n.deQQP_dOeq{background-color:").concat(theme.answerRowCorrectBackgroundColor || 'inherit', "}\n\n.deQQP_dOeq .deQQP_cLIq{color:").concat(theme.answerRowAnswerIconColor || 'inherit', "}\n\n.deQQP_dOeq .deQQP_ccwL,.deQQP_dOeq .deQQP_bFWU{font-weight:").concat(theme.answerRowCorrectTextFieldFontWeight || 'inherit', "}\n\n.deQQP_dOeq .deQQP_fKwc{background:").concat(theme.answerRowCorrectBarBackgroundColor || 'inherit', "}\n\ntd.deQQP_cLIq{color:").concat(theme.answerIconColor || 'inherit', ";font-size:").concat(theme.answerIconFontSize || 'inherit', ";width:1%}\n\nth.deQQP_bFWU{font-weight:").concat(theme.answerTextfieldFontWeight || 'inherit', ";max-width:12rem;overflow:hidden}\n\n.deQQP_fTiR{text-align:right;width:1%}\n\n[dir=ltr] .deQQP_fTiR,[dir=rtl] .deQQP_fTiR{text-align:right}\n\ntd.deQQP_fTiR{color:").concat(theme.respondentLinkColor || 'inherit', "}\n\ntd.deQQP_lHsH{color:").concat(theme.respondentLinkPresentColor || 'inherit', "}\n\n.deQQP_ccwL{text-align:right;width:1%}\n\n[dir=ltr] .deQQP_ccwL,[dir=rtl] .deQQP_ccwL{text-align:right}\n\ntd.deQQP_ccwL{padding-left:").concat(theme.answerRatioPaddingLeft || 'inherit', "}\n\ntd.deQQP_dEZf{border-bottom-color:transparent;height:2.3rem;min-width:7rem;padding:0;width:7rem}\n\n.deQQP_fKwc{background:").concat(theme.barBackgroundColor || 'inherit', ";height:100%;min-width:").concat(theme.barMinWidth || 'inherit', ";position:relative;transition:").concat(theme.barTransition || 'inherit', "}\n\n@media screen and (--phoneBreakPoint){th.deQQP_bFWU{max-width:0}th.deQQP_fTiR{max-width:3rem;overflow:hidden;text-overflow:ellipsis}}");
25
- },
26
- 'content': 'deQQP_caGd',
27
- 'contentAnimation': 'deQQP_dFUU',
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
- var rowClassNames = classNames((_classNames = {}, _defineProperty(_classNames, styles.answerRow, true), _defineProperty(_classNames, styles.answerRowCorrect, _this.isCorrect(choiceInfo)), _classNames));
67
- var respondentClassNames = classNames((_classNames2 = {}, _defineProperty(_classNames2, styles.respondentLink, true), _defineProperty(_classNames2, styles.respondentLinkPresent, choiceInfo.get('choiceCount') > 0), _classNames2));
68
- return /*#__PURE__*/React.createElement(Table.Row, {
69
- key: choiceIndex,
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)), /*#__PURE__*/React.createElement(Table.Cell, {
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
- return /*#__PURE__*/React.createElement("div", {
116
- className: styles.bar,
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 /*#__PURE__*/React.createElement("div", {
138
- className: styles.content,
110
+ return jsx("div", {
111
+ css: this.props.styles.content,
139
112
  "data-automation": "sdk-reporting-frequency-summary"
140
- }, /*#__PURE__*/React.createElement(Table, {
113
+ }, jsx(Table, {
141
114
  caption: t('Answer Frequency Summary')
142
- }, /*#__PURE__*/React.createElement(Table.Head, null, /*#__PURE__*/React.createElement(Table.Row, null, /*#__PURE__*/React.createElement(Table.ColHeader, {
115
+ }, jsx(Table.Head, null, jsx(Table.Row, null, jsx(Table.ColHeader, {
143
116
  id: "answer-frequency-summary-is-correct"
144
- }, /*#__PURE__*/React.createElement(ScreenReaderContent, null, t('Is Correct?'))), /*#__PURE__*/React.createElement(Table.ColHeader, {
117
+ }, jsx(ScreenReaderContent, null, t('Is Correct?'))), jsx(Table.ColHeader, {
145
118
  id: "answer-frequency-sumary-answer"
146
- }, t('Answer')), /*#__PURE__*/React.createElement(Table.ColHeader, {
147
- id: "answer-frequency-summary-respondents",
148
- className: styles.respondentLink
149
- }, t('Respondents')), /*#__PURE__*/React.createElement(Table.ColHeader, {
150
- id: "answer-frequency-summary-answer-ratio",
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
- export default function generator(_ref) {
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 { RichContentRenderer } from '@instructure/quiz-rce';
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(RichContentRenderer, {
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
- css: this.props.styles.metric,
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
- css: this.props.styles.metric,
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
- css: this.props.styles.metric,
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
- css: this.props.styles.metric,
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: "defaulMetrics",
60
- value: function defaulMetrics() {
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
- css: this.props.styles.metric,
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
- css: this.props.styles.metric,
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
- css: this.props.styles.metric,
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
- css: this.props.styles.metric,
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
- css: this.props.styles.metric,
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
- css: this.props.styles.metric,
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.defaulMetrics() : jsx(MetricGroup, null, this.props.children);
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, {