@instructure/quiz-core 17.58.2-rc.6 → 17.58.2-rc.7

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 (25) hide show
  1. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/index.js +2 -0
  2. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +64 -0
  3. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +3 -0
  4. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/index.js +2 -0
  5. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +75 -0
  6. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +6 -0
  7. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +2 -0
  8. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +18 -0
  9. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +245 -0
  10. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +9 -0
  11. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +55 -57
  12. package/es/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +5 -16
  13. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/index.js +11 -0
  14. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +83 -0
  15. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +10 -0
  16. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/index.js +11 -0
  17. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +95 -0
  18. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +13 -0
  19. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +11 -0
  20. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +27 -0
  21. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +274 -0
  22. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +16 -0
  23. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +59 -62
  24. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +7 -18
  25. package/package.json +9 -9
@@ -19,8 +19,6 @@ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
19
19
 
20
20
  var _uiHeading = require("@instructure/ui-heading");
21
21
 
22
- var _uiMetric = require("@instructure/ui-metric");
23
-
24
22
  var _react = _interopRequireWildcard(require("react"));
25
23
 
26
24
  var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
@@ -33,43 +31,39 @@ var _uiThemeable = require("@instructure/ui-themeable");
33
31
 
34
32
  var _theme = _interopRequireDefault(require("./theme.js"));
35
33
 
36
- var _utils = require("../utils.js");
37
-
38
- var _index2 = _interopRequireDefault(require("../MetricPopover/index.js"));
39
-
40
34
  var _formatTimespan = require("../../../../../common/util/formatTimespan.js");
41
35
 
42
36
  var _propTypes = _interopRequireDefault(require("prop-types"));
43
37
 
44
- var _index3 = _interopRequireDefault(require("../../../../../common/components/shared/Card/index.js"));
38
+ var _index2 = _interopRequireDefault(require("../../../../../common/components/shared/Card/index.js"));
39
+
40
+ var _index3 = _interopRequireDefault(require("../AnalysisPopoverMetric/index.js"));
41
+
42
+ var _index4 = _interopRequireDefault(require("../AnalysisMetric/index.js"));
45
43
 
46
44
  var _presenter = require("../charts/ScoreDistribution/presenter.js");
47
45
 
48
46
  var _dec, _class, _class2, _temp;
49
47
 
50
48
  var styles = {
51
- componentId: 'bsfUh',
49
+ componentId: 'ePPpE',
52
50
  template: function template(theme) {
53
- return "\n\n.bsfUh_eDnN{display:flex;justify-content:space-between;padding-bottom:".concat(theme.headingPadding || 'inherit', "}\n\n.bsfUh_eKXQ{padding:").concat(theme.cardWrapperPadding || 'inherit', ";position:relative}\n\n.bsfUh_crZr{padding-top:").concat(theme.metricGroupPaddingTop || 'inherit', "}\n\n.bsfUh_eckF{text-transform:uppercase}\n\n.bsfUh_dPzc,.bsfUh_cpZE{column-gap:").concat(theme.metricsColumnGap || 'inherit', ";display:flex;flex-wrap:wrap;justify-content:flex-start;row-gap:1.5rem}\n\n.bsfUh_dPzc{margin-left:-8px}\n\n.bsfUh_dqHR{padding-left:5px}\n\n.bsfUh_bTHH{position:absolute;right:").concat(theme.viewPadding || 'inherit', ";top:").concat(theme.viewPadding || 'inherit', "}");
51
+ return "\n\n.ePPpE_eDnN{display:flex;justify-content:space-between;padding-bottom:".concat(theme.headingPadding || 'inherit', "}\n\n.ePPpE_eKXQ{padding:").concat(theme.cardWrapperPadding || 'inherit', ";position:relative}\n\n.ePPpE_crZr{padding-top:").concat(theme.metricGroupPaddingTop || 'inherit', "}\n\n.ePPpE_bTHH{position:absolute;right:").concat(theme.viewPadding || 'inherit', ";top:").concat(theme.viewPadding || 'inherit', "}\n\n.ePPpE_dPzc,.ePPpE_cpZE{column-gap:").concat(theme.metricsColumnGap || 'inherit', ";display:flex;flex-wrap:wrap;justify-content:flex-start;row-gap:1.5rem}\n\n.ePPpE_dPzc{margin-left:-8px}");
54
52
  },
55
- 'heading': 'bsfUh_eDnN',
56
- 'cardWrapper': 'bsfUh_eKXQ',
57
- 'container': 'bsfUh_crZr',
58
- 'metricLabel': 'bsfUh_eckF',
59
- 'metricGroup': 'bsfUh_dPzc',
60
- 'metricsWrapper': 'bsfUh_cpZE',
61
- 'popoverContainer': 'bsfUh_dqHR',
62
- 'expandButtonContainer': 'bsfUh_bTHH'
53
+ 'heading': 'ePPpE_eDnN',
54
+ 'cardWrapper': 'ePPpE_eKXQ',
55
+ 'container': 'ePPpE_crZr',
56
+ 'expandButtonContainer': 'ePPpE_bTHH',
57
+ 'metricGroup': 'ePPpE_dPzc',
58
+ 'metricsWrapper': 'ePPpE_cpZE'
63
59
  };
