@instructure/quiz-core 19.2.1-rc.1 → 20.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/es/common/components/RceConfigProvider/index.js +0 -4
- package/es/common/components/RceConfigProvider/presenter.js +22 -52
- package/es/common/components/RceConfigProvider/rceConfigMapper.js +8 -15
- package/es/common/components/RceConfigProvider/rceConfigUtils.js +2 -5
- package/es/common/util/rceChecker.js +1 -15
- package/es/index.js +1 -1
- package/lib/common/components/RceConfigProvider/index.js +0 -5
- package/lib/common/components/RceConfigProvider/presenter.js +21 -51
- package/lib/common/components/RceConfigProvider/rceConfigMapper.js +8 -15
- package/lib/common/components/RceConfigProvider/rceConfigUtils.js +4 -10
- package/lib/common/util/rceChecker.js +2 -25
- package/lib/index.js +0 -7
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,36 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [20.0.0](https://gerrit.instructure.com/quizzes-ui/compare/v19.2.0...v20.0.0) (2024-01-15)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### chore
|
|
10
|
+
|
|
11
|
+
* **RCE4:** Remove RCE4 related code and dependencies ([0eddefc](https://gerrit.instructure.com/quizzes-ui/commits/0eddefc00f2dfbaaa629e982f91d895ed9ea9e9d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### BREAKING CHANGES
|
|
15
|
+
|
|
16
|
+
* **RCE4:** RCE4 is no longer usable. RCE5 is the deafult and flags like
|
|
17
|
+
'use_new_rce', 'rce5_renderer' and 'rce5_apps' have no effect
|
|
18
|
+
|
|
19
|
+
closes: QUIZ-12885
|
|
20
|
+
|
|
21
|
+
Test plan:
|
|
22
|
+
- RCE works as expected
|
|
23
|
+
- RCE5 loads regardless from the state of use_new_rce and rce5_renderer flags
|
|
24
|
+
|
|
25
|
+
Change-Id: Ib502c34f9534031e559b1964e65308de44c82dbd
|
|
26
|
+
Reviewed-on: https://gerrit.instructure.com/c/quizzes-ui/+/335037
|
|
27
|
+
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
|
|
28
|
+
Reviewed-by: Rajmund Csehil <rajmund.csehil@instructure.com>
|
|
29
|
+
QA-Review: Ferenc Marcsó <ferenc.marcso@instructure.com>
|
|
30
|
+
Product-Review: Roland Beres <roland.beres@instructure.com>
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
6
36
|
# [19.2.0](https://gerrit.instructure.com/quizzes-ui/compare/v19.1.0...v19.2.0) (2024-01-08)
|
|
7
37
|
|
|
8
38
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isNewRCEEnabled, isNewRCEAppsEnabled, isNewRCERendererEnabled } from "../../util/rceChecker.js";
|
|
2
1
|
import { connect } from "../../react-redux.js";
|
|
3
2
|
import RceConfigProviderComponent from "./presenter.js";
|
|
4
3
|
import { getRCEConfig } from "../../selectors/rce.js";
|
|
@@ -6,9 +5,6 @@ import { setStoredRCEConfig } from "../../actions/rce.js";
|
|
|
6
5
|
|
|
7
6
|
var mapStateToProps = function mapStateToProps(state, ownProps) {
|
|
8
7
|
return {
|
|
9
|
-
isNewRCEEnabled: isNewRCEEnabled(),
|
|
10
|
-
isNewRCERendererEnabled: isNewRCERendererEnabled(),
|
|
11
|
-
isNewRCEAppsEnabled: isNewRCEAppsEnabled(),
|
|
12
8
|
storedRCEConfig: getRCEConfig(state)
|
|
13
9
|
};
|
|
14
10
|
};
|
|
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import { QuizzesSpinner as Spinner } from "../shared/spinner/Spinner.js";
|
|
7
7
|
import { Card } from "../shared/Card/index.js";
|
|
8
8
|
import { RceConfigContext } from '@instructure/quiz-common';
|
|
9
|
-
import { hasAllPropsForRcs
|
|
9
|
+
import { hasAllPropsForRcs } from "./rceConfigUtils.js";
|
|
10
10
|
import { mapParamsToRceConfigContext } from "./rceConfigMapper.js";
|
|
11
11
|
import { quizLogMsgErrorDuringTaking, quizLogMsgFailedConfigFetch, quizLogMsgInvalidParams } from "./rceConfigErrorMessages.js";
|
|
12
12
|
import { handleError, setEventToQuizLog } from "./rceConfigErrorHandler.js";
|
|
@@ -62,9 +62,6 @@ var _ref4 = /*#__PURE__*/React.createElement(Card, {
|
|
|
62
62
|
|
|
63
63
|
var RceConfigProviderComponent = function RceConfigProviderComponent(_ref2) {
|
|
64
64
|
var children = _ref2.children,
|
|
65
|
-
isNewRCEEnabled = _ref2.isNewRCEEnabled,
|
|
66
|
-
isNewRCERendererEnabled = _ref2.isNewRCERendererEnabled,
|
|
67
|
-
isNewRCEAppsEnabled = _ref2.isNewRCEAppsEnabled,
|
|
68
65
|
contextId = _ref2.contextId,
|
|
69
66
|
contextType = _ref2.contextType,
|
|
70
67
|
canvasUserId = _ref2.canvasUserId,
|
|
@@ -102,11 +99,6 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(_ref2) {
|
|
|
102
99
|
jwt: jwt,
|
|
103
100
|
refreshToken: refreshToken
|
|
104
101
|
};
|
|
105
|
-
var flags = {
|
|
106
|
-
isNewRCEEnabled: isNewRCEEnabled,
|
|
107
|
-
isNewRCERendererEnabled: isNewRCERendererEnabled,
|
|
108
|
-
isNewRCEAppsEnabled: isNewRCEAppsEnabled
|
|
109
|
-
};
|
|
110
102
|
var ltiAppParams = {
|
|
111
103
|
canvasToolId: canvasToolId
|
|
112
104
|
};
|
|
@@ -120,97 +112,78 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(_ref2) {
|
|
|
120
112
|
while (1) {
|
|
121
113
|
switch (_context2.prev = _context2.next) {
|
|
122
114
|
case 0:
|
|
123
|
-
|
|
124
|
-
_context2.next = 2;
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
return _context2.abrupt("return");
|
|
129
|
-
|
|
130
|
-
case 2:
|
|
131
|
-
_context2.prev = 2;
|
|
115
|
+
_context2.prev = 0;
|
|
132
116
|
|
|
133
117
|
if (hasAllPropsForRcs(rcsParams)) {
|
|
134
|
-
_context2.next =
|
|
118
|
+
_context2.next = 4;
|
|
135
119
|
break;
|
|
136
120
|
}
|
|
137
121
|
|
|
138
122
|
handleError(quizLogMsgInvalidParams());
|
|
139
123
|
return _context2.abrupt("return");
|
|
140
124
|
|
|
141
|
-
case
|
|
125
|
+
case 4:
|
|
142
126
|
if (!storedRCEConfig) {
|
|
143
|
-
_context2.next =
|
|
127
|
+
_context2.next = 8;
|
|
144
128
|
break;
|
|
145
129
|
}
|
|
146
130
|
|
|
147
131
|
setCanvasConfig(storedRCEConfig);
|
|
148
|
-
_context2.next =
|
|
132
|
+
_context2.next = 14;
|
|
149
133
|
break;
|
|
150
134
|
|
|
151
|
-
case
|
|
152
|
-
_context2.next =
|
|
135
|
+
case 8:
|
|
136
|
+
_context2.next = 10;
|
|
153
137
|
return fetchRceConfig(rcsHost, contextType, contextId, jwt);
|
|
154
138
|
|
|
155
|
-
case
|
|
139
|
+
case 10:
|
|
156
140
|
json = _context2.sent;
|
|
157
141
|
setStoredRCEConfig(json);
|
|
158
142
|
setCanvasConfig(json);
|
|
159
143
|
setEventToQuizLog(null);
|
|
160
144
|
|
|
161
|
-
case
|
|
162
|
-
_context2.next =
|
|
145
|
+
case 14:
|
|
146
|
+
_context2.next = 20;
|
|
163
147
|
break;
|
|
164
148
|
|
|
165
|
-
case
|
|
166
|
-
_context2.prev =
|
|
167
|
-
_context2.t0 = _context2["catch"](
|
|
149
|
+
case 16:
|
|
150
|
+
_context2.prev = 16;
|
|
151
|
+
_context2.t0 = _context2["catch"](0);
|
|
168
152
|
setCanvasConfig(null);
|
|
169
153
|
handleError(quizLogMsgFailedConfigFetch());
|
|
170
154
|
|
|
171
|
-
case
|
|
172
|
-
_context2.prev =
|
|
155
|
+
case 20:
|
|
156
|
+
_context2.prev = 20;
|
|
173
157
|
setCanvasConfigLoading(false);
|
|
174
|
-
return _context2.finish(
|
|
158
|
+
return _context2.finish(20);
|
|
175
159
|
|
|
176
|
-
case
|
|
160
|
+
case 23:
|
|
177
161
|
case "end":
|
|
178
162
|
return _context2.stop();
|
|
179
163
|
}
|
|
180
164
|
}
|
|
181
|
-
}, _callee2, null, [[
|
|
165
|
+
}, _callee2, null, [[0, 16, 20, 23]]);
|
|
182
166
|
}))();
|
|
183
|
-
}, [
|
|
167
|
+
}, [storedRCEConfig]);
|
|
184
168
|
useEffect(function () {
|
|
185
|
-
if (isRce5Disabled(flags)) {
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
169
|
var postMessageService = new PostMessageService();
|
|
190
170
|
postMessageService.configurePostMessageListener();
|
|
191
171
|
return function () {
|
|
192
172
|
postMessageService.cleanupPostMessageListener();
|
|
193
173
|
};
|
|
194
|
-
}, [
|
|
195
|
-
|
|
196
|
-
if (isRce5Disabled(flags)) {
|
|
197
|
-
return children;
|
|
198
|
-
}
|
|
174
|
+
}, []);
|
|
199
175
|
|
|
200
176
|
if (canvasConfigLoading) {
|
|
201
177
|
return _ref4;
|
|
202
178
|
}
|
|
203
179
|
|
|
204
180
|
return /*#__PURE__*/React.createElement(RceConfigContext.Provider, {
|
|
205
|
-
value: mapParamsToRceConfigContext(
|
|
181
|
+
value: mapParamsToRceConfigContext(rcsParams, rendererParams, canvasConfig, ltiAppParams)
|
|
206
182
|
}, children);
|
|
207
183
|
};
|
|
208
184
|
|
|
209
185
|
RceConfigProviderComponent.propTypes = {
|
|
210
186
|
children: PropTypes.node.isRequired,
|
|
211
|
-
isNewRCEEnabled: PropTypes.bool.isRequired,
|
|
212
|
-
isNewRCERendererEnabled: PropTypes.bool.isRequired,
|
|
213
|
-
isNewRCEAppsEnabled: PropTypes.bool,
|
|
214
187
|
contextId: PropTypes.string,
|
|
215
188
|
contextType: PropTypes.string,
|
|
216
189
|
canvasUserId: PropTypes.string,
|
|
@@ -240,9 +213,6 @@ RceConfigProviderComponent.defaultProps = {
|
|
|
240
213
|
rcsJwt: null,
|
|
241
214
|
rcsJwtRefreshFn: null,
|
|
242
215
|
canvasOrigin: null,
|
|
243
|
-
isNewRCEEnabled: false,
|
|
244
|
-
isNewRCERendererEnabled: false,
|
|
245
|
-
isNewRCEAppsEnabled: false,
|
|
246
216
|
storedRCEConfig: null,
|
|
247
217
|
setStoredRCEConfig: null
|
|
248
218
|
};
|
|
@@ -2,38 +2,31 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
import { RceConfigKeys } from '@instructure/quiz-common';
|
|
3
3
|
import { hasAllPropsForRcs, areLtiAppsConfigured } from "./rceConfigUtils.js";
|
|
4
4
|
|
|
5
|
-
var mapFeatureFlags = function mapFeatureFlags(flags) {
|
|
6
|
-
var _ref;
|
|
7
|
-
|
|
8
|
-
return _ref = {}, _defineProperty(_ref, RceConfigKeys.isNewRCEEnabled, (flags === null || flags === void 0 ? void 0 : flags.isNewRCEEnabled) || false), _defineProperty(_ref, RceConfigKeys.isNewRCERendererEnabled, (flags === null || flags === void 0 ? void 0 : flags.isNewRCERendererEnabled) || false), _defineProperty(_ref, RceConfigKeys.isNewRCEAppsEnabled, (flags === null || flags === void 0 ? void 0 : flags.isNewRCEAppsEnabled) || false), _ref;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
5
|
var mapRcs = function mapRcs(rcsParams, canvasConfig) {
|
|
12
6
|
if (rcsParams && hasAllPropsForRcs(rcsParams) && canvasConfig) {
|
|
13
|
-
var
|
|
7
|
+
var _ref;
|
|
14
8
|
|
|
15
|
-
return
|
|
9
|
+
return _ref = {}, _defineProperty(_ref, RceConfigKeys.canvasUserId, rcsParams.canvasUserId), _defineProperty(_ref, RceConfigKeys.contextId, rcsParams.contextId), _defineProperty(_ref, RceConfigKeys.contextType, rcsParams.contextType), _defineProperty(_ref, RceConfigKeys.rcsHost, rcsParams.rcsHost), _defineProperty(_ref, RceConfigKeys.rcsJwt, rcsParams.jwt), _defineProperty(_ref, RceConfigKeys.rcsJwtRefreshFn, rcsParams.refreshToken), _defineProperty(_ref, RceConfigKeys.canvasConfig, canvasConfig), _ref;
|
|
16
10
|
} else {
|
|
17
11
|
return null;
|
|
18
12
|
}
|
|
19
13
|
};
|
|
20
14
|
|
|
21
|
-
var mapLtiApps = function mapLtiApps(
|
|
22
|
-
var
|
|
15
|
+
var mapLtiApps = function mapLtiApps(canvasConfig, ltiAppParams) {
|
|
16
|
+
var _ref2;
|
|
23
17
|
|
|
24
|
-
if (!areLtiAppsConfigured(
|
|
25
|
-
return
|
|
18
|
+
if (!areLtiAppsConfigured(canvasConfig, ltiAppParams)) return null;
|
|
19
|
+
return _ref2 = {}, _defineProperty(_ref2, RceConfigKeys.canvasToolId, ltiAppParams.canvasToolId), _defineProperty(_ref2, RceConfigKeys.ltiIframeAllowances, canvasConfig.LTI_LAUNCH_FRAME_ALLOWANCES), _defineProperty(_ref2, RceConfigKeys.editorButtons, canvasConfig.editorButtons), _ref2;
|
|
26
20
|
};
|
|
27
21
|
|
|
28
22
|
var rendererEnhancement = function rendererEnhancement(rendererParams) {
|
|
29
23
|
return _defineProperty({}, RceConfigKeys.canvasOrigin, (rendererParams === null || rendererParams === void 0 ? void 0 : rendererParams.canvasOrigin) || null);
|
|
30
24
|
};
|
|
31
25
|
|
|
32
|
-
export var mapParamsToRceConfigContext = function mapParamsToRceConfigContext(
|
|
26
|
+
export var mapParamsToRceConfigContext = function mapParamsToRceConfigContext(rcsParams, rendererParams, canvasConfig, ltiAppParams) {
|
|
33
27
|
return {
|
|
34
|
-
featureFlags: mapFeatureFlags(flags),
|
|
35
28
|
rcs: mapRcs(rcsParams, canvasConfig),
|
|
36
29
|
rendererEnhancement: rendererEnhancement(rendererParams),
|
|
37
|
-
ltiApps: mapLtiApps(
|
|
30
|
+
ltiApps: mapLtiApps(canvasConfig, ltiAppParams)
|
|
38
31
|
};
|
|
39
32
|
};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
export var hasAllPropsForRcs = function hasAllPropsForRcs(rcsParams) {
|
|
2
2
|
return !!((rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.contextId) && (rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.contextType) && (rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.canvasUserId) && (rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.rcsHost) && (rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.refreshToken) && (rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.jwt));
|
|
3
3
|
};
|
|
4
|
-
export var areLtiAppsConfigured = function areLtiAppsConfigured(
|
|
5
|
-
return !!((
|
|
6
|
-
};
|
|
7
|
-
export var isRce5Disabled = function isRce5Disabled(flags) {
|
|
8
|
-
return !(flags === null || flags === void 0 ? void 0 : flags.isNewRCEEnabled) && !(flags === null || flags === void 0 ? void 0 : flags.isNewRCERendererEnabled);
|
|
4
|
+
export var areLtiAppsConfigured = function areLtiAppsConfigured(canvasConfig, ltiAppParams) {
|
|
5
|
+
return !!((ltiAppParams === null || ltiAppParams === void 0 ? void 0 : ltiAppParams.canvasToolId) && (canvasConfig === null || canvasConfig === void 0 ? void 0 : canvasConfig.LTI_LAUNCH_FRAME_ALLOWANCES) && Array.isArray(canvasConfig === null || canvasConfig === void 0 ? void 0 : canvasConfig.LTI_LAUNCH_FRAME_ALLOWANCES) && canvasConfig.LTI_LAUNCH_FRAME_ALLOWANCES.length > 0 && (canvasConfig === null || canvasConfig === void 0 ? void 0 : canvasConfig.editorButtons) && Array.isArray(canvasConfig.editorButtons) && canvasConfig.editorButtons.length > 0);
|
|
9
6
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
-
import { featureOn } from "./featureCheck.js";
|
|
4
3
|
import { ensureMathIsReady, ensureMathRendered } from "./mathRenderingUtils.js";
|
|
5
4
|
import { ensureImagesLoaded } from "./printUtils.js";
|
|
6
5
|
export var ensureRCEContentIsLoaded = /*#__PURE__*/function () {
|
|
@@ -22,17 +21,4 @@ export var ensureRCEContentIsLoaded = /*#__PURE__*/function () {
|
|
|
22
21
|
return function ensureRCEContentIsLoaded() {
|
|
23
22
|
return _ref.apply(this, arguments);
|
|
24
23
|
};
|
|
25
|
-
}();
|
|
26
|
-
var newRCEFeatureName = 'use_new_rce';
|
|
27
|
-
var newRCEAppsFeatureName = 'rce5_apps';
|
|
28
|
-
var newRCERendererFeatureName = 'rce5_renderer';
|
|
29
|
-
export function isNewRCEEnabled() {
|
|
30
|
-
return featureOn(newRCEFeatureName);
|
|
31
|
-
}
|
|
32
|
-
export function isNewRCEAppsEnabled() {
|
|
33
|
-
return featureOn(newRCEAppsFeatureName);
|
|
34
|
-
}
|
|
35
|
-
export function isNewRCERendererEnabled() {
|
|
36
|
-
return featureOn(newRCERendererFeatureName);
|
|
37
|
-
}
|
|
38
|
-
export default isNewRCEEnabled;
|
|
24
|
+
}();
|
package/es/index.js
CHANGED
|
@@ -93,7 +93,7 @@ export { connect } from "./common/react-redux.js";
|
|
|
93
93
|
export { breakdownSeconds, HOUR_IN_SECONDS } from "./common/components/shared/FormattedDuration/index.js";
|
|
94
94
|
export { sessionStore } from "./common/util/sessionStore.js";
|
|
95
95
|
export { printWithCss, ensureImagesLoaded } from "./common/util/printUtils.js";
|
|
96
|
-
export {
|
|
96
|
+
export { ensureRCEContentIsLoaded } from "./common/util/rceChecker.js"; // APIs
|
|
97
97
|
|
|
98
98
|
export { createQuizEntryRegrade } from "./grading/api/quizEntryRegrades.js";
|
|
99
99
|
export { getQuizEntry } from "./building/api/quizEntries.js";
|
|
@@ -7,8 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var _rceChecker = require("../../util/rceChecker.js");
|
|
11
|
-
|
|
12
10
|
var _reactRedux = require("../../react-redux.js");
|
|
13
11
|
|
|
14
12
|
var _presenter = _interopRequireDefault(require("./presenter.js"));
|
|
@@ -19,9 +17,6 @@ var _rce2 = require("../../actions/rce.js");
|
|
|
19
17
|
|
|
20
18
|
var mapStateToProps = function mapStateToProps(state, ownProps) {
|
|
21
19
|
return {
|
|
22
|
-
isNewRCEEnabled: (0, _rceChecker.isNewRCEEnabled)(),
|
|
23
|
-
isNewRCERendererEnabled: (0, _rceChecker.isNewRCERendererEnabled)(),
|
|
24
|
-
isNewRCEAppsEnabled: (0, _rceChecker.isNewRCEAppsEnabled)(),
|
|
25
20
|
storedRCEConfig: (0, _rce.getRCEConfig)(state)
|
|
26
21
|
};
|
|
27
22
|
};
|
|
@@ -86,9 +86,6 @@ var _ref4 = /*#__PURE__*/_react.default.createElement(_index.Card, {
|
|
|
86
86
|
|
|
87
87
|
var RceConfigProviderComponent = function RceConfigProviderComponent(_ref2) {
|
|
88
88
|
var children = _ref2.children,
|
|
89
|
-
isNewRCEEnabled = _ref2.isNewRCEEnabled,
|
|
90
|
-
isNewRCERendererEnabled = _ref2.isNewRCERendererEnabled,
|
|
91
|
-
isNewRCEAppsEnabled = _ref2.isNewRCEAppsEnabled,
|
|
92
89
|
contextId = _ref2.contextId,
|
|
93
90
|
contextType = _ref2.contextType,
|
|
94
91
|
canvasUserId = _ref2.canvasUserId,
|
|
@@ -126,11 +123,6 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(_ref2) {
|
|
|
126
123
|
jwt: jwt,
|
|
127
124
|
refreshToken: refreshToken
|
|
128
125
|
};
|
|
129
|
-
var flags = {
|
|
130
|
-
isNewRCEEnabled: isNewRCEEnabled,
|
|
131
|
-
isNewRCERendererEnabled: isNewRCERendererEnabled,
|
|
132
|
-
isNewRCEAppsEnabled: isNewRCEAppsEnabled
|
|
133
|
-
};
|
|
134
126
|
var ltiAppParams = {
|
|
135
127
|
canvasToolId: canvasToolId
|
|
136
128
|
};
|
|
@@ -144,97 +136,78 @@ var RceConfigProviderComponent = function RceConfigProviderComponent(_ref2) {
|
|
|
144
136
|
while (1) {
|
|
145
137
|
switch (_context2.prev = _context2.next) {
|
|
146
138
|
case 0:
|
|
147
|
-
|
|
148
|
-
_context2.next = 2;
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
return _context2.abrupt("return");
|
|
153
|
-
|
|
154
|
-
case 2:
|
|
155
|
-
_context2.prev = 2;
|
|
139
|
+
_context2.prev = 0;
|
|
156
140
|
|
|
157
141
|
if ((0, _rceConfigUtils.hasAllPropsForRcs)(rcsParams)) {
|
|
158
|
-
_context2.next =
|
|
142
|
+
_context2.next = 4;
|
|
159
143
|
break;
|
|
160
144
|
}
|
|
161
145
|
|
|
162
146
|
(0, _rceConfigErrorHandler.handleError)((0, _rceConfigErrorMessages.quizLogMsgInvalidParams)());
|
|
163
147
|
return _context2.abrupt("return");
|
|
164
148
|
|
|
165
|
-
case
|
|
149
|
+
case 4:
|
|
166
150
|
if (!storedRCEConfig) {
|
|
167
|
-
_context2.next =
|
|
151
|
+
_context2.next = 8;
|
|
168
152
|
break;
|
|
169
153
|
}
|
|
170
154
|
|
|
171
155
|
setCanvasConfig(storedRCEConfig);
|
|
172
|
-
_context2.next =
|
|
156
|
+
_context2.next = 14;
|
|
173
157
|
break;
|
|
174
158
|
|
|
175
|
-
case
|
|
176
|
-
_context2.next =
|
|
159
|
+
case 8:
|
|
160
|
+
_context2.next = 10;
|
|
177
161
|
return (0, _rceConfigFetcher.fetchRceConfig)(rcsHost, contextType, contextId, jwt);
|
|
178
162
|
|
|
179
|
-
case
|
|
163
|
+
case 10:
|
|
180
164
|
json = _context2.sent;
|
|
181
165
|
setStoredRCEConfig(json);
|
|
182
166
|
setCanvasConfig(json);
|
|
183
167
|
(0, _rceConfigErrorHandler.setEventToQuizLog)(null);
|
|
184
168
|
|
|
185
|
-
case
|
|
186
|
-
_context2.next =
|
|
169
|
+
case 14:
|
|
170
|
+
_context2.next = 20;
|
|
187
171
|
break;
|
|
188
172
|
|
|
189
|
-
case
|
|
190
|
-
_context2.prev =
|
|
191
|
-
_context2.t0 = _context2["catch"](
|
|
173
|
+
case 16:
|
|
174
|
+
_context2.prev = 16;
|
|
175
|
+
_context2.t0 = _context2["catch"](0);
|
|
192
176
|
setCanvasConfig(null);
|
|
193
177
|
(0, _rceConfigErrorHandler.handleError)((0, _rceConfigErrorMessages.quizLogMsgFailedConfigFetch)());
|
|
194
178
|
|
|
195
|
-
case
|
|
196
|
-
_context2.prev =
|
|
179
|
+
case 20:
|
|
180
|
+
_context2.prev = 20;
|
|
197
181
|
setCanvasConfigLoading(false);
|
|
198
|
-
return _context2.finish(
|
|
182
|
+
return _context2.finish(20);
|
|
199
183
|
|
|
200
|
-
case
|
|
184
|
+
case 23:
|
|
201
185
|
case "end":
|
|
202
186
|
return _context2.stop();
|
|
203
187
|
}
|
|
204
188
|
}
|
|
205
|
-
}, _callee2, null, [[
|
|
189
|
+
}, _callee2, null, [[0, 16, 20, 23]]);
|
|
206
190
|
}))();
|
|
207
|
-
}, [
|
|
191
|
+
}, [storedRCEConfig]);
|
|
208
192
|
(0, _react.useEffect)(function () {
|
|
209
|
-
if ((0, _rceConfigUtils.isRce5Disabled)(flags)) {
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
193
|
var postMessageService = new _postMessageService.default();
|
|
214
194
|
postMessageService.configurePostMessageListener();
|
|
215
195
|
return function () {
|
|
216
196
|
postMessageService.cleanupPostMessageListener();
|
|
217
197
|
};
|
|
218
|
-
}, [
|
|
219
|
-
|
|
220
|
-
if ((0, _rceConfigUtils.isRce5Disabled)(flags)) {
|
|
221
|
-
return children;
|
|
222
|
-
}
|
|
198
|
+
}, []);
|
|
223
199
|
|
|
224
200
|
if (canvasConfigLoading) {
|
|
225
201
|
return _ref4;
|
|
226
202
|
}
|
|
227
203
|
|
|
228
204
|
return /*#__PURE__*/_react.default.createElement(_quizCommon.RceConfigContext.Provider, {
|
|
229
|
-
value: (0, _rceConfigMapper.mapParamsToRceConfigContext)(
|
|
205
|
+
value: (0, _rceConfigMapper.mapParamsToRceConfigContext)(rcsParams, rendererParams, canvasConfig, ltiAppParams)
|
|
230
206
|
}, children);
|
|
231
207
|
};
|
|
232
208
|
|
|
233
209
|
RceConfigProviderComponent.propTypes = {
|
|
234
210
|
children: _propTypes.default.node.isRequired,
|
|
235
|
-
isNewRCEEnabled: _propTypes.default.bool.isRequired,
|
|
236
|
-
isNewRCERendererEnabled: _propTypes.default.bool.isRequired,
|
|
237
|
-
isNewRCEAppsEnabled: _propTypes.default.bool,
|
|
238
211
|
contextId: _propTypes.default.string,
|
|
239
212
|
contextType: _propTypes.default.string,
|
|
240
213
|
canvasUserId: _propTypes.default.string,
|
|
@@ -264,9 +237,6 @@ RceConfigProviderComponent.defaultProps = {
|
|
|
264
237
|
rcsJwt: null,
|
|
265
238
|
rcsJwtRefreshFn: null,
|
|
266
239
|
canvasOrigin: null,
|
|
267
|
-
isNewRCEEnabled: false,
|
|
268
|
-
isNewRCERendererEnabled: false,
|
|
269
|
-
isNewRCEAppsEnabled: false,
|
|
270
240
|
storedRCEConfig: null,
|
|
271
241
|
setStoredRCEConfig: null
|
|
272
242
|
};
|
|
@@ -13,39 +13,32 @@ var _quizCommon = require("@instructure/quiz-common");
|
|
|
13
13
|
|
|
14
14
|
var _rceConfigUtils = require("./rceConfigUtils.js");
|
|
15
15
|
|
|
16
|
-
var mapFeatureFlags = function mapFeatureFlags(flags) {
|
|
17
|
-
var _ref;
|
|
18
|
-
|
|
19
|
-
return _ref = {}, (0, _defineProperty2.default)(_ref, _quizCommon.RceConfigKeys.isNewRCEEnabled, (flags === null || flags === void 0 ? void 0 : flags.isNewRCEEnabled) || false), (0, _defineProperty2.default)(_ref, _quizCommon.RceConfigKeys.isNewRCERendererEnabled, (flags === null || flags === void 0 ? void 0 : flags.isNewRCERendererEnabled) || false), (0, _defineProperty2.default)(_ref, _quizCommon.RceConfigKeys.isNewRCEAppsEnabled, (flags === null || flags === void 0 ? void 0 : flags.isNewRCEAppsEnabled) || false), _ref;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
16
|
var mapRcs = function mapRcs(rcsParams, canvasConfig) {
|
|
23
17
|
if (rcsParams && (0, _rceConfigUtils.hasAllPropsForRcs)(rcsParams) && canvasConfig) {
|
|
24
|
-
var
|
|
18
|
+
var _ref;
|
|
25
19
|
|
|
26
|
-
return
|
|
20
|
+
return _ref = {}, (0, _defineProperty2.default)(_ref, _quizCommon.RceConfigKeys.canvasUserId, rcsParams.canvasUserId), (0, _defineProperty2.default)(_ref, _quizCommon.RceConfigKeys.contextId, rcsParams.contextId), (0, _defineProperty2.default)(_ref, _quizCommon.RceConfigKeys.contextType, rcsParams.contextType), (0, _defineProperty2.default)(_ref, _quizCommon.RceConfigKeys.rcsHost, rcsParams.rcsHost), (0, _defineProperty2.default)(_ref, _quizCommon.RceConfigKeys.rcsJwt, rcsParams.jwt), (0, _defineProperty2.default)(_ref, _quizCommon.RceConfigKeys.rcsJwtRefreshFn, rcsParams.refreshToken), (0, _defineProperty2.default)(_ref, _quizCommon.RceConfigKeys.canvasConfig, canvasConfig), _ref;
|
|
27
21
|
} else {
|
|
28
22
|
return null;
|
|
29
23
|
}
|
|
30
24
|
};
|
|
31
25
|
|
|
32
|
-
var mapLtiApps = function mapLtiApps(
|
|
33
|
-
var
|
|
26
|
+
var mapLtiApps = function mapLtiApps(canvasConfig, ltiAppParams) {
|
|
27
|
+
var _ref2;
|
|
34
28
|
|
|
35
|
-
if (!(0, _rceConfigUtils.areLtiAppsConfigured)(
|
|
36
|
-
return
|
|
29
|
+
if (!(0, _rceConfigUtils.areLtiAppsConfigured)(canvasConfig, ltiAppParams)) return null;
|
|
30
|
+
return _ref2 = {}, (0, _defineProperty2.default)(_ref2, _quizCommon.RceConfigKeys.canvasToolId, ltiAppParams.canvasToolId), (0, _defineProperty2.default)(_ref2, _quizCommon.RceConfigKeys.ltiIframeAllowances, canvasConfig.LTI_LAUNCH_FRAME_ALLOWANCES), (0, _defineProperty2.default)(_ref2, _quizCommon.RceConfigKeys.editorButtons, canvasConfig.editorButtons), _ref2;
|
|
37
31
|
};
|
|
38
32
|
|
|
39
33
|
var rendererEnhancement = function rendererEnhancement(rendererParams) {
|
|
40
34
|
return (0, _defineProperty2.default)({}, _quizCommon.RceConfigKeys.canvasOrigin, (rendererParams === null || rendererParams === void 0 ? void 0 : rendererParams.canvasOrigin) || null);
|
|
41
35
|
};
|
|
42
36
|
|
|
43
|
-
var mapParamsToRceConfigContext = function mapParamsToRceConfigContext(
|
|
37
|
+
var mapParamsToRceConfigContext = function mapParamsToRceConfigContext(rcsParams, rendererParams, canvasConfig, ltiAppParams) {
|
|
44
38
|
return {
|
|
45
|
-
featureFlags: mapFeatureFlags(flags),
|
|
46
39
|
rcs: mapRcs(rcsParams, canvasConfig),
|
|
47
40
|
rendererEnhancement: rendererEnhancement(rendererParams),
|
|
48
|
-
ltiApps: mapLtiApps(
|
|
41
|
+
ltiApps: mapLtiApps(canvasConfig, ltiAppParams)
|
|
49
42
|
};
|
|
50
43
|
};
|
|
51
44
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.areLtiAppsConfigured = exports.hasAllPropsForRcs = void 0;
|
|
7
7
|
|
|
8
8
|
var hasAllPropsForRcs = function hasAllPropsForRcs(rcsParams) {
|
|
9
9
|
return !!((rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.contextId) && (rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.contextType) && (rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.canvasUserId) && (rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.rcsHost) && (rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.refreshToken) && (rcsParams === null || rcsParams === void 0 ? void 0 : rcsParams.jwt));
|
|
@@ -11,14 +11,8 @@ var hasAllPropsForRcs = function hasAllPropsForRcs(rcsParams) {
|
|
|
11
11
|
|
|
12
12
|
exports.hasAllPropsForRcs = hasAllPropsForRcs;
|
|
13
13
|
|
|
14
|
-
var areLtiAppsConfigured = function areLtiAppsConfigured(
|
|
15
|
-
return !!((
|
|
14
|
+
var areLtiAppsConfigured = function areLtiAppsConfigured(canvasConfig, ltiAppParams) {
|
|
15
|
+
return !!((ltiAppParams === null || ltiAppParams === void 0 ? void 0 : ltiAppParams.canvasToolId) && (canvasConfig === null || canvasConfig === void 0 ? void 0 : canvasConfig.LTI_LAUNCH_FRAME_ALLOWANCES) && Array.isArray(canvasConfig === null || canvasConfig === void 0 ? void 0 : canvasConfig.LTI_LAUNCH_FRAME_ALLOWANCES) && canvasConfig.LTI_LAUNCH_FRAME_ALLOWANCES.length > 0 && (canvasConfig === null || canvasConfig === void 0 ? void 0 : canvasConfig.editorButtons) && Array.isArray(canvasConfig.editorButtons) && canvasConfig.editorButtons.length > 0);
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
exports.areLtiAppsConfigured = areLtiAppsConfigured;
|
|
19
|
-
|
|
20
|
-
var isRce5Disabled = function isRce5Disabled(flags) {
|
|
21
|
-
return !(flags === null || flags === void 0 ? void 0 : flags.isNewRCEEnabled) && !(flags === null || flags === void 0 ? void 0 : flags.isNewRCERendererEnabled);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
exports.isRce5Disabled = isRce5Disabled;
|
|
18
|
+
exports.areLtiAppsConfigured = areLtiAppsConfigured;
|
|
@@ -5,17 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
9
|
-
exports.isNewRCEAppsEnabled = isNewRCEAppsEnabled;
|
|
10
|
-
exports.isNewRCERendererEnabled = isNewRCERendererEnabled;
|
|
11
|
-
exports.default = exports.ensureRCEContentIsLoaded = void 0;
|
|
8
|
+
exports.ensureRCEContentIsLoaded = void 0;
|
|
12
9
|
|
|
13
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
14
11
|
|
|
15
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
13
|
|
|
17
|
-
var _featureCheck = require("./featureCheck.js");
|
|
18
|
-
|
|
19
14
|
var _mathRenderingUtils = require("./mathRenderingUtils.js");
|
|
20
15
|
|
|
21
16
|
var _printUtils = require("./printUtils.js");
|
|
@@ -41,22 +36,4 @@ var ensureRCEContentIsLoaded = /*#__PURE__*/function () {
|
|
|
41
36
|
};
|
|
42
37
|
}();
|
|
43
38
|
|
|
44
|
-
exports.ensureRCEContentIsLoaded = ensureRCEContentIsLoaded;
|
|
45
|
-
var newRCEFeatureName = 'use_new_rce';
|
|
46
|
-
var newRCEAppsFeatureName = 'rce5_apps';
|
|
47
|
-
var newRCERendererFeatureName = 'rce5_renderer';
|
|
48
|
-
|
|
49
|
-
function isNewRCEEnabled() {
|
|
50
|
-
return (0, _featureCheck.featureOn)(newRCEFeatureName);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function isNewRCEAppsEnabled() {
|
|
54
|
-
return (0, _featureCheck.featureOn)(newRCEAppsFeatureName);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function isNewRCERendererEnabled() {
|
|
58
|
-
return (0, _featureCheck.featureOn)(newRCERendererFeatureName);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
var _default = isNewRCEEnabled;
|
|
62
|
-
exports.default = _default;
|
|
39
|
+
exports.ensureRCEContentIsLoaded = ensureRCEContentIsLoaded;
|
package/lib/index.js
CHANGED
|
@@ -105,7 +105,6 @@ var _exportNames = {
|
|
|
105
105
|
sessionStore: true,
|
|
106
106
|
printWithCss: true,
|
|
107
107
|
ensureImagesLoaded: true,
|
|
108
|
-
isNewRCEEnabled: true,
|
|
109
108
|
ensureRCEContentIsLoaded: true,
|
|
110
109
|
createQuizEntryRegrade: true,
|
|
111
110
|
getQuizEntry: true,
|
|
@@ -797,12 +796,6 @@ Object.defineProperty(exports, "ensureImagesLoaded", {
|
|
|
797
796
|
return _printUtils.ensureImagesLoaded;
|
|
798
797
|
}
|
|
799
798
|
});
|
|
800
|
-
Object.defineProperty(exports, "isNewRCEEnabled", {
|
|
801
|
-
enumerable: true,
|
|
802
|
-
get: function get() {
|
|
803
|
-
return _rceChecker.isNewRCEEnabled;
|
|
804
|
-
}
|
|
805
|
-
});
|
|
806
799
|
Object.defineProperty(exports, "ensureRCEContentIsLoaded", {
|
|
807
800
|
enumerable: true,
|
|
808
801
|
get: function get() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.0",
|
|
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": "
|
|
48
|
-
"@instructure/quiz-i18n": "
|
|
49
|
-
"@instructure/quiz-interactions": "
|
|
50
|
-
"@instructure/quiz-number-input": "
|
|
51
|
-
"@instructure/quiz-rce": "
|
|
47
|
+
"@instructure/quiz-common": "^20.0.0",
|
|
48
|
+
"@instructure/quiz-i18n": "^20.0.0",
|
|
49
|
+
"@instructure/quiz-interactions": "^20.0.0",
|
|
50
|
+
"@instructure/quiz-number-input": "^20.0.0",
|
|
51
|
+
"@instructure/quiz-rce": "^20.0.0",
|
|
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": "
|
|
113
|
+
"instructure-validations": "^20.0.0",
|
|
114
114
|
"ipaddr.js": "^1.5.4",
|
|
115
115
|
"isomorphic-fetch": "^2.2.0",
|
|
116
116
|
"isuuid": "^0.1.0",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"uuid": "^3.2.1"
|
|
143
143
|
},
|
|
144
144
|
"devDependencies": {
|
|
145
|
-
"@instructure/quiz-scripts": "
|
|
145
|
+
"@instructure/quiz-scripts": "^20.0.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",
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
"intl": "^1.2.4",
|
|
163
163
|
"jquery": "^2.2.3",
|
|
164
164
|
"most-subject": "^5.3.0",
|
|
165
|
-
"quiz-presets": "
|
|
165
|
+
"quiz-presets": "^20.0.0",
|
|
166
166
|
"react": "^16.8.6",
|
|
167
167
|
"react-addons-test-utils": "^15.6.2",
|
|
168
168
|
"react-dom": "^16.8.6",
|
|
@@ -178,5 +178,5 @@
|
|
|
178
178
|
"publishConfig": {
|
|
179
179
|
"access": "public"
|
|
180
180
|
},
|
|
181
|
-
"gitHead": "
|
|
181
|
+
"gitHead": "76d9fc4082ab232befa2d3d206efeb51c0415966"
|
|
182
182
|
}
|