@instructure/quiz-core 17.34.1-rc.0 → 17.34.1-rc.12
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/es/banks/components/SharingModal/presenter.js +2 -1
- package/es/building/components/resources/DeleteStimulusModal/presenter.js +2 -2
- package/es/common/components/SDKApp/index.js +4 -3
- package/es/common/components/resources/quiz/AddContent/Button/index.js +6 -6
- package/es/common/components/resources/quiz/AddContent/Button/theme.js +1 -0
- package/es/common/components/resources/stimulus/StimulusEdit/presenter.js +5 -10
- package/es/common/util/RceConfigProvider.js +87 -0
- package/lib/banks/components/SharingModal/presenter.js +2 -1
- package/lib/building/components/resources/DeleteStimulusModal/presenter.js +2 -2
- package/lib/common/components/SDKApp/index.js +5 -3
- package/lib/common/components/resources/quiz/AddContent/Button/index.js +6 -6
- package/lib/common/components/resources/quiz/AddContent/Button/theme.js +1 -0
- package/lib/common/components/resources/stimulus/StimulusEdit/presenter.js +5 -10
- package/lib/common/util/RceConfigProvider.js +104 -0
- package/package.json +10 -10
|
@@ -222,9 +222,10 @@ export var SharingModalPresenter = (_dec = themeable(theme, styles), _dec(_class
|
|
|
222
222
|
});
|
|
223
223
|
var removedNewEntity = newEntitiesIndex > -1;
|
|
224
224
|
var newShares = removedNewEntity ? prevState.shares.delete(sharesIndex) : prevState.shares.setIn([sharesIndex, 'permission'], permission);
|
|
225
|
+
var newEntities = removedNewEntity ? prevState.newEntities.delete(newEntitiesIndex) : prevState.newEntities;
|
|
225
226
|
return {
|
|
226
227
|
shares: newShares,
|
|
227
|
-
newEntities:
|
|
228
|
+
newEntities: newEntities,
|
|
228
229
|
entitiesWithChangedPermission: Object.assign({}, prevState.entitiesWithChangedPermission, _defineProperty({}, id, permission))
|
|
229
230
|
};
|
|
230
231
|
}, _this.updateEntitiesCount);
|
|
@@ -179,7 +179,7 @@ export var DeleteStimulusModal = (_dec = themeable(theme, styles), _dec(_class =
|
|
|
179
179
|
return /*#__PURE__*/React.createElement(Button, {
|
|
180
180
|
onClick: this.closeAction,
|
|
181
181
|
margin: XSMALL_SIDE_MARGIN
|
|
182
|
-
}, t('
|
|
182
|
+
}, t('Keep Stimulus'));
|
|
183
183
|
}
|
|
184
184
|
}, {
|
|
185
185
|
key: "doneButton",
|
|
@@ -194,7 +194,7 @@ export var DeleteStimulusModal = (_dec = themeable(theme, styles), _dec(_class =
|
|
|
194
194
|
onClick: this.handleSubmit,
|
|
195
195
|
margin: XSMALL_SIDE_MARGIN,
|
|
196
196
|
"data-automation": "sdk-stimulus-doneButton"
|
|
197
|
-
}, t('
|
|
197
|
+
}, t('Remove Stimulus'));
|
|
198
198
|
}
|
|
199
199
|
}, {
|
|
200
200
|
key: "renderChooseWhich",
|
|
@@ -34,6 +34,7 @@ import theme from "./theme.js";
|
|
|
34
34
|
import CustomPropTypes from "../../../common/util/CustomPropTypes.js";
|
|
35
35
|
import ConfirmationModal from "../ConfirmationModal/index.js";
|
|
36
36
|
import setupFormatMessage from '@instructure/quiz-i18n/es/util/setupFormatMessage';
|
|
37
|
+
import { RceConfigProvider } from "../../util/RceConfigProvider.js";
|
|
37
38
|
|
|
38
39
|
var _ref = /*#__PURE__*/React.createElement(ConfirmationModal, null);
|
|
39
40
|
|
|
@@ -131,13 +132,13 @@ export var SDKApp = (_dec = themeable(theme, styles), _dec(_class = (_temp = _cl
|
|
|
131
132
|
context = this.context;
|
|
132
133
|
return /*#__PURE__*/React.createElement(Provider, {
|
|
133
134
|
store: store
|
|
134
|
-
}, /*#__PURE__*/React.createElement(ApplyLocale, {
|
|
135
|
+
}, /*#__PURE__*/React.createElement(RceConfigProvider, this.props.rceConfig, /*#__PURE__*/React.createElement(ApplyLocale, {
|
|
135
136
|
locale: getLocale(props, context),
|
|
136
137
|
timezone: props.timeZone
|
|
137
138
|
}, /*#__PURE__*/React.createElement("div", {
|
|
138
139
|
className: styles.sdk,
|
|
139
140
|
"data-automation": "sdk-app"
|
|
140
|
-
}, _ref, props.children)));
|
|
141
|
+
}, _ref, props.children))));
|
|
141
142
|
}
|
|
142
143
|
}]);
|
|
143
144
|
|
|
@@ -160,7 +161,7 @@ export var SDKApp = (_dec = themeable(theme, styles), _dec(_class = (_temp = _cl
|
|
|
160
161
|
contextType: PropTypes.string.isRequired,
|
|
161
162
|
canvasUserId: PropTypes.string.isRequired,
|
|
162
163
|
rcsHost: PropTypes.string.isRequired,
|
|
163
|
-
|
|
164
|
+
rcsJwtRefreshFn: PropTypes.func.isRequired
|
|
164
165
|
}),
|
|
165
166
|
timeZone: PropTypes.string,
|
|
166
167
|
translations: PropTypes.objectOf(PropTypes.shape({
|
|
@@ -15,14 +15,14 @@ import { Button } from '@instructure/ui-buttons';
|
|
|
15
15
|
import { themeable } from '@instructure/ui-themeable';
|
|
16
16
|
import t from '@instructure/quiz-i18n/es/format-message';
|
|
17
17
|
var styles = {
|
|
18
|
-
componentId: '
|
|
18
|
+
componentId: 'cIWJr',
|
|
19
19
|
template: function template(theme) {
|
|
20
|
-
return "\n\n.
|
|
20
|
+
return "\n\n.cIWJr_ePYF{background-color:".concat(theme.newItemButtonBackgroundColor || 'inherit', ";border:none;border-radius:").concat(theme.newItemButtonBorderRadius || 'inherit', ";box-shadow:").concat(theme.newItemButtonBoxShadow || 'inherit', ";color:").concat(theme.newItemButtonColor || 'inherit', ";font-size:").concat(theme.newItemButtonFontSize || 'inherit', ";font-weight:").concat(theme.newItemButtonFontWeight || 'inherit', ";line-height:0;margin:").concat(theme.newItemButtonMargin || 'inherit', ";padding:").concat(theme.newItemButtonPadding || 'inherit', ";text-align:center;transform:rotate(0deg);transition:").concat(theme.newItemButtonTransition || 'inherit', ";z-index:").concat(theme.newItemButtonZIndex || 'inherit', "}\n\n[dir=ltr] .cIWJr_ePYF,[dir=rtl] .cIWJr_ePYF{text-align:center}\n\n.cIWJr_ePYF:focus{outline:").concat(theme.newItemButtonFocusOutline || 'inherit', ";outline-offset:").concat(theme.newItemButtonFocusOutlineOffset || 'inherit', "}\n\n.cIWJr_ePYF.cIWJr_cwUE{background-color:").concat(theme.newItemButtonEditingBackgroundColor || 'inherit', ";transform:rotate(45deg);transition:").concat(theme.newItemButtonTransition || 'inherit', "}\n\n.cIWJr_ekys{display:flex;justify-content:center;margin-top:-1.5rem;width:100%;z-index:").concat(theme.newItemButtonHolderZIndex || 'inherit', "}\n\n.cIWJr_egTu{display:flex;justify-content:center;width:100%;z-index:").concat(theme.attachQuestionButtonHolderZIndex || 'inherit', "}\n\n@media print{.cIWJr_egTu,.cIWJr_ekys{display:none}}");
|
|
21
21
|
},
|
|
22
|
-
'newItemButton': '
|
|
23
|
-
'newItemButtonEditing': '
|
|
24
|
-
'newItemButtonHolder': '
|
|
25
|
-
'attachQuestionButtonHolder': '
|
|
22
|
+
'newItemButton': 'cIWJr_ePYF',
|
|
23
|
+
'newItemButtonEditing': 'cIWJr_cwUE',
|
|
24
|
+
'newItemButtonHolder': 'cIWJr_ekys',
|
|
25
|
+
'attachQuestionButtonHolder': 'cIWJr_egTu'
|
|
26
26
|
};
|
|
27
27
|
import theme from "./theme.js";
|
|
28
28
|
export var AddContentButton = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
@@ -12,6 +12,7 @@ export default function generator(_ref) {
|
|
|
12
12
|
newItemButtonBorderRadius: spacing.large,
|
|
13
13
|
newItemButtonColor: colors.white,
|
|
14
14
|
newItemButtonFocusOutline: "2px solid ".concat(colors.brand),
|
|
15
|
+
newItemButtonFocusOutlineOffset: spacing.xxxSmall,
|
|
15
16
|
newItemButtonFontSize: typography.fontSizeMedium,
|
|
16
17
|
newItemButtonFontWeight: typography.fontWeightBold,
|
|
17
18
|
newItemButtonZIndex: '4444',
|
|
@@ -90,8 +90,8 @@ export var StimulusEdit = (_dec = themeable(theme, styles), _dec(_class = (_temp
|
|
|
90
90
|
}, {
|
|
91
91
|
title: t('Confirm Stimulus Removal'),
|
|
92
92
|
text: t('Are you sure you want to remove this stimulus?'),
|
|
93
|
-
continueText: t('
|
|
94
|
-
cancelText: t('
|
|
93
|
+
continueText: t('Remove Stimulus'),
|
|
94
|
+
cancelText: t('Keep Stimulus')
|
|
95
95
|
});
|
|
96
96
|
};
|
|
97
97
|
|
|
@@ -366,11 +366,6 @@ export var StimulusEdit = (_dec = themeable(theme, styles), _dec(_class = (_temp
|
|
|
366
366
|
this.createNextQuizEntry();
|
|
367
367
|
}
|
|
368
368
|
}
|
|
369
|
-
}, {
|
|
370
|
-
key: "saveText",
|
|
371
|
-
value: function saveText() {
|
|
372
|
-
return this.props.stimulus.isTemporary() ? t('Add Stimulus') : t('Save Stimulus');
|
|
373
|
-
}
|
|
374
369
|
}, {
|
|
375
370
|
key: "renderAddToBankModal",
|
|
376
371
|
value: function renderAddToBankModal() {
|
|
@@ -438,14 +433,14 @@ export var StimulusEdit = (_dec = themeable(theme, styles), _dec(_class = (_temp
|
|
|
438
433
|
type: "button",
|
|
439
434
|
onClick: this.onCancel,
|
|
440
435
|
"data-automation": "sdk-stimulus-discardButton"
|
|
441
|
-
}, t('
|
|
436
|
+
}, t('Cancel'))), /*#__PURE__*/React.createElement("div", {
|
|
442
437
|
className: styles.buttonWrapper
|
|
443
438
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
444
439
|
type: "button",
|
|
445
440
|
variant: "primary",
|
|
446
441
|
disabled: !this.state.canSubmit,
|
|
447
442
|
onClick: this.onSubmit
|
|
448
|
-
},
|
|
443
|
+
}, t('Done')))));
|
|
449
444
|
}
|
|
450
445
|
}, {
|
|
451
446
|
key: "render",
|
|
@@ -511,7 +506,7 @@ export var StimulusEdit = (_dec = themeable(theme, styles), _dec(_class = (_temp
|
|
|
511
506
|
shouldFocusOnMount: PropTypes.bool.isRequired
|
|
512
507
|
}, _class2.defaultProps = {
|
|
513
508
|
bankEntryWarningWrapperProps: function bankEntryWarningWrapperProps() {},
|
|
514
|
-
errorsShowing:
|
|
509
|
+
errorsShowing: false,
|
|
515
510
|
isBankedContent: false,
|
|
516
511
|
nextQuizEntry: null
|
|
517
512
|
}, _temp)) || _class);
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import React, { useState, useEffect } from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import { connect } from "../../common/react-redux.js";
|
|
6
|
+
import isNewRCEEnabled from "./rceChecker.js";
|
|
7
|
+
import { RceConfigContext, RceConfigKeys, TokenFetchStatus } from '@instructure/quiz-common';
|
|
8
|
+
|
|
9
|
+
var RceConfigProviderComponent = function RceConfigProviderComponent(props) {
|
|
10
|
+
var _useState = useState(null),
|
|
11
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
12
|
+
jwt = _useState2[0],
|
|
13
|
+
setJwt = _useState2[1];
|
|
14
|
+
|
|
15
|
+
var _useState3 = useState(TokenFetchStatus.initial),
|
|
16
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
17
|
+
status = _useState4[0],
|
|
18
|
+
setStatus = _useState4[1];
|
|
19
|
+
|
|
20
|
+
var hasAllPropsForNewRce = function hasAllPropsForNewRce() {
|
|
21
|
+
return props.useNewRce && !!(props.contextId && props.contextType && props.canvasUserId && props.rcsHost && props.rcsJwtRefreshFn);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
var getToken = function getToken() {
|
|
25
|
+
if (!hasAllPropsForNewRce()) return;
|
|
26
|
+
setStatus(TokenFetchStatus.pending);
|
|
27
|
+
return new Promise(function (resolve, reject) {
|
|
28
|
+
props.rcsJwtRefreshFn().then(function (response) {
|
|
29
|
+
var token = response.token;
|
|
30
|
+
setStatus(TokenFetchStatus.success);
|
|
31
|
+
setJwt(token);
|
|
32
|
+
resolve(response);
|
|
33
|
+
}, function () {
|
|
34
|
+
setStatus(TokenFetchStatus.failed);
|
|
35
|
+
reject();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var refreshToken = function refreshToken(setTokenFn) {
|
|
41
|
+
return getToken().then(function (response) {
|
|
42
|
+
var token = response.token;
|
|
43
|
+
setTokenFn(token);
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
var getConfig = function getConfig() {
|
|
48
|
+
var _config;
|
|
49
|
+
|
|
50
|
+
var config = (_config = {}, _defineProperty(_config, RceConfigKeys.useNewRce, props.useNewRce), _defineProperty(_config, RceConfigKeys.canvasUserId, props.canvasUserId), _defineProperty(_config, RceConfigKeys.contextId, props.contextId), _defineProperty(_config, RceConfigKeys.contextType, props.contextType), _defineProperty(_config, RceConfigKeys.rcsHost, props.rcsHost), _defineProperty(_config, RceConfigKeys.rcsJwt, jwt), _defineProperty(_config, RceConfigKeys.rcsJwtRefreshFn, refreshToken), _defineProperty(_config, RceConfigKeys.rcsJwtFetchStatus, status), _config);
|
|
51
|
+
return config;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
useEffect(function () {
|
|
55
|
+
getToken();
|
|
56
|
+
}, [props.useNewRce]);
|
|
57
|
+
if (!hasAllPropsForNewRce()) return /*#__PURE__*/React.createElement(React.Fragment, null, props.children);
|
|
58
|
+
return /*#__PURE__*/React.createElement(RceConfigContext.Provider, {
|
|
59
|
+
value: getConfig()
|
|
60
|
+
}, props.children);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
RceConfigProviderComponent.propTypes = {
|
|
64
|
+
children: PropTypes.node.isRequired,
|
|
65
|
+
useNewRce: PropTypes.bool.isRequired,
|
|
66
|
+
contextId: PropTypes.string,
|
|
67
|
+
contextType: PropTypes.string,
|
|
68
|
+
canvasUserId: PropTypes.string,
|
|
69
|
+
rcsHost: PropTypes.string,
|
|
70
|
+
rcsJwtRefreshFn: PropTypes.func
|
|
71
|
+
};
|
|
72
|
+
RceConfigProviderComponent.defaultProps = {
|
|
73
|
+
contextId: null,
|
|
74
|
+
contextType: null,
|
|
75
|
+
canvasUserId: null,
|
|
76
|
+
rcsHost: null,
|
|
77
|
+
rcsJwtRefreshFn: null
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
var mapStateToProps = function mapStateToProps() {
|
|
81
|
+
return {
|
|
82
|
+
useNewRce: isNewRCEEnabled()
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
var RceConfigProvider = connect(mapStateToProps)(RceConfigProviderComponent);
|
|
87
|
+
export { RceConfigProvider };
|
|
@@ -260,9 +260,10 @@ var SharingModalPresenter = (_dec = (0, _uiThemeable.themeable)(_theme.default,
|
|
|
260
260
|
});
|
|
261
261
|
var removedNewEntity = newEntitiesIndex > -1;
|
|
262
262
|
var newShares = removedNewEntity ? prevState.shares.delete(sharesIndex) : prevState.shares.setIn([sharesIndex, 'permission'], permission);
|
|
263
|
+
var newEntities = removedNewEntity ? prevState.newEntities.delete(newEntitiesIndex) : prevState.newEntities;
|
|
263
264
|
return {
|
|
264
265
|
shares: newShares,
|
|
265
|
-
newEntities:
|
|
266
|
+
newEntities: newEntities,
|
|
266
267
|
entitiesWithChangedPermission: Object.assign({}, prevState.entitiesWithChangedPermission, (0, _defineProperty2.default)({}, id, permission))
|
|
267
268
|
};
|
|
268
269
|
}, _this.updateEntitiesCount);
|
|
@@ -208,7 +208,7 @@ var DeleteStimulusModal = (_dec = (0, _uiThemeable.themeable)(_theme.default, st
|
|
|
208
208
|
return /*#__PURE__*/_react.default.createElement(_uiButtons.Button, {
|
|
209
209
|
onClick: this.closeAction,
|
|
210
210
|
margin: _quizCommon.XSMALL_SIDE_MARGIN
|
|
211
|
-
}, (0, _formatMessage.default)('
|
|
211
|
+
}, (0, _formatMessage.default)('Keep Stimulus'));
|
|
212
212
|
}
|
|
213
213
|
}, {
|
|
214
214
|
key: "doneButton",
|
|
@@ -223,7 +223,7 @@ var DeleteStimulusModal = (_dec = (0, _uiThemeable.themeable)(_theme.default, st
|
|
|
223
223
|
onClick: this.handleSubmit,
|
|
224
224
|
margin: _quizCommon.XSMALL_SIDE_MARGIN,
|
|
225
225
|
"data-automation": "sdk-stimulus-doneButton"
|
|
226
|
-
}, (0, _formatMessage.default)('
|
|
226
|
+
}, (0, _formatMessage.default)('Remove Stimulus'));
|
|
227
227
|
}
|
|
228
228
|
}, {
|
|
229
229
|
key: "renderChooseWhich",
|
|
@@ -55,6 +55,8 @@ var _index = _interopRequireDefault(require("../ConfirmationModal/index.js"));
|
|
|
55
55
|
|
|
56
56
|
var _setupFormatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/util/setupFormatMessage"));
|
|
57
57
|
|
|
58
|
+
var _RceConfigProvider = require("../../util/RceConfigProvider.js");
|
|
59
|
+
|
|
58
60
|
var _dec, _class, _class2, _temp;
|
|
59
61
|
|
|
60
62
|
var styles = {
|
|
@@ -160,13 +162,13 @@ var SDKApp = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_
|
|
|
160
162
|
context = this.context;
|
|
161
163
|
return /*#__PURE__*/_react.default.createElement(_reactRedux.Provider, {
|
|
162
164
|
store: store
|
|
163
|
-
}, /*#__PURE__*/_react.default.createElement(_uiI18n.ApplyLocale, {
|
|
165
|
+
}, /*#__PURE__*/_react.default.createElement(_RceConfigProvider.RceConfigProvider, this.props.rceConfig, /*#__PURE__*/_react.default.createElement(_uiI18n.ApplyLocale, {
|
|
164
166
|
locale: (0, _quizCommon.getLocale)(props, context),
|
|
165
167
|
timezone: props.timeZone
|
|
166
168
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
167
169
|
className: styles.sdk,
|
|
168
170
|
"data-automation": "sdk-app"
|
|
169
|
-
}, _ref, props.children)));
|
|
171
|
+
}, _ref, props.children))));
|
|
170
172
|
}
|
|
171
173
|
}]);
|
|
172
174
|
SDKApp.displayName = "SDKApp";
|
|
@@ -188,7 +190,7 @@ var SDKApp = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_
|
|
|
188
190
|
contextType: _propTypes.default.string.isRequired,
|
|
189
191
|
canvasUserId: _propTypes.default.string.isRequired,
|
|
190
192
|
rcsHost: _propTypes.default.string.isRequired,
|
|
191
|
-
|
|
193
|
+
rcsJwtRefreshFn: _propTypes.default.func.isRequired
|
|
192
194
|
}),
|
|
193
195
|
timeZone: _propTypes.default.string,
|
|
194
196
|
translations: _propTypes.default.objectOf(_propTypes.default.shape({
|
|
@@ -40,14 +40,14 @@ var _theme = _interopRequireDefault(require("./theme.js"));
|
|
|
40
40
|
var _dec, _class, _class2, _temp;
|
|
41
41
|
|
|
42
42
|
var styles = {
|
|
43
|
-
componentId: '
|
|
43
|
+
componentId: 'cIWJr',
|
|
44
44
|
template: function template(theme) {
|
|
45
|
-
return "\n\n.
|
|
45
|
+
return "\n\n.cIWJr_ePYF{background-color:".concat(theme.newItemButtonBackgroundColor || 'inherit', ";border:none;border-radius:").concat(theme.newItemButtonBorderRadius || 'inherit', ";box-shadow:").concat(theme.newItemButtonBoxShadow || 'inherit', ";color:").concat(theme.newItemButtonColor || 'inherit', ";font-size:").concat(theme.newItemButtonFontSize || 'inherit', ";font-weight:").concat(theme.newItemButtonFontWeight || 'inherit', ";line-height:0;margin:").concat(theme.newItemButtonMargin || 'inherit', ";padding:").concat(theme.newItemButtonPadding || 'inherit', ";text-align:center;transform:rotate(0deg);transition:").concat(theme.newItemButtonTransition || 'inherit', ";z-index:").concat(theme.newItemButtonZIndex || 'inherit', "}\n\n[dir=ltr] .cIWJr_ePYF,[dir=rtl] .cIWJr_ePYF{text-align:center}\n\n.cIWJr_ePYF:focus{outline:").concat(theme.newItemButtonFocusOutline || 'inherit', ";outline-offset:").concat(theme.newItemButtonFocusOutlineOffset || 'inherit', "}\n\n.cIWJr_ePYF.cIWJr_cwUE{background-color:").concat(theme.newItemButtonEditingBackgroundColor || 'inherit', ";transform:rotate(45deg);transition:").concat(theme.newItemButtonTransition || 'inherit', "}\n\n.cIWJr_ekys{display:flex;justify-content:center;margin-top:-1.5rem;width:100%;z-index:").concat(theme.newItemButtonHolderZIndex || 'inherit', "}\n\n.cIWJr_egTu{display:flex;justify-content:center;width:100%;z-index:").concat(theme.attachQuestionButtonHolderZIndex || 'inherit', "}\n\n@media print{.cIWJr_egTu,.cIWJr_ekys{display:none}}");
|
|
46
46
|
},
|
|
47
|
-
'newItemButton': '
|
|
48
|
-
'newItemButtonEditing': '
|
|
49
|
-
'newItemButtonHolder': '
|
|
50
|
-
'attachQuestionButtonHolder': '
|
|
47
|
+
'newItemButton': 'cIWJr_ePYF',
|
|
48
|
+
'newItemButtonEditing': 'cIWJr_cwUE',
|
|
49
|
+
'newItemButtonHolder': 'cIWJr_ekys',
|
|
50
|
+
'attachQuestionButtonHolder': 'cIWJr_egTu'
|
|
51
51
|
};
|
|
52
52
|
var AddContentButton = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
53
53
|
(0, _inherits2.default)(AddContentButton, _Component);
|
|
@@ -19,6 +19,7 @@ function generator(_ref) {
|
|
|
19
19
|
newItemButtonBorderRadius: spacing.large,
|
|
20
20
|
newItemButtonColor: colors.white,
|
|
21
21
|
newItemButtonFocusOutline: "2px solid ".concat(colors.brand),
|
|
22
|
+
newItemButtonFocusOutlineOffset: spacing.xxxSmall,
|
|
22
23
|
newItemButtonFontSize: typography.fontSizeMedium,
|
|
23
24
|
newItemButtonFontWeight: typography.fontWeightBold,
|
|
24
25
|
newItemButtonZIndex: '4444',
|
|
@@ -127,8 +127,8 @@ var StimulusEdit = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles),
|
|
|
127
127
|
}, {
|
|
128
128
|
title: (0, _formatMessage.default)('Confirm Stimulus Removal'),
|
|
129
129
|
text: (0, _formatMessage.default)('Are you sure you want to remove this stimulus?'),
|
|
130
|
-
continueText: (0, _formatMessage.default)('
|
|
131
|
-
cancelText: (0, _formatMessage.default)('
|
|
130
|
+
continueText: (0, _formatMessage.default)('Remove Stimulus'),
|
|
131
|
+
cancelText: (0, _formatMessage.default)('Keep Stimulus')
|
|
132
132
|
});
|
|
133
133
|
};
|
|
134
134
|
|
|
@@ -403,11 +403,6 @@ var StimulusEdit = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles),
|
|
|
403
403
|
this.createNextQuizEntry();
|
|
404
404
|
}
|
|
405
405
|
}
|
|
406
|
-
}, {
|
|
407
|
-
key: "saveText",
|
|
408
|
-
value: function saveText() {
|
|
409
|
-
return this.props.stimulus.isTemporary() ? (0, _formatMessage.default)('Add Stimulus') : (0, _formatMessage.default)('Save Stimulus');
|
|
410
|
-
}
|
|
411
406
|
}, {
|
|
412
407
|
key: "renderAddToBankModal",
|
|
413
408
|
value: function renderAddToBankModal() {
|
|
@@ -475,14 +470,14 @@ var StimulusEdit = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles),
|
|
|
475
470
|
type: "button",
|
|
476
471
|
onClick: this.onCancel,
|
|
477
472
|
"data-automation": "sdk-stimulus-discardButton"
|
|
478
|
-
}, (0, _formatMessage.default)('
|
|
473
|
+
}, (0, _formatMessage.default)('Cancel'))), /*#__PURE__*/_react.default.createElement("div", {
|
|
479
474
|
className: styles.buttonWrapper
|
|
480
475
|
}, /*#__PURE__*/_react.default.createElement(_uiButtons.Button, {
|
|
481
476
|
type: "button",
|
|
482
477
|
variant: "primary",
|
|
483
478
|
disabled: !this.state.canSubmit,
|
|
484
479
|
onClick: this.onSubmit
|
|
485
|
-
},
|
|
480
|
+
}, (0, _formatMessage.default)('Done')))));
|
|
486
481
|
}
|
|
487
482
|
}, {
|
|
488
483
|
key: "render",
|
|
@@ -547,7 +542,7 @@ var StimulusEdit = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles),
|
|
|
547
542
|
shouldFocusOnMount: _propTypes.default.bool.isRequired
|
|
548
543
|
}, _class2.defaultProps = {
|
|
549
544
|
bankEntryWarningWrapperProps: function bankEntryWarningWrapperProps() {},
|
|
550
|
-
errorsShowing:
|
|
545
|
+
errorsShowing: false,
|
|
551
546
|
isBankedContent: false,
|
|
552
547
|
nextQuizEntry: null
|
|
553
548
|
}, _temp)) || _class);
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.RceConfigProvider = void 0;
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
+
|
|
20
|
+
var _reactRedux = require("../../common/react-redux.js");
|
|
21
|
+
|
|
22
|
+
var _rceChecker = _interopRequireDefault(require("./rceChecker.js"));
|
|
23
|
+
|
|
24
|
+
var _quizCommon = require("@instructure/quiz-common");
|
|
25
|
+
|
|
26
|
+
var RceConfigProviderComponent = function RceConfigProviderComponent(props) {
|
|
27
|
+
var _useState = (0, _react.useState)(null),
|
|
28
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
29
|
+
jwt = _useState2[0],
|
|
30
|
+
setJwt = _useState2[1];
|
|
31
|
+
|
|
32
|
+
var _useState3 = (0, _react.useState)(_quizCommon.TokenFetchStatus.initial),
|
|
33
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
34
|
+
status = _useState4[0],
|
|
35
|
+
setStatus = _useState4[1];
|
|
36
|
+
|
|
37
|
+
var hasAllPropsForNewRce = function hasAllPropsForNewRce() {
|
|
38
|
+
return props.useNewRce && !!(props.contextId && props.contextType && props.canvasUserId && props.rcsHost && props.rcsJwtRefreshFn);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
var getToken = function getToken() {
|
|
42
|
+
if (!hasAllPropsForNewRce()) return;
|
|
43
|
+
setStatus(_quizCommon.TokenFetchStatus.pending);
|
|
44
|
+
return new Promise(function (resolve, reject) {
|
|
45
|
+
props.rcsJwtRefreshFn().then(function (response) {
|
|
46
|
+
var token = response.token;
|
|
47
|
+
setStatus(_quizCommon.TokenFetchStatus.success);
|
|
48
|
+
setJwt(token);
|
|
49
|
+
resolve(response);
|
|
50
|
+
}, function () {
|
|
51
|
+
setStatus(_quizCommon.TokenFetchStatus.failed);
|
|
52
|
+
reject();
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
var refreshToken = function refreshToken(setTokenFn) {
|
|
58
|
+
return getToken().then(function (response) {
|
|
59
|
+
var token = response.token;
|
|
60
|
+
setTokenFn(token);
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
var getConfig = function getConfig() {
|
|
65
|
+
var _config;
|
|
66
|
+
|
|
67
|
+
var config = (_config = {}, (0, _defineProperty2.default)(_config, _quizCommon.RceConfigKeys.useNewRce, props.useNewRce), (0, _defineProperty2.default)(_config, _quizCommon.RceConfigKeys.canvasUserId, props.canvasUserId), (0, _defineProperty2.default)(_config, _quizCommon.RceConfigKeys.contextId, props.contextId), (0, _defineProperty2.default)(_config, _quizCommon.RceConfigKeys.contextType, props.contextType), (0, _defineProperty2.default)(_config, _quizCommon.RceConfigKeys.rcsHost, props.rcsHost), (0, _defineProperty2.default)(_config, _quizCommon.RceConfigKeys.rcsJwt, jwt), (0, _defineProperty2.default)(_config, _quizCommon.RceConfigKeys.rcsJwtRefreshFn, refreshToken), (0, _defineProperty2.default)(_config, _quizCommon.RceConfigKeys.rcsJwtFetchStatus, status), _config);
|
|
68
|
+
return config;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
(0, _react.useEffect)(function () {
|
|
72
|
+
getToken();
|
|
73
|
+
}, [props.useNewRce]);
|
|
74
|
+
if (!hasAllPropsForNewRce()) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.children);
|
|
75
|
+
return /*#__PURE__*/_react.default.createElement(_quizCommon.RceConfigContext.Provider, {
|
|
76
|
+
value: getConfig()
|
|
77
|
+
}, props.children);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
RceConfigProviderComponent.propTypes = {
|
|
81
|
+
children: _propTypes.default.node.isRequired,
|
|
82
|
+
useNewRce: _propTypes.default.bool.isRequired,
|
|
83
|
+
contextId: _propTypes.default.string,
|
|
84
|
+
contextType: _propTypes.default.string,
|
|
85
|
+
canvasUserId: _propTypes.default.string,
|
|
86
|
+
rcsHost: _propTypes.default.string,
|
|
87
|
+
rcsJwtRefreshFn: _propTypes.default.func
|
|
88
|
+
};
|
|
89
|
+
RceConfigProviderComponent.defaultProps = {
|
|
90
|
+
contextId: null,
|
|
91
|
+
contextType: null,
|
|
92
|
+
canvasUserId: null,
|
|
93
|
+
rcsHost: null,
|
|
94
|
+
rcsJwtRefreshFn: null
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
var mapStateToProps = function mapStateToProps() {
|
|
98
|
+
return {
|
|
99
|
+
useNewRce: (0, _rceChecker.default)()
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
var RceConfigProvider = (0, _reactRedux.connect)(mapStateToProps)(RceConfigProviderComponent);
|
|
104
|
+
exports.RceConfigProvider = RceConfigProvider;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "17.34.1-rc.
|
|
3
|
+
"version": "17.34.1-rc.12+f7cdc81b4",
|
|
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.2",
|
|
44
|
-
"@instructure/quiz-common": "17.34.1-rc.
|
|
45
|
-
"@instructure/quiz-i18n": "17.34.1-rc.
|
|
46
|
-
"@instructure/quiz-interactions": "17.34.1-rc.
|
|
47
|
-
"@instructure/quiz-number-input": "17.34.1-rc.
|
|
48
|
-
"@instructure/quiz-rce": "17.34.1-rc.
|
|
44
|
+
"@instructure/quiz-common": "17.34.1-rc.12+f7cdc81b4",
|
|
45
|
+
"@instructure/quiz-i18n": "17.34.1-rc.12+f7cdc81b4",
|
|
46
|
+
"@instructure/quiz-interactions": "17.34.1-rc.12+f7cdc81b4",
|
|
47
|
+
"@instructure/quiz-number-input": "17.34.1-rc.12+f7cdc81b4",
|
|
48
|
+
"@instructure/quiz-rce": "17.34.1-rc.12+f7cdc81b4",
|
|
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.34.1-rc.
|
|
109
|
+
"instructure-validations": "17.34.1-rc.12+f7cdc81b4",
|
|
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.34.1-rc.
|
|
140
|
+
"@instructure/quiz-scripts": "17.34.1-rc.12+f7cdc81b4",
|
|
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.34.1-rc.
|
|
159
|
+
"quiz-presets": "17.34.1-rc.12+f7cdc81b4",
|
|
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": "
|
|
175
|
+
"gitHead": "f7cdc81b4af49f4ed24aa765aaaba4ec51fc9abf"
|
|
176
176
|
}
|