@pie-element/rubric 6.3.4-next.3 → 7.0.0-beta.1

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.
Files changed (56) hide show
  1. package/CHANGELOG.md +0 -11
  2. package/configure/CHANGELOG.md +0 -11
  3. package/configure/lib/defaults.js +2 -3
  4. package/configure/lib/defaults.js.map +1 -1
  5. package/configure/lib/index.js +90 -152
  6. package/configure/lib/index.js.map +1 -1
  7. package/configure/lib/main.js +90 -149
  8. package/configure/lib/main.js.map +1 -1
  9. package/configure/package.json +11 -7
  10. package/configure/src/__tests__/index.test.jsx +12 -2
  11. package/configure/src/index.js +12 -2
  12. package/configure/src/main.jsx +11 -13
  13. package/controller/lib/defaults.js +2 -3
  14. package/controller/lib/defaults.js.map +1 -1
  15. package/controller/lib/index.js +15 -28
  16. package/controller/lib/index.js.map +1 -1
  17. package/controller/package.json +1 -1
  18. package/lib/index.js +38 -80
  19. package/lib/index.js.map +1 -1
  20. package/lib/main.js +182 -244
  21. package/lib/main.js.map +1 -1
  22. package/lib/print.js +41 -84
  23. package/lib/print.js.map +1 -1
  24. package/package.json +8 -13
  25. package/src/__tests__/rubric-view.test.jsx +12 -24
  26. package/src/index.js +14 -3
  27. package/src/main.jsx +100 -93
  28. package/src/print.js +13 -2
  29. package/configure/lib/pie-toolbox-rubric/authoring.js +0 -573
  30. package/configure/lib/pie-toolbox-rubric/authoring.js.map +0 -1
  31. package/configure/lib/pie-toolbox-rubric/index.js +0 -24
  32. package/configure/lib/pie-toolbox-rubric/index.js.map +0 -1
  33. package/configure/lib/pie-toolbox-rubric/point-menu.js +0 -172
  34. package/configure/lib/pie-toolbox-rubric/point-menu.js.map +0 -1
  35. package/configure/src/pie-toolbox-rubric/authoring.jsx +0 -449
  36. package/configure/src/pie-toolbox-rubric/index.js +0 -9
  37. package/configure/src/pie-toolbox-rubric/point-menu.jsx +0 -94
  38. package/esm/configure.js +0 -34632
  39. package/esm/configure.js.map +0 -1
  40. package/esm/controller.js +0 -68
  41. package/esm/controller.js.map +0 -1
  42. package/esm/element.js +0 -12909
  43. package/esm/element.js.map +0 -1
  44. package/esm/package.json +0 -3
  45. package/esm/print.js +0 -13482
  46. package/esm/print.js.map +0 -1
  47. package/module/configure.js +0 -1
  48. package/module/controller.js +0 -113
  49. package/module/demo.js +0 -33
  50. package/module/element.js +0 -1
  51. package/module/index.html +0 -21
  52. package/module/manifest.json +0 -14
  53. package/module/print-demo.js +0 -71
  54. package/module/print.html +0 -18
  55. package/module/print.js +0 -1
  56. package/src/__tests__/__snapshots__/rubric-view.test.jsx.snap +0 -2521
package/src/print.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import ReactDOM from 'react-dom';
2
+ import { createRoot } from 'react-dom/client';
3
3
  import debounce from 'lodash/debounce';
4
4
  import Main from './main';
5
5
  import { renderMath } from '@pie-lib/math-rendering';
