@pie-lib/rubric 0.6.9-next.53 → 0.6.9-next.54
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/lib/authoring.js +96 -26
- package/lib/authoring.js.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/point-menu.js +40 -8
- package/lib/point-menu.js.map +1 -1
- package/package.json +3 -3
package/lib/authoring.js
CHANGED
|
@@ -1,59 +1,101 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = exports.RubricType = exports.RawAuthoring = exports.PointConfig = void 0;
|
|
9
|
+
|
|
8
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
9
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
10
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
11
16
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
+
|
|
12
18
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
13
20
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
14
22
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
15
24
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
16
26
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
|
+
|
|
17
28
|
var _react = _interopRequireDefault(require("react"));
|
|
29
|
+
|
|
18
30
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
|
+
|
|
19
32
|
var _styles = require("@material-ui/core/styles");
|
|
33
|
+
|
|
20
34
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
35
|
+
|
|
21
36
|
var _OutlinedInput = _interopRequireDefault(require("@material-ui/core/OutlinedInput"));
|
|
37
|
+
|
|
22
38
|
var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));
|
|
39
|
+
|
|
23
40
|
var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
|
|
41
|
+
|
|
24
42
|
var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));
|
|
43
|
+
|
|
25
44
|
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
45
|
+
|
|
26
46
|
var _times = _interopRequireDefault(require("lodash/times"));
|
|
47
|
+
|
|
27
48
|
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
|
|
49
|
+
|
|
28
50
|
var _FormGroup = _interopRequireDefault(require("@material-ui/core/FormGroup"));
|
|
51
|
+
|
|
29
52
|
var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
|
|
53
|
+
|
|
30
54
|
var _grey = _interopRequireDefault(require("@material-ui/core/colors/grey"));
|
|
55
|
+
|
|
31
56
|
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
57
|
+
|
|
32
58
|
var _DragIndicator = _interopRequireDefault(require("@material-ui/icons/DragIndicator"));
|
|
59
|
+
|
|
33
60
|
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
61
|
+
|
|
34
62
|
var _reactBeautifulDnd = require("react-beautiful-dnd");
|
|
63
|
+
|
|
35
64
|
var _debug = _interopRequireDefault(require("debug"));
|
|
65
|
+
|
|
36
66
|
var _takeRight = _interopRequireDefault(require("lodash/takeRight"));
|
|
67
|
+
|
|
37
68
|
var _pointMenu = _interopRequireDefault(require("./point-menu"));
|
|
69
|
+
|
|
38
70
|
var _range = _interopRequireDefault(require("lodash/range"));
|
|
71
|
+
|
|
39
72
|
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; }
|
|
73
|
+
|
|
40
74
|
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; }
|
|
75
|
+
|
|
41
76
|
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); }; }
|
|
77
|
+
|
|
42
78
|
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; } }
|
|
79
|
+
|
|
43
80
|
var log = (0, _debug["default"])('pie-lib:rubric:authoring');
|
|
81
|
+
|
|
44
82
|
var reorder = function reorder(list, startIndex, endIndex) {
|
|
45
83
|
var result = Array.from(list);
|
|
84
|
+
|
|
46
85
|
var _result$splice = result.splice(startIndex, 1),
|
|
47
|
-
|
|
48
|
-
|
|
86
|
+
_result$splice2 = (0, _slicedToArray2["default"])(_result$splice, 1),
|
|
87
|
+
removed = _result$splice2[0];
|
|
88
|
+
|
|
49
89
|
result.splice(endIndex, 0, removed);
|
|
50
90
|
return result;
|
|
51
91
|
};
|
|
92
|
+
|
|
52
93
|
var RubricType = _propTypes["default"].shape({
|
|
53
94
|
excludeZero: _propTypes["default"].bool,
|
|
54
95
|
points: _propTypes["default"].arrayOf(_propTypes["default"].string),
|
|
55
96
|
sampleAnswers: _propTypes["default"].arrayOf(_propTypes["default"].string)
|
|
56
97
|
});
|
|
98
|
+
|
|
57
99
|
exports.RubricType = RubricType;
|
|
58
100
|
var MaxPoints = (0, _styles.withStyles)(function (theme) {
|
|
59
101
|
return {
|
|
@@ -64,9 +106,9 @@ var MaxPoints = (0, _styles.withStyles)(function (theme) {
|
|
|
64
106
|
};
|
|
65
107
|
})(function (props) {
|
|
66
108
|
var value = props.value,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
109
|
+
_onChange = props.onChange,
|
|
110
|
+
max = props.max,
|
|
111
|
+
classes = props.classes;
|
|
70
112
|
return /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
|
|
71
113
|
className: classes.formControl,
|
|
72
114
|
variant: "outlined"
|
|
@@ -87,13 +129,13 @@ var MaxPoints = (0, _styles.withStyles)(function (theme) {
|
|
|
87
129
|
value: v
|
|
88
130
|
}, v);
|
|
89
131
|
})));
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
// if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed
|
|
132
|
+
}); // if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed
|
|
93
133
|
// if the value is '', the Sample Answer input field will be empty
|
|
134
|
+
|
|
94
135
|
var checkSampleAnswer = function checkSampleAnswer(sampleAnswer) {
|
|
95
136
|
return sampleAnswer === null || sampleAnswer === 'null';
|
|
96
137
|
};
|
|
138
|
+
|
|
97
139
|
var PointConfig = (0, _styles.withStyles)(function (theme) {
|
|
98
140
|
return {
|
|
99
141
|
pointConfig: {},
|
|
@@ -125,9 +167,9 @@ var PointConfig = (0, _styles.withStyles)(function (theme) {
|
|
|
125
167
|
};
|
|
126
168
|
})(function (props) {
|
|
127
169
|
var points = props.points,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
170
|
+
content = props.content,
|
|
171
|
+
classes = props.classes,
|
|
172
|
+
sampleAnswer = props.sampleAnswer;
|
|
131
173
|
var pointsLabel = "".concat(points, " ").concat(points <= 1 ? 'pt' : 'pts');
|
|
132
174
|
var showSampleAnswer = checkSampleAnswer(sampleAnswer);
|
|
133
175
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -161,23 +203,30 @@ var PointConfig = (0, _styles.withStyles)(function (theme) {
|
|
|
161
203
|
})));
|
|
162
204
|
});
|
|
163
205
|
exports.PointConfig = PointConfig;
|
|
206
|
+
|
|
164
207
|
var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
165
208
|
(0, _inherits2["default"])(RawAuthoring, _React$Component);
|
|
209
|
+
|
|
166
210
|
var _super = _createSuper(RawAuthoring);
|
|
211
|
+
|
|
167
212
|
function RawAuthoring() {
|
|
168
213
|
var _this;
|
|
214
|
+
|
|
169
215
|
(0, _classCallCheck2["default"])(this, RawAuthoring);
|
|
216
|
+
|
|
170
217
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
171
218
|
args[_key] = arguments[_key];
|
|
172
219
|
}
|
|
220
|
+
|
|
173
221
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
174
222
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragEnd", function (result) {
|
|
175
223
|
if (!result.destination) {
|
|
176
224
|
return;
|
|
177
225
|
}
|
|
226
|
+
|
|
178
227
|
var _this$props = _this.props,
|
|
179
|
-
|
|
180
|
-
|
|
228
|
+
value = _this$props.value,
|
|
229
|
+
onChange = _this$props.onChange;
|
|
181
230
|
var points = reorder(value.points, result.source.index, result.destination.index);
|
|
182
231
|
var sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);
|
|
183
232
|
onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
@@ -187,11 +236,12 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
187
236
|
});
|
|
188
237
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxPoints", function (maxPoints) {
|
|
189
238
|
var _this$props2 = _this.props,
|
|
190
|
-
|
|
191
|
-
|
|
239
|
+
value = _this$props2.value,
|
|
240
|
+
onChange = _this$props2.onChange;
|
|
192
241
|
var currentMax = value.points.length - 1;
|
|
193
242
|
log('current', currentMax, 'new: ', maxPoints);
|
|
194
243
|
var points, sampleAnswers;
|
|
244
|
+
|
|
195
245
|
if (maxPoints > currentMax) {
|
|
196
246
|
points = (0, _times["default"])(maxPoints - currentMax).map(function () {
|
|
197
247
|
return '';
|
|
@@ -200,11 +250,13 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
200
250
|
return null;
|
|
201
251
|
}).concat(value.sampleAnswers);
|
|
202
252
|
}
|
|
253
|
+
|
|
203
254
|
if (maxPoints < currentMax) {
|
|
204
255
|
log('less than');
|
|
205
256
|
points = (0, _takeRight["default"])(value.points, maxPoints + 1);
|
|
206
257
|
sampleAnswers = (0, _takeRight["default"])(value.sampleAnswers, maxPoints + 1);
|
|
207
258
|
}
|
|
259
|
+
|
|
208
260
|
if (points) {
|
|
209
261
|
onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
210
262
|
points: points,
|
|
@@ -215,12 +267,14 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
215
267
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeContent", function (index, content, type) {
|
|
216
268
|
// type could be 'points' or 'sampleAnswers'
|
|
217
269
|
log("changeModel[".concat(type, "]:"), index, content);
|
|
270
|
+
|
|
218
271
|
if (type !== 'points' && type !== 'sampleAnswers') {
|
|
219
272
|
return;
|
|
220
273
|
}
|
|
274
|
+
|
|
221
275
|
var _this$props3 = _this.props,
|
|
222
|
-
|
|
223
|
-
|
|
276
|
+
value = _this$props3.value,
|
|
277
|
+
onChange = _this$props3.onChange;
|
|
224
278
|
var items = value[type] && Array.from(value[type]);
|
|
225
279
|
items.splice(index, 1, content);
|
|
226
280
|
log("changeModel[".concat(type, "]:"), items);
|
|
@@ -228,8 +282,8 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
228
282
|
});
|
|
229
283
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "excludeZeros", function () {
|
|
230
284
|
var _this$props4 = _this.props,
|
|
231
|
-
|
|
232
|
-
|
|
285
|
+
value = _this$props4.value,
|
|
286
|
+
onChange = _this$props4.onChange;
|
|
233
287
|
onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
234
288
|
excludeZero: !value.excludeZero
|
|
235
289
|
}));
|
|
@@ -243,6 +297,7 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
243
297
|
} else if (index === value.points.length - 1) {
|
|
244
298
|
return false;
|
|
245
299
|
}
|
|
300
|
+
|
|
246
301
|
return true;
|
|
247
302
|
}
|
|
248
303
|
});
|
|
@@ -250,6 +305,7 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
250
305
|
if (clickedItem === 'sample') {
|
|
251
306
|
var value = _this.props.value;
|
|
252
307
|
var sampleAnswers = Array.from(value.sampleAnswers || []);
|
|
308
|
+
|
|
253
309
|
if (checkSampleAnswer(sampleAnswers[index])) {
|
|
254
310
|
// an empty string will display an empty Sample Answer input field
|
|
255
311
|
_this.changeContent(index, '', 'sampleAnswers');
|
|
@@ -261,23 +317,28 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
261
317
|
});
|
|
262
318
|
return _this;
|
|
263
319
|
}
|
|
320
|
+
|
|
264
321
|
(0, _createClass2["default"])(RawAuthoring, [{
|
|
265
322
|
key: "render",
|
|
266
323
|
value: function render() {
|
|
267
324
|
var _this2 = this;
|
|
325
|
+
|
|
268
326
|
var _this$props5 = this.props,
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
327
|
+
classes = _this$props5.classes,
|
|
328
|
+
className = _this$props5.className,
|
|
329
|
+
value = _this$props5.value;
|
|
330
|
+
|
|
272
331
|
var _ref = value || {},
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
332
|
+
_ref$excludeZeroEnabl = _ref.excludeZeroEnabled,
|
|
333
|
+
excludeZeroEnabled = _ref$excludeZeroEnabl === void 0 ? true : _ref$excludeZeroEnabl,
|
|
334
|
+
_ref$maxPointsEnabled = _ref.maxPointsEnabled,
|
|
335
|
+
maxPointsEnabled = _ref$maxPointsEnabled === void 0 ? true : _ref$maxPointsEnabled;
|
|
336
|
+
|
|
277
337
|
if (value && Number.isFinite(value.maxPoints)) {
|
|
278
338
|
// eslint-disable-next-line no-console
|
|
279
339
|
console.warn('maxPoints is deprecated - remove from model');
|
|
280
340
|
}
|
|
341
|
+
|
|
281
342
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
282
343
|
className: (0, _classnames["default"])(classes["class"], className)
|
|
283
344
|
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
@@ -334,6 +395,7 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
334
395
|
}]);
|
|
335
396
|
return RawAuthoring;
|
|
336
397
|
}(_react["default"].Component);
|
|
398
|
+
|
|
337
399
|
exports.RawAuthoring = RawAuthoring;
|
|
338
400
|
(0, _defineProperty2["default"])(RawAuthoring, "propTypes", {
|
|
339
401
|
classes: _propTypes["default"].object.isRequired,
|
|
@@ -342,6 +404,7 @@ exports.RawAuthoring = RawAuthoring;
|
|
|
342
404
|
onChange: _propTypes["default"].func
|
|
343
405
|
});
|
|
344
406
|
(0, _defineProperty2["default"])(RawAuthoring, "defaultProps", {});
|
|
407
|
+
|
|
345
408
|
var styles = function styles(theme) {
|
|
346
409
|
return {
|
|
347
410
|
container: {
|
|
@@ -362,30 +425,37 @@ var styles = function styles(theme) {
|
|
|
362
425
|
}
|
|
363
426
|
};
|
|
364
427
|
};
|
|
428
|
+
|
|
365
429
|
var StyledRawAuthoring = (0, _styles.withStyles)(styles)(RawAuthoring);
|
|
430
|
+
|
|
366
431
|
var Reverse = function Reverse(props) {
|
|
367
432
|
var points = Array.from(props.value.points || []).reverse();
|
|
368
433
|
var sampleAnswers = Array.from(props.value.sampleAnswers || []).reverse();
|
|
434
|
+
|
|
369
435
|
if (points.length > sampleAnswers.length) {
|
|
370
436
|
sampleAnswers = (0, _times["default"])(points.length - sampleAnswers.length).map(function () {
|
|
371
437
|
return null;
|
|
372
438
|
}).concat(sampleAnswers);
|
|
373
439
|
}
|
|
440
|
+
|
|
374
441
|
var value = _objectSpread(_objectSpread({}, props.value), {}, {
|
|
375
442
|
points: points,
|
|
376
443
|
sampleAnswers: sampleAnswers
|
|
377
444
|
});
|
|
445
|
+
|
|
378
446
|
var onChange = function onChange(value) {
|
|
379
447
|
props.onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
380
448
|
points: Array.from(value.points || []).reverse(),
|
|
381
449
|
sampleAnswers: Array.from(value.sampleAnswers || []).reverse()
|
|
382
450
|
}));
|
|
383
451
|
};
|
|
452
|
+
|
|
384
453
|
return /*#__PURE__*/_react["default"].createElement(StyledRawAuthoring, {
|
|
385
454
|
value: value,
|
|
386
455
|
onChange: onChange
|
|
387
456
|
});
|
|
388
457
|
};
|
|
458
|
+
|
|
389
459
|
Reverse.propTypes = {
|
|
390
460
|
value: RubricType,
|
|
391
461
|
getIndex: _propTypes["default"].func,
|
package/lib/authoring.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authoring.js","names":["log","debug","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","MaxPoints","withStyles","theme","formControl","minWidth","margin","spacing","unit","props","value","onChange","max","classes","e","target","range","map","v","checkSampleAnswer","sampleAnswer","PointConfig","pointConfig","row","display","width","position","editor","backgroundColor","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","content","showSampleAnswer","icon","onMenuChange","onSampleChange","RawAuthoring","destination","source","index","maxPoints","currentMax","length","times","concat","takeRight","type","items","clickedItem","changeContent","className","excludeZeroEnabled","maxPointsEnabled","Number","isFinite","console","warn","classNames","rubricTitle","changeMaxPoints","excludeZeros","container","dragEnd","provided","droppableProps","innerRef","p","shouldRenderPoint","toString","configHolder","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","object","isRequired","func","styles","borderWidth","borderStyle","borderColor","padding","StyledRawAuthoring","Reverse","reverse","propTypes","getIndex"],"sources":["../src/authoring.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport FormControl from '@material-ui/core/FormControl';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport times from 'lodash/times';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport grey from '@material-ui/core/colors/grey';\nimport Typography from '@material-ui/core/Typography';\nimport DragIndicator from '@material-ui/icons/DragIndicator';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport debug from 'debug';\nimport takeRight from 'lodash/takeRight';\nimport PointMenu from './point-menu';\n\nimport range from 'lodash/range';\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string),\n});\n\nconst MaxPoints = withStyles((theme) => ({\n formControl: {\n minWidth: '120px',\n margin: theme.spacing.unit,\n },\n}))((props) => {\n const { value, onChange, max, classes } = props;\n\n return (\n <FormControl className={classes.formControl} variant=\"outlined\">\n <InputLabel width={100} htmlFor=\"...\">\n Max Points\n </InputLabel>\n <Select value={value} onChange={(e) => onChange(e.target.value)} input={<OutlinedInput labelWidth={80} />}>\n {range(1, max).map((v) => (\n <MenuItem key={`${v}`} value={v}>\n {v}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n});\n\n// if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed\n// if the value is '', the Sample Answer input field will be empty\nconst checkSampleAnswer = (sampleAnswer) => sampleAnswer === null || sampleAnswer === 'null';\n\nexport const PointConfig = withStyles((theme) => ({\n pointConfig: {},\n row: {\n display: 'flex',\n width: '100%',\n position: 'relative',\n },\n editor: {\n width: '100%',\n backgroundColor: 'white !important',\n },\n dragIndicator: {\n paddingTop: theme.spacing.unit,\n color: grey[500],\n },\n pointsLabel: {\n color: grey[500],\n paddingBottom: theme.spacing.unit,\n textTransform: 'uppercase',\n },\n sampleAnswersEditor: {\n paddingLeft: theme.spacing.unit * 3,\n },\n pointMenu: {\n position: 'absolute',\n right: 0,\n },\n}))((props) => {\n const { points, content, classes, sampleAnswer } = props;\n const pointsLabel = `${points} ${points <= 1 ? 'pt' : 'pts'}`;\n const showSampleAnswer = checkSampleAnswer(sampleAnswer);\n\n return (\n <div className={classes.pointConfig}>\n <Typography variant=\"overline\" className={classes.pointsLabel}>\n {pointsLabel}\n </Typography>\n <div className={classes.row}>\n <DragIndicator className={classes.dragIndicator} />\n <EditableHtml className={classes.editor} markup={content} onChange={props.onChange} />\n <PointMenu\n classes={{\n icon: classes.pointMenu,\n }}\n showSampleAnswer={showSampleAnswer}\n onChange={props.onMenuChange}\n />\n </div>\n {!showSampleAnswer && (\n <div className={classes.sampleAnswersEditor}>\n <Typography variant=\"overline\" className={classes.dragIndicator}>\n Sample Response\n </Typography>\n <EditableHtml className={classes.editor} markup={sampleAnswer} onChange={props.onSampleChange} />\n </div>\n )}\n </div>\n );\n});\n\nexport class RawAuthoring extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n value: RubricType,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {};\n\n dragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const { value, onChange } = this.props;\n\n const points = reorder(value.points, result.source.index, result.destination.index);\n const sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);\n\n onChange({ ...value, points, sampleAnswers });\n };\n\n changeMaxPoints = (maxPoints) => {\n const { value, onChange } = this.props;\n const currentMax = value.points.length - 1;\n\n log('current', currentMax, 'new: ', maxPoints);\n\n let points, sampleAnswers;\n if (maxPoints > currentMax) {\n points = times(maxPoints - currentMax)\n .map(() => '')\n .concat(value.points);\n sampleAnswers = times(maxPoints - currentMax)\n .map(() => null)\n .concat(value.sampleAnswers);\n }\n\n if (maxPoints < currentMax) {\n log('less than');\n points = takeRight(value.points, maxPoints + 1);\n sampleAnswers = takeRight(value.sampleAnswers, maxPoints + 1);\n }\n\n if (points) {\n onChange({ ...value, points, sampleAnswers });\n }\n };\n\n changeContent = (index, content, type) => {\n // type could be 'points' or 'sampleAnswers'\n log(`changeModel[${type}]:`, index, content);\n\n if (type !== 'points' && type !== 'sampleAnswers') {\n return;\n }\n\n const { value, onChange } = this.props;\n const items = value[type] && Array.from(value[type]);\n\n items.splice(index, 1, content);\n log(`changeModel[${type}]:`, items);\n\n onChange({ ...value, [type]: items });\n };\n\n excludeZeros = () => {\n const { value, onChange } = this.props;\n\n onChange({ ...value, excludeZero: !value.excludeZero });\n };\n\n shouldRenderPoint = (index, value) => {\n if (!value.excludeZero) {\n return true;\n } else {\n if (index < value.points.length - 1) {\n return true;\n } else if (index === value.points.length - 1) {\n return false;\n }\n\n return true;\n }\n };\n\n onPointMenuChange = (index, clickedItem) => {\n if (clickedItem === 'sample') {\n const { value } = this.props;\n const sampleAnswers = Array.from(value.sampleAnswers || []);\n\n if (checkSampleAnswer(sampleAnswers[index])) {\n // an empty string will display an empty Sample Answer input field\n this.changeContent(index, '', 'sampleAnswers');\n } else {\n // when the content is null or 'null', the Sample Answer input field will not be displayed\n this.changeContent(index, null, 'sampleAnswers');\n }\n }\n };\n\n render() {\n const { classes, className, value } = this.props;\n let { excludeZeroEnabled = true, maxPointsEnabled = true } = value || {};\n\n if (value && Number.isFinite(value.maxPoints)) {\n // eslint-disable-next-line no-console\n console.warn('maxPoints is deprecated - remove from model');\n }\n\n return (\n <div className={classNames(classes.class, className)}>\n <Typography variant=\"h5\" className={classes.rubricTitle}>\n Rubric\n </Typography>\n <FormGroup row>\n {maxPointsEnabled && <MaxPoints max={10} value={value.points.length - 1} onChange={this.changeMaxPoints} />}\n {excludeZeroEnabled && (\n <FormControlLabel\n label=\"Exclude zeros\"\n control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}\n />\n )}\n </FormGroup>\n <div className={classes.container}>\n <DragDropContext onDragEnd={this.dragEnd}>\n <Droppable droppableId=\"droppable\">\n {(provided) => (\n <div {...provided.droppableProps} ref={provided.innerRef}>\n {value.points.map(\n (p, index) =>\n this.shouldRenderPoint(index, value) && (\n <Draggable key={`${p.points}-${index}`} index={index} draggableId={index.toString()}>\n {(provided) => (\n <div\n className={classes.configHolder}\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <PointConfig\n points={value.points.length - 1 - index}\n content={p}\n sampleAnswer={value.sampleAnswers && value.sampleAnswers[index]}\n onChange={(content) => this.changeContent(index, content, 'points')}\n onSampleChange={(content) => this.changeContent(index, content, 'sampleAnswers')}\n onMenuChange={(clickedItem) => this.onPointMenuChange(index, clickedItem)}\n />\n </div>\n )}\n </Draggable>\n ),\n )}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n container: {\n backgroundColor: grey[200],\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: grey[300],\n padding: theme.spacing.unit * 2,\n margin: theme.spacing.unit,\n },\n configHolder: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n },\n rubricTitle: {\n paddingLeft: theme.spacing.unit,\n margin: theme.spacing.unit,\n },\n});\n\nconst StyledRawAuthoring = withStyles(styles)(RawAuthoring);\n\nconst Reverse = (props) => {\n const points = Array.from(props.value.points || []).reverse();\n let sampleAnswers = Array.from(props.value.sampleAnswers || []).reverse();\n\n if (points.length > sampleAnswers.length) {\n sampleAnswers = times(points.length - sampleAnswers.length)\n .map(() => null)\n .concat(sampleAnswers);\n }\n\n const value = { ...props.value, points, sampleAnswers };\n\n const onChange = (value) => {\n props.onChange({\n ...value,\n points: Array.from(value.points || []).reverse(),\n sampleAnswers: Array.from(value.sampleAnswers || []).reverse(),\n });\n };\n\n return <StyledRawAuthoring value={value} onChange={onChange} />;\n};\n\nReverse.propTypes = {\n value: RubricType,\n getIndex: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default Reverse;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAiC;AAAA;AAAA;AAAA;AACjC,IAAMA,GAAG,GAAG,IAAAC,iBAAK,EAAC,0BAA0B,CAAC;AAE7C,IAAMC,OAAO,GAAG,SAAVA,OAAO,CAAIC,IAAI,EAAEC,UAAU,EAAEC,QAAQ,EAAK;EAC9C,IAAMC,MAAM,GAAGC,KAAK,CAACC,IAAI,CAACL,IAAI,CAAC;EAC/B,qBAAkBG,MAAM,CAACG,MAAM,CAACL,UAAU,EAAE,CAAC,CAAC;IAAA;IAAvCM,OAAO;EAEdJ,MAAM,CAACG,MAAM,CAACJ,QAAQ,EAAE,CAAC,EAAEK,OAAO,CAAC;EAEnC,OAAOJ,MAAM;AACf,CAAC;AAEM,IAAMK,UAAU,GAAGC,qBAAS,CAACC,KAAK,CAAC;EACxCC,WAAW,EAAEF,qBAAS,CAACG,IAAI;EAC3BC,MAAM,EAAEJ,qBAAS,CAACK,OAAO,CAACL,qBAAS,CAACM,MAAM,CAAC;EAC3CC,aAAa,EAAEP,qBAAS,CAACK,OAAO,CAACL,qBAAS,CAACM,MAAM;AACnD,CAAC,CAAC;AAAC;AAEH,IAAME,SAAS,GAAG,IAAAC,kBAAU,EAAC,UAACC,KAAK;EAAA,OAAM;IACvCC,WAAW,EAAE;MACXC,QAAQ,EAAE,OAAO;MACjBC,MAAM,EAAEH,KAAK,CAACI,OAAO,CAACC;IACxB;EACF,CAAC;AAAA,CAAC,CAAC,CAAC,UAACC,KAAK,EAAK;EACb,IAAQC,KAAK,GAA6BD,KAAK,CAAvCC,KAAK;IAAEC,SAAQ,GAAmBF,KAAK,CAAhCE,QAAQ;IAAEC,GAAG,GAAcH,KAAK,CAAtBG,GAAG;IAAEC,OAAO,GAAKJ,KAAK,CAAjBI,OAAO;EAErC,oBACE,gCAAC,uBAAW;IAAC,SAAS,EAAEA,OAAO,CAACT,WAAY;IAAC,OAAO,EAAC;EAAU,gBAC7D,gCAAC,sBAAU;IAAC,KAAK,EAAE,GAAI;IAAC,OAAO,EAAC;EAAK,GAAC,YAEtC,CAAa,eACb,gCAAC,kBAAM;IAAC,KAAK,EAAEM,KAAM;IAAC,QAAQ,EAAE,kBAACI,CAAC;MAAA,OAAKH,SAAQ,CAACG,CAAC,CAACC,MAAM,CAACL,KAAK,CAAC;IAAA,CAAC;IAAC,KAAK,eAAE,gCAAC,yBAAa;MAAC,UAAU,EAAE;IAAG;EAAI,GACvG,IAAAM,iBAAK,EAAC,CAAC,EAAEJ,GAAG,CAAC,CAACK,GAAG,CAAC,UAACC,CAAC;IAAA,oBACnB,gCAAC,oBAAQ;MAAC,GAAG,YAAKA,CAAC,CAAG;MAAC,KAAK,EAAEA;IAAE,GAC7BA,CAAC,CACO;EAAA,CACZ,CAAC,CACK,CACG;AAElB,CAAC,CAAC;;AAEF;AACA;AACA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,YAAY;EAAA,OAAKA,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,MAAM;AAAA;AAErF,IAAMC,WAAW,GAAG,IAAAnB,kBAAU,EAAC,UAACC,KAAK;EAAA,OAAM;IAChDmB,WAAW,EAAE,CAAC,CAAC;IACfC,GAAG,EAAE;MACHC,OAAO,EAAE,MAAM;MACfC,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAE;IACZ,CAAC;IACDC,MAAM,EAAE;MACNF,KAAK,EAAE,MAAM;MACbG,eAAe,EAAE;IACnB,CAAC;IACDC,aAAa,EAAE;MACbC,UAAU,EAAE3B,KAAK,CAACI,OAAO,CAACC,IAAI;MAC9BuB,KAAK,EAAEC,gBAAI,CAAC,GAAG;IACjB,CAAC;IACDC,WAAW,EAAE;MACXF,KAAK,EAAEC,gBAAI,CAAC,GAAG,CAAC;MAChBE,aAAa,EAAE/B,KAAK,CAACI,OAAO,CAACC,IAAI;MACjC2B,aAAa,EAAE;IACjB,CAAC;IACDC,mBAAmB,EAAE;MACnBC,WAAW,EAAElC,KAAK,CAACI,OAAO,CAACC,IAAI,GAAG;IACpC,CAAC;IACD8B,SAAS,EAAE;MACTZ,QAAQ,EAAE,UAAU;MACpBa,KAAK,EAAE;IACT;EACF,CAAC;AAAA,CAAC,CAAC,CAAC,UAAC9B,KAAK,EAAK;EACb,IAAQZ,MAAM,GAAqCY,KAAK,CAAhDZ,MAAM;IAAE2C,OAAO,GAA4B/B,KAAK,CAAxC+B,OAAO;IAAE3B,OAAO,GAAmBJ,KAAK,CAA/BI,OAAO;IAAEO,YAAY,GAAKX,KAAK,CAAtBW,YAAY;EAC9C,IAAMa,WAAW,aAAMpC,MAAM,cAAIA,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAE;EAC7D,IAAM4C,gBAAgB,GAAGtB,iBAAiB,CAACC,YAAY,CAAC;EAExD,oBACE;IAAK,SAAS,EAAEP,OAAO,CAACS;EAAY,gBAClC,gCAAC,sBAAU;IAAC,OAAO,EAAC,UAAU;IAAC,SAAS,EAAET,OAAO,CAACoB;EAAY,GAC3DA,WAAW,CACD,eACb;IAAK,SAAS,EAAEpB,OAAO,CAACU;EAAI,gBAC1B,gCAAC,yBAAa;IAAC,SAAS,EAAEV,OAAO,CAACgB;EAAc,EAAG,eACnD,gCAAC,wBAAY;IAAC,SAAS,EAAEhB,OAAO,CAACc,MAAO;IAAC,MAAM,EAAEa,OAAQ;IAAC,QAAQ,EAAE/B,KAAK,CAACE;EAAS,EAAG,eACtF,gCAAC,qBAAS;IACR,OAAO,EAAE;MACP+B,IAAI,EAAE7B,OAAO,CAACyB;IAChB,CAAE;IACF,gBAAgB,EAAEG,gBAAiB;IACnC,QAAQ,EAAEhC,KAAK,CAACkC;EAAa,EAC7B,CACE,EACL,CAACF,gBAAgB,iBAChB;IAAK,SAAS,EAAE5B,OAAO,CAACuB;EAAoB,gBAC1C,gCAAC,sBAAU;IAAC,OAAO,EAAC,UAAU;IAAC,SAAS,EAAEvB,OAAO,CAACgB;EAAc,GAAC,iBAEjE,CAAa,eACb,gCAAC,wBAAY;IAAC,SAAS,EAAEhB,OAAO,CAACc,MAAO;IAAC,MAAM,EAAEP,YAAa;IAAC,QAAQ,EAAEX,KAAK,CAACmC;EAAe,EAAG,CAEpG,CACG;AAEV,CAAC,CAAC;AAAC;AAAA,IAEUC,YAAY;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,4FAUb,UAAC1D,MAAM,EAAK;MACpB,IAAI,CAACA,MAAM,CAAC2D,WAAW,EAAE;QACvB;MACF;MAEA,kBAA4B,MAAKrC,KAAK;QAA9BC,KAAK,eAALA,KAAK;QAAEC,QAAQ,eAARA,QAAQ;MAEvB,IAAMd,MAAM,GAAGd,OAAO,CAAC2B,KAAK,CAACb,MAAM,EAAEV,MAAM,CAAC4D,MAAM,CAACC,KAAK,EAAE7D,MAAM,CAAC2D,WAAW,CAACE,KAAK,CAAC;MACnF,IAAMhD,aAAa,GAAGjB,OAAO,CAAC2B,KAAK,CAACV,aAAa,EAAEb,MAAM,CAAC4D,MAAM,CAACC,KAAK,EAAE7D,MAAM,CAAC2D,WAAW,CAACE,KAAK,CAAC;MAEjGrC,QAAQ,iCAAMD,KAAK;QAAEb,MAAM,EAANA,MAAM;QAAEG,aAAa,EAAbA;MAAa,GAAG;IAC/C,CAAC;IAAA,oGAEiB,UAACiD,SAAS,EAAK;MAC/B,mBAA4B,MAAKxC,KAAK;QAA9BC,KAAK,gBAALA,KAAK;QAAEC,QAAQ,gBAARA,QAAQ;MACvB,IAAMuC,UAAU,GAAGxC,KAAK,CAACb,MAAM,CAACsD,MAAM,GAAG,CAAC;MAE1CtE,GAAG,CAAC,SAAS,EAAEqE,UAAU,EAAE,OAAO,EAAED,SAAS,CAAC;MAE9C,IAAIpD,MAAM,EAAEG,aAAa;MACzB,IAAIiD,SAAS,GAAGC,UAAU,EAAE;QAC1BrD,MAAM,GAAG,IAAAuD,iBAAK,EAACH,SAAS,GAAGC,UAAU,CAAC,CACnCjC,GAAG,CAAC;UAAA,OAAM,EAAE;QAAA,EAAC,CACboC,MAAM,CAAC3C,KAAK,CAACb,MAAM,CAAC;QACvBG,aAAa,GAAG,IAAAoD,iBAAK,EAACH,SAAS,GAAGC,UAAU,CAAC,CAC1CjC,GAAG,CAAC;UAAA,OAAM,IAAI;QAAA,EAAC,CACfoC,MAAM,CAAC3C,KAAK,CAACV,aAAa,CAAC;MAChC;MAEA,IAAIiD,SAAS,GAAGC,UAAU,EAAE;QAC1BrE,GAAG,CAAC,WAAW,CAAC;QAChBgB,MAAM,GAAG,IAAAyD,qBAAS,EAAC5C,KAAK,CAACb,MAAM,EAAEoD,SAAS,GAAG,CAAC,CAAC;QAC/CjD,aAAa,GAAG,IAAAsD,qBAAS,EAAC5C,KAAK,CAACV,aAAa,EAAEiD,SAAS,GAAG,CAAC,CAAC;MAC/D;MAEA,IAAIpD,MAAM,EAAE;QACVc,QAAQ,iCAAMD,KAAK;UAAEb,MAAM,EAANA,MAAM;UAAEG,aAAa,EAAbA;QAAa,GAAG;MAC/C;IACF,CAAC;IAAA,kGAEe,UAACgD,KAAK,EAAER,OAAO,EAAEe,IAAI,EAAK;MACxC;MACA1E,GAAG,uBAAgB0E,IAAI,SAAMP,KAAK,EAAER,OAAO,CAAC;MAE5C,IAAIe,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,eAAe,EAAE;QACjD;MACF;MAEA,mBAA4B,MAAK9C,KAAK;QAA9BC,KAAK,gBAALA,KAAK;QAAEC,QAAQ,gBAARA,QAAQ;MACvB,IAAM6C,KAAK,GAAG9C,KAAK,CAAC6C,IAAI,CAAC,IAAInE,KAAK,CAACC,IAAI,CAACqB,KAAK,CAAC6C,IAAI,CAAC,CAAC;MAEpDC,KAAK,CAAClE,MAAM,CAAC0D,KAAK,EAAE,CAAC,EAAER,OAAO,CAAC;MAC/B3D,GAAG,uBAAgB0E,IAAI,SAAMC,KAAK,CAAC;MAEnC7C,QAAQ,iCAAMD,KAAK,4CAAG6C,IAAI,EAAGC,KAAK,GAAG;IACvC,CAAC;IAAA,iGAEc,YAAM;MACnB,mBAA4B,MAAK/C,KAAK;QAA9BC,KAAK,gBAALA,KAAK;QAAEC,QAAQ,gBAARA,QAAQ;MAEvBA,QAAQ,iCAAMD,KAAK;QAAEf,WAAW,EAAE,CAACe,KAAK,CAACf;MAAW,GAAG;IACzD,CAAC;IAAA,sGAEmB,UAACqD,KAAK,EAAEtC,KAAK,EAAK;MACpC,IAAI,CAACA,KAAK,CAACf,WAAW,EAAE;QACtB,OAAO,IAAI;MACb,CAAC,MAAM;QACL,IAAIqD,KAAK,GAAGtC,KAAK,CAACb,MAAM,CAACsD,MAAM,GAAG,CAAC,EAAE;UACnC,OAAO,IAAI;QACb,CAAC,MAAM,IAAIH,KAAK,KAAKtC,KAAK,CAACb,MAAM,CAACsD,MAAM,GAAG,CAAC,EAAE;UAC5C,OAAO,KAAK;QACd;QAEA,OAAO,IAAI;MACb;IACF,CAAC;IAAA,sGAEmB,UAACH,KAAK,EAAES,WAAW,EAAK;MAC1C,IAAIA,WAAW,KAAK,QAAQ,EAAE;QAC5B,IAAQ/C,KAAK,GAAK,MAAKD,KAAK,CAApBC,KAAK;QACb,IAAMV,aAAa,GAAGZ,KAAK,CAACC,IAAI,CAACqB,KAAK,CAACV,aAAa,IAAI,EAAE,CAAC;QAE3D,IAAImB,iBAAiB,CAACnB,aAAa,CAACgD,KAAK,CAAC,CAAC,EAAE;UAC3C;UACA,MAAKU,aAAa,CAACV,KAAK,EAAE,EAAE,EAAE,eAAe,CAAC;QAChD,CAAC,MAAM;UACL;UACA,MAAKU,aAAa,CAACV,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC;QAClD;MACF;IACF,CAAC;IAAA;EAAA;EAAA;IAAA;IAAA,OAED,kBAAS;MAAA;MACP,mBAAsC,IAAI,CAACvC,KAAK;QAAxCI,OAAO,gBAAPA,OAAO;QAAE8C,SAAS,gBAATA,SAAS;QAAEjD,KAAK,gBAALA,KAAK;MACjC,WAA6DA,KAAK,IAAI,CAAC,CAAC;QAAA,6BAAlEkD,kBAAkB;QAAlBA,kBAAkB,sCAAG,IAAI;QAAA,6BAAEC,gBAAgB;QAAhBA,gBAAgB,sCAAG,IAAI;MAExD,IAAInD,KAAK,IAAIoD,MAAM,CAACC,QAAQ,CAACrD,KAAK,CAACuC,SAAS,CAAC,EAAE;QAC7C;QACAe,OAAO,CAACC,IAAI,CAAC,6CAA6C,CAAC;MAC7D;MAEA,oBACE;QAAK,SAAS,EAAE,IAAAC,sBAAU,EAACrD,OAAO,SAAM,EAAE8C,SAAS;MAAE,gBACnD,gCAAC,sBAAU;QAAC,OAAO,EAAC,IAAI;QAAC,SAAS,EAAE9C,OAAO,CAACsD;MAAY,GAAC,QAEzD,CAAa,eACb,gCAAC,qBAAS;QAAC,GAAG;MAAA,GACXN,gBAAgB,iBAAI,gCAAC,SAAS;QAAC,GAAG,EAAE,EAAG;QAAC,KAAK,EAAEnD,KAAK,CAACb,MAAM,CAACsD,MAAM,GAAG,CAAE;QAAC,QAAQ,EAAE,IAAI,CAACiB;MAAgB,EAAG,EAC1GR,kBAAkB,iBACjB,gCAAC,4BAAgB;QACf,KAAK,EAAC,eAAe;QACrB,OAAO,eAAE,gCAAC,oBAAQ;UAAC,OAAO,EAAElD,KAAK,CAACf,WAAY;UAAC,QAAQ,EAAE,IAAI,CAAC0E;QAAa;MAAI,EAElF,CACS,eACZ;QAAK,SAAS,EAAExD,OAAO,CAACyD;MAAU,gBAChC,gCAAC,kCAAe;QAAC,SAAS,EAAE,IAAI,CAACC;MAAQ,gBACvC,gCAAC,4BAAS;QAAC,WAAW,EAAC;MAAW,GAC/B,UAACC,QAAQ;QAAA,oBACR,qEAASA,QAAQ,CAACC,cAAc;UAAE,GAAG,EAAED,QAAQ,CAACE;QAAS,IACtDhE,KAAK,CAACb,MAAM,CAACoB,GAAG,CACf,UAAC0D,CAAC,EAAE3B,KAAK;UAAA,OACP,MAAI,CAAC4B,iBAAiB,CAAC5B,KAAK,EAAEtC,KAAK,CAAC,iBAClC,gCAAC,4BAAS;YAAC,GAAG,YAAKiE,CAAC,CAAC9E,MAAM,cAAImD,KAAK,CAAG;YAAC,KAAK,EAAEA,KAAM;YAAC,WAAW,EAAEA,KAAK,CAAC6B,QAAQ;UAAG,GACjF,UAACL,QAAQ;YAAA,oBACR;cACE,SAAS,EAAE3D,OAAO,CAACiE,YAAa;cAChC,GAAG,EAAEN,QAAQ,CAACE;YAAS,GACnBF,QAAQ,CAACO,cAAc,EACvBP,QAAQ,CAACQ,eAAe,gBAE5B,gCAAC,WAAW;cACV,MAAM,EAAEtE,KAAK,CAACb,MAAM,CAACsD,MAAM,GAAG,CAAC,GAAGH,KAAM;cACxC,OAAO,EAAE2B,CAAE;cACX,YAAY,EAAEjE,KAAK,CAACV,aAAa,IAAIU,KAAK,CAACV,aAAa,CAACgD,KAAK,CAAE;cAChE,QAAQ,EAAE,kBAACR,OAAO;gBAAA,OAAK,MAAI,CAACkB,aAAa,CAACV,KAAK,EAAER,OAAO,EAAE,QAAQ,CAAC;cAAA,CAAC;cACpE,cAAc,EAAE,wBAACA,OAAO;gBAAA,OAAK,MAAI,CAACkB,aAAa,CAACV,KAAK,EAAER,OAAO,EAAE,eAAe,CAAC;cAAA,CAAC;cACjF,YAAY,EAAE,sBAACiB,WAAW;gBAAA,OAAK,MAAI,CAACwB,iBAAiB,CAACjC,KAAK,EAAES,WAAW,CAAC;cAAA;YAAC,EAC1E,CACE;UAAA,CACP,CAEJ;QAAA,EACJ,EACAe,QAAQ,CAACU,WAAW,CACjB;MAAA,CACP,CACS,CACI,CACd,CACF;IAEV;EAAC;EAAA;AAAA,EAlK+BC,iBAAK,CAACC,SAAS;AAAA;AAAA,iCAApCvC,YAAY,eACJ;EACjBhC,OAAO,EAAEpB,qBAAS,CAAC4F,MAAM,CAACC,UAAU;EACpC3B,SAAS,EAAElE,qBAAS,CAACM,MAAM;EAC3BW,KAAK,EAAElB,UAAU;EACjBmB,QAAQ,EAAElB,qBAAS,CAAC8F;AACtB,CAAC;AAAA,iCANU1C,YAAY,kBAQD,CAAC,CAAC;AA6J1B,IAAM2C,MAAM,GAAG,SAATA,MAAM,CAAIrF,KAAK;EAAA,OAAM;IACzBmE,SAAS,EAAE;MACT1C,eAAe,EAAEI,gBAAI,CAAC,GAAG,CAAC;MAC1ByD,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAE3D,gBAAI,CAAC,GAAG,CAAC;MACtB4D,OAAO,EAAEzF,KAAK,CAACI,OAAO,CAACC,IAAI,GAAG,CAAC;MAC/BF,MAAM,EAAEH,KAAK,CAACI,OAAO,CAACC;IACxB,CAAC;IACDsE,YAAY,EAAE;MACZhD,UAAU,EAAE3B,KAAK,CAACI,OAAO,CAACC,IAAI;MAC9B0B,aAAa,EAAE/B,KAAK,CAACI,OAAO,CAACC;IAC/B,CAAC;IACD2D,WAAW,EAAE;MACX9B,WAAW,EAAElC,KAAK,CAACI,OAAO,CAACC,IAAI;MAC/BF,MAAM,EAAEH,KAAK,CAACI,OAAO,CAACC;IACxB;EACF,CAAC;AAAA,CAAC;AAEF,IAAMqF,kBAAkB,GAAG,IAAA3F,kBAAU,EAACsF,MAAM,CAAC,CAAC3C,YAAY,CAAC;AAE3D,IAAMiD,OAAO,GAAG,SAAVA,OAAO,CAAIrF,KAAK,EAAK;EACzB,IAAMZ,MAAM,GAAGT,KAAK,CAACC,IAAI,CAACoB,KAAK,CAACC,KAAK,CAACb,MAAM,IAAI,EAAE,CAAC,CAACkG,OAAO,EAAE;EAC7D,IAAI/F,aAAa,GAAGZ,KAAK,CAACC,IAAI,CAACoB,KAAK,CAACC,KAAK,CAACV,aAAa,IAAI,EAAE,CAAC,CAAC+F,OAAO,EAAE;EAEzE,IAAIlG,MAAM,CAACsD,MAAM,GAAGnD,aAAa,CAACmD,MAAM,EAAE;IACxCnD,aAAa,GAAG,IAAAoD,iBAAK,EAACvD,MAAM,CAACsD,MAAM,GAAGnD,aAAa,CAACmD,MAAM,CAAC,CACxDlC,GAAG,CAAC;MAAA,OAAM,IAAI;IAAA,EAAC,CACfoC,MAAM,CAACrD,aAAa,CAAC;EAC1B;EAEA,IAAMU,KAAK,mCAAQD,KAAK,CAACC,KAAK;IAAEb,MAAM,EAANA,MAAM;IAAEG,aAAa,EAAbA;EAAa,EAAE;EAEvD,IAAMW,QAAQ,GAAG,SAAXA,QAAQ,CAAID,KAAK,EAAK;IAC1BD,KAAK,CAACE,QAAQ,iCACTD,KAAK;MACRb,MAAM,EAAET,KAAK,CAACC,IAAI,CAACqB,KAAK,CAACb,MAAM,IAAI,EAAE,CAAC,CAACkG,OAAO,EAAE;MAChD/F,aAAa,EAAEZ,KAAK,CAACC,IAAI,CAACqB,KAAK,CAACV,aAAa,IAAI,EAAE,CAAC,CAAC+F,OAAO;IAAE,GAC9D;EACJ,CAAC;EAED,oBAAO,gCAAC,kBAAkB;IAAC,KAAK,EAAErF,KAAM;IAAC,QAAQ,EAAEC;EAAS,EAAG;AACjE,CAAC;AAEDmF,OAAO,CAACE,SAAS,GAAG;EAClBtF,KAAK,EAAElB,UAAU;EACjByG,QAAQ,EAAExG,qBAAS,CAAC8F,IAAI;EACxB5E,QAAQ,EAAElB,qBAAS,CAAC8F;AACtB,CAAC;AAAC,eAEaO,OAAO;AAAA"}
|
|
1
|
+
{"version":3,"sources":["../src/authoring.jsx"],"names":["log","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","MaxPoints","theme","formControl","minWidth","margin","spacing","unit","props","value","onChange","max","classes","e","target","map","v","checkSampleAnswer","sampleAnswer","PointConfig","pointConfig","row","display","width","position","editor","backgroundColor","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","content","showSampleAnswer","icon","onMenuChange","onSampleChange","RawAuthoring","destination","source","index","maxPoints","currentMax","length","concat","type","items","clickedItem","changeContent","className","excludeZeroEnabled","maxPointsEnabled","Number","isFinite","console","warn","rubricTitle","changeMaxPoints","excludeZeros","container","dragEnd","provided","droppableProps","innerRef","p","shouldRenderPoint","toString","configHolder","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","object","isRequired","func","styles","borderWidth","borderStyle","borderColor","padding","StyledRawAuthoring","Reverse","reverse","propTypes","getIndex"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport FormControl from '@material-ui/core/FormControl';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport times from 'lodash/times';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport grey from '@material-ui/core/colors/grey';\nimport Typography from '@material-ui/core/Typography';\nimport DragIndicator from '@material-ui/icons/DragIndicator';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport debug from 'debug';\nimport takeRight from 'lodash/takeRight';\nimport PointMenu from './point-menu';\n\nimport range from 'lodash/range';\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string),\n});\n\nconst MaxPoints = withStyles((theme) => ({\n formControl: {\n minWidth: '120px',\n margin: theme.spacing.unit,\n },\n}))((props) => {\n const { value, onChange, max, classes } = props;\n\n return (\n <FormControl className={classes.formControl} variant=\"outlined\">\n <InputLabel width={100} htmlFor=\"...\">\n Max Points\n </InputLabel>\n <Select value={value} onChange={(e) => onChange(e.target.value)} input={<OutlinedInput labelWidth={80} />}>\n {range(1, max).map((v) => (\n <MenuItem key={`${v}`} value={v}>\n {v}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n});\n\n// if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed\n// if the value is '', the Sample Answer input field will be empty\nconst checkSampleAnswer = (sampleAnswer) => sampleAnswer === null || sampleAnswer === 'null';\n\nexport const PointConfig = withStyles((theme) => ({\n pointConfig: {},\n row: {\n display: 'flex',\n width: '100%',\n position: 'relative',\n },\n editor: {\n width: '100%',\n backgroundColor: 'white !important',\n },\n dragIndicator: {\n paddingTop: theme.spacing.unit,\n color: grey[500],\n },\n pointsLabel: {\n color: grey[500],\n paddingBottom: theme.spacing.unit,\n textTransform: 'uppercase',\n },\n sampleAnswersEditor: {\n paddingLeft: theme.spacing.unit * 3,\n },\n pointMenu: {\n position: 'absolute',\n right: 0,\n },\n}))((props) => {\n const { points, content, classes, sampleAnswer } = props;\n const pointsLabel = `${points} ${points <= 1 ? 'pt' : 'pts'}`;\n const showSampleAnswer = checkSampleAnswer(sampleAnswer);\n\n return (\n <div className={classes.pointConfig}>\n <Typography variant=\"overline\" className={classes.pointsLabel}>\n {pointsLabel}\n </Typography>\n <div className={classes.row}>\n <DragIndicator className={classes.dragIndicator} />\n <EditableHtml className={classes.editor} markup={content} onChange={props.onChange} />\n <PointMenu\n classes={{\n icon: classes.pointMenu,\n }}\n showSampleAnswer={showSampleAnswer}\n onChange={props.onMenuChange}\n />\n </div>\n {!showSampleAnswer && (\n <div className={classes.sampleAnswersEditor}>\n <Typography variant=\"overline\" className={classes.dragIndicator}>\n Sample Response\n </Typography>\n <EditableHtml className={classes.editor} markup={sampleAnswer} onChange={props.onSampleChange} />\n </div>\n )}\n </div>\n );\n});\n\nexport class RawAuthoring extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n value: RubricType,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {};\n\n dragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const { value, onChange } = this.props;\n\n const points = reorder(value.points, result.source.index, result.destination.index);\n const sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);\n\n onChange({ ...value, points, sampleAnswers });\n };\n\n changeMaxPoints = (maxPoints) => {\n const { value, onChange } = this.props;\n const currentMax = value.points.length - 1;\n\n log('current', currentMax, 'new: ', maxPoints);\n\n let points, sampleAnswers;\n if (maxPoints > currentMax) {\n points = times(maxPoints - currentMax)\n .map(() => '')\n .concat(value.points);\n sampleAnswers = times(maxPoints - currentMax)\n .map(() => null)\n .concat(value.sampleAnswers);\n }\n\n if (maxPoints < currentMax) {\n log('less than');\n points = takeRight(value.points, maxPoints + 1);\n sampleAnswers = takeRight(value.sampleAnswers, maxPoints + 1);\n }\n\n if (points) {\n onChange({ ...value, points, sampleAnswers });\n }\n };\n\n changeContent = (index, content, type) => {\n // type could be 'points' or 'sampleAnswers'\n log(`changeModel[${type}]:`, index, content);\n\n if (type !== 'points' && type !== 'sampleAnswers') {\n return;\n }\n\n const { value, onChange } = this.props;\n const items = value[type] && Array.from(value[type]);\n\n items.splice(index, 1, content);\n log(`changeModel[${type}]:`, items);\n\n onChange({ ...value, [type]: items });\n };\n\n excludeZeros = () => {\n const { value, onChange } = this.props;\n\n onChange({ ...value, excludeZero: !value.excludeZero });\n };\n\n shouldRenderPoint = (index, value) => {\n if (!value.excludeZero) {\n return true;\n } else {\n if (index < value.points.length - 1) {\n return true;\n } else if (index === value.points.length - 1) {\n return false;\n }\n\n return true;\n }\n };\n\n onPointMenuChange = (index, clickedItem) => {\n if (clickedItem === 'sample') {\n const { value } = this.props;\n const sampleAnswers = Array.from(value.sampleAnswers || []);\n\n if (checkSampleAnswer(sampleAnswers[index])) {\n // an empty string will display an empty Sample Answer input field\n this.changeContent(index, '', 'sampleAnswers');\n } else {\n // when the content is null or 'null', the Sample Answer input field will not be displayed\n this.changeContent(index, null, 'sampleAnswers');\n }\n }\n };\n\n render() {\n const { classes, className, value } = this.props;\n let { excludeZeroEnabled = true, maxPointsEnabled = true } = value || {};\n\n if (value && Number.isFinite(value.maxPoints)) {\n // eslint-disable-next-line no-console\n console.warn('maxPoints is deprecated - remove from model');\n }\n\n return (\n <div className={classNames(classes.class, className)}>\n <Typography variant=\"h5\" className={classes.rubricTitle}>\n Rubric\n </Typography>\n <FormGroup row>\n {maxPointsEnabled && <MaxPoints max={10} value={value.points.length - 1} onChange={this.changeMaxPoints} />}\n {excludeZeroEnabled && (\n <FormControlLabel\n label=\"Exclude zeros\"\n control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}\n />\n )}\n </FormGroup>\n <div className={classes.container}>\n <DragDropContext onDragEnd={this.dragEnd}>\n <Droppable droppableId=\"droppable\">\n {(provided) => (\n <div {...provided.droppableProps} ref={provided.innerRef}>\n {value.points.map(\n (p, index) =>\n this.shouldRenderPoint(index, value) && (\n <Draggable key={`${p.points}-${index}`} index={index} draggableId={index.toString()}>\n {(provided) => (\n <div\n className={classes.configHolder}\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <PointConfig\n points={value.points.length - 1 - index}\n content={p}\n sampleAnswer={value.sampleAnswers && value.sampleAnswers[index]}\n onChange={(content) => this.changeContent(index, content, 'points')}\n onSampleChange={(content) => this.changeContent(index, content, 'sampleAnswers')}\n onMenuChange={(clickedItem) => this.onPointMenuChange(index, clickedItem)}\n />\n </div>\n )}\n </Draggable>\n ),\n )}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n container: {\n backgroundColor: grey[200],\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: grey[300],\n padding: theme.spacing.unit * 2,\n margin: theme.spacing.unit,\n },\n configHolder: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n },\n rubricTitle: {\n paddingLeft: theme.spacing.unit,\n margin: theme.spacing.unit,\n },\n});\n\nconst StyledRawAuthoring = withStyles(styles)(RawAuthoring);\n\nconst Reverse = (props) => {\n const points = Array.from(props.value.points || []).reverse();\n let sampleAnswers = Array.from(props.value.sampleAnswers || []).reverse();\n\n if (points.length > sampleAnswers.length) {\n sampleAnswers = times(points.length - sampleAnswers.length)\n .map(() => null)\n .concat(sampleAnswers);\n }\n\n const value = { ...props.value, points, sampleAnswers };\n\n const onChange = (value) => {\n props.onChange({\n ...value,\n points: Array.from(value.points || []).reverse(),\n sampleAnswers: Array.from(value.sampleAnswers || []).reverse(),\n });\n };\n\n return <StyledRawAuthoring value={value} onChange={onChange} />;\n};\n\nReverse.propTypes = {\n value: RubricType,\n getIndex: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default Reverse;\n"],"file":"authoring.js"}
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
@@ -11,7 +12,9 @@ Object.defineProperty(exports, "Authoring", {
|
|
|
11
12
|
}
|
|
12
13
|
});
|
|
13
14
|
exports.RUBRIC_TYPES = void 0;
|
|
15
|
+
|
|
14
16
|
var _authoring = _interopRequireDefault(require("./authoring"));
|
|
17
|
+
|
|
15
18
|
var RUBRIC_TYPES = {
|
|
16
19
|
SIMPLE_RUBRIC: 'simpleRubric',
|
|
17
20
|
MULTI_TRAIT_RUBRIC: 'multiTraitRubric'
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,aAAa,EAAE,cADI;AAEnBC,EAAAA,kBAAkB,EAAE;AAFD,CAArB","sourcesContent":["import Authoring from './authoring';\n\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric',\n};\n\nexport { Authoring, RUBRIC_TYPES };\n"],"file":"index.js"}
|
package/lib/point-menu.js
CHANGED
|
@@ -1,31 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = exports.IconMenu = void 0;
|
|
9
|
+
|
|
8
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
9
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
10
14
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
11
16
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
12
18
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
13
20
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
14
22
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
15
24
|
var _Menu = _interopRequireDefault(require("@material-ui/core/Menu"));
|
|
25
|
+
|
|
16
26
|
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
27
|
+
|
|
17
28
|
var _MoreVert = _interopRequireDefault(require("@material-ui/icons/MoreVert"));
|
|
29
|
+
|
|
18
30
|
var _MoreHoriz = _interopRequireDefault(require("@material-ui/icons/MoreHoriz"));
|
|
31
|
+
|
|
19
32
|
var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
|
|
33
|
+
|
|
20
34
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
35
|
+
|
|
21
36
|
var _react = _interopRequireDefault(require("react"));
|
|
37
|
+
|
|
22
38
|
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); }; }
|
|
39
|
+
|
|
23
40
|
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; } }
|
|
41
|
+
|
|
24
42
|
var IconMenu = /*#__PURE__*/function (_React$Component) {
|
|
25
43
|
(0, _inherits2["default"])(IconMenu, _React$Component);
|
|
44
|
+
|
|
26
45
|
var _super = _createSuper(IconMenu);
|
|
46
|
+
|
|
27
47
|
function IconMenu(props) {
|
|
28
48
|
var _this;
|
|
49
|
+
|
|
29
50
|
(0, _classCallCheck2["default"])(this, IconMenu);
|
|
30
51
|
_this = _super.call(this, props);
|
|
31
52
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClick", function (event) {
|
|
@@ -45,24 +66,29 @@ var IconMenu = /*#__PURE__*/function (_React$Component) {
|
|
|
45
66
|
};
|
|
46
67
|
return _this;
|
|
47
68
|
}
|
|
69
|
+
|
|
48
70
|
(0, _createClass2["default"])(IconMenu, [{
|
|
49
71
|
key: "render",
|
|
50
72
|
value: function render() {
|
|
51
73
|
var _this2 = this;
|
|
74
|
+
|
|
52
75
|
var _this$props = this.props,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
76
|
+
opts = _this$props.opts,
|
|
77
|
+
onClick = _this$props.onClick,
|
|
78
|
+
classes = _this$props.classes;
|
|
56
79
|
var _this$state = this.state,
|
|
57
|
-
|
|
58
|
-
|
|
80
|
+
open = _this$state.open,
|
|
81
|
+
anchorEl = _this$state.anchorEl;
|
|
59
82
|
var keys = Object.keys(opts) || [];
|
|
83
|
+
|
|
60
84
|
var handleMenuClick = function handleMenuClick(key) {
|
|
61
85
|
return function () {
|
|
62
86
|
onClick(key);
|
|
87
|
+
|
|
63
88
|
_this2.handleRequestClose();
|
|
64
89
|
};
|
|
65
90
|
};
|
|
91
|
+
|
|
66
92
|
var iconColor = open ? 'inherit' : 'disabled';
|
|
67
93
|
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
68
94
|
onClick: this.handleClick
|
|
@@ -94,26 +120,31 @@ var IconMenu = /*#__PURE__*/function (_React$Component) {
|
|
|
94
120
|
}]);
|
|
95
121
|
return IconMenu;
|
|
96
122
|
}(_react["default"].Component);
|
|
123
|
+
|
|
97
124
|
exports.IconMenu = IconMenu;
|
|
98
125
|
(0, _defineProperty2["default"])(IconMenu, "propTypes", {
|
|
99
126
|
opts: _propTypes["default"].object,
|
|
100
127
|
onClick: _propTypes["default"].func.isRequired,
|
|
101
128
|
classes: _propTypes["default"].object.isRequired
|
|
102
129
|
});
|
|
130
|
+
|
|
103
131
|
var PointMenu = /*#__PURE__*/function (_React$Component2) {
|
|
104
132
|
(0, _inherits2["default"])(PointMenu, _React$Component2);
|
|
133
|
+
|
|
105
134
|
var _super2 = _createSuper(PointMenu);
|
|
135
|
+
|
|
106
136
|
function PointMenu() {
|
|
107
137
|
(0, _classCallCheck2["default"])(this, PointMenu);
|
|
108
138
|
return _super2.apply(this, arguments);
|
|
109
139
|
}
|
|
140
|
+
|
|
110
141
|
(0, _createClass2["default"])(PointMenu, [{
|
|
111
142
|
key: "render",
|
|
112
143
|
value: function render() {
|
|
113
144
|
var _this$props2 = this.props,
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
145
|
+
onChange = _this$props2.onChange,
|
|
146
|
+
classes = _this$props2.classes,
|
|
147
|
+
showSampleAnswer = _this$props2.showSampleAnswer;
|
|
117
148
|
var sampleText = showSampleAnswer ? 'Provide Sample Response' : 'Remove Sample Response';
|
|
118
149
|
return /*#__PURE__*/_react["default"].createElement(IconMenu, {
|
|
119
150
|
onClick: function onClick(key) {
|
|
@@ -128,6 +159,7 @@ var PointMenu = /*#__PURE__*/function (_React$Component2) {
|
|
|
128
159
|
}]);
|
|
129
160
|
return PointMenu;
|
|
130
161
|
}(_react["default"].Component);
|
|
162
|
+
|
|
131
163
|
exports["default"] = PointMenu;
|
|
132
164
|
(0, _defineProperty2["default"])(PointMenu, "propTypes", {
|
|
133
165
|
onChange: _propTypes["default"].func.isRequired,
|
package/lib/point-menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/point-menu.jsx"],"names":["IconMenu","props","event","setState","open","anchorEl","currentTarget","state","undefined","opts","onClick","classes","keys","Object","handleMenuClick","key","handleRequestClose","iconColor","handleClick","icon","transform","vertical","horizontal","map","k","index","React","Component","PropTypes","object","func","isRequired","PointMenu","onChange","showSampleAnswer","sampleText","sample","bool"],"mappings":"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","sourcesContent":["import Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nexport class IconMenu extends React.Component {\n static propTypes = {\n opts: PropTypes.object,\n onClick: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: undefined,\n open: false,\n };\n }\n\n handleClick = (event) => this.setState({ open: true, anchorEl: event.currentTarget });\n\n handleRequestClose = () => this.setState({ open: false });\n\n render() {\n const { opts, onClick, classes } = this.props;\n const { open, anchorEl } = this.state;\n const keys = Object.keys(opts) || [];\n\n const handleMenuClick = (key) => () => {\n onClick(key);\n this.handleRequestClose();\n };\n\n const iconColor = open ? 'inherit' : 'disabled';\n\n return (\n <div>\n <div onClick={this.handleClick}>\n <IconButton className={classes.icon}>\n {open ? <MoreVertIcon color={iconColor} /> : <MoreHorizIcon color={iconColor} />}\n </IconButton>\n </div>\n <Menu\n id=\"point-menu\"\n anchorEl={anchorEl}\n open={open}\n onClose={this.handleRequestClose}\n style={{ transform: 'translate(-15px, -15px)' }}\n transformOrigin={{\n vertical: 'center',\n horizontal: 'right',\n }}\n >\n {keys.map((k, index) => (\n <MenuItem key={index} onClick={handleMenuClick(k)}>\n {opts[k]}\n </MenuItem>\n ))}\n </Menu>\n </div>\n );\n }\n}\n\nexport default class PointMenu extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n showSampleAnswer: PropTypes.bool.isRequired,\n };\n\n static defaultProps = {\n classes: {},\n };\n\n render() {\n const { onChange, classes, showSampleAnswer } = this.props;\n const sampleText = showSampleAnswer ? 'Provide Sample Response' : 'Remove Sample Response';\n\n return (\n <IconMenu\n onClick={(key) => onChange(key)}\n opts={{\n sample: sampleText,\n }}\n classes={classes}\n />\n );\n }\n}\n"],"file":"point-menu.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/rubric",
|
|
3
|
-
"version": "0.6.9-next.
|
|
3
|
+
"version": "0.6.9-next.54+390d28c4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.3",
|
|
11
11
|
"@material-ui/icons": "^3.0.2",
|
|
12
|
-
"@pie-lib/editable-html": "^9.3.1-next.
|
|
12
|
+
"@pie-lib/editable-html": "^9.3.1-next.54+390d28c4",
|
|
13
13
|
"debug": "^4.1.1",
|
|
14
14
|
"editable-html": "npm:@pie-lib/editable-html@^7.21.0",
|
|
15
15
|
"lodash": "^4.17.11",
|
|
@@ -18,5 +18,5 @@
|
|
|
18
18
|
"react-beautiful-dnd": "^11.0.2",
|
|
19
19
|
"react-dom": "^16.9.0"
|
|
20
20
|
},
|
|
21
|
-
"gitHead": "
|
|
21
|
+
"gitHead": "390d28c479452d58978984c961ed56716f156f91"
|
|
22
22
|
}
|