64
60
  var stdDevPopoverTexts = {
65
- metricLabel: 'standard deviation',
66
61
  title: 'Lorem ipsum ',
67
62
  subtitle: 'subtitle',
68
63
  body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor',
69
64
  screenReaderLabel: 'standard deviation tooltip'
70
65
  };
71
66
  var cronbachsAlphaPopoverTexts = {
72
- metricLabel: 'cronbach\'s alpha',
73
67
  title: 'Lorem ipsum ',
74
68
  subtitle: 'subtitle',
75
69
  body: 'cronbach\'s alpha description',
@@ -109,50 +103,28 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
109
103
  className: styles.container
110
104
  }, /*#__PURE__*/_react.default.createElement("div", {
111
105
  className: styles.metricGroup
112
- }, _this.renderMetric('median_percentage', (0, _formatMessage.default)('median score'), _formatMessage.default.number(scores === null || scores === void 0 ? void 0 : scores.median_percentage), '%'), _this.renderMetricWithPopover('stddev', stdDevPopoverTexts, _formatMessage.default.number(scores === null || scores === void 0 ? void 0 : scores.stddev)), _this.renderMetricWithPopover('cronbachs_alpha', cronbachsAlphaPopoverTexts, _formatMessage.default.number(scores === null || scores === void 0 ? void 0 : scores.cronbachs_alpha))));
106
+ }, /*#__PURE__*/_react.default.createElement(_index4.default, {
107
+ metricKey: "median_percentage",
108
+ label: (0, _formatMessage.default)('Median Score'),
109
+ value: _formatMessage.default.number(scores === null || scores === void 0 ? void 0 : scores.median_percentage),
110
+ suffix: "%"
111
+ }), /*#__PURE__*/_react.default.createElement(_index3.default, {
112
+ metricKey: "stddev",
113
+ value: _formatMessage.default.number(scores === null || scores === void 0 ? void 0 : scores.stddev),
114
+ label: (0, _formatMessage.default)('Standard Deviation'),
115
+ popoverDescription: stdDevPopoverTexts
116
+ }), /*#__PURE__*/_react.default.createElement(_index3.default, {
117
+ metricKey: "cronbachs_alpha",
118
+ value: _formatMessage.default.number(scores === null || scores === void 0 ? void 0 : scores.cronbachs_alpha),
119
+ label: (0, _formatMessage.default)('Cronbach\'s Alpha'),
120
+ popoverDescription: cronbachsAlphaPopoverTexts
121
+ })));
113
122
  };
114
123
 
115
124
  return _this;
116
125
  }
117
126
 
