@instructure/quiz-core 18.5.1-rc.9 → 18.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +8 -5
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/AggregationType/presenter.js +11 -21
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ChoiceType/presenter.js +5 -5
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/MatchingType.js +15 -25
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/MatchingTypeTable/presenter.js +4 -1
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/OrderingType.js +87 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/index.js +2 -1
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/presenter.js +8 -2
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsPartsContainer/index.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsPartsContainer/presenter.js +73 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +1 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/presenter.js +9 -9
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/theme.js +1 -1
- package/es/reporting/components/resources/ReportCard/theme.js +1 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +8 -5
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/AggregationType/presenter.js +15 -24
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/ChoiceType/presenter.js +5 -5
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/MatchingType.js +19 -29
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/MatchingTypeTable/presenter.js +5 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/OrderingType.js +115 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/MatchingType/index.js +9 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/presenter.js +7 -1
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsPartsContainer/index.js +13 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsPartsContainer/presenter.js +92 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +1 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/presenter.js +9 -9
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/theme.js +1 -1
- package/lib/reporting/components/resources/ReportCard/theme.js +1 -1
- package/package.json +10 -10
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/AggregationType/theme.js +0 -5
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/AggregationType/theme.js +0 -12
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,29 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [18.6.0](https://gerrit.instructure.com/quizzes-ui/compare/v18.5.0...v18.6.0) (2023-11-14)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **reports:** fixes for generate report button positioning after audit ([9f64fe1](https://gerrit.instructure.com/quizzes-ui/commits/9f64fe1029e0029cb999b0d8255369562691241f))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* **afs-formula:** Add formula aggregation ui component ([7e05172](https://gerrit.instructure.com/quizzes-ui/commits/7e05172cfb3460af3f9231c0e072898116415f40))
|
|
17
|
+
* **afs-hot-spot:** Add hot-spot afs ([b23d37c](https://gerrit.instructure.com/quizzes-ui/commits/b23d37cd626992f7db90c3453d1556df7b2b4cfb))
|
|
18
|
+
* **AfsOrderingType:** create frontend for ordering afs and summary part ([d1e9066](https://gerrit.instructure.com/quizzes-ui/commits/d1e9066d016e3503fecd812c533c388e68e49136))
|
|
19
|
+
* **Fetcher:** support auth header injection for requests with custom headers ([1553b56](https://gerrit.instructure.com/quizzes-ui/commits/1553b56ba37bfd69bb798c66ec34b3cd601ad8a3))
|
|
20
|
+
* **MatchingType:** create frontend for the afs table for matching question type ([c654589](https://gerrit.instructure.com/quizzes-ui/commits/c6545899277fee2f0cb7a574740c0b89e13c3ad3))
|
|
21
|
+
* **quizanalysis:** extend quiz analysis chart by extreme low and high value ([846b42d](https://gerrit.instructure.com/quizzes-ui/commits/846b42d6fbb1d77bb36641c1fa31725bb5b42b47))
|
|
22
|
+
* **Reports:** increase report card sizes, adapt metric rendering ([06ef7c9](https://gerrit.instructure.com/quizzes-ui/commits/06ef7c93969d591a3403d13a9365183179c855b1))
|
|
23
|
+
* **Reports:** pass down export download functionality to analysis components ([7684e86](https://gerrit.instructure.com/quizzes-ui/commits/7684e8663eece2857d4f080e80563f2a6f31de33))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
6
29
|
# [18.5.0](https://gerrit.instructure.com/quizzes-ui/compare/v18.4.0...v18.5.0) (2023-11-01)
|
|
7
30
|
|
|
8
31
|
|
package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js
CHANGED
|
@@ -8,11 +8,12 @@ var _dec, _class, _class2, _temp;
|
|
|
8
8
|
import { themeable } from '@instructure/ui-themeable';
|
|
9
9
|
import theme from "./theme.js";
|
|
10
10
|
var styles = {
|
|
11
|
-
componentId: '
|
|
11
|
+
componentId: 'fKESK',
|
|
12
12
|
template: function template(theme) {
|
|
13
|
-
return "\n\n.
|
|
13
|
+
return "\n\n.fKESK_eckF{margin:0;max-width:159px;text-transform:capitalize}\n\n.fKESK_CIyo{width:90px}";
|
|
14
14
|
},
|
|
15
|
-
'metricLabel': '
|
|
15
|
+
'metricLabel': 'fKESK_eckF',
|
|
16
|
+
'metricWrapper': 'fKESK_CIyo'
|
|
16
17
|
};
|
|
17
18
|
import React, { Component } from 'react';
|
|
18
19
|
import { getSanitizedMetricValue } from "../utils.js";
|
|
@@ -37,7 +38,9 @@ export var AnalysisMetric = (_dec = themeable(theme, styles), _dec(_class = (_te
|
|
|
37
38
|
label = _this$props.label,
|
|
38
39
|
value = _this$props.value,
|
|
39
40
|
suffix = _this$props.suffix;
|
|
40
|
-
return /*#__PURE__*/React.createElement(
|
|
41
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
42
|
+
className: styles.metricWrapper
|
|
43
|
+
}, /*#__PURE__*/React.createElement(Metric, {
|
|
41
44
|
theme: {
|
|
42
45
|
valueFontWeight: 500,
|
|
43
46
|
padding: '0'
|
|
@@ -48,7 +51,7 @@ export var AnalysisMetric = (_dec = themeable(theme, styles), _dec(_class = (_te
|
|
|
48
51
|
className: styles.metricLabel
|
|
49
52
|
}, label),
|
|
50
53
|
renderValue: getSanitizedMetricValue(value, suffix)
|
|
51
|
-
});
|
|
54
|
+
}));
|
|
52
55
|
}
|
|
53
56
|
}]);
|
|
54
57
|
|
|
@@ -1,24 +1,13 @@
|
|
|
1
1
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
2
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
3
3
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
4
|
-
|
|
5
|
-
var _dec, _class, _class2, _temp;
|
|
6
|
-
|
|
7
4
|
import React, { Component } from 'react';
|
|
8
5
|
import PropTypes from 'prop-types';
|
|
9
6
|
import AggregationTable from "../shared/AggregationTable/index.js";
|
|
10
7
|
import { onlyAggregatePropType } from "../../propTypes.js";
|
|
11
8
|
import { AfsTableWrapper } from "../shared/AfsTableWrapper/presenter.js";
|
|
12
|
-
import
|
|
13
|
-
var
|
|
14
|
-
componentId: 'JFhmr',
|
|
15
|
-
template: function template(theme) {
|
|
16
|
-
return "\n\n.JFhmr_cVld{max-width:100%;width:calc(25% + 350px)}";
|
|
17
|
-
},
|
|
18
|
-
'answerFrequencySummaryContainer': 'JFhmr_cVld'
|
|
19
|
-
};
|
|
20
|
-
import { themeable } from '@instructure/ui-themeable';
|
|
21
|
-
export var AggregationType = (_dec = themeable({}, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
9
|
+
import { AfsPartsContainer } from "../shared/AfsPartsContainer/presenter.js";
|
|
10
|
+
export var AggregationType = /*#__PURE__*/function (_Component) {
|
|
22
11
|
_inherits(AggregationType, _Component);
|
|
23
12
|
|
|
24
13
|
var _super = _createSuper(AggregationType);
|
|
@@ -38,19 +27,20 @@ export var AggregationType = (_dec = themeable({}, styles), _dec(_class = (_temp
|
|
|
38
27
|
var _this$props = _this.props,
|
|
39
28
|
answerSummary = _this$props.answerSummary,
|
|
40
29
|
itemId = _this$props.itemId;
|
|
41
|
-
return /*#__PURE__*/React.createElement(AfsTableWrapper, null, /*#__PURE__*/React.createElement(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}))
|
|
30
|
+
return /*#__PURE__*/React.createElement(AfsTableWrapper, null, /*#__PURE__*/React.createElement(AfsPartsContainer, {
|
|
31
|
+
aggregationTable: /*#__PURE__*/React.createElement(AggregationTable, {
|
|
32
|
+
itemId: itemId,
|
|
33
|
+
answerSummary: answerSummary
|
|
34
|
+
})
|
|
35
|
+
}));
|
|
47
36
|
};
|
|
48
37
|
|
|
49
38
|
return _this;
|
|
50
39
|
}
|
|
51
40
|
|
|
52
41
|
return AggregationType;
|
|
53
|
-
}(Component)
|
|
42
|
+
}(Component);
|
|
43
|
+
AggregationType.propTypes = {
|
|
54
44
|
itemId: PropTypes.number.isRequired,
|
|
55
45
|
answerSummary: onlyAggregatePropType
|
|
56
|
-
}.isRequired
|
|
46
|
+
}.isRequired;
|
|
@@ -14,12 +14,12 @@ import PropTypes from 'prop-types';
|
|
|
14
14
|
import ChoiceTypeTableRow from "./ChoiceTypeTableRow/index.js";
|
|
15
15
|
import { choiceTypeAnswerSummaryPropType } from "../../propTypes.js";
|
|
16
16
|
var styles = {
|
|
17
|
-
componentId: '
|
|
17
|
+
componentId: 'dCEWT',
|
|
18
18
|
template: function template(theme) {
|
|
19
|
-
return "\n\n.
|
|
19
|
+
return "\n\n.dCEWT_rMrG{display:flex;flex-basis:100%;flex-direction:column;padding-bottom:".concat(theme.tableBottomPadding || 'inherit', "}\n\n.dCEWT_SVtU{max-width:100%;width:calc(25% + 350px)}");
|
|
20
20
|
},
|
|
21
|
-
'tableWrapper': '
|
|
22
|
-
'
|
|
21
|
+
'tableWrapper': 'dCEWT_rMrG',
|
|
22
|
+
'tableContainer': 'dCEWT_SVtU'
|
|
23
23
|
};
|
|
24
24
|
import theme from "./theme.js";
|
|
25
25
|
import AfsTableWrapper from "../shared/AfsTableWrapper/index.js";
|
|
@@ -79,7 +79,7 @@ export var ChoiceType = (_dec = themeable(theme, styles), _dec(_class = (_temp =
|
|
|
79
79
|
var respondentsHeaderId = "answer-frequency-summary-respondents-".concat(itemId);
|
|
80
80
|
var percentageHeaderId = "answer-frequency-summary-percentage-".concat(itemId);
|
|
81
81
|
return /*#__PURE__*/React.createElement(AfsTableWrapper, null, /*#__PURE__*/React.createElement("div", {
|
|
82
|
-
className: classNames(styles.
|
|
82
|
+
className: classNames(styles.tableContainer)
|
|
83
83
|
}, /*#__PURE__*/React.createElement(Table, {
|
|
84
84
|
caption: t('Answer Frequency Summary')
|
|
85
85
|
}, /*#__PURE__*/React.createElement(Table.Head, null, /*#__PURE__*/React.createElement(Table.Row, null, /*#__PURE__*/React.createElement(Table.ColHeader, {
|
|
@@ -1,26 +1,14 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
2
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
4
3
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
|
-
|
|
6
|
-
var _dec, _class, _class2, _temp;
|
|
7
|
-
|
|
8
4
|
import React, { Component } from 'react';
|
|
9
5
|
import AfsTableWrapper from "../shared/AfsTableWrapper/index.js";
|
|
10
6
|
import MatchingTypeTable from "./MatchingTypeTable/index.js";
|
|
11
7
|
import PropTypes from 'prop-types';
|
|
12
8
|
import { matchingTypeAnswerSummaryPropType } from "../../propTypes.js";
|
|
13
9
|
import MatchingTypeOrderer from "./utils/matchingTypeOrderer.js";
|
|
14
|
-
import
|
|
15
|
-
var
|
|
16
|
-
componentId: 'JFhmr',
|
|
17
|
-
template: function template(theme) {
|
|
18
|
-
return "\n\n.JFhmr_cVld{max-width:100%;width:calc(25% + 350px)}";
|
|
19
|
-
},
|
|
20
|
-
'answerFrequencySummaryContainer': 'JFhmr_cVld'
|
|
21
|
-
};
|
|
22
|
-
import { themeable } from '@instructure/ui-themeable';
|
|
23
|
-
export var MatchingType = (_dec = themeable({}, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
10
|
+
import { AfsPartsContainer } from "../shared/AfsPartsContainer/presenter.js";
|
|
11
|
+
export var MatchingType = /*#__PURE__*/function (_Component) {
|
|
24
12
|
_inherits(MatchingType, _Component);
|
|
25
13
|
|
|
26
14
|
var _super = _createSuper(MatchingType);
|
|
@@ -46,22 +34,24 @@ export var MatchingType = (_dec = themeable({}, styles), _dec(_class = (_temp =
|
|
|
46
34
|
var answerKeys = Object.keys(exampleAnswers);
|
|
47
35
|
var orderedAnswerKeys = MatchingTypeOrderer.orderAnswerKeysForDiagonal(answerSummary, answerKeys);
|
|
48
36
|
var orderedQuestionKeys = MatchingTypeOrderer.orderQuestionKeysForDiagonal(answerSummary, questionKeys, orderedAnswerKeys);
|
|
49
|
-
var
|
|
50
|
-
return /*#__PURE__*/React.createElement(AfsTableWrapper, null, /*#__PURE__*/React.createElement(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
37
|
+
var tableHalfWidth = orderedAnswerKeys.length <= 3;
|
|
38
|
+
return /*#__PURE__*/React.createElement(AfsTableWrapper, null, /*#__PURE__*/React.createElement(AfsPartsContainer, {
|
|
39
|
+
tableHalfWidth: tableHalfWidth,
|
|
40
|
+
afsTable: /*#__PURE__*/React.createElement(MatchingTypeTable, {
|
|
41
|
+
itemId: itemId,
|
|
42
|
+
answerSummary: answerSummary,
|
|
43
|
+
orderedAnswerKeys: orderedAnswerKeys,
|
|
44
|
+
orderedQuestionKeys: orderedQuestionKeys
|
|
45
|
+
})
|
|
46
|
+
}));
|
|
58
47
|
};
|
|
59
48
|
|
|
60
49
|
return _this;
|
|
61
50
|
}
|
|
62
51
|
|
|
63
52
|
return MatchingType;
|
|
64
|
-
}(Component)
|
|
53
|
+
}(Component);
|
|
54
|
+
MatchingType.propTypes = {
|
|
65
55
|
itemId: PropTypes.number,
|
|
66
56
|
answerSummary: matchingTypeAnswerSummaryPropType
|
|
67
|
-
}.isRequired
|
|
57
|
+
}.isRequired;
|
|
@@ -27,6 +27,7 @@ import { IconCheckSolid } from '@instructure/ui-icons';
|
|
|
27
27
|
import { matchingTypeAnswerSummaryPropType } from "../../../propTypes.js";
|
|
28
28
|
import classNames from 'classnames';
|
|
29
29
|
import theme from "./theme.js";
|
|
30
|
+
import { extractTextFromHtml } from '@instructure/quiz-interactions';
|
|
30
31
|
|
|
31
32
|
var _ref = /*#__PURE__*/React.createElement(IconCheckSolid, null);
|
|
32
33
|
|
|
@@ -146,6 +147,8 @@ export var MatchingTypeTable = (_dec = themeable(theme, styles), _dec(_class = (
|
|
|
146
147
|
});
|
|
147
148
|
var questionRowHeaderId = "question-row-header-id-".concat(orderedQuestionKey, "-").concat(itemId);
|
|
148
149
|
var rowKey = "row-".concat(orderedQuestionKey, "-").concat(itemId);
|
|
150
|
+
var extractedQuestionBody = extractTextFromHtml(question.body);
|
|
151
|
+
var questionBody = extractedQuestionBody.trim().length > 0 ? extractedQuestionBody : question.body;
|
|
149
152
|
return /*#__PURE__*/React.createElement(Table.Row, {
|
|
150
153
|
key: rowKey
|
|
151
154
|
}, /*#__PURE__*/React.createElement(Table.Cell, {
|
|
@@ -154,7 +157,7 @@ export var MatchingTypeTable = (_dec = themeable(theme, styles), _dec(_class = (
|
|
|
154
157
|
theme: {
|
|
155
158
|
padding: '0 0 1px 0'
|
|
156
159
|
}
|
|
157
|
-
},
|
|
160
|
+
}, questionBody), answerCells);
|
|
158
161
|
};
|
|
159
162
|
|
|
160
163
|
_this.render = function () {
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
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 MatchingTypeOrderer from "./utils/matchingTypeOrderer.js";
|
|
7
|
+
import AfsTableWrapper from "../shared/AfsTableWrapper/index.js";
|
|
8
|
+
import MatchingTypeTable from "./MatchingTypeTable/index.js";
|
|
9
|
+
import PropTypes from 'prop-types';
|
|
10
|
+
import { matchingTypeAnswerSummaryPropType } from "../../propTypes.js";
|
|
11
|
+
import t from '@instructure/quiz-i18n/es/format-message';
|
|
12
|
+
import AggregationTable from "../shared/AggregationTable/index.js";
|
|
13
|
+
import { AfsPartsContainer } from "../shared/AfsPartsContainer/presenter.js";
|
|
14
|
+
export var OrderingType = /*#__PURE__*/function (_Component) {
|
|
15
|
+
_inherits(OrderingType, _Component);
|
|
16
|
+
|
|
17
|
+
var _super = _createSuper(OrderingType);
|
|
18
|
+
|
|
19
|
+
function OrderingType() {
|
|
20
|
+
var _this;
|
|
21
|
+
|
|
22
|
+
_classCallCheck(this, OrderingType);
|
|
23
|
+
|
|
24
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
25
|
+
args[_key] = arguments[_key];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
29
|
+
|
|
30
|
+
_this.updateAnswerBody = function (answerSummary) {
|
|
31
|
+
var translateBody = function translateBody(index) {
|
|
32
|
+
return "".concat(t('Order'), " ").concat(index);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
var answerSummaryCopy = _objectSpread({}, answerSummary);
|
|
36
|
+
|
|
37
|
+
Object.keys(answerSummaryCopy.questions).forEach(function (questionKey) {
|
|
38
|
+
Object.keys(answerSummaryCopy.questions[questionKey].answers).forEach(function (answerKey) {
|
|
39
|
+
var detail = answerSummaryCopy.questions[questionKey].answers[answerKey];
|
|
40
|
+
answerSummaryCopy.questions[questionKey].answers[answerKey] = _objectSpread(_objectSpread({}, detail), {}, {
|
|
41
|
+
// Body cannot be used because because re-render of the component add Order
|
|
42
|
+
// as many time we have to re-render. Only re-assignment works.
|
|
43
|
+
body: translateBody(Number(answerKey) + 1)
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
return answerSummaryCopy;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
_this.render = function () {
|
|
51
|
+
var _this$props = _this.props,
|
|
52
|
+
itemId = _this$props.itemId,
|
|
53
|
+
answerSummary = _this$props.answerSummary;
|
|
54
|
+
|
|
55
|
+
var updatedAnswerSummary = _this.updateAnswerBody(answerSummary);
|
|
56
|
+
|
|
57
|
+
var questions = updatedAnswerSummary.questions;
|
|
58
|
+
var questionKeys = Object.keys(questions);
|
|
59
|
+
var exampleAnswers = questions[questionKeys[0]].answers;
|
|
60
|
+
var answerKeys = Object.keys(exampleAnswers).sort();
|
|
61
|
+
var orderedAnswerKeys = MatchingTypeOrderer.orderAnswerKeysForDiagonal(updatedAnswerSummary, answerKeys);
|
|
62
|
+
var orderedQuestionKeys = MatchingTypeOrderer.orderQuestionKeysForDiagonal(updatedAnswerSummary, questionKeys, orderedAnswerKeys);
|
|
63
|
+
var tableHalfWidth = orderedAnswerKeys.length <= 3;
|
|
64
|
+
return /*#__PURE__*/React.createElement(AfsTableWrapper, null, /*#__PURE__*/React.createElement(AfsPartsContainer, {
|
|
65
|
+
tableHalfWidth: tableHalfWidth,
|
|
66
|
+
afsTable: /*#__PURE__*/React.createElement(MatchingTypeTable, {
|
|
67
|
+
itemId: itemId,
|
|
68
|
+
answerSummary: updatedAnswerSummary,
|
|
69
|
+
orderedAnswerKeys: orderedAnswerKeys,
|
|
70
|
+
orderedQuestionKeys: orderedQuestionKeys
|
|
71
|
+
}),
|
|
72
|
+
aggregationTable: /*#__PURE__*/React.createElement(AggregationTable, {
|
|
73
|
+
itemId: itemId,
|
|
74
|
+
answerSummary: updatedAnswerSummary
|
|
75
|
+
})
|
|
76
|
+
}));
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
return _this;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return OrderingType;
|
|
83
|
+
}(Component);
|
|
84
|
+
OrderingType.propTypes = {
|
|
85
|
+
itemId: PropTypes.number,
|
|
86
|
+
answerSummary: matchingTypeAnswerSummaryPropType
|
|
87
|
+
}.isRequired;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { MatchingType } from "./MatchingType.js";
|
|
1
|
+
export { MatchingType } from "./MatchingType.js";
|
|
2
|
+
export { OrderingType } from "./OrderingType.js";
|
package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/presenter.js
CHANGED
|
@@ -5,7 +5,7 @@ import React, { Component } from 'react';
|
|
|
5
5
|
import { PropTypes } from '@instructure/quiz-interactions';
|
|
6
6
|
import ChoiceType from "./ChoiceType/index.js";
|
|
7
7
|
import AggregationType from "./AggregationType/index.js";
|
|
8
|
-
import { MatchingType } from "./MatchingType/index.js";
|
|
8
|
+
import { MatchingType, OrderingType } from "./MatchingType/index.js";
|
|
9
9
|
import { answerSummaryPropType } from "../propTypes.js";
|
|
10
10
|
export var AnswerFrequencySummary = /*#__PURE__*/function (_Component) {
|
|
11
11
|
_inherits(AnswerFrequencySummary, _Component);
|
|
@@ -36,6 +36,10 @@ export var AnswerFrequencySummary = /*#__PURE__*/function (_Component) {
|
|
|
36
36
|
if (afsFlags.matchingEnabled) {
|
|
37
37
|
_this.afsTableComponentMap.set('matching', MatchingType);
|
|
38
38
|
}
|
|
39
|
+
|
|
40
|
+
if (afsFlags.orderingEnabled) {
|
|
41
|
+
_this.afsTableComponentMap.set('ordering', OrderingType);
|
|
42
|
+
}
|
|
39
43
|
};
|
|
40
44
|
|
|
41
45
|
_this.render = function () {
|
|
@@ -75,6 +79,8 @@ AnswerFrequencySummary.propTypes = {
|
|
|
75
79
|
interactionType: PropTypes.string.isRequired,
|
|
76
80
|
afsFlags: PropTypes.shape({
|
|
77
81
|
formulaEnabled: PropTypes.bool.isRequired,
|
|
78
|
-
matchingEnabled: PropTypes.bool.isRequired
|
|
82
|
+
matchingEnabled: PropTypes.bool.isRequired,
|
|
83
|
+
hotSpotEnabled: PropTypes.bool.isRequired,
|
|
84
|
+
orderingEnabled: PropTypes.bool.isRequired
|
|
79
85
|
})
|
|
80
86
|
}.isRequired;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AfsPartsContainer as default } from "./presenter.js";
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
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
|
+
import React, { Component } from 'react';
|
|
9
|
+
import PropTypes from 'prop-types';
|
|
10
|
+
import { themeable } from '@instructure/ui-themeable';
|
|
11
|
+
var styles = {
|
|
12
|
+
componentId: 'dApXZ',
|
|
13
|
+
template: function template(theme) {
|
|
14
|
+
return "\n\n.dApXZ_SVtU{max-width:100%;width:calc(25% + 350px)}\n\n.dApXZ_ellB{margin-top:13px}";
|
|
15
|
+
},
|
|
16
|
+
'tableContainer': 'dApXZ_SVtU',
|
|
17
|
+
'aggregateContainer': 'dApXZ_ellB'
|
|
18
|
+
};
|
|
19
|
+
import classNames from 'classnames';
|
|
20
|
+
export var AfsPartsContainer = (_dec = themeable({}, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
21
|
+
_inherits(AfsPartsContainer, _Component);
|
|
22
|
+
|
|
23
|
+
var _super = _createSuper(AfsPartsContainer);
|
|
24
|
+
|
|
25
|
+
function AfsPartsContainer() {
|
|
26
|
+
var _this;
|
|
27
|
+
|
|
28
|
+
_classCallCheck(this, AfsPartsContainer);
|
|
29
|
+
|
|
30
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
31
|
+
args[_key] = arguments[_key];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
35
|
+
|
|
36
|
+
_this.renderAggregationTable = function () {
|
|
37
|
+
var _this$props = _this.props,
|
|
38
|
+
afsTable = _this$props.afsTable,
|
|
39
|
+
aggregationTable = _this$props.aggregationTable;
|
|
40
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
41
|
+
className: classNames(styles.tableContainer, _defineProperty({}, styles.aggregateContainer, afsTable))
|
|
42
|
+
}, aggregationTable);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
_this.renderAfsTable = function () {
|
|
46
|
+
var _this$props2 = _this.props,
|
|
47
|
+
afsTable = _this$props2.afsTable,
|
|
48
|
+
tableHalfWidth = _this$props2.tableHalfWidth;
|
|
49
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
50
|
+
className: classNames(_defineProperty({}, styles.tableContainer, tableHalfWidth))
|
|
51
|
+
}, afsTable);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
_this.render = function () {
|
|
55
|
+
var _this$props3 = _this.props,
|
|
56
|
+
afsTable = _this$props3.afsTable,
|
|
57
|
+
aggregationTable = _this$props3.aggregationTable;
|
|
58
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, afsTable && _this.renderAfsTable(), aggregationTable && _this.renderAggregationTable());
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
return _this;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return AfsPartsContainer;
|
|
65
|
+
}(Component), _class2.propTypes = {
|
|
66
|
+
tableHalfWidth: PropTypes.bool,
|
|
67
|
+
afsTable: PropTypes.node,
|
|
68
|
+
aggregationTable: PropTypes.node
|
|
69
|
+
}.isRequired, _class2.defaultProps = {
|
|
70
|
+
tableHalfWidth: true,
|
|
71
|
+
afsTable: null,
|
|
72
|
+
aggregationTable: null
|
|
73
|
+
}, _temp)) || _class);
|
|
@@ -16,17 +16,17 @@ import { ScreenReaderContent } from '@instructure/ui-a11y-content';
|
|
|
16
16
|
import { themeable } from '@instructure/ui-themeable';
|
|
17
17
|
import Card from "../../../../../common/components/shared/Card/index.js";
|
|
18
18
|
var styles = {
|
|
19
|
-
componentId: '
|
|
19
|
+
componentId: 'cnjis',
|
|
20
20
|
template: function template(theme) {
|
|
21
|
-
return "\n\n.
|
|
21
|
+
return "\n\n.cnjis_bqdH{column-gap:26px;display:flex;justify-content:flex-start;padding-bottom:".concat(theme.metricsPadding || 'inherit', ";row-gap:8px}\n\n.cnjis_PFlN{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.cnjis_dJIh{height:").concat(theme.cardHeight || 'inherit', "}\n\n.cnjis_eWEX{align-items:flex-end;align-self:flex-end;display:flex;height:100%;justify-content:flex-end}\n\n.cnjis_blRb{max-width:160px;padding-right:10px}\n\n.cnjis_bxzy{border-bottom:1px solid ").concat(theme.quizSummaryBorderBottomColor || 'inherit', ";margin-bottom:15px;padding-bottom:15px}\n\n.cnjis_dKIc{padding-bottom:15px}\n\n@media only screen and (max-width:25rem){.cnjis_dJIh{height:auto}.cnjis_PFlN{max-width:").concat(theme.cardWidth || 'inherit', ";width:auto}.cnjis_bqdH{flex-wrap:wrap}}");
|
|
22
22
|
},
|
|
23
|
-
'metricsContainer': '
|
|
24
|
-
'reportCard': '
|
|
25
|
-
'emptyReportCard': '
|
|
26
|
-
'emptyCardBodyContainer': '
|
|
27
|
-
'dateContainer': '
|
|
28
|
-
'quizAnalysisSummary': '
|
|
29
|
-
'titleContainer': '
|
|
23
|
+
'metricsContainer': 'cnjis_bqdH',
|
|
24
|
+
'reportCard': 'cnjis_PFlN',
|
|
25
|
+
'emptyReportCard': 'cnjis_dJIh',
|
|
26
|
+
'emptyCardBodyContainer': 'cnjis_eWEX',
|
|
27
|
+
'dateContainer': 'cnjis_blRb',
|
|
28
|
+
'quizAnalysisSummary': 'cnjis_bxzy',
|
|
29
|
+
'titleContainer': 'cnjis_dKIc'
|
|
30
30
|
};
|
|
31
31
|
import theme from "./theme.js";
|
|
32
32
|
import classnames from 'classnames';
|
package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js
CHANGED
|
@@ -32,11 +32,12 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
32
32
|
var _dec, _class, _class2, _temp;
|
|
33
33
|
|
|
34
34
|
var styles = {
|
|
35
|
-
componentId: '
|
|
35
|
+
componentId: 'fKESK',
|
|
36
36
|
template: function template(theme) {
|
|
37
|
-
return "\n\n.
|
|
37
|
+
return "\n\n.fKESK_eckF{margin:0;max-width:159px;text-transform:capitalize}\n\n.fKESK_CIyo{width:90px}";
|
|
38
38
|
},
|
|
39
|
-
'metricLabel': '
|
|
39
|
+
'metricLabel': 'fKESK_eckF',
|
|
40
|
+
'metricWrapper': 'fKESK_CIyo'
|
|
40
41
|
};
|
|
41
42
|
var AnalysisMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
42
43
|
(0, _inherits2.default)(AnalysisMetric, _Component);
|
|
@@ -56,7 +57,9 @@ var AnalysisMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles)
|
|
|
56
57
|
label = _this$props.label,
|
|
57
58
|
value = _this$props.value,
|
|
58
59
|
suffix = _this$props.suffix;
|
|
59
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
60
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
61
|
+
className: styles.metricWrapper
|
|
62
|
+
}, /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
|
|
60
63
|
theme: {
|
|
61
64
|
valueFontWeight: 500,
|
|
62
65
|
padding: '0'
|
|
@@ -67,7 +70,7 @@ var AnalysisMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles)
|
|
|
67
70
|
className: styles.metricLabel
|
|
68
71
|
}, label),
|
|
69
72
|
renderValue: (0, _utils.getSanitizedMetricValue)(value, suffix)
|
|
70
|
-
});
|
|
73
|
+
}));
|
|
71
74
|
}
|
|
72
75
|
}]);
|
|
73
76
|
AnalysisMetric.displayName = "AnalysisMetric";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
4
|
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
@@ -25,20 +25,9 @@ var _propTypes2 = require("../../propTypes.js");
|
|
|
25
25
|
|
|
26
26
|
var _presenter = require("../shared/AfsTableWrapper/presenter.js");
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _presenter2 = require("../shared/AfsPartsContainer/presenter.js");
|
|
29
29
|
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
var _dec, _class, _class2, _temp;
|
|
33
|
-
|
|
34
|
-
var styles = {
|
|
35
|
-
componentId: 'JFhmr',
|
|
36
|
-
template: function template(theme) {
|
|
37
|
-
return "\n\n.JFhmr_cVld{max-width:100%;width:calc(25% + 350px)}";
|
|
38
|
-
},
|
|
39
|
-
'answerFrequencySummaryContainer': 'JFhmr_cVld'
|
|
40
|
-
};
|
|
41
|
-
var AggregationType = (_dec = (0, _uiThemeable.themeable)({}, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
30
|
+
var AggregationType = /*#__PURE__*/function (_Component) {
|
|
42
31
|
(0, _inherits2.default)(AggregationType, _Component);
|
|
43
32
|
|
|
44
33
|
var _super = (0, _createSuper2.default)(AggregationType);
|
|
@@ -58,20 +47,22 @@ var AggregationType = (_dec = (0, _uiThemeable.themeable)({}, styles), _dec(_cla
|
|
|
58
47
|
var _this$props = _this.props,
|
|
59
48
|
answerSummary = _this$props.answerSummary,
|
|
60
49
|
itemId = _this$props.itemId;
|
|
61
|
-
return /*#__PURE__*/_react.default.createElement(_presenter.AfsTableWrapper, null, /*#__PURE__*/_react.default.createElement(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}))
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement(_presenter.AfsTableWrapper, null, /*#__PURE__*/_react.default.createElement(_presenter2.AfsPartsContainer, {
|
|
51
|
+
aggregationTable: /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
52
|
+
itemId: itemId,
|
|
53
|
+
answerSummary: answerSummary
|
|
54
|
+
})
|
|
55
|
+
}));
|
|
67
56
|
};
|
|
68
57
|
|
|
69
58
|
return _this;
|
|
70
59
|
}
|
|
71
60
|
|
|
72
61
|
return AggregationType;
|
|
73
|
-
}(_react.Component)
|
|
62
|
+
}(_react.Component);
|
|
63
|
+
|
|
64
|
+
exports.AggregationType = AggregationType;
|
|
65
|
+
AggregationType.propTypes = {
|
|
74
66
|
itemId: _propTypes.default.number.isRequired,
|
|
75
67
|
answerSummary: _propTypes2.onlyAggregatePropType
|
|
76
|
-
}.isRequired
|
|
77
|
-
exports.AggregationType = AggregationType;
|
|
68
|
+
}.isRequired;
|
|
@@ -42,12 +42,12 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
42
42
|
var _dec, _class, _class2, _temp;
|
|
43
43
|
|
|
44
44
|
var styles = {
|
|
45
|
-
componentId: '
|
|
45
|
+
componentId: 'dCEWT',
|
|
46
46
|
template: function template(theme) {
|
|
47
|
-
return "\n\n.
|
|
47
|
+
return "\n\n.dCEWT_rMrG{display:flex;flex-basis:100%;flex-direction:column;padding-bottom:".concat(theme.tableBottomPadding || 'inherit', "}\n\n.dCEWT_SVtU{max-width:100%;width:calc(25% + 350px)}");
|
|
48
48
|
},
|
|
49
|
-
'tableWrapper': '
|
|
50
|
-
'
|
|
49
|
+
'tableWrapper': 'dCEWT_rMrG',
|
|
50
|
+
'tableContainer': 'dCEWT_SVtU'
|
|
51
51
|
};
|
|
52
52
|
var ChoiceType = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
53
53
|
(0, _inherits2.default)(ChoiceType, _Component);
|
|
@@ -104,7 +104,7 @@ var ChoiceType = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _d
|
|
|
104
104
|
var respondentsHeaderId = "answer-frequency-summary-respondents-".concat(itemId);
|
|
105
105
|
var percentageHeaderId = "answer-frequency-summary-percentage-".concat(itemId);
|
|
106
106
|
return /*#__PURE__*/_react.default.createElement(_index2.default, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
107
|
-
className: (0, _classnames.default)(styles.
|
|
107
|
+
className: (0, _classnames.default)(styles.tableContainer)
|
|
108
108
|
}, /*#__PURE__*/_react.default.createElement(_uiTable.Table, {
|
|
109
109
|
caption: (0, _formatMessage.default)('Answer Frequency Summary')
|
|
110
110
|
}, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Head, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Row, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table.ColHeader, {
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
4
|
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
10
|
exports.MatchingType = void 0;
|
|
11
11
|
|
|
12
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
13
|
|
|
16
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
@@ -29,20 +27,9 @@ var _propTypes2 = require("../../propTypes.js");
|
|
|
29
27
|
|
|
30
28
|
var _matchingTypeOrderer = _interopRequireDefault(require("./utils/matchingTypeOrderer.js"));
|
|
31
29
|
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
var _uiThemeable = require("@instructure/ui-themeable");
|
|
30
|
+
var _presenter = require("../shared/AfsPartsContainer/presenter.js");
|
|
35
31
|
|
|
36
|
-
var
|
|
37
|
-
|
|
38
|
-
var styles = {
|
|
39
|
-
componentId: 'JFhmr',
|
|
40
|
-
template: function template(theme) {
|
|
41
|
-
return "\n\n.JFhmr_cVld{max-width:100%;width:calc(25% + 350px)}";
|
|
42
|
-
},
|
|
43
|
-
'answerFrequencySummaryContainer': 'JFhmr_cVld'
|
|
44
|
-
};
|
|
45
|
-
var MatchingType = (_dec = (0, _uiThemeable.themeable)({}, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
32
|
+
var MatchingType = /*#__PURE__*/function (_Component) {
|
|
46
33
|
(0, _inherits2.default)(MatchingType, _Component);
|
|
47
34
|
|
|
48
35
|
var _super = (0, _createSuper2.default)(MatchingType);
|
|
@@ -71,23 +58,26 @@ var MatchingType = (_dec = (0, _uiThemeable.themeable)({}, styles), _dec(_class
|
|
|
71
58
|
|
|
72
59
|
var orderedQuestionKeys = _matchingTypeOrderer.default.orderQuestionKeysForDiagonal(answerSummary, questionKeys, orderedAnswerKeys);
|
|
73
60
|
|
|
74
|
-
var
|
|
75
|
-
return /*#__PURE__*/_react.default.createElement(_index.default, null, /*#__PURE__*/_react.default.createElement(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
61
|
+
var tableHalfWidth = orderedAnswerKeys.length <= 3;
|
|
62
|
+
return /*#__PURE__*/_react.default.createElement(_index.default, null, /*#__PURE__*/_react.default.createElement(_presenter.AfsPartsContainer, {
|
|
63
|
+
tableHalfWidth: tableHalfWidth,
|
|
64
|
+
afsTable: /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
65
|
+
itemId: itemId,
|
|
66
|
+
answerSummary: answerSummary,
|
|
67
|
+
orderedAnswerKeys: orderedAnswerKeys,
|
|
68
|
+
orderedQuestionKeys: orderedQuestionKeys
|
|
69
|
+
})
|
|
70
|
+
}));
|
|
83
71
|
};
|
|
84
72
|
|
|
85
73
|
return _this;
|
|
86
74
|
}
|
|
87
75
|
|
|
88
76
|
return MatchingType;
|
|
89
|
-
}(_react.Component)
|
|
77
|
+
}(_react.Component);
|
|
78
|
+
|
|
79
|
+
exports.MatchingType = MatchingType;
|
|
80
|
+
MatchingType.propTypes = {
|
|
90
81
|
itemId: _propTypes.default.number,
|
|
91
82
|
answerSummary: _propTypes2.matchingTypeAnswerSummaryPropType
|
|
92
|
-
}.isRequired
|
|
93
|
-
exports.MatchingType = MatchingType;
|
|
83
|
+
}.isRequired;
|
|
@@ -37,6 +37,8 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
37
37
|
|
|
38
38
|
var _theme = _interopRequireDefault(require("./theme.js"));
|
|
39
39
|
|
|
40
|
+
var _quizInteractions = require("@instructure/quiz-interactions");
|
|
41
|
+
|
|
40
42
|
var _dec, _class, _class2, _temp;
|
|
41
43
|
|
|
42
44
|
var styles = {
|
|
@@ -170,6 +172,8 @@ var MatchingTypeTable = (_dec = (0, _uiThemeable.themeable)(_theme.default, styl
|
|
|
170
172
|
});
|
|
171
173
|
var questionRowHeaderId = "question-row-header-id-".concat(orderedQuestionKey, "-").concat(itemId);
|
|
172
174
|
var rowKey = "row-".concat(orderedQuestionKey, "-").concat(itemId);
|
|
175
|
+
var extractedQuestionBody = (0, _quizInteractions.extractTextFromHtml)(question.body);
|
|
176
|
+
var questionBody = extractedQuestionBody.trim().length > 0 ? extractedQuestionBody : question.body;
|
|
173
177
|
return /*#__PURE__*/_react.default.createElement(_uiTable.Table.Row, {
|
|
174
178
|
key: rowKey
|
|
175
179
|
}, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Cell, {
|
|
@@ -178,7 +182,7 @@ var MatchingTypeTable = (_dec = (0, _uiThemeable.themeable)(_theme.default, styl
|
|
|
178
182
|
theme: {
|
|
179
183
|
padding: '0 0 1px 0'
|
|
180
184
|
}
|
|
181
|
-
},
|
|
185
|
+
}, questionBody), answerCells);
|
|
182
186
|
};
|
|
183
187
|
|
|
184
188
|
_this.render = function () {
|
|
@@ -0,0 +1,115 @@
|
|
|
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.OrderingType = void 0;
|
|
11
|
+
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
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 _matchingTypeOrderer = _interopRequireDefault(require("./utils/matchingTypeOrderer.js"));
|
|
23
|
+
|
|
24
|
+
var _index = _interopRequireDefault(require("../shared/AfsTableWrapper/index.js"));
|
|
25
|
+
|
|
26
|
+
var _index2 = _interopRequireDefault(require("./MatchingTypeTable/index.js"));
|
|
27
|
+
|
|
28
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
|
+
|
|
30
|
+
var _propTypes2 = require("../../propTypes.js");
|
|
31
|
+
|
|
32
|
+
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
33
|
+
|
|
34
|
+
var _index3 = _interopRequireDefault(require("../shared/AggregationTable/index.js"));
|
|
35
|
+
|
|
36
|
+
var _presenter = require("../shared/AfsPartsContainer/presenter.js");
|
|
37
|
+
|
|
38
|
+
var OrderingType = /*#__PURE__*/function (_Component) {
|
|
39
|
+
(0, _inherits2.default)(OrderingType, _Component);
|
|
40
|
+
|
|
41
|
+
var _super = (0, _createSuper2.default)(OrderingType);
|
|
42
|
+
|
|
43
|
+
function OrderingType() {
|
|
44
|
+
var _this;
|
|
45
|
+
|
|
46
|
+
(0, _classCallCheck2.default)(this, OrderingType);
|
|
47
|
+
|
|
48
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
49
|
+
args[_key] = arguments[_key];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
53
|
+
|
|
54
|
+
_this.updateAnswerBody = function (answerSummary) {
|
|
55
|
+
var translateBody = function translateBody(index) {
|
|
56
|
+
return "".concat((0, _formatMessage.default)('Order'), " ").concat(index);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
var answerSummaryCopy = (0, _objectSpread2.default)({}, answerSummary);
|
|
60
|
+
Object.keys(answerSummaryCopy.questions).forEach(function (questionKey) {
|
|
61
|
+
Object.keys(answerSummaryCopy.questions[questionKey].answers).forEach(function (answerKey) {
|
|
62
|
+
var detail = answerSummaryCopy.questions[questionKey].answers[answerKey];
|
|
63
|
+
answerSummaryCopy.questions[questionKey].answers[answerKey] = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, detail), {}, {
|
|
64
|
+
// Body cannot be used because because re-render of the component add Order
|
|
65
|
+
// as many time we have to re-render. Only re-assignment works.
|
|
66
|
+
body: translateBody(Number(answerKey) + 1)
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
return answerSummaryCopy;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
_this.render = function () {
|
|
74
|
+
var _this$props = _this.props,
|
|
75
|
+
itemId = _this$props.itemId,
|
|
76
|
+
answerSummary = _this$props.answerSummary;
|
|
77
|
+
|
|
78
|
+
var updatedAnswerSummary = _this.updateAnswerBody(answerSummary);
|
|
79
|
+
|
|
80
|
+
var questions = updatedAnswerSummary.questions;
|
|
81
|
+
var questionKeys = Object.keys(questions);
|
|
82
|
+
var exampleAnswers = questions[questionKeys[0]].answers;
|
|
83
|
+
var answerKeys = Object.keys(exampleAnswers).sort();
|
|
84
|
+
|
|
85
|
+
var orderedAnswerKeys = _matchingTypeOrderer.default.orderAnswerKeysForDiagonal(updatedAnswerSummary, answerKeys);
|
|
86
|
+
|
|
87
|
+
var orderedQuestionKeys = _matchingTypeOrderer.default.orderQuestionKeysForDiagonal(updatedAnswerSummary, questionKeys, orderedAnswerKeys);
|
|
88
|
+
|
|
89
|
+
var tableHalfWidth = orderedAnswerKeys.length <= 3;
|
|
90
|
+
return /*#__PURE__*/_react.default.createElement(_index.default, null, /*#__PURE__*/_react.default.createElement(_presenter.AfsPartsContainer, {
|
|
91
|
+
tableHalfWidth: tableHalfWidth,
|
|
92
|
+
afsTable: /*#__PURE__*/_react.default.createElement(_index2.default, {
|
|
93
|
+
itemId: itemId,
|
|
94
|
+
answerSummary: updatedAnswerSummary,
|
|
95
|
+
orderedAnswerKeys: orderedAnswerKeys,
|
|
96
|
+
orderedQuestionKeys: orderedQuestionKeys
|
|
97
|
+
}),
|
|
98
|
+
aggregationTable: /*#__PURE__*/_react.default.createElement(_index3.default, {
|
|
99
|
+
itemId: itemId,
|
|
100
|
+
answerSummary: updatedAnswerSummary
|
|
101
|
+
})
|
|
102
|
+
}));
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
return _this;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return OrderingType;
|
|
109
|
+
}(_react.Component);
|
|
110
|
+
|
|
111
|
+
exports.OrderingType = OrderingType;
|
|
112
|
+
OrderingType.propTypes = {
|
|
113
|
+
itemId: _propTypes.default.number,
|
|
114
|
+
answerSummary: _propTypes2.matchingTypeAnswerSummaryPropType
|
|
115
|
+
}.isRequired;
|
|
@@ -9,5 +9,13 @@ Object.defineProperty(exports, "MatchingType", {
|
|
|
9
9
|
return _MatchingType.MatchingType;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "OrderingType", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _OrderingType.OrderingType;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
var _MatchingType = require("./MatchingType.js");
|
|
12
20
|
|
|
13
|
-
var
|
|
21
|
+
var _OrderingType = require("./OrderingType.js");
|
|
@@ -56,6 +56,10 @@ var AnswerFrequencySummary = /*#__PURE__*/function (_Component) {
|
|
|
56
56
|
if (afsFlags.matchingEnabled) {
|
|
57
57
|
_this.afsTableComponentMap.set('matching', _index3.MatchingType);
|
|
58
58
|
}
|
|
59
|
+
|
|
60
|
+
if (afsFlags.orderingEnabled) {
|
|
61
|
+
_this.afsTableComponentMap.set('ordering', _index3.OrderingType);
|
|
62
|
+
}
|
|
59
63
|
};
|
|
60
64
|
|
|
61
65
|
_this.render = function () {
|
|
@@ -97,6 +101,8 @@ AnswerFrequencySummary.propTypes = {
|
|
|
97
101
|
interactionType: _quizInteractions.PropTypes.string.isRequired,
|
|
98
102
|
afsFlags: _quizInteractions.PropTypes.shape({
|
|
99
103
|
formulaEnabled: _quizInteractions.PropTypes.bool.isRequired,
|
|
100
|
-
matchingEnabled: _quizInteractions.PropTypes.bool.isRequired
|
|
104
|
+
matchingEnabled: _quizInteractions.PropTypes.bool.isRequired,
|
|
105
|
+
hotSpotEnabled: _quizInteractions.PropTypes.bool.isRequired,
|
|
106
|
+
orderingEnabled: _quizInteractions.PropTypes.bool.isRequired
|
|
101
107
|
})
|
|
102
108
|
}.isRequired;
|
|
@@ -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.AfsPartsContainer;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _presenter = require("./presenter.js");
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.AfsPartsContainer = void 0;
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
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 _uiThemeable = require("@instructure/ui-themeable");
|
|
25
|
+
|
|
26
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
27
|
+
|
|
28
|
+
var _dec, _class, _class2, _temp;
|
|
29
|
+
|
|
30
|
+
var styles = {
|
|
31
|
+
componentId: 'dApXZ',
|
|
32
|
+
template: function template(theme) {
|
|
33
|
+
return "\n\n.dApXZ_SVtU{max-width:100%;width:calc(25% + 350px)}\n\n.dApXZ_ellB{margin-top:13px}";
|
|
34
|
+
},
|
|
35
|
+
'tableContainer': 'dApXZ_SVtU',
|
|
36
|
+
'aggregateContainer': 'dApXZ_ellB'
|
|
37
|
+
};
|
|
38
|
+
var AfsPartsContainer = (_dec = (0, _uiThemeable.themeable)({}, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
39
|
+
(0, _inherits2.default)(AfsPartsContainer, _Component);
|
|
40
|
+
|
|
41
|
+
var _super = (0, _createSuper2.default)(AfsPartsContainer);
|
|
42
|
+
|
|
43
|
+
function AfsPartsContainer() {
|
|
44
|
+
var _this;
|
|
45
|
+
|
|
46
|
+
(0, _classCallCheck2.default)(this, AfsPartsContainer);
|
|
47
|
+
|
|
48
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
49
|
+
args[_key] = arguments[_key];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
53
|
+
|
|
54
|
+
_this.renderAggregationTable = function () {
|
|
55
|
+
var _this$props = _this.props,
|
|
56
|
+
afsTable = _this$props.afsTable,
|
|
57
|
+
aggregationTable = _this$props.aggregationTable;
|
|
58
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
59
|
+
className: (0, _classnames.default)(styles.tableContainer, (0, _defineProperty2.default)({}, styles.aggregateContainer, afsTable))
|
|
60
|
+
}, aggregationTable);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
_this.renderAfsTable = function () {
|
|
64
|
+
var _this$props2 = _this.props,
|
|
65
|
+
afsTable = _this$props2.afsTable,
|
|
66
|
+
tableHalfWidth = _this$props2.tableHalfWidth;
|
|
67
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
68
|
+
className: (0, _classnames.default)((0, _defineProperty2.default)({}, styles.tableContainer, tableHalfWidth))
|
|
69
|
+
}, afsTable);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
_this.render = function () {
|
|
73
|
+
var _this$props3 = _this.props,
|
|
74
|
+
afsTable = _this$props3.afsTable,
|
|
75
|
+
aggregationTable = _this$props3.aggregationTable;
|
|
76
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, afsTable && _this.renderAfsTable(), aggregationTable && _this.renderAggregationTable());
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
return _this;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return AfsPartsContainer;
|
|
83
|
+
}(_react.Component), _class2.propTypes = {
|
|
84
|
+
tableHalfWidth: _propTypes.default.bool,
|
|
85
|
+
afsTable: _propTypes.default.node,
|
|
86
|
+
aggregationTable: _propTypes.default.node
|
|
87
|
+
}.isRequired, _class2.defaultProps = {
|
|
88
|
+
tableHalfWidth: true,
|
|
89
|
+
afsTable: null,
|
|
90
|
+
aggregationTable: null
|
|
91
|
+
}, _temp)) || _class);
|
|
92
|
+
exports.AfsPartsContainer = AfsPartsContainer;
|
|
@@ -18,6 +18,7 @@ function mapStateToProps(_state) {
|
|
|
18
18
|
afsFlags: {
|
|
19
19
|
formulaEnabled: (0, _featureCheck.featureOn)('ia_formula_afs'),
|
|
20
20
|
matchingEnabled: (0, _featureCheck.featureOn)('ia_matching_afs'),
|
|
21
|
+
orderingEnabled: (0, _featureCheck.featureOn)('ia_ordering_afs'),
|
|
21
22
|
hotSpotEnabled: (0, _featureCheck.featureOn)('ia_hot_spot_afs')
|
|
22
23
|
}
|
|
23
24
|
};
|
|
@@ -52,17 +52,17 @@ var _propTypes2 = require("../propTypes.js");
|
|
|
52
52
|
var _dec, _class, _class2, _temp;
|
|
53
53
|
|
|
54
54
|
var styles = {
|
|
55
|
-
componentId: '
|
|
55
|
+
componentId: 'cnjis',
|
|
56
56
|
template: function template(theme) {
|
|
57
|
-
return "\n\n.
|
|
57
|
+
return "\n\n.cnjis_bqdH{column-gap:26px;display:flex;justify-content:flex-start;padding-bottom:".concat(theme.metricsPadding || 'inherit', ";row-gap:8px}\n\n.cnjis_PFlN{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.cnjis_dJIh{height:").concat(theme.cardHeight || 'inherit', "}\n\n.cnjis_eWEX{align-items:flex-end;align-self:flex-end;display:flex;height:100%;justify-content:flex-end}\n\n.cnjis_blRb{max-width:160px;padding-right:10px}\n\n.cnjis_bxzy{border-bottom:1px solid ").concat(theme.quizSummaryBorderBottomColor || 'inherit', ";margin-bottom:15px;padding-bottom:15px}\n\n.cnjis_dKIc{padding-bottom:15px}\n\n@media only screen and (max-width:25rem){.cnjis_dJIh{height:auto}.cnjis_PFlN{max-width:").concat(theme.cardWidth || 'inherit', ";width:auto}.cnjis_bqdH{flex-wrap:wrap}}");
|
|
58
58
|
},
|
|
59
|
-
'metricsContainer': '
|
|
60
|
-
'reportCard': '
|
|
61
|
-
'emptyReportCard': '
|
|
62
|
-
'emptyCardBodyContainer': '
|
|
63
|
-
'dateContainer': '
|
|
64
|
-
'quizAnalysisSummary': '
|
|
65
|
-
'titleContainer': '
|
|
59
|
+
'metricsContainer': 'cnjis_bqdH',
|
|
60
|
+
'reportCard': 'cnjis_PFlN',
|
|
61
|
+
'emptyReportCard': 'cnjis_dJIh',
|
|
62
|
+
'emptyCardBodyContainer': 'cnjis_eWEX',
|
|
63
|
+
'dateContainer': 'cnjis_blRb',
|
|
64
|
+
'quizAnalysisSummary': 'cnjis_bxzy',
|
|
65
|
+
'titleContainer': 'cnjis_dKIc'
|
|
66
66
|
};
|
|
67
67
|
var NewQuizAndItemAnalysisReportCardPresenter = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
68
68
|
(0, _inherits2.default)(NewQuizAndItemAnalysisReportCardPresenter, _Component);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.6.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The Quiz React SDK by Instructure Inc.",
|
|
6
6
|
"author": "Instructure, Inc. Engineering and Product Design",
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@instructure/grading-utils": "^1.0.0",
|
|
45
45
|
"@instructure/outcomes-ui": "^2.1.9",
|
|
46
|
-
"@instructure/quiz-common": "18.
|
|
47
|
-
"@instructure/quiz-i18n": "18.
|
|
48
|
-
"@instructure/quiz-interactions": "18.
|
|
49
|
-
"@instructure/quiz-number-input": "18.
|
|
50
|
-
"@instructure/quiz-rce": "18.
|
|
46
|
+
"@instructure/quiz-common": "^18.6.0",
|
|
47
|
+
"@instructure/quiz-i18n": "^18.6.0",
|
|
48
|
+
"@instructure/quiz-interactions": "^18.6.0",
|
|
49
|
+
"@instructure/quiz-number-input": "^18.6.0",
|
|
50
|
+
"@instructure/quiz-rce": "^18.6.0",
|
|
51
51
|
"@instructure/ui-a11y-content": "^7.22.1",
|
|
52
52
|
"@instructure/ui-alerts": "^7.22.1",
|
|
53
53
|
"@instructure/ui-avatar": "^7.22.1",
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
"file-saver": "~2.0.5",
|
|
110
110
|
"humps": "^2.0.0",
|
|
111
111
|
"immutable": "^3.8.1",
|
|
112
|
-
"instructure-validations": "18.
|
|
112
|
+
"instructure-validations": "^18.6.0",
|
|
113
113
|
"ipaddr.js": "^1.5.4",
|
|
114
114
|
"isomorphic-fetch": "^2.2.0",
|
|
115
115
|
"isuuid": "^0.1.0",
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
"uuid": "^3.2.1"
|
|
142
142
|
},
|
|
143
143
|
"devDependencies": {
|
|
144
|
-
"@instructure/quiz-scripts": "18.
|
|
144
|
+
"@instructure/quiz-scripts": "^18.6.0",
|
|
145
145
|
"@instructure/ui-axe-check": "^7.22.1",
|
|
146
146
|
"@instructure/ui-babel-preset": "^7.22.1",
|
|
147
147
|
"@instructure/ui-karma-config": "^7.22.1",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"intl": "^1.2.4",
|
|
161
161
|
"jquery": "^2.2.3",
|
|
162
162
|
"most-subject": "^5.3.0",
|
|
163
|
-
"quiz-presets": "18.
|
|
163
|
+
"quiz-presets": "^18.6.0",
|
|
164
164
|
"react": "^16.8.6",
|
|
165
165
|
"react-addons-test-utils": "^15.6.2",
|
|
166
166
|
"react-dom": "^16.8.6",
|
|
@@ -176,5 +176,5 @@
|
|
|
176
176
|
"publishConfig": {
|
|
177
177
|
"access": "public"
|
|
178
178
|
},
|
|
179
|
-
"gitHead": "
|
|
179
|
+
"gitHead": "dddcaa8802c8344705537cacfbc0b9638c25be4c"
|
|
180
180
|
}
|