@instructure/quiz-core 20.4.2-rc.1 → 20.4.2-rc.3

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 (41) hide show
  1. package/es/common/components/resources/quiz/instructions/Instructions.js +17 -18
  2. package/es/common/components/resources/quiz/instructions/styles.js +21 -0
  3. package/es/common/components/resources/quiz/instructions/theme.js +4 -2
  4. package/es/common/components/resources/quiz/title/Title.js +15 -18
  5. package/es/common/components/resources/quiz/title/styles.js +19 -0
  6. package/es/common/components/resources/quiz/title/theme.js +4 -2
  7. package/es/common/components/resources/quizSessionResult/Header/index.js +22 -29
  8. package/es/common/components/resources/quizSessionResult/Header/styles.js +29 -0
  9. package/es/common/components/resources/quizSessionResult/Header/theme.js +4 -2
  10. package/es/common/components/resources/quizSessionResult/Info/index.js +43 -53
  11. package/es/common/components/resources/quizSessionResult/Info/styles.js +61 -0
  12. package/es/common/components/resources/quizSessionResult/Info/theme.js +4 -2
  13. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/index.js +1 -0
  14. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/presenter.js +40 -0
  15. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/styles.js +17 -0
  16. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/theme.js +11 -0
  17. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +2 -1
  18. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +59 -17
  19. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +7 -2
  20. package/es/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +2 -1
  21. package/lib/common/components/resources/quiz/instructions/Instructions.js +15 -22
  22. package/lib/common/components/resources/quiz/instructions/styles.js +29 -0
  23. package/lib/common/components/resources/quiz/instructions/theme.js +6 -3
  24. package/lib/common/components/resources/quiz/title/Title.js +15 -23
  25. package/lib/common/components/resources/quiz/title/styles.js +27 -0
  26. package/lib/common/components/resources/quiz/title/theme.js +6 -3
  27. package/lib/common/components/resources/quizSessionResult/Header/index.js +21 -31
  28. package/lib/common/components/resources/quizSessionResult/Header/styles.js +37 -0
  29. package/lib/common/components/resources/quizSessionResult/Header/theme.js +6 -3
  30. package/lib/common/components/resources/quizSessionResult/Info/index.js +42 -55
  31. package/lib/common/components/resources/quizSessionResult/Info/styles.js +69 -0
  32. package/lib/common/components/resources/quizSessionResult/Info/theme.js +6 -3
  33. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/index.js +13 -0
  34. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/presenter.js +55 -0
  35. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/styles.js +25 -0
  36. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/BlankIcon/theme.js +19 -0
  37. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +2 -1
  38. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +60 -17
  39. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +7 -2
  40. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/propTypes.js +2 -1
  41. package/package.json +9 -9
@@ -0,0 +1,17 @@
1
+ var generateStyle = function generateStyle(componentTheme) {
2
+ return {
3
+ blankSpace: {
4
+ display: 'inline-flex',
5
+ justifyContent: 'center',
6
+ alignItems: 'center',
7
+ height: componentTheme.blankHeight,
8
+ minWidth: componentTheme.blankMinWidth,
9
+ verticalAlign: 'middle',
10
+ border: "1px solid ".concat(componentTheme.blankBorderColor),
11
+ borderRadius: componentTheme.blankBorderRadius,
12
+ padding: '2px 2px'
13
+ }
14
+ };
15
+ };
16
+
17
+ export default generateStyle;
@@ -0,0 +1,11 @@
1
+ var generateComponentTheme = function generateComponentTheme(_ref) {
2
+ var colors = _ref.colors;
3
+ return {
4
+ blankBorderColor: colors.tiara,
5
+ blankBorderRadius: '14px',
6
+ blankMinWidth: '20px',
7
+ blankHeight: '20px'
8
+ };
9
+ };
10
+
11
+ export default generateComponentTheme;
@@ -14,7 +14,8 @@ function mapStateToProps(_state) {
14
14
  categorizationEnabled: featureOn('ia_categorization_afs'),
15
15
  trueFalseEnabled: featureOn('ia_true_false_afs'),
16
16
  choiceEnabled: featureOn('ia_choice_afs'),
17
- multiAnswerEnabled: featureOn('ia_multi_answer_afs')
17
+ multiAnswerEnabled: featureOn('ia_multi_answer_afs'),
18
+ fillInTheBlankEnabled: featureOn('ia_rich_fill_blank_afs')
18
19
  }