118
127
  (0, _createClass2.default)(NewQuizAnalysis, [{
119
- key: "renderLabelWithPopover",
120
- value: function renderLabelWithPopover(texts) {
121
- return /*#__PURE__*/_react.default.createElement("span", {
122
- className: styles.metricLabel
123
- }, texts.metricLabel, /*#__PURE__*/_react.default.createElement("span", {
124
- className: styles.popoverContainer
125
- }, /*#__PURE__*/_react.default.createElement(_index2.default, texts)));
126
- }
127
- }, {
128
- key: "renderMetric",
129
- value: function renderMetric(key, label, value, suffix) {
130
- return /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
131
- theme: {
132
- valueFontWeight: 500
133
- },
134
- textAlign: "start",
135
- key: key,
136
- renderLabel: /*#__PURE__*/_react.default.createElement("span", {
137
- className: styles.metricLabel
138
- }, label),
139
- renderValue: (0, _utils.getSanitizedMetricValue)(value, suffix)
140
- });
141
- }
142
- }, {
143
- key: "renderMetricWithPopover",
144
- value: function renderMetricWithPopover(key, texts, value) {
145
- return /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
146
- theme: {
147
- valueFontWeight: 500
148
- },
149
- textAlign: "start",
150
- key: key,
151
- renderLabel: this.renderLabelWithPopover(texts),
152
- renderValue: (0, _utils.getSanitizedMetricValue)(value)
153
- });
154
- }
155
- }, {
156
128
  key: "render",
157
129
  value: function render() {
158
130
  var quizAnalysis = this.props.quizAnalysis;
@@ -160,7 +132,7 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
160
132
  attempts = quizAnalysis.attempts,
161
133
  metadata = quizAnalysis.metadata;
162
134
  var expanded = this.state.expanded;
163
- return /*#__PURE__*/_react.default.createElement(_index3.default, {
135
+ return /*#__PURE__*/_react.default.createElement(_index2.default, {
164
136
  className: styles.cardWrapper
165
137
  }, /*#__PURE__*/_react.default.createElement("div", {
166
138
  className: styles.heading
@@ -171,9 +143,32 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
171
143
  className: styles.metricGroup
172
144
  }, /*#__PURE__*/_react.default.createElement("div", {
173
145
  className: styles.metricsWrapper
174
- }, this.renderMetric('highscore', (0, _formatMessage.default)('high score'), scores === null || scores === void 0 ? void 0 : scores.max_percentage, '%'), this.renderMetric('lowscore', (0, _formatMessage.default)('low score'), scores === null || scores === void 0 ? void 0 : scores.min_percentage, '%'), this.renderMetric('meanscore', (0, _formatMessage.default)('mean score'), scores === null || scores === void 0 ? void 0 : scores.mean_percentage, '%')), /*#__PURE__*/_react.default.createElement("div", {
146
+ }, /*#__PURE__*/_react.default.createElement(_index4.default, {
147
+ metricKey: "highscore",
148
+ label: (0, _formatMessage.default)('high score'),
149
+ value: scores === null || scores === void 0 ? void 0 : scores.max_percentage,
150
+ suffix: "%"
151
+ }), /*#__PURE__*/_react.default.createElement(_index4.default, {
152
+ metricKey: "lowscore",
153
+ label: (0, _formatMessage.default)('low score'),
154
+ value: scores === null || scores === void 0 ? void 0 : scores.min_percentage,
155
+ suffix: "%"
156
+ }), /*#__PURE__*/_react.default.createElement(_index4.default, {
157
+ metricKey: "meanscore",
158
+ label: (0, _formatMessage.default)('mean score'),
159
+ value: scores === null || scores === void 0 ? void 0 : scores.mean_percentage,
160
+ suffix: "%"
161
+ })), /*#__PURE__*/_react.default.createElement("div", {
175
162
  className: styles.metricsWrapper
176
- }, this.renderMetric('average_attempts', (0, _formatMessage.default)('average attempts'), _formatMessage.default.number(attempts === null || attempts === void 0 ? void 0 : attempts.average_attempts)), this.renderMetric('mean_elapsed_sec', (0, _formatMessage.default)('mean elapsed time'), (0, _formatTimespan.formatTimeToFullNumeric)(attempts === null || attempts === void 0 ? void 0 : attempts.mean_elapsed_sec))), /*#__PURE__*/_react.default.createElement("div", {
163
+ }, /*#__PURE__*/_react.default.createElement(_index4.default, {
164
+ metricKey: "average_attempts",
165
+ label: (0, _formatMessage.default)('average attempts'),
166
+ value: _formatMessage.default.number(attempts === null || attempts === void 0 ? void 0 : attempts.average_attempts)
167
+ }), /*#__PURE__*/_react.default.createElement(_index4.default, {
168
+ metricKey: "mean_elapsed_sec",
169
+ label: (0, _formatMessage.default)('mean elapsed time'),
170
+ value: (0, _formatTimespan.formatTimeToFullNumeric)(attempts === null || attempts === void 0 ? void 0 : attempts.mean_elapsed_sec)
171
+ })), /*#__PURE__*/_react.default.createElement("div", {
177
172
  className: styles.expandButtonContainer
178
173
  }, /*#__PURE__*/_react.default.createElement(_index.default, {
179
174
  onClick: this.handleToggle,
@@ -190,10 +185,10 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
190
185
  return NewQuizAnalysis;
191
186
  }(_react.Component), _class2.propTypes = {
192
187
  quizAnalysis: _propTypes.default.shape({
193
- created_timestamp: _propTypes.default.string,
188
+ created_timestamp: _propTypes.default.string.isRequired,
194
189
  metadata: _propTypes.default.shape({
195
190
  quiz_title: _propTypes.default.string
196
- }),
191
+ }).isRequired,
197
192
  scores: _propTypes.default.shape({
198
193
  decile_distribution: _propTypes.default.arrayOf(_propTypes.default.number),
199
194
  cronbachs_alpha: _propTypes.default.number,
@@ -211,5 +206,7 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
211
206
  average_attempts: _propTypes.default.number
212
207
  }).isRequired
213
208
  }).isRequired
209
+ }, _class2.defaultProps = {
210
+ quizAnalysis: {}
214
211
  }, _temp)) || _class);
215
212
  exports.NewQuizAnalysis = NewQuizAnalysis;
@@ -21,11 +21,11 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
21
21
 
22
22
  var _uiHeading = require("@instructure/ui-heading");
23
23
 
24
- var _uiMetric = require("@instructure/ui-metric");
24
+ var _index = _interopRequireDefault(require("./NewItemAnalysis/index.js"));
25
25
 
26
26
  var _Spinner = _interopRequireDefault(require("../../../../common/components/shared/spinner/Spinner.js"));
27
27
 
28
- var _index = _interopRequireDefault(require("./NewQuizAnalysis/index.js"));
28
+ var _index2 = _interopRequireDefault(require("./NewQuizAnalysis/index.js"));
29
29
 
30
30
  var _ref5 = /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
31
31
  level: "h3",
@@ -116,7 +116,7 @@ var NewQuizAndItemAnalysis = function NewQuizAndItemAnalysis(_ref) {
116
116
  fetch();
117
117
  }, []);
118
118
 
119
- var _ref4 = /*#__PURE__*/_react.default.createElement(_index.default, {
119
+ var _ref4 = /*#__PURE__*/_react.default.createElement(_index2.default, {
120
120
  quizAnalysis: quizAnalysis
121
121
  });
122
122
 
@@ -125,21 +125,10 @@ var NewQuizAndItemAnalysis = function NewQuizAndItemAnalysis(_ref) {
125
125
  return /*#__PURE__*/_react.default.createElement("div", {
126
126
  className: "fs-mask"
127
127
  }, _ref4, _ref5, itemAnalyses === null || itemAnalyses === void 0 ? void 0 : itemAnalyses.map(function (itemAnalysis) {
128
- return /*#__PURE__*/_react.default.createElement(_uiMetric.MetricGroup, {
129
- key: itemAnalysis.metadata.item_id
130
- }, /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
131
- key: "itemdifficulty",
132
- renderLabel: "ITEM DIFFICULTY",
133
- renderValue: itemAnalysis.scores.difficulty_index
134
- }), /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
135
- key: "responded",
136
- renderLabel: "RESPONDED",
137
- renderValue: itemAnalysis.attempts.students_responded
138
- }), /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
139
- key: "skipped",
140
- renderLabel: "SKIPPED/NO RESPONSE",
141
- renderValue: itemAnalysis.attempts.students_without_response
142
- }));
128
+ return /*#__PURE__*/_react.default.createElement(_index.default, {
129
+ key: itemAnalysis.metadata.item_id,
130
+ itemAnalysis: itemAnalysis
131
+ });
143
132
  }));
