@pie-element/match 4.7.2 → 4.7.3-next.1008
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 +184 -0
- package/configure/CHANGELOG.md +170 -0
- package/configure/lib/add-row.js +1 -1
- package/configure/lib/add-row.js.map +1 -1
- package/configure/lib/answer-config-block.js +151 -35
- package/configure/lib/answer-config-block.js.map +1 -1
- package/configure/lib/common.js +46 -0
- package/configure/lib/common.js.map +1 -0
- package/configure/lib/configure.js +49 -10
- package/configure/lib/configure.js.map +1 -1
- package/configure/lib/defaults.js +19 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/general-config-block.js +81 -31
- package/configure/lib/general-config-block.js.map +1 -1
- package/configure/lib/index.js +4 -4
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/row.js +109 -21
- package/configure/lib/row.js.map +1 -1
- package/configure/package.json +4 -4
- package/configure/utils.js +11 -0
- package/controller/CHANGELOG.md +16 -0
- package/controller/lib/index.js +37 -3
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/docs/config-schema.json +94 -0
- package/docs/config-schema.json.md +73 -1
- package/docs/demo/generate.js +1 -0
- package/docs/pie-schema.json +42 -0
- package/docs/pie-schema.json.md +35 -0
- package/lib/answer-grid.js +9 -10
- package/lib/answer-grid.js.map +1 -1
- package/lib/index.js +7 -2
- package/lib/index.js.map +1 -1
- package/lib/main.js +11 -17
- package/lib/main.js.map +1 -1
- package/package.json +5 -5
- package/module/configure.js +0 -1776
- package/module/controller.js +0 -21219
- package/module/demo.js +0 -75
- package/module/element.js +0 -591
- package/module/index.html +0 -16
- package/module/manifest.json +0 -10
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
12
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
15
|
|
|
14
16
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -31,8 +33,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
31
33
|
|
|
32
34
|
var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
33
35
|
|
|
34
|
-
var _Input = _interopRequireDefault(require("@material-ui/core/Input"));
|
|
35
|
-
|
|
36
36
|
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
37
37
|
|
|
38
38
|
var _styles = require("@material-ui/core/styles");
|
|
@@ -41,19 +41,25 @@ var _addRow = _interopRequireDefault(require("./add-row"));
|
|
|
41
41
|
|
|
42
42
|
var _row = _interopRequireDefault(require("./row"));
|
|
43
43
|
|
|
44
|
-
var _drag = require("@pie-lib/drag");
|
|
45
|
-
|
|
46
44
|
var _debug = _interopRequireDefault(require("debug"));
|
|
47
45
|
|
|
48
46
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
49
47
|
|
|
50
|
-
|
|
48
|
+
var _editableHtml = _interopRequireWildcard(require("@pie-lib/editable-html"));
|
|
49
|
+
|
|
50
|
+
var _common = require("./common");
|
|
51
51
|
|
|
52
|
-
function
|
|
52
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
53
|
+
|
|
54
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
55
|
+
|
|
56
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
57
|
+
|
|
58
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
53
59
|
|
|
54
60
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
55
61
|
|
|
56
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
62
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
57
63
|
|
|
58
64
|
var log = (0, _debug["default"])('pie-elements:match:configure');
|
|
59
65
|
|
|
@@ -73,7 +79,12 @@ var styles = function styles(theme) {
|
|
|
73
79
|
rowItem: {
|
|
74
80
|
flex: 1,
|
|
75
81
|
display: 'flex',
|
|
76
|
-
justifyContent: 'center'
|
|
82
|
+
justifyContent: 'center',
|
|
83
|
+
'&> div': {
|
|
84
|
+
width: '150px',
|
|
85
|
+
padding: '12px',
|
|
86
|
+
textAlign: 'center'
|
|
87
|
+
}
|
|
77
88
|
},
|
|
78
89
|
deleteIcon: {
|
|
79
90
|
flex: 0.5,
|
|
@@ -82,7 +93,14 @@ var styles = function styles(theme) {
|
|
|
82
93
|
questionText: {
|
|
83
94
|
flex: 2,
|
|
84
95
|
display: 'flex',
|
|
85
|
-
justifyContent: 'flex-start'
|
|
96
|
+
justifyContent: 'flex-start',
|
|
97
|
+
'&> div': {
|
|
98
|
+
width: '100%',
|
|
99
|
+
padding: 0,
|
|
100
|
+
maxWidth: 'unset',
|
|
101
|
+
textAlign: 'left',
|
|
102
|
+
minWidth: '350px'
|
|
103
|
+
}
|
|
86
104
|
},
|
|
87
105
|
rowTable: {
|
|
88
106
|
display: 'flex',
|
|
@@ -95,8 +113,14 @@ var styles = function styles(theme) {
|
|
|
95
113
|
width: '100%'
|
|
96
114
|
},
|
|
97
115
|
headerInput: {
|
|
98
|
-
|
|
99
|
-
|
|
116
|
+
'&> div': {
|
|
117
|
+
fontWeight: 'bold'
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
errorText: {
|
|
121
|
+
fontSize: '12px',
|
|
122
|
+
color: 'red',
|
|
123
|
+
paddingTop: '5px'
|
|
100
124
|
}
|
|
101
125
|
};
|
|
102
126
|
};
|
|
@@ -116,6 +140,11 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
116
140
|
}
|
|
117
141
|
|
|
118
142
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
143
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
144
|
+
dialog: {
|
|
145
|
+
open: false
|
|
146
|
+
}
|
|
147
|
+
});
|
|
119
148
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveRow", function (from, to) {
|
|
120
149
|
var _this$props = _this.props,
|
|
121
150
|
model = _this$props.model,
|
|
@@ -123,9 +152,25 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
123
152
|
|
|
124
153
|
var newModel = _objectSpread({}, model);
|
|
125
154
|
|
|
126
|
-
var rows = newModel.rows;
|
|
155
|
+
var rows = newModel.rows || [];
|
|
127
156
|
log('[moveRow]: ', from, to);
|
|
128
|
-
|
|
157
|
+
|
|
158
|
+
var _rows$reduce = rows.reduce(function (acc, item, index) {
|
|
159
|
+
if (index === from) {
|
|
160
|
+
acc.movedRow = item;
|
|
161
|
+
} else {
|
|
162
|
+
acc.remainingRows.push(item);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return acc;
|
|
166
|
+
}, {
|
|
167
|
+
movedRow: null,
|
|
168
|
+
remainingRows: []
|
|
169
|
+
}),
|
|
170
|
+
movedRow = _rows$reduce.movedRow,
|
|
171
|
+
remainingRows = _rows$reduce.remainingRows;
|
|
172
|
+
|
|
173
|
+
var update = [].concat((0, _toConsumableArray2["default"])(remainingRows.slice(0, to)), [movedRow], (0, _toConsumableArray2["default"])(remainingRows.slice(to)));
|
|
129
174
|
log('update: ', update);
|
|
130
175
|
newModel.rows = update;
|
|
131
176
|
onChange(newModel);
|
|
@@ -150,15 +195,45 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
150
195
|
};
|
|
151
196
|
});
|
|
152
197
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onHeaderChange", function (headerIndex) {
|
|
153
|
-
return function (
|
|
198
|
+
return function (value) {
|
|
154
199
|
var _this$props3 = _this.props,
|
|
155
200
|
model = _this$props3.model,
|
|
156
201
|
onChange = _this$props3.onChange;
|
|
157
202
|
|
|
158
203
|
var newModel = _objectSpread({}, model);
|
|
159
204
|
|
|
160
|
-
|
|
161
|
-
|
|
205
|
+
if (headerIndex === 0) {
|
|
206
|
+
newModel.headers[headerIndex] = value;
|
|
207
|
+
onChange(newModel);
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
var headers = newModel.headers || [];
|
|
212
|
+
var currentHeader = headers[headerIndex];
|
|
213
|
+
var sameValue = headers.filter(function (header) {
|
|
214
|
+
var wasChanged = currentHeader !== value && "<div>".concat(currentHeader, "</div>") !== value;
|
|
215
|
+
var sameValueEntered = header === value || "<div>".concat(header, "</div>") === value;
|
|
216
|
+
return wasChanged && sameValueEntered;
|
|
217
|
+
});
|
|
218
|
+
var empty = value === '<div></div>';
|
|
219
|
+
|
|
220
|
+
if (sameValue.length || empty) {
|
|
221
|
+
_this.setState({
|
|
222
|
+
dialog: {
|
|
223
|
+
open: true,
|
|
224
|
+
onOk: function onOk() {
|
|
225
|
+
_this.setState({
|
|
226
|
+
dialog: {
|
|
227
|
+
open: false
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
} else {
|
|
234
|
+
newModel.headers[headerIndex] = value;
|
|
235
|
+
onChange(newModel);
|
|
236
|
+
}
|
|
162
237
|
};
|
|
163
238
|
});
|
|
164
239
|
return _this;
|
|
@@ -174,34 +249,65 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
174
249
|
model = _this$props4.model,
|
|
175
250
|
onAddRow = _this$props4.onAddRow,
|
|
176
251
|
imageSupport = _this$props4.imageSupport,
|
|
177
|
-
configuration = _this$props4.configuration
|
|
252
|
+
configuration = _this$props4.configuration,
|
|
253
|
+
toolbarOpts = _this$props4.toolbarOpts,
|
|
254
|
+
spellCheck = _this$props4.spellCheck;
|
|
178
255
|
|
|
179
256
|
var _ref2 = configuration || {},
|
|
180
257
|
_ref2$headers = _ref2.headers,
|
|
181
|
-
headers = _ref2$headers === void 0 ? {} : _ref2$headers
|
|
182
|
-
|
|
258
|
+
headers = _ref2$headers === void 0 ? {} : _ref2$headers,
|
|
259
|
+
_ref2$maxImageWidth = _ref2.maxImageWidth,
|
|
260
|
+
maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
|
|
261
|
+
_ref2$maxImageHeight = _ref2.maxImageHeight,
|
|
262
|
+
maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight;
|
|
263
|
+
|
|
264
|
+
var dialog = this.state.dialog;
|
|
265
|
+
|
|
266
|
+
var _ref3 = model || {},
|
|
267
|
+
errors = _ref3.errors;
|
|
268
|
+
|
|
269
|
+
var _ref4 = errors || {},
|
|
270
|
+
correctResponseError = _ref4.correctResponseError,
|
|
271
|
+
rowsErrors = _ref4.rowsErrors;
|
|
272
|
+
|
|
273
|
+
var filteredDefaultPlugins = (_editableHtml.DEFAULT_PLUGINS || []).filter(function (p) {
|
|
274
|
+
return p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list';
|
|
275
|
+
});
|
|
276
|
+
var labelPlugins = {
|
|
277
|
+
audio: {
|
|
278
|
+
disabled: true
|
|
279
|
+
},
|
|
280
|
+
video: {
|
|
281
|
+
disabled: true
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
285
|
+
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
183
286
|
return /*#__PURE__*/React.createElement("div", {
|
|
184
287
|
className: classes.container
|
|
185
288
|
}, /*#__PURE__*/React.createElement(_Typography["default"], {
|
|
186
289
|
type: "body1",
|
|
187
290
|
component: "div"
|
|
188
|
-
}, "Click on the labels to edit or remove. Set the correct answers by clicking each correct answer per row."), /*#__PURE__*/React.createElement("div", {
|
|
291
|
+
}, "Click on the labels to edit or remove. Set the correct answers by clicking each correct answer per row."), correctResponseError && /*#__PURE__*/React.createElement("div", {
|
|
292
|
+
className: classes.errorText
|
|
293
|
+
}, correctResponseError), /*#__PURE__*/React.createElement("div", {
|
|
189
294
|
className: classes.rowTable
|
|
190
295
|
}, /*#__PURE__*/React.createElement("div", {
|
|
191
296
|
className: classes.rowContainer
|
|
192
|
-
}, headers.settings && model.headers.map(function (header, idx) {
|
|
297
|
+
}, headers.settings && (model.headers || []).map(function (header, idx) {
|
|
193
298
|
return /*#__PURE__*/React.createElement("div", {
|
|
194
299
|
key: idx,
|
|
195
300
|
className: (0, _classnames["default"])(classes.rowItem, (0, _defineProperty2["default"])({}, classes.questionText, idx === 0))
|
|
196
|
-
}, /*#__PURE__*/React.createElement(
|
|
197
|
-
type: "text",
|
|
198
|
-
disableUnderline: true,
|
|
199
|
-
classes: idx === 0 ? null : {
|
|
200
|
-
input: classes.headerInput
|
|
201
|
-
},
|
|
301
|
+
}, /*#__PURE__*/React.createElement(_editableHtml["default"], {
|
|
202
302
|
onChange: _this2.onHeaderChange(idx),
|
|
203
|
-
|
|
204
|
-
|
|
303
|
+
markup: header,
|
|
304
|
+
className: classes.headerInput,
|
|
305
|
+
label: 'column label',
|
|
306
|
+
activePlugins: filteredDefaultPlugins,
|
|
307
|
+
pluginProps: labelPlugins,
|
|
308
|
+
autoWidthToolbar: true,
|
|
309
|
+
allowValidation: true,
|
|
310
|
+
spellCheck: spellCheck
|
|
205
311
|
}));
|
|
206
312
|
}), /*#__PURE__*/React.createElement("div", {
|
|
207
313
|
className: classes.deleteIcon
|
|
@@ -219,11 +325,20 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
219
325
|
onChange: _this2.props.onChange,
|
|
220
326
|
onMoveRow: _this2.moveRow,
|
|
221
327
|
imageSupport: imageSupport,
|
|
222
|
-
enableImages: model.enableImages
|
|
328
|
+
enableImages: model.enableImages,
|
|
329
|
+
toolbarOpts: toolbarOpts,
|
|
330
|
+
spellCheck: spellCheck,
|
|
331
|
+
error: rowsErrors && rowsErrors[row.id],
|
|
332
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rowTitles || defaultImageMaxWidth,
|
|
333
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rowTitles || defaultImageMaxHeight
|
|
223
334
|
});
|
|
224
335
|
}), /*#__PURE__*/React.createElement(_addRow["default"], {
|
|
225
336
|
onAddClick: onAddRow
|
|
226
|
-
}))
|
|
337
|
+
})), /*#__PURE__*/React.createElement(_common.InfoDialog, {
|
|
338
|
+
title: 'The column headings must be non-blank and unique.',
|
|
339
|
+
open: dialog.open,
|
|
340
|
+
onOk: dialog.onOk
|
|
341
|
+
}));
|
|
227
342
|
}
|
|
228
343
|
}]);
|
|
229
344
|
return AnswerConfigBlock;
|
|
@@ -239,10 +354,11 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
239
354
|
imageSupport: _propTypes["default"].shape({
|
|
240
355
|
add: _propTypes["default"].func.isRequired,
|
|
241
356
|
"delete": _propTypes["default"].func.isRequired
|
|
242
|
-
})
|
|
357
|
+
}),
|
|
358
|
+
toolbarOpts: _propTypes["default"].object
|
|
243
359
|
});
|
|
244
360
|
|
|
245
|
-
var _default = (0,
|
|
361
|
+
var _default = (0, _styles.withStyles)(styles)(AnswerConfigBlock);
|
|
246
362
|
|
|
247
363
|
exports["default"] = _default;
|
|
248
364
|
//# sourceMappingURL=answer-config-block.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/answer-config-block.jsx"],"names":["log","styles","theme","container","marginTop","spacing","unit","display","flexDirection","rowContainer","alignItems","flex","rowItem","justifyContent","deleteIcon","minWidth","questionText","rowTable","separator","border","borderTop","width","headerInput","textAlign","maxWidth","AnswerConfigBlock","from","to","props","model","onChange","newModel","rows","update","name","isBoolean","target","value","checked","lodash","set","headerIndex","event","headers","classes","onAddRow","imageSupport","configuration","settings","map","header","idx","input","onHeaderChange","row","onDeleteRow","moveRow","enableImages","React","Component","PropTypes","object","isRequired","func","shape","add"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,8BAAN,CAAZ;;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBC,IAAAA,SAAS,EAAE;AACTC,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAETC,MAAAA,OAAO,EAAE,MAFA;AAGTC,MAAAA,aAAa,EAAE;AAHN,KADY;AAMvBC,IAAAA,YAAY,EAAE;AACZL,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADpB;AAEZC,MAAAA,OAAO,EAAE,MAFG;AAGZG,MAAAA,UAAU,EAAE,QAHA;AAIZC,MAAAA,IAAI,EAAE;AAJM,KANS;AAYvBC,IAAAA,OAAO,EAAE;AACPD,MAAAA,IAAI,EAAE,CADC;AAEPJ,MAAAA,OAAO,EAAE,MAFF;AAGPM,MAAAA,cAAc,EAAE;AAHT,KAZc;AAiBvBC,IAAAA,UAAU,EAAE;AACVH,MAAAA,IAAI,EAAE,GADI;AAEVI,MAAAA,QAAQ,EAAE;AAFA,KAjBW;AAqBvBC,IAAAA,YAAY,EAAE;AACZL,MAAAA,IAAI,EAAE,CADM;AAEZJ,MAAAA,OAAO,EAAE,MAFG;AAGZM,MAAAA,cAAc,EAAE;AAHJ,KArBS;AA0BvBI,IAAAA,QAAQ,EAAE;AACRV,MAAAA,OAAO,EAAE,MADD;AAERC,MAAAA,aAAa,EAAE;AAFP,KA1Ba;AA8BvBU,IAAAA,SAAS,EAAE;AACTd,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAETa,MAAAA,MAAM,EAAE,CAFC;AAGTC,MAAAA,SAAS,EAAE,qBAHF;AAITC,MAAAA,KAAK,EAAE;AAJE,KA9BY;AAoCvBC,IAAAA,WAAW,EAAE;AACXC,MAAAA,SAAS,EAAE,QADA;AAEXC,MAAAA,QAAQ,EAAE;AAFC;AApCU,GAAL;AAAA,CAApB;;IA0CMC,iB;;;;;;;;;;;;;;;gGAcM,UAACC,IAAD,EAAOC,EAAP,EAAc;AAAA,wBACM,MAAKC,KADX;AAAA,UACdC,KADc,eACdA,KADc;AAAA,UACPC,QADO,eACPA,QADO;;AAEtB,UAAMC,QAAQ,qBAAQF,KAAR,CAAd;;AACA,UAAMG,IAAI,GAAGD,QAAQ,CAACC,IAAtB;AAEAhC,MAAAA,GAAG,CAAC,aAAD,EAAgB0B,IAAhB,EAAsBC,EAAtB,CAAH;AAEA,UAAMM,MAAM,GAAG,gBAAKD,IAAL,EAAWN,IAAX,EAAiBC,EAAjB,CAAf;AAEA3B,MAAAA,GAAG,CAAC,UAAD,EAAaiC,MAAb,CAAH;AAEAF,MAAAA,QAAQ,CAACC,IAAT,GAAgBC,MAAhB;AAEAH,MAAAA,QAAQ,CAACC,QAAD,CAAR;AACD,K;iGAEU,UAACG,IAAD,EAAOC,SAAP;AAAA,aAAqB,gBAAgB;AAAA,YAAbC,MAAa,QAAbA,MAAa;AAAA,2BAClB,MAAKR,KADa;AAAA,YACtCC,KADsC,gBACtCA,KADsC;AAAA,YAC/BC,QAD+B,gBAC/BA,QAD+B;AAE9C,YAAIO,KAAJ;;AAEA,YAAIF,SAAJ,EAAe;AACbE,UAAAA,KAAK,GAAGD,MAAM,CAACE,OAAf;AACD,SAFD,MAEO;AACLD,UAAAA,KAAK,GAAGD,MAAM,CAACC,KAAf;AACD;;AAEDE,2BAAOC,GAAP,CAAWX,KAAX,EAAkBK,IAAlB,EAAwBG,KAAxB;;AACAP,QAAAA,QAAQ,CAACD,KAAD,EAAQK,IAAR,CAAR;AACD,OAZU;AAAA,K;uGAcM,UAAAO,WAAW;AAAA,aAAI,UAAAC,KAAK,EAAI;AAAA,2BACX,MAAKd,KADM;AAAA,YAC/BC,KAD+B,gBAC/BA,KAD+B;AAAA,YACxBC,QADwB,gBACxBA,QADwB;;AAEvC,YAAMC,QAAQ,qBAAQF,KAAR,CAAd;;AAEAE,QAAAA,QAAQ,CAACY,OAAT,CAAiBF,WAAjB,IAAgCC,KAAK,CAACN,MAAN,CAAaC,KAA7C;AAEAP,QAAAA,QAAQ,CAACC,QAAD,CAAR;AACD,OAP2B;AAAA,K;;;;;;WAS5B,kBAAS;AAAA;;AAAA,yBAOH,KAAKH,KAPF;AAAA,UAELgB,OAFK,gBAELA,OAFK;AAAA,UAGLf,KAHK,gBAGLA,KAHK;AAAA,UAILgB,QAJK,gBAILA,QAJK;AAAA,UAKLC,YALK,gBAKLA,YALK;AAAA,UAMLC,aANK,gBAMLA,aANK;;AAAA,kBAQkBA,aAAa,IAAI,EARnC;AAAA,gCAQCJ,OARD;AAAA,UAQCA,OARD,8BAQW,EARX;;AAUP,0BACE;AAAK,QAAA,SAAS,EAAEC,OAAO,CAACzC;AAAxB,sBACE,oBAAC,sBAAD;AAAY,QAAA,IAAI,EAAC,OAAjB;AAAyB,QAAA,SAAS,EAAC;AAAnC,mHADF,eAKE;AAAK,QAAA,SAAS,EAAEyC,OAAO,CAAC3B;AAAxB,sBACE;AAAK,QAAA,SAAS,EAAE2B,OAAO,CAACnC;AAAxB,SACGkC,OAAO,CAACK,QAAR,IACCnB,KAAK,CAACc,OAAN,CAAcM,GAAd,CAAkB,UAACC,MAAD,EAASC,GAAT;AAAA,4BAChB;AACE,UAAA,GAAG,EAAEA,GADP;AAEE,UAAA,SAAS,EAAE,4BAAGP,OAAO,CAAChC,OAAX,uCACRgC,OAAO,CAAC5B,YADA,EACemC,GAAG,KAAK,CADvB;AAFb,wBAME,oBAAC,iBAAD;AACE,UAAA,IAAI,EAAC,MADP;AAEE,UAAA,gBAAgB,MAFlB;AAGE,UAAA,OAAO,EAAEA,GAAG,KAAK,CAAR,GAAY,IAAZ,GAAmB;AAAEC,YAAAA,KAAK,EAAER,OAAO,CAACtB;AAAjB,WAH9B;AAIE,UAAA,QAAQ,EAAE,MAAI,CAAC+B,cAAL,CAAoBF,GAApB,CAJZ;AAKE,UAAA,KAAK,EAAED,MALT;AAME,UAAA,WAAW,EAAC;AANd,UANF,CADgB;AAAA,OAAlB,CAFJ,eAmBE;AAAK,QAAA,SAAS,EAAEN,OAAO,CAAC9B;AAAxB,sBACE,oBAAC,kBAAD;AAAQ,QAAA,QAAQ;AAAhB,sBACE,gCADF,CADF,CAnBF,CADF,eA0BE;AAAI,QAAA,SAAS,EAAE8B,OAAO,CAAC1B;AAAvB,QA1BF,EA2BGW,KAAK,CAACG,IAAN,CAAWiB,GAAX,CAAe,UAACK,GAAD,EAAMH,GAAN;AAAA,4BACd,oBAAC,eAAD;AACE,UAAA,GAAG,EAAEA,GADP;AAEE,UAAA,KAAK,EAAEtB,KAFT;AAGE,UAAA,GAAG,EAAEyB,GAHP;AAIE,UAAA,GAAG,EAAEH,GAJP;AAKE,UAAA,WAAW,EAAE,MAAI,CAACvB,KAAL,CAAW2B,WAL1B;AAME,UAAA,QAAQ,EAAE,MAAI,CAAC3B,KAAL,CAAWE,QANvB;AAOE,UAAA,SAAS,EAAE,MAAI,CAAC0B,OAPlB;AAQE,UAAA,YAAY,EAAEV,YARhB;AASE,UAAA,YAAY,EAAEjB,KAAK,CAAC4B;AATtB,UADc;AAAA,OAAf,CA3BH,eAwCE,oBAAC,kBAAD;AAAQ,QAAA,UAAU,EAAEZ;AAApB,QAxCF,CALF,CADF;AAkDD;;;EAjH6Ba,KAAK,CAACC,S;;iCAAhClC,iB,eACe;AACjBmB,EAAAA,OAAO,EAAEgB,sBAAUC,MAAV,CAAiBC,UADT;AAEjBjC,EAAAA,KAAK,EAAE+B,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBf,EAAAA,aAAa,EAAEa,sBAAUC,MAAV,CAAiBC,UAHf;AAIjBhC,EAAAA,QAAQ,EAAE8B,sBAAUG,IAAV,CAAeD,UAJR;AAKjBP,EAAAA,WAAW,EAAEK,sBAAUG,IAAV,CAAeD,UALX;AAMjBjB,EAAAA,QAAQ,EAAEe,sBAAUG,IAAV,CAAeD,UANR;AAOjBhB,EAAAA,YAAY,EAAEc,sBAAUI,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEL,sBAAUG,IAAV,CAAeD,UADQ;AAE5B,cAAQF,sBAAUG,IAAV,CAAeD;AAFK,GAAhB;AAPG,C;;eAmHN,2BAAgB,wBAAW7D,MAAX,EAAmBwB,iBAAnB,CAAhB,C","sourcesContent":["import * as React from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Input from '@material-ui/core/Input';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport AddRow from './add-row';\nimport Row from './row';\nimport { swap, withDragContext } from '@pie-lib/drag';\nimport debug from 'debug';\nimport lodash from 'lodash';\n\nconst log = debug('pie-elements:match:configure');\n\nconst styles = theme => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column'\n },\n rowContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n alignItems: 'center',\n flex: 1\n },\n rowItem: {\n flex: 1,\n display: 'flex',\n justifyContent: 'center'\n },\n deleteIcon: {\n flex: 0.5,\n minWidth: '88px'\n },\n questionText: {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start'\n },\n rowTable: {\n display: 'flex',\n flexDirection: 'column'\n },\n separator: {\n marginTop: theme.spacing.unit * 2,\n border: 0,\n borderTop: '2px solid lightgray',\n width: '100%'\n },\n headerInput: {\n textAlign: 'center',\n maxWidth: '100px'\n }\n});\n\nclass AnswerConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n onAddRow: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n moveRow = (from, to) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n const rows = newModel.rows;\n\n log('[moveRow]: ', from, to);\n\n const update = swap(rows, from, to);\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n };\n\n onChange = (name, isBoolean) => ({ target }) => {\n const { model, onChange } = this.props;\n let value;\n\n if (isBoolean) {\n value = target.checked;\n } else {\n value = target.value;\n }\n\n lodash.set(model, name, value);\n onChange(model, name);\n };\n\n onHeaderChange = headerIndex => event => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n newModel.headers[headerIndex] = event.target.value;\n\n onChange(newModel);\n };\n\n render() {\n const {\n classes,\n model,\n onAddRow,\n imageSupport,\n configuration\n } = this.props;\n const { headers = {} } = configuration || {};\n\n return (\n <div className={classes.container}>\n <Typography type=\"body1\" component=\"div\">\n Click on the labels to edit or remove. Set the correct answers by\n clicking each correct answer per row.\n </Typography>\n <div className={classes.rowTable}>\n <div className={classes.rowContainer}>\n {headers.settings &&\n model.headers.map((header, idx) => (\n <div\n key={idx}\n className={cx(classes.rowItem, {\n [classes.questionText]: idx === 0\n })}\n >\n <Input\n type=\"text\"\n disableUnderline\n classes={idx === 0 ? null : { input: classes.headerInput }}\n onChange={this.onHeaderChange(idx)}\n value={header}\n placeholder=\"Enter Value\"\n />\n </div>\n ))}\n <div className={classes.deleteIcon}>\n <Button disabled>\n <div />\n </Button>\n </div>\n </div>\n <hr className={classes.separator} />\n {model.rows.map((row, idx) => (\n <Row\n key={idx}\n model={model}\n row={row}\n idx={idx}\n onDeleteRow={this.props.onDeleteRow}\n onChange={this.props.onChange}\n onMoveRow={this.moveRow}\n imageSupport={imageSupport}\n enableImages={model.enableImages}\n />\n ))}\n <AddRow onAddClick={onAddRow} />\n </div>\n </div>\n );\n }\n}\n\nexport default withDragContext(withStyles(styles)(AnswerConfigBlock));\n"],"file":"answer-config-block.js"}
|
|
1
|
+
{"version":3,"sources":["../src/answer-config-block.jsx"],"names":["log","styles","theme","container","marginTop","spacing","unit","display","flexDirection","rowContainer","alignItems","flex","rowItem","justifyContent","width","padding","textAlign","deleteIcon","minWidth","questionText","maxWidth","rowTable","separator","border","borderTop","headerInput","fontWeight","errorText","fontSize","color","paddingTop","AnswerConfigBlock","dialog","open","from","to","props","model","onChange","newModel","rows","reduce","acc","item","index","movedRow","remainingRows","push","update","slice","name","isBoolean","target","value","checked","lodash","set","headerIndex","headers","currentHeader","sameValue","filter","header","wasChanged","sameValueEntered","empty","length","setState","onOk","classes","onAddRow","imageSupport","configuration","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","state","errors","correctResponseError","rowsErrors","filteredDefaultPlugins","DEFAULT_PLUGINS","p","labelPlugins","audio","disabled","video","defaultImageMaxWidth","prompt","defaultImageMaxHeight","settings","map","idx","onHeaderChange","row","onDeleteRow","moveRow","enableImages","id","rowTitles","React","Component","PropTypes","object","isRequired","func","shape","add"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport AddRow from './add-row';\nimport Row from './row';\nimport debug from 'debug';\nimport lodash from 'lodash';\nimport EditableHTML, { DEFAULT_PLUGINS } from '@pie-lib/editable-html';\nimport { InfoDialog } from './common';\n\nconst log = debug('pie-elements:match:configure');\n\nconst styles = theme => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column'\n },\n rowContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n alignItems: 'center',\n flex: 1\n },\n rowItem: {\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n '&> div': {\n width: '150px',\n padding: '12px',\n textAlign: 'center'\n },\n },\n deleteIcon: {\n flex: 0.5,\n minWidth: '88px'\n },\n questionText: {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start',\n '&> div': {\n width: '100%',\n padding: 0,\n maxWidth: 'unset',\n textAlign: 'left',\n minWidth: '350px'\n }\n },\n rowTable: {\n display: 'flex',\n flexDirection: 'column'\n },\n separator: {\n marginTop: theme.spacing.unit * 2,\n border: 0,\n borderTop: '2px solid lightgray',\n width: '100%'\n },\n headerInput: {\n '&> div': {\n fontWeight: 'bold'\n }\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n paddingTop: '5px'\n }\n});\n\nclass AnswerConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n onAddRow: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n state = {\n dialog: {\n open: false\n }\n };\n\n moveRow = (from, to) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n const rows = newModel.rows || [];\n\n log('[moveRow]: ', from, to);\n\n const { movedRow, remainingRows } = rows.reduce(\n (acc, item, index) => {\n if (index === from) {\n acc.movedRow = item;\n } else {\n acc.remainingRows.push(item);\n }\n\n return acc;\n },\n { movedRow: null, remainingRows: [] }\n );\n\n const update = [\n ...remainingRows.slice(0, to),\n movedRow,\n ...remainingRows.slice(to)\n ];\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n };\n\n onChange = (name, isBoolean) => ({ target }) => {\n const { model, onChange } = this.props;\n let value;\n\n if (isBoolean) {\n value = target.checked;\n } else {\n value = target.value;\n }\n\n lodash.set(model, name, value);\n onChange(model, name);\n };\n\n onHeaderChange = headerIndex => value => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if(headerIndex === 0) {\n newModel.headers[headerIndex] = value;\n onChange(newModel);\n\n return;\n }\n\n const headers = newModel.headers || [];\n\n const currentHeader = headers[headerIndex];\n\n const sameValue = headers.filter(header => {\n const wasChanged = currentHeader !== value && `<div>${currentHeader}</div>` !== value;\n const sameValueEntered = header === value || `<div>${header}</div>` === value;\n\n return wasChanged && sameValueEntered;\n });\n\n const empty = value === '<div></div>';\n\n if (sameValue.length || empty) {\n this.setState({\n dialog: {\n open: true,\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false\n }\n }\n );\n }\n }\n });\n } else {\n newModel.headers[headerIndex] = value;\n\n onChange(newModel);\n }\n };\n\n render() {\n const {\n classes,\n model,\n onAddRow,\n imageSupport,\n configuration,\n toolbarOpts,\n spellCheck\n } = this.props;\n const { headers = {}, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const { dialog } = this.state;\n const { errors } = model || {};\n const { correctResponseError, rowsErrors } = errors || {};\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || [])\n .filter(p => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list');\n const labelPlugins = {\n audio: { disabled: true },\n video: { disabled: true }\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <div className={classes.container}>\n <Typography type=\"body1\" component=\"div\">\n Click on the labels to edit or remove. Set the correct answers by\n clicking each correct answer per row.\n </Typography>\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n <div className={classes.rowTable}>\n <div className={classes.rowContainer}>\n {headers.settings &&\n (model.headers || []).map((header, idx) => (\n <div\n key={idx}\n className={cx(classes.rowItem, {\n [classes.questionText]: idx === 0\n })}\n >\n <EditableHTML\n onChange={this.onHeaderChange(idx)}\n markup={header}\n className={classes.headerInput}\n label={'column label'}\n activePlugins={filteredDefaultPlugins}\n pluginProps={labelPlugins}\n autoWidthToolbar\n allowValidation\n spellCheck={spellCheck}\n />\n </div>\n ))}\n <div className={classes.deleteIcon}>\n <Button disabled>\n <div />\n </Button>\n </div>\n </div>\n <hr className={classes.separator} />\n {model.rows.map((row, idx) => (\n <Row\n key={idx}\n model={model}\n row={row}\n idx={idx}\n onDeleteRow={this.props.onDeleteRow}\n onChange={this.props.onChange}\n onMoveRow={this.moveRow}\n imageSupport={imageSupport}\n enableImages={model.enableImages}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={rowsErrors && rowsErrors[row.id]}\n maxImageWidth={maxImageWidth && maxImageWidth.rowTitles || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rowTitles || defaultImageMaxHeight}\n />\n ))}\n <AddRow onAddClick={onAddRow} />\n </div>\n <InfoDialog\n title={'The column headings must be non-blank and unique.'}\n open={dialog.open}\n onOk={dialog.onOk}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AnswerConfigBlock);\n"],"file":"answer-config-block.js"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.InfoDialog = void 0;
|
|
11
|
+
|
|
12
|
+
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
16
|
+
var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
|
|
17
|
+
|
|
18
|
+
var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle"));
|
|
19
|
+
|
|
20
|
+
var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
|
|
21
|
+
|
|
22
|
+
var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
23
|
+
|
|
24
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
+
|
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
+
|
|
28
|
+
var InfoDialog = function InfoDialog(_ref) {
|
|
29
|
+
var title = _ref.title,
|
|
30
|
+
open = _ref.open,
|
|
31
|
+
onOk = _ref.onOk;
|
|
32
|
+
return /*#__PURE__*/React.createElement(_Dialog["default"], {
|
|
33
|
+
open: open
|
|
34
|
+
}, /*#__PURE__*/React.createElement(_DialogTitle["default"], null, title), /*#__PURE__*/React.createElement(_DialogActions["default"], null, onOk && /*#__PURE__*/React.createElement(_Button["default"], {
|
|
35
|
+
onClick: onOk,
|
|
36
|
+
color: "primary"
|
|
37
|
+
}, "OK")));
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
exports.InfoDialog = InfoDialog;
|
|
41
|
+
InfoDialog.propTypes = {
|
|
42
|
+
title: _propTypes["default"].string,
|
|
43
|
+
open: _propTypes["default"].bool,
|
|
44
|
+
onOk: _propTypes["default"].func
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common.jsx"],"names":["InfoDialog","title","open","onOk","propTypes","PropTypes","string","bool","func"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;AAEO,IAAMA,UAAU,GAAG,SAAbA,UAAa;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,MAAUC,IAAV,QAAUA,IAAV;AAAA,MAAgBC,IAAhB,QAAgBA,IAAhB;AAAA,sBACxB,oBAAC,kBAAD;AAAQ,IAAA,IAAI,EAAED;AAAd,kBACE,oBAAC,uBAAD,QAAcD,KAAd,CADF,eAEE,oBAAC,yBAAD,QACGE,IAAI,iBACH,oBAAC,kBAAD;AAAQ,IAAA,OAAO,EAAEA,IAAjB;AAAuB,IAAA,KAAK,EAAC;AAA7B,UAFJ,CAFF,CADwB;AAAA,CAAnB;;;AAaPH,UAAU,CAACI,SAAX,GAAuB;AACrBH,EAAAA,KAAK,EAAEI,sBAAUC,MADI;AAErBJ,EAAAA,IAAI,EAAEG,sBAAUE,IAFK;AAGrBJ,EAAAA,IAAI,EAAEE,sBAAUG;AAHK,CAAvB","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\n\nexport const InfoDialog = ({ title, open, onOk }) => (\n <Dialog open={open}>\n <DialogTitle>{title}</DialogTitle>\n <DialogActions>\n {onOk && (\n <Button onClick={onOk} color=\"primary\">\n OK\n </Button>\n )}\n </DialogActions>\n </Dialog>\n);\n\nInfoDialog.propTypes = {\n title: PropTypes.string,\n open: PropTypes.bool,\n onOk: PropTypes.func,\n};\n"],"file":"common.js"}
|
|
@@ -29,6 +29,8 @@ var _configUi = require("@pie-lib/config-ui");
|
|
|
29
29
|
|
|
30
30
|
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
31
31
|
|
|
32
|
+
var _drag = require("@pie-lib/drag");
|
|
33
|
+
|
|
32
34
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
33
35
|
|
|
34
36
|
var _debug = _interopRequireDefault(require("debug"));
|
|
@@ -37,13 +39,13 @@ var _generalConfigBlock = _interopRequireDefault(require("./general-config-block
|
|
|
37
39
|
|
|
38
40
|
var _answerConfigBlock = _interopRequireDefault(require("./answer-config-block"));
|
|
39
41
|
|
|
40
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
42
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
41
43
|
|
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
44
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
43
45
|
|
|
44
46
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
47
|
|
|
46
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
48
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
47
49
|
|
|
48
50
|
var log = (0, _debug["default"])('@pie-element:match:configure');
|
|
49
51
|
var Panel = _configUi.settings.Panel,
|
|
@@ -230,14 +232,35 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
230
232
|
_ref$prompt = _ref.prompt,
|
|
231
233
|
prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
232
234
|
_ref$feedback = _ref.feedback,
|
|
233
|
-
feedback = _ref$feedback === void 0 ? {} : _ref$feedback
|
|
235
|
+
feedback = _ref$feedback === void 0 ? {} : _ref$feedback,
|
|
236
|
+
_ref$spellCheck = _ref.spellCheck,
|
|
237
|
+
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
|
|
238
|
+
_ref$maxImageWidth = _ref.maxImageWidth,
|
|
239
|
+
maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
|
|
240
|
+
_ref$maxImageHeight = _ref.maxImageHeight,
|
|
241
|
+
maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight;
|
|
234
242
|
|
|
235
243
|
var _ref2 = model || {},
|
|
236
244
|
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
237
245
|
promptEnabled = _ref2.promptEnabled,
|
|
238
246
|
rationaleEnabled = _ref2.rationaleEnabled,
|
|
247
|
+
spellCheckEnabled = _ref2.spellCheckEnabled,
|
|
239
248
|
feedbackEnabled = _ref2.feedbackEnabled;
|
|
240
249
|
|
|
250
|
+
var toolbarOpts = {};
|
|
251
|
+
|
|
252
|
+
switch (model.toolbarEditorPosition) {
|
|
253
|
+
case 'top':
|
|
254
|
+
toolbarOpts.position = 'top';
|
|
255
|
+
break;
|
|
256
|
+
|
|
257
|
+
default:
|
|
258
|
+
toolbarOpts.position = 'bottom';
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
263
|
+
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
241
264
|
log('[render] model', model);
|
|
242
265
|
return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
243
266
|
settings: /*#__PURE__*/_react["default"].createElement(Panel, {
|
|
@@ -261,6 +284,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
261
284
|
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
262
285
|
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
263
286
|
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
287
|
+
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
264
288
|
scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])
|
|
265
289
|
}
|
|
266
290
|
}
|
|
@@ -275,7 +299,11 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
275
299
|
markup: model.teacherInstructions || '',
|
|
276
300
|
onChange: this.onTeacherInstructionsChanged,
|
|
277
301
|
imageSupport: imageSupport,
|
|
278
|
-
nonEmpty: false
|
|
302
|
+
nonEmpty: false,
|
|
303
|
+
toolbarOpts: toolbarOpts,
|
|
304
|
+
spellCheck: spellCheckEnabled,
|
|
305
|
+
maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
|
|
306
|
+
maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight
|
|
279
307
|
})), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
280
308
|
label: prompt.label,
|
|
281
309
|
className: classes.promptHolder
|
|
@@ -285,7 +313,11 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
285
313
|
onChange: this.onPromptChanged,
|
|
286
314
|
imageSupport: imageSupport,
|
|
287
315
|
nonEmpty: false,
|
|
288
|
-
disableUnderline: true
|
|
316
|
+
disableUnderline: true,
|
|
317
|
+
toolbarOpts: toolbarOpts,
|
|
318
|
+
spellCheck: spellCheckEnabled,
|
|
319
|
+
maxImageWidth: maxImageWidth && maxImageWidth.prompt,
|
|
320
|
+
maxImageHeight: maxImageHeight && maxImageHeight.prompt
|
|
289
321
|
})), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
290
322
|
label: rationale.label,
|
|
291
323
|
className: classes.promptHolder
|
|
@@ -293,7 +325,11 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
293
325
|
className: classes.prompt,
|
|
294
326
|
markup: model.rationale || '',
|
|
295
327
|
onChange: this.onRationaleChanged,
|
|
296
|
-
imageSupport: imageSupport
|
|
328
|
+
imageSupport: imageSupport,
|
|
329
|
+
toolbarOpts: toolbarOpts,
|
|
330
|
+
spellCheck: spellCheckEnabled,
|
|
331
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
|
|
332
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight
|
|
297
333
|
})), /*#__PURE__*/_react["default"].createElement(_generalConfigBlock["default"], {
|
|
298
334
|
model: model,
|
|
299
335
|
configuration: configuration,
|
|
@@ -305,10 +341,13 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
305
341
|
imageSupport: imageSupport,
|
|
306
342
|
onChange: this.onChange,
|
|
307
343
|
onAddRow: this.onAddRow,
|
|
308
|
-
onDeleteRow: this.onDeleteRow
|
|
344
|
+
onDeleteRow: this.onDeleteRow,
|
|
345
|
+
toolbarOpts: toolbarOpts,
|
|
346
|
+
spellCheck: spellCheckEnabled
|
|
309
347
|
}), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
|
|
310
348
|
feedback: model.feedback,
|
|
311
|
-
onChange: this.onFeedbackChange
|
|
349
|
+
onChange: this.onFeedbackChange,
|
|
350
|
+
toolbarOpts: toolbarOpts
|
|
312
351
|
})));
|
|
313
352
|
}
|
|
314
353
|
}]);
|
|
@@ -332,7 +371,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
332
371
|
var Config = Configure;
|
|
333
372
|
exports.Config = Config;
|
|
334
373
|
|
|
335
|
-
var _default = (0, _styles.withStyles)(styles)(Configure);
|
|
374
|
+
var _default = (0, _drag.withDragContext)((0, _styles.withStyles)(styles)(Configure));
|
|
336
375
|
|
|
337
376
|
exports["default"] = _default;
|
|
338
377
|
//# sourceMappingURL=configure.js.map
|