@instructure/quiz-core 17.60.0 → 17.60.1-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/banks/components/Banks/presenter.js +1 -0
- package/es/banks/components/BanksList/presenter.js +1 -0
- package/es/banks/components/SharingModal/presenter.js +2 -2
- package/es/building/components/resources/BanksTray/presenter.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisUpdateDate/index.js +53 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +2 -23
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/index.js +72 -20
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/theme.js +12 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +4 -12
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +23 -0
- package/es/reporting/components/resources/ReportCard/index.js +1 -1
- package/lib/banks/components/Banks/presenter.js +1 -0
- package/lib/banks/components/BanksList/presenter.js +1 -0
- package/lib/banks/components/SharingModal/presenter.js +2 -2
- package/lib/building/components/resources/BanksTray/presenter.js +1 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisUpdateDate/index.js +74 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +3 -24
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/index.js +77 -20
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/theme.js +19 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +4 -13
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +35 -0
- package/lib/reporting/components/resources/ReportCard/index.js +1 -1
- package/package.json +10 -10
|
@@ -377,6 +377,7 @@ export var Banks = (_dec = themeable(theme, styles), _dec(_class = (_temp = _cla
|
|
|
377
377
|
closeTray: PropTypes.func,
|
|
378
378
|
createBank: PropTypes.func.isRequired,
|
|
379
379
|
currentUser: PropTypes.shape({
|
|
380
|
+
bank_admin: PropTypes.bool,
|
|
380
381
|
email: PropTypes.string,
|
|
381
382
|
enrollment_names: PropTypes.arrayOf(PropTypes.string),
|
|
382
383
|
full_name: PropTypes.string,
|
|
@@ -328,6 +328,7 @@ export var BanksList = (_dec = themeable(theme, styles), _dec(_class = (_temp =
|
|
|
328
328
|
appContainer: CustomPropTypes.selectors.isRequired,
|
|
329
329
|
banks: ImmutablePropTypes.list.isRequired,
|
|
330
330
|
currentUser: PropTypes.shape({
|
|
331
|
+
bank_admin: PropTypes.bool,
|
|
331
332
|
email: PropTypes.string,
|
|
332
333
|
enrollment_names: PropTypes.arrayOf(PropTypes.string),
|
|
333
334
|
full_name: PropTypes.string,
|
|
@@ -453,9 +453,8 @@ export var SharingModalPresenter = (_dec = themeable(theme, styles), _dec(_class
|
|
|
453
453
|
var _this$props2 = this.props,
|
|
454
454
|
currentUser = _this$props2.currentUser,
|
|
455
455
|
improvedBankSharingEnabled = _this$props2.improvedBankSharingEnabled;
|
|
456
|
-
var roles = currentUser && currentUser.enrollment_names || [];
|
|
457
456
|
|
|
458
|
-
if (improvedBankSharingEnabled &&
|
|
457
|
+
if (improvedBankSharingEnabled && (currentUser === null || currentUser === void 0 ? void 0 : currentUser.bank_admin)) {
|
|
459
458
|
return /*#__PURE__*/React.createElement(View, {
|
|
460
459
|
as: "div",
|
|
461
460
|
margin: "0 0 medium 0"
|
|
@@ -555,6 +554,7 @@ export var SharingModalPresenter = (_dec = themeable(theme, styles), _dec(_class
|
|
|
555
554
|
appContainer: CustomPropTypes.selectors.isRequired,
|
|
556
555
|
bank: ImmutablePropTypes.record.isRequired,
|
|
557
556
|
currentUser: PropTypes.shape({
|
|
557
|
+
bank_admin: PropTypes.bool,
|
|
558
558
|
email: PropTypes.string,
|
|
559
559
|
enrollment_names: PropTypes.arrayOf(PropTypes.string),
|
|
560
560
|
full_name: PropTypes.string,
|
|
@@ -170,6 +170,7 @@ BanksTray.propTypes = {
|
|
|
170
170
|
activeBankEntryId: PropTypes.string,
|
|
171
171
|
clear: PropTypes.func.isRequired,
|
|
172
172
|
currentUser: PropTypes.shape({
|
|
173
|
+
bank_admin: PropTypes.bool,
|
|
173
174
|
email: PropTypes.string,
|
|
174
175
|
enrollment_names: PropTypes.arrayOf(PropTypes.string),
|
|
175
176
|
full_name: PropTypes.string,
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
4
|
+
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
|
+
import React, { Component } from 'react';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import t from '@instructure/quiz-i18n/es/format-message';
|
|
8
|
+
import { displayDateAndTimeInTimezone } from "../../../../../common/util/formatTimespan.js";
|
|
9
|
+
import { Text } from '@instructure/ui-text';
|
|
10
|
+
import { Flex } from '@instructure/ui-flex';
|
|
11
|
+
export var AnalysisUpdateDate = /*#__PURE__*/function (_Component) {
|
|
12
|
+
_inherits(AnalysisUpdateDate, _Component);
|
|
13
|
+
|
|
14
|
+
var _super = _createSuper(AnalysisUpdateDate);
|
|
15
|
+
|
|
16
|
+
function AnalysisUpdateDate() {
|
|
17
|
+
_classCallCheck(this, AnalysisUpdateDate);
|
|
18
|
+
|
|
19
|
+
return _super.apply(this, arguments);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
_createClass(AnalysisUpdateDate, [{
|
|
23
|
+
key: "render",
|
|
24
|
+
value: function render() {
|
|
25
|
+
var _this$context = this.context,
|
|
26
|
+
timezone = _this$context.timezone,
|
|
27
|
+
locale = _this$context.locale;
|
|
28
|
+
var _this$props = this.props,
|
|
29
|
+
date = _this$props.date,
|
|
30
|
+
multiline = _this$props.multiline;
|
|
31
|
+
return /*#__PURE__*/React.createElement(Text, {
|
|
32
|
+
size: "x-small"
|
|
33
|
+
}, /*#__PURE__*/React.createElement(Flex, {
|
|
34
|
+
direction: multiline ? 'column' : 'row',
|
|
35
|
+
alignItems: "start"
|
|
36
|
+
}, /*#__PURE__*/React.createElement("b", null, t('Data Last Updated:'), "\xA0"), /*#__PURE__*/React.createElement("span", null, displayDateAndTimeInTimezone(date, timezone, locale))));
|
|
37
|
+
}
|
|
38
|
+
}]);
|
|
39
|
+
|
|
40
|
+
AnalysisUpdateDate.displayName = "AnalysisUpdateDate";
|
|
41
|
+
return AnalysisUpdateDate;
|
|
42
|
+
}(Component);
|
|
43
|
+
AnalysisUpdateDate.propTypes = {
|
|
44
|
+
date: PropTypes.string.isRequired,
|
|
45
|
+
multiline: PropTypes.bool
|
|
46
|
+
};
|
|
47
|
+
AnalysisUpdateDate.contextTypes = {
|
|
48
|
+
timezone: PropTypes.string,
|
|
49
|
+
locale: PropTypes.string
|
|
50
|
+
};
|
|
51
|
+
AnalysisUpdateDate.defaultProps = {
|
|
52
|
+
multiline: false
|
|
53
|
+
};
|
package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js
CHANGED
|
@@ -24,11 +24,11 @@ import ExpandButton from "../../../../../common/components/shared/ExpandButton/i
|
|
|
24
24
|
import { themeable } from '@instructure/ui-themeable';
|
|
25
25
|
import theme from "./theme.js";
|
|
26
26
|
import { formatTimeToFullNumeric } from "../../../../../common/util/formatTimespan.js";
|
|
27
|
-
import PropTypes from 'prop-types';
|
|
28
27
|
import Card from "../../../../../common/components/shared/Card/index.js";
|
|
29
28
|
import AnalysisPopoverMetric from "../AnalysisPopoverMetric/index.js";
|
|
30
29
|
import AnalysisMetric from "../AnalysisMetric/index.js";
|
|
31
30
|
import { ScoreDistribution } from "../charts/ScoreDistribution/presenter.js";
|
|
31
|
+
import { quizAnalysisPropType } from "../propTypes.js";
|
|
32
32
|
var stdDevPopoverTexts = {
|
|
33
33
|
title: 'Lorem ipsum ',
|
|
34
34
|
subtitle: 'subtitle',
|
|
@@ -152,28 +152,7 @@ export var NewQuizAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
|
|
|
152
152
|
NewQuizAnalysis.displayName = "NewQuizAnalysis";
|
|
153
153
|
return NewQuizAnalysis;
|
|
154
154
|
}(Component), _class2.propTypes = {
|
|
155
|
-
quizAnalysis:
|
|
156
|
-
created_timestamp: PropTypes.string.isRequired,
|
|
157
|
-
metadata: PropTypes.shape({
|
|
158
|
-
quiz_title: PropTypes.string
|
|
159
|
-
}).isRequired,
|
|
160
|
-
scores: PropTypes.shape({
|
|
161
|
-
decile_distribution: PropTypes.arrayOf(PropTypes.number),
|
|
162
|
-
cronbachs_alpha: PropTypes.number,
|
|
163
|
-
stddev: PropTypes.number,
|
|
164
|
-
median_percentage: PropTypes.number,
|
|
165
|
-
max_percentage: PropTypes.number,
|
|
166
|
-
min_percentage: PropTypes.number,
|
|
167
|
-
mean_percentage: PropTypes.number
|
|
168
|
-
}).isRequired,
|
|
169
|
-
attempts: PropTypes.shape({
|
|
170
|
-
mean_elapsed_sec: PropTypes.number,
|
|
171
|
-
students_completed: PropTypes.number,
|
|
172
|
-
students_not_finished: PropTypes.number,
|
|
173
|
-
students_without_attempt: PropTypes.number,
|
|
174
|
-
average_attempts: PropTypes.number
|
|
175
|
-
}).isRequired
|
|
176
|
-
}).isRequired
|
|
155
|
+
quizAnalysis: quizAnalysisPropType
|
|
177
156
|
}, _class2.defaultProps = {
|
|
178
157
|
quizAnalysis: {}
|
|
179
158
|
}, _temp)) || _class);
|
|
@@ -14,45 +14,95 @@ import { Flex } from '@instructure/ui-flex';
|
|
|
14
14
|
import { themeable } from '@instructure/ui-themeable';
|
|
15
15
|
import Card from "../../../../../common/components/shared/Card/index.js";
|
|
16
16
|
var styles = {
|
|
17
|
-
componentId: '
|
|
17
|
+
componentId: 'eJSiT',
|
|
18
18
|
template: function template(theme) {
|
|
19
|
-
return "\n\n.
|
|
19
|
+
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}");
|
|
20
20
|
},
|
|
21
|
-
'
|
|
22
|
-
'
|
|
21
|
+
'metricsContainer': 'eJSiT_bqdH',
|
|
22
|
+
'card': 'eJSiT_fbIL',
|
|
23
|
+
'dateContainer': 'eJSiT_blRb'
|
|
23
24
|
};
|
|
24
|
-
import theme from "
|
|
25
|
+
import theme from "./theme.js";
|
|
26
|
+
import AnalysisMetric from "../AnalysisMetric/index.js";
|
|
27
|
+
import Spinner from "../../../../../common/components/shared/spinner/Spinner.js";
|
|
28
|
+
import { AnalysisUpdateDate } from "../AnalysisUpdateDate/index.js";
|
|
29
|
+
import { quizAnalysisPropType } from "../propTypes.js";
|
|
30
|
+
|
|
31
|
+
var _ref = /*#__PURE__*/React.createElement(Spinner, null);
|
|
32
|
+
|
|
25
33
|
export var NewQuizAndItemAnalysisReportCard = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
26
34
|
_inherits(NewQuizAndItemAnalysisReportCard, _Component);
|
|
27
35
|
|
|
28
36
|
var _super = _createSuper(NewQuizAndItemAnalysisReportCard);
|
|
29
37
|
|
|
30
38
|
function NewQuizAndItemAnalysisReportCard() {
|
|
39
|
+
var _this;
|
|
40
|
+
|
|
31
41
|
_classCallCheck(this, NewQuizAndItemAnalysisReportCard);
|
|
32
42
|
|
|
33
|
-
|
|
43
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
44
|
+
args[_key] = arguments[_key];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
48
|
+
|
|
49
|
+
_this.renderMetrics = function () {
|
|
50
|
+
var _quizAnalysis$scores, _quizAnalysis$scores2, _quizAnalysis$scores3;
|
|
51
|
+
|
|
52
|
+
var quizAnalysis = _this.props.quizAnalysis;
|
|
53
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
54
|
+
className: styles.metricsContainer
|
|
55
|
+
}, /*#__PURE__*/React.createElement(AnalysisMetric, {
|
|
56
|
+
metricKey: "highscore",
|
|
57
|
+
label: t('high score'),
|
|
58
|
+
value: (_quizAnalysis$scores = quizAnalysis.scores) === null || _quizAnalysis$scores === void 0 ? void 0 : _quizAnalysis$scores.max_percentage,
|
|
59
|
+
suffix: "%"
|
|
60
|
+
}), /*#__PURE__*/React.createElement(AnalysisMetric, {
|
|
61
|
+
metricKey: "lowscore",
|
|
62
|
+
label: t('low score'),
|
|
63
|
+
value: (_quizAnalysis$scores2 = quizAnalysis.scores) === null || _quizAnalysis$scores2 === void 0 ? void 0 : _quizAnalysis$scores2.min_percentage,
|
|
64
|
+
suffix: "%"
|
|
65
|
+
}), /*#__PURE__*/React.createElement(AnalysisMetric, {
|
|
66
|
+
metricKey: "meanscore",
|
|
67
|
+
label: t('mean score'),
|
|
68
|
+
value: (_quizAnalysis$scores3 = quizAnalysis.scores) === null || _quizAnalysis$scores3 === void 0 ? void 0 : _quizAnalysis$scores3.mean_percentage,
|
|
69
|
+
suffix: "%"
|
|
70
|
+
}));
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
return _this;
|
|
34
74
|
}
|
|
35
75
|
|
|
36
76
|
_createClass(NewQuizAndItemAnalysisReportCard, [{
|
|
37
|
-
key: "
|
|
38
|
-
value: function
|
|
77
|
+
key: "renderContent",
|
|
78
|
+
value: function renderContent() {
|
|
39
79
|
var _this$props = this.props,
|
|
40
80
|
name = _this$props.name,
|
|
41
|
-
href = _this$props.href
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}, /*#__PURE__*/React.createElement(Flex, {
|
|
45
|
-
direction: "column"
|
|
46
|
-
}, /*#__PURE__*/React.createElement(Flex.Item, null, /*#__PURE__*/React.createElement(Text, {
|
|
81
|
+
href = _this$props.href,
|
|
82
|
+
quizAnalysis = _this$props.quizAnalysis;
|
|
83
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {
|
|
47
84
|
size: "medium",
|
|
48
85
|
weight: "bold"
|
|
49
|
-
}, name)), /*#__PURE__*/React.createElement(Flex
|
|
50
|
-
|
|
51
|
-
|
|
86
|
+
}, name), this.renderMetrics(), /*#__PURE__*/React.createElement(Flex, {
|
|
87
|
+
direction: "row",
|
|
88
|
+
justifyItems: "space-between"
|
|
89
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
90
|
+
className: styles.dateContainer
|
|
91
|
+
}, /*#__PURE__*/React.createElement(AnalysisUpdateDate, {
|
|
92
|
+
date: quizAnalysis.created_timestamp,
|
|
93
|
+
multiline: true
|
|
94
|
+
})), /*#__PURE__*/React.createElement(Link, {
|
|
52
95
|
href: href
|
|
53
96
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
54
97
|
size: "small"
|
|
55
|
-
}, t('View Report')))))
|
|
98
|
+
}, t('View Report')))));
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
key: "render",
|
|
102
|
+
value: function render() {
|
|
103
|
+
return /*#__PURE__*/React.createElement(Card, {
|
|
104
|
+
className: styles.card
|
|
105
|
+
}, this.props.quizAnalysis ? this.renderContent() : _ref);
|
|
56
106
|
}
|
|
57
107
|
}]);
|
|
58
108
|
|
|
@@ -60,9 +110,11 @@ export var NewQuizAndItemAnalysisReportCard = (_dec = themeable(theme, styles),
|
|
|
60
110
|
return NewQuizAndItemAnalysisReportCard;
|
|
61
111
|
}(Component), _class2.propTypes = {
|
|
62
112
|
name: PropTypes.node,
|
|
63
|
-
href: PropTypes.string
|
|
113
|
+
href: PropTypes.string,
|
|
114
|
+
quizAnalysis: quizAnalysisPropType
|
|
64
115
|
}, _class2.defaultProps = {
|
|
65
116
|
name: void 0,
|
|
66
|
-
href: void 0
|
|
117
|
+
href: void 0,
|
|
118
|
+
quizAnalysis: {}
|
|
67
119
|
}, _temp)) || _class);
|
|
68
120
|
export default NewQuizAndItemAnalysisReportCard;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default function generator(_ref) {
|
|
2
|
+
var spacing = _ref.spacing,
|
|
3
|
+
borders = _ref.borders;
|
|
4
|
+
return {
|
|
5
|
+
metricsPadding: spacing.medium,
|
|
6
|
+
cardWidth: '16rem',
|
|
7
|
+
cardPadding: spacing.medium,
|
|
8
|
+
cardMargin: spacing.xSmall,
|
|
9
|
+
cardBoxShadow: '1px 1px 3px 0 #ddd',
|
|
10
|
+
cardBorderRadius: borders.radiusMedium
|
|
11
|
+
};
|
|
12
|
+
}
|
|
@@ -11,9 +11,8 @@ import NewItemAnalysis from "./NewItemAnalysis/index.js";
|
|
|
11
11
|
import Spinner from "../../../../common/components/shared/spinner/Spinner.js";
|
|
12
12
|
import NewQuizAnalysis from "./NewQuizAnalysis/index.js";
|
|
13
13
|
import t from '@instructure/quiz-i18n/es/format-message';
|
|
14
|
-
import { Text } from '@instructure/ui-text';
|
|
15
14
|
import { Flex } from '@instructure/ui-flex';
|
|
16
|
-
import {
|
|
15
|
+
import { AnalysisUpdateDate } from "./AnalysisUpdateDate/index.js";
|
|
17
16
|
|
|
18
17
|
var _ref3 = /*#__PURE__*/React.createElement(Spinner, null);
|
|
19
18
|
|
|
@@ -101,18 +100,15 @@ export var NewQuizAndItemAnalysis = /*#__PURE__*/function (_Component) {
|
|
|
101
100
|
var _this$state = this.state,
|
|
102
101
|
quizAnalysis = _this$state.quizAnalysis,
|
|
103
102
|
itemAnalyses = _this$state.itemAnalyses;
|
|
104
|
-
var _this$context = this.context,
|
|
105
|
-
timezone = _this$context.timezone,
|
|
106
|
-
locale = _this$context.locale;
|
|
107
103
|
return /*#__PURE__*/React.createElement("div", {
|
|
108
104
|
className: "fs-mask"
|
|
109
105
|
}, /*#__PURE__*/React.createElement(Flex, {
|
|
110
106
|
justifyItems: "end",
|
|
111
107
|
width: "82.5rem",
|
|
112
108
|
margin: "auto"
|
|
113
|
-
}, /*#__PURE__*/React.createElement(
|
|
114
|
-
|
|
115
|
-
}
|
|
109
|
+
}, /*#__PURE__*/React.createElement(AnalysisUpdateDate, {
|
|
110
|
+
date: quizAnalysis.created_timestamp
|
|
111
|
+
})), /*#__PURE__*/React.createElement(NewQuizAnalysis, {
|
|
116
112
|
quizAnalysis: quizAnalysis
|
|
117
113
|
}), /*#__PURE__*/React.createElement(Heading, {
|
|
118
114
|
level: "h3",
|
|
@@ -142,10 +138,6 @@ export var NewQuizAndItemAnalysis = /*#__PURE__*/function (_Component) {
|
|
|
142
138
|
NewQuizAndItemAnalysis.displayName = "NewQuizAndItemAnalysis";
|
|
143
139
|
return NewQuizAndItemAnalysis;
|
|
144
140
|
}(Component);
|
|
145
|
-
NewQuizAndItemAnalysis.contextTypes = {
|
|
146
|
-
timezone: PropTypes.string,
|
|
147
|
-
locale: PropTypes.string
|
|
148
|
-
};
|
|
149
141
|
NewQuizAndItemAnalysis.propTypes = {
|
|
150
142
|
activeQuizId: PropTypes.string.isRequired,
|
|
151
143
|
getQuizAnalysis: PropTypes.func.isRequired,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
export var quizAnalysisPropType = PropTypes.shape({
|
|
3
|
+
created_timestamp: PropTypes.string.isRequired,
|
|
4
|
+
metadata: PropTypes.shape({
|
|
5
|
+
quiz_title: PropTypes.string
|
|
6
|
+
}).isRequired,
|
|
7
|
+
scores: PropTypes.shape({
|
|
8
|
+
decile_distribution: PropTypes.arrayOf(PropTypes.number),
|
|
9
|
+
cronbachs_alpha: PropTypes.number,
|
|
10
|
+
stddev: PropTypes.number,
|
|
11
|
+
median_percentage: PropTypes.number,
|
|
12
|
+
max_percentage: PropTypes.number,
|
|
13
|
+
min_percentage: PropTypes.number,
|
|
14
|
+
mean_percentage: PropTypes.number
|
|
15
|
+
}).isRequired,
|
|
16
|
+
attempts: PropTypes.shape({
|
|
17
|
+
mean_elapsed_sec: PropTypes.number,
|
|
18
|
+
students_completed: PropTypes.number,
|
|
19
|
+
students_not_finished: PropTypes.number,
|
|
20
|
+
students_without_attempt: PropTypes.number,
|
|
21
|
+
average_attempts: PropTypes.number
|
|
22
|
+
}).isRequired
|
|
23
|
+
}).isRequired;
|
|
@@ -12,7 +12,7 @@ import { Link } from '@instructure/ui-link';
|
|
|
12
12
|
import { themeable } from '@instructure/ui-themeable';
|
|
13
13
|
import Card from "../../../../common/components/shared/Card/index.js";
|
|
14
14
|
var styles = {
|
|
15
|
-
componentId: '
|
|
15
|
+
componentId: 'eRzKS',
|
|
16
16
|
template: function template(theme) {
|
|
17
17
|
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', "}");
|
|
18
18
|
},
|
|
@@ -416,6 +416,7 @@ var Banks = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_c
|
|
|
416
416
|
closeTray: _propTypes.default.func,
|
|
417
417
|
createBank: _propTypes.default.func.isRequired,
|
|
418
418
|
currentUser: _propTypes.default.shape({
|
|
419
|
+
bank_admin: _propTypes.default.bool,
|
|
419
420
|
email: _propTypes.default.string,
|
|
420
421
|
enrollment_names: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
421
422
|
full_name: _propTypes.default.string,
|
|
@@ -365,6 +365,7 @@ var BanksList = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _de
|
|
|
365
365
|
appContainer: _CustomPropTypes.default.selectors.isRequired,
|
|
366
366
|
banks: _reactImmutableProptypes.default.list.isRequired,
|
|
367
367
|
currentUser: _propTypes.default.shape({
|
|
368
|
+
bank_admin: _propTypes.default.bool,
|
|
368
369
|
email: _propTypes.default.string,
|
|
369
370
|
enrollment_names: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
370
371
|
full_name: _propTypes.default.string,
|
|
@@ -494,9 +494,8 @@ var SharingModalPresenter = (_dec = (0, _uiThemeable.themeable)(_theme.default,
|
|
|
494
494
|
var _this$props2 = this.props,
|
|
495
495
|
currentUser = _this$props2.currentUser,
|
|
496
496
|
improvedBankSharingEnabled = _this$props2.improvedBankSharingEnabled;
|
|
497
|
-
var roles = currentUser && currentUser.enrollment_names || [];
|
|
498
497
|
|
|
499
|
-
if (improvedBankSharingEnabled &&
|
|
498
|
+
if (improvedBankSharingEnabled && (currentUser === null || currentUser === void 0 ? void 0 : currentUser.bank_admin)) {
|
|
500
499
|
return /*#__PURE__*/_react.default.createElement(_uiView.View, {
|
|
501
500
|
as: "div",
|
|
502
501
|
margin: "0 0 medium 0"
|
|
@@ -595,6 +594,7 @@ var SharingModalPresenter = (_dec = (0, _uiThemeable.themeable)(_theme.default,
|
|
|
595
594
|
appContainer: _CustomPropTypes.default.selectors.isRequired,
|
|
596
595
|
bank: _reactImmutableProptypes.default.record.isRequired,
|
|
597
596
|
currentUser: _propTypes.default.shape({
|
|
597
|
+
bank_admin: _propTypes.default.bool,
|
|
598
598
|
email: _propTypes.default.string,
|
|
599
599
|
enrollment_names: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
600
600
|
full_name: _propTypes.default.string,
|
|
@@ -199,6 +199,7 @@ BanksTray.propTypes = {
|
|
|
199
199
|
activeBankEntryId: _propTypes.default.string,
|
|
200
200
|
clear: _propTypes.default.func.isRequired,
|
|
201
201
|
currentUser: _propTypes.default.shape({
|
|
202
|
+
bank_admin: _propTypes.default.bool,
|
|
202
203
|
email: _propTypes.default.string,
|
|
203
204
|
enrollment_names: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
204
205
|
full_name: _propTypes.default.string,
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.AnalysisUpdateDate = 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 _formatTimespan = require("../../../../../common/util/formatTimespan.js");
|
|
27
|
+
|
|
28
|
+
var _uiText = require("@instructure/ui-text");
|
|
29
|
+
|
|
30
|
+
var _uiFlex = require("@instructure/ui-flex");
|
|
31
|
+
|
|
32
|
+
var AnalysisUpdateDate = /*#__PURE__*/function (_Component) {
|
|
33
|
+
(0, _inherits2.default)(AnalysisUpdateDate, _Component);
|
|
34
|
+
|
|
35
|
+
var _super = (0, _createSuper2.default)(AnalysisUpdateDate);
|
|
36
|
+
|
|
37
|
+
function AnalysisUpdateDate() {
|
|
38
|
+
(0, _classCallCheck2.default)(this, AnalysisUpdateDate);
|
|
39
|
+
return _super.apply(this, arguments);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
(0, _createClass2.default)(AnalysisUpdateDate, [{
|
|
43
|
+
key: "render",
|
|
44
|
+
value: function render() {
|
|
45
|
+
var _this$context = this.context,
|
|
46
|
+
timezone = _this$context.timezone,
|
|
47
|
+
locale = _this$context.locale;
|
|
48
|
+
var _this$props = this.props,
|
|
49
|
+
date = _this$props.date,
|
|
50
|
+
multiline = _this$props.multiline;
|
|
51
|
+
return /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
52
|
+
size: "x-small"
|
|
53
|
+
}, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
54
|
+
direction: multiline ? 'column' : 'row',
|
|
55
|
+
alignItems: "start"
|
|
56
|
+
}, /*#__PURE__*/_react.default.createElement("b", null, (0, _formatMessage.default)('Data Last Updated:'), "\xA0"), /*#__PURE__*/_react.default.createElement("span", null, (0, _formatTimespan.displayDateAndTimeInTimezone)(date, timezone, locale))));
|
|
57
|
+
}
|
|
58
|
+
}]);
|
|
59
|
+
AnalysisUpdateDate.displayName = "AnalysisUpdateDate";
|
|
60
|
+
return AnalysisUpdateDate;
|
|
61
|
+
}(_react.Component);
|
|
62
|
+
|
|
63
|
+
exports.AnalysisUpdateDate = AnalysisUpdateDate;
|
|
64
|
+
AnalysisUpdateDate.propTypes = {
|
|
65
|
+
date: _propTypes.default.string.isRequired,
|
|
66
|
+
multiline: _propTypes.default.bool
|
|
67
|
+
};
|
|
68
|
+
AnalysisUpdateDate.contextTypes = {
|
|
69
|
+
timezone: _propTypes.default.string,
|
|
70
|
+
locale: _propTypes.default.string
|
|
71
|
+
};
|
|
72
|
+
AnalysisUpdateDate.defaultProps = {
|
|
73
|
+
multiline: false
|
|
74
|
+
};
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js
CHANGED
|
@@ -31,8 +31,6 @@ var _theme = _interopRequireDefault(require("./theme.js"));
|
|
|
31
31
|
|
|
32
32
|
var _formatTimespan = require("../../../../../common/util/formatTimespan.js");
|
|
33
33
|
|
|
34
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
35
|
-
|
|
36
34
|
var _index2 = _interopRequireDefault(require("../../../../../common/components/shared/Card/index.js"));
|
|
37
35
|
|
|
38
36
|
var _index3 = _interopRequireDefault(require("../AnalysisPopoverMetric/index.js"));
|
|
@@ -41,6 +39,8 @@ var _index4 = _interopRequireDefault(require("../AnalysisMetric/index.js"));
|
|
|
41
39
|
|
|
42
40
|
var _presenter = require("../charts/ScoreDistribution/presenter.js");
|
|
43
41
|
|
|
42
|
+
var _propTypes = require("../propTypes.js");
|
|
43
|
+
|
|
44
44
|
var _dec, _class, _class2, _temp;
|
|
45
45
|
|
|
46
46
|
var styles = {
|
|
@@ -177,28 +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.
|
|
181
|
-
created_timestamp: _propTypes.default.string.isRequired,
|
|
182
|
-
metadata: _propTypes.default.shape({
|
|
183
|
-
quiz_title: _propTypes.default.string
|
|
184
|
-
}).isRequired,
|
|
185
|
-
scores: _propTypes.default.shape({
|
|
186
|
-
decile_distribution: _propTypes.default.arrayOf(_propTypes.default.number),
|
|
187
|
-
cronbachs_alpha: _propTypes.default.number,
|
|
188
|
-
stddev: _propTypes.default.number,
|
|
189
|
-
median_percentage: _propTypes.default.number,
|
|
190
|
-
max_percentage: _propTypes.default.number,
|
|
191
|
-
min_percentage: _propTypes.default.number,
|
|
192
|
-
mean_percentage: _propTypes.default.number
|
|
193
|
-
}).isRequired,
|
|
194
|
-
attempts: _propTypes.default.shape({
|
|
195
|
-
mean_elapsed_sec: _propTypes.default.number,
|
|
196
|
-
students_completed: _propTypes.default.number,
|
|
197
|
-
students_not_finished: _propTypes.default.number,
|
|
198
|
-
students_without_attempt: _propTypes.default.number,
|
|
199
|
-
average_attempts: _propTypes.default.number
|
|
200
|
-
}).isRequired
|
|
201
|
-
}).isRequired
|
|
180
|
+
quizAnalysis: _propTypes.quizAnalysisPropType
|
|
202
181
|
}, _class2.defaultProps = {
|
|
203
182
|
quizAnalysis: {}
|
|
204
183
|
}, _temp)) || _class);
|
|
@@ -33,58 +33,115 @@ var _uiThemeable = require("@instructure/ui-themeable");
|
|
|
33
33
|
|
|
34
34
|
var _index = _interopRequireDefault(require("../../../../../common/components/shared/Card/index.js"));
|
|
35
35
|
|
|
36
|
-
var _theme = _interopRequireDefault(require("
|
|
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");
|
|
37
45
|
|
|
38
46
|
var _dec, _class, _class2, _temp;
|
|
39
47
|
|
|
40
48
|
var styles = {
|
|
41
|
-
componentId: '
|
|
49
|
+
componentId: 'eJSiT',
|
|
42
50
|
template: function template(theme) {
|
|
43
|
-
return "\n\n.
|
|
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}");
|
|
44
52
|
},
|
|
45
|
-
'
|
|
46
|
-
'
|
|
53
|
+
'metricsContainer': 'eJSiT_bqdH',
|
|
54
|
+
'card': 'eJSiT_fbIL',
|
|
55
|
+
'dateContainer': 'eJSiT_blRb'
|
|
47
56
|
};
|
|
57
|
+
|
|
58
|
+
var _ref = /*#__PURE__*/_react.default.createElement(_Spinner.default, null);
|
|
59
|
+
|
|
48
60
|
var NewQuizAndItemAnalysisReportCard = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
49
61
|
(0, _inherits2.default)(NewQuizAndItemAnalysisReportCard, _Component);
|
|
50
62
|
|
|
51
63
|
var _super = (0, _createSuper2.default)(NewQuizAndItemAnalysisReportCard);
|
|
52
64
|
|
|
53
65
|
function NewQuizAndItemAnalysisReportCard() {
|
|
66
|
+
var _this;
|
|
67
|
+
|
|
54
68
|
(0, _classCallCheck2.default)(this, NewQuizAndItemAnalysisReportCard);
|
|
55
|
-
|
|
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;
|
|
56
101
|
}
|
|
57
102
|
|
|
58
103
|
(0, _createClass2.default)(NewQuizAndItemAnalysisReportCard, [{
|
|
59
|
-
key: "
|
|
60
|
-
value: function
|
|
104
|
+
key: "renderContent",
|
|
105
|
+
value: function renderContent() {
|
|
61
106
|
var _this$props = this.props,
|
|
62
107
|
name = _this$props.name,
|
|
63
|
-
href = _this$props.href
|
|
64
|
-
|
|
65
|
-
|
|
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, {
|
|
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, {
|
|
69
111
|
size: "medium",
|
|
70
112
|
weight: "bold"
|
|
71
|
-
}, name)), /*#__PURE__*/_react.default.createElement(_uiFlex.Flex
|
|
72
|
-
|
|
73
|
-
|
|
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, {
|
|
74
122
|
href: href
|
|
75
123
|
}, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
|
|
76
124
|
size: "small"
|
|
77
|
-
}, (0, _formatMessage.default)('View Report')))))
|
|
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);
|
|
78
133
|
}
|
|
79
134
|
}]);
|
|
80
135
|
NewQuizAndItemAnalysisReportCard.displayName = "NewQuizAndItemAnalysisReportCard";
|
|
81
136
|
return NewQuizAndItemAnalysisReportCard;
|
|
82
137
|
}(_react.Component), _class2.propTypes = {
|
|
83
138
|
name: _propTypes.default.node,
|
|
84
|
-
href: _propTypes.default.string
|
|
139
|
+
href: _propTypes.default.string,
|
|
140
|
+
quizAnalysis: _propTypes2.quizAnalysisPropType
|
|
85
141
|
}, _class2.defaultProps = {
|
|
86
142
|
name: void 0,
|
|
87
|
-
href: void 0
|
|
143
|
+
href: void 0,
|
|
144
|
+
quizAnalysis: {}
|
|
88
145
|
}, _temp)) || _class);
|
|
89
146
|
exports.NewQuizAndItemAnalysisReportCard = NewQuizAndItemAnalysisReportCard;
|
|
90
147
|
var _default = NewQuizAndItemAnalysisReportCard;
|
|
@@ -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 spacing = _ref.spacing,
|
|
10
|
+
borders = _ref.borders;
|
|
11
|
+
return {
|
|
12
|
+
metricsPadding: spacing.medium,
|
|
13
|
+
cardWidth: '16rem',
|
|
14
|
+
cardPadding: spacing.medium,
|
|
15
|
+
cardMargin: spacing.xSmall,
|
|
16
|
+
cardBoxShadow: '1px 1px 3px 0 #ddd',
|
|
17
|
+
cardBorderRadius: borders.radiusMedium
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -35,11 +35,9 @@ var _index2 = _interopRequireDefault(require("./NewQuizAnalysis/index.js"));
|
|
|
35
35
|
|
|
36
36
|
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
37
37
|
|
|
38
|
-
var _uiText = require("@instructure/ui-text");
|
|
39
|
-
|
|
40
38
|
var _uiFlex = require("@instructure/ui-flex");
|
|
41
39
|
|
|
42
|
-
var
|
|
40
|
+
var _index3 = require("./AnalysisUpdateDate/index.js");
|
|
43
41
|
|
|
44
42
|
var _ref3 = /*#__PURE__*/_react.default.createElement(_Spinner.default, null);
|
|
45
43
|
|
|
@@ -126,18 +124,15 @@ var NewQuizAndItemAnalysis = /*#__PURE__*/function (_Component) {
|
|
|
126
124
|
var _this$state = this.state,
|
|
127
125
|
quizAnalysis = _this$state.quizAnalysis,
|
|
128
126
|
itemAnalyses = _this$state.itemAnalyses;
|
|
129
|
-
var _this$context = this.context,
|
|
130
|
-
timezone = _this$context.timezone,
|
|
131
|
-
locale = _this$context.locale;
|
|
132
127
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
133
128
|
className: "fs-mask"
|
|
134
129
|
}, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
135
130
|
justifyItems: "end",
|
|
136
131
|
width: "82.5rem",
|
|
137
132
|
margin: "auto"
|
|
138
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
139
|
-
|
|
140
|
-
}
|
|
133
|
+
}, /*#__PURE__*/_react.default.createElement(_index3.AnalysisUpdateDate, {
|
|
134
|
+
date: quizAnalysis.created_timestamp
|
|
135
|
+
})), /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
141
136
|
quizAnalysis: quizAnalysis
|
|
142
137
|
}), /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
|
|
143
138
|
level: "h3",
|
|
@@ -168,10 +163,6 @@ var NewQuizAndItemAnalysis = /*#__PURE__*/function (_Component) {
|
|
|
168
163
|
}(_react.Component);
|
|
169
164
|
|
|
170
165
|
exports.NewQuizAndItemAnalysis = NewQuizAndItemAnalysis;
|
|
171
|
-
NewQuizAndItemAnalysis.contextTypes = {
|
|
172
|
-
timezone: _propTypes.default.string,
|
|
173
|
-
locale: _propTypes.default.string
|
|
174
|
-
};
|
|
175
166
|
NewQuizAndItemAnalysis.propTypes = {
|
|
176
167
|
activeQuizId: _propTypes.default.string.isRequired,
|
|
177
168
|
getQuizAnalysis: _propTypes.default.func.isRequired,
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.quizAnalysisPropType = void 0;
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var quizAnalysisPropType = _propTypes.default.shape({
|
|
13
|
+
created_timestamp: _propTypes.default.string.isRequired,
|
|
14
|
+
metadata: _propTypes.default.shape({
|
|
15
|
+
quiz_title: _propTypes.default.string
|
|
16
|
+
}).isRequired,
|
|
17
|
+
scores: _propTypes.default.shape({
|
|
18
|
+
decile_distribution: _propTypes.default.arrayOf(_propTypes.default.number),
|
|
19
|
+
cronbachs_alpha: _propTypes.default.number,
|
|
20
|
+
stddev: _propTypes.default.number,
|
|
21
|
+
median_percentage: _propTypes.default.number,
|
|
22
|
+
max_percentage: _propTypes.default.number,
|
|
23
|
+
min_percentage: _propTypes.default.number,
|
|
24
|
+
mean_percentage: _propTypes.default.number
|
|
25
|
+
}).isRequired,
|
|
26
|
+
attempts: _propTypes.default.shape({
|
|
27
|
+
mean_elapsed_sec: _propTypes.default.number,
|
|
28
|
+
students_completed: _propTypes.default.number,
|
|
29
|
+
students_not_finished: _propTypes.default.number,
|
|
30
|
+
students_without_attempt: _propTypes.default.number,
|
|
31
|
+
average_attempts: _propTypes.default.number
|
|
32
|
+
}).isRequired
|
|
33
|
+
}).isRequired;
|
|
34
|
+
|
|
35
|
+
exports.quizAnalysisPropType = quizAnalysisPropType;
|
|
@@ -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: 'eRzKS',
|
|
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.60.
|
|
3
|
+
"version": "17.60.1-rc.1+8649b9f0a",
|
|
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": "
|
|
45
|
-
"@instructure/quiz-i18n": "
|
|
46
|
-
"@instructure/quiz-interactions": "
|
|
47
|
-
"@instructure/quiz-number-input": "
|
|
48
|
-
"@instructure/quiz-rce": "
|
|
44
|
+
"@instructure/quiz-common": "17.60.1-rc.1+8649b9f0a",
|
|
45
|
+
"@instructure/quiz-i18n": "17.60.1-rc.1+8649b9f0a",
|
|
46
|
+
"@instructure/quiz-interactions": "17.60.1-rc.1+8649b9f0a",
|
|
47
|
+
"@instructure/quiz-number-input": "17.60.1-rc.1+8649b9f0a",
|
|
48
|
+
"@instructure/quiz-rce": "17.60.1-rc.1+8649b9f0a",
|
|
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": "
|
|
109
|
+
"instructure-validations": "17.60.1-rc.1+8649b9f0a",
|
|
110
110
|
"ipaddr.js": "^1.5.4",
|
|
111
111
|
"isomorphic-fetch": "^2.2.0",
|
|
112
112
|
"isuuid": "^0.1.0",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"uuid": "^3.2.1"
|
|
139
139
|
},
|
|
140
140
|
"devDependencies": {
|
|
141
|
-
"@instructure/quiz-scripts": "
|
|
141
|
+
"@instructure/quiz-scripts": "17.60.0",
|
|
142
142
|
"@instructure/ui-axe-check": "^7.20.0",
|
|
143
143
|
"@instructure/ui-babel-preset": "^7.20.0",
|
|
144
144
|
"@instructure/ui-karma-config": "^7.20.0",
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
"intl": "^1.2.4",
|
|
158
158
|
"jquery": "^2.2.3",
|
|
159
159
|
"most-subject": "^5.3.0",
|
|
160
|
-
"quiz-presets": "
|
|
160
|
+
"quiz-presets": "17.60.1-rc.1+8649b9f0a",
|
|
161
161
|
"react": "^16.8.6",
|
|
162
162
|
"react-addons-test-utils": "^15.6.2",
|
|
163
163
|
"react-dom": "^16.8.6",
|
|
@@ -173,5 +173,5 @@
|
|
|
173
173
|
"publishConfig": {
|
|
174
174
|
"access": "public"
|
|
175
175
|
},
|
|
176
|
-
"gitHead": "
|
|
176
|
+
"gitHead": "8649b9f0a0d7ce1333bf3ccf3b9be06f4034d4dc"
|
|
177
177
|
}
|