@instructure/quiz-core 19.1.0 → 19.1.1-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +12 -18
  2. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/styles.js +14 -0
  3. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +15 -22
  4. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/styles.js +20 -0
  5. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/presenter.js +14 -18
  6. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/styles.js +11 -0
  7. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AggregationTable/popoverContent.js +6 -0
  8. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AggregationTable/presenter.js +9 -3
  9. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +13 -22
  10. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/styles.js +22 -0
  11. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +14 -24
  12. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/styles.js +28 -0
  13. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/presenter.js +15 -22
  14. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/styles.js +19 -0
  15. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AggregationTable/popoverContent.js +17 -0
  16. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AggregationTable/presenter.js +11 -3
  17. package/package.json +11 -10
  18. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +0 -3
  19. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +0 -6
  20. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/theme.js +0 -5
  21. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +0 -10
  22. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +0 -13
  23. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnswerFrequencySummary/shared/AfsTableWrapper/theme.js +0 -12
@@ -5,21 +5,14 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
5
 
6
6
  var _dec, _class, _class2, _temp;
7
7
 
8
- import { themeable } from '@instructure/ui-themeable';
9
- import theme from "./theme.js";
10
- var styles = {
11
- componentId: 'fKESK',
12
- template: function template(theme) {
13
- return "\n\n.fKESK_eckF{margin:0;max-width:159px;text-transform:capitalize}\n\n.fKESK_CIyo{width:90px}";
14
- },
15
- 'metricLabel': 'fKESK_eckF',
16
- 'metricWrapper': 'fKESK_CIyo'
17
- };
18
- import React, { Component } from 'react';
8
+ /** @jsx jsx */
9
+ import { Component } from 'react';
19
10
  import { getSanitizedMetricValue } from "../utils.js";
20
11
  import { Metric } from '@instructure/ui-metric';
21
12
  import PropTypes from 'prop-types';
