@pie-lib/rubric 0.4.9 → 0.4.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/lib/authoring.js +59 -53
- package/lib/authoring.js.map +1 -1
- package/lib/point-menu.js +26 -22
- package/lib/point-menu.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.4.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.11...@pie-lib/rubric@0.4.12) (2022-03-07)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/rubric
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [0.4.11](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.10...@pie-lib/rubric@0.4.11) (2022-03-07)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-lib/rubric
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [0.4.10](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.9...@pie-lib/rubric@0.4.10) (2022-02-21)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-lib/rubric
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
## [0.4.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.8...@pie-lib/rubric@0.4.9) (2022-02-21)
|
|
7
31
|
|
|
8
32
|
**Note:** Version bump only for package @pie-lib/rubric
|
package/lib/authoring.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports["default"] = exports.
|
|
8
|
+
exports["default"] = exports.RubricType = exports.RawAuthoring = exports.PointConfig = void 0;
|
|
7
9
|
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
9
11
|
|
|
@@ -51,37 +53,43 @@ var _range = _interopRequireDefault(require("lodash/range"));
|
|
|
51
53
|
|
|
52
54
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
53
55
|
|
|
54
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
55
|
-
|
|
56
56
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
57
57
|
|
|
58
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
58
|
+
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; }
|
|
59
59
|
|
|
60
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
60
|
+
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) { _defineProperty(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; }
|
|
61
61
|
|
|
62
62
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
63
63
|
|
|
64
64
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
65
65
|
|
|
66
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
66
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
67
67
|
|
|
68
|
-
function
|
|
68
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
69
69
|
|
|
70
|
-
function
|
|
70
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
71
|
+
|
|
72
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
73
|
+
|
|
74
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
71
75
|
|
|
72
76
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
73
77
|
|
|
74
|
-
function
|
|
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; } }
|
|
75
79
|
|
|
76
|
-
function
|
|
80
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
77
81
|
|
|
78
82
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
79
83
|
|
|
80
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
|
84
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
85
|
+
|
|
86
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
81
87
|
|
|
82
|
-
function
|
|
88
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
83
89
|
|
|
84
|
-
function
|
|
90
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
91
|
+
|
|
92
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
85
93
|
|
|
86
94
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
87
95
|
|
|
@@ -117,22 +125,22 @@ var MaxPoints = (0, _styles.withStyles)(function (theme) {
|
|
|
117
125
|
_onChange = props.onChange,
|
|
118
126
|
max = props.max,
|
|
119
127
|
classes = props.classes;
|
|
120
|
-
return _react["default"].createElement(_FormControl["default"], {
|
|
128
|
+
return /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
|
|
121
129
|
className: classes.formControl,
|
|
122
130
|
variant: "outlined"
|
|
123
|
-
}, _react["default"].createElement(_InputLabel["default"], {
|
|
131
|
+
}, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], {
|
|
124
132
|
width: 100,
|
|
125
133
|
htmlFor: "..."
|
|
126
|
-
}, "Max Points"), _react["default"].createElement(_Select["default"], {
|
|
134
|
+
}, "Max Points"), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
127
135
|
value: value,
|
|
128
136
|
onChange: function onChange(e) {
|
|
129
137
|
return _onChange(e.target.value);
|
|
130
138
|
},
|
|
131
|
-
input: _react["default"].createElement(_OutlinedInput["default"], {
|
|
139
|
+
input: /*#__PURE__*/_react["default"].createElement(_OutlinedInput["default"], {
|
|
132
140
|
labelWidth: 80
|
|
133
141
|
})
|
|
134
142
|
}, (0, _range["default"])(1, max).map(function (v) {
|
|
135
|
-
return _react["default"].createElement(_MenuItem["default"], {
|
|
143
|
+
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
136
144
|
key: "".concat(v),
|
|
137
145
|
value: v
|
|
138
146
|
}, v);
|
|
@@ -180,31 +188,31 @@ var PointConfig = (0, _styles.withStyles)(function (theme) {
|
|
|
180
188
|
sampleAnswer = props.sampleAnswer;
|
|
181
189
|
var pointsLabel = "".concat(points, " ").concat(points <= 1 ? 'pt' : 'pts');
|
|
182
190
|
var showSampleAnswer = checkSampleAnswer(sampleAnswer);
|
|
183
|
-
return _react["default"].createElement("div", {
|
|
191
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
184
192
|
className: classes.pointConfig
|
|
185
|
-
}, _react["default"].createElement(_Typography["default"], {
|
|
193
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
186
194
|
variant: "overline",
|
|
187
195
|
className: classes.pointsLabel
|
|
188
|
-
}, pointsLabel), _react["default"].createElement("div", {
|
|
196
|
+
}, pointsLabel), /*#__PURE__*/_react["default"].createElement("div", {
|
|
189
197
|
className: classes.row
|
|
190
|
-
}, _react["default"].createElement(_DragIndicator["default"], {
|
|
198
|
+
}, /*#__PURE__*/_react["default"].createElement(_DragIndicator["default"], {
|
|
191
199
|
className: classes.dragIndicator
|
|
192
|
-
}), _react["default"].createElement(_editableHtml["default"], {
|
|
200
|
+
}), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
193
201
|
className: classes.editor,
|
|
194
202
|
markup: content,
|
|
195
203
|
onChange: props.onChange
|
|
196
|
-
}), _react["default"].createElement(_pointMenu["default"], {
|
|
204
|
+
}), /*#__PURE__*/_react["default"].createElement(_pointMenu["default"], {
|
|
197
205
|
classes: {
|
|
198
206
|
icon: classes.pointMenu
|
|
199
207
|
},
|
|
200
208
|
showSampleAnswer: showSampleAnswer,
|
|
201
209
|
onChange: props.onMenuChange
|
|
202
|
-
})), !showSampleAnswer && _react["default"].createElement("div", {
|
|
210
|
+
})), !showSampleAnswer && /*#__PURE__*/_react["default"].createElement("div", {
|
|
203
211
|
className: classes.sampleAnswersEditor
|
|
204
|
-
}, _react["default"].createElement(_Typography["default"], {
|
|
212
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
205
213
|
variant: "overline",
|
|
206
214
|
className: classes.dragIndicator
|
|
207
|
-
}, "Sample Response"), _react["default"].createElement(_editableHtml["default"], {
|
|
215
|
+
}, "Sample Response"), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
208
216
|
className: classes.editor,
|
|
209
217
|
markup: sampleAnswer,
|
|
210
218
|
onChange: props.onSampleChange
|
|
@@ -212,14 +220,12 @@ var PointConfig = (0, _styles.withStyles)(function (theme) {
|
|
|
212
220
|
});
|
|
213
221
|
exports.PointConfig = PointConfig;
|
|
214
222
|
|
|
215
|
-
var RawAuthoring =
|
|
216
|
-
/*#__PURE__*/
|
|
217
|
-
function (_React$Component) {
|
|
223
|
+
var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
218
224
|
_inherits(RawAuthoring, _React$Component);
|
|
219
225
|
|
|
220
|
-
|
|
221
|
-
var _getPrototypeOf2;
|
|
226
|
+
var _super = _createSuper(RawAuthoring);
|
|
222
227
|
|
|
228
|
+
function RawAuthoring() {
|
|
223
229
|
var _this;
|
|
224
230
|
|
|
225
231
|
_classCallCheck(this, RawAuthoring);
|
|
@@ -228,7 +234,7 @@ function (_React$Component) {
|
|
|
228
234
|
args[_key] = arguments[_key];
|
|
229
235
|
}
|
|
230
236
|
|
|
231
|
-
_this =
|
|
237
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
232
238
|
|
|
233
239
|
_defineProperty(_assertThisInitialized(_this), "dragEnd", function (result) {
|
|
234
240
|
if (!result.destination) {
|
|
@@ -240,7 +246,7 @@ function (_React$Component) {
|
|
|
240
246
|
onChange = _this$props.onChange;
|
|
241
247
|
var points = reorder(value.points, result.source.index, result.destination.index);
|
|
242
248
|
var sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);
|
|
243
|
-
onChange(_objectSpread({}, value, {
|
|
249
|
+
onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
244
250
|
points: points,
|
|
245
251
|
sampleAnswers: sampleAnswers
|
|
246
252
|
}));
|
|
@@ -270,7 +276,7 @@ function (_React$Component) {
|
|
|
270
276
|
}
|
|
271
277
|
|
|
272
278
|
if (points) {
|
|
273
|
-
onChange(_objectSpread({}, value, {
|
|
279
|
+
onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
274
280
|
points: points,
|
|
275
281
|
sampleAnswers: sampleAnswers
|
|
276
282
|
}));
|
|
@@ -291,14 +297,14 @@ function (_React$Component) {
|
|
|
291
297
|
var items = value[type] && Array.from(value[type]);
|
|
292
298
|
items.splice(index, 1, content);
|
|
293
299
|
log("changeModel[".concat(type, "]:"), items);
|
|
294
|
-
onChange(_objectSpread({}, value, _defineProperty({}, type, items)));
|
|
300
|
+
onChange(_objectSpread(_objectSpread({}, value), {}, _defineProperty({}, type, items)));
|
|
295
301
|
});
|
|
296
302
|
|
|
297
303
|
_defineProperty(_assertThisInitialized(_this), "excludeZeros", function () {
|
|
298
304
|
var _this$props4 = _this.props,
|
|
299
305
|
value = _this$props4.value,
|
|
300
306
|
onChange = _this$props4.onChange;
|
|
301
|
-
onChange(_objectSpread({}, value, {
|
|
307
|
+
onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
302
308
|
excludeZero: !value.excludeZero
|
|
303
309
|
}));
|
|
304
310
|
});
|
|
@@ -350,42 +356,42 @@ function (_React$Component) {
|
|
|
350
356
|
console.warn('maxPoints is deprecated - remove from model');
|
|
351
357
|
}
|
|
352
358
|
|
|
353
|
-
return _react["default"].createElement("div", {
|
|
359
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
354
360
|
className: (0, _classnames["default"])(classes["class"], className)
|
|
355
|
-
}, _react["default"].createElement(_Typography["default"], {
|
|
361
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
356
362
|
variant: "h5",
|
|
357
363
|
className: classes.rubricTitle
|
|
358
|
-
}, "Rubric"), _react["default"].createElement(_FormGroup["default"], {
|
|
364
|
+
}, "Rubric"), /*#__PURE__*/_react["default"].createElement(_FormGroup["default"], {
|
|
359
365
|
row: true
|
|
360
|
-
}, _react["default"].createElement(MaxPoints, {
|
|
366
|
+
}, /*#__PURE__*/_react["default"].createElement(MaxPoints, {
|
|
361
367
|
max: 10,
|
|
362
368
|
value: value.points.length - 1,
|
|
363
369
|
onChange: this.changeMaxPoints
|
|
364
|
-
}), _react["default"].createElement(_FormControlLabel["default"], {
|
|
370
|
+
}), /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
|
|
365
371
|
label: "Exclude zeros",
|
|
366
|
-
control: _react["default"].createElement(_Checkbox["default"], {
|
|
372
|
+
control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
367
373
|
checked: value.excludeZero,
|
|
368
374
|
onChange: this.excludeZeros
|
|
369
375
|
})
|
|
370
|
-
})), _react["default"].createElement("div", {
|
|
376
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
371
377
|
className: classes.container
|
|
372
|
-
}, _react["default"].createElement(_reactBeautifulDnd.DragDropContext, {
|
|
378
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.DragDropContext, {
|
|
373
379
|
onDragEnd: this.dragEnd
|
|
374
|
-
}, _react["default"].createElement(_reactBeautifulDnd.Droppable, {
|
|
380
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.Droppable, {
|
|
375
381
|
droppableId: "droppable"
|
|
376
382
|
}, function (provided) {
|
|
377
|
-
return _react["default"].createElement("div", _extends({}, provided.droppableProps, {
|
|
383
|
+
return /*#__PURE__*/_react["default"].createElement("div", _extends({}, provided.droppableProps, {
|
|
378
384
|
ref: provided.innerRef
|
|
379
385
|
}), value.points.map(function (p, index) {
|
|
380
|
-
return _this2.shouldRenderPoint(index, value) && _react["default"].createElement(_reactBeautifulDnd.Draggable, {
|
|
386
|
+
return _this2.shouldRenderPoint(index, value) && /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.Draggable, {
|
|
381
387
|
key: "".concat(p.points, "-").concat(index),
|
|
382
388
|
index: index,
|
|
383
389
|
draggableId: index.toString()
|
|
384
390
|
}, function (provided) {
|
|
385
|
-
return _react["default"].createElement("div", _extends({
|
|
391
|
+
return /*#__PURE__*/_react["default"].createElement("div", _extends({
|
|
386
392
|
className: classes.configHolder,
|
|
387
393
|
ref: provided.innerRef
|
|
388
|
-
}, provided.draggableProps, provided.dragHandleProps), _react["default"].createElement(PointConfig, {
|
|
394
|
+
}, provided.draggableProps, provided.dragHandleProps), /*#__PURE__*/_react["default"].createElement(PointConfig, {
|
|
389
395
|
points: value.points.length - 1 - index,
|
|
390
396
|
content: p,
|
|
391
397
|
sampleAnswer: value.sampleAnswers && value.sampleAnswers[index],
|
|
@@ -452,19 +458,19 @@ var Reverse = function Reverse(props) {
|
|
|
452
458
|
}).concat(sampleAnswers);
|
|
453
459
|
}
|
|
454
460
|
|
|
455
|
-
var value = _objectSpread({}, props.value, {
|
|
461
|
+
var value = _objectSpread(_objectSpread({}, props.value), {}, {
|
|
456
462
|
points: points,
|
|
457
463
|
sampleAnswers: sampleAnswers
|
|
458
464
|
});
|
|
459
465
|
|
|
460
466
|
var onChange = function onChange(value) {
|
|
461
|
-
props.onChange(_objectSpread({}, value, {
|
|
467
|
+
props.onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
462
468
|
points: Array.from(value.points || []).reverse(),
|
|
463
469
|
sampleAnswers: Array.from(value.sampleAnswers || []).reverse()
|
|
464
470
|
}));
|
|
465
471
|
};
|
|
466
472
|
|
|
467
|
-
return _react["default"].createElement(StyledRawAuthoring, {
|
|
473
|
+
return /*#__PURE__*/_react["default"].createElement(StyledRawAuthoring, {
|
|
468
474
|
value: value,
|
|
469
475
|
onChange: onChange
|
|
470
476
|
});
|
package/lib/authoring.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","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\n value={value}\n onChange={e => onChange(e.target.value)}\n input={<OutlinedInput labelWidth={80} />}\n >\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\n className={classes.editor}\n markup={sampleAnswer}\n onChange={props.onSampleChange}\n />\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(\n value.sampleAnswers,\n result.source.index,\n result.destination.index\n );\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\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 <MaxPoints max={10} value={value.points.length - 1} onChange={this.changeMaxPoints} />\n <FormControlLabel\n label=\"Exclude zeros\"\n control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}\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\n key={`${p.points}-${index}`}\n index={index}\n draggableId={index.toString()}\n >\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 =>\n this.changeContent(index, content, 'sampleAnswers')\n }\n onMenuChange={clickedItem =>\n this.onPointMenuChange(index, clickedItem)\n }\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"}
|
|
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","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\n value={value}\n onChange={e => onChange(e.target.value)}\n input={<OutlinedInput labelWidth={80} />}\n >\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\n className={classes.editor}\n markup={sampleAnswer}\n onChange={props.onSampleChange}\n />\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(\n value.sampleAnswers,\n result.source.index,\n result.destination.index\n );\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\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 <MaxPoints max={10} value={value.points.length - 1} onChange={this.changeMaxPoints} />\n <FormControlLabel\n label=\"Exclude zeros\"\n control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}\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\n key={`${p.points}-${index}`}\n index={index}\n draggableId={index.toString()}\n >\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 =>\n this.changeContent(index, content, 'sampleAnswers')\n }\n onMenuChange={clickedItem =>\n this.onPointMenuChange(index, clickedItem)\n }\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/point-menu.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -21,37 +23,39 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
21
23
|
|
|
22
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
25
|
|
|
24
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
25
|
-
|
|
26
26
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
27
27
|
|
|
28
28
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
29
29
|
|
|
30
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
30
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
31
31
|
|
|
32
|
-
function
|
|
32
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
33
33
|
|
|
34
|
-
function
|
|
34
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
35
|
+
|
|
36
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
37
|
+
|
|
38
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
35
39
|
|
|
36
40
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
37
41
|
|
|
38
|
-
function
|
|
42
|
+
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; } }
|
|
39
43
|
|
|
40
|
-
function
|
|
44
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
41
45
|
|
|
42
46
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
43
47
|
|
|
44
|
-
var IconMenu =
|
|
45
|
-
/*#__PURE__*/
|
|
46
|
-
function (_React$Component) {
|
|
48
|
+
var IconMenu = /*#__PURE__*/function (_React$Component) {
|
|
47
49
|
_inherits(IconMenu, _React$Component);
|
|
48
50
|
|
|
51
|
+
var _super = _createSuper(IconMenu);
|
|
52
|
+
|
|
49
53
|
function IconMenu(props) {
|
|
50
54
|
var _this;
|
|
51
55
|
|
|
52
56
|
_classCallCheck(this, IconMenu);
|
|
53
57
|
|
|
54
|
-
_this =
|
|
58
|
+
_this = _super.call(this, props);
|
|
55
59
|
|
|
56
60
|
_defineProperty(_assertThisInitialized(_this), "handleClick", function (event) {
|
|
57
61
|
return _this.setState({
|
|
@@ -96,15 +100,15 @@ function (_React$Component) {
|
|
|
96
100
|
};
|
|
97
101
|
|
|
98
102
|
var iconColor = open ? 'inherit' : 'disabled';
|
|
99
|
-
return _react["default"].createElement("div", null, _react["default"].createElement("div", {
|
|
103
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
100
104
|
onClick: this.handleClick
|
|
101
|
-
}, _react["default"].createElement(_IconButton["default"], {
|
|
105
|
+
}, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
102
106
|
className: classes.icon
|
|
103
|
-
}, open ? _react["default"].createElement(_MoreVert["default"], {
|
|
107
|
+
}, open ? /*#__PURE__*/_react["default"].createElement(_MoreVert["default"], {
|
|
104
108
|
color: iconColor
|
|
105
|
-
}) : _react["default"].createElement(_MoreHoriz["default"], {
|
|
109
|
+
}) : /*#__PURE__*/_react["default"].createElement(_MoreHoriz["default"], {
|
|
106
110
|
color: iconColor
|
|
107
|
-
}))), _react["default"].createElement(_Menu["default"], {
|
|
111
|
+
}))), /*#__PURE__*/_react["default"].createElement(_Menu["default"], {
|
|
108
112
|
id: "point-menu",
|
|
109
113
|
anchorEl: anchorEl,
|
|
110
114
|
open: open,
|
|
@@ -117,7 +121,7 @@ function (_React$Component) {
|
|
|
117
121
|
horizontal: 'right'
|
|
118
122
|
}
|
|
119
123
|
}, keys.map(function (k, index) {
|
|
120
|
-
return _react["default"].createElement(_MenuItem["default"], {
|
|
124
|
+
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
121
125
|
key: index,
|
|
122
126
|
onClick: handleMenuClick(k)
|
|
123
127
|
}, opts[k]);
|
|
@@ -136,15 +140,15 @@ _defineProperty(IconMenu, "propTypes", {
|
|
|
136
140
|
classes: _propTypes["default"].object.isRequired
|
|
137
141
|
});
|
|
138
142
|
|
|
139
|
-
var PointMenu =
|
|
140
|
-
/*#__PURE__*/
|
|
141
|
-
function (_React$Component2) {
|
|
143
|
+
var PointMenu = /*#__PURE__*/function (_React$Component2) {
|
|
142
144
|
_inherits(PointMenu, _React$Component2);
|
|
143
145
|
|
|
146
|
+
var _super2 = _createSuper(PointMenu);
|
|
147
|
+
|
|
144
148
|
function PointMenu() {
|
|
145
149
|
_classCallCheck(this, PointMenu);
|
|
146
150
|
|
|
147
|
-
return
|
|
151
|
+
return _super2.apply(this, arguments);
|
|
148
152
|
}
|
|
149
153
|
|
|
150
154
|
_createClass(PointMenu, [{
|
|
@@ -155,7 +159,7 @@ function (_React$Component2) {
|
|
|
155
159
|
classes = _this$props2.classes,
|
|
156
160
|
showSampleAnswer = _this$props2.showSampleAnswer;
|
|
157
161
|
var sampleText = showSampleAnswer ? 'Provide Sample Response' : 'Remove Sample Response';
|
|
158
|
-
return _react["default"].createElement(IconMenu, {
|
|
162
|
+
return /*#__PURE__*/_react["default"].createElement(IconMenu, {
|
|
159
163
|
onClick: function onClick(key) {
|
|
160
164
|
return onChange(key);
|
|
161
165
|
},
|
package/lib/point-menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","text","sample","bool"],"mappings":"
|
|
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","text","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 text: 'Use Default Text',\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.4.
|
|
3
|
+
"version": "0.4.12",
|
|
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": "^7.
|
|
12
|
+
"@pie-lib/editable-html": "^7.19.1",
|
|
13
13
|
"debug": "^4.1.1",
|
|
14
14
|
"lodash": "^4.17.11",
|
|
15
15
|
"prop-types": "^15.7.2",
|
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
"react-beautiful-dnd": "^11.0.2",
|
|
18
18
|
"react-dom": "^16.9.0"
|
|
19
19
|
},
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "99f0486923e78ba9e9002cbe59dd41b6b1cdc6d7"
|
|
21
21
|
}
|