19
20
  };
20
21
  }
@@ -10,20 +10,21 @@ import { Heading } from '@instructure/ui-heading';
10
10
  import { PresentationContent } from '@instructure/ui-a11y-content';
11
11
  import React, { Component } from 'react';
12
12
  var styles = {
13
- componentId: 'ewlJT',
13
+ componentId: 'eObAE',
14
14
  template: function template(theme) {
15
- return "\n\n.ewlJT_eKXQ{padding:".concat(theme.cardWrapperPadding || 'inherit', "}\n\n.ewlJT_bwlc{gap:24px;justify-content:space-between;position:relative;row-gap:32px}\n\n.ewlJT_bwlc,.ewlJT_bqdH{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:wrap}\n\n.ewlJT_bqdH{row-gap:24px}\n\n.ewlJT_NpIG{position:absolute;right:").concat(theme.viewPaddingRight || 'inherit', ";top:0}\n\n.ewlJT_eoBe{font-size:").concat(theme.metricNumberContextFontSize || 'inherit', ";font-weight:").concat(theme.metricNumberContextFontWeight || 'inherit', "}\n\n.ewlJT_fFDJ{display:none}\n\n.ewlJT_fxkJ{margin-top:-8px}\n\n.ewlJT_esVF{min-height:48px}\n\n.ewlJT_eTZq{position:relative}\n\n.ewlJT_eTZq:after{background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff);content:\"\";height:48px;left:0;position:absolute;top:0;width:100%}\n\n.ewlJT_cVld{max-width:100%;width:calc(25% + 350px)}");
15
+ return "\n\n.eObAE_eKXQ{padding:".concat(theme.cardWrapperPadding || 'inherit', "}\n\n.eObAE_bwlc{gap:24px;justify-content:space-between;position:relative;row-gap:32px}\n\n.eObAE_bwlc,.eObAE_bqdH{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:wrap}\n\n.eObAE_bqdH{row-gap:24px}\n\n.eObAE_eTaq{align-items:center;border:1px solid ").concat(theme.blankBorderColor || 'inherit', ";border-radius:").concat(theme.blankBorderRadius || 'inherit', ";display:inline-flex;height:").concat(theme.blankHeight || 'inherit', ";justify-content:center;min-width:").concat(theme.blankMinWidth || 'inherit', ";padding:2px 2px;vertical-align:middle}\n\n.eObAE_NpIG{position:absolute;right:").concat(theme.viewPaddingRight || 'inherit', ";top:0}\n\n.eObAE_eoBe{font-size:").concat(theme.metricNumberContextFontSize || 'inherit', ";font-weight:").concat(theme.metricNumberContextFontWeight || 'inherit', "}\n\n.eObAE_fFDJ{display:none}\n\n.eObAE_fxkJ{margin-top:-8px}\n\n.eObAE_esVF{min-height:48px}\n\n.eObAE_eTZq{position:relative}\n\n.eObAE_eTZq:after{background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff);content:\"\";height:48px;left:0;position:absolute;top:0;width:100%}\n\n.eObAE_cVld{max-width:100%;width:calc(25% + 350px)}");
16
16
  },
17
- 'cardWrapper': 'ewlJT_eKXQ',
18
- 'itemCardInnerContainer': 'ewlJT_bwlc',
19
- 'metricsContainer': 'ewlJT_bqdH',
20
- 'itemCardToggleButtonWrapper': 'ewlJT_NpIG',
21
- 'metricNumberContext': 'ewlJT_eoBe',
22
- 'hiddenMetrics': 'ewlJT_fFDJ',
23
- 'itemBodyToggleButtonWrapper': 'ewlJT_fxkJ',
24
- 'itemBody': 'ewlJT_esVF',
25
- 'hiddenItemBody': 'ewlJT_eTZq',
26
- 'answerFrequencySummaryContainer': 'ewlJT_cVld'
17
+ 'cardWrapper': 'eObAE_eKXQ',
18
+ 'itemCardInnerContainer': 'eObAE_bwlc',
19
+ 'metricsContainer': 'eObAE_bqdH',
20
+ 'blankSpace': 'eObAE_eTaq',
21
+ 'itemCardToggleButtonWrapper': 'eObAE_NpIG',
22
+ 'metricNumberContext': 'eObAE_eoBe',
23
+ 'hiddenMetrics': 'eObAE_fFDJ',
24
+ 'itemBodyToggleButtonWrapper': 'eObAE_fxkJ',
25
+ 'itemBody': 'eObAE_esVF',
26
+ 'hiddenItemBody': 'eObAE_eTZq',
27
+ 'answerFrequencySummaryContainer': 'eObAE_cVld'
27
28
  };
