@instructure/quiz-core 20.7.1-rc.10 → 20.7.1-rc.11
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/ScoreDistributionType/Table/index.js +120 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/Table/styles.js +38 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/Table/theme.js +11 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/index.js +55 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/presenter.js +9 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/presenter.js +8 -2
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +3 -1
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +15 -2
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/Table/index.js +140 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/Table/styles.js +46 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/Table/theme.js +19 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ScoreDistributionType/index.js +80 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/presenter.js +10 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/presenter.js +8 -2
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +3 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +22 -3
- package/package.json +9 -9
|
@@ -0,0 +1,120 @@
|
|
|
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
|
+
|
|
6
|
+
var _dec, _class, _class2, _temp;
|
|
7
|
+
|
|
8
|
+
/** @jsx jsx */
|
|
9
|
+
import { scoreDistributionType } from "../../../propTypes.js";
|
|
10
|
+
import { Component } from 'react';
|
|
11
|
+
import t from '@instructure/quiz-i18n/es/format-message';
|
|
12
|
+
import { Table } from '@instructure/ui-table';
|
|
13
|
+
import PropTypes from 'prop-types';
|
|
14
|
+
import { withStyle, jsx } from '@instructure/emotion';
|
|
15
|
+
import generateStyle from "./styles.js";
|
|
16
|
+
import generateComponentTheme from "./theme.js";
|
|
17
|
+
export var ScoreDistributionTypeTable = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
18
|
+
_inherits(ScoreDistributionTypeTable, _Component);
|
|
19
|
+
|
|
20
|
+
var _super = _createSuper(ScoreDistributionTypeTable);
|
|
21
|
+
|
|
22
|
+
function ScoreDistributionTypeTable() {
|
|
23
|
+
var _this;
|
|
24
|
+
|
|
25
|
+
_classCallCheck(this, ScoreDistributionTypeTable);
|
|
26
|
+
|
|
27
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
28
|
+
args[_key] = arguments[_key];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
32
|
+
|
|
33
|
+
_this.renderFirstCell = function (content) {
|
|
34
|
+
return jsx("div", {
|
|
35
|
+
css: _this.props.styles.firstTextContainer
|
|
36
|
+
}, content);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
_this.renderCell = function (content) {
|
|
40
|
+
return jsx("div", {
|
|
41
|
+
css: _this.props.styles.textContainer
|
|
42
|
+
}, content);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
_this.renderRow = function (choice, choiceIndex) {
|
|
46
|
+
var count = choice.count,
|
|
47
|
+
score = choice.score,
|
|
48
|
+
percentage = choice.percentage;
|
|
49
|
+
return jsx(Table.Row, {
|
|
50
|
+
key: choiceIndex
|
|
51
|
+
}, jsx(Table.Cell, {
|
|
52
|
+
themeOverride: {
|
|
53
|
+
padding: '0'
|
|
54
|
+
}
|
|
55
|
+
}, _this.renderFirstCell(score)), jsx(Table.Cell, {
|
|
56
|
+
themeOverride: {
|
|
57
|
+
padding: '0'
|
|
58
|
+
}
|
|
59
|
+
}, _this.renderCell(count)), jsx(Table.Cell, {
|
|
60
|
+
themeOverride: {
|
|
61
|
+
padding: '0'
|
|
62
|
+
},
|
|
63
|
+
textAlign: "center"
|
|
64
|
+
}, _this.renderCell("".concat(percentage, "%"))));
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
return _this;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
_createClass(ScoreDistributionTypeTable, [{
|
|
71
|
+
key: "componentDidMount",
|
|
72
|
+
value: function componentDidMount() {
|
|
73
|
+
this.props.makeStyles();
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "componentDidUpdate",
|
|
77
|
+
value: function componentDidUpdate() {
|
|
78
|
+
this.props.makeStyles();
|
|
79
|
+
}
|
|
80
|
+
}, {
|
|
81
|
+
key: "render",
|
|
82
|
+
value: function render() {
|
|
83
|
+
var _this$props = this.props,
|
|
84
|
+
scores = _this$props.scores,
|
|
85
|
+
itemId = _this$props.itemId,
|
|
86
|
+
styles = _this$props.styles;
|
|
87
|
+
var pointsHeaderId = "answer-frequency-summary-points-".concat(itemId);
|
|
88
|
+
var respondentsHeaderId = "answer-frequency-summary-respondents-".concat(itemId);
|
|
89
|
+
var percentageHeaderId = "answer-frequency-summary-percentage-".concat(itemId);
|
|
90
|
+
return jsx("div", {
|
|
91
|
+
css: styles.tableContainer
|
|
92
|
+
}, jsx(Table, {
|
|
93
|
+
caption: t('Score Frequency Summary'),
|
|
94
|
+
elementRef: this.setTableRef
|
|
95
|
+
}, jsx(Table.Head, null, jsx(Table.Row, null, jsx(Table.ColHeader, {
|
|
96
|
+
id: pointsHeaderId,
|
|
97
|
+
height: "47px"
|
|
98
|
+
}, t('Points')), jsx(Table.ColHeader, {
|
|
99
|
+
id: respondentsHeaderId,
|
|
100
|
+
height: "47px",
|
|
101
|
+
textAlign: "center"
|
|
102
|
+
}, t('Respondents')), jsx(Table.ColHeader, {
|
|
103
|
+
id: percentageHeaderId,
|
|
104
|
+
height: "47px",
|
|
105
|
+
textAlign: "center"
|
|
106
|
+
}, t('%')))), jsx(Table.Body, null, scores.map(this.renderRow))));
|
|
107
|
+
}
|
|
108
|
+
}]);
|
|
109
|
+
|
|
110
|
+
ScoreDistributionTypeTable.displayName = "ScoreDistributionTypeTable";
|
|
111
|
+
return ScoreDistributionTypeTable;
|
|
112
|
+
}(Component), _class2.propTypes = {
|
|
113
|
+
itemId: PropTypes.number.isRequired,
|
|
114
|
+
scores: PropTypes.arrayOf(scoreDistributionType).isRequired,
|
|
115
|
+
// eslint-disable-next-line react/require-default-props
|
|
116
|
+
makeStyles: PropTypes.func,
|
|
117
|
+
// eslint-disable-next-line react/require-default-props,react/forbid-prop-types
|
|
118
|
+
styles: PropTypes.object
|
|
119
|
+
}, _temp)) || _class);
|
|
120
|
+
export default ScoreDistributionTypeTable;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var generateStyle = function generateStyle(componentTheme) {
|
|
2
|
+
var borderBottom = "solid 0.0625rem ".concat(componentTheme.colorGray);
|
|
3
|
+
return {
|
|
4
|
+
tableContainer: {
|
|
5
|
+
width: 'calc(25% + 350px)',
|
|
6
|
+
maxWidth: '100%',
|
|
7
|
+
'& table': {
|
|
8
|
+
borderCollapse: 'separate',
|
|
9
|
+
borderSpacing: '0 1px',
|
|
10
|
+
'& thead tr': {
|
|
11
|
+
'& th, & td': {
|
|
12
|
+
borderBottom: borderBottom
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
'& tbody tr': {
|
|
16
|
+
'& th, & td': {
|
|
17
|
+
width: '33.33%',
|
|
18
|
+
borderBottom: borderBottom
|
|
19
|
+
},
|
|
20
|
+
'& th': {
|
|
21
|
+
fontWeight: 400
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
textContainer: {
|
|
27
|
+
height: 'calc(100% - 4px)',
|
|
28
|
+
display: 'flex',
|
|
29
|
+
alignItems: 'center',
|
|
30
|
+
justifyContent: 'center'
|
|
31
|
+
},
|
|
32
|
+
firstTextContainer: {
|
|
33
|
+
padding: componentTheme.cellPadding
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export default generateStyle;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var generateComponentTheme = function generateComponentTheme(_ref) {
|
|
2
|
+
var spacing = _ref.spacing,
|
|
3
|
+
colors = _ref.colors;
|
|
4
|
+
return {
|
|
5
|
+
tableBottomPadding: spacing === null || spacing === void 0 ? void 0 : spacing.medium,
|
|
6
|
+
colorGray: colors === null || colors === void 0 ? void 0 : colors.tiara,
|
|
7
|
+
cellPadding: "".concat(spacing === null || spacing === void 0 ? void 0 : spacing.small, " ").concat(spacing === null || spacing === void 0 ? void 0 : spacing.small)
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default generateComponentTheme;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
3
|
+
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
4
|
+
import React, { Component } from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import ScoreDistributionTypeTable from "./Table/index.js";
|
|
7
|
+
import { scoreDistributionTypeAnswerSummaryPropType } from "../../propTypes.js";
|
|
8
|
+
import AggregationTable from "../shared/AggregationTable/index.js";
|
|
9
|
+
import { AfsPartsContainer } from "../shared/AfsPartsContainer/presenter.js";
|
|
10
|
+
import AfsTableWrapper from "../shared/AfsTableWrapper/index.js";
|
|
11
|
+
import t from '@instructure/quiz-i18n/es/format-message';
|
|
12
|
+
export var ScoreDistributionType = /*#__PURE__*/function (_Component) {
|
|
13
|
+
_inherits(ScoreDistributionType, _Component);
|
|
14
|
+
|
|
15
|
+
var _super = _createSuper(ScoreDistributionType);
|
|
16
|
+
|
|
17
|
+
function ScoreDistributionType() {
|
|
18
|
+
var _this;
|
|
19
|
+
|
|
20
|
+
_classCallCheck(this, ScoreDistributionType);
|
|
21
|
+
|
|
22
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
23
|
+
args[_key] = arguments[_key];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
27
|
+
|
|
28
|
+
_this.render = function () {
|
|
29
|
+
var _this$props = _this.props,
|
|
30
|
+
answerSummary = _this$props.answerSummary,
|
|
31
|
+
itemId = _this$props.itemId;
|
|
32
|
+
return /*#__PURE__*/React.createElement(AfsTableWrapper, {
|
|
33
|
+
tableHeader: t('Score Frequency Summary')
|
|
34
|
+
}, /*#__PURE__*/React.createElement(AfsPartsContainer, {
|
|
35
|
+
afsTable: /*#__PURE__*/React.createElement(ScoreDistributionTypeTable, {
|
|
36
|
+
itemId: itemId,
|
|
37
|
+
scores: answerSummary.score_distribution
|
|
38
|
+
}),
|
|
39
|
+
aggregationTable: /*#__PURE__*/React.createElement(AggregationTable, {
|
|
40
|
+
itemId: itemId,
|
|
41
|
+
answerSummary: answerSummary
|
|
42
|
+
})
|
|
43
|
+
}));
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
return _this;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return ScoreDistributionType;
|
|
50
|
+
}(Component);
|
|
51
|
+
ScoreDistributionType.propTypes = {
|
|
52
|
+
itemId: PropTypes.number,
|
|
53
|
+
answerSummary: scoreDistributionTypeAnswerSummaryPropType
|
|
54
|
+
}.isRequired;
|
|
55
|
+
export default ScoreDistributionType;
|
package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/presenter.js
CHANGED
|
@@ -8,6 +8,7 @@ import ChoiceType from "./ChoiceType/index.js";
|
|
|
8
8
|
import RichFillBlankType from "./RichFillBlankType/index.js";
|
|
9
9
|
import AggregationType from "./AggregationType/index.js";
|
|
10
10
|
import { MatchingType, OrderingType, CategorizationType } from "./MatchingType/index.js";
|
|
11
|
+
import { ScoreDistributionType } from "./ScoreDistributionType/index.js";
|
|
11
12
|
import { afsFlags, answerSummaryPropType } from "../propTypes.js";
|
|
12
13
|
export var AnswerFrequencySummary = /*#__PURE__*/function (_Component) {
|
|
13
14
|
_inherits(AnswerFrequencySummary, _Component);
|
|
@@ -62,6 +63,14 @@ export var AnswerFrequencySummary = /*#__PURE__*/function (_Component) {
|
|
|
62
63
|
if (afsFlags.fillInTheBlankEnabled) {
|
|
63
64
|
_this.afsTableComponentMap.set('rich-fill-blank', RichFillBlankType);
|
|
64
65
|
}
|
|
66
|
+
|
|
67
|
+
if (afsFlags.essayEnabled) {
|
|
68
|
+
_this.afsTableComponentMap.set('essay', ScoreDistributionType);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (afsFlags.fileUploadEnabled) {
|
|
72
|
+
_this.afsTableComponentMap.set('file-upload', ScoreDistributionType);
|
|
73
|
+
}
|
|
65
74
|
};
|
|
66
75
|
|
|
67
76
|
_this.render = function () {
|
|
@@ -28,6 +28,11 @@ export var AfsTableWrapper = (_dec = withStyle(generateStyle, null), _dec(_class
|
|
|
28
28
|
|
|
29
29
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
30
30
|
|
|
31
|
+
_this.getHeader = function () {
|
|
32
|
+
var tableHeader = _this.props.tableHeader;
|
|
33
|
+
return tableHeader || t('Answer Frequency Summary');
|
|
34
|
+
};
|
|
35
|
+
|
|
31
36
|
_this.render = function () {
|
|
32
37
|
return jsx(Flex, {
|
|
33
38
|
direction: "row",
|
|
@@ -41,7 +46,7 @@ export var AfsTableWrapper = (_dec = withStyle(generateStyle, null), _dec(_class
|
|
|
41
46
|
level: "h3",
|
|
42
47
|
weight: "bold",
|
|
43
48
|
color: "primary"
|
|
44
|
-
},
|
|
49
|
+
}, _this.getHeader()), _this.props.children)));
|
|
45
50
|
};
|
|
46
51
|
|
|
47
52
|
return _this;
|
|
@@ -50,5 +55,6 @@ export var AfsTableWrapper = (_dec = withStyle(generateStyle, null), _dec(_class
|
|
|
50
55
|
return AfsTableWrapper;
|
|
51
56
|
}(Component), _class2.propTypes = {
|
|
52
57
|
children: PropTypes.node.isRequired,
|
|
53
|
-
styles: PropTypes.object
|
|
58
|
+
styles: PropTypes.object,
|
|
59
|
+
tableHeader: PropTypes.string
|
|
54
60
|
}, _temp)) || _class);
|
|
@@ -13,7 +13,9 @@ function mapStateToProps(_state) {
|
|
|
13
13
|
trueFalseEnabled: featureOn('ia_true_false_afs'),
|
|
14
14
|
choiceEnabled: featureOn('ia_choice_afs'),
|
|
15
15
|
multiAnswerEnabled: featureOn('ia_multi_answer_afs'),
|
|
16
|
-
fillInTheBlankEnabled: featureOn('ia_rich_fill_blank_afs')
|
|
16
|
+
fillInTheBlankEnabled: featureOn('ia_rich_fill_blank_afs'),
|
|
17
|
+
essayEnabled: featureOn('ia_essay_afs'),
|
|
18
|
+
fileUploadEnabled: featureOn('ia_file_upload_afs')
|
|
17
19
|
}
|
|
18
20
|
};
|
|
19
21
|
}
|
|
@@ -50,6 +50,17 @@ export var choiceTypeAnswerSummaryPropType = PropTypes.shape({
|
|
|
50
50
|
no_answer: aggregateDetailPropType,
|
|
51
51
|
aggregate: aggregatePropType
|
|
52
52
|
});
|
|
53
|
+
export var scoreDistributionTypeAnswerSummaryPropType = PropTypes.shape({
|
|
54
|
+
no_answer: aggregateDetailPropType.isRequired,
|
|
55
|
+
aggregate: aggregatePropType.isRequired,
|
|
56
|
+
graded: aggregateDetailPropType.isRequired,
|
|
57
|
+
score_distribution: PropTypes.arrayOf(scoreDistributionType).isRequired
|
|
58
|
+
});
|
|
59
|
+
export var scoreDistributionType = PropTypes.shape({
|
|
60
|
+
count: PropTypes.number.isRequired,
|
|
61
|
+
score: PropTypes.number.isRequired,
|
|
62
|
+
percentage: PropTypes.number.isRequired
|
|
63
|
+
});
|
|
53
64
|
export var matchingTypeAnswerSummaryPropType = PropTypes.shape({
|
|
54
65
|
questions: PropTypes.objectOf(PropTypes.shape({
|
|
55
66
|
body: PropTypes.string,
|
|
@@ -77,7 +88,7 @@ export var richFillBlankTypeAnswerSummaryPropType = PropTypes.shape({
|
|
|
77
88
|
no_answer: aggregateDetailPropType,
|
|
78
89
|
aggregate: aggregatePropType
|
|
79
90
|
});
|
|
80
|
-
export var answerSummaryPropType = PropTypes.oneOfType([choiceTypeAnswerSummaryPropType, onlyAggregatePropType, matchingTypeAnswerSummaryPropType, richFillBlankTypeAnswerSummaryPropType]);
|
|
91
|
+
export var answerSummaryPropType = PropTypes.oneOfType([choiceTypeAnswerSummaryPropType, onlyAggregatePropType, matchingTypeAnswerSummaryPropType, richFillBlankTypeAnswerSummaryPropType, scoreDistributionTypeAnswerSummaryPropType]);
|
|
81
92
|
export var itemAnalysisPropType = PropTypes.shape({
|
|
82
93
|
attempts: PropTypes.shape({
|
|
83
94
|
students_responded: PropTypes.number,
|
|
@@ -109,5 +120,7 @@ export var afsFlags = PropTypes.shape({
|
|
|
109
120
|
trueFalseEnabled: PropTypes.bool.isRequired,
|
|
110
121
|
choiceEnabled: PropTypes.bool.isRequired,
|
|
111
122
|
multiAnswerEnabled: PropTypes.bool.isRequired,
|
|
112
|
-
fillInTheBlankEnabled: PropTypes.bool.isRequired
|
|
123
|
+
fillInTheBlankEnabled: PropTypes.bool.isRequired,
|
|
124
|
+
essayEnabled: PropTypes.bool.isRequired,
|
|
125
|
+
fileUploadEnabled: PropTypes.bool.isRequired
|
|
113
126
|
});
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.ScoreDistributionTypeTable = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
17
|
+
|
|
18
|
+
var _propTypes = require("../../../propTypes.js");
|
|
19
|
+
|
|
20
|
+
var _react = require("react");
|
|
21
|
+
|
|
22
|
+
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
23
|
+
|
|
24
|
+
var _uiTable = require("@instructure/ui-table");
|
|
25
|
+
|
|
26
|
+
var _propTypes2 = _interopRequireDefault(require("prop-types"));
|
|
27
|
+
|
|
28
|
+
var _emotion = require("@instructure/emotion");
|
|
29
|
+
|
|
30
|
+
var _styles = _interopRequireDefault(require("./styles.js"));
|
|
31
|
+
|
|
32
|
+
var _theme = _interopRequireDefault(require("./theme.js"));
|
|
33
|
+
|
|
34
|
+
var _dec, _class, _class2, _temp;
|
|
35
|
+
|
|
36
|
+
var ScoreDistributionTypeTable = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
37
|
+
(0, _inherits2.default)(ScoreDistributionTypeTable, _Component);
|
|
38
|
+
|
|
39
|
+
var _super = (0, _createSuper2.default)(ScoreDistributionTypeTable);
|
|
40
|
+
|
|
41
|
+
function ScoreDistributionTypeTable() {
|
|
42
|
+
var _this;
|
|
43
|
+
|
|
44
|
+
(0, _classCallCheck2.default)(this, ScoreDistributionTypeTable);
|
|
45
|
+
|
|
46
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
47
|
+
args[_key] = arguments[_key];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
51
|
+
|
|
52
|
+
_this.renderFirstCell = function (content) {
|
|
53
|
+
return (0, _emotion.jsx)("div", {
|
|
54
|
+
css: _this.props.styles.firstTextContainer
|
|
55
|
+
}, content);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
_this.renderCell = function (content) {
|
|
59
|
+
return (0, _emotion.jsx)("div", {
|
|
60
|
+
css: _this.props.styles.textContainer
|
|
61
|
+
}, content);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
_this.renderRow = function (choice, choiceIndex) {
|
|
65
|
+
var count = choice.count,
|
|
66
|
+
score = choice.score,
|
|
67
|
+
percentage = choice.percentage;
|
|
68
|
+
return (0, _emotion.jsx)(_uiTable.Table.Row, {
|
|
69
|
+
key: choiceIndex
|
|
70
|
+
}, (0, _emotion.jsx)(_uiTable.Table.Cell, {
|
|
71
|
+
themeOverride: {
|
|
72
|
+
padding: '0'
|
|
73
|
+
}
|
|
74
|
+
}, _this.renderFirstCell(score)), (0, _emotion.jsx)(_uiTable.Table.Cell, {
|
|
75
|
+
themeOverride: {
|
|
76
|
+
padding: '0'
|
|
77
|
+
}
|
|
78
|
+
}, _this.renderCell(count)), (0, _emotion.jsx)(_uiTable.Table.Cell, {
|
|
79
|
+
themeOverride: {
|
|
80
|
+
padding: '0'
|
|
81
|
+
},
|
|
82
|
+
textAlign: "center"
|
|
83
|
+
}, _this.renderCell("".concat(percentage, "%"))));
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
return _this;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
(0, _createClass2.default)(ScoreDistributionTypeTable, [{
|
|
90
|
+
key: "componentDidMount",
|
|
91
|
+
value: function componentDidMount() {
|
|
92
|
+
this.props.makeStyles();
|
|
93
|
+
}
|
|
94
|
+
}, {
|
|
95
|
+
key: "componentDidUpdate",
|
|
96
|
+
value: function componentDidUpdate() {
|
|
97
|
+
this.props.makeStyles();
|
|
98
|
+
}
|
|
99
|
+
}, {
|
|
100
|
+
key: "render",
|
|
101
|
+
value: function render() {
|
|
102
|
+
var _this$props = this.props,
|
|
103
|
+
scores = _this$props.scores,
|
|
104
|
+
itemId = _this$props.itemId,
|
|
105
|
+
styles = _this$props.styles;
|
|
106
|
+
var pointsHeaderId = "answer-frequency-summary-points-".concat(itemId);
|
|
107
|
+
var respondentsHeaderId = "answer-frequency-summary-respondents-".concat(itemId);
|
|
108
|
+
var percentageHeaderId = "answer-frequency-summary-percentage-".concat(itemId);
|
|
109
|
+
return (0, _emotion.jsx)("div", {
|
|
110
|
+
css: styles.tableContainer
|
|
111
|
+
}, (0, _emotion.jsx)(_uiTable.Table, {
|
|
112
|
+
caption: (0, _formatMessage.default)('Score Frequency Summary'),
|
|
113
|
+
elementRef: this.setTableRef
|
|
114
|
+
}, (0, _emotion.jsx)(_uiTable.Table.Head, null, (0, _emotion.jsx)(_uiTable.Table.Row, null, (0, _emotion.jsx)(_uiTable.Table.ColHeader, {
|
|
115
|
+
id: pointsHeaderId,
|
|
116
|
+
height: "47px"
|
|
117
|
+
}, (0, _formatMessage.default)('Points')), (0, _emotion.jsx)(_uiTable.Table.ColHeader, {
|
|
118
|
+
id: respondentsHeaderId,
|
|
119
|
+
height: "47px",
|
|
120
|
+
textAlign: "center"
|
|
121
|
+
}, (0, _formatMessage.default)('Respondents')), (0, _emotion.jsx)(_uiTable.Table.ColHeader, {
|
|
122
|
+
id: percentageHeaderId,
|
|
123
|
+
height: "47px",
|
|
124
|
+
textAlign: "center"
|
|
125
|
+
}, (0, _formatMessage.default)('%')))), (0, _emotion.jsx)(_uiTable.Table.Body, null, scores.map(this.renderRow))));
|
|
126
|
+
}
|
|
127
|
+
}]);
|
|
128
|
+
ScoreDistributionTypeTable.displayName = "ScoreDistributionTypeTable";
|
|
129
|
+
return ScoreDistributionTypeTable;
|
|
130
|
+
}(_react.Component), _class2.propTypes = {
|
|
131
|
+
itemId: _propTypes2.default.number.isRequired,
|
|
132
|
+
scores: _propTypes2.default.arrayOf(_propTypes.scoreDistributionType).isRequired,
|
|
133
|
+
// eslint-disable-next-line react/require-default-props
|
|
134
|
+
makeStyles: _propTypes2.default.func,
|
|
135
|
+
// eslint-disable-next-line react/require-default-props,react/forbid-prop-types
|
|
136
|
+
styles: _propTypes2.default.object
|
|
137
|
+
}, _temp)) || _class);
|
|
138
|
+
exports.ScoreDistributionTypeTable = ScoreDistributionTypeTable;
|
|
139
|
+
var _default = ScoreDistributionTypeTable;
|
|
140
|
+
exports.default = _default;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var generateStyle = function generateStyle(componentTheme) {
|
|
9
|
+
var borderBottom = "solid 0.0625rem ".concat(componentTheme.colorGray);
|
|
10
|
+
return {
|
|
11
|
+
tableContainer: {
|
|
12
|
+
width: 'calc(25% + 350px)',
|
|
13
|
+
maxWidth: '100%',
|
|
14
|
+
'& table': {
|
|
15
|
+
borderCollapse: 'separate',
|
|
16
|
+
borderSpacing: '0 1px',
|
|
17
|
+
'& thead tr': {
|
|
18
|
+
'& th, & td': {
|
|
19
|
+
borderBottom: borderBottom
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
'& tbody tr': {
|
|
23
|
+
'& th, & td': {
|
|
24
|
+
width: '33.33%',
|
|
25
|
+
borderBottom: borderBottom
|
|
26
|
+
},
|
|
27
|
+
'& th': {
|
|
28
|
+
fontWeight: 400
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
textContainer: {
|
|
34
|
+
height: 'calc(100% - 4px)',
|
|
35
|
+
display: 'flex',
|
|
36
|
+
alignItems: 'center',
|
|
37
|
+
justifyContent: 'center'
|
|
38
|
+
},
|
|
39
|
+
firstTextContainer: {
|
|
40
|
+
padding: componentTheme.cellPadding
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
var _default = generateStyle;
|
|
46
|
+
exports.default = _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var generateComponentTheme = function generateComponentTheme(_ref) {
|
|
9
|
+
var spacing = _ref.spacing,
|
|
10
|
+
colors = _ref.colors;
|
|
11
|
+
return {
|
|
12
|
+
tableBottomPadding: spacing === null || spacing === void 0 ? void 0 : spacing.medium,
|
|
13
|
+
colorGray: colors === null || colors === void 0 ? void 0 : colors.tiara,
|
|
14
|
+
cellPadding: "".concat(spacing === null || spacing === void 0 ? void 0 : spacing.small, " ").concat(spacing === null || spacing === void 0 ? void 0 : spacing.small)
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
var _default = generateComponentTheme;
|
|
19
|
+
exports.default = _default;
|
|
@@ -0,0 +1,80 @@
|
|
|
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.default = exports.ScoreDistributionType = 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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
21
|
+
|
|
22
|
+
var _index = _interopRequireDefault(require("./Table/index.js"));
|
|
23
|
+
|
|
24
|
+
var _propTypes2 = require("../../propTypes.js");
|
|
25
|
+
|
|
26
|
+
var _index2 = _interopRequireDefault(require("../shared/AggregationTable/index.js"));
|
|
27
|
+
|
|
28
|
+
var _presenter = require("../shared/AfsPartsContainer/presenter.js");
|
|
29
|
+
|
|
30
|
+
var _index3 = _interopRequireDefault(require("../shared/AfsTableWrapper/index.js"));
|
|
31
|
+
|
|
32
|
+
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
33
|
+
|
|
34
|
+
var ScoreDistributionType = /*#__PURE__*/function (_Component) {
|
|
35
|
+
(0, _inherits2.default)(ScoreDistributionType, _Component);
|
|
36
|
+
|
|
37
|
+
var _super = (0, _createSuper2.default)(ScoreDistributionType);
|
|
38
|
+
|
|
39
|
+
function ScoreDistributionType() {
|
|
40
|
+
var _this;
|
|
41
|
+
|
|
42
|
+
(0, _classCallCheck2.default)(this, ScoreDistributionType);
|
|
43
|
+
|
|
44
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
45
|
+
args[_key] = arguments[_key];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
49
|
+
|
|
50
|
+
_this.render = function () {
|
|
51
|
+
var _this$props = _this.props,
|
|
52
|
+
answerSummary = _this$props.answerSummary,
|
|
53
|
+
itemId = _this$props.itemId;
|
|
54
|
+
return /*#__PURE__*/_react.default.createElement(_index3.default, {
|
|
55
|
+
tableHeader: (0, _formatMessage.default)('Score Frequency Summary')
|
|
56
|
+
}, /*#__PURE__*/_react.default.createElement(_presenter.AfsPartsContainer, {
|
|
57
|
+
afsTable: /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
58
|
+
itemId: itemId,
|
|
59
|
+
scores: answerSummary.score_distribution
|
|
60
|
+
}),
|
|
61
|
+
aggregationTable: /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
62
|
+
itemId: itemId,
|
|
63
|
+
answerSummary: answerSummary
|
|
64
|
+
})
|
|
65
|
+
}));
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
return _this;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return ScoreDistributionType;
|
|
72
|
+
}(_react.Component);
|
|
73
|
+
|
|
74
|
+
exports.ScoreDistributionType = ScoreDistributionType;
|
|
75
|
+
ScoreDistributionType.propTypes = {
|
|
76
|
+
itemId: _propTypes.default.number,
|
|
77
|
+
answerSummary: _propTypes2.scoreDistributionTypeAnswerSummaryPropType
|
|
78
|
+
}.isRequired;
|
|
79
|
+
var _default = ScoreDistributionType;
|
|
80
|
+
exports.default = _default;
|
|
@@ -29,6 +29,8 @@ var _index4 = _interopRequireDefault(require("./AggregationType/index.js"));
|
|
|
29
29
|
|
|
30
30
|
var _index5 = require("./MatchingType/index.js");
|
|
31
31
|
|
|
32
|
+
var _index6 = require("./ScoreDistributionType/index.js");
|
|
33
|
+
|
|
32
34
|
var _propTypes = require("../propTypes.js");
|
|
33
35
|
|
|
34
36
|
var AnswerFrequencySummary = /*#__PURE__*/function (_Component) {
|
|
@@ -84,6 +86,14 @@ var AnswerFrequencySummary = /*#__PURE__*/function (_Component) {
|
|
|
84
86
|
if (afsFlags.fillInTheBlankEnabled) {
|
|
85
87
|
_this.afsTableComponentMap.set('rich-fill-blank', _index3.default);
|
|
86
88
|
}
|
|
89
|
+
|
|
90
|
+
if (afsFlags.essayEnabled) {
|
|
91
|
+
_this.afsTableComponentMap.set('essay', _index6.ScoreDistributionType);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (afsFlags.fileUploadEnabled) {
|
|
95
|
+
_this.afsTableComponentMap.set('file-upload', _index6.ScoreDistributionType);
|
|
96
|
+
}
|
|
87
97
|
};
|
|
88
98
|
|
|
89
99
|
_this.render = function () {
|
|
@@ -45,6 +45,11 @@ var AfsTableWrapper = (_dec = (0, _emotion.withStyle)(_styles.default, null), _d
|
|
|
45
45
|
|
|
46
46
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
47
47
|
|
|
48
|
+
_this.getHeader = function () {
|
|
49
|
+
var tableHeader = _this.props.tableHeader;
|
|
50
|
+
return tableHeader || (0, _formatMessage.default)('Answer Frequency Summary');
|
|
51
|
+
};
|
|
52
|
+
|
|
48
53
|
_this.render = function () {
|
|
49
54
|
return (0, _emotion.jsx)(_uiFlex.Flex, {
|
|
50
55
|
direction: "row",
|
|
@@ -58,7 +63,7 @@ var AfsTableWrapper = (_dec = (0, _emotion.withStyle)(_styles.default, null), _d
|
|
|
58
63
|
level: "h3",
|
|
59
64
|
weight: "bold",
|
|
60
65
|
color: "primary"
|
|
61
|
-
},
|
|
66
|
+
}, _this.getHeader()), _this.props.children)));
|
|
62
67
|
};
|
|
63
68
|
|
|
64
69
|
return _this;
|
|
@@ -67,6 +72,7 @@ var AfsTableWrapper = (_dec = (0, _emotion.withStyle)(_styles.default, null), _d
|
|
|
67
72
|
return AfsTableWrapper;
|
|
68
73
|
}(_react.Component), _class2.propTypes = {
|
|
69
74
|
children: _propTypes.default.node.isRequired,
|
|
70
|
-
styles: _propTypes.default.object
|
|
75
|
+
styles: _propTypes.default.object,
|
|
76
|
+
tableHeader: _propTypes.default.string
|
|
71
77
|
}, _temp)) || _class);
|
|
72
78
|
exports.AfsTableWrapper = AfsTableWrapper;
|
|
@@ -22,7 +22,9 @@ function mapStateToProps(_state) {
|
|
|
22
22
|
trueFalseEnabled: (0, _featureCheck.featureOn)('ia_true_false_afs'),
|
|
23
23
|
choiceEnabled: (0, _featureCheck.featureOn)('ia_choice_afs'),
|
|
24
24
|
multiAnswerEnabled: (0, _featureCheck.featureOn)('ia_multi_answer_afs'),
|
|
25
|
-
fillInTheBlankEnabled: (0, _featureCheck.featureOn)('ia_rich_fill_blank_afs')
|
|
25
|
+
fillInTheBlankEnabled: (0, _featureCheck.featureOn)('ia_rich_fill_blank_afs'),
|
|
26
|
+
essayEnabled: (0, _featureCheck.featureOn)('ia_essay_afs'),
|
|
27
|
+
fileUploadEnabled: (0, _featureCheck.featureOn)('ia_file_upload_afs')
|
|
26
28
|
}
|
|
27
29
|
};
|
|
28
30
|
}
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.afsFlags = exports.itemAnalysisPropType = exports.answerSummaryPropType = exports.richFillBlankTypeAnswerSummaryPropType = exports.matchingTypeAnswerSummaryPropType = exports.choiceTypeAnswerSummaryPropType = exports.choiceTypeObject = exports.onlyAggregatePropType = exports.aggregatePropType = exports.aggregateDetailPropType = exports.quizAnalysisPropType = exports.quizAnalysisMetadata = void 0;
|
|
8
|
+
exports.afsFlags = exports.itemAnalysisPropType = exports.answerSummaryPropType = exports.richFillBlankTypeAnswerSummaryPropType = exports.matchingTypeAnswerSummaryPropType = exports.scoreDistributionType = exports.scoreDistributionTypeAnswerSummaryPropType = exports.choiceTypeAnswerSummaryPropType = exports.choiceTypeObject = exports.onlyAggregatePropType = exports.aggregatePropType = exports.aggregateDetailPropType = exports.quizAnalysisPropType = exports.quizAnalysisMetadata = void 0;
|
|
9
9
|
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
|
|
@@ -81,6 +81,23 @@ var choiceTypeAnswerSummaryPropType = _propTypes.default.shape({
|
|
|
81
81
|
|
|
82
82
|
exports.choiceTypeAnswerSummaryPropType = choiceTypeAnswerSummaryPropType;
|
|
83
83
|
|
|
84
|
+
var scoreDistributionTypeAnswerSummaryPropType = _propTypes.default.shape({
|
|
85
|
+
no_answer: aggregateDetailPropType.isRequired,
|
|
86
|
+
aggregate: aggregatePropType.isRequired,
|
|
87
|
+
graded: aggregateDetailPropType.isRequired,
|
|
88
|
+
score_distribution: _propTypes.default.arrayOf(scoreDistributionType).isRequired
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
exports.scoreDistributionTypeAnswerSummaryPropType = scoreDistributionTypeAnswerSummaryPropType;
|
|
92
|
+
|
|
93
|
+
var scoreDistributionType = _propTypes.default.shape({
|
|
94
|
+
count: _propTypes.default.number.isRequired,
|
|
95
|
+
score: _propTypes.default.number.isRequired,
|
|
96
|
+
percentage: _propTypes.default.number.isRequired
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
exports.scoreDistributionType = scoreDistributionType;
|
|
100
|
+
|
|
84
101
|
var matchingTypeAnswerSummaryPropType = _propTypes.default.shape({
|
|
85
102
|
questions: _propTypes.default.objectOf(_propTypes.default.shape({
|
|
86
103
|
body: _propTypes.default.string,
|
|
@@ -114,7 +131,7 @@ var richFillBlankTypeAnswerSummaryPropType = _propTypes.default.shape({
|
|
|
114
131
|
|
|
115
132
|
exports.richFillBlankTypeAnswerSummaryPropType = richFillBlankTypeAnswerSummaryPropType;
|
|
116
133
|
|
|
117
|
-
var answerSummaryPropType = _propTypes.default.oneOfType([choiceTypeAnswerSummaryPropType, onlyAggregatePropType, matchingTypeAnswerSummaryPropType, richFillBlankTypeAnswerSummaryPropType]);
|
|
134
|
+
var answerSummaryPropType = _propTypes.default.oneOfType([choiceTypeAnswerSummaryPropType, onlyAggregatePropType, matchingTypeAnswerSummaryPropType, richFillBlankTypeAnswerSummaryPropType, scoreDistributionTypeAnswerSummaryPropType]);
|
|
118
135
|
|
|
119
136
|
exports.answerSummaryPropType = answerSummaryPropType;
|
|
120
137
|
|
|
@@ -152,7 +169,9 @@ var afsFlags = _propTypes.default.shape({
|
|
|
152
169
|
trueFalseEnabled: _propTypes.default.bool.isRequired,
|
|
153
170
|
choiceEnabled: _propTypes.default.bool.isRequired,
|
|
154
171
|
multiAnswerEnabled: _propTypes.default.bool.isRequired,
|
|
155
|
-
fillInTheBlankEnabled: _propTypes.default.bool.isRequired
|
|
172
|
+
fillInTheBlankEnabled: _propTypes.default.bool.isRequired,
|
|
173
|
+
essayEnabled: _propTypes.default.bool.isRequired,
|
|
174
|
+
fileUploadEnabled: _propTypes.default.bool.isRequired
|
|
156
175
|
});
|
|
157
176
|
|
|
158
177
|
exports.afsFlags = afsFlags;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "20.7.1-rc.
|
|
3
|
+
"version": "20.7.1-rc.11+fa1890974",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The Quiz React SDK by Instructure Inc.",
|
|
6
6
|
"author": "Instructure, Inc. Engineering and Product Design",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"@instructure/emotion": "^8.51.0",
|
|
45
45
|
"@instructure/grading-utils": "^1.0.0",
|
|
46
46
|
"@instructure/outcomes-ui": "^3.1.0",
|
|
47
|
-
"@instructure/quiz-common": "20.7.1-rc.
|
|
48
|
-
"@instructure/quiz-i18n": "20.7.1-rc.
|
|
49
|
-
"@instructure/quiz-interactions": "20.7.1-rc.
|
|
50
|
-
"@instructure/quiz-number-input": "20.7.1-rc.
|
|
51
|
-
"@instructure/quiz-rce": "20.7.1-rc.
|
|
47
|
+
"@instructure/quiz-common": "20.7.1-rc.11+fa1890974",
|
|
48
|
+
"@instructure/quiz-i18n": "20.7.1-rc.11+fa1890974",
|
|
49
|
+
"@instructure/quiz-interactions": "20.7.1-rc.11+fa1890974",
|
|
50
|
+
"@instructure/quiz-number-input": "20.7.1-rc.11+fa1890974",
|
|
51
|
+
"@instructure/quiz-rce": "20.7.1-rc.11+fa1890974",
|
|
52
52
|
"@instructure/ui-a11y-content": "^8.51.0",
|
|
53
53
|
"@instructure/ui-alerts": "^8.51.0",
|
|
54
54
|
"@instructure/ui-avatar": "^8.51.0",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"file-saver": "~2.0.5",
|
|
113
113
|
"humps": "^2.0.0",
|
|
114
114
|
"immutable": "^3.8.1",
|
|
115
|
-
"instructure-validations": "20.7.1-rc.
|
|
115
|
+
"instructure-validations": "20.7.1-rc.11+fa1890974",
|
|
116
116
|
"ipaddr.js": "^1.5.4",
|
|
117
117
|
"isomorphic-fetch": "^2.2.0",
|
|
118
118
|
"isuuid": "^0.1.0",
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
"intl": "^1.2.4",
|
|
164
164
|
"jquery": "^2.2.3",
|
|
165
165
|
"most-subject": "^5.3.0",
|
|
166
|
-
"quiz-presets": "20.7.1-rc.
|
|
166
|
+
"quiz-presets": "20.7.1-rc.11+fa1890974",
|
|
167
167
|
"react": "^16.8.6",
|
|
168
168
|
"react-addons-test-utils": "^15.6.2",
|
|
169
169
|
"react-dom": "^16.8.6",
|
|
@@ -179,5 +179,5 @@
|
|
|
179
179
|
"publishConfig": {
|
|
180
180
|
"access": "public"
|
|
181
181
|
},
|
|
182
|
-
"gitHead": "
|
|
182
|
+
"gitHead": "fa1890974baa639fabfc8e64371fef39cfc57bc8"
|
|
183
183
|
}
|