@instructure/quiz-core 17.58.2-rc.0 → 17.58.2-rc.10
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/banks/api/banks.js +35 -1
- package/es/banks/components/Bank/index.js +16 -7
- package/es/banks/components/Bank/presenter.js +198 -18
- package/es/building/components/layout/header/BuildingButtons/index.js +2 -0
- package/es/building/components/layout/header/BuildingButtons/presenter.js +8 -0
- package/es/building/components/resources/BanksTray/presenter.js +2 -1
- package/es/common/actions/sharedBanks.js +2 -2
- package/es/index.js +1 -0
- package/es/moderating/components/events/Event.js +1 -1
- package/es/moderating/components/resources/AccommodationsModal/index.js +1 -1
- package/es/moderating/components/resources/ModerateTable/presenter.js +2 -2
- package/es/moderating/components/resources/ModerateTableRow/index.js +1 -1
- package/es/reporting/components/charts/QuintileDistribution/presenter.js +15 -2
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/index.js +2 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +64 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +3 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/index.js +2 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +75 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +6 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +2 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +18 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +262 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +12 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +59 -58
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/index.js +68 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/index.js +2 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/presenter.js +84 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/theme.js +12 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +13 -18
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/utils.js +1 -1
- package/es/reporting/components/resources/ReportCard/index.js +1 -1
- package/lib/banks/api/banks.js +40 -2
- package/lib/banks/components/Bank/index.js +15 -2
- package/lib/banks/components/Bank/presenter.js +203 -17
- package/lib/building/components/layout/header/BuildingButtons/index.js +3 -0
- package/lib/building/components/layout/header/BuildingButtons/presenter.js +8 -0
- package/lib/building/components/resources/BanksTray/presenter.js +2 -1
- package/lib/common/actions/sharedBanks.js +2 -2
- package/lib/index.js +107 -98
- package/lib/moderating/components/events/Event.js +1 -1
- package/lib/moderating/components/resources/AccommodationsModal/index.js +1 -1
- package/lib/moderating/components/resources/ModerateTable/presenter.js +2 -2
- package/lib/moderating/components/resources/ModerateTableRow/index.js +1 -1
- package/lib/reporting/components/charts/QuintileDistribution/presenter.js +15 -2
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/index.js +11 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +83 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +10 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/index.js +11 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +95 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +13 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +11 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +27 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +291 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +19 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +64 -63
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/index.js +91 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/index.js +11 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/presenter.js +106 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/theme.js +19 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +15 -20
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/utils.js +1 -1
- package/lib/reporting/components/resources/ReportCard/index.js +1 -1
- package/package.json +9 -9
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js
CHANGED
|
@@ -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,41 +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
|
|
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"));
|
|
43
|
+
|
|
44
|
+
var _presenter = require("../charts/ScoreDistribution/presenter.js");
|
|
45
45
|
|
|
46
46
|
var _dec, _class, _class2, _temp;
|
|
47
47
|
|
|
48
48
|
var styles = {
|
|
49
|
-
componentId: '
|
|
49
|
+
componentId: 'ePPpE',
|
|
50
50
|
template: function template(theme) {
|
|
51
|
-
return "\n\n.
|
|
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}");
|
|
52
52
|
},
|
|
53
|
-
'heading': '
|
|
54
|
-
'cardWrapper': '
|
|
55
|
-
'container': '
|
|
56
|
-
'
|
|
57
|
-
'metricGroup': '
|
|
58
|
-
'metricsWrapper': '
|
|
59
|
-
'popoverContainer': 'bsfUh_dqHR',
|
|
60
|
-
'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'
|
|
61
59
|
};
|
|
62
60
|
var stdDevPopoverTexts = {
|
|
63
|
-
metricLabel: 'standard deviation',
|
|
64
61
|
title: 'Lorem ipsum ',
|
|
65
62
|
subtitle: 'subtitle',
|
|
66
63
|
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor',
|
|
67
64
|
screenReaderLabel: 'standard deviation tooltip'
|
|
68
65
|
};
|
|
69
66
|
var cronbachsAlphaPopoverTexts = {
|
|
70
|
-
metricLabel: 'cronbach\'s alpha',
|
|
71
67
|
title: 'Lorem ipsum ',
|
|
72
68
|
subtitle: 'subtitle',
|
|
73
69
|
body: 'cronbach\'s alpha description',
|
|
@@ -107,50 +103,28 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
107
103
|
className: styles.container
|
|
108
104
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
109
105
|
className: styles.metricGroup
|
|
110
|
-
},
|
|
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
|
+
})));
|
|
111
122
|
};
|
|
112
123
|
|
|
113
124
|
return _this;
|
|
114
125
|
}
|
|
115
126
|
|
|
116
127
|
(0, _createClass2.default)(NewQuizAnalysis, [{
|
|
117
|
-
key: "renderLabelWithPopover",
|
|
118
|
-
value: function renderLabelWithPopover(texts) {
|
|
119
|
-
return /*#__PURE__*/_react.default.createElement("span", {
|
|
120
|
-
className: styles.metricLabel
|
|
121
|
-
}, texts.metricLabel, /*#__PURE__*/_react.default.createElement("span", {
|
|
122
|
-
className: styles.popoverContainer
|
|
123
|
-
}, /*#__PURE__*/_react.default.createElement(_index2.default, texts)));
|
|
124
|
-
}
|
|
125
|
-
}, {
|
|
126
|
-
key: "renderMetric",
|
|
127
|
-
value: function renderMetric(key, label, value, suffix) {
|
|
128
|
-
return /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
|
|
129
|
-
theme: {
|
|
130
|
-
valueFontWeight: 500
|
|
131
|
-
},
|
|
132
|
-
textAlign: "start",
|
|
133
|
-
key: key,
|
|
134
|
-
renderLabel: /*#__PURE__*/_react.default.createElement("span", {
|
|
135
|
-
className: styles.metricLabel
|
|
136
|
-
}, label),
|
|
137
|
-
renderValue: (0, _utils.getSanitizedMetricValue)(value, suffix)
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
}, {
|
|
141
|
-
key: "renderMetricWithPopover",
|
|
142
|
-
value: function renderMetricWithPopover(key, texts, value) {
|
|
143
|
-
return /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
|
|
144
|
-
theme: {
|
|
145
|
-
valueFontWeight: 500
|
|
146
|
-
},
|
|
147
|
-
textAlign: "start",
|
|
148
|
-
key: key,
|
|
149
|
-
renderLabel: this.renderLabelWithPopover(texts),
|
|
150
|
-
renderValue: (0, _utils.getSanitizedMetricValue)(value)
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
}, {
|
|
154
128
|
key: "render",
|
|
155
129
|
value: function render() {
|
|
156
130
|
var quizAnalysis = this.props.quizAnalysis;
|
|
@@ -158,7 +132,7 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
158
132
|
attempts = quizAnalysis.attempts,
|
|
159
133
|
metadata = quizAnalysis.metadata;
|
|
160
134
|
var expanded = this.state.expanded;
|
|
161
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
135
|
+
return /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
162
136
|
className: styles.cardWrapper
|
|
163
137
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
164
138
|
className: styles.heading
|
|
@@ -169,15 +143,40 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
169
143
|
className: styles.metricGroup
|
|
170
144
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
171
145
|
className: styles.metricsWrapper
|
|
172
|
-
},
|
|
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", {
|
|
173
162
|
className: styles.metricsWrapper
|
|
174
|
-
},
|
|
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", {
|
|
175
172
|
className: styles.expandButtonContainer
|
|
176
173
|
}, /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
177
174
|
onClick: this.handleToggle,
|
|
178
175
|
title: expanded ? (0, _formatMessage.default)('collapse quiz analysis') : (0, _formatMessage.default)('expand quiz analysis'),
|
|
179
176
|
isExpanded: expanded
|
|
180
|
-
}))), expanded && this.renderExpanded(), /*#__PURE__*/_react.default.createElement(
|
|
177
|
+
}))), expanded && this.renderExpanded(), /*#__PURE__*/_react.default.createElement(_presenter.ScoreDistribution, {
|
|
178
|
+
decileDistribution: quizAnalysis.scores.decile_distribution
|
|
179
|
+
}), /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
181
180
|
size: "x-small"
|
|
182
181
|
}, _ref, /*#__PURE__*/_react.default.createElement("b", null, (0, _formatMessage.default)('Data Last Updated:')), "\xA0", _formatMessage.default.date(Date.parse(quizAnalysis.created_timestamp), 'medium')));
|
|
183
182
|
}
|
|
@@ -186,10 +185,10 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
186
185
|
return NewQuizAnalysis;
|
|
187
186
|
}(_react.Component), _class2.propTypes = {
|
|
188
187
|
quizAnalysis: _propTypes.default.shape({
|
|
189
|
-
created_timestamp: _propTypes.default.string,
|
|
188
|
+
created_timestamp: _propTypes.default.string.isRequired,
|
|
190
189
|
metadata: _propTypes.default.shape({
|
|
191
190
|
quiz_title: _propTypes.default.string
|
|
192
|
-
}),
|
|
191
|
+
}).isRequired,
|
|
193
192
|
scores: _propTypes.default.shape({
|
|
194
193
|
decile_distribution: _propTypes.default.arrayOf(_propTypes.default.number),
|
|
195
194
|
cronbachs_alpha: _propTypes.default.number,
|
|
@@ -207,5 +206,7 @@ var NewQuizAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
207
206
|
average_attempts: _propTypes.default.number
|
|
208
207
|
}).isRequired
|
|
209
208
|
}).isRequired
|
|
209
|
+
}, _class2.defaultProps = {
|
|
210
|
+
quizAnalysis: {}
|
|
210
211
|
}, _temp)) || _class);
|
|
211
212
|
exports.NewQuizAnalysis = NewQuizAnalysis;
|
|
@@ -0,0 +1,91 @@
|
|
|
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.default = exports.NewQuizAndItemAnalysisReportCard = 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("../../ReportCard/theme.js"));
|
|
37
|
+
|
|
38
|
+
var _dec, _class, _class2, _temp;
|
|
39
|
+
|
|
40
|
+
var styles = {
|
|
41
|
+
componentId: 'eRzKS',
|
|
42
|
+
template: function template(theme) {
|
|
43
|
+
return "\n\n.eRzKS_fbIL{border-radius:".concat(theme.cardBorderRadius || 'inherit', ";box-shadow:").concat(theme.cardBoxShadow || 'inherit', ";display:inline-flex;flex-direction:column;height:").concat(theme.cardHeight || 'inherit', ";margin:").concat(theme.cardMargin || 'inherit', ";padding:").concat(theme.cardPadding || 'inherit', ";width:").concat(theme.cardWidth || 'inherit', "}\n\n.eRzKS_ebWM{padding-top:").concat(theme.detailPadding || 'inherit', "}");
|
|
44
|
+
},
|
|
45
|
+
'card': 'eRzKS_fbIL',
|
|
46
|
+
'details': 'eRzKS_ebWM'
|
|
47
|
+
};
|
|
48
|
+
var NewQuizAndItemAnalysisReportCard = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
49
|
+
(0, _inherits2.default)(NewQuizAndItemAnalysisReportCard, _Component);
|
|
50
|
+
|
|
51
|
+
var _super = (0, _createSuper2.default)(NewQuizAndItemAnalysisReportCard);
|
|
52
|
+
|
|
53
|
+
function NewQuizAndItemAnalysisReportCard() {
|
|
54
|
+
(0, _classCallCheck2.default)(this, NewQuizAndItemAnalysisReportCard);
|
|
55
|
+
return _super.apply(this, arguments);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
(0, _createClass2.default)(NewQuizAndItemAnalysisReportCard, [{
|
|
59
|
+
key: "render",
|
|
60
|
+
value: function render() {
|
|
61
|
+
var _this$props = this.props,
|
|
62
|
+
name = _this$props.name,
|
|
63
|
+
href = _this$props.href;
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
65
|
+
className: styles.card
|
|
66
|
+
}, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
67
|
+
direction: "column"
|
|
68
|
+
}, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, null, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
69
|
+
size: "medium",
|
|
70
|
+
weight: "bold"
|
|
71
|
+
}, name)), /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, {
|
|
72
|
+
align: "end"
|
|
73
|
+
}, /*#__PURE__*/_react.default.createElement(_uiLink.Link, {
|
|
74
|
+
href: href
|
|
75
|
+
}, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
76
|
+
size: "small"
|
|
77
|
+
}, (0, _formatMessage.default)('View Report'))))));
|
|
78
|
+
}
|
|
79
|
+
}]);
|
|
80
|
+
NewQuizAndItemAnalysisReportCard.displayName = "NewQuizAndItemAnalysisReportCard";
|
|
81
|
+
return NewQuizAndItemAnalysisReportCard;
|
|
82
|
+
}(_react.Component), _class2.propTypes = {
|
|
83
|
+
name: _propTypes.default.node,
|
|
84
|
+
href: _propTypes.default.string
|
|
85
|
+
}, _class2.defaultProps = {
|
|
86
|
+
name: void 0,
|
|
87
|
+
href: void 0
|
|
88
|
+
}, _temp)) || _class);
|
|
89
|
+
exports.NewQuizAndItemAnalysisReportCard = NewQuizAndItemAnalysisReportCard;
|
|
90
|
+
var _default = NewQuizAndItemAnalysisReportCard;
|
|
91
|
+
exports.default = _default;
|
|
@@ -0,0 +1,106 @@
|
|
|
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.ScoreDistribution = 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 _index = _interopRequireDefault(require("../../../../charts/QuintileDistribution/index.js"));
|
|
23
|
+
|
|
24
|
+
var _uiThemeable = require("@instructure/ui-themeable");
|
|
25
|
+
|
|
26
|
+
var _theme = _interopRequireDefault(require("./theme.js"));
|
|
27
|
+
|
|
28
|
+
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
29
|
+
|
|
30
|
+
var _uiText = require("@instructure/ui-text");
|
|
31
|
+
|
|
32
|
+
var _uiHeading = require("@instructure/ui-heading");
|
|
33
|
+
|
|
34
|
+
var _index2 = _interopRequireDefault(require("../../../../charts/Legend/index.js"));
|
|
35
|
+
|
|
36
|
+
var _dec, _class, _temp;
|
|
37
|
+
|
|
38
|
+
var styles = {
|
|
39
|
+
componentId: 'eRgoL',
|
|
40
|
+
template: function template(theme) {
|
|
41
|
+
return "\n\n.eRgoL_YBfL{background-color:".concat(theme.legendRectFillColor || 'inherit', "}\n\n.eRgoL_eDZF{column-gap:10px;display:inline-flex;padding:").concat(theme.legendPadding || 'inherit', " 0}\n\n.eRgoL_dVXF{margin:").concat(theme.legendMargin || 'inherit', " 0}\n\n.eRgoL_dxZa,[dir=ltr] .eRgoL_dxZa,[dir=rtl] .eRgoL_dxZa{text-align:center}");
|
|
42
|
+
},
|
|
43
|
+
'legendRect': 'eRgoL_YBfL',
|
|
44
|
+
'legendContainer': 'eRgoL_eDZF',
|
|
45
|
+
'headingContainer': 'eRgoL_dVXF',
|
|
46
|
+
'chartLabel': 'eRgoL_dxZa'
|
|
47
|
+
};
|
|
48
|
+
var ScoreDistribution = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = /*#__PURE__*/function (_Component) {
|
|
49
|
+
(0, _inherits2.default)(ScoreDistribution, _Component);
|
|
50
|
+
|
|
51
|
+
var _super = (0, _createSuper2.default)(ScoreDistribution);
|
|
52
|
+
|
|
53
|
+
function ScoreDistribution() {
|
|
54
|
+
var _this;
|
|
55
|
+
|
|
56
|
+
(0, _classCallCheck2.default)(this, ScoreDistribution);
|
|
57
|
+
|
|
58
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
59
|
+
args[_key] = arguments[_key];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
63
|
+
|
|
64
|
+
_this.calculateLabelForColumn = function (index, length) {
|
|
65
|
+
var label = Math.floor(index * 100 / length);
|
|
66
|
+
return (0, _formatMessage.default)('{label, number}%', {
|
|
67
|
+
label: label
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
return _this;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
(0, _createClass2.default)(ScoreDistribution, [{
|
|
75
|
+
key: "render",
|
|
76
|
+
value: function render() {
|
|
77
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
78
|
+
className: styles.headingContainer
|
|
79
|
+
}, /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
|
|
80
|
+
level: "h2",
|
|
81
|
+
theme: {
|
|
82
|
+
h2FontWeight: 300
|
|
83
|
+
}
|
|
84
|
+
}, (0, _formatMessage.default)('Score Distribution'))), /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
85
|
+
animateDelay: 1000,
|
|
86
|
+
animateDuration: 1000,
|
|
87
|
+
visualDistribution: this.props.decileDistribution,
|
|
88
|
+
calculateLabelForColumn: this.calculateLabelForColumn
|
|
89
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
90
|
+
className: styles.chartLabel
|
|
91
|
+
}, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
92
|
+
size: "small"
|
|
93
|
+
}, (0, _formatMessage.default)('Score'))), /*#__PURE__*/_react.default.createElement("div", {
|
|
94
|
+
className: styles.legendContainer
|
|
95
|
+
}, /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
96
|
+
series: [{
|
|
97
|
+
className: styles.legendRect,
|
|
98
|
+
label: (0, _formatMessage.default)('Number of Students')
|
|
99
|
+
}]
|
|
100
|
+
})));
|
|
101
|
+
}
|
|
102
|
+
}]);
|
|
103
|
+
ScoreDistribution.displayName = "ScoreDistribution";
|
|
104
|
+
return ScoreDistribution;
|
|
105
|
+
}(_react.Component), _temp)) || _class);
|
|
106
|
+
exports.ScoreDistribution = ScoreDistribution;
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/theme.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = generator;
|
|
7
|
+
|
|
8
|
+
function generator(_ref) {
|
|
9
|
+
var colors = _ref.colors,
|
|
10
|
+
spacing = _ref.spacing,
|
|
11
|
+
typography = _ref.typography;
|
|
12
|
+
return {
|
|
13
|
+
legendRectFillColor: colors.electric,
|
|
14
|
+
legendPadding: spacing.small,
|
|
15
|
+
legendBorderColor: colors.ash,
|
|
16
|
+
legendFontSize: typography.fontSizeXSmall,
|
|
17
|
+
legendMargin: spacing.medium
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -21,11 +21,11 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
21
21
|
|
|
22
22
|
var _uiHeading = require("@instructure/ui-heading");
|
|
23
23
|
|
|
24
|
-
var
|
|
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
|
|
28
|
+
var _index2 = _interopRequireDefault(require("./NewQuizAnalysis/index.js"));
|
|
29
29
|
|
|
30
30
|
var _ref5 = /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
|
|
31
31
|
level: "h3",
|
|
@@ -62,7 +62,10 @@ var NewQuizAndItemAnalysis = function NewQuizAndItemAnalysis(_ref) {
|
|
|
62
62
|
|
|
63
63
|
case 2:
|
|
64
64
|
response = _context.sent;
|
|
65
|
-
|
|
65
|
+
|
|
66
|
+
if (response) {
|
|
67
|
+
setQuizAnalysis(response.last_successful_analysis);
|
|
68
|
+
}
|
|
66
69
|
|
|
67
70
|
case 4:
|
|
68
71
|
case "end":
|
|
@@ -92,7 +95,10 @@ var NewQuizAndItemAnalysis = function NewQuizAndItemAnalysis(_ref) {
|
|
|
92
95
|
|
|
93
96
|
case 2:
|
|
94
97
|
response = _context2.sent;
|
|
95
|
-
|
|
98
|
+
|
|
99
|
+
if (response) {
|
|
100
|
+
setItemAnalyses(response.last_successful_analysis);
|
|
101
|
+
}
|
|
96
102
|
|
|
97
103
|
case 4:
|
|
98
104
|
case "end":
|
|
@@ -110,7 +116,7 @@ var NewQuizAndItemAnalysis = function NewQuizAndItemAnalysis(_ref) {
|
|
|
110
116
|
fetch();
|
|
111
117
|
}, []);
|
|
112
118
|
|
|
113
|
-
var _ref4 = /*#__PURE__*/_react.default.createElement(
|
|
119
|
+
var _ref4 = /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
114
120
|
quizAnalysis: quizAnalysis
|
|
115
121
|
});
|
|
116
122
|
|
|
@@ -119,21 +125,10 @@ var NewQuizAndItemAnalysis = function NewQuizAndItemAnalysis(_ref) {
|
|
|
119
125
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
120
126
|
className: "fs-mask"
|
|
121
127
|
}, _ref4, _ref5, itemAnalyses === null || itemAnalyses === void 0 ? void 0 : itemAnalyses.map(function (itemAnalysis) {
|
|
122
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
123
|
-
key: itemAnalysis.metadata.item_id
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
renderLabel: "ITEM DIFFICULTY",
|
|
127
|
-
renderValue: itemAnalysis.scores.difficulty_index
|
|
128
|
-
}), /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
|
|
129
|
-
key: "responded",
|
|
130
|
-
renderLabel: "RESPONDED",
|
|
131
|
-
renderValue: itemAnalysis.attempts.students_responded
|
|
132
|
-
}), /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
|
|
133
|
-
key: "skipped",
|
|
134
|
-
renderLabel: "SKIPPED/NO RESPONSE",
|
|
135
|
-
renderValue: itemAnalysis.attempts.students_without_response
|
|
136
|
-
}));
|
|
128
|
+
return /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
129
|
+
key: itemAnalysis.metadata.item_id,
|
|
130
|
+
itemAnalysis: itemAnalysis
|
|
131
|
+
});
|
|
137
132
|
}));
|
|
138
133
|
/* eslint-enable react/jsx-no-literals */
|
|
139
134
|
}; // TODO: distinguish between loading and empty item analyses (eg. when there is no items in a quiz)
|
|
@@ -14,7 +14,7 @@ var getSanitizedMetricValue = function getSanitizedMetricValue(value, suffix) {
|
|
|
14
14
|
return (0, _formatMessage.default)('N/A');
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
return value +
|
|
17
|
+
return suffix ? value + suffix : value;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
exports.getSanitizedMetricValue = getSanitizedMetricValue;
|
|
@@ -34,7 +34,7 @@ var _theme = _interopRequireDefault(require("./theme.js"));
|
|
|
34
34
|
var _dec, _class, _class2, _temp;
|
|
35
35
|
|
|
36
36
|
var styles = {
|
|
37
|
-
componentId: '
|
|
37
|
+
componentId: 'cNnNG',
|
|
38
38
|
template: function template(theme) {
|
|
39
39
|
return "\n\n.eRzKS_fbIL{border-radius:".concat(theme.cardBorderRadius || 'inherit', ";box-shadow:").concat(theme.cardBoxShadow || 'inherit', ";display:inline-flex;flex-direction:column;height:").concat(theme.cardHeight || 'inherit', ";margin:").concat(theme.cardMargin || 'inherit', ";padding:").concat(theme.cardPadding || 'inherit', ";width:").concat(theme.cardWidth || 'inherit', "}\n\n.eRzKS_ebWM{padding-top:").concat(theme.detailPadding || 'inherit', "}");
|
|
40
40
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "17.58.2-rc.
|
|
3
|
+
"version": "17.58.2-rc.10+b6c430be4",
|
|
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.
|
|
45
|
-
"@instructure/quiz-i18n": "17.58.2-rc.
|
|
46
|
-
"@instructure/quiz-interactions": "17.58.2-rc.
|
|
47
|
-
"@instructure/quiz-number-input": "17.58.2-rc.
|
|
48
|
-
"@instructure/quiz-rce": "17.58.2-rc.
|
|
44
|
+
"@instructure/quiz-common": "17.58.2-rc.10+b6c430be4",
|
|
45
|
+
"@instructure/quiz-i18n": "17.58.2-rc.10+b6c430be4",
|
|
46
|
+
"@instructure/quiz-interactions": "17.58.2-rc.10+b6c430be4",
|
|
47
|
+
"@instructure/quiz-number-input": "17.58.2-rc.10+b6c430be4",
|
|
48
|
+
"@instructure/quiz-rce": "17.58.2-rc.10+b6c430be4",
|
|
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.
|
|
109
|
+
"instructure-validations": "17.58.2-rc.10+b6c430be4",
|
|
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.
|
|
159
|
+
"quiz-presets": "17.58.2-rc.10+b6c430be4",
|
|
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": "
|
|
175
|
+
"gitHead": "b6c430be4cf04253136b888dbfb9850388e052aa"
|
|
176
176
|
}
|