28
29
  import t from '@instructure/quiz-i18n/es/format-message';
29
30
  import ExpandButton from "../../../../../common/components/shared/ExpandButton/index.js";
@@ -42,6 +43,10 @@ import { Flex } from '@instructure/ui-flex';
42
43
  import { RichContentRenderer } from '@instructure/quiz-rce';
43
44
  import { ensureRCEContentIsLoaded } from "../../../../../common/util/rceChecker.js";
44
45
  import { PropTypes } from '@instructure/quiz-interactions';
46
+ import { RICH_FILL_BLANK_SLUG } from '@instructure/quiz-common';
47
+ var parser = new DOMParser();
48
+ var parsererrorElement = 'parsererror';
49
+ var parseType = 'text/html';
45
50
  export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
46
51
  _inherits(NewItemAnalysis, _Component);
47
52
 
@@ -113,6 +118,34 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
113
118
  }, _this.mapInteractionTypeToTranslation(interactionType));
114
119
  };
115
120
 
121
+ _this.isBlank = function (element) {
122
+ if (element.textContent) return false;
123
+ if (!element.hasAttribute('id')) return false;
124
+ var regex = new RegExp('^blank_.+$');
125
+ return regex.test(element.getAttribute('id'));
126
+ };
127
+
128
+ _this.enhanceItemBody = function (itemBody) {
129
+ var tempDoc = parser.parseFromString(itemBody, parseType);
130
+ var errorNode = tempDoc.querySelector(parsererrorElement);
131
+
132
+ if (errorNode) {
133
+ // eslint-disable-next-line no-console
134
+ console.error('Parsing failed: ', errorNode);
135
+ return itemBody;
136
+ }
137
+
138
+ Array.from(tempDoc.querySelectorAll('span')).filter(function (span) {
139
+ return _this.isBlank(span);
140
+ }).forEach(function (span, index) {
141
+ var newSpan = span.cloneNode();
142
+ newSpan.setAttribute('class', styles.blankSpace);
143
+ newSpan.innerHTML = "".concat(index + 1);
144
+ span.replaceWith(newSpan);
145
+ });
146
+ return tempDoc.querySelector('body').innerHTML;
147
+ };
148
+
116
149
  _this.renderRichContent = function (itemBody, itemBodyClass, itemId) {
117
150
  return /*#__PURE__*/React.createElement(Flex, {
118
151
  direction: "row",
@@ -203,6 +236,14 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
203
236
  })));
204
237
  };
205
238
 
239
+ _this.shouldEnhanceItemBody = function () {
240
+ var _this$props = _this.props,
241
+ itemAnalysis = _this$props.itemAnalysis,
242
+ afsFlags = _this$props.afsFlags;
243
+ var metadata = itemAnalysis.metadata;
244
+ return afsFlags.fillInTheBlankEnabled && metadata.interaction_type === RICH_FILL_BLANK_SLUG && metadata.item_body;
245
+ };
246
+
206
247
  return _this;
207
248
  }
208
249
 
