@instructure/quiz-core 17.32.1-rc.5 → 17.32.1-rc.8
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/BankEntry/presenter.js +1 -2
- package/es/common/components/resources/item/ItemEdit/presenter.js +2 -3
- package/es/common/util/fitbCopyHelper.js +11 -3
- package/es/common/util/interactionTypePropsHelper.js +1 -0
- package/lib/banks/components/BankEntry/presenter.js +1 -2
- package/lib/common/components/resources/item/ItemEdit/presenter.js +2 -3
- package/lib/common/util/fitbCopyHelper.js +10 -2
- package/lib/common/util/interactionTypePropsHelper.js +1 -0
- package/package.json +10 -10
|
@@ -305,7 +305,6 @@ export var BankEntry = (_dec = themeable(theme, styles), _dec(_class = (_temp =
|
|
|
305
305
|
scope = _this$props.scope,
|
|
306
306
|
closeTray = _this$props.closeTray,
|
|
307
307
|
navigateToBanks = _this$props.navigateToBanks,
|
|
308
|
-
navigateToBank = _this$props.navigateToBank,
|
|
309
308
|
navigateToBuild = _this$props.navigateToBuild,
|
|
310
309
|
returnToUrl = _this$props.returnToUrl,
|
|
311
310
|
bank = _this$props.bank;
|
|
@@ -318,7 +317,7 @@ export var BankEntry = (_dec = themeable(theme, styles), _dec(_class = (_temp =
|
|
|
318
317
|
canvasReferrerLinkText: isScopeEmpty ? null : scope.title
|
|
319
318
|
}, /*#__PURE__*/React.createElement(BreadcrumbLink, {
|
|
320
319
|
key: "bank",
|
|
321
|
-
onClick: navigateToBank,
|
|
320
|
+
onClick: this.navigateToBank,
|
|
322
321
|
ref: this.setNavToBankRef
|
|
323
322
|
}, bank.title), /*#__PURE__*/React.createElement(BreadcrumbLink, {
|
|
324
323
|
key: "bankEntry"
|
|
@@ -127,8 +127,8 @@ export var ItemEdit = /*#__PURE__*/function (_Component) {
|
|
|
127
127
|
key: "render",
|
|
128
128
|
value: function render() {
|
|
129
129
|
var item = this.props.entry;
|
|
130
|
-
var interactionType = item.getInteractionType();
|
|
131
|
-
var Interaction = componentForItem(interactionType
|
|
130
|
+
var interactionType = item.getInteractionType().slug;
|
|
131
|
+
var Interaction = componentForItem(interactionType, COMPONENT_EDIT);
|
|
132
132
|
var propsForInteraction = propsForInteractionEdit(this.props, this.additionalEditOptions());
|
|
133
133
|
return /*#__PURE__*/React.createElement(FormFieldGroup, {
|
|
134
134
|
messages: this.getError('onSelf'),
|
|
@@ -136,7 +136,6 @@ export var ItemEdit = /*#__PURE__*/function (_Component) {
|
|
|
136
136
|
name: "edit_item_".concat(this.props.guid) // eslint-disable-line react/jsx-no-literals
|
|
137
137
|
|
|
138
138
|
}, /*#__PURE__*/React.createElement(Interaction, Object.assign({}, propsForInteraction, {
|
|
139
|
-
interactionType: interactionType,
|
|
140
139
|
itemId: this.props.guid,
|
|
141
140
|
renderImportModal: this.renderImportModal
|
|
142
141
|
})));
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import { List, Map } from 'immutable';
|
|
1
|
+
import { List, Map } from 'immutable'; // https://stackoverflow.com/questions/18749591/encode-html-entities-in-javascript
|
|
2
|
+
|
|
3
|
+
function htmlEncode(input) {
|
|
4
|
+
return input.replace(/[\u00A0-\u9999<>&]/g, function (i) {
|
|
5
|
+
return '&#' + i.charCodeAt(0) + ';';
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
|
|
2
9
|
export function convertFITBtoRich(interactionTypeData, richFITBInteractionID) {
|
|
3
10
|
var interactionData = interactionTypeData.interactionData,
|
|
4
11
|
scoringData = interactionTypeData.scoringData;
|
|
@@ -7,12 +14,13 @@ export function convertFITBtoRich(interactionTypeData, richFITBInteractionID) {
|
|
|
7
14
|
});
|
|
8
15
|
var workingItemBody = sortedStemItems.reduce(function (itemBody, stemItem) {
|
|
9
16
|
if (stemItem.get('type') === 'text') {
|
|
10
|
-
return itemBody + stemItem.get('value', '');
|
|
17
|
+
return itemBody + htmlEncode(stemItem.get('value', ''));
|
|
11
18
|
} else {
|
|
12
19
|
var blankScoringData = scoringData.get('value', List()).find(function (blank) {
|
|
13
20
|
return blank.get('id') === stemItem.get('blankId');
|
|
14
21
|
}) || Map();
|
|
15
|
-
|
|
22
|
+
var blankText = blankScoringData.getIn(['scoringData', 'blankText'], '');
|
|
23
|
+
return itemBody + "`".concat(htmlEncode(blankText), "`");
|
|
16
24
|
}
|
|
17
25
|
}, '');
|
|
18
26
|
return Object.assign({}, interactionTypeData, {
|
|
@@ -43,6 +43,7 @@ export var propsForInteractionEdit = function propsForInteractionEdit(props, add
|
|
|
43
43
|
calculator: !props.showCalculator
|
|
44
44
|
},
|
|
45
45
|
interactionData: item.interactionData,
|
|
46
|
+
interactionType: props.entry.getInteractionType(),
|
|
46
47
|
// SHIM: canvas-rce breaks on null values now
|
|
47
48
|
// this is a shim until canvas-rce deals with
|
|
48
49
|
// null values better
|
|
@@ -357,7 +357,6 @@ var BankEntry = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _de
|
|
|
357
357
|
scope = _this$props.scope,
|
|
358
358
|
closeTray = _this$props.closeTray,
|
|
359
359
|
navigateToBanks = _this$props.navigateToBanks,
|
|
360
|
-
navigateToBank = _this$props.navigateToBank,
|
|
361
360
|
navigateToBuild = _this$props.navigateToBuild,
|
|
362
361
|
returnToUrl = _this$props.returnToUrl,
|
|
363
362
|
bank = _this$props.bank;
|
|
@@ -370,7 +369,7 @@ var BankEntry = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _de
|
|
|
370
369
|
canvasReferrerLinkText: isScopeEmpty ? null : scope.title
|
|
371
370
|
}, /*#__PURE__*/_react.default.createElement(_uiBreadcrumb.BreadcrumbLink, {
|
|
372
371
|
key: "bank",
|
|
373
|
-
onClick: navigateToBank,
|
|
372
|
+
onClick: this.navigateToBank,
|
|
374
373
|
ref: this.setNavToBankRef
|
|
375
374
|
}, bank.title), /*#__PURE__*/_react.default.createElement(_uiBreadcrumb.BreadcrumbLink, {
|
|
376
375
|
key: "bankEntry"
|
|
@@ -157,8 +157,8 @@ var ItemEdit = /*#__PURE__*/function (_Component) {
|
|
|
157
157
|
key: "render",
|
|
158
158
|
value: function render() {
|
|
159
159
|
var item = this.props.entry;
|
|
160
|
-
var interactionType = item.getInteractionType();
|
|
161
|
-
var Interaction = (0, _componentForItem.default)(interactionType
|
|
160
|
+
var interactionType = item.getInteractionType().slug;
|
|
161
|
+
var Interaction = (0, _componentForItem.default)(interactionType, _quizCommon.COMPONENT_EDIT);
|
|
162
162
|
var propsForInteraction = (0, _interactionTypePropsHelper.propsForInteractionEdit)(this.props, this.additionalEditOptions());
|
|
163
163
|
return /*#__PURE__*/_react.default.createElement(_uiFormField.FormFieldGroup, {
|
|
164
164
|
messages: this.getError('onSelf'),
|
|
@@ -166,7 +166,6 @@ var ItemEdit = /*#__PURE__*/function (_Component) {
|
|
|
166
166
|
name: "edit_item_".concat(this.props.guid) // eslint-disable-line react/jsx-no-literals
|
|
167
167
|
|
|
168
168
|
}, /*#__PURE__*/_react.default.createElement(Interaction, Object.assign({}, propsForInteraction, {
|
|
169
|
-
interactionType: interactionType,
|
|
170
169
|
itemId: this.props.guid,
|
|
171
170
|
renderImportModal: this.renderImportModal
|
|
172
171
|
})));
|
|
@@ -7,6 +7,13 @@ exports.convertFITBtoRich = convertFITBtoRich;
|
|
|
7
7
|
|
|
8
8
|
var _immutable = require("immutable");
|
|
9
9
|
|
|
10
|
+
// https://stackoverflow.com/questions/18749591/encode-html-entities-in-javascript
|
|
11
|
+
function htmlEncode(input) {
|
|
12
|
+
return input.replace(/[\u00A0-\u9999<>&]/g, function (i) {
|
|
13
|
+
return '&#' + i.charCodeAt(0) + ';';
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
10
17
|
function convertFITBtoRich(interactionTypeData, richFITBInteractionID) {
|
|
11
18
|
var interactionData = interactionTypeData.interactionData,
|
|
12
19
|
scoringData = interactionTypeData.scoringData;
|
|
@@ -15,12 +22,13 @@ function convertFITBtoRich(interactionTypeData, richFITBInteractionID) {
|
|
|
15
22
|
});
|
|
16
23
|
var workingItemBody = sortedStemItems.reduce(function (itemBody, stemItem) {
|
|
17
24
|
if (stemItem.get('type') === 'text') {
|
|
18
|
-
return itemBody + stemItem.get('value', '');
|
|
25
|
+
return itemBody + htmlEncode(stemItem.get('value', ''));
|
|
19
26
|
} else {
|
|
20
27
|
var blankScoringData = scoringData.get('value', (0, _immutable.List)()).find(function (blank) {
|
|
21
28
|
return blank.get('id') === stemItem.get('blankId');
|
|
22
29
|
}) || (0, _immutable.Map)();
|
|
23
|
-
|
|
30
|
+
var blankText = blankScoringData.getIn(['scoringData', 'blankText'], '');
|
|
31
|
+
return itemBody + "`".concat(htmlEncode(blankText), "`");
|
|
24
32
|
}
|
|
25
33
|
}, '');
|
|
26
34
|
return Object.assign({}, interactionTypeData, {
|
|
@@ -55,6 +55,7 @@ var propsForInteractionEdit = function propsForInteractionEdit(props, additional
|
|
|
55
55
|
calculator: !props.showCalculator
|
|
56
56
|
},
|
|
57
57
|
interactionData: item.interactionData,
|
|
58
|
+
interactionType: props.entry.getInteractionType(),
|
|
58
59
|
// SHIM: canvas-rce breaks on null values now
|
|
59
60
|
// this is a shim until canvas-rce deals with
|
|
60
61
|
// null values better
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "17.32.1-rc.
|
|
3
|
+
"version": "17.32.1-rc.8+f9cc0e3f1",
|
|
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.32.1-rc.
|
|
45
|
-
"@instructure/quiz-i18n": "17.32.1-rc.
|
|
46
|
-
"@instructure/quiz-interactions": "17.32.1-rc.
|
|
47
|
-
"@instructure/quiz-number-input": "17.32.1-rc.
|
|
48
|
-
"@instructure/quiz-rce": "17.32.1-rc.
|
|
44
|
+
"@instructure/quiz-common": "17.32.1-rc.8+f9cc0e3f1",
|
|
45
|
+
"@instructure/quiz-i18n": "17.32.1-rc.8+f9cc0e3f1",
|
|
46
|
+
"@instructure/quiz-interactions": "17.32.1-rc.8+f9cc0e3f1",
|
|
47
|
+
"@instructure/quiz-number-input": "17.32.1-rc.8+f9cc0e3f1",
|
|
48
|
+
"@instructure/quiz-rce": "17.32.1-rc.8+f9cc0e3f1",
|
|
49
49
|
"@instructure/ui-a11y-content": "^7.11.0",
|
|
50
50
|
"@instructure/ui-alerts": "^7.11.0",
|
|
51
51
|
"@instructure/ui-avatar": "^7.11.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.32.1-rc.
|
|
109
|
+
"instructure-validations": "17.32.1-rc.8+f9cc0e3f1",
|
|
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.32.1-rc.
|
|
140
|
+
"@instructure/quiz-scripts": "17.32.1-rc.8+f9cc0e3f1",
|
|
141
141
|
"@instructure/ui-axe-check": "^7.11.0",
|
|
142
142
|
"@instructure/ui-babel-preset": "^7.11.0",
|
|
143
143
|
"@instructure/ui-karma-config": "^7.11.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.32.1-rc.
|
|
159
|
+
"quiz-presets": "17.32.1-rc.8+f9cc0e3f1",
|
|
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": "f9cc0e3f12a6f14e730a5d938724fce4a03da800"
|
|
176
176
|
}
|