@instructure/quiz-core 17.61.1-rc.0 → 17.62.0
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/CHANGELOG.md +12 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +2 -22
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +1 -1
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/index.js +3 -119
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/presenter.js +119 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/index.js +3 -11
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +28 -93
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +22 -1
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/withAnalysisState.js +27 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/withAnalysisStatePresenter.js +202 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +3 -23
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +1 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/index.js +3 -134
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/presenter.js +146 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/index.js +4 -14
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +36 -102
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +27 -3
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/withAnalysisState.js +45 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/withAnalysisStatePresenter.js +220 -0
- package/package.json +10 -10
package/es/reporting/components/resources/NewQuizAndItemAnalysis/withAnalysisStatePresenter.js
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
+
import React, { useEffect } from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import { itemAnalysisPropType, quizAnalysisPropType } from "./propTypes.js";
|
|
7
|
+
export var withAnalysisStatePresenter = function withAnalysisStatePresenter(OriginalComponent) {
|
|
8
|
+
var WithAnalysisStatePresenter = function WithAnalysisStatePresenter(_ref) {
|
|
9
|
+
var quizAnalysis = _ref.quizAnalysis,
|
|
10
|
+
itemAnalyses = _ref.itemAnalyses,
|
|
11
|
+
fetchInProgress = _ref.fetchInProgress,
|
|
12
|
+
generationInProgress = _ref.generationInProgress,
|
|
13
|
+
analysisError = _ref.analysisError,
|
|
14
|
+
setQuizAnalysis = _ref.setQuizAnalysis,
|
|
15
|
+
setItemAnalyses = _ref.setItemAnalyses,
|
|
16
|
+
setFetchInProgress = _ref.setFetchInProgress,
|
|
17
|
+
setGenerationInProgress = _ref.setGenerationInProgress,
|
|
18
|
+
setAnalysisError = _ref.setAnalysisError,
|
|
19
|
+
activeQuizId = _ref.activeQuizId,
|
|
20
|
+
fetchQuizAnalysis = _ref.fetchQuizAnalysis,
|
|
21
|
+
fetchItemAnalyses = _ref.fetchItemAnalyses,
|
|
22
|
+
generateReport = _ref.generateReport,
|
|
23
|
+
passThroughProps = _objectWithoutProperties(_ref, ["quizAnalysis", "itemAnalyses", "fetchInProgress", "generationInProgress", "analysisError", "setQuizAnalysis", "setItemAnalyses", "setFetchInProgress", "setGenerationInProgress", "setAnalysisError", "activeQuizId", "fetchQuizAnalysis", "fetchItemAnalyses", "generateReport"]);
|
|
24
|
+
|
|
25
|
+
WithAnalysisStatePresenter.displayName = "WithAnalysisStatePresenter(".concat(OriginalComponent.displayName || OriginalComponent.name, ")");
|
|
26
|
+
|
|
27
|
+
function fetchReports() {
|
|
28
|
+
return _fetchReports.apply(this, arguments);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function _fetchReports() {
|
|
32
|
+
_fetchReports = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
33
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
34
|
+
while (1) {
|
|
35
|
+
switch (_context2.prev = _context2.next) {
|
|
36
|
+
case 0:
|
|
37
|
+
_context2.next = 2;
|
|
38
|
+
return queryQuizAnalysis();
|
|
39
|
+
|
|
40
|
+
case 2:
|
|
41
|
+
_context2.next = 4;
|
|
42
|
+
return queryItemAnalyses();
|
|
43
|
+
|
|
44
|
+
case 4:
|
|
45
|
+
case "end":
|
|
46
|
+
return _context2.stop();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}, _callee2);
|
|
50
|
+
}));
|
|
51
|
+
return _fetchReports.apply(this, arguments);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function queryQuizAnalysis() {
|
|
55
|
+
return _queryQuizAnalysis.apply(this, arguments);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function _queryQuizAnalysis() {
|
|
59
|
+
_queryQuizAnalysis = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
60
|
+
var response;
|
|
61
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
62
|
+
while (1) {
|
|
63
|
+
switch (_context3.prev = _context3.next) {
|
|
64
|
+
case 0:
|
|
65
|
+
_context3.next = 2;
|
|
66
|
+
return fetchQuizAnalysis(activeQuizId);
|
|
67
|
+
|
|
68
|
+
case 2:
|
|
69
|
+
response = _context3.sent;
|
|
70
|
+
|
|
71
|
+
if (response) {
|
|
72
|
+
setQuizAnalysis(response.last_successful_analysis);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
case 4:
|
|
76
|
+
case "end":
|
|
77
|
+
return _context3.stop();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}, _callee3);
|
|
81
|
+
}));
|
|
82
|
+
return _queryQuizAnalysis.apply(this, arguments);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function queryItemAnalyses() {
|
|
86
|
+
return _queryItemAnalyses.apply(this, arguments);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function _queryItemAnalyses() {
|
|
90
|
+
_queryItemAnalyses = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
91
|
+
var response;
|
|
92
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
93
|
+
while (1) {
|
|
94
|
+
switch (_context4.prev = _context4.next) {
|
|
95
|
+
case 0:
|
|
96
|
+
_context4.next = 2;
|
|
97
|
+
return fetchItemAnalyses(activeQuizId);
|
|
98
|
+
|
|
99
|
+
case 2:
|
|
100
|
+
response = _context4.sent;
|
|
101
|
+
|
|
102
|
+
if (response) {
|
|
103
|
+
setItemAnalyses(response.last_successful_analysis);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
case 4:
|
|
107
|
+
case "end":
|
|
108
|
+
return _context4.stop();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}, _callee4);
|
|
112
|
+
}));
|
|
113
|
+
return _queryItemAnalyses.apply(this, arguments);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function generateReports() {
|
|
117
|
+
return _generateReports.apply(this, arguments);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function _generateReports() {
|
|
121
|
+
_generateReports = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
|
|
122
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
123
|
+
while (1) {
|
|
124
|
+
switch (_context5.prev = _context5.next) {
|
|
125
|
+
case 0:
|
|
126
|
+
case "end":
|
|
127
|
+
return _context5.stop();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}, _callee5);
|
|
131
|
+
}));
|
|
132
|
+
return _generateReports.apply(this, arguments);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
useEffect(function () {
|
|
136
|
+
var fetchIfNeeded = /*#__PURE__*/function () {
|
|
137
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
138
|
+
var hasStoredAnalyses;
|
|
139
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
140
|
+
while (1) {
|
|
141
|
+
switch (_context.prev = _context.next) {
|
|
142
|
+
case 0:
|
|
143
|
+
hasStoredAnalyses = quizAnalysis && itemAnalyses;
|
|
144
|
+
|
|
145
|
+
if (!(!hasStoredAnalyses && !fetchInProgress)) {
|
|
146
|
+
_context.next = 4;
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
_context.next = 4;
|
|
151
|
+
return fetchReports();
|
|
152
|
+
|
|
153
|
+
case 4:
|
|
154
|
+
case "end":
|
|
155
|
+
return _context.stop();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}, _callee);
|
|
159
|
+
}));
|
|
160
|
+
|
|
161
|
+
return function fetchIfNeeded() {
|
|
162
|
+
return _ref2.apply(this, arguments);
|
|
163
|
+
};
|
|
164
|
+
}();
|
|
165
|
+
|
|
166
|
+
fetchIfNeeded();
|
|
167
|
+
}, []);
|
|
168
|
+
return /*#__PURE__*/React.createElement(OriginalComponent, Object.assign({
|
|
169
|
+
quizAnalysis: quizAnalysis,
|
|
170
|
+
itemAnalyses: itemAnalyses,
|
|
171
|
+
fetchInProgress: fetchInProgress,
|
|
172
|
+
generationInProgress: generationInProgress,
|
|
173
|
+
analysisError: analysisError,
|
|
174
|
+
generateReports: generateReports
|
|
175
|
+
}, passThroughProps));
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
WithAnalysisStatePresenter.propTypes = {
|
|
179
|
+
quizAnalysis: quizAnalysisPropType,
|
|
180
|
+
itemAnalyses: PropTypes.arrayOf(itemAnalysisPropType),
|
|
181
|
+
fetchInProgress: PropTypes.bool.isRequired,
|
|
182
|
+
generationInProgress: PropTypes.bool.isRequired,
|
|
183
|
+
analysisError: PropTypes.string,
|
|
184
|
+
setQuizAnalysis: PropTypes.func.isRequired,
|
|
185
|
+
setItemAnalyses: PropTypes.func.isRequired,
|
|
186
|
+
setFetchInProgress: PropTypes.func.isRequired,
|
|
187
|
+
setGenerationInProgress: PropTypes.func.isRequired,
|
|
188
|
+
setAnalysisError: PropTypes.func.isRequired,
|
|
189
|
+
activeQuizId: PropTypes.string.isRequired,
|
|
190
|
+
fetchQuizAnalysis: PropTypes.func.isRequired,
|
|
191
|
+
fetchItemAnalyses: PropTypes.func.isRequired,
|
|
192
|
+
// can be required after passed from LTI
|
|
193
|
+
generateReport: PropTypes.func
|
|
194
|
+
};
|
|
195
|
+
WithAnalysisStatePresenter.defaultProps = {
|
|
196
|
+
quizAnalysis: void 0,
|
|
197
|
+
itemAnalyses: void 0,
|
|
198
|
+
analysisError: '',
|
|
199
|
+
generateReport: Function.prototype
|
|
200
|
+
};
|
|
201
|
+
return WithAnalysisStatePresenter;
|
|
202
|
+
};
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js
CHANGED
|
@@ -41,12 +41,12 @@ var _index3 = _interopRequireDefault(require("../AnalysisMetric/index.js"));
|
|
|
41
41
|
|
|
42
42
|
var _index4 = _interopRequireDefault(require("../AnalysisPopoverMetric/index.js"));
|
|
43
43
|
|
|
44
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
45
|
-
|
|
46
44
|
var _classnames2 = _interopRequireDefault(require("classnames"));
|
|
47
45
|
|
|
48
46
|
var _interactionTypeMetadata = require("../../../../../common/util/interactionTypeMetadata.js");
|
|
49
47
|
|
|
48
|
+
var _propTypes = require("../propTypes.js");
|
|
49
|
+
|
|
50
50
|
var _dec, _class, _class2, _temp;
|
|
51
51
|
|
|
52
52
|
var styles = {
|
|
@@ -266,26 +266,6 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
266
266
|
NewItemAnalysis.displayName = "NewItemAnalysis";
|
|
267
267
|
return NewItemAnalysis;
|
|
268
268
|
}(_react.Component), _class2.propTypes = {
|
|
269
|
-
itemAnalysis: _propTypes.
|
|
270
|
-
attempts: _propTypes.default.shape({
|
|
271
|
-
students_responded: _propTypes.default.number,
|
|
272
|
-
students_without_response: _propTypes.default.number
|
|
273
|
-
}),
|
|
274
|
-
metadata: _propTypes.default.shape({
|
|
275
|
-
interaction_type: _propTypes.default.string,
|
|
276
|
-
item_body: _propTypes.default.string,
|
|
277
|
-
item_id: _propTypes.default.string,
|
|
278
|
-
item_title: _propTypes.default.string
|
|
279
|
-
}),
|
|
280
|
-
scores: _propTypes.default.shape({
|
|
281
|
-
difficulty_index: _propTypes.default.number,
|
|
282
|
-
discrimination_index: _propTypes.default.number,
|
|
283
|
-
mean: _propTypes.default.number,
|
|
284
|
-
median: _propTypes.default.number,
|
|
285
|
-
pearson_correlation: _propTypes.default.number,
|
|
286
|
-
points_possible: _propTypes.default.number,
|
|
287
|
-
quartile_distribution: _propTypes.default.arrayOf(_propTypes.default.number)
|
|
288
|
-
})
|
|
289
|
-
}).isRequired
|
|
269
|
+
itemAnalysis: _propTypes.itemAnalysisPropType.isRequired
|
|
290
270
|
}, _temp)) || _class);
|
|
291
271
|
exports.NewItemAnalysis = NewItemAnalysis;
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js
CHANGED
|
@@ -177,7 +177,7 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
177
177
|
NewQuizAnalysis.displayName = "NewQuizAnalysis";
|
|
178
178
|
return NewQuizAnalysis;
|
|
179
179
|
}(_react.Component), _class2.propTypes = {
|
|
180
|
-
quizAnalysis: _propTypes.quizAnalysisPropType
|
|
180
|
+
quizAnalysis: _propTypes.quizAnalysisPropType.isRequired
|
|
181
181
|
}, _class2.defaultProps = {
|
|
182
182
|
quizAnalysis: {}
|
|
183
183
|
}, _temp)) || _class);
|
|
@@ -2,147 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.default = exports.NewQuizAndItemAnalysisReportCard = void 0;
|
|
11
9
|
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
19
|
-
|
|
20
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
-
|
|
22
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
23
|
-
|
|
24
|
-
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
25
|
-
|
|
26
|
-
var _uiText = require("@instructure/ui-text");
|
|
27
|
-
|
|
28
|
-
var _uiLink = require("@instructure/ui-link");
|
|
29
|
-
|
|
30
|
-
var _uiFlex = require("@instructure/ui-flex");
|
|
31
|
-
|
|
32
|
-
var _uiThemeable = require("@instructure/ui-themeable");
|
|
33
|
-
|
|
34
|
-
var _index = _interopRequireDefault(require("../../../../../common/components/shared/Card/index.js"));
|
|
35
|
-
|
|
36
|
-
var _theme = _interopRequireDefault(require("./theme.js"));
|
|
37
|
-
|
|
38
|
-
var _index2 = _interopRequireDefault(require("../AnalysisMetric/index.js"));
|
|
39
|
-
|
|
40
|
-
var _Spinner = _interopRequireDefault(require("../../../../../common/components/shared/spinner/Spinner.js"));
|
|
41
|
-
|
|
42
|
-
var _index3 = require("../AnalysisUpdateDate/index.js");
|
|
43
|
-
|
|
44
|
-
var _propTypes2 = require("../propTypes.js");
|
|
45
|
-
|
|
46
|
-
var _dec, _class, _class2, _temp;
|
|
47
|
-
|
|
48
|
-
var styles = {
|
|
49
|
-
componentId: 'eJSiT',
|
|
50
|
-
template: function template(theme) {
|
|
51
|
-
return "\n\n.eJSiT_bqdH{column-gap:5px;display:flex;justify-content:space-between;padding:".concat(theme.metricsPadding || 'inherit', " 0}\n\n.eJSiT_fbIL{border-radius:").concat(theme.cardBorderRadius || 'inherit', ";box-shadow:").concat(theme.cardBoxShadow || 'inherit', ";display:inline-flex;flex-direction:column;margin:").concat(theme.cardMargin || 'inherit', ";padding:").concat(theme.cardPadding || 'inherit', ";width:").concat(theme.cardWidth || 'inherit', "}\n\n.eJSiT_blRb{max-width:160px;padding-right:10px}");
|
|
52
|
-
},
|
|
53
|
-
'metricsContainer': 'eJSiT_bqdH',
|
|
54
|
-
'card': 'eJSiT_fbIL',
|
|
55
|
-
'dateContainer': 'eJSiT_blRb'
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
var _ref = /*#__PURE__*/_react.default.createElement(_Spinner.default, null);
|
|
59
|
-
|
|
60
|
-
var NewQuizAndItemAnalysisReportCard = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
61
|
-
(0, _inherits2.default)(NewQuizAndItemAnalysisReportCard, _Component);
|
|
62
|
-
|
|
63
|
-
var _super = (0, _createSuper2.default)(NewQuizAndItemAnalysisReportCard);
|
|
64
|
-
|
|
65
|
-
function NewQuizAndItemAnalysisReportCard() {
|
|
66
|
-
var _this;
|
|
67
|
-
|
|
68
|
-
(0, _classCallCheck2.default)(this, NewQuizAndItemAnalysisReportCard);
|
|
69
|
-
|
|
70
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
71
|
-
args[_key] = arguments[_key];
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
75
|
-
|
|
76
|
-
_this.renderMetrics = function () {
|
|
77
|
-
var _quizAnalysis$scores, _quizAnalysis$scores2, _quizAnalysis$scores3;
|
|
78
|
-
|
|
79
|
-
var quizAnalysis = _this.props.quizAnalysis;
|
|
80
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
-
className: styles.metricsContainer
|
|
82
|
-
}, /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
83
|
-
metricKey: "highscore",
|
|
84
|
-
label: (0, _formatMessage.default)('high score'),
|
|
85
|
-
value: (_quizAnalysis$scores = quizAnalysis.scores) === null || _quizAnalysis$scores === void 0 ? void 0 : _quizAnalysis$scores.max_percentage,
|
|
86
|
-
suffix: "%"
|
|
87
|
-
}), /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
88
|
-
metricKey: "lowscore",
|
|
89
|
-
label: (0, _formatMessage.default)('low score'),
|
|
90
|
-
value: (_quizAnalysis$scores2 = quizAnalysis.scores) === null || _quizAnalysis$scores2 === void 0 ? void 0 : _quizAnalysis$scores2.min_percentage,
|
|
91
|
-
suffix: "%"
|
|
92
|
-
}), /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
93
|
-
metricKey: "meanscore",
|
|
94
|
-
label: (0, _formatMessage.default)('mean score'),
|
|
95
|
-
value: (_quizAnalysis$scores3 = quizAnalysis.scores) === null || _quizAnalysis$scores3 === void 0 ? void 0 : _quizAnalysis$scores3.mean_percentage,
|
|
96
|
-
suffix: "%"
|
|
97
|
-
}));
|
|
98
|
-
};
|
|
10
|
+
var _presenter = require("./presenter.js");
|
|
99
11
|
|
|
100
|
-
|
|
101
|
-
}
|
|
12
|
+
var _withAnalysisState = _interopRequireDefault(require("../withAnalysisState.js"));
|
|
102
13
|
|
|
103
|
-
|
|
104
|
-
key: "renderContent",
|
|
105
|
-
value: function renderContent() {
|
|
106
|
-
var _this$props = this.props,
|
|
107
|
-
name = _this$props.name,
|
|
108
|
-
href = _this$props.href,
|
|
109
|
-
quizAnalysis = _this$props.quizAnalysis;
|
|
110
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
111
|
-
size: "medium",
|
|
112
|
-
weight: "bold"
|
|
113
|
-
}, name), this.renderMetrics(), /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
114
|
-
direction: "row",
|
|
115
|
-
justifyItems: "space-between"
|
|
116
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
117
|
-
className: styles.dateContainer
|
|
118
|
-
}, /*#__PURE__*/_react.default.createElement(_index3.AnalysisUpdateDate, {
|
|
119
|
-
date: quizAnalysis.created_timestamp,
|
|
120
|
-
multiline: true
|
|
121
|
-
})), /*#__PURE__*/_react.default.createElement(_uiLink.Link, {
|
|
122
|
-
href: href
|
|
123
|
-
}, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
124
|
-
size: "small"
|
|
125
|
-
}, (0, _formatMessage.default)('View Report')))));
|
|
126
|
-
}
|
|
127
|
-
}, {
|
|
128
|
-
key: "render",
|
|
129
|
-
value: function render() {
|
|
130
|
-
return /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
131
|
-
className: styles.card
|
|
132
|
-
}, this.props.quizAnalysis ? this.renderContent() : _ref);
|
|
133
|
-
}
|
|
134
|
-
}]);
|
|
135
|
-
NewQuizAndItemAnalysisReportCard.displayName = "NewQuizAndItemAnalysisReportCard";
|
|
136
|
-
return NewQuizAndItemAnalysisReportCard;
|
|
137
|
-
}(_react.Component), _class2.propTypes = {
|
|
138
|
-
name: _propTypes.default.node,
|
|
139
|
-
href: _propTypes.default.string,
|
|
140
|
-
quizAnalysis: _propTypes2.quizAnalysisPropType
|
|
141
|
-
}, _class2.defaultProps = {
|
|
142
|
-
name: void 0,
|
|
143
|
-
href: void 0,
|
|
144
|
-
quizAnalysis: {}
|
|
145
|
-
}, _temp)) || _class);
|
|
14
|
+
var NewQuizAndItemAnalysisReportCard = (0, _withAnalysisState.default)(_presenter.NewQuizAndItemAnalysisReportCardPresenter);
|
|
146
15
|
exports.NewQuizAndItemAnalysisReportCard = NewQuizAndItemAnalysisReportCard;
|
|
147
16
|
var _default = NewQuizAndItemAnalysisReportCard;
|
|
148
17
|
exports.default = _default;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.NewQuizAndItemAnalysisReportCardPresenter = void 0;
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
19
|
+
|
|
20
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
+
|
|
22
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
23
|
+
|
|
24
|
+
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
25
|
+
|
|
26
|
+
var _uiText = require("@instructure/ui-text");
|
|
27
|
+
|
|
28
|
+
var _uiLink = require("@instructure/ui-link");
|
|
29
|
+
|
|
30
|
+
var _uiFlex = require("@instructure/ui-flex");
|
|
31
|
+
|
|
32
|
+
var _uiThemeable = require("@instructure/ui-themeable");
|
|
33
|
+
|
|
34
|
+
var _index = _interopRequireDefault(require("../../../../../common/components/shared/Card/index.js"));
|
|
35
|
+
|
|
36
|
+
var _theme = _interopRequireDefault(require("./theme.js"));
|
|
37
|
+
|
|
38
|
+
var _index2 = _interopRequireDefault(require("../AnalysisMetric/index.js"));
|
|
39
|
+
|
|
40
|
+
var _Spinner = _interopRequireDefault(require("../../../../../common/components/shared/spinner/Spinner.js"));
|
|
41
|
+
|
|
42
|
+
var _index3 = require("../AnalysisUpdateDate/index.js");
|
|
43
|
+
|
|
44
|
+
var _propTypes2 = require("../propTypes.js");
|
|
45
|
+
|
|
46
|
+
var _dec, _class, _class2, _temp;
|
|
47
|
+
|
|
48
|
+
var styles = {
|
|
49
|
+
componentId: 'eJSiT',
|
|
50
|
+
template: function template(theme) {
|
|
51
|
+
return "\n\n.eJSiT_bqdH{column-gap:5px;display:flex;justify-content:space-between;padding:".concat(theme.metricsPadding || 'inherit', " 0}\n\n.eJSiT_fbIL{border-radius:").concat(theme.cardBorderRadius || 'inherit', ";box-shadow:").concat(theme.cardBoxShadow || 'inherit', ";display:inline-flex;flex-direction:column;margin:").concat(theme.cardMargin || 'inherit', ";padding:").concat(theme.cardPadding || 'inherit', ";width:").concat(theme.cardWidth || 'inherit', "}\n\n.eJSiT_blRb{max-width:160px;padding-right:10px}");
|
|
52
|
+
},
|
|
53
|
+
'metricsContainer': 'eJSiT_bqdH',
|
|
54
|
+
'card': 'eJSiT_fbIL',
|
|
55
|
+
'dateContainer': 'eJSiT_blRb'
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
var _ref = /*#__PURE__*/_react.default.createElement(_Spinner.default, null);
|
|
59
|
+
|
|
60
|
+
var NewQuizAndItemAnalysisReportCardPresenter = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
61
|
+
(0, _inherits2.default)(NewQuizAndItemAnalysisReportCardPresenter, _Component);
|
|
62
|
+
|
|
63
|
+
var _super = (0, _createSuper2.default)(NewQuizAndItemAnalysisReportCardPresenter);
|
|
64
|
+
|
|
65
|
+
function NewQuizAndItemAnalysisReportCardPresenter() {
|
|
66
|
+
var _this;
|
|
67
|
+
|
|
68
|
+
(0, _classCallCheck2.default)(this, NewQuizAndItemAnalysisReportCardPresenter);
|
|
69
|
+
|
|
70
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
71
|
+
args[_key] = arguments[_key];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
75
|
+
|
|
76
|
+
_this.renderMetrics = function () {
|
|
77
|
+
var _quizAnalysis$scores, _quizAnalysis$scores2, _quizAnalysis$scores3;
|
|
78
|
+
|
|
79
|
+
var quizAnalysis = _this.props.quizAnalysis;
|
|
80
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
+
className: styles.metricsContainer
|
|
82
|
+
}, /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
83
|
+
metricKey: "highscore",
|
|
84
|
+
label: (0, _formatMessage.default)('high score'),
|
|
85
|
+
value: (_quizAnalysis$scores = quizAnalysis.scores) === null || _quizAnalysis$scores === void 0 ? void 0 : _quizAnalysis$scores.max_percentage,
|
|
86
|
+
suffix: "%"
|
|
87
|
+
}), /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
88
|
+
metricKey: "lowscore",
|
|
89
|
+
label: (0, _formatMessage.default)('low score'),
|
|
90
|
+
value: (_quizAnalysis$scores2 = quizAnalysis.scores) === null || _quizAnalysis$scores2 === void 0 ? void 0 : _quizAnalysis$scores2.min_percentage,
|
|
91
|
+
suffix: "%"
|
|
92
|
+
}), /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
93
|
+
metricKey: "meanscore",
|
|
94
|
+
label: (0, _formatMessage.default)('mean score'),
|
|
95
|
+
value: (_quizAnalysis$scores3 = quizAnalysis.scores) === null || _quizAnalysis$scores3 === void 0 ? void 0 : _quizAnalysis$scores3.mean_percentage,
|
|
96
|
+
suffix: "%"
|
|
97
|
+
}));
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
return _this;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
(0, _createClass2.default)(NewQuizAndItemAnalysisReportCardPresenter, [{
|
|
104
|
+
key: "renderContent",
|
|
105
|
+
value: function renderContent() {
|
|
106
|
+
var _this$props = this.props,
|
|
107
|
+
name = _this$props.name,
|
|
108
|
+
href = _this$props.href,
|
|
109
|
+
quizAnalysis = _this$props.quizAnalysis;
|
|
110
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
111
|
+
size: "medium",
|
|
112
|
+
weight: "bold"
|
|
113
|
+
}, name), this.renderMetrics(), /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
114
|
+
direction: "row",
|
|
115
|
+
justifyItems: "space-between"
|
|
116
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
117
|
+
className: styles.dateContainer
|
|
118
|
+
}, /*#__PURE__*/_react.default.createElement(_index3.AnalysisUpdateDate, {
|
|
119
|
+
date: quizAnalysis.created_timestamp,
|
|
120
|
+
multiline: true
|
|
121
|
+
})), /*#__PURE__*/_react.default.createElement(_uiLink.Link, {
|
|
122
|
+
href: href
|
|
123
|
+
}, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
124
|
+
size: "small"
|
|
125
|
+
}, (0, _formatMessage.default)('View Report')))));
|
|
126
|
+
}
|
|
127
|
+
}, {
|
|
128
|
+
key: "render",
|
|
129
|
+
value: function render() {
|
|
130
|
+
return /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
131
|
+
className: styles.card
|
|
132
|
+
}, this.props.quizAnalysis ? this.renderContent() : _ref);
|
|
133
|
+
}
|
|
134
|
+
}]);
|
|
135
|
+
NewQuizAndItemAnalysisReportCardPresenter.displayName = "NewQuizAndItemAnalysisReportCardPresenter";
|
|
136
|
+
return NewQuizAndItemAnalysisReportCardPresenter;
|
|
137
|
+
}(_react.Component), _class2.propTypes = {
|
|
138
|
+
name: _propTypes.default.node,
|
|
139
|
+
href: _propTypes.default.string,
|
|
140
|
+
quizAnalysis: _propTypes2.quizAnalysisPropType
|
|
141
|
+
}, _class2.defaultProps = {
|
|
142
|
+
name: void 0,
|
|
143
|
+
href: void 0,
|
|
144
|
+
quizAnalysis: void 0
|
|
145
|
+
}, _temp)) || _class);
|
|
146
|
+
exports.NewQuizAndItemAnalysisReportCardPresenter = NewQuizAndItemAnalysisReportCardPresenter;
|
|
@@ -1,27 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.mapStateToProps = mapStateToProps;
|
|
7
8
|
exports.default = exports.NewQuizAndItemAnalysis = void 0;
|
|
8
9
|
|
|
9
10
|
var _presenter = require("./presenter.js");
|
|
10
11
|
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
var _newQuizAnalysis = require("../../../api/newQuizAnalysis.js");
|
|
14
|
-
|
|
15
|
-
var _newItemAnalyses = require("../../../api/newItemAnalyses.js");
|
|
16
|
-
|
|
17
|
-
function mapStateToProps(_state) {
|
|
18
|
-
return {
|
|
19
|
-
getQuizAnalysis: _newQuizAnalysis.getQuizAnalysis,
|
|
20
|
-
getItemAnalyses: _newItemAnalyses.getItemAnalyses
|
|
21
|
-
};
|
|
22
|
-
}
|
|
12
|
+
var _withAnalysisState = _interopRequireDefault(require("./withAnalysisState.js"));
|
|
23
13
|
|
|
24
|
-
var NewQuizAndItemAnalysis = (0,
|
|
14
|
+
var NewQuizAndItemAnalysis = (0, _withAnalysisState.default)(_presenter.NewQuizAndItemAnalysisPresenter);
|
|
25
15
|
exports.NewQuizAndItemAnalysis = NewQuizAndItemAnalysis;
|
|
26
16
|
var _default = NewQuizAndItemAnalysis;
|
|
27
17
|
exports.default = _default;
|