@@ -243,10 +284,10 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
243
284
  value: function render() {
244
285
  var _metadata$item_title;
245
286
 
246
- var _this$props = this.props,
247
- showFrequencyTable = _this$props.showFrequencyTable,
248
- itemAnalysis = _this$props.itemAnalysis,
249
- afsFlags = _this$props.afsFlags;
287
+ var _this$props2 = this.props,
288
+ showFrequencyTable = _this$props2.showFrequencyTable,
289
+ itemAnalysis = _this$props2.itemAnalysis,
290
+ afsFlags = _this$props2.afsFlags;
250
291
  var answer_summary = itemAnalysis.answer_summary,
251
292
  metadata = itemAnalysis.metadata,
252
293
  scores = itemAnalysis.scores;
@@ -255,6 +296,7 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
255
296
  var metricsClass = classnames(_defineProperty({}, styles.hiddenMetrics, !this.state.metricsExpanded));
256
297
  var itemBodyClass = classnames(styles.itemBody, _defineProperty({}, styles.hiddenItemBody, this.isBodyHigherThanContainer() && !this.state.bodyExpanded));
257
298
  var title = (_metadata$item_title = metadata.item_title) !== null && _metadata$item_title !== void 0 ? _metadata$item_title : t('Untitled item');
299
+ var itemBodyEnhanced = this.shouldEnhanceItemBody() ? this.enhanceItemBody(metadata.item_body) : metadata.item_body;
258
300
  return /*#__PURE__*/React.createElement(Card, {
259
301
  className: styles.cardWrapper
260
302
  }, /*#__PURE__*/React.createElement(Flex, {
@@ -275,7 +317,7 @@ export var NewItemAnalysis = (_dec = themeable(theme, styles), _dec(_class = (_t
275
317
  padding: "small xx-small none none",
276
318
  overflowY: "hidden",
277
319
  size: !this.state.bodyExpanded ? '60px' : void 0
278
- }, this.renderRichContent(metadata.item_body, itemBodyClass, itemId)))), /*#__PURE__*/React.createElement(Flex.Item, null, this.renderMetrics(scores, metricsClass)))), showFrequencyTable && this.renderAnswerSummaryTable(itemId, answer_summary, metricsClass, interactionType, afsFlags)));
320
+ }, this.renderRichContent(itemBodyEnhanced, itemBodyClass, itemId)))), /*#__PURE__*/React.createElement(Flex.Item, null, this.renderMetrics(scores, metricsClass)))), showFrequencyTable && this.renderAnswerSummaryTable(itemId, answer_summary, metricsClass, interactionType, afsFlags)));
279
321
  }
280
322
  }]);
281
323
 
@@ -1,12 +1,17 @@
1
1
  export default function generator(_ref) {
2
2
  var spacing = _ref.spacing,
3
3
  breakpoints = _ref.breakpoints,
4
- typography = _ref.typography;
4
+ typography = _ref.typography,
5
+ colors = _ref.colors;
5
6
  return {
6
7
  tabletBreakPoint: "max-width: ".concat(breakpoints.large),
7
8
  cardWrapperPadding: spacing.medium,
8
9
  viewPaddingRight: spacing.xxSmall,
9
10
  metricNumberContextFontSize: typography.fontSizeMedium,
10
- metricNumberContextFontWeight: typography.fontWeightNormal
11
+ metricNumberContextFontWeight: typography.fontWeightNormal,
12
+ blankBorderColor: colors.tiara,
13
+ blankBorderRadius: '14px',
14
+ blankMinWidth: '20px',
15
+ blankHeight: '20px'
11
16
  };
12
17
  }
@@ -90,5 +90,6 @@ export var afsFlags = PropTypes.shape({
90
90
  categorizationEnabled: PropTypes.bool.isRequired,
91
91
  trueFalseEnabled: PropTypes.bool.isRequired,
92
92
  choiceEnabled: PropTypes.bool.isRequired,
93
- multiAnswerEnabled: PropTypes.bool.isRequired
93
+ multiAnswerEnabled: PropTypes.bool.isRequired,
94
+ fillInTheBlankEnabled: PropTypes.bool.isRequired
94
95
  });
@@ -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,33 +15,25 @@ 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 _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
23
21
 