22
- export var AnalysisMetric = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
13
+ import { withStyle, jsx } from '@instructure/emotion';
14
+ import generateStyle from "./styles.js";
15
+ export var AnalysisMetric = (_dec = withStyle(generateStyle, null), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
23
16
  _inherits(AnalysisMetric, _Component);
24
17
 
25
18
  var _super = _createSuper(AnalysisMetric);
@@ -39,18 +32,18 @@ export var AnalysisMetric = (_dec = themeable(theme, styles), _dec(_class = (_te
39
32
  value = _this$props.value,
40
33
  suffix = _this$props.suffix;
41
34
  var dataAutomation = "sdk-new-ia-quiz-analysis-".concat(metricKey);
42
- return /*#__PURE__*/React.createElement("div", {
35
+ return jsx("div", {
43
36
  "data-automation": dataAutomation,
44
- className: styles.metricWrapper
45
- }, /*#__PURE__*/React.createElement(Metric, {
37
+ css: this.props.styles.metricWrapper
38
+ }, jsx(Metric, {
46
39
  themeOverride: {
47
40
  valueFontWeight: 500,
48
41
  padding: '0'
49
42
  },
50
43
  textAlign: "start",
51
44
  key: metricKey,
52
- renderLabel: /*#__PURE__*/React.createElement("p", {
53
- className: styles.metricLabel
45
+ renderLabel: jsx("p", {
46
+ css: this.props.styles.metricLabel
54
47
  }, label),
55
48
  renderValue: getSanitizedMetricValue(value, suffix)
56
49
  }));
@@ -63,7 +56,8 @@ export var AnalysisMetric = (_dec = themeable(theme, styles), _dec(_class = (_te
63
56
  metricKey: PropTypes.string.isRequired,
64
57
  label: PropTypes.string.isRequired,
65
58
  value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),
66
- suffix: PropTypes.string
59
+ suffix: PropTypes.string,
60
+ styles: PropTypes.object
67
61
  }, _class2.defaultProps = {
68
62
  value: void 0,
69
63
  suffix: ''
@@ -0,0 +1,14 @@
1
+ var generateStyle = function generateStyle() {
2
+ return {
3
+ metricLabel: {
4
+ margin: 0,
5
+ maxWidth: '159px',
6
+ textTransform: 'capitalize'
7
+ },
8
+ metricWrapper: {
9
+ width: '90px'
10
+ }
11
+ };
12
+ };
13
+
14
+ export default generateStyle;
@@ -5,23 +5,15 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
5
 
6
6
  var _dec, _class, _class2, _temp;
7
7
 
8
- import React, { Component } from 'react';
8
+ /** @jsx jsx */
9
+ import { Component } from 'react';
9
10
  import { Metric } from '@instructure/ui-metric';
10
11
  import { getSanitizedMetricValue } from "../utils.js";
11
- var styles = {
12
- componentId: 'dpcwk',
13
- template: function template(theme) {
14
- return "\n\n.dpcwk_elNf{max-width:159px}\n\n.dpcwk_eckF{margin:0;padding-right:24px;text-transform:capitalize}\n\n.dpcwk_dqHR{margin-left:-24px;padding-left:5px}";
15
- },
16
- 'metricLabelContainer': 'dpcwk_elNf',
17
- 'metricLabel': 'dpcwk_eckF',
18
- 'popoverContainer': 'dpcwk_dqHR'
19
- };
20
12
  import MetricPopover from "../MetricPopover/index.js";
21
- import { themeable } from '@instructure/ui-themeable';
22
- import theme from "./theme.js";
13
+ import { withStyle, jsx } from '@instructure/emotion';
14
+ import generateStyle from "./styles.js";
23
15
  import PropTypes from 'prop-types';
24
- export var AnalysisPopoverMetric = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
16
+ export var AnalysisPopoverMetric = (_dec = withStyle(generateStyle, null), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
25
17
  _inherits(AnalysisPopoverMetric, _Component);
26
18
 
27
19
  var _super = _createSuper(AnalysisPopoverMetric);
@@ -35,13 +27,13 @@ export var AnalysisPopoverMetric = (_dec = themeable(theme, styles), _dec(_class
35
27
  _createClass(AnalysisPopoverMetric, [{
36
28
  key: "renderLabelWithPopover",
37
29
  value: function renderLabelWithPopover(texts) {
38
- return /*#__PURE__*/React.createElement("div", {
39
- className: styles.metricLabelContainer
40
- }, /*#__PURE__*/React.createElement("span", {
41
- className: styles.metricLabel
42
- }, this.props.label), /*#__PURE__*/React.createElement("span", {
43
- className: styles.popoverContainer
44
- }, /*#__PURE__*/React.createElement(MetricPopover, texts)));
30
+ return jsx("div", {
31
+ css: this.props.styles.metricLabelContainer
32
+ }, jsx("span", {
33
+ css: this.props.styles.metricLabel
34
+ }, this.props.label), jsx("span", {
35
+ css: this.props.styles.popoverContainer
36
+ }, jsx(MetricPopover, texts)));
45
37
  }
46
38
  }, {
47
39
  key: "render",
@@ -50,7 +42,7 @@ export var AnalysisPopoverMetric = (_dec = themeable(theme, styles), _dec(_class
50
42
  metricKey = _this$props.metricKey,
51
43
  popoverDescription = _this$props.popoverDescription,
52
44
  value = _this$props.value;
53
- return /*#__PURE__*/React.createElement(Metric, {
45
+ return jsx(Metric, {
54
46
  themeOverride: {
55
47
  valueFontWeight: 500,
56
48
  padding: '0'
@@ -74,7 +66,8 @@ export var AnalysisPopoverMetric = (_dec = themeable(theme, styles), _dec(_class
74
66
  subtitle: PropTypes.string,
75
67
  body: PropTypes.string,
76
68
  screenReaderLabel: PropTypes.string
77
- }).isRequired
69
+ }).isRequired,
70
+ styles: PropTypes.object
78
71
  }, _class2.defaultProps = {
79
72
  value: void 0
80
73
  }, _temp)) || _class);
@@ -0,0 +1,20 @@
1
+ var generateStyle = function generateStyle() {
2
+ return {
3
+ metricLabelContainer: {
4
+ maxWidth: '159px'
5
+ },
6
+ metricLabel: {
7
+ margin: '0',
8
+ textTransform: 'capitalize',
9
+ paddingRight: '24px'
10
+ },
11
+ popoverContainer: {
12
+ paddingLeft: '5px',
13
+ marginLeft: '-24px'
14
+ /* same as metricLabel padding. This makes sure that the icon never wraps below the text */
15
+
16
+ }
17
+ };
18
+ };
19
+
20
+ export default generateStyle;
@@ -4,21 +4,15 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
4
4
 
5
5
  var _dec, _class, _class2, _temp;
6
6
 
7
- import React, { Component } from 'react';
7
+ /** @jsx jsx */
8
+ import { Component } from 'react';
8
9
  import t from '@instructure/quiz-i18n/es/format-message';
9
- import theme from "./theme.js";
10
- var styles = {
11
- componentId: 'bmsWU',
12
- template: function template(theme) {
13
- return "\n\n.bmsWU_rMrG{display:flex;flex-basis:100%;flex-direction:column}";
14
- },
15
- 'tableWrapper': 'bmsWU_rMrG'
16
- };
17
- import { themeable } from '@instructure/ui-themeable';
18
10
  import { Flex } from '@instructure/ui-flex';
19
11
  import { Heading } from '@instructure/ui-heading';
12
+ import { withStyle, jsx } from '@instructure/emotion';
13
+ import generateStyle from "./styles.js";
20
14
  import PropTypes from 'prop-types';
21
- export var AfsTableWrapper = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
15
+ export var AfsTableWrapper = (_dec = withStyle(generateStyle, null), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
22
16
  _inherits(AfsTableWrapper, _Component);
23
17
 
24
18
  var _super = _createSuper(AfsTableWrapper);
@@ -35,13 +29,14 @@ export var AfsTableWrapper = (_dec = themeable(theme, styles), _dec(_class = (_t
35
29
  _this = _super.call.apply(_super, [this].concat(args));
36
30
 
37
31
  _this.render = function () {
38
- return /*#__PURE__*/React.createElement(Flex, {
39
- direction: "row"
40
- }, /*#__PURE__*/React.createElement(Flex.Item, {
32
+ return jsx(Flex, {
33
+ direction: "row",
34
+ "data-testid": "AfsTableWrapper"
35
+ }, jsx(Flex.Item, {
41
36
  shouldGrow: true
42
- }, /*#__PURE__*/React.createElement("div", {
43
- className: styles.tableWrapper
44
- }, /*#__PURE__*/React.createElement(Heading, {
37
+ }, jsx("div", {
38
+ css: _this.props.styles.tableWrapper
39
+ }, jsx(Heading, {
45
40
  margin: "x-large x-large x-large 0",
46
41
  level: "h3",
47
42
  weight: "bold",
@@ -54,5 +49,6 @@ export var AfsTableWrapper = (_dec = themeable(theme, styles), _dec(_class = (_t
54
49
 
55
50
  return AfsTableWrapper;
56
51
  }(Component), _class2.propTypes = {
57
- children: PropTypes.node.isRequired
52
+ children: PropTypes.node.isRequired,
53
+ styles: PropTypes.object
58
54
  }, _temp)) || _class);
@@ -0,0 +1,11 @@
1
+ var generateStyle = function generateStyle() {
2
+ return {
3
+ tableWrapper: {
4
+ display: 'flex',
5
+ flexBasis: '100%',
6
+ flexDirection: 'column'
7
+ }
8
+ };
9
+ };
10
+
11
+ export default generateStyle;
@@ -0,0 +1,6 @@
1
+ import t from '@instructure/quiz-i18n/es/format-message';
2
+ export var noAnswerMissing = {
3
+ title: t('No Response'),
4
+ body: t('No response is considered as Incorrect answer in this question type.'),
5
+ screenReaderLabel: t('No response tooltip')
6
+ };
@@ -36,6 +36,8 @@ var styles = {
36
36
  import { Flex } from '@instructure/ui-flex';
37
37
  import classNames from 'classnames';
38
38
  import { Text } from '@instructure/ui-text';
39
+ import MetricPopover from "../../../MetricPopover/index.js";
40
+ import { noAnswerMissing } from "./popoverContent.js";
39
41
  var noAnswerKey = 'noAnswer';
40
42
  var incorrectKey = 'incorrect';
41
43
  var correctKey = 'correct';
@@ -66,15 +68,18 @@ export var AggregationTable = (_dec = themeable(theme, styles), _dec(_class = (_
66
68
  _this = _super.call.apply(_super, [this].concat(args));
67
69
 
68
70
  _this.renderHeaderRow = function () {
71
+ var popover = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
69
72
  var itemId = _this.props.itemId;
70
73
  var answerHeaderId = "answer-frequency-summary-aggregate-answer-".concat(itemId);
71
74
  var respondentsHeaderId = "answer-frequency-summary-aggregate-respondents-".concat(itemId);
72
75
  var percentageHeaderId = "answer-frequency-summary-aggregate-percentage-".concat(itemId);
73
76
  return /*#__PURE__*/React.createElement(Table.Head, null, /*#__PURE__*/React.createElement(Table.Row, null, /*#__PURE__*/React.createElement(Table.ColHeader, {
74
77
  id: answerHeaderId
75
- }, /*#__PURE__*/React.createElement("span", {
78
+ }, /*#__PURE__*/React.createElement(Flex, {
79
+ gap: "x-small"
80
+ }, /*#__PURE__*/React.createElement(Flex.Item, null, /*#__PURE__*/React.createElement("span", {
76
81
  className: classNames(styles.firstHeaderCell)
77
- }, t('Result'))), /*#__PURE__*/React.createElement(Table.ColHeader, {
82
+ }, t('Result'))), /*#__PURE__*/React.createElement(Flex.Item, null, popover && /*#__PURE__*/React.createElement(MetricPopover, noAnswerMissing)))), /*#__PURE__*/React.createElement(Table.ColHeader, {
78
83
  id: respondentsHeaderId,
79
84
  textAlign: "center"
80
85
  }, t('Respondents')), /*#__PURE__*/React.createElement(Table.ColHeader, {
@@ -196,11 +201,12 @@ export var AggregationTable = (_dec = themeable(theme, styles), _dec(_class = (_
196
201
  };
197
202
 
198
203
  _this.render = function () {
204
+ var popover = !_this.noAnswerExist();
199
205
  return /*#__PURE__*/React.createElement("div", {
200
206
  className: classNames(styles.collapsingTable, styles[_this.getColorProfile()])
201
207
  }, /*#__PURE__*/React.createElement(Table, {
202
208
  caption: t('Answer Frequency Summary Aggregates')
203
- }, _this.renderHeaderRow(), /*#__PURE__*/React.createElement(Table.Body, null, _this.correctExist() && _this.renderCorrect(), _this.partialCorrectExist() && _this.renderPartialCorrect(), _this.incorrectExist() && _this.renderIncorrect(), _this.noAnswerExist() && _this.renderNoAnswer())));
209
+ }, _this.renderHeaderRow(popover), /*#__PURE__*/React.createElement(Table.Body, null, _this.correctExist() && _this.renderCorrect(), _this.partialCorrectExist() && _this.renderPartialCorrect(), _this.incorrectExist() && _this.renderIncorrect(), _this.noAnswerExist() && _this.renderNoAnswer())));
204
210
  };
205
211
 
206
212
  return _this;
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -17,11 +15,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
17
15
 
18
16
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
17
 
20
- var _uiThemeable = require("@instructure/ui-themeable");
21
-
22
- var _theme = _interopRequireDefault(require("./theme.js"));
23
-
24
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = require("react");
25
19
 
26
20
  var _utils = require("../utils.js");
27
21
 
@@ -29,17 +23,13 @@ var _uiMetric = require("@instructure/ui-metric");
29
23
 
30
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
31
25
 
26
+ var _emotion = require("@instructure/emotion");
27
+
28
+ var _styles = _interopRequireDefault(require("./styles.js"));
29
+
32
30
  var _dec, _class, _class2, _temp;
33
31
 
34
- var styles = {
35
- componentId: 'fKESK',
36
- template: function template(theme) {
37
- return "\n\n.fKESK_eckF{margin:0;max-width:159px;text-transform:capitalize}\n\n.fKESK_CIyo{width:90px}";
38
- },
39
- 'metricLabel': 'fKESK_eckF',
40
- 'metricWrapper': 'fKESK_CIyo'
41
- };
42
- var AnalysisMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
32
+ var AnalysisMetric = (_dec = (0, _emotion.withStyle)(_styles.default, null), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
43
33
  (0, _inherits2.default)(AnalysisMetric, _Component);
44
34
 
45
35
  var _super = (0, _createSuper2.default)(AnalysisMetric);
@@ -58,18 +48,18 @@ var AnalysisMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles)
58
48
  value = _this$props.value,
59
49
  suffix = _this$props.suffix;
60
50
  var dataAutomation = "sdk-new-ia-quiz-analysis-".concat(metricKey);
61
- return /*#__PURE__*/_react.default.createElement("div", {
51
+ return (0, _emotion.jsx)("div", {
62
52
  "data-automation": dataAutomation,
63
- className: styles.metricWrapper
64
- }, /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
53
+ css: this.props.styles.metricWrapper
54
+ }, (0, _emotion.jsx)(_uiMetric.Metric, {
65
55
  themeOverride: {
66
56
  valueFontWeight: 500,
67
57
  padding: '0'
68
58
  },
69
59
  textAlign: "start",
70
60
  key: metricKey,
71
- renderLabel: /*#__PURE__*/_react.default.createElement("p", {
72
- className: styles.metricLabel
61
+ renderLabel: (0, _emotion.jsx)("p", {
62
+ css: this.props.styles.metricLabel
73
63
  }, label),
74
64
  renderValue: (0, _utils.getSanitizedMetricValue)(value, suffix)
75
65
  }));
@@ -81,7 +71,8 @@ var AnalysisMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles)
81
71
  metricKey: _propTypes.default.string.isRequired,
82
72
  label: _propTypes.default.string.isRequired,
83
73
  value: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string, _propTypes.default.array]),
84
- suffix: _propTypes.default.string
74
+ suffix: _propTypes.default.string,
75
+ styles: _propTypes.default.object
85
76
  }, _class2.defaultProps = {
86
77
  value: void 0,
87
78
  suffix: ''
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var generateStyle = function generateStyle() {
9
+ return {
10
+ metricLabel: {
11
+ margin: 0,
12
+ maxWidth: '159px',
13
+ textTransform: 'capitalize'
14
+ },
15
+ metricWrapper: {
16
+ width: '90px'
17
+ }
18
+ };
19
+ };
20
+
21
+ var _default = generateStyle;
22
+ exports.default = _default;
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -17,7 +15,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
17
15
 
18
16
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
17
 
20
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = require("react");
21
19
 
22
20
  var _uiMetric = require("@instructure/ui-metric");
23
21
 
@@ -25,24 +23,15 @@ var _utils = require("../utils.js");
25
23
 
26
24
  var _index = _interopRequireDefault(require("../MetricPopover/index.js"));
27
25
 
28
- var _uiThemeable = require("@instructure/ui-themeable");
26
+ var _emotion = require("@instructure/emotion");
29
27
 
30
- var _theme = _interopRequireDefault(require("./theme.js"));
28
+ var _styles = _interopRequireDefault(require("./styles.js"));
31
29
 
32
30
  var _propTypes = _interopRequireDefault(require("prop-types"));
33
31
 
34
32
  var _dec, _class, _class2, _temp;
35
33
 
36
- var styles = {
37
- componentId: 'dpcwk',
38
- template: function template(theme) {
39
- return "\n\n.dpcwk_elNf{max-width:159px}\n\n.dpcwk_eckF{margin:0;padding-right:24px;text-transform:capitalize}\n\n.dpcwk_dqHR{margin-left:-24px;padding-left:5px}";
40
- },
41
- 'metricLabelContainer': 'dpcwk_elNf',
42
- 'metricLabel': 'dpcwk_eckF',
43
- 'popoverContainer': 'dpcwk_dqHR'
44
- };
45
- var AnalysisPopoverMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
34
+ var AnalysisPopoverMetric = (_dec = (0, _emotion.withStyle)(_styles.default, null), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
46
35
  (0, _inherits2.default)(AnalysisPopoverMetric, _Component);
47
36
 
48
37
  var _super = (0, _createSuper2.default)(AnalysisPopoverMetric);
@@ -55,13 +44,13 @@ var AnalysisPopoverMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default,
55
44
  (0, _createClass2.default)(AnalysisPopoverMetric, [{
56
45
  key: "renderLabelWithPopover",
57
46
  value: function renderLabelWithPopover(texts) {
58
- return /*#__PURE__*/_react.default.createElement("div", {
59
- className: styles.metricLabelContainer
60
- }, /*#__PURE__*/_react.default.createElement("span", {
61
- className: styles.metricLabel
62
- }, this.props.label), /*#__PURE__*/_react.default.createElement("span", {
63
- className: styles.popoverContainer
64
- }, /*#__PURE__*/_react.default.createElement(_index.default, texts)));
47
+ return (0, _emotion.jsx)("div", {
48
+ css: this.props.styles.metricLabelContainer
49
+ }, (0, _emotion.jsx)("span", {
50
+ css: this.props.styles.metricLabel
51
+ }, this.props.label), (0, _emotion.jsx)("span", {
52
+ css: this.props.styles.popoverContainer
53
+ }, (0, _emotion.jsx)(_index.default, texts)));
65
54
  }
66
55
  }, {
67
56
  key: "render",
@@ -70,7 +59,7 @@ var AnalysisPopoverMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default,
70
59
  metricKey = _this$props.metricKey,
71
60
  popoverDescription = _this$props.popoverDescription,
72
61
  value = _this$props.value;
73
- return /*#__PURE__*/_react.default.createElement(_uiMetric.Metric, {
62
+ return (0, _emotion.jsx)(_uiMetric.Metric, {
74
63
  themeOverride: {
75
64
  valueFontWeight: 500,
76
65
  padding: '0'
@@ -93,7 +82,8 @@ var AnalysisPopoverMetric = (_dec = (0, _uiThemeable.themeable)(_theme.default,
93
82
  subtitle: _propTypes.default.string,
94
83
  body: _propTypes.default.string,
95
84
  screenReaderLabel: _propTypes.default.string
96
- }).isRequired
85
+ }).isRequired,
86
+ styles: _propTypes.default.object
97
87
  }, _class2.defaultProps = {
98
88
  value: void 0
99
89
  }, _temp)) || _class);
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var generateStyle = function generateStyle() {
9
+ return {
10
+ metricLabelContainer: {
11
+ maxWidth: '159px'
12
+ },
13
+ metricLabel: {
14
+ margin: '0',
15
+ textTransform: 'capitalize',
16
+ paddingRight: '24px'
17
+ },
18
+ popoverContainer: {
19
+ paddingLeft: '5px',
20
+ marginLeft: '-24px'
21
+ /* same as metricLabel padding. This makes sure that the icon never wraps below the text */
22
+
23
+ }
24
+ };
25
+ };
26
+
27
+ var _default = generateStyle;
28
+ exports.default = _default;
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -15,30 +13,23 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
15
13
 
16
14
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
17
15
 
18
- var _react = _interopRequireWildcard(require("react"));
16
+ var _react = require("react");
19
17
 
20
18
  var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
21
19
 
22
- var _theme = _interopRequireDefault(require("./theme.js"));
23
-
24
- var _uiThemeable = require("@instructure/ui-themeable");
25
-
26
20
  var _uiFlex = require("@instructure/ui-flex");
27
21
 
28
22
  var _uiHeading = require("@instructure/ui-heading");
29
23
 
24
+ var _emotion = require("@instructure/emotion");
25
+
26
+ var _styles = _interopRequireDefault(require("./styles.js"));
27
+
30
28
  var _propTypes = _interopRequireDefault(require("prop-types"));
31
29
 
32
30
  var _dec, _class, _class2, _temp;
33
31
 
34
- var styles = {
35
- componentId: 'bmsWU',
36
- template: function template(theme) {
37
- return "\n\n.bmsWU_rMrG{display:flex;flex-basis:100%;flex-direction:column}";
38
- },
39
- 'tableWrapper': 'bmsWU_rMrG'
40
- };
41
- var AfsTableWrapper = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
32
+ var AfsTableWrapper = (_dec = (0, _emotion.withStyle)(_styles.default, null), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
42
33
  (0, _inherits2.default)(AfsTableWrapper, _Component);
43
34
 
44
35
  var _super = (0, _createSuper2.default)(AfsTableWrapper);
@@ -55,13 +46,14 @@ var AfsTableWrapper = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
55
46
  _this = _super.call.apply(_super, [this].concat(args));
56
47
 
57
48
  _this.render = function () {
58
- return /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
59
- direction: "row"
60
- }, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, {
49
+ return (0, _emotion.jsx)(_uiFlex.Flex, {
50
+ direction: "row",
51
+ "data-testid": "AfsTableWrapper"
52
+ }, (0, _emotion.jsx)(_uiFlex.Flex.Item, {
61
53
  shouldGrow: true
62
- }, /*#__PURE__*/_react.default.createElement("div", {
63
- className: styles.tableWrapper
64
- }, /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
54
+ }, (0, _emotion.jsx)("div", {
55
+ css: _this.props.styles.tableWrapper
56
+ }, (0, _emotion.jsx)(_uiHeading.Heading, {
65
57
  margin: "x-large x-large x-large 0",
66
58
  level: "h3",
67
59
  weight: "bold",
@@ -74,6 +66,7 @@ var AfsTableWrapper = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
74
66
 
75
67
  return AfsTableWrapper;
76
68
  }(_react.Component), _class2.propTypes = {
77
- children: _propTypes.default.node.isRequired
69
+ children: _propTypes.default.node.isRequired,
70
+ styles: _propTypes.default.object
78
71
  }, _temp)) || _class);
79
72
  exports.AfsTableWrapper = AfsTableWrapper;
@@ -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 generateStyle = function generateStyle() {
9
+ return {
10
+ tableWrapper: {
11
+ display: 'flex',
12
+ flexBasis: '100%',
13
+ flexDirection: 'column'
14
+ }
15
+ };
16
+ };
17
+
18
+ var _default = generateStyle;
19
+ exports.default = _default;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.noAnswerMissing = void 0;
9
+
10
+ var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
11
+
12
+ var noAnswerMissing = {
13
+ title: (0, _formatMessage.default)('No Response'),
14
+ body: (0, _formatMessage.default)('No response is considered as Incorrect answer in this question type.'),
15
+ screenReaderLabel: (0, _formatMessage.default)('No response tooltip')
16
+ };
17
+ exports.noAnswerMissing = noAnswerMissing;
@@ -39,6 +39,10 @@ var _classnames = _interopRequireDefault(require("classnames"));
39
39
 
40
40
  var _uiText = require("@instructure/ui-text");
41
41
 
42
+ var _index = _interopRequireDefault(require("../../../MetricPopover/index.js"));
43
+
44
+ var _popoverContent = require("./popoverContent.js");
45
+
42
46
  var _dec, _class, _class2, _temp;
43
47
 
44
48
  var styles = {
@@ -91,15 +95,18 @@ var AggregationTable = (_dec = (0, _uiThemeable.themeable)(_theme.default, style
91
95
  _this = _super.call.apply(_super, [this].concat(args));
92
96
 
93
97
  _this.renderHeaderRow = function () {
98
+ var popover = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
94
99
  var itemId = _this.props.itemId;
95
100
  var answerHeaderId = "answer-frequency-summary-aggregate-answer-".concat(itemId);
96
101
  var respondentsHeaderId = "answer-frequency-summary-aggregate-respondents-".concat(itemId);
97
102
  var percentageHeaderId = "answer-frequency-summary-aggregate-percentage-".concat(itemId);
98
103
  return /*#__PURE__*/_react.default.createElement(_uiTable.Table.Head, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table.Row, null, /*#__PURE__*/_react.default.createElement(_uiTable.Table.ColHeader, {
99
104
  id: answerHeaderId
100
- }, /*#__PURE__*/_react.default.createElement("span", {
105
+ }, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex, {
106
+ gap: "x-small"
107
+ }, /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, null, /*#__PURE__*/_react.default.createElement("span", {
101
108
  className: (0, _classnames.default)(styles.firstHeaderCell)
102
- }, (0, _formatMessage.default)('Result'))), /*#__PURE__*/_react.default.createElement(_uiTable.Table.ColHeader, {
109
+ }, (0, _formatMessage.default)('Result'))), /*#__PURE__*/_react.default.createElement(_uiFlex.Flex.Item, null, popover && /*#__PURE__*/_react.default.createElement(_index.default, _popoverContent.noAnswerMissing)))), /*#__PURE__*/_react.default.createElement(_uiTable.Table.ColHeader, {
103
110
  id: respondentsHeaderId,
104
111
  textAlign: "center"
105
112
  }, (0, _formatMessage.default)('Respondents')), /*#__PURE__*/_react.default.createElement(_uiTable.Table.ColHeader, {
@@ -221,11 +228,12 @@ var AggregationTable = (_dec = (0, _uiThemeable.themeable)(_theme.default, style
221
228
  };
222
229
 
223
230
  _this.render = function () {
231
+ var popover = !_this.noAnswerExist();
224
232
  return /*#__PURE__*/_react.default.createElement("div", {
225
233
  className: (0, _classnames.default)(styles.collapsingTable, styles[_this.getColorProfile()])
226
234
  }, /*#__PURE__*/_react.default.createElement(_uiTable.Table, {
227
235
  caption: (0, _formatMessage.default)('Answer Frequency Summary Aggregates')
228
- }, _this.renderHeaderRow(), /*#__PURE__*/_react.default.createElement(_uiTable.Table.Body, null, _this.correctExist() && _this.renderCorrect(), _this.partialCorrectExist() && _this.renderPartialCorrect(), _this.incorrectExist() && _this.renderIncorrect(), _this.noAnswerExist() && _this.renderNoAnswer())));
236
+ }, _this.renderHeaderRow(popover), /*#__PURE__*/_react.default.createElement(_uiTable.Table.Body, null, _this.correctExist() && _this.renderCorrect(), _this.partialCorrectExist() && _this.renderPartialCorrect(), _this.incorrectExist() && _this.renderIncorrect(), _this.noAnswerExist() && _this.renderNoAnswer())));
229
237
  };
230
238
 
231
239
  return _this;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/quiz-core",
3
- "version": "19.1.0",
3
+ "version": "19.1.1-rc.1+6f25bb27e",
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.48.3",
45
45
  "@instructure/grading-utils": "^1.0.0",
46
46
  "@instructure/outcomes-ui": "^2.1.9",
47
- "@instructure/quiz-common": "^19.1.0",
48
- "@instructure/quiz-i18n": "^19.1.0",
49
- "@instructure/quiz-interactions": "^19.1.0",
50
- "@instructure/quiz-number-input": "^19.1.0",
51
- "@instructure/quiz-rce": "^19.1.0",
47
+ "@instructure/quiz-common": "19.1.1-rc.1+6f25bb27e",
48
+ "@instructure/quiz-i18n": "19.1.1-rc.1+6f25bb27e",
49
+ "@instructure/quiz-interactions": "19.1.1-rc.1+6f25bb27e",
50
+ "@instructure/quiz-number-input": "19.1.1-rc.1+6f25bb27e",
51
+ "@instructure/quiz-rce": "19.1.1-rc.1+6f25bb27e",
52
52
  "@instructure/ui-a11y-content": "^8.48.3",
53
53
  "@instructure/ui-alerts": "^8.48.3",
54
54
  "@instructure/ui-avatar": "^8.48.3",
@@ -110,7 +110,7 @@
110
110
  "file-saver": "~2.0.5",
111
111
  "humps": "^2.0.0",
112
112
  "immutable": "^3.8.1",
113
- "instructure-validations": "^19.1.0",
113
+ "instructure-validations": "19.1.1-rc.1+6f25bb27e",
114
114
  "ipaddr.js": "^1.5.4",
115
115
  "isomorphic-fetch": "^2.2.0",
116
116
  "isuuid": "^0.1.0",
@@ -142,13 +142,14 @@
142
142
  "uuid": "^3.2.1"
143
143
  },
144
144
  "devDependencies": {
145
- "@instructure/quiz-scripts": "^19.1.0",
145
+ "@instructure/quiz-scripts": "19.1.0",
146
146
  "@instructure/ui-axe-check": "^8.48.3",
147
147
  "@instructure/ui-babel-preset": "^7.22.1",
148
148
  "@instructure/ui-karma-config": "^7.22.1",
149
149
  "@instructure/ui-postcss-config": "^7.22.1",
150
150
  "@instructure/ui-scripts": "^7.22.1",
151
151
  "@instructure/ui-test-utils": "^7.22.1",
152
+ "@testing-library/react": "^12.1.5",
152
153
  "chai": "^4.1.2",
153
154
  "chai-as-promised": "^7.1.1",
154
155
  "chai-enzyme": "^1.0.0-beta.1",
@@ -161,7 +162,7 @@
161
162
  "intl": "^1.2.4",
162
163
  "jquery": "^2.2.3",
163
164
  "most-subject": "^5.3.0",
164
- "quiz-presets": "^19.1.0",
165
+ "quiz-presets": "19.1.1-rc.1+6f25bb27e",
165
166
  "react": "^16.8.6",
166
167
  "react-addons-test-utils": "^15.6.2",
167
168
  "react-dom": "^16.8.6",
@@ -177,5 +178,5 @@
177
178
  "publishConfig": {
178
179
  "access": "public"
179
180
  },
180
- "gitHead": "b4108f0a0adb7a2c80409e4c8a81f645c2aff899"
181
+ "gitHead": "6f25bb27e11398a4ec0718a343fd2dcebcd16b83"
181
182
  }
@@ -1,3 +0,0 @@
1
- export default function generator() {
2
- return {};
3
- }
@@ -1,6 +0,0 @@
1
- export default function generator(_ref) {
2
- var spacing = _ref.spacing;
3
- return {
4
- headerPaddingBottom: spacing.medium
5
- };
6
- }
@@ -1,5 +0,0 @@
1
- export default function generator() {
2
- return {
3
- tableBottomPadding: 0
4
- };
5
- }
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = generator;
7
-
8
- function generator() {
9
- return {};
10
- }
@@ -1,13 +0,0 @@
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
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = generator;
7
-
8
- function generator() {
9
- return {
10
- tableBottomPadding: 0
11
- };
12
- }