@instructure/quiz-core 17.53.0 → 17.53.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.
@@ -49,6 +49,7 @@ export var Page = (_dec = themeable(theme, styles), _dec(_class = (_temp = _clas
49
49
  key: "render",
50
50
  value: function render() {
51
51
  var childrenWrapperStyles = classnames(styles.content, _defineProperty({}, styles.scrollable, this.shouldRenderSidebar()));
52
+ var scrollableToolContainerId = 'scrollable-tool-container';
52
53
  return /*#__PURE__*/React.createElement("div", {
53
54
  className: styles.wrapper
54
55
  }, this.shouldRenderSidebar() ? this.renderSidebar() : null, /*#__PURE__*/React.createElement("div", {
@@ -56,7 +57,8 @@ export var Page = (_dec = themeable(theme, styles), _dec(_class = (_temp = _clas
56
57
  tabIndex: "-1",
57
58
  ref: this.props.childrenWrapperRef,
58
59
  role: this.props.contentRole,
59
- className: childrenWrapperStyles
60
+ className: childrenWrapperStyles,
61
+ id: scrollableToolContainerId
60
62
  }, this.props.children));
61
63
  }
62
64
  }]);
@@ -2,6 +2,8 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
2
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
3
  import handleFrameResize from './subjectHandlers/lti.frameResize';
4
4
  import handleCapabilities from './subjectHandlers/lti.capabilities';
5
+ import forwardMessage from "./subjectHandlers/forwardMessage.js";
6
+ import handleScrollToTop from './subjectHandlers/lti.scrollToTop';
5
7
 
6
8
  var PostMessageService = function PostMessageService() {
7
9
  var _this = this;
@@ -61,6 +63,11 @@ var PostMessageService = function PostMessageService() {
61
63
  this.handlerMap = new Map();
62
64
  this.handlerMap.set('lti.frameResize', handleFrameResize);
63
65
  this.handlerMap.set('lti.capabilities', handleCapabilities);
66
+ this.handlerMap.set('lti.setUnloadMessage', forwardMessage);
67
+ this.handlerMap.set('lti.removeUnloadMessage', forwardMessage);
68
+ this.handlerMap.set('lti.screenReaderAlert', forwardMessage);
69
+ this.handlerMap.set('lti.showAlert', forwardMessage);
70
+ this.handlerMap.set('lti.scrollToTop', handleScrollToTop);
64
71
  };
65
72
 
66
73
  export { PostMessageService as default };
@@ -0,0 +1,7 @@
1
+ var forwardMessage = function forwardMessage(event, _) {
2
+ if (window !== window.parent) {
3
+ window.parent.postMessage(event.data, '*');
4
+ }
5
+ };
6
+
7
+ export default forwardMessage;
@@ -0,0 +1,15 @@
1
+ var handleScrollToTop = function handleScrollToTop(event, postMessageService) {
2
+ var container = document.getElementById('scrollable-tool-container');
3
+
4
+ if (container) {
5
+ container.scrollTo({
6
+ top: 0,
7
+ behavior: 'smooth'
8
+ });
9
+ postMessageService.sendSuccessPostMessageResponse('lti.scrollToTop', void 0, event.source);
10
+ }
11
+
12
+ return false;
13
+ };
14
+
15
+ export default handleScrollToTop;
@@ -68,6 +68,7 @@ var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
68
68
  key: "render",
69
69
  value: function render() {
70
70
  var childrenWrapperStyles = (0, _classnames2.default)(styles.content, (0, _defineProperty2.default)({}, styles.scrollable, this.shouldRenderSidebar()));
71
+ var scrollableToolContainerId = 'scrollable-tool-container';
71
72
  return /*#__PURE__*/_react.default.createElement("div", {
72
73
  className: styles.wrapper
73
74
  }, this.shouldRenderSidebar() ? this.renderSidebar() : null, /*#__PURE__*/_react.default.createElement("div", {
@@ -75,7 +76,8 @@ var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
75
76
  tabIndex: "-1",
76
77
  ref: this.props.childrenWrapperRef,
77
78
  role: this.props.contentRole,
78
- className: childrenWrapperStyles
79
+ className: childrenWrapperStyles,
80
+ id: scrollableToolContainerId
79
81
  }, this.props.children));
80
82
  }
81
83
  }]);
@@ -15,6 +15,10 @@ var _lti = _interopRequireDefault(require("./subjectHandlers/lti.frameResize"));
15
15
 
16
16
  var _lti2 = _interopRequireDefault(require("./subjectHandlers/lti.capabilities"));
17
17
 
18
+ var _forwardMessage = _interopRequireDefault(require("./subjectHandlers/forwardMessage.js"));
19
+
20
+ var _lti3 = _interopRequireDefault(require("./subjectHandlers/lti.scrollToTop"));
21
+
18
22
  var PostMessageService = function PostMessageService() {
19
23
  var _this = this;
20
24
 
@@ -73,6 +77,11 @@ var PostMessageService = function PostMessageService() {
73
77
  this.handlerMap = new Map();
74
78
  this.handlerMap.set('lti.frameResize', _lti.default);
75
79
  this.handlerMap.set('lti.capabilities', _lti2.default);
80
+ this.handlerMap.set('lti.setUnloadMessage', _forwardMessage.default);
81
+ this.handlerMap.set('lti.removeUnloadMessage', _forwardMessage.default);
82
+ this.handlerMap.set('lti.screenReaderAlert', _forwardMessage.default);
83
+ this.handlerMap.set('lti.showAlert', _forwardMessage.default);
84
+ this.handlerMap.set('lti.scrollToTop', _lti3.default);
76
85
  };
77
86
 
78
87
  exports.default = PostMessageService;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var forwardMessage = function forwardMessage(event, _) {
9
+ if (window !== window.parent) {
10
+ window.parent.postMessage(event.data, '*');
11
+ }
12
+ };
13
+
14
+ var _default = forwardMessage;
15
+ exports.default = _default;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var handleScrollToTop = function handleScrollToTop(event, postMessageService) {
9
+ var container = document.getElementById('scrollable-tool-container');
10
+
11
+ if (container) {
12
+ container.scrollTo({
13
+ top: 0,
14
+ behavior: 'smooth'
15
+ });
16
+ postMessageService.sendSuccessPostMessageResponse('lti.scrollToTop', void 0, event.source);
17
+ }
18
+
19
+ return false;
20
+ };
21
+
22
+ var _default = handleScrollToTop;
23
+ exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/quiz-core",
3
- "version": "17.53.0",
3
+ "version": "17.53.1-rc.1+95e89c485",
4
4
  "license": "MIT",
5
5
  "description": "The Quiz React SDK by Instructure Inc.",
6
6
  "author": "Instructure, Inc. Engineering and Product Design",
@@ -41,11 +41,11 @@
41
41
  ],
42
42
  "dependencies": {
43
43
  "@instructure/outcomes-ui": "^2.1.7",
44
- "@instructure/quiz-common": "^17.53.0",
45
- "@instructure/quiz-i18n": "^17.53.0",
46
- "@instructure/quiz-interactions": "^17.53.0",
47
- "@instructure/quiz-number-input": "^17.53.0",
48
- "@instructure/quiz-rce": "^17.53.0",
44
+ "@instructure/quiz-common": "17.53.1-rc.1+95e89c485",
45
+ "@instructure/quiz-i18n": "17.53.1-rc.1+95e89c485",
46
+ "@instructure/quiz-interactions": "17.53.1-rc.1+95e89c485",
47
+ "@instructure/quiz-number-input": "17.53.1-rc.1+95e89c485",
48
+ "@instructure/quiz-rce": "17.53.1-rc.1+95e89c485",
49
49
  "@instructure/ui-a11y-content": "^7.20.0",
50
50
  "@instructure/ui-alerts": "^7.20.0",
51
51
  "@instructure/ui-avatar": "^7.20.0",
@@ -106,7 +106,7 @@
106
106
  "eventemitter3": "^3.1.0",
107
107
  "humps": "^2.0.0",
108
108
  "immutable": "^3.8.1",
109
- "instructure-validations": "^17.53.0",
109
+ "instructure-validations": "17.53.1-rc.1+95e89c485",
110
110
  "ipaddr.js": "^1.5.4",
111
111
  "isomorphic-fetch": "^2.2.0",
112
112
  "isuuid": "^0.1.0",
@@ -137,7 +137,7 @@
137
137
  "uuid": "^3.2.1"
138
138
  },
139
139
  "devDependencies": {
140
- "@instructure/quiz-scripts": "^17.53.0",
140
+ "@instructure/quiz-scripts": "17.53.0",
141
141
  "@instructure/ui-axe-check": "^7.20.0",
142
142
  "@instructure/ui-babel-preset": "^7.20.0",
143
143
  "@instructure/ui-karma-config": "^7.20.0",
@@ -156,7 +156,7 @@
156
156
  "intl": "^1.2.4",
157
157
  "jquery": "^2.2.3",
158
158
  "most-subject": "^5.3.0",
159
- "quiz-presets": "^17.53.0",
159
+ "quiz-presets": "17.53.1-rc.1+95e89c485",
160
160
  "react": "^16.8.6",
161
161
  "react-addons-test-utils": "^15.6.2",
162
162
  "react-dom": "^16.8.6",
@@ -172,5 +172,5 @@
172
172
  "publishConfig": {
173
173
  "access": "public"
174
174
  },
175
- "gitHead": "ac36e825247accb367dc008d4a76da9402a35bdb"
175
+ "gitHead": "95e89c485d521d802218f90909273009f03d62bf"
176
176
  }