24
- var _uiThemeable = require("@instructure/ui-themeable");
22
+ var _propTypes = _interopRequireDefault(require("prop-types"));
23
+
24
+ var _emotion = require("@instructure/emotion");
25
25
 
26
26
  var _quizRce = require("@instructure/quiz-rce");
27
27
 
28
28
  var _makeScrollable = _interopRequireDefault(require("../../../shared/functionality/makeScrollable.js"));
29
29
 
30
+ var _styles = _interopRequireDefault(require("./styles.js"));
31
+
30
32
  var _theme = _interopRequireDefault(require("./theme.js"));
31
33
 
32
34
  var _dec, _class, _class2, _temp;
33
35
 
34
- // ================================
35
- // renders the quiz instructions on
36
- // the Preview and Take pages
37
- // ================================
38
- var styles = {
39
- componentId: 'eLFCb',
40
- template: function template(theme) {
41
- return "\n\n.eLFCb_gasz{box-sizing:border-box;padding-left:".concat(theme.wrapperPadding || 'inherit', ";padding-right:").concat(theme.wrapperPadding || 'inherit', ";position:relative;width:100%}\n\n.eLFCb_gasz:after{clear:both;content:\"\";display:table}\n\n[dir=ltr] .eLFCb_gasz:after,[dir=rtl] .eLFCb_gasz:after{clear:both}\n\n.eLFCb_eWKC{font-size:").concat(theme.textFontSize || 'inherit', "}");
42
- },
43
- 'wrapper': 'eLFCb_gasz',
44
- 'text': 'eLFCb_eWKC'
45
- };
46
- var QuizInstructions = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
36
+ var QuizInstructions = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
47
37
  (0, _inherits2.default)(QuizInstructions, _Component);
48
38
 
49
39
  var _super = (0, _createSuper2.default)(QuizInstructions);
