@instructure/quiz-core 18.3.1-rc.18 → 18.3.1-rc.20
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/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ChoiceType/ChoiceTypeTableRow/index.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/{AnswerSummaryTable/AnswerSummaryTableRow → AnswerFrequencySummary/ChoiceType/ChoiceTypeTableRow}/presenter.js +6 -6
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ChoiceType/index.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/{AnswerSummaryTable/ChoiceInfo → AnswerFrequencySummary/ChoiceType}/presenter.js +46 -28
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/index.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/presenter.js +54 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +22 -26
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/downForRepair.svg +58 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/errorMessages.js +1 -1
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/fetchReports.js +16 -12
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +92 -30
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +8 -6
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/withAnalysisStatePresenter.js +11 -3
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ChoiceType/ChoiceTypeTableRow/index.js +13 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/{AnswerSummaryTable/AnswerSummaryTableRow → AnswerFrequencySummary/ChoiceType/ChoiceTypeTableRow}/presenter.js +8 -8
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ChoiceType/index.js +13 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/{AnswerSummaryTable/ChoiceInfo → AnswerFrequencySummary/ChoiceType}/presenter.js +53 -32
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/index.js +13 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/presenter.js +75 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +1 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +21 -25
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/downForRepair.svg +58 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/errorMessages.js +1 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/fetchReports.js +16 -12
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +95 -30
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +12 -6
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/withAnalysisStatePresenter.js +11 -2
- package/package.json +12 -11
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/AnswerSummaryTableRow/index.js +0 -2
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/ChoiceInfo/index.js +0 -2
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/index.js +0 -2
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/presenter.js +0 -65
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/AnswerSummaryTableRow/index.js +0 -11
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/ChoiceInfo/index.js +0 -11
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/index.js +0 -11
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerSummaryTable/presenter.js +0 -87
- /package/es/reporting/components/resources/NewQuizAndItemAnalysis/{AnswerSummaryTable/AnswerSummaryTableRow → AnswerFrequencySummary/ChoiceType/ChoiceTypeTableRow}/theme.js +0 -0
- /package/es/reporting/components/resources/NewQuizAndItemAnalysis/{AnswerSummaryTable → AnswerFrequencySummary/ChoiceType}/theme.js +0 -0
- /package/lib/reporting/components/resources/NewQuizAndItemAnalysis/{AnswerSummaryTable/AnswerSummaryTableRow → AnswerFrequencySummary/ChoiceType/ChoiceTypeTableRow}/theme.js +0 -0
- /package/lib/reporting/components/resources/NewQuizAndItemAnalysis/{AnswerSummaryTable → AnswerFrequencySummary/ChoiceType}/theme.js +0 -0
|
@@ -15,6 +15,18 @@ import { QuizzesSpinner } from "../../../../common/components/shared/spinner/Spi
|
|
|
15
15
|
import { Spinner } from '@instructure/ui-spinner';
|
|
16
16
|
import { Button } from '@instructure/ui-buttons';
|
|
17
17
|
import { Text } from '@instructure/ui-text';
|
|
18
|
+
import { getFailedToFetchReports } from "./errorMessages.js";
|
|
19
|
+
import { Img } from '@instructure/ui-img';
|
|
20
|
+
import errorImage from './downForRepair.svg';
|
|
21
|
+
import { PresentationContent, ScreenReaderContent } from '@instructure/ui-a11y-content';
|
|
22
|
+
|
|
23
|
+
var _ref = /*#__PURE__*/React.createElement(Flex.Item, {
|
|
24
|
+
align: "center"
|
|
25
|
+
}, /*#__PURE__*/React.createElement(PresentationContent, null, /*#__PURE__*/React.createElement(Img, {
|
|
26
|
+
src: errorImage,
|
|
27
|
+
alt: ""
|
|
28
|
+
})));
|
|
29
|
+
|
|
18
30
|
export var NewQuizAndItemAnalysisPresenter = /*#__PURE__*/function (_Component) {
|
|
19
31
|
_inherits(NewQuizAndItemAnalysisPresenter, _Component);
|
|
20
32
|
|
|
@@ -32,13 +44,16 @@ export var NewQuizAndItemAnalysisPresenter = /*#__PURE__*/function (_Component)
|
|
|
32
44
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
33
45
|
|
|
34
46
|
_this.renderItemAnalyses = function () {
|
|
35
|
-
var itemAnalyses = _this.props.itemAnalyses;
|
|
36
|
-
return /*#__PURE__*/React.createElement(
|
|
47
|
+
var itemAnalyses = _this.props.itemAnalyses || [];
|
|
48
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Heading, {
|
|
49
|
+
level: "h2",
|
|
50
|
+
color: "primary"
|
|
51
|
+
}, t('Item Analysis')), /*#__PURE__*/React.createElement("div", null, itemAnalyses.map(function (itemAnalysis) {
|
|
37
52
|
return /*#__PURE__*/React.createElement(NewItemAnalysis, {
|
|
38
53
|
key: itemAnalysis.metadata.item_id,
|
|
39
54
|
itemAnalysis: itemAnalysis
|
|
40
55
|
});
|
|
41
|
-
}));
|
|
56
|
+
})));
|
|
42
57
|
};
|
|
43
58
|
|
|
44
59
|
_this.renderSpinner = function () {
|
|
@@ -51,6 +66,58 @@ export var NewQuizAndItemAnalysisPresenter = /*#__PURE__*/function (_Component)
|
|
|
51
66
|
}));
|
|
52
67
|
};
|
|
53
68
|
|
|
69
|
+
_this.renderErrorBody = function () {
|
|
70
|
+
return /*#__PURE__*/React.createElement(Flex, {
|
|
71
|
+
alignItems: "end",
|
|
72
|
+
width: "82.5rem",
|
|
73
|
+
margin: "auto",
|
|
74
|
+
direction: "column"
|
|
75
|
+
}, _ref, /*#__PURE__*/React.createElement(Flex.Item, {
|
|
76
|
+
align: "center"
|
|
77
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
78
|
+
size: "x-large",
|
|
79
|
+
color: "primary"
|
|
80
|
+
}, t('Error'))), /*#__PURE__*/React.createElement(Flex.Item, {
|
|
81
|
+
align: "center"
|
|
82
|
+
}, /*#__PURE__*/React.createElement(ScreenReaderContent, null, getFailedToFetchReports()), /*#__PURE__*/React.createElement(Text, {
|
|
83
|
+
size: "x-small",
|
|
84
|
+
color: "primary"
|
|
85
|
+
}, getFailedToFetchReports())));
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
_this.renderTop = function () {
|
|
89
|
+
var _this$props = _this.props,
|
|
90
|
+
analysisError = _this$props.analysisError,
|
|
91
|
+
generationInProgress = _this$props.generationInProgress,
|
|
92
|
+
quizAnalysis = _this$props.quizAnalysis;
|
|
93
|
+
var shouldShowError = analysisError && !generationInProgress;
|
|
94
|
+
return /*#__PURE__*/React.createElement(Flex, {
|
|
95
|
+
alignItems: "end",
|
|
96
|
+
width: "82.5rem",
|
|
97
|
+
margin: "auto",
|
|
98
|
+
direction: "column"
|
|
99
|
+
}, /*#__PURE__*/React.createElement(Flex.Item, {
|
|
100
|
+
overflowY: "visible"
|
|
101
|
+
}, _this.renderGenerationButton()), /*#__PURE__*/React.createElement(Flex.Item, null, shouldShowError && /*#__PURE__*/React.createElement(Text, {
|
|
102
|
+
size: "x-small",
|
|
103
|
+
weight: "bold",
|
|
104
|
+
color: "danger"
|
|
105
|
+
}, analysisError)), /*#__PURE__*/React.createElement(Flex.Item, null, /*#__PURE__*/React.createElement(AnalysisUpdateDate, {
|
|
106
|
+
date: quizAnalysis === null || quizAnalysis === void 0 ? void 0 : quizAnalysis.created_timestamp
|
|
107
|
+
})));
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
_this.renderTopOnFailedFetch = function () {
|
|
111
|
+
return /*#__PURE__*/React.createElement(Flex, {
|
|
112
|
+
alignItems: "end",
|
|
113
|
+
width: "82.5rem",
|
|
114
|
+
margin: "auto",
|
|
115
|
+
direction: "column"
|
|
116
|
+
}, /*#__PURE__*/React.createElement(Flex.Item, {
|
|
117
|
+
overflowY: "visible"
|
|
118
|
+
}, _this.renderGenerationButton()));
|
|
119
|
+
};
|
|
120
|
+
|
|
54
121
|
_this.renderOngoingGenerationButton = function () {
|
|
55
122
|
return /*#__PURE__*/React.createElement(Button, {
|
|
56
123
|
color: "primary-inverse",
|
|
@@ -79,7 +146,23 @@ export var NewQuizAndItemAnalysisPresenter = /*#__PURE__*/function (_Component)
|
|
|
79
146
|
};
|
|
80
147
|
|
|
81
148
|
_this.renderGenerationButton = function () {
|
|
82
|
-
|
|
149
|
+
var generationInProgress = _this.props.generationInProgress;
|
|
150
|
+
var buttonVariant = generationInProgress ? _this.renderOngoingGenerationButton() : _this.renderStartGenerationButton();
|
|
151
|
+
return /*#__PURE__*/React.createElement(Flex.Item, {
|
|
152
|
+
align: "end",
|
|
153
|
+
padding: "xx-small"
|
|
154
|
+
}, buttonVariant);
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
_this.renderBody = function () {
|
|
158
|
+
var _this$props2 = _this.props,
|
|
159
|
+
fetchInProgress = _this$props2.fetchInProgress,
|
|
160
|
+
quizAnalysis = _this$props2.quizAnalysis; // TODO need to refactor the NewQuizAnalysis to move out spinner logic
|
|
161
|
+
|
|
162
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, (fetchInProgress || quizAnalysis) && /*#__PURE__*/React.createElement(NewQuizAnalysis, {
|
|
163
|
+
quizAnalysis: quizAnalysis,
|
|
164
|
+
fetchInProgress: fetchInProgress
|
|
165
|
+
}), fetchInProgress ? _this.renderSpinner() : _this.renderItemAnalyses());
|
|
83
166
|
};
|
|
84
167
|
|
|
85
168
|
_this.handleGeneration = function (_event) {
|
|
@@ -94,34 +177,12 @@ export var NewQuizAndItemAnalysisPresenter = /*#__PURE__*/function (_Component)
|
|
|
94
177
|
_createClass(NewQuizAndItemAnalysisPresenter, [{
|
|
95
178
|
key: "render",
|
|
96
179
|
value: function render() {
|
|
97
|
-
var _this$
|
|
98
|
-
|
|
99
|
-
fetchInProgress = _this$
|
|
100
|
-
generationInProgress = _this$props.generationInProgress,
|
|
101
|
-
quizAnalysis = _this$props.quizAnalysis;
|
|
102
|
-
var shouldShowError = analysisError && !fetchInProgress && !generationInProgress;
|
|
180
|
+
var _this$props3 = this.props,
|
|
181
|
+
analysisFetchError = _this$props3.analysisFetchError,
|
|
182
|
+
fetchInProgress = _this$props3.fetchInProgress;
|
|
103
183
|
return /*#__PURE__*/React.createElement("div", {
|
|
104
184
|
className: "fs-mask"
|
|
105
|
-
},
|
|
106
|
-
alignItems: "end",
|
|
107
|
-
width: "82.5rem",
|
|
108
|
-
margin: "auto",
|
|
109
|
-
direction: "column"
|
|
110
|
-
}, /*#__PURE__*/React.createElement(Flex.Item, {
|
|
111
|
-
overflowY: "visible"
|
|
112
|
-
}, !fetchInProgress && this.renderGenerationButton()), /*#__PURE__*/React.createElement(Flex.Item, null, shouldShowError && /*#__PURE__*/React.createElement(Text, {
|
|
113
|
-
size: "x-small",
|
|
114
|
-
weight: "bold",
|
|
115
|
-
color: "danger"
|
|
116
|
-
}, analysisError)), /*#__PURE__*/React.createElement(Flex.Item, null, !fetchInProgress && /*#__PURE__*/React.createElement(AnalysisUpdateDate, {
|
|
117
|
-
date: quizAnalysis.created_timestamp
|
|
118
|
-
}))), /*#__PURE__*/React.createElement(NewQuizAnalysis, {
|
|
119
|
-
quizAnalysis: quizAnalysis,
|
|
120
|
-
fetchInProgress: fetchInProgress
|
|
121
|
-
}), !fetchInProgress && /*#__PURE__*/React.createElement(Heading, {
|
|
122
|
-
level: "h2",
|
|
123
|
-
color: "primary"
|
|
124
|
-
}, t('Item Analysis')), fetchInProgress ? this.renderSpinner() : this.renderItemAnalyses());
|
|
185
|
+
}, !fetchInProgress && (analysisFetchError ? this.renderTopOnFailedFetch() : this.renderTop()), analysisFetchError ? this.renderErrorBody() : this.renderBody());
|
|
125
186
|
}
|
|
126
187
|
}]);
|
|
127
188
|
|
|
@@ -133,6 +194,7 @@ NewQuizAndItemAnalysisPresenter.propTypes = {
|
|
|
133
194
|
itemAnalyses: PropTypes.arrayOf(itemAnalysisPropType),
|
|
134
195
|
fetchInProgress: PropTypes.bool.isRequired,
|
|
135
196
|
generationInProgress: PropTypes.bool.isRequired,
|
|
197
|
+
analysisFetchError: PropTypes.bool.isRequired,
|
|
136
198
|
analysisError: PropTypes.string,
|
|
137
199
|
generateReports: PropTypes.func.isRequired
|
|
138
200
|
};
|
|
@@ -43,15 +43,17 @@ export var itemAnalysisPropType = PropTypes.shape({
|
|
|
43
43
|
}),
|
|
44
44
|
answer_summary: answerSummaryPropType
|
|
45
45
|
});
|
|
46
|
-
|
|
46
|
+
var noAnswerPropType = PropTypes.shape({
|
|
47
|
+
count: PropTypes.number,
|
|
48
|
+
percentage: PropTypes.number
|
|
49
|
+
});
|
|
50
|
+
export var choiceTypeAnswerSummaryPropType = PropTypes.shape({
|
|
47
51
|
choices: PropTypes.arrayOf(PropTypes.shape({
|
|
48
52
|
body: PropTypes.string,
|
|
49
53
|
correct: PropTypes.bool,
|
|
50
54
|
count: PropTypes.number,
|
|
51
55
|
percentage: PropTypes.number
|
|
52
56
|
})),
|
|
53
|
-
no_answer:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
})
|
|
57
|
-
});
|
|
57
|
+
no_answer: noAnswerPropType
|
|
58
|
+
});
|
|
59
|
+
export var answerSummaryPropType = PropTypes.oneOfType([choiceTypeAnswerSummaryPropType]);
|
package/es/reporting/components/resources/NewQuizAndItemAnalysis/withAnalysisStatePresenter.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
-
import React, { useEffect } from 'react';
|
|
5
|
+
import React, { useEffect, useState } from 'react';
|
|
5
6
|
import PropTypes from 'prop-types';
|
|
6
7
|
import { itemAnalysisPropType, quizAnalysisPropType } from "./propTypes.js";
|
|
7
8
|
import { fetchReports } from "./fetchReports.js";
|
|
@@ -33,6 +34,11 @@ export var withAnalysisStatePresenter = function withAnalysisStatePresenter(Orig
|
|
|
33
34
|
|
|
34
35
|
WithAnalysisStatePresenter.displayName = "WithAnalysisStatePresenter(".concat(OriginalComponent.displayName || OriginalComponent.name, ")");
|
|
35
36
|
|
|
37
|
+
var _useState = useState(false),
|
|
38
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
39
|
+
analysisFetchError = _useState2[0],
|
|
40
|
+
setAnalysisFetchError = _useState2[1];
|
|
41
|
+
|
|
36
42
|
var instrumentedFetchReports = function instrumentedFetchReports() {
|
|
37
43
|
return fetchReports({
|
|
38
44
|
activeQuizId: activeQuizId,
|
|
@@ -45,7 +51,8 @@ export var withAnalysisStatePresenter = function withAnalysisStatePresenter(Orig
|
|
|
45
51
|
setGenerationInProgress: setGenerationInProgress,
|
|
46
52
|
setFetchInProgress: setFetchInProgress,
|
|
47
53
|
setQuizAnalysis: setQuizAnalysis,
|
|
48
|
-
getErrorMessageForCode: getErrorMessageForCode
|
|
54
|
+
getErrorMessageForCode: getErrorMessageForCode,
|
|
55
|
+
setAnalysisFetchError: setAnalysisFetchError
|
|
49
56
|
});
|
|
50
57
|
};
|
|
51
58
|
|
|
@@ -164,7 +171,8 @@ export var withAnalysisStatePresenter = function withAnalysisStatePresenter(Orig
|
|
|
164
171
|
fetchInProgress: fetchInProgress,
|
|
165
172
|
generationInProgress: generationInProgress,
|
|
166
173
|
analysisError: analysisError,
|
|
167
|
-
generateReports: generateReports
|
|
174
|
+
generateReports: generateReports,
|
|
175
|
+
analysisFetchError: analysisFetchError
|
|
168
176
|
}, passThroughProps));
|
|
169
177
|
};
|
|
170
178
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _presenter.ChoiceTypeTableRow;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _presenter = require("./presenter.js");
|
|
@@ -7,7 +7,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
10
|
+
exports.ChoiceTypeTableRow = void 0;
|
|
11
11
|
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
|
|
@@ -54,15 +54,15 @@ var _ref = /*#__PURE__*/_react.default.createElement(_uiIcons.IconCheckSolid, nu
|
|
|
54
54
|
|
|
55
55
|
var _ref2 = /*#__PURE__*/_react.default.createElement(_uiIcons.IconXSolid, null);
|
|
56
56
|
|
|
57
|
-
var
|
|
58
|
-
(0, _inherits2.default)(
|
|
57
|
+
var ChoiceTypeTableRow = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
58
|
+
(0, _inherits2.default)(ChoiceTypeTableRow, _Component);
|
|
59
59
|
|
|
60
|
-
var _super = (0, _createSuper2.default)(
|
|
60
|
+
var _super = (0, _createSuper2.default)(ChoiceTypeTableRow);
|
|
61
61
|
|
|
62
|
-
function
|
|
62
|
+
function ChoiceTypeTableRow() {
|
|
63
63
|
var _this;
|
|
64
64
|
|
|
65
|
-
(0, _classCallCheck2.default)(this,
|
|
65
|
+
(0, _classCallCheck2.default)(this, ChoiceTypeTableRow);
|
|
66
66
|
|
|
67
67
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
68
68
|
args[_key] = arguments[_key];
|
|
@@ -136,7 +136,7 @@ var AnswerSummaryTableRow = (_dec = (0, _uiThemeable.themeable)(_theme.default,
|
|
|
136
136
|
return _this;
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
return
|
|
139
|
+
return ChoiceTypeTableRow;
|
|
140
140
|
}(_react.Component), _class2.displayName = 'Row', _class2.propTypes = {
|
|
141
141
|
choice: _propTypes.default.shape({
|
|
142
142
|
body: _propTypes.default.string,
|
|
@@ -146,4 +146,4 @@ var AnswerSummaryTableRow = (_dec = (0, _uiThemeable.themeable)(_theme.default,
|
|
|
146
146
|
}),
|
|
147
147
|
choiceIndex: _propTypes.default.number
|
|
148
148
|
}.isRequired, _temp)) || _class);
|
|
149
|
-
exports.
|
|
149
|
+
exports.ChoiceTypeTableRow = ChoiceTypeTableRow;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _presenter.ChoiceType;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _presenter = require("./presenter.js");
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
10
|
+
exports.ChoiceType = void 0;
|
|
11
11
|
|
|
12
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
13
|
|
|
@@ -23,21 +23,40 @@ var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/f
|
|
|
23
23
|
|
|
24
24
|
var _uiTable = require("@instructure/ui-table");
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _uiFlex = require("@instructure/ui-flex");
|
|
27
|
+
|
|
28
|
+
var _uiHeading = require("@instructure/ui-heading");
|
|
27
29
|
|
|
28
|
-
var
|
|
30
|
+
var _uiThemeable = require("@instructure/ui-themeable");
|
|
31
|
+
|
|
32
|
+
var _uiA11yContent = require("@instructure/ui-a11y-content");
|
|
29
33
|
|
|
30
34
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
35
|
|
|
32
|
-
var
|
|
33
|
-
|
|
36
|
+
var _index = _interopRequireDefault(require("./ChoiceTypeTableRow/index.js"));
|
|
37
|
+
|
|
38
|
+
var _propTypes2 = require("../../propTypes.js");
|
|
39
|
+
|
|
40
|
+
var _theme = _interopRequireDefault(require("./theme.js"));
|
|
34
41
|
|
|
35
|
-
|
|
42
|
+
var _dec, _class, _class2, _temp;
|
|
36
43
|
|
|
37
|
-
|
|
44
|
+
var styles = {
|
|
45
|
+
componentId: 'ZuPLN',
|
|
46
|
+
template: function template(theme) {
|
|
47
|
+
return "\n\n.ZuPLN_rMrG{display:flex;flex-basis:100%;flex-direction:column;padding-bottom:".concat(theme.tableBottomPadding || 'inherit', "}");
|
|
48
|
+
},
|
|
49
|
+
'tableWrapper': 'ZuPLN_rMrG'
|
|
50
|
+
};
|
|
51
|
+
var ChoiceType = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
52
|
+
(0, _inherits2.default)(ChoiceType, _Component);
|
|
53
|
+
|
|
54
|
+
var _super = (0, _createSuper2.default)(ChoiceType);
|
|
55
|
+
|
|
56
|
+
function ChoiceType() {
|
|
38
57
|
var _this;
|
|
39
58
|
|
|
40
|
-
(0, _classCallCheck2.default)(this,
|
|
59
|
+
(0, _classCallCheck2.default)(this, ChoiceType);
|
|
41
60
|
|
|
42
61
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
43
62
|
args[_key] = arguments[_key];
|
|
@@ -70,19 +89,32 @@ var ChoiceInfo = /*#__PURE__*/function (_Component) {
|
|
|
70
89
|
return _this;
|
|
71
90
|
}
|
|
72
91
|
|
|
73
|
-
(0, _createClass2.default)(
|
|
92
|
+
(0, _createClass2.default)(ChoiceType, [{
|
|
74
93
|
key: "render",
|
|
75
94
|
value: function render() {
|
|
76
95
|
var _this$props = this.props,
|
|
77
|
-
|
|
78
|
-
noAnswer = _this$props.noAnswer,
|
|
96
|
+
answerSummary = _this$props.answerSummary,
|
|
79
97
|
itemId = _this$props.itemId;
|
|
98
|
+
var choices = answerSummary.choices,
|
|
99
|
+
noAnswer = answerSummary.no_answer;
|
|
80
100
|
var numberOfChoices = choices.length;
|
|
81
101
|
var spacingHeaderId = "answer-frequency-summary-spacing-".concat(itemId);
|
|
82
102
|
var answerHeaderId = "answer-frequency-summary-answer-".concat(itemId);
|
|
83
103
|
var respondentsHeaderId = "answer-frequency-summary-respondents-".concat(itemId);
|
|
84
104
|
var percentageHeaderId = "answer-frequency-summary-percentage-".concat(itemId);
|
|
85
|
-
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(
|
|
105
|
+
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
106
|
+
direction: "row"
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, {
|
|
108
|
+
shouldGrow: true
|
|
109
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
110
|
+
className: styles.tableWrapper
|
|
111
|
+
}, /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
|
|
112
|
+
margin: "large 0 small 0",
|
|
113
|
+
level: "h4",
|
|
114
|
+
theme: {
|
|
115
|
+
h4FontWeight: 'normal'
|
|
116
|
+
}
|
|
117
|
+
}, (0, _formatMessage.default)('Answer Frequency Summary')), /*#__PURE__*/_react.default.createElement(_uiTable.Table, {
|
|
86
118
|
caption: (0, _formatMessage.default)('Answer Frequency Summary')
|
|
87
119
|
}, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Head, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Row, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table.ColHeader, {
|
|
88
120
|
id: spacingHeaderId,
|
|
@@ -97,24 +129,13 @@ var ChoiceInfo = /*#__PURE__*/function (_Component) {
|
|
|
97
129
|
id: percentageHeaderId,
|
|
98
130
|
height: "47px",
|
|
99
131
|
textAlign: "center"
|
|
100
|
-
}, (0, _formatMessage.default)('%')))), /*#__PURE__*/_react.default.createElement(_uiTable.Table.Body, null, choices.map(this.renderRow), this.renderNoAnswer(noAnswer, numberOfChoices))));
|
|
132
|
+
}, (0, _formatMessage.default)('%')))), /*#__PURE__*/_react.default.createElement(_uiTable.Table.Body, null, choices.map(this.renderRow), this.renderNoAnswer(noAnswer, numberOfChoices)))))));
|
|
101
133
|
}
|
|
102
134
|
}]);
|
|
103
|
-
|
|
104
|
-
return
|
|
105
|
-
}(_react.Component)
|
|
106
|
-
|
|
107
|
-
exports.ChoiceInfo = ChoiceInfo;
|
|
108
|
-
ChoiceInfo.propTypes = {
|
|
135
|
+
ChoiceType.displayName = "ChoiceType";
|
|
136
|
+
return ChoiceType;
|
|
137
|
+
}(_react.Component), _class2.propTypes = {
|
|
109
138
|
itemId: _propTypes.default.number,
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
count: _propTypes.default.number,
|
|
114
|
-
percentage: _propTypes.default.number
|
|
115
|
-
})),
|
|
116
|
-
noAnswer: _propTypes.default.shape({
|
|
117
|
-
count: _propTypes.default.number,
|
|
118
|
-
percentage: _propTypes.default.number
|
|
119
|
-
})
|
|
120
|
-
}.isRequired;
|
|
139
|
+
answerSummary: _propTypes2.choiceTypeAnswerSummaryPropType
|
|
140
|
+
}.isRequired, _temp)) || _class);
|
|
141
|
+
exports.ChoiceType = ChoiceType;
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _presenter.AnswerFrequencySummary;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _presenter = require("./presenter.js");
|
|
@@ -0,0 +1,75 @@
|
|
|
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.AnswerFrequencySummary = void 0;
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
20
|
+
var _quizInteractions = require("@instructure/quiz-interactions");
|
|
21
|
+
|
|
22
|
+
var _presenter = require("./ChoiceType/presenter.js");
|
|
23
|
+
|
|
24
|
+
var _propTypes = require("../propTypes.js");
|
|
25
|
+
|
|
26
|
+
var afsTableComponentMap = new Map();
|
|
27
|
+
afsTableComponentMap.set('true-false', _presenter.ChoiceType);
|
|
28
|
+
afsTableComponentMap.set('choice', _presenter.ChoiceType);
|
|
29
|
+
afsTableComponentMap.set('multi-answer', _presenter.ChoiceType);
|
|
30
|
+
|
|
31
|
+
var AnswerFrequencySummary = /*#__PURE__*/function (_Component) {
|
|
32
|
+
(0, _inherits2.default)(AnswerFrequencySummary, _Component);
|
|
33
|
+
|
|
34
|
+
var _super = (0, _createSuper2.default)(AnswerFrequencySummary);
|
|
35
|
+
|
|
36
|
+
function AnswerFrequencySummary() {
|
|
37
|
+
var _this;
|
|
38
|
+
|
|
39
|
+
(0, _classCallCheck2.default)(this, AnswerFrequencySummary);
|
|
40
|
+
|
|
41
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
42
|
+
args[_key] = arguments[_key];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
46
|
+
|
|
47
|
+
_this.render = function () {
|
|
48
|
+
var _this$props = _this.props,
|
|
49
|
+
itemId = _this$props.itemId,
|
|
50
|
+
answerSummary = _this$props.answerSummary,
|
|
51
|
+
interactionType = _this$props.interactionType;
|
|
52
|
+
var AfsTableComponent = afsTableComponentMap.get(interactionType);
|
|
53
|
+
|
|
54
|
+
if (!AfsTableComponent) {
|
|
55
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return /*#__PURE__*/_react.default.createElement(AfsTableComponent, {
|
|
59
|
+
itemId: itemId,
|
|
60
|
+
answerSummary: answerSummary
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
return _this;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return AnswerFrequencySummary;
|
|
68
|
+
}(_react.Component);
|
|
69
|
+
|
|
70
|
+
exports.AnswerFrequencySummary = AnswerFrequencySummary;
|
|
71
|
+
AnswerFrequencySummary.propTypes = {
|
|
72
|
+
itemId: _quizInteractions.PropTypes.number,
|
|
73
|
+
answerSummary: _propTypes.answerSummaryPropType,
|
|
74
|
+
interactionType: _quizInteractions.PropTypes.string
|
|
75
|
+
}.isRequired;
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js
CHANGED
|
@@ -47,7 +47,7 @@ var _classnames3 = _interopRequireDefault(require("classnames"));
|
|
|
47
47
|
|
|
48
48
|
var _interactionTypeMetadata = require("../../../../../common/util/interactionTypeMetadata.js");
|
|
49
49
|
|
|
50
|
-
var _index5 = _interopRequireDefault(require("../
|
|
50
|
+
var _index5 = _interopRequireDefault(require("../AnswerFrequencySummary/index.js"));
|
|
51
51
|
|
|
52
52
|
var _propTypes = require("../propTypes.js");
|
|
53
53
|
|
|
@@ -62,22 +62,21 @@ var _quizInteractions = require("@instructure/quiz-interactions");
|
|
|
62
62
|
var _dec, _class, _class2, _temp;
|
|
63
63
|
|
|
64
64
|
var styles = {
|
|
65
|
-
componentId: '
|
|
65
|
+
componentId: 'ewlJT',
|
|
66
66
|
template: function template(theme) {
|
|
67
|
-
return "\n\n.
|
|
67
|
+
return "\n\n.ewlJT_eKXQ{padding:".concat(theme.cardWrapperPadding || 'inherit', "}\n\n.ewlJT_bwlc{gap:24px;justify-content:space-between;position:relative;row-gap:32px}\n\n.ewlJT_bwlc,.ewlJT_bqdH{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:wrap}\n\n.ewlJT_bqdH{row-gap:24px}\n\n.ewlJT_NpIG{position:absolute;right:").concat(theme.viewPaddingRight || 'inherit', ";top:0}\n\n.ewlJT_eoBe{font-size:").concat(theme.metricNumberContextFontSize || 'inherit', ";font-weight:").concat(theme.metricNumberContextFontWeight || 'inherit', "}\n\n.ewlJT_fFDJ{display:none}\n\n.ewlJT_fxkJ{margin-top:-8px}\n\n.ewlJT_esVF{min-height:48px}\n\n.ewlJT_eTZq{position:relative}\n\n.ewlJT_eTZq:after{background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff);content:\"\";height:48px;left:0;position:absolute;top:0;width:100%}\n\n.ewlJT_cVld{max-width:100%;width:calc(25% + 350px)}");
|
|
68
68
|
},
|
|
69
|
-
'cardWrapper': '
|
|
70
|
-
'itemCardInnerContainer': '
|
|
71
|
-
'metricsContainer': '
|
|
72
|
-
'itemCardToggleButtonWrapper': '
|
|
73
|
-
'metricNumberContext': '
|
|
74
|
-
'hiddenMetrics': '
|
|
75
|
-
'itemBodyToggleButtonWrapper': '
|
|
76
|
-
'itemBody': '
|
|
77
|
-
'hiddenItemBody': '
|
|
78
|
-
'
|
|
69
|
+
'cardWrapper': 'ewlJT_eKXQ',
|
|
70
|
+
'itemCardInnerContainer': 'ewlJT_bwlc',
|
|
71
|
+
'metricsContainer': 'ewlJT_bqdH',
|
|
72
|
+
'itemCardToggleButtonWrapper': 'ewlJT_NpIG',
|
|
73
|
+
'metricNumberContext': 'ewlJT_eoBe',
|
|
74
|
+
'hiddenMetrics': 'ewlJT_fFDJ',
|
|
75
|
+
'itemBodyToggleButtonWrapper': 'ewlJT_fxkJ',
|
|
76
|
+
'itemBody': 'ewlJT_esVF',
|
|
77
|
+
'hiddenItemBody': 'ewlJT_eTZq',
|
|
78
|
+
'answerFrequencySummaryContainer': 'ewlJT_cVld'
|
|
79
79
|
};
|
|
80
|
-
var supportedTables = ['choice', 'true-false', 'multi-answer'];
|
|
81
80
|
var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
82
81
|
(0, _inherits2.default)(NewItemAnalysis, _Component);
|
|
83
82
|
|
|
@@ -229,19 +228,16 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
229
228
|
}))))));
|
|
230
229
|
};
|
|
231
230
|
|
|
232
|
-
_this.renderAnswerSummaryTable = function (itemId, answer_summary,
|
|
233
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
231
|
+
_this.renderAnswerSummaryTable = function (itemId, answer_summary, metricsClass, interactionType) {
|
|
232
|
+
return /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
234
233
|
className: metricsClass
|
|
235
234
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
236
|
-
className: styles.
|
|
237
|
-
}, isSupportedTable && /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
|
|
238
|
-
direction: "row"
|
|
239
|
-
}, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, {
|
|
240
|
-
shouldGrow: true
|
|
235
|
+
className: styles.answerFrequencySummaryContainer
|
|
241
236
|
}, /*#__PURE__*/_react.default.createElement(_index5.default, {
|
|
242
237
|
itemId: itemId,
|
|
243
|
-
answerSummary: answer_summary
|
|
244
|
-
|
|
238
|
+
answerSummary: answer_summary,
|
|
239
|
+
interactionType: interactionType
|
|
240
|
+
}))));
|
|
245
241
|
};
|
|
246
242
|
|
|
247
243
|
return _this;
|
|
@@ -291,7 +287,7 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
291
287
|
metadata = itemAnalysis.metadata,
|
|
292
288
|
scores = itemAnalysis.scores;
|
|
293
289
|
var itemId = metadata.item_id;
|
|
294
|
-
var
|
|
290
|
+
var interactionType = metadata.interaction_type;
|
|
295
291
|
var metricsClass = (0, _classnames3.default)((0, _defineProperty2.default)({}, styles.hiddenMetrics, !this.state.metricsExpanded));
|
|
296
292
|
var itemBodyClass = (0, _classnames3.default)(styles.itemBody, (0, _defineProperty2.default)({}, styles.hiddenItemBody, this.isBodyHigherThanContainer() && !this.state.bodyExpanded));
|
|
297
293
|
var title = (_metadata$item_title = metadata.item_title) !== null && _metadata$item_title !== void 0 ? _metadata$item_title : (0, _formatMessage.default)('Untitled item');
|
|
@@ -315,7 +311,7 @@ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
|
|
|
315
311
|
padding: "small xx-small none none",
|
|
316
312
|
overflowY: "hidden",
|
|
317
313
|
size: !this.state.bodyExpanded ? '60px' : void 0
|
|
318
|
-
}, this.renderRichContent(metadata.item_body, itemBodyClass, itemId)))), /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, null, this.renderMetrics(scores, metricsClass)))), showFrequencyTable &&
|
|
314
|
+
}, this.renderRichContent(metadata.item_body, itemBodyClass, itemId)))), /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, null, this.renderMetrics(scores, metricsClass)))), showFrequencyTable && this.renderAnswerSummaryTable(itemId, answer_summary, metricsClass, interactionType)));
|
|
319
315
|
}
|
|
320
316
|
}]);
|
|
321
317
|
NewItemAnalysis.displayName = "NewItemAnalysis";
|