@@ -27,6 +27,7 @@ export default class RubricPrint extends HTMLElement {
27
27
  this._options = null;
28
28
  this._model = null;
29
29
  this._session = [];
30
+ this._root = null;
30
31
  this._rerender = debounce(
31
32
  () => {
32
33
  if (this._model && this._session) {
@@ -38,7 +39,11 @@ export default class RubricPrint extends HTMLElement {
38
39
  ...printModel,
39
40
  });
40
41
 
41
- ReactDOM.render(element, this, () => {
42
+ if (!this._root) {
43
+ this._root = createRoot(this);
44
+ }
45
+ this._root.render(element);
46
+ queueMicrotask(() => {
42
47
  log('render complete - render math');
43
48
  renderMath(this);
44
49
  });
@@ -60,4 +65,10 @@ export default class RubricPrint extends HTMLElement {
60
65
  }
61
66
 
62
67
  connectedCallback() {}
68
+
69
+ disconnectedCallback() {
70
+ if (this._root) {
71
+ this._root.unmount();
72
+ }
73
+ }
63
74
  }
@@ -1,573 +0,0 @@
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.RubricType = exports.RawAuthoring = exports.PointConfig = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
27
-
28
- var _react = _interopRequireDefault(require("react"));
29
-
30
- var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
- var _styles = require("@material-ui/core/styles");
33
-
34
- var _classnames = _interopRequireDefault(require("classnames"));
35
-
36
- var _OutlinedInput = _interopRequireDefault(require("@material-ui/core/OutlinedInput"));
37
-
38
- var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));
39
-
40
- var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
41
-
42
- var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));
43
-
44
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
45
-
46
- var _times = _interopRequireDefault(require("lodash/times"));
47
-
48
- var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
49
-
50
- var _FormGroup = _interopRequireDefault(require("@material-ui/core/FormGroup"));
51
-
52
- var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
53
-
54
- var _grey = _interopRequireDefault(require("@material-ui/core/colors/grey"));
55
-
56
- var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
57
-
58
- var _DragIndicator = _interopRequireDefault(require("@material-ui/icons/DragIndicator"));
59
-
60
- var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
61
-
62
- var _reactBeautifulDnd = require("react-beautiful-dnd");
63
-
64
- var _debug = _interopRequireDefault(require("debug"));
65
-
66
- var _pointMenu = _interopRequireDefault(require("./point-menu"));
67
-
68
- var _range = _interopRequireDefault(require("lodash/range"));
69
-
70
- var _configUi = require("@pie-lib/config-ui");
71
-
72
- var _renderUi = require("@pie-lib/render-ui");
73
-
74
- 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; }
75
-
76
- 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; }
77
-
78
- 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); }; }
79
-
80
- 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; } }
81
-
82
- var log = (0, _debug["default"])('pie-lib:rubric:authoring');
83
-
84
- var reorder = function reorder(list, startIndex, endIndex) {
85
- var result = Array.from(list);
86
-
87
- var _result$splice = result.splice(startIndex, 1),
88
- _result$splice2 = (0, _slicedToArray2["default"])(_result$splice, 1),
89
- removed = _result$splice2[0];
90
-
91
- result.splice(endIndex, 0, removed);
92
- return result;
93
- };
94
-
95
- var RubricType = _propTypes["default"].shape({
96
- excludeZero: _propTypes["default"].bool,
97
- points: _propTypes["default"].arrayOf(_propTypes["default"].string),
98
- sampleAnswers: _propTypes["default"].arrayOf(_propTypes["default"].string),
99
- maxPoints: _propTypes["default"].number,
100
- rubriclessInstruction: _propTypes["default"].string
101
- });
102
-
103
- exports.RubricType = RubricType;
104
- var MaxPoints = (0, _styles.withStyles)(function (theme) {
105
- return {
106
- formControl: {
107
- minWidth: '120px',
108
- margin: theme.spacing.unit
109
- }
110
- };
111
- })(function (props) {
112
- var value = props.value,
113
- _onChange = props.onChange,
114
- max = props.max,
115
- classes = props.classes;
116
- return /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
117
- className: classes.formControl,
118
- variant: "outlined"
119
- }, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], {
120
- width: 100,
121
- htmlFor: "..."
122
- }, "Max Points"), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
123
- value: value,
124
- onChange: function onChange(e) {
125
- return _onChange(e.target.value);
126
- },
127
- input: /*#__PURE__*/_react["default"].createElement(_OutlinedInput["default"], {
128
- labelWidth: 80
129
- })
130
- }, (0, _range["default"])(1, max + 1).map(function (v) {
131
- return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
132
- key: "".concat(v),
133
- value: v
134
- }, v);
135
- })));
136
- }); // if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed
137
- // if the value is '', the Sample Answer input field will be empty
138
-
139
- var checkSampleAnswer = function checkSampleAnswer(sampleAnswer) {
140
- return sampleAnswer === null || sampleAnswer === 'null';
141
- };
142
-
143
- var PointConfig = (0, _styles.withStyles)(function (theme) {
144
- return {
145
- pointConfig: {},
146
- row: {
147
- display: 'flex',
148
- width: '100%',
149
- position: 'relative'
150
- },
151
- editor: {
152
- width: '100%',
153
- backgroundColor: "".concat(theme.palette.common.white, " !important")
154
- },
155
- dragIndicator: {
156
- paddingTop: theme.spacing.unit,
157
- color: _grey["default"][500]
158
- },
159
- pointsLabel: {
160
- color: _grey["default"][500],
161
- paddingBottom: theme.spacing.unit,
162
- textTransform: 'uppercase'
163
- },
164
- sampleAnswersEditor: {
165
- paddingLeft: theme.spacing.unit * 3
166
- },
167
- pointMenu: {
168
- position: 'absolute',
169
- right: 0
170
- },
171
- errorText: {
172
- fontSize: theme.typography.fontSize - 2,
173
- color: theme.palette.error.main,
174
- paddingLeft: theme.spacing.unit * 3,
175
- paddingTop: theme.spacing.unit
176
- }
177
- };
178
- })(function (props) {
179
- var points = props.points,
180
- content = props.content,
181
- classes = props.classes,
182
- sampleAnswer = props.sampleAnswer,
183
- _props$mathMlOptions = props.mathMlOptions,
184
- mathMlOptions = _props$mathMlOptions === void 0 ? {} : _props$mathMlOptions,
185
- error = props.error,
186
- _props$pluginOpts = props.pluginOpts,
187
- pluginOpts = _props$pluginOpts === void 0 ? {} : _props$pluginOpts,
188
- excludeZero = props.excludeZero,
189
- _props$imageSupport = props.imageSupport,
190
- imageSupport = _props$imageSupport === void 0 ? {} : _props$imageSupport;
191
- var pointsCount = excludeZero ? points + 1 : points;
192
- var pointsLabel = "".concat(pointsCount, " ").concat(pointsCount === 1 ? 'pt' : 'pts');
193
- var showSampleAnswer = checkSampleAnswer(sampleAnswer);
194
- return /*#__PURE__*/_react["default"].createElement("div", {
195
- className: classes.pointConfig
196
- }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
197
- variant: "overline",
198
- className: classes.pointsLabel
199
- }, pointsLabel), /*#__PURE__*/_react["default"].createElement("div", {
200
- className: classes.row
201
- }, /*#__PURE__*/_react["default"].createElement(_DragIndicator["default"], {
202
- className: classes.dragIndicator
203
- }), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
204
- className: classes.editor,
205
- error: error,
206
- pluginProps: pluginOpts,
207
- markup: content,
208
- onChange: props.onChange,
209
- mathMlOptions: mathMlOptions,
210
- imageSupport: imageSupport,
211
- languageCharactersProps: [{
212
- language: 'spanish'
213
- }, {
214
- language: 'special'
215
- }]
216
- }), /*#__PURE__*/_react["default"].createElement(_pointMenu["default"], {
217
- classes: {
218
- icon: classes.pointMenu
219
- },
220
- showSampleAnswer: showSampleAnswer,
221
- onChange: props.onMenuChange
222
- })), error && /*#__PURE__*/_react["default"].createElement("div", {
223
- className: classes.errorText
224
- }, error), !showSampleAnswer && /*#__PURE__*/_react["default"].createElement("div", {
225
- className: classes.sampleAnswersEditor
226
- }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
227
- variant: "overline",
228
- className: classes.dragIndicator
229
- }, "Sample Response"), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
230
- className: classes.editor,
231
- markup: sampleAnswer,
232
- pluginProps: pluginOpts,
233
- onChange: props.onSampleChange,
234
- mathMlOptions: mathMlOptions,
235
- imageSupport: imageSupport,
236
- languageCharactersProps: [{
237
- language: 'spanish'
238
- }, {
239
- language: 'special'
240
- }]
241
- })));
242
- });
243
- exports.PointConfig = PointConfig;
244
-
245
- var RawAuthoring = /*#__PURE__*/function (_React$Component) {
246
- (0, _inherits2["default"])(RawAuthoring, _React$Component);
247
-
248
- var _super = _createSuper(RawAuthoring);
249
-
250
- function RawAuthoring() {
251
- var _this;
252
-
253
- (0, _classCallCheck2["default"])(this, RawAuthoring);
254
-
255
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
256
- args[_key] = arguments[_key];
257
- }
258
-
259
- _this = _super.call.apply(_super, [this].concat(args));
260
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragEnd", function (result) {
261
- if (!result.destination) {
262
- return;
263
- }
264
-
265
- var _this$props = _this.props,
266
- value = _this$props.value,
267
- onChange = _this$props.onChange;
268
- var points = reorder(value.points, result.source.index, result.destination.index);
269
- var sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);
270
- onChange(_objectSpread(_objectSpread({}, value), {}, {
271
- points: points,
272
- sampleAnswers: sampleAnswers
273
- }));
274
- });
275
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeRubriclessInstruction", function (input) {
276
- var _this$props2 = _this.props,
277
- value = _this$props2.value,
278
- onChange = _this$props2.onChange;
279
- onChange(_objectSpread(_objectSpread({}, value), {}, {
280
- rubriclessInstruction: input
281
- }));
282
- });
283
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxPoints", function (maxPoints) {
284
- var _this$props3 = _this.props,
285
- value = _this$props3.value,
286
- onChange = _this$props3.onChange; // excludeZero should be false and disabled when maxPoints is 1
287
-
288
- var excludeZero = maxPoints === 1 ? false : value.excludeZero;
289
- onChange(_objectSpread(_objectSpread({}, value), {}, {
290
- maxPoints: maxPoints,
291
- excludeZero: excludeZero
292
- }));
293
- });
294
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeContent", function (index, content, type) {
295
- // type could be 'points' or 'sampleAnswers'
296
- log("changeModel[".concat(type, "]:"), index, content);
297
-
298
- if (type !== 'points' && type !== 'sampleAnswers') {
299
- return;
300
- }
301
-
302
- var _this$props4 = _this.props,
303
- value = _this$props4.value,
304
- onChange = _this$props4.onChange;
305
- var items = value[type] && Array.from(value[type]);
306
- items.splice(index, 1, content);
307
- log("changeModel[".concat(type, "]:"), items);
308
- onChange(_objectSpread(_objectSpread({}, value), {}, (0, _defineProperty2["default"])({}, type, items)));
309
- });
310
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "excludeZeros", function () {
311
- var _this$props5 = _this.props,
312
- value = _this$props5.value,
313
- onChange = _this$props5.onChange;
314
- onChange(_objectSpread(_objectSpread({}, value), {}, {
315
- excludeZero: !value.excludeZero
316
- }));
317
- });
318
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPointMenuChange", function (index, clickedItem) {
319
- if (clickedItem === 'sample') {
320
- var value = _this.props.value;
321
- var sampleAnswers = Array.from(value.sampleAnswers || []);
322
-
323
- if (checkSampleAnswer(sampleAnswers[index])) {
324
- // an empty string will display an empty Sample Answer input field
325
- _this.changeContent(index, '', 'sampleAnswers');
326
- } else {
327
- // when the content is null or 'null', the Sample Answer input field will not be displayed
328
- _this.changeContent(index, null, 'sampleAnswers');
329
- }
330
- }
331
- });
332
- return _this;
333
- }
334
-
335
- (0, _createClass2["default"])(RawAuthoring, [{
336
- key: "render",
337
- value: function render() {
338
- var _this2 = this;
339
-
340
- var _this$props6 = this.props,
341
- classes = _this$props6.classes,
342
- className = _this$props6.className,
343
- value = _this$props6.value,
344
- _this$props6$mathMlOp = _this$props6.mathMlOptions,
345
- mathMlOptions = _this$props6$mathMlOp === void 0 ? {} : _this$props6$mathMlOp,
346
- _this$props6$config = _this$props6.config,
347
- config = _this$props6$config === void 0 ? {} : _this$props6$config,
348
- _this$props6$rubricle = _this$props6.rubricless,
349
- rubricless = _this$props6$rubricle === void 0 ? false : _this$props6$rubricle,
350
- _this$props6$pluginOp = _this$props6.pluginOpts,
351
- pluginOpts = _this$props6$pluginOp === void 0 ? {} : _this$props6$pluginOp,
352
- _this$props6$imageSup = _this$props6.imageSupport,
353
- imageSupport = _this$props6$imageSup === void 0 ? {} : _this$props6$imageSup;
354
-
355
- var _ref = value || {},
356
- _ref$excludeZeroEnabl = _ref.excludeZeroEnabled,
357
- excludeZeroEnabled = _ref$excludeZeroEnabl === void 0 ? true : _ref$excludeZeroEnabl,
358
- _ref$maxPointsEnabled = _ref.maxPointsEnabled,
359
- maxPointsEnabled = _ref$maxPointsEnabled === void 0 ? true : _ref$maxPointsEnabled,
360
- _ref$errors = _ref.errors,
361
- errors = _ref$errors === void 0 ? {} : _ref$errors,
362
- _ref$rubriclessInstru = _ref.rubriclessInstructionEnabled,
363
- rubriclessInstructionEnabled = _ref$rubriclessInstru === void 0 ? false : _ref$rubriclessInstru,
364
- _ref$maxPoints = _ref.maxPoints,
365
- maxPoints = _ref$maxPoints === void 0 ? 10 : _ref$maxPoints; // rubric will contain a max value for maxPoints
366
-
367
-
368
- var _ref2 = config || {},
369
- _ref2$rubriclessInstr = _ref2.rubriclessInstruction,
370
- rubriclessInstruction = _ref2$rubriclessInstr === void 0 ? {} : _ref2$rubriclessInstr,
371
- _ref2$maxMaxPoints = _ref2.maxMaxPoints,
372
- maxMaxPoints = _ref2$maxMaxPoints === void 0 ? 10 : _ref2$maxMaxPoints;
373
-
374
- var _ref3 = errors || {},
375
- pointsDescriptorsErrors = _ref3.pointsDescriptorsErrors;
376
-
377
- if (value && Number.isFinite(value.maxPoints)) {
378
- // eslint-disable-next-line no-console
379
- console.warn('maxPoints is deprecated - remove from model');
380
- } // for rubric value is computed based on points
381
-
382
-
383
- var maxPointsValue = maxPoints;
384
- return /*#__PURE__*/_react["default"].createElement("div", {
385
- className: (0, _classnames["default"])(classes["class"], className)
386
- }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
387
- variant: "h5",
388
- className: classes.rubricTitle
389
- }, "Rubric"), /*#__PURE__*/_react["default"].createElement(_FormGroup["default"], {
390
- row: true
391
- }, maxPointsEnabled && /*#__PURE__*/_react["default"].createElement(MaxPoints, {
392
- max: maxMaxPoints < 100 ? maxMaxPoints : 100,
393
- value: maxPointsValue,
394
- onChange: this.changeMaxPoints,
395
- pluginOpts: pluginOpts,
396
- imageSupport: imageSupport
397
- }), excludeZeroEnabled && /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
398
- label: "Exclude zeros",
399
- control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
400
- className: classes.customColor,
401
- checked: value.excludeZero,
402
- onChange: this.excludeZeros,
403
- disabled: maxPointsValue === 1
404
- })
405
- })), rubriclessInstructionEnabled && rubricless && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
406
- label: rubriclessInstruction.label,
407
- className: classes.inputContainer
408
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
409
- className: classes.input,
410
- markup: value.rubriclessInstruction || '',
411
- onChange: this.changeRubriclessInstruction,
412
- pluginProps: pluginOpts,
413
- nonEmpty: false,
414
- disableUnderline: true,
415
- languageCharactersProps: [{
416
- language: 'spanish'
417
- }, {
418
- language: 'special'
419
- }],
420
- mathMlOptions: mathMlOptions,
421
- imageSupport: imageSupport
422
- })), /*#__PURE__*/_react["default"].createElement("div", {
423
- className: rubricless ? classes.rubricless : classes.container
424
- }, /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.DragDropContext, {
425
- onDragEnd: this.dragEnd
426
- }, /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.Droppable, {
427
- droppableId: "droppable"
428
- }, function (provided) {
429
- return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, provided.droppableProps, {
430
- ref: provided.innerRef
431
- }), value.points.map(function (p, index) {
432
- return /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.Draggable, {
433
- key: "".concat(p.points, "-").concat(index),
434
- index: index,
435
- draggableId: index.toString()
436
- }, function (provided) {
437
- return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
438
- className: classes.configHolder,
439
- ref: provided.innerRef
440
- }, provided.draggableProps, provided.dragHandleProps), /*#__PURE__*/_react["default"].createElement(PointConfig, {
441
- points: value.points.length - 1 - index,
442
- content: p,
443
- error: pointsDescriptorsErrors && pointsDescriptorsErrors[value.points.length - 1 - index],
444
- sampleAnswer: value.sampleAnswers && value.sampleAnswers[index],
445
- onChange: function onChange(content) {
446
- return _this2.changeContent(index, content, 'points');
447
- },
448
- onSampleChange: function onSampleChange(content) {
449
- return _this2.changeContent(index, content, 'sampleAnswers');
450
- },
451
- onMenuChange: function onMenuChange(clickedItem) {
452
- return _this2.onPointMenuChange(index, clickedItem);
453
- },
454
- mathMlOptions: mathMlOptions,
455
- pluginOpts: pluginOpts,
456
- imageSupport: imageSupport,
457
- excludeZero: value.excludeZero
458
- }));
459
- });
460
- }), provided.placeholder);
461
- }))));
462
- }
463
- }]);
464
- return RawAuthoring;
465
- }(_react["default"].Component);
466
-
467
- exports.RawAuthoring = RawAuthoring;
468
- (0, _defineProperty2["default"])(RawAuthoring, "propTypes", {
469
- classes: _propTypes["default"].object.isRequired,
470
- className: _propTypes["default"].string,
471
- value: RubricType,
472
- config: _propTypes["default"].object,
473
- pluginOpts: _propTypes["default"].object,
474
- rubricless: _propTypes["default"].bool,
475
- onChange: _propTypes["default"].func,
476
- imageSupport: _propTypes["default"].shape({
477
- add: _propTypes["default"].func.isRequired,
478
- "delete": _propTypes["default"].func.isRequired
479
- })
480
- });
481
- (0, _defineProperty2["default"])(RawAuthoring, "defaultProps", {});
482
-
483
- var styles = function styles(theme) {
484
- return {
485
- container: {
486
- backgroundColor: _grey["default"][200],
487
- borderWidth: 1,
488
- borderStyle: 'solid',
489
- borderColor: _grey["default"][300],
490
- padding: theme.spacing.unit * 2,
491
- margin: theme.spacing.unit
492
- },
493
- inputContainer: {
494
- width: '100%',
495
- paddingTop: theme.spacing.unit * 2,
496
- marginBottom: theme.spacing.unit * 2
497
- },
498
- rubricless: {
499
- display: 'none'
500
- },
501
- configHolder: {
502
- paddingTop: theme.spacing.unit,
503
- paddingBottom: theme.spacing.unit
504
- },
505
- rubricTitle: {
506
- paddingLeft: theme.spacing.unit,
507
- margin: theme.spacing.unit
508
- },
509
- customColor: {
510
- color: "".concat(_renderUi.color.tertiary(), " !important")
511
- }
512
- };
513
- };
514
-
515
- var StyledRawAuthoring = (0, _styles.withStyles)(styles)(RawAuthoring);
516
-
517
- var Reverse = function Reverse(props) {
518
- var _ref4 = props || {},
519
- _ref4$rubricless = _ref4.rubricless,
520
- rubricless = _ref4$rubricless === void 0 ? false : _ref4$rubricless,
521
- _ref4$config = _ref4.config,
522
- config = _ref4$config === void 0 ? {} : _ref4$config,
523
- _ref4$pluginOpts = _ref4.pluginOpts,
524
- pluginOpts = _ref4$pluginOpts === void 0 ? {} : _ref4$pluginOpts,
525
- _ref4$imageSupport = _ref4.imageSupport,
526
- imageSupport = _ref4$imageSupport === void 0 ? {} : _ref4$imageSupport;
527
-
528
- var points = Array.from(props.value.points || []).reverse();
529
- var sampleAnswers = Array.from(props.value.sampleAnswers || []).reverse();
530
-
531
- if (points.length > sampleAnswers.length) {
532
- sampleAnswers = (0, _times["default"])(points.length - sampleAnswers.length).map(function () {
533
- return null;
534
- }).concat(sampleAnswers);
535
- }
536
-
537
- var value = _objectSpread(_objectSpread({}, props.value), {}, {
538
- points: points,
539
- sampleAnswers: sampleAnswers
540
- });
541
-
542
- var onChange = function onChange(value) {
543
- props.onChange(_objectSpread(_objectSpread({}, value), {}, {
544
- points: Array.from(value.points || []).reverse(),
545
- sampleAnswers: Array.from(value.sampleAnswers || []).reverse()
546
- }));
547
- };
548
-
549
- return /*#__PURE__*/_react["default"].createElement(StyledRawAuthoring, {
550
- value: value,
551
- config: config,
552
- onChange: onChange,
553
- rubricless: rubricless,
554
- pluginOpts: pluginOpts,
555
- imageSupport: imageSupport
556
- });
557
- };
558
-
559
- Reverse.propTypes = {
560
- value: RubricType,
561
- config: _propTypes["default"].object,
562
- pluginOpts: _propTypes["default"].object,
563
- rubricless: _propTypes["default"].bool,
564
- getIndex: _propTypes["default"].func,
565
- onChange: _propTypes["default"].func,
566
- imageSupport: _propTypes["default"].shape({
567
- add: _propTypes["default"].func.isRequired,
568
- "delete": _propTypes["default"].func.isRequired
569
- })
570
- };
571
- var _default = Reverse;
572
- exports["default"] = _default;
573
- //# sourceMappingURL=authoring.js.map