144
133
  /* eslint-enable react/jsx-no-literals */
145
134
  }; // TODO: distinguish between loading and empty item analyses (eg. when there is no items in a quiz)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/quiz-core",
3
- "version": "17.58.2-rc.6+2291f061e",
3
+ "version": "17.58.2-rc.7+623c562cd",
4
4
  "license": "MIT",
5
5
  "description": "The Quiz React SDK by Instructure Inc.",
6
6
  "author": "Instructure, Inc. Engineering and Product Design",
@@ -41,11 +41,11 @@
41
41
  ],
42
42
  "dependencies": {
43
43
  "@instructure/outcomes-ui": "^2.1.8",
44
- "@instructure/quiz-common": "17.58.2-rc.6+2291f061e",
45
- "@instructure/quiz-i18n": "17.58.2-rc.6+2291f061e",
46
- "@instructure/quiz-interactions": "17.58.2-rc.6+2291f061e",
47
- "@instructure/quiz-number-input": "17.58.2-rc.6+2291f061e",
48
- "@instructure/quiz-rce": "17.58.2-rc.6+2291f061e",
44
+ "@instructure/quiz-common": "17.58.2-rc.7+623c562cd",
45
+ "@instructure/quiz-i18n": "17.58.2-rc.7+623c562cd",
46
+ "@instructure/quiz-interactions": "17.58.2-rc.7+623c562cd",
47
+ "@instructure/quiz-number-input": "17.58.2-rc.7+623c562cd",
48
+ "@instructure/quiz-rce": "17.58.2-rc.7+623c562cd",
49
49
  "@instructure/ui-a11y-content": "^7.20.0",
50
50
  "@instructure/ui-alerts": "^7.20.0",
51
51
  "@instructure/ui-avatar": "^7.20.0",
@@ -106,7 +106,7 @@
106
106
  "eventemitter3": "^3.1.0",
107
107
  "humps": "^2.0.0",
108
108
  "immutable": "^3.8.1",
109
- "instructure-validations": "17.58.2-rc.6+2291f061e",
109
+ "instructure-validations": "17.58.2-rc.7+623c562cd",
110
110
  "ipaddr.js": "^1.5.4",
111
111
  "isomorphic-fetch": "^2.2.0",
112
112
  "isuuid": "^0.1.0",
@@ -156,7 +156,7 @@
156
156
  "intl": "^1.2.4",
157
157
  "jquery": "^2.2.3",
158
158
  "most-subject": "^5.3.0",
159
- "quiz-presets": "17.58.2-rc.6+2291f061e",
159
+ "quiz-presets": "17.58.2-rc.7+623c562cd",
160
160
  "react": "^16.8.6",
161
161
  "react-addons-test-utils": "^15.6.2",
162
162
  "react-dom": "^16.8.6",
@@ -172,5 +172,5 @@
172
172
  "publishConfig": {
173
173
  "access": "public"
174
174
  },
175
- "gitHead": "2291f061ed85f10cd0648eef4a254b8b2975fb50"
175
+ "gitHead": "623c562cd0e8f4d89e5c5480e383e8c8ddc01546"
176
176
  }