@pie-element/match 7.9.1-next.1 → 7.9.1-next.11

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.
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.AddRowButton = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
+
22
+ var _react = _interopRequireDefault(require("react"));
23
+
24
+ var _propTypes = _interopRequireDefault(require("prop-types"));
25
+
26
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
27
+
28
+ var _styles = require("@material-ui/core/styles");
29
+
30
+ var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
31
+
32
+ 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); }; }
33
+
34
+ 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; } }
35
+
36
+ var AddRowButton = /*#__PURE__*/function (_React$Component) {
37
+ (0, _inherits2["default"])(AddRowButton, _React$Component);
38
+
39
+ var _super = _createSuper(AddRowButton);
40
+
41
+ function AddRowButton() {
42
+ (0, _classCallCheck2["default"])(this, AddRowButton);
43
+ return _super.apply(this, arguments);
44
+ }
45
+
46
+ (0, _createClass2["default"])(AddRowButton, [{
47
+ key: "render",
48
+ value: function render() {
49
+ var _this$props = this.props,
50
+ classes = _this$props.classes,
51
+ onAddClick = _this$props.onAddClick;
52
+ return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
53
+ className: classes.button,
54
+ disabled: false,
55
+ onClick: onAddClick
56
+ }, /*#__PURE__*/_react["default"].createElement(_Add["default"], {
57
+ className: classes.icon
58
+ }), "Add Another Row");
59
+ }
60
+ }]);
61
+ return AddRowButton;
62
+ }(_react["default"].Component);
63
+
64
+ exports.AddRowButton = AddRowButton;
65
+ (0, _defineProperty2["default"])(AddRowButton, "propTypes", {
66
+ classes: _propTypes["default"].object.isRequired,
67
+ onAddClick: _propTypes["default"].func.isRequired
68
+ });
69
+
70
+ var styles = function styles(theme) {
71
+ return {
72
+ button: {
73
+ display: 'flex',
74
+ alignSelf: 'flex-start',
75
+ margin: 0
76
+ },
77
+ icon: {
78
+ marginRight: theme.spacing.unit / 2
79
+ }
80
+ };
81
+ };
82
+
83
+ var _default = (0, _styles.withStyles)(styles)(AddRowButton);
84
+
85
+ exports["default"] = _default;
86
+ //# sourceMappingURL=add-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/add-row.jsx"],"names":["AddRowButton","props","classes","onAddClick","button","icon","React","Component","PropTypes","object","isRequired","func","styles","theme","display","alignSelf","margin","marginRight","spacing","unit"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,Y;;;;;;;;;;;;WAMX,kBAAS;AACP,wBAAgC,KAAKC,KAArC;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,UAAjB,eAAiBA,UAAjB;AAEA,0BACE,gCAAC,kBAAD;AAAQ,QAAA,SAAS,EAAED,OAAO,CAACE,MAA3B;AAAmC,QAAA,QAAQ,EAAE,KAA7C;AAAoD,QAAA,OAAO,EAAED;AAA7D,sBACE,gCAAC,eAAD;AAAW,QAAA,SAAS,EAAED,OAAO,CAACG;AAA9B,QADF,oBADF;AAMD;;;EAf+BC,kBAAMC,S;;;iCAA3BP,Y,eACQ;AACjBE,EAAAA,OAAO,EAAEM,sBAAUC,MAAV,CAAiBC,UADT;AAEjBP,EAAAA,UAAU,EAAEK,sBAAUG,IAAV,CAAeD;AAFV,C;;AAiBrB,IAAME,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBT,IAAAA,MAAM,EAAE;AACNU,MAAAA,OAAO,EAAE,MADH;AAENC,MAAAA,SAAS,EAAE,YAFL;AAGNC,MAAAA,MAAM,EAAE;AAHF,KADiB;AAMzBX,IAAAA,IAAI,EAAE;AACJY,MAAAA,WAAW,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB;AAD9B;AANmB,GAAZ;AAAA,CAAf;;eAWe,wBAAWP,MAAX,EAAmBZ,YAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core/styles';\nimport AddButton from '@material-ui/icons/Add';\n\nexport class AddRowButton extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n onAddClick: PropTypes.func.isRequired,\n };\n\n render() {\n const { classes, onAddClick } = this.props;\n\n return (\n <Button className={classes.button} disabled={false} onClick={onAddClick}>\n <AddButton className={classes.icon} />\n Add Another Row\n </Button>\n );\n }\n}\n\nconst styles = (theme) => ({\n button: {\n display: 'flex',\n alignSelf: 'flex-start',\n margin: 0,\n },\n icon: {\n marginRight: theme.spacing.unit / 2,\n },\n});\n\nexport default withStyles(styles)(AddRowButton);\n"],"file":"add-row.js"}
@@ -0,0 +1,362 @@
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["default"] = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
28
+ var _utils = require("./utils");
29
+
30
+ var React = _interopRequireWildcard(require("react"));
31
+
32
+ var _classnames = _interopRequireDefault(require("classnames"));
33
+
34
+ var _propTypes = _interopRequireDefault(require("prop-types"));
35
+
36
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
37
+
38
+ var _styles = require("@material-ui/core/styles");
39
+
40
+ var _addRow = _interopRequireDefault(require("./add-row"));
41
+
42
+ var _row = _interopRequireDefault(require("./row"));
43
+
44
+ var _debug = _interopRequireDefault(require("debug"));
45
+
46
+ var _lodash = _interopRequireDefault(require("lodash"));
47
+
48
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
49
+
50
+ 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); }
51
+
52
+ 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; }
53
+
54
+ 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; }
55
+
56
+ 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; }
57
+
58
+ 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); }; }
59
+
60
+ 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; } }
61
+
62
+ var log = (0, _debug["default"])('pie-elements:match:configure');
63
+
64
+ var styles = function styles(theme) {
65
+ return {
66
+ container: {
67
+ marginBottom: theme.spacing.unit * 2.5,
68
+ display: 'flex',
69
+ flexDirection: 'column'
70
+ },
71
+ rowContainer: {
72
+ display: 'flex',
73
+ alignItems: 'center',
74
+ flex: 1,
75
+ width: '100%',
76
+ borderBottom: "2px solid ".concat(theme.palette.grey['A100']),
77
+ paddingBottom: theme.spacing.unit * 2,
78
+ marginTop: theme.spacing.unit * 2,
79
+ marginBottom: theme.spacing.unit
80
+ },
81
+ rowItem: {
82
+ flex: 1,
83
+ display: 'flex',
84
+ justifyContent: 'center',
85
+ alignItems: 'center',
86
+ flexDirection: 'column',
87
+ '&> div': {
88
+ width: '150px',
89
+ padding: "0 ".concat(theme.spacing.unit, "px"),
90
+ textAlign: 'center'
91
+ }
92
+ },
93
+ deleteIcon: {
94
+ flex: 0.5,
95
+ minWidth: '48px',
96
+ padding: "0 ".concat(theme.spacing.unit, "px")
97
+ },
98
+ questionText: {
99
+ flex: 2,
100
+ display: 'flex',
101
+ justifyContent: 'flex-start',
102
+ marginRight: theme.spacing.unit,
103
+ '&> div': {
104
+ width: '100%',
105
+ padding: 0,
106
+ maxWidth: 'unset',
107
+ textAlign: 'left',
108
+ minWidth: '350px'
109
+ }
110
+ },
111
+ rowTable: {
112
+ display: 'flex',
113
+ flexDirection: 'column'
114
+ },
115
+ headerInput: {
116
+ '&> div': {
117
+ fontWeight: 'bold'
118
+ }
119
+ },
120
+ marginBottom: {
121
+ marginBottom: theme.typography.fontSize - 2 + theme.spacing.unit
122
+ },
123
+ columnErrorText: {
124
+ fontSize: theme.typography.fontSize - 2,
125
+ color: theme.palette.error.main,
126
+ paddingTop: "".concat(theme.spacing.unit, "px !important"),
127
+ width: 'fit-content !important'
128
+ },
129
+ errorText: {
130
+ fontSize: theme.typography.fontSize - 2,
131
+ color: theme.palette.error.main,
132
+ paddingBottom: theme.spacing.unit
133
+ }
134
+ };
135
+ };
136
+
137
+ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
138
+ (0, _inherits2["default"])(AnswerConfigBlock, _React$Component);
139
+
140
+ var _super = _createSuper(AnswerConfigBlock);
141
+
142
+ function AnswerConfigBlock() {
143
+ var _this;
144
+
145
+ (0, _classCallCheck2["default"])(this, AnswerConfigBlock);
146
+
147
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
148
+ args[_key] = arguments[_key];
149
+ }
150
+
151
+ _this = _super.call.apply(_super, [this].concat(args));
152
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveRow", function (from, to) {
153
+ var _this$props = _this.props,
154
+ model = _this$props.model,
155
+ onChange = _this$props.onChange;
156
+
157
+ var newModel = _objectSpread({}, model);
158
+
159
+ var rows = newModel.rows || [];
160
+ log('[moveRow]: ', from, to);
161
+
162
+ var _rows$reduce = rows.reduce(function (acc, item, index) {
163
+ if (index === from) {
164
+ acc.movedRow = item;
165
+ } else {
166
+ acc.remainingRows.push(item);
167
+ }
168
+
169
+ return acc;
170
+ }, {
171
+ movedRow: null,
172
+ remainingRows: []
173
+ }),
174
+ movedRow = _rows$reduce.movedRow,
175
+ remainingRows = _rows$reduce.remainingRows;
176
+
177
+ var update = [].concat((0, _toConsumableArray2["default"])(remainingRows.slice(0, to)), [movedRow], (0, _toConsumableArray2["default"])(remainingRows.slice(to)));
178
+ log('update: ', update);
179
+ newModel.rows = update;
180
+ onChange(newModel);
181
+ });
182
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (name, isBoolean) {
183
+ return function (_ref) {
184
+ var target = _ref.target;
185
+ var _this$props2 = _this.props,
186
+ model = _this$props2.model,
187
+ onChange = _this$props2.onChange;
188
+ var value;
189
+
190
+ if (isBoolean) {
191
+ value = target.checked;
192
+ } else {
193
+ value = target.value;
194
+ }
195
+
196
+ _lodash["default"].set(model, name, value);
197
+
198
+ onChange(model, name);
199
+ };
200
+ });
201
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onHeaderChange", function (headerIndex) {
202
+ return function (value) {
203
+ var _this$props3 = _this.props,
204
+ model = _this$props3.model,
205
+ onChange = _this$props3.onChange;
206
+
207
+ var newModel = _objectSpread({}, model);
208
+
209
+ if (headerIndex === 0) {
210
+ newModel.headers[headerIndex] = value;
211
+ onChange(newModel);
212
+ return;
213
+ }
214
+
215
+ newModel.headers[headerIndex] = value;
216
+ onChange(newModel);
217
+ };
218
+ });
219
+ return _this;
220
+ }
221
+
222
+ (0, _createClass2["default"])(AnswerConfigBlock, [{
223
+ key: "render",
224
+ value: function render() {
225
+ var _this2 = this;
226
+
227
+ var _this$props4 = this.props,
228
+ classes = _this$props4.classes,
229
+ model = _this$props4.model,
230
+ onAddRow = _this$props4.onAddRow,
231
+ imageSupport = _this$props4.imageSupport,
232
+ configuration = _this$props4.configuration,
233
+ toolbarOpts = _this$props4.toolbarOpts,
234
+ spellCheck = _this$props4.spellCheck,
235
+ uploadSoundSupport = _this$props4.uploadSoundSupport;
236
+
237
+ var _ref2 = configuration || {},
238
+ _ref2$baseInputConfig = _ref2.baseInputConfiguration,
239
+ baseInputConfiguration = _ref2$baseInputConfig === void 0 ? {} : _ref2$baseInputConfig,
240
+ _ref2$headers = _ref2.headers,
241
+ headers = _ref2$headers === void 0 ? {} : _ref2$headers,
242
+ _ref2$rows = _ref2.rows,
243
+ rows = _ref2$rows === void 0 ? {} : _ref2$rows,
244
+ _ref2$maxImageWidth = _ref2.maxImageWidth,
245
+ maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
246
+ _ref2$maxImageHeight = _ref2.maxImageHeight,
247
+ maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight,
248
+ _ref2$mathMlOptions = _ref2.mathMlOptions,
249
+ mathMlOptions = _ref2$mathMlOptions === void 0 ? {} : _ref2$mathMlOptions,
250
+ minQuestions = _ref2.minQuestions;
251
+
252
+ var _ref3 = model || {},
253
+ errors = _ref3.errors;
254
+
255
+ var _ref4 = errors || {},
256
+ correctResponseError = _ref4.correctResponseError,
257
+ rowsErrors = _ref4.rowsErrors,
258
+ columnsErrors = _ref4.columnsErrors,
259
+ noOfRowsError = _ref4.noOfRowsError,
260
+ columnsLengthError = _ref4.columnsLengthError;
261
+
262
+ var filteredDefaultPlugins = (_editableHtml.DEFAULT_PLUGINS || []).filter(function (p) {
263
+ return p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list';
264
+ });
265
+ var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
266
+ var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
267
+ return /*#__PURE__*/React.createElement("div", {
268
+ className: classes.container
269
+ }, /*#__PURE__*/React.createElement(_Typography["default"], {
270
+ type: "body1",
271
+ component: "div"
272
+ }, "Click on the labels to edit or remove. Set the correct answers by clicking each correct answer per row."), /*#__PURE__*/React.createElement("div", {
273
+ className: classes.rowTable,
274
+ style: configuration.width ? {
275
+ width: configuration.width,
276
+ overflow: 'scroll'
277
+ } : {}
278
+ }, /*#__PURE__*/React.createElement("div", {
279
+ className: classes.rowContainer
280
+ }, headers.settings && (model.headers || []).map(function (header, idx) {
281
+ return /*#__PURE__*/React.createElement("div", {
282
+ key: idx,
283
+ className: (0, _classnames["default"])(classes.rowItem, (0, _defineProperty2["default"])({}, classes.questionText, idx === 0))
284
+ }, /*#__PURE__*/React.createElement(_editableHtml.EditableHtml, {
285
+ onChange: _this2.onHeaderChange(idx),
286
+ markup: header,
287
+ className: columnsErrors && !columnsErrors[idx] ? classes.marginBottom : classes.headerInput,
288
+ label: 'column label',
289
+ activePlugins: filteredDefaultPlugins,
290
+ pluginProps: (0, _utils.getPluginProps)(headers === null || headers === void 0 ? void 0 : headers.inputConfiguration, baseInputConfiguration),
291
+ autoWidthToolbar: true,
292
+ spellCheck: spellCheck,
293
+ uploadSoundSupport: uploadSoundSupport,
294
+ languageCharactersProps: [{
295
+ language: 'spanish'
296
+ }, {
297
+ language: 'special'
298
+ }],
299
+ error: columnsErrors && columnsErrors[idx]
300
+ }), columnsErrors && columnsErrors[idx] && /*#__PURE__*/React.createElement("div", {
301
+ className: classes.columnErrorText
302
+ }, columnsErrors[idx]));
303
+ }), /*#__PURE__*/React.createElement("div", {
304
+ className: classes.deleteIcon
305
+ })), model.rows.map(function (row, idx) {
306
+ return /*#__PURE__*/React.createElement(_row["default"], {
307
+ key: idx,
308
+ model: model,
309
+ row: row,
310
+ idx: idx,
311
+ onDeleteRow: _this2.props.onDeleteRow,
312
+ onChange: _this2.props.onChange,
313
+ onMoveRow: _this2.moveRow,
314
+ imageSupport: imageSupport,
315
+ enableImages: model.enableImages,
316
+ toolbarOpts: toolbarOpts,
317
+ spellCheck: spellCheck,
318
+ error: rowsErrors === null || rowsErrors === void 0 ? void 0 : rowsErrors[row.id],
319
+ maxImageWidth: maxImageWidth && maxImageWidth.rowTitles || defaultImageMaxWidth,
320
+ maxImageHeight: maxImageHeight && maxImageHeight.rowTitles || defaultImageMaxHeight,
321
+ uploadSoundSupport: uploadSoundSupport,
322
+ mathMlOptions: mathMlOptions,
323
+ minQuestions: minQuestions,
324
+ inputConfiguration: (0, _utils.getPluginProps)(rows === null || rows === void 0 ? void 0 : rows.inputConfiguration, baseInputConfiguration)
325
+ });
326
+ }), correctResponseError && /*#__PURE__*/React.createElement("div", {
327
+ className: classes.errorText
328
+ }, correctResponseError), noOfRowsError && /*#__PURE__*/React.createElement("div", {
329
+ className: classes.errorText
330
+ }, noOfRowsError), columnsLengthError && /*#__PURE__*/React.createElement("div", {
331
+ className: classes.errorText
332
+ }, columnsLengthError), /*#__PURE__*/React.createElement(_addRow["default"], {
333
+ onAddClick: onAddRow
334
+ })));
335
+ }
336
+ }]);
337
+ return AnswerConfigBlock;
338
+ }(React.Component);
339
+
340
+ (0, _defineProperty2["default"])(AnswerConfigBlock, "propTypes", {
341
+ classes: _propTypes["default"].object.isRequired,
342
+ model: _propTypes["default"].object.isRequired,
343
+ configuration: _propTypes["default"].object.isRequired,
344
+ onChange: _propTypes["default"].func.isRequired,
345
+ onDeleteRow: _propTypes["default"].func.isRequired,
346
+ onAddRow: _propTypes["default"].func.isRequired,
347
+ imageSupport: _propTypes["default"].shape({
348
+ add: _propTypes["default"].func.isRequired,
349
+ "delete": _propTypes["default"].func.isRequired
350
+ }),
351
+ uploadSoundSupport: _propTypes["default"].shape({
352
+ add: _propTypes["default"].func.isRequired,
353
+ "delete": _propTypes["default"].func.isRequired
354
+ }),
355
+ toolbarOpts: _propTypes["default"].object,
356
+ spellCheck: _propTypes["default"].bool
357
+ });
358
+
359
+ var _default = (0, _styles.withStyles)(styles)(AnswerConfigBlock);
360
+
361
+ exports["default"] = _default;
362
+ //# sourceMappingURL=answer-config-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/answer-config-block.jsx"],"names":["log","styles","theme","container","marginBottom","spacing","unit","display","flexDirection","rowContainer","alignItems","flex","width","borderBottom","palette","grey","paddingBottom","marginTop","rowItem","justifyContent","padding","textAlign","deleteIcon","minWidth","questionText","marginRight","maxWidth","rowTable","headerInput","fontWeight","typography","fontSize","columnErrorText","color","error","main","paddingTop","errorText","AnswerConfigBlock","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","classes","onAddRow","imageSupport","configuration","toolbarOpts","spellCheck","uploadSoundSupport","baseInputConfiguration","maxImageWidth","maxImageHeight","mathMlOptions","minQuestions","errors","correctResponseError","rowsErrors","columnsErrors","noOfRowsError","columnsLengthError","filteredDefaultPlugins","DEFAULT_PLUGINS","filter","p","defaultImageMaxWidth","prompt","defaultImageMaxHeight","overflow","settings","map","header","idx","onHeaderChange","inputConfiguration","language","row","onDeleteRow","moveRow","enableImages","id","rowTitles","React","Component","PropTypes","object","isRequired","func","shape","add","bool"],"mappings":"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","sourcesContent":["import { getPluginProps } from './utils';\nimport * as React from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\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/pie-toolbox/editable-html';\n\nconst log = debug('pie-elements:match:configure');\n\nconst styles = (theme) => ({\n container: {\n marginBottom: theme.spacing.unit * 2.5,\n display: 'flex',\n flexDirection: 'column',\n },\n rowContainer: {\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n width: '100%',\n borderBottom: `2px solid ${theme.palette.grey['A100']}`,\n paddingBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n rowItem: {\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n '&> div': {\n width: '150px',\n padding: `0 ${theme.spacing.unit}px`,\n textAlign: 'center',\n },\n },\n deleteIcon: {\n flex: 0.5,\n minWidth: '48px',\n padding: `0 ${theme.spacing.unit}px`,\n },\n questionText: {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start',\n marginRight: theme.spacing.unit,\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 headerInput: {\n '&> div': {\n fontWeight: 'bold',\n },\n },\n marginBottom: {\n marginBottom: theme.typography.fontSize - 2 + theme.spacing.unit,\n },\n columnErrorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: `${theme.spacing.unit}px !important`,\n width: 'fit-content !important',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing.unit,\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 uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\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 = [...remainingRows.slice(0, to), movedRow, ...remainingRows.slice(to)];\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n };\n\n onChange =\n (name, isBoolean) =>\n ({ 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 newModel.headers[headerIndex] = value;\n onChange(newModel);\n };\n\n render() {\n const { classes, model, onAddRow, imageSupport, configuration, toolbarOpts, spellCheck, uploadSoundSupport } =\n this.props;\n const {\n baseInputConfiguration = {},\n headers = {},\n rows = {},\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n minQuestions,\n } = configuration || {};\n const { errors } = model || {};\n const { correctResponseError, rowsErrors, columnsErrors, noOfRowsError, columnsLengthError } = errors || {};\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || []).filter(\n (p) => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list',\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 clicking each correct answer per row.\n </Typography>\n\n <div\n className={classes.rowTable}\n style={configuration.width ? { width: configuration.width, overflow: 'scroll' } : {}}\n >\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={columnsErrors && !columnsErrors[idx] ? classes.marginBottom : classes.headerInput}\n label={'column label'}\n activePlugins={filteredDefaultPlugins}\n pluginProps={getPluginProps(headers?.inputConfiguration, baseInputConfiguration)}\n autoWidthToolbar\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n error={columnsErrors && columnsErrors[idx]}\n />\n {columnsErrors && columnsErrors[idx] && (\n <div className={classes.columnErrorText}>{columnsErrors[idx]}</div>\n )}\n </div>\n ))}\n <div className={classes.deleteIcon} />\n </div>\n\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?.[row.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowTitles) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowTitles) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n minQuestions={minQuestions}\n inputConfiguration={getPluginProps(rows?.inputConfiguration, baseInputConfiguration)}\n />\n ))}\n\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n {noOfRowsError && <div className={classes.errorText}>{noOfRowsError}</div>}\n {columnsLengthError && <div className={classes.errorText}>{columnsLengthError}</div>}\n\n <AddRow onAddClick={onAddRow} />\n </div>\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"}