@@ -56,11 +46,12 @@ var QuizInstructions = (_dec = (0, _uiThemeable.themeable)(_theme.default, style
56
46
  (0, _createClass2.default)(QuizInstructions, [{
57
47
  key: "render",
58
48
  value: function render() {
59
- return /*#__PURE__*/_react.default.createElement("div", {
60
- className: styles.wrapper,
49
+ return (0, _emotion.jsx)("div", {
50
+ "data-testid": "instructionsWrapper",
51
+ css: this.props.styles.wrapper,
61
52
  tabIndex: "-1"
62
- }, /*#__PURE__*/_react.default.createElement(_quizRce.RichContentRenderer, {
63
- customStyles: styles.text,
53
+ }, (0, _emotion.jsx)(_quizRce.RichContentRendererEmotion, {
54
+ customStyles: this.props.styles.text,
64
55
  content: this.props.quiz.instructions
65
56
  }));
66
57
  }
@@ -68,7 +59,9 @@ var QuizInstructions = (_dec = (0, _uiThemeable.themeable)(_theme.default, style
68
59
  QuizInstructions.displayName = "QuizInstructions";
69
60
  return QuizInstructions;
70
61
  }(_react.Component), _class2.propTypes = {
71
- quiz: _reactImmutableProptypes.default.record.isRequired
62
+ quiz: _reactImmutableProptypes.default.record.isRequired,
63
+ // eslint-disable-next-line react/require-default-props,react/forbid-prop-types
64
+ styles: _propTypes.default.object
72
65
  }, _temp)) || _class);
73
66
  exports.QuizInstructions = QuizInstructions;
74
67
 
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var generateStyle = function generateStyle(componentTheme) {
9
+ return {
10
+ wrapper: {
11
+ position: 'relative',
12
+ width: '100%',
13
+ boxSizing: 'border-box',
14
+ paddingLeft: componentTheme.wrapperPadding,
15
+ paddingRight: componentTheme.wrapperPadding,
16
+ '&::after': {
17
+ clear: 'both',
18
+ content: '""',
19
+ display: 'table'
20
+ }
21
+ },
22
+ text: {
23
+ fontSize: componentTheme.textFontSize
24
+ }
25
+ };
26
+ };
27
+
28
+ var _default = generateStyle;
29
+ exports.default = _default;
@@ -3,13 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = generator;
6
+ exports.default = void 0;
7
7
 
8
- function generator(_ref) {
8
+ var generateComponentTheme = function generateComponentTheme(_ref) {
9
9
  var spacing = _ref.spacing,
10
10
  typography = _ref.typography;
11
11
  return {
12
12
  wrapperPadding: spacing.large,
13
13
  textFontSize: typography.fontSizeMedium
14
14
  };
15
- }
15
+ };
16
+
17
+ var _default = generateComponentTheme;
18
+ 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,33 +15,25 @@ 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");
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
21
 
22
22
  var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
23
23
 
24
24
  var _uiHeading = require("@instructure/ui-heading");
25
25
 
26
- var _uiThemeable = require("@instructure/ui-themeable");
26
+ var _emotion = require("@instructure/emotion");
27
27
 
28
28
  var _makeScrollable = _interopRequireDefault(require("../../../shared/functionality/makeScrollable.js"));
29
29
 
30
+ var _styles = _interopRequireDefault(require("./styles.js"));
31
+
30
32
  var _theme = _interopRequireDefault(require("./theme.js"));
31
33
 
32
34
  var _dec, _class, _class2, _temp;
33
35
 
34
- // ==========================
35
- // renders the quiz title on
36
- // the Preview and Take pages
37
- // ==========================
38
- var styles = {
39
- componentId: 'cBDEG',
40
- template: function template(theme) {
41
- return "\n\n.cBDEG_gasz{align-items:center;box-sizing:border-box;display:flex;margin-bottom:".concat(theme.wrapperMargin || 'inherit', ";padding-left:").concat(theme.wrapperPadding || 'inherit', ";padding-top:").concat(theme.wrapperPadding || 'inherit', ";position:relative;width:100%}\n\n.cBDEG_eWKC{font-size:").concat(theme.textFontSize || 'inherit', "}");
42
- },
43
- 'wrapper': 'cBDEG_gasz',
44
- 'text': 'cBDEG_eWKC'
45
- };
46
- var QuizTitle = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
36
+ var QuizTitle = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
47
37
  (0, _inherits2.default)(QuizTitle, _Component);
48
38
 
49
39
  var _super = (0, _createSuper2.default)(QuizTitle);
@@ -56,13 +46,13 @@ var QuizTitle = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _de
56
46
  (0, _createClass2.default)(QuizTitle, [{
57
47
  key: "render",
58
48
  value: function render() {
59
- return /*#__PURE__*/_react.default.createElement("div", {
60
- className: styles.wrapper,
49
+ return (0, _emotion.jsx)("div", {
50
+ css: this.props.styles.wrapper,
61
51
  tabIndex: "-1"
62
- }, /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
52
+ }, (0, _emotion.jsx)(_uiHeading.Heading, {
63
53
  level: "h1"
64
- }, /*#__PURE__*/_react.default.createElement("span", {
65
- className: styles.text,
54
+ }, (0, _emotion.jsx)("span", {
55
+ css: this.props.styles.text,
66
56
  "data-automation": "sdk-quiz-title-text"
67
57
  }, this.props.quiz.title)));
68
58
  }
@@ -70,7 +60,9 @@ var QuizTitle = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _de
70
60
  QuizTitle.displayName = "QuizTitle";
71
61
  return QuizTitle;
72
62
  }(_react.Component), _class2.propTypes = {
73
- quiz: _reactImmutableProptypes.default.record.isRequired
63
+ quiz: _reactImmutableProptypes.default.record.isRequired,
64
+ // eslint-disable-next-line react/require-default-props,react/forbid-prop-types
65
+ styles: _propTypes.default.object
74
66
  }, _temp)) || _class);
75
67
  exports.QuizTitle = QuizTitle;
76
68
 
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var generateStyle = function generateStyle(componentTheme) {
9
+ return {
10
+ wrapper: {
11
+ position: 'relative',
12
+ width: '100%',
13
+ boxSizing: 'border-box',
14
+ marginBottom: componentTheme.wrapperMargin,
15
+ display: 'flex',
16
+ alignItems: 'center',
17
+ paddingTop: componentTheme.wrapperPadding,
18
+ paddingLeft: componentTheme.wrapperPadding
19
+ },
20
+ text: {
21
+ fontSize: componentTheme.textFontSize
22
+ }
23
+ };
24
+ };
25
+
26
+ var _default = generateStyle;
27
+ exports.default = _default;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = generator;
6
+ exports.default = void 0;
7
7
 
8
- function generator(_ref) {
8
+ var generateComponentTheme = function generateComponentTheme(_ref) {
9
9
  var spacing = _ref.spacing,
10
10
  typography = _ref.typography;
11
11
  return {
@@ -13,4 +13,7 @@ function generator(_ref) {
13
13
  wrapperMargin: spacing.medium,
14
14
  textFontSize: typography.fontSizeXLarge
15
15
  };
16
- }
16
+ };
17
+
18
+ var _default = generateComponentTheme;
19
+ 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,38 +15,27 @@ 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 _propTypes = _interopRequireDefault(require("prop-types"));
23
21
 
24
22
  var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
25
23
 
26
- var _classnames = _interopRequireDefault(require("classnames"));
27
-
28
24
  var _uiHeading = require("@instructure/ui-heading");
29
25
 
30
26
  var _uiAlerts = require("@instructure/ui-alerts");
31
27
 
32
- var _uiThemeable = require("@instructure/ui-themeable");
28
+ var _emotion = require("@instructure/emotion");
33
29
 
34
30
  var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
35
31
 
32
+ var _styles = _interopRequireDefault(require("./styles.js"));
33
+
36
34
  var _theme = _interopRequireDefault(require("./theme.js"));
37
35
 
38
36
  var _dec, _class, _class2, _temp;
39
37
 
40
- var styles = {
41
- componentId: 'eSNUQ',
42
- template: function template(theme) {
43
- return "\n\n.eSNUQ_cgjN,.eSNUQ_dmuJ{display:flex;justify-content:flex-start}\n\n.eSNUQ_dmuJ{align-items:center;flex-wrap:wrap;margin:".concat(theme.resultListInfoMargin || 'inherit', "}\n\n.eSNUQ_dHwi{font-size:").concat(theme.resultListTitleFontSize || 'inherit', ";margin:").concat(theme.resultListTitleMargin || 'inherit', " 0;width:100%}\n\n.eSNUQ_dTyP{width:100%}\n\n.eSNUQ_dkVT{padding-left:").concat(theme.regradeAlertPadding || 'inherit', ";padding-right:").concat(theme.regradeAlertPadding || 'inherit', "}");
44
- },
45
- 'resultListHeading': 'eSNUQ_cgjN',
46
- 'resultListInfo': 'eSNUQ_dmuJ',
47
- 'resultListTitle': 'eSNUQ_dHwi',
48
- 'resultListDescription': 'eSNUQ_dTyP',
49
- 'regradeAlert': 'eSNUQ_dkVT'
50
- };
51
- var QuizSessionResultHeader = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
38
+ var QuizSessionResultHeader = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
52
39
  (0, _inherits2.default)(QuizSessionResultHeader, _Component);
53
40
 
54
41
  var _super = (0, _createSuper2.default)(QuizSessionResultHeader);
@@ -70,7 +57,7 @@ var QuizSessionResultHeader = (_dec = (0, _uiThemeable.themeable)(_theme.default
70
57
  return rsi.position;
71
58
  }).toJS().join(', ');
72
59
 
73
- return /*#__PURE__*/_react.default.createElement(_uiAlerts.Alert, {
60
+ return (0, _emotion.jsx)(_uiAlerts.Alert, {
74
61
  variant: "warning"
75
62
  }, (0, _formatMessage.default)("This assessment has been regraded. {\n numRegradedSI, plural,\n =1 {Question {questions} has been affected.}\n other {Questions {questions} have been affected.}\n }", {
76
63
  questions: questions,
@@ -90,19 +77,20 @@ var QuizSessionResultHeader = (_dec = (0, _uiThemeable.themeable)(_theme.default
90
77
  }, {
91
78
  key: "render",
92
79
  value: function render() {
93
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
94
- className: styles.resultListHeading
95
- }, /*#__PURE__*/_react.default.createElement("div", {
96
- className: styles.resultListInfo
97
- }, /*#__PURE__*/_react.default.createElement("div", {
98
- className: styles.resultListTitle,
80
+ return (0, _emotion.jsx)("div", null, (0, _emotion.jsx)("div", {
81
+ css: this.props.styles.resultListHeading
82
+ }, (0, _emotion.jsx)("div", {
83
+ css: this.props.styles.resultListInfo
84
+ }, (0, _emotion.jsx)("div", {
85
+ css: this.props.styles.resultListTitle,
99
86
  "data-automation": "sdk-result-list-title"
100
- }, /*#__PURE__*/_react.default.createElement(_uiHeading.Heading, {
87
+ }, (0, _emotion.jsx)(_uiHeading.Heading, {
101
88
  level: "h1"
102
- }, (0, _formatMessage.default)('Results'))), /*#__PURE__*/_react.default.createElement("div", {
103
- className: (0, _classnames.default)('fs-mask', styles.resultListDescription)
104
- }, this.props.studentDescription || this.studentName()))), /*#__PURE__*/_react.default.createElement("div", {
105
- className: styles.regradeAlert
89
+ }, (0, _formatMessage.default)('Results'))), (0, _emotion.jsx)("div", {
90
+ css: this.props.styles.resultListDescription,
91
+ className: "fs-mask"
92
+ }, this.props.studentDescription || this.studentName()))), (0, _emotion.jsx)("div", {
93
+ css: this.props.styles.regradeAlert
106
94
  }, this.renderRegradeAlert()));
107
95
  }
108
96
  }]);
@@ -111,7 +99,9 @@ var QuizSessionResultHeader = (_dec = (0, _uiThemeable.themeable)(_theme.default
111
99
  }(_react.Component), _class2.propTypes = {
112
100
  quizSession: _reactImmutableProptypes.default.record.isRequired,
113
101
  regradedSessionItemResults: _reactImmutableProptypes.default.list,
114
- studentDescription: _propTypes.default.node
102
+ studentDescription: _propTypes.default.node,
103
+ // eslint-disable-next-line react/require-default-props,react/forbid-prop-types
104
+ styles: _propTypes.default.object
115
105
  }, _class2.defaultProps = {
116
106
  regradedSessionItemResults: null,
117
107
  studentDescription: null
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var generateStyle = function generateStyle(componentTheme) {
9
+ return {
10
+ resultListHeading: {
11
+ display: 'flex',
12
+ justifyContent: 'flex-start'
13
+ },
14
+ resultListInfo: {
15
+ margin: componentTheme.resultListInfoMargin,
16
+ display: 'flex',
17
+ flexWrap: 'wrap',
18
+ justifyContent: 'flex-start',
19
+ alignItems: 'center'
20
+ },
21
+ resultListTitle: {
22
+ width: '100%',
23
+ fontSize: componentTheme.resultListTitleFontSize,
24
+ margin: "".concat(componentTheme.resultListTitleMargin, " 0")
25
+ },
26
+ resultListDescription: {
27
+ width: '100%'
28
+ },
29
+ regradeAlert: {
30
+ paddingLeft: componentTheme.regradeAlertPadding,
31
+ paddingRight: componentTheme.regradeAlertPadding
32
+ }
33
+ };
34
+ };
35
+
36
+ var _default = generateStyle;
37
+ exports.default = _default;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = generator;
6
+ exports.default = void 0;
7
7
 
8
- function generator(_ref) {
8
+ var generateComponentTheme = function generateComponentTheme(_ref) {
9
9
  var spacing = _ref.spacing,
10
10
  typography = _ref.typography;
11
11
  return {
@@ -14,4 +14,7 @@ function generator(_ref) {
14
14
  resultListTitleMargin: spacing.xSmall,
15
15
  regradeAlertPadding: spacing.xLarge
16
16
  };
17
- }
17
+ };
18
+
19
+ var _default = generateComponentTheme;
20
+ exports.default = _default;