@instructure/quiz-core 17.58.2-rc.6 → 17.58.2-rc.7

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.
Files changed (25) hide show
  1. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/index.js +2 -0
  2. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +64 -0
  3. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +3 -0
  4. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/index.js +2 -0
  5. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +75 -0
  6. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +6 -0
  7. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +2 -0
  8. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +18 -0
  9. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +245 -0
  10. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +9 -0
  11. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +55 -57
  12. package/es/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +5 -16
  13. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/index.js +11 -0
  14. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +83 -0
  15. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +10 -0
  16. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/index.js +11 -0
  17. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +95 -0
  18. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +13 -0
  19. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +11 -0
  20. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +27 -0
  21. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +274 -0
  22. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +16 -0
  23. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +59 -62
  24. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +7 -18
  25. package/package.json +9 -9
@@ -0,0 +1,83 @@
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.AnalysisMetric = void 0;
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
+
20
+ var _uiThemeable = require("@instructure/ui-themeable");
21
+
22
+ var _theme = _interopRequireDefault(require("./theme.js"));
23
+
24
+ var _react = _interopRequireWildcard(require("react"));
25
+
26
+ var _utils = require("../utils.js");
27
+
28
+ var _uiMetric = require("@instructure/ui-metric");
29
+
30
+ var _propTypes = _interopRequireDefault(require("prop-types"));
31
+
32
+ var _dec, _class, _class2, _temp;
33
+
34
+ var styles = {
35
+ componentId: 'flBnP',
36
+ template: function template(theme) {
37
+ return "\n\n.flBnP_eckF{margin:0;max-width:159px;text-transform:uppercase}";
38
+ },
39
+ 'metricLabel': 'flBnP_eckF'
40
+ };
41
+ var AnalysisMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
42
+ (0, _inherits2.default)(AnalysisMetric, _Component);
43
+
44
+ var _super = (0, _createSuper2.default)(AnalysisMetric);
45
+
46
+ function AnalysisMetric() {
47
+ (0, _classCallCheck2.default)(this, AnalysisMetric);
48
+ return _super.apply(this, arguments);
49
+ }
50
+
51
+ (0, _createClass2.default)(AnalysisMetric, [{
52
+ key: "render",
53
+ value: function render() {
54
+ var _this$props = this.props,
55
+ metricKey = _this$props.metricKey,
56
+ label = _this$props.label,
57
+ value = _this$props.value,
58
+ suffix = _this$props.suffix;
59
+ return /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
60
+ theme: {
61
+ valueFontWeight: 500,
62
+ padding: '0'
63
+ },
64
+ textAlign: "start",
65
+ key: metricKey,
66
+ renderLabel: /*#__PURE__*/_react.default.createElement("p", {
67
+ className: styles.metricLabel
68
+ }, label),
69
+ renderValue: (0, _utils.getSanitizedMetricValue)(value, suffix)
70
+ });
71
+ }
72
+ }]);
73
+ AnalysisMetric.displayName = "AnalysisMetric";
74
+ return AnalysisMetric;
75
+ }(_react.Component), _class2.propTypes = {
76
+ metricKey: _propTypes.default.string.isRequired,
77
+ label: _propTypes.default.string.isRequired,
78
+ value: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
79
+ suffix: _propTypes.default.string
80
+ }, _class2.defaultProps = {
81
+ suffix: ''
82
+ }, _temp)) || _class);
83
+ exports.AnalysisMetric = AnalysisMetric;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = generator;
7
+
8
+ function generator() {
9
+ return {};
10
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _presenter = require("./presenter.js");
9
+
10
+ var _default = _presenter.AnalysisPopoverMetric;
11
+ exports.default = _default;
@@ -0,0 +1,95 @@
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.AnalysisPopoverMetric = void 0;
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _uiMetric = require("@instructure/ui-metric");
23
+
24
+ var _utils = require("../utils.js");
25
+
26
+ var _index = _interopRequireDefault(require("../MetricPopover/index.js"));
27
+
28
+ var _uiThemeable = require("@instructure/ui-themeable");
29
+
30
+ var _theme = _interopRequireDefault(require("./theme.js"));
31
+
32
+ var _propTypes = _interopRequireDefault(require("prop-types"));
33
+
34
+ var _dec, _class, _class2, _temp;
35
+
36
+ var styles = {
37
+ componentId: 'bLVhr',
38
+ template: function template(theme) {
39
+ return "\n\n.bLVhr_dqHR{padding-left:5px}\n\n.bLVhr_eckF{margin:0;max-width:159px;text-transform:uppercase}";
40
+ },
41
+ 'popoverContainer': 'bLVhr_dqHR',
42
+ 'metricLabel': 'bLVhr_eckF'
43
+ };
44
+ var AnalysisPopoverMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
45
+ (0, _inherits2.default)(AnalysisPopoverMetric, _Component);
46
+
47
+ var _super = (0, _createSuper2.default)(AnalysisPopoverMetric);
48
+
49
+ function AnalysisPopoverMetric() {
50
+ (0, _classCallCheck2.default)(this, AnalysisPopoverMetric);
51
+ return _super.apply(this, arguments);
52
+ }
53
+
54
+ (0, _createClass2.default)(AnalysisPopoverMetric, [{
55
+ key: "renderLabelWithPopover",
56
+ value: function renderLabelWithPopover(texts) {
57
+ return /*#__PURE__*/_react.default.createElement("p", {
58
+ className: styles.metricLabel
59
+ }, this.props.label, /*#__PURE__*/_react.default.createElement("span", {
60
+ className: styles.popoverContainer
61
+ }, /*#__PURE__*/_react.default.createElement(_index.default, texts)));
62
+ }
63
+ }, {
64
+ key: "render",
65
+ value: function render() {
66
+ var _this$props = this.props,
67
+ metricKey = _this$props.metricKey,
68
+ popoverDescription = _this$props.popoverDescription,
69
+ value = _this$props.value;
70
+ return /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
71
+ theme: {
72
+ valueFontWeight: 500,
73
+ padding: '0'
74
+ },
75
+ textAlign: "start",
76
+ key: metricKey,
77
+ renderLabel: this.renderLabelWithPopover(popoverDescription),
78
+ renderValue: (0, _utils.getSanitizedMetricValue)(value)
79
+ });
80
+ }
81
+ }]);
82
+ AnalysisPopoverMetric.displayName = "AnalysisPopoverMetric";
83
+ return AnalysisPopoverMetric;
84
+ }(_react.Component), _class2.propTypes = {
85
+ metricKey: _propTypes.default.string.isRequired,
86
+ label: _propTypes.default.string.isRequired,
87
+ value: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
88
+ popoverDescription: _propTypes.default.shape({
89
+ title: _propTypes.default.string,
90
+ subtitle: _propTypes.default.string,
91
+ body: _propTypes.default.string,
92
+ screenReaderLabel: _propTypes.default.string
93
+ }).isRequired
94
+ }, _temp)) || _class);
95
+ exports.AnalysisPopoverMetric = AnalysisPopoverMetric;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = generator;
7
+
8
+ function generator(_ref) {
9
+ var spacing = _ref.spacing;
10
+ return {
11
+ headerPaddingBottom: spacing.medium
12
+ };
13
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _presenter = require("./presenter.js");
9
+
10
+ var _default = _presenter.NewItemAnalysis;
11
+ exports.default = _default;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.pearsonCorrelation = exports.discriminationIndex = exports.difficultyIndex = void 0;
7
+ var difficultyIndex = {
8
+ title: 'Difficulty title',
9
+ subtitle: 'difficulty subtitle',
10
+ body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi elementum interdum risus sed condimentum. Duis vel nisi at quam luctus dictum id eu risus. Donec eget tristique justo',
11
+ screenReaderLabel: 'Lorem one'
12
+ };
13
+ exports.difficultyIndex = difficultyIndex;
14
+ var discriminationIndex = {
15
+ title: 'Discrimination title',
16
+ subtitle: 'discrimination subtitle',
17
+ body: 'Lorem ipsum dolor sit amet',
18
+ screenReaderLabel: 'Lorem two'
19
+ };
20
+ exports.discriminationIndex = discriminationIndex;
21
+ var pearsonCorrelation = {
22
+ title: 'Pearson correlation title',
23
+ subtitle: 'pearson correlation subtitle',
24
+ body: 'Lorem ipsum dolor sit amet',
25
+ screenReaderLabel: 'Lorem three'
26
+ };
27
+ exports.pearsonCorrelation = pearsonCorrelation;
@@ -0,0 +1,274 @@
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.NewItemAnalysis = 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 _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
21
+
22
+ var _uiHeading = require("@instructure/ui-heading");
23
+
24
+ var _react = _interopRequireWildcard(require("react"));
25
+
26
+ var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
27
+
28
+ var _index = _interopRequireDefault(require("../../../../../common/components/shared/ExpandButton/index.js"));
29
+
30
+ var _uiText = require("@instructure/ui-text");
31
+
32
+ var _uiThemeable = require("@instructure/ui-themeable");
33
+
34
+ var _theme = _interopRequireDefault(require("./theme.js"));
35
+
36
+ var _popoverContent = require("./popoverContent.js");
37
+
38
+ var _index2 = _interopRequireDefault(require("../../../../../common/components/shared/Card/index.js"));
39
+
40
+ var _index3 = _interopRequireDefault(require("../AnalysisMetric/index.js"));
41
+
42
+ var _index4 = _interopRequireDefault(require("../AnalysisPopoverMetric/index.js"));
43
+
44
+ var _propTypes = _interopRequireDefault(require("prop-types"));
45
+
46
+ var _classnames2 = _interopRequireDefault(require("classnames"));
47
+
48
+ var _interactionTypeMetadata = require("../../../../../common/util/interactionTypeMetadata.js");
49
+
50
+ var _dec, _class, _class2, _temp;
51
+
52
+ var styles = {
53
+ componentId: 'dcJyB',
54
+ template: function template(theme) {
55
+ return "\n\n.dcJyB_eDnN{display:flex;flex-basis:45%;flex-direction:column;overflow:hidden}\n\n.dcJyB_eKXQ{padding:".concat(theme.cardWrapperPadding || 'inherit', ";position:relative}\n\n.dcJyB_eIAv{display:flex;position:relative}\n\n.dcJyB_ePHw{flex-basis:91%;overflow:hidden;padding-bottom:10px;text-overflow:ellipsis;white-space:nowrap}\n\n.dcJyB_dzsH{overflow:visible;text-overflow:unset;white-space:normal}\n\n.dcJyB_byoJ{position:absolute;right:7px;top:-8px}\n\n.dcJyB_evBt{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}\n\n.dcJyB_pAQb{display:flex;flex-direction:column;height:60px}\n\n.dcJyB_zefc{display:flex;flex-basis:55%;justify-content:flex-end}\n\n.dcJyB_dPzc{flex-direction:column}\n\n.dcJyB_dPzc,.dcJyB_dzph{display:flex;flex-basis:100%}\n\n.dcJyB_dzph{align-items:flex-start;box-sizing:border-box;column-gap:5px;justify-content:space-between;padding:0 30px 0 25px}\n\n.dcJyB_eobd{padding-top:1rem}\n\n.dcJyB_NpIG{position:absolute;right:").concat(theme.viewPadding || 'inherit', ";top:").concat(theme.viewPadding || 'inherit', "}\n\n@media screen and (--tabletBreakPoint){.dcJyB_zefc{flex-basis:100%;justify-content:flex-start}.dcJyB_ePHw{flex-basis:94%}.dcJyB_eDnN{flex-basis:100%}.dcJyB_dzph{padding:0}.dcJyB_eDnN h3{padding-right:30px}.dcJyB_NpIG{right:17px}.dcJyB_eIAv{margin-bottom:20px}.dcJyB_byoJ{right:-7px}.dcJyB_dzph{flex-wrap:wrap}}");
56
+ },
57
+ 'heading': 'dcJyB_eDnN',
58
+ 'cardWrapper': 'dcJyB_eKXQ',
59
+ 'bodyPresentation': 'dcJyB_eIAv',
60
+ 'bodyExcerpt': 'dcJyB_ePHw',
61
+ 'bodyExcerptExpanded': 'dcJyB_dzsH',
62
+ 'bodyExpandButtonWrapper': 'dcJyB_byoJ',
63
+ 'innerWrapper': 'dcJyB_evBt',
64
+ 'expandableInnerWrapper': 'dcJyB_pAQb',
65
+ 'metricsWithControls': 'dcJyB_zefc',
66
+ 'metricGroup': 'dcJyB_dPzc',
67
+ 'metricsRow': 'dcJyB_dzph',
68
+ 'metricsRowPaginated': 'dcJyB_eobd',
69
+ 'itemCardToggleButtonWrapper': 'dcJyB_NpIG'
70
+ };
71
+ var NewItemAnalysis = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
72
+ (0, _inherits2.default)(NewItemAnalysis, _Component);
73
+
74
+ var _super = (0, _createSuper2.default)(NewItemAnalysis);
75
+
76
+ function NewItemAnalysis() {
77
+ var _this;
78
+
79
+ (0, _classCallCheck2.default)(this, NewItemAnalysis);
80
+
81
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
82
+ args[_key] = arguments[_key];
83
+ }
84
+
85
+ _this = _super.call.apply(_super, [this].concat(args));
86
+ _this.state = {
87
+ bodyToggable: false,
88
+ bodyExpanded: false,
89
+ itemExpanded: false,
90
+ metricsExpanded: false
91
+ };
92
+
93
+ _this.mapInteractionTypeToTranslation = function (interactionType) {
94
+ return (0, _interactionTypeMetadata.interactionTypesNameDictionary)({
95
+ slug: interactionType,
96
+ name: (0, _formatMessage.default)('Question')
97
+ });
98
+ };
99
+
100
+ _this.buildItemCardHeadingId = function () {
101
+ return "itemCardHeading-".concat(_this.props.itemAnalysis.metadata.item_id);
102
+ };
103
+
104
+ _this.buildItemCardBodyId = function () {
105
+ return "itemCardBody-".concat(_this.props.itemAnalysis.metadata.item_id);
106
+ };
107
+
108
+ _this.bodyExceedsLimit = function (bodyElement, headingElement) {
109
+ if (!bodyElement || !headingElement) {
110
+ return;
111
+ }
112
+
113
+ return bodyElement.scrollWidth > headingElement.clientWidth || _this.state.bodyExpanded;
114
+ };
115
+
116
+ _this.handleBodyWidth = function () {
117
+ var bodyElement = document.getElementById(_this.buildItemCardBodyId());
118
+ var headingElement = document.getElementById(_this.buildItemCardHeadingId());
119
+
120
+ _this.setState({
121
+ bodyToggable: _this.bodyExceedsLimit(bodyElement, headingElement)
122
+ });
123
+ };
124
+
125
+ _this.handleToggle = function () {
126
+ _this.setState({
127
+ metricsExpanded: !_this.state.metricsExpanded
128
+ });
129
+
130
+ _this.setState({
131
+ itemExpanded: !_this.state.itemExpanded
132
+ });
133
+ };
134
+
135
+ _this.handleBodyToggle = function () {
136
+ _this.setState({
137
+ bodyExpanded: !_this.state.bodyExpanded
138
+ });
139
+ };
140
+
141
+ _this.renderExpandItemCardButton = function () {
142
+ return /*#__PURE__*/_react.default.createElement("div", {
143
+ className: styles.itemCardToggleButtonWrapper
144
+ }, /*#__PURE__*/_react.default.createElement(_index.default, {
145
+ onClick: _this.handleToggle,
146
+ title: _this.state.metricsExpanded ? (0, _formatMessage.default)('collapse item card') : (0, _formatMessage.default)('expand item card'),
147
+ isExpanded: _this.state.metricsExpanded
148
+ }));
149
+ };
150
+
151
+ _this.renderBodyToggleButton = function () {
152
+ return /*#__PURE__*/_react.default.createElement("div", {
153
+ className: styles.bodyExpandButtonWrapper
154
+ }, /*#__PURE__*/_react.default.createElement(_index.default, {
155
+ onClick: _this.handleBodyToggle,
156
+ title: _this.state.bodyExpanded ? (0, _formatMessage.default)('collapse question stem') : (0, _formatMessage.default)('expand question stem'),
157
+ isExpanded: _this.state.bodyExpanded
158
+ }));
159
+ };
160
+
161
+ _this.renderExpanded = function () {
162
+ var scores = _this.props.itemAnalysis.scores;
163
+ return /*#__PURE__*/_react.default.createElement("div", {
164
+ className: [styles.metricsRow, styles.metricsRowPaginated].join(' ')
165
+ }, /*#__PURE__*/_react.default.createElement(_index4.default, {
166
+ metricKey: "pearson_correlation",
167
+ label: (0, _formatMessage.default)('Pearson Correlation Coefficient'),
168
+ value: _formatMessage.default.number(scores.pearson_correlation),
169
+ popoverDescription: _popoverContent.pearsonCorrelation
170
+ }));
171
+ };
172
+
173
+ return _this;
174
+ }
175
+
176
+ (0, _createClass2.default)(NewItemAnalysis, [{
177
+ key: "componentDidMount",
178
+ value: function componentDidMount() {
179
+ this.handleBodyWidth();
180
+ window.addEventListener('resize', this.handleBodyWidth);
181
+ }
182
+ }, {
183
+ key: "componentWillUnmount",
184
+ value: function componentWillUnmount() {
185
+ window.removeEventListener('resize', this.handleBodyWidth);
186
+ }
187
+ }, {
188
+ key: "render",
189
+ value: function render() {
190
+ var _this$props$itemAnaly = this.props.itemAnalysis,
191
+ metadata = _this$props$itemAnaly.metadata,
192
+ scores = _this$props$itemAnaly.scores;
193
+ var bodyClass = (0, _classnames2.default)(styles.bodyExcerpt, (0, _defineProperty2.default)({}, styles.bodyExcerptExpanded, this.state.bodyExpanded));
194
+ var headingId = this.buildItemCardHeadingId();
195
+ var bodyId = this.buildItemCardBodyId();
196
+ return /*#__PURE__*/_react.default.createElement(_index2.default, {
197
+ className: styles.cardWrapper
198
+ }, /*#__PURE__*/_react.default.createElement("div", {
199
+ className: styles.innerWrapper
200
+ }, /*#__PURE__*/_react.default.createElement("div", {
201
+ id: headingId,
202
+ className: styles.heading
203
+ }, /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
204
+ margin: "0 0 small 0",
205
+ level: "h3",
206
+ weight: "bold",
207
+ color: "primary"
208
+ }, metadata.item_title), /*#__PURE__*/_react.default.createElement(_uiText.Text, {
209
+ size: "small",
210
+ weight: "bold",
211
+ transform: "capitalize"
212
+ }, this.mapInteractionTypeToTranslation(metadata.interaction_type)), /*#__PURE__*/_react.default.createElement("div", {
213
+ id: "itemBody",
214
+ className: styles.bodyPresentation
215
+ }, /*#__PURE__*/_react.default.createElement("div", {
216
+ id: bodyId,
217
+ className: bodyClass
218
+ }, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
219
+ size: "small"
220
+ }, metadata.item_body)), this.state.bodyToggable && this.renderBodyToggleButton())), /*#__PURE__*/_react.default.createElement("div", {
221
+ className: styles.metricsWithControls
222
+ }, /*#__PURE__*/_react.default.createElement("div", {
223
+ className: styles.metricGroup
224
+ }, /*#__PURE__*/_react.default.createElement("div", {
225
+ className: styles.metricsRow
226
+ }, /*#__PURE__*/_react.default.createElement(_index4.default, {
227
+ metricKey: "difficulty_index",
228
+ label: (0, _formatMessage.default)('Item Difficulty'),
229
+ value: _formatMessage.default.number(scores.difficulty_index),
230
+ popoverDescription: _popoverContent.difficultyIndex
231
+ }), /*#__PURE__*/_react.default.createElement(_index3.default, {
232
+ metricKey: "mean",
233
+ label: (0, _formatMessage.default)('Mean Earned Points'),
234
+ value: _formatMessage.default.number(scores.mean)
235
+ }), /*#__PURE__*/_react.default.createElement(_index3.default, {
236
+ metricKey: "median",
237
+ label: (0, _formatMessage.default)('Median Earned Points'),
238
+ value: _formatMessage.default.number(scores.median)
239
+ }), /*#__PURE__*/_react.default.createElement(_index4.default, {
240
+ metricKey: "discrimination_index",
241
+ label: (0, _formatMessage.default)('Discrimination Index'),
242
+ value: _formatMessage.default.number(scores.discrimination_index),
243
+ popoverDescription: _popoverContent.discriminationIndex
244
+ }), this.renderExpandItemCardButton()), this.state.metricsExpanded && this.renderExpanded()))), this.state.itemExpanded && /*#__PURE__*/_react.default.createElement("div", {
245
+ className: styles.expandableInnerWrapper
246
+ }));
247
+ }
248
+ }]);
249
+ NewItemAnalysis.displayName = "NewItemAnalysis";
250
+ return NewItemAnalysis;
251
+ }(_react.Component), _class2.propTypes = {
252
+ itemAnalysis: _propTypes.default.shape({
253
+ attempts: _propTypes.default.shape({
254
+ students_responded: _propTypes.default.number,
255
+ students_without_response: _propTypes.default.number
256
+ }),
257
+ metadata: _propTypes.default.shape({
258
+ interaction_type: _propTypes.default.string,
259
+ item_body: _propTypes.default.string,
260
+ item_id: _propTypes.default.string,
261
+ item_title: _propTypes.default.string
262
+ }),
263
+ scores: _propTypes.default.shape({
264
+ difficulty_index: _propTypes.default.number,
265
+ discrimination_index: _propTypes.default.number,
266
+ mean: _propTypes.default.number,
267
+ median: _propTypes.default.number,
268
+ pearson_correlation: _propTypes.default.number,
269
+ points_possible: _propTypes.default.number,
270
+ quartile_distribution: _propTypes.default.arrayOf(_propTypes.default.number)
271
+ })
272
+ }).isRequired
273
+ }, _temp)) || _class);
274
+ exports.NewItemAnalysis = NewItemAnalysis;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = generator;
7
+
8
+ function generator(_ref) {
9
+ var spacing = _ref.spacing,
10
+ breakpoints = _ref.breakpoints;
11
+ return {
12
+ tabletBreakPoint: "max-width: ".concat(breakpoints.large),
13
+ cardWrapperPadding: spacing.medium,
14
+ viewPadding: spacing.small
15
+ };
16
+ }