@pie-lib/rubric 1.0.0-beta.4 → 1.0.0-beta.5
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 +404 -0
- package/lib/authoring.js.map +1 -0
- package/lib/index.js +20 -0
- package/lib/index.js.map +1 -0
- package/lib/point-menu.js +140 -0
- package/lib/point-menu.js.map +1 -0
- package/package.json +1 -1
package/lib/authoring.js
ADDED
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = exports.RubricType = exports.RawAuthoring = exports.PointConfig = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
14
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
var _react = _interopRequireDefault(require("react"));
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
+
var _styles = require("@material-ui/core/styles");
|
|
20
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
21
|
+
var _OutlinedInput = _interopRequireDefault(require("@material-ui/core/OutlinedInput"));
|
|
22
|
+
var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));
|
|
23
|
+
var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
|
|
24
|
+
var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));
|
|
25
|
+
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
26
|
+
var _times = _interopRequireDefault(require("lodash/times"));
|
|
27
|
+
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
|
|
28
|
+
var _FormGroup = _interopRequireDefault(require("@material-ui/core/FormGroup"));
|
|
29
|
+
var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
|
|
30
|
+
var _grey = _interopRequireDefault(require("@material-ui/core/colors/grey"));
|
|
31
|
+
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
32
|
+
var _DragIndicator = _interopRequireDefault(require("@material-ui/icons/DragIndicator"));
|
|
33
|
+
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
34
|
+
var _reactBeautifulDnd = require("react-beautiful-dnd");
|
|
35
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
36
|
+
var _takeRight = _interopRequireDefault(require("lodash/takeRight"));
|
|
37
|
+
var _pointMenu = _interopRequireDefault(require("./point-menu"));
|
|
38
|
+
var _range = _interopRequireDefault(require("lodash/range"));
|
|
39
|
+
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; }
|
|
40
|
+
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; }
|
|
41
|
+
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); }; }
|
|
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; } }
|
|
43
|
+
var log = (0, _debug["default"])('pie-lib:rubric:authoring');
|
|
44
|
+
var reorder = function reorder(list, startIndex, endIndex) {
|
|
45
|
+
var result = Array.from(list);
|
|
46
|
+
var _result$splice = result.splice(startIndex, 1),
|
|
47
|
+
_result$splice2 = (0, _slicedToArray2["default"])(_result$splice, 1),
|
|
48
|
+
removed = _result$splice2[0];
|
|
49
|
+
result.splice(endIndex, 0, removed);
|
|
50
|
+
return result;
|
|
51
|
+
};
|
|
52
|
+
var RubricType = _propTypes["default"].shape({
|
|
53
|
+
excludeZero: _propTypes["default"].bool,
|
|
54
|
+
points: _propTypes["default"].arrayOf(_propTypes["default"].string),
|
|
55
|
+
sampleAnswers: _propTypes["default"].arrayOf(_propTypes["default"].string),
|
|
56
|
+
maxPoints: _propTypes["default"].number
|
|
57
|
+
});
|
|
58
|
+
exports.RubricType = RubricType;
|
|
59
|
+
var MaxPoints = (0, _styles.withStyles)(function (theme) {
|
|
60
|
+
return {
|
|
61
|
+
formControl: {
|
|
62
|
+
minWidth: '120px',
|
|
63
|
+
margin: theme.spacing.unit
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
})(function (props) {
|
|
67
|
+
var value = props.value,
|
|
68
|
+
_onChange = props.onChange,
|
|
69
|
+
max = props.max,
|
|
70
|
+
classes = props.classes;
|
|
71
|
+
return /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
|
|
72
|
+
className: classes.formControl,
|
|
73
|
+
variant: "outlined"
|
|
74
|
+
}, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], {
|
|
75
|
+
width: 100,
|
|
76
|
+
htmlFor: "..."
|
|
77
|
+
}, "Max Points"), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
78
|
+
value: value,
|
|
79
|
+
onChange: function onChange(e) {
|
|
80
|
+
return _onChange(e.target.value);
|
|
81
|
+
},
|
|
82
|
+
input: /*#__PURE__*/_react["default"].createElement(_OutlinedInput["default"], {
|
|
83
|
+
labelWidth: 80
|
|
84
|
+
})
|
|
85
|
+
}, (0, _range["default"])(1, max).map(function (v) {
|
|
86
|
+
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
87
|
+
key: "".concat(v),
|
|
88
|
+
value: v
|
|
89
|
+
}, v);
|
|
90
|
+
})));
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed
|
|
94
|
+
// if the value is '', the Sample Answer input field will be empty
|
|
95
|
+
var checkSampleAnswer = function checkSampleAnswer(sampleAnswer) {
|
|
96
|
+
return sampleAnswer === null || sampleAnswer === 'null';
|
|
97
|
+
};
|
|
98
|
+
var PointConfig = (0, _styles.withStyles)(function (theme) {
|
|
99
|
+
return {
|
|
100
|
+
pointConfig: {},
|
|
101
|
+
row: {
|
|
102
|
+
display: 'flex',
|
|
103
|
+
width: '100%',
|
|
104
|
+
position: 'relative'
|
|
105
|
+
},
|
|
106
|
+
editor: {
|
|
107
|
+
width: '100%',
|
|
108
|
+
backgroundColor: "".concat(theme.palette.common.white, " !important")
|
|
109
|
+
},
|
|
110
|
+
dragIndicator: {
|
|
111
|
+
paddingTop: theme.spacing.unit,
|
|
112
|
+
color: _grey["default"][500]
|
|
113
|
+
},
|
|
114
|
+
pointsLabel: {
|
|
115
|
+
color: _grey["default"][500],
|
|
116
|
+
paddingBottom: theme.spacing.unit,
|
|
117
|
+
textTransform: 'uppercase'
|
|
118
|
+
},
|
|
119
|
+
sampleAnswersEditor: {
|
|
120
|
+
paddingLeft: theme.spacing.unit * 3
|
|
121
|
+
},
|
|
122
|
+
pointMenu: {
|
|
123
|
+
position: 'absolute',
|
|
124
|
+
right: 0
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
})(function (props) {
|
|
128
|
+
var points = props.points,
|
|
129
|
+
content = props.content,
|
|
130
|
+
classes = props.classes,
|
|
131
|
+
sampleAnswer = props.sampleAnswer,
|
|
132
|
+
_props$mathMlOptions = props.mathMlOptions,
|
|
133
|
+
mathMlOptions = _props$mathMlOptions === void 0 ? {} : _props$mathMlOptions;
|
|
134
|
+
var pointsLabel = "".concat(points, " ").concat(points <= 1 ? 'pt' : 'pts');
|
|
135
|
+
var showSampleAnswer = checkSampleAnswer(sampleAnswer);
|
|
136
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
137
|
+
className: classes.pointConfig
|
|
138
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
139
|
+
variant: "overline",
|
|
140
|
+
className: classes.pointsLabel
|
|
141
|
+
}, pointsLabel), /*#__PURE__*/_react["default"].createElement("div", {
|
|
142
|
+
className: classes.row
|
|
143
|
+
}, /*#__PURE__*/_react["default"].createElement(_DragIndicator["default"], {
|
|
144
|
+
className: classes.dragIndicator
|
|
145
|
+
}), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
146
|
+
className: classes.editor,
|
|
147
|
+
markup: content,
|
|
148
|
+
onChange: props.onChange,
|
|
149
|
+
mathMlOptions: mathMlOptions
|
|
150
|
+
}), /*#__PURE__*/_react["default"].createElement(_pointMenu["default"], {
|
|
151
|
+
classes: {
|
|
152
|
+
icon: classes.pointMenu
|
|
153
|
+
},
|
|
154
|
+
showSampleAnswer: showSampleAnswer,
|
|
155
|
+
onChange: props.onMenuChange
|
|
156
|
+
})), !showSampleAnswer && /*#__PURE__*/_react["default"].createElement("div", {
|
|
157
|
+
className: classes.sampleAnswersEditor
|
|
158
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
159
|
+
variant: "overline",
|
|
160
|
+
className: classes.dragIndicator
|
|
161
|
+
}, "Sample Response"), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
162
|
+
className: classes.editor,
|
|
163
|
+
markup: sampleAnswer,
|
|
164
|
+
onChange: props.onSampleChange,
|
|
165
|
+
mathMlOptions: mathMlOptions
|
|
166
|
+
})));
|
|
167
|
+
});
|
|
168
|
+
exports.PointConfig = PointConfig;
|
|
169
|
+
var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
170
|
+
(0, _inherits2["default"])(RawAuthoring, _React$Component);
|
|
171
|
+
var _super = _createSuper(RawAuthoring);
|
|
172
|
+
function RawAuthoring() {
|
|
173
|
+
var _this;
|
|
174
|
+
(0, _classCallCheck2["default"])(this, RawAuthoring);
|
|
175
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
176
|
+
args[_key] = arguments[_key];
|
|
177
|
+
}
|
|
178
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
179
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragEnd", function (result) {
|
|
180
|
+
if (!result.destination) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
var _this$props = _this.props,
|
|
184
|
+
value = _this$props.value,
|
|
185
|
+
onChange = _this$props.onChange;
|
|
186
|
+
var points = reorder(value.points, result.source.index, result.destination.index);
|
|
187
|
+
var sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);
|
|
188
|
+
onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
189
|
+
points: points,
|
|
190
|
+
sampleAnswers: sampleAnswers
|
|
191
|
+
}));
|
|
192
|
+
});
|
|
193
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxPoints", function (maxPoints) {
|
|
194
|
+
var _this$props2 = _this.props,
|
|
195
|
+
value = _this$props2.value,
|
|
196
|
+
onChange = _this$props2.onChange;
|
|
197
|
+
var currentMax = value.points.length - 1;
|
|
198
|
+
log('current', currentMax, 'new: ', maxPoints);
|
|
199
|
+
var points, sampleAnswers;
|
|
200
|
+
if (maxPoints > currentMax) {
|
|
201
|
+
points = (0, _times["default"])(maxPoints - currentMax).map(function () {
|
|
202
|
+
return '';
|
|
203
|
+
}).concat(value.points);
|
|
204
|
+
sampleAnswers = (0, _times["default"])(maxPoints - currentMax).map(function () {
|
|
205
|
+
return null;
|
|
206
|
+
}).concat(value.sampleAnswers);
|
|
207
|
+
}
|
|
208
|
+
if (maxPoints < currentMax) {
|
|
209
|
+
log('less than');
|
|
210
|
+
points = (0, _takeRight["default"])(value.points, maxPoints + 1);
|
|
211
|
+
sampleAnswers = (0, _takeRight["default"])(value.sampleAnswers, maxPoints + 1);
|
|
212
|
+
}
|
|
213
|
+
if (points) {
|
|
214
|
+
onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
215
|
+
points: points,
|
|
216
|
+
sampleAnswers: sampleAnswers
|
|
217
|
+
}));
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeContent", function (index, content, type) {
|
|
221
|
+
// type could be 'points' or 'sampleAnswers'
|
|
222
|
+
log("changeModel[".concat(type, "]:"), index, content);
|
|
223
|
+
if (type !== 'points' && type !== 'sampleAnswers') {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
var _this$props3 = _this.props,
|
|
227
|
+
value = _this$props3.value,
|
|
228
|
+
onChange = _this$props3.onChange;
|
|
229
|
+
var items = value[type] && Array.from(value[type]);
|
|
230
|
+
items.splice(index, 1, content);
|
|
231
|
+
log("changeModel[".concat(type, "]:"), items);
|
|
232
|
+
onChange(_objectSpread(_objectSpread({}, value), {}, (0, _defineProperty2["default"])({}, type, items)));
|
|
233
|
+
});
|
|
234
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "excludeZeros", function () {
|
|
235
|
+
var _this$props4 = _this.props,
|
|
236
|
+
value = _this$props4.value,
|
|
237
|
+
onChange = _this$props4.onChange;
|
|
238
|
+
onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
239
|
+
excludeZero: !value.excludeZero
|
|
240
|
+
}));
|
|
241
|
+
});
|
|
242
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "shouldRenderPoint", function (index, value) {
|
|
243
|
+
if (!value.excludeZero) {
|
|
244
|
+
return true;
|
|
245
|
+
} else {
|
|
246
|
+
if (index < value.points.length - 1) {
|
|
247
|
+
return true;
|
|
248
|
+
} else if (index === value.points.length - 1) {
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPointMenuChange", function (index, clickedItem) {
|
|
255
|
+
if (clickedItem === 'sample') {
|
|
256
|
+
var value = _this.props.value;
|
|
257
|
+
var sampleAnswers = Array.from(value.sampleAnswers || []);
|
|
258
|
+
if (checkSampleAnswer(sampleAnswers[index])) {
|
|
259
|
+
// an empty string will display an empty Sample Answer input field
|
|
260
|
+
_this.changeContent(index, '', 'sampleAnswers');
|
|
261
|
+
} else {
|
|
262
|
+
// when the content is null or 'null', the Sample Answer input field will not be displayed
|
|
263
|
+
_this.changeContent(index, null, 'sampleAnswers');
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
return _this;
|
|
268
|
+
}
|
|
269
|
+
(0, _createClass2["default"])(RawAuthoring, [{
|
|
270
|
+
key: "render",
|
|
271
|
+
value: function render() {
|
|
272
|
+
var _this2 = this;
|
|
273
|
+
var _this$props5 = this.props,
|
|
274
|
+
classes = _this$props5.classes,
|
|
275
|
+
className = _this$props5.className,
|
|
276
|
+
value = _this$props5.value,
|
|
277
|
+
_this$props5$mathMlOp = _this$props5.mathMlOptions,
|
|
278
|
+
mathMlOptions = _this$props5$mathMlOp === void 0 ? {} : _this$props5$mathMlOp;
|
|
279
|
+
var _ref = value || {},
|
|
280
|
+
_ref$excludeZeroEnabl = _ref.excludeZeroEnabled,
|
|
281
|
+
excludeZeroEnabled = _ref$excludeZeroEnabl === void 0 ? true : _ref$excludeZeroEnabl,
|
|
282
|
+
_ref$maxPointsEnabled = _ref.maxPointsEnabled,
|
|
283
|
+
maxPointsEnabled = _ref$maxPointsEnabled === void 0 ? true : _ref$maxPointsEnabled;
|
|
284
|
+
if (value && Number.isFinite(value.maxPoints)) {
|
|
285
|
+
// eslint-disable-next-line no-console
|
|
286
|
+
console.warn('maxPoints is deprecated - remove from model');
|
|
287
|
+
}
|
|
288
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
289
|
+
className: (0, _classnames["default"])(classes["class"], className)
|
|
290
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
291
|
+
variant: "h5",
|
|
292
|
+
className: classes.rubricTitle
|
|
293
|
+
}, "Rubric"), /*#__PURE__*/_react["default"].createElement(_FormGroup["default"], {
|
|
294
|
+
row: true
|
|
295
|
+
}, maxPointsEnabled && /*#__PURE__*/_react["default"].createElement(MaxPoints, {
|
|
296
|
+
max: 10,
|
|
297
|
+
value: value.points.length - 1,
|
|
298
|
+
onChange: this.changeMaxPoints
|
|
299
|
+
}), excludeZeroEnabled && /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
|
|
300
|
+
label: "Exclude zeros",
|
|
301
|
+
control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
302
|
+
checked: value.excludeZero,
|
|
303
|
+
onChange: this.excludeZeros
|
|
304
|
+
})
|
|
305
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
306
|
+
className: classes.container
|
|
307
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.DragDropContext, {
|
|
308
|
+
onDragEnd: this.dragEnd
|
|
309
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.Droppable, {
|
|
310
|
+
droppableId: "droppable"
|
|
311
|
+
}, function (provided) {
|
|
312
|
+
return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, provided.droppableProps, {
|
|
313
|
+
ref: provided.innerRef
|
|
314
|
+
}), value.points.map(function (p, index) {
|
|
315
|
+
return _this2.shouldRenderPoint(index, value) && /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.Draggable, {
|
|
316
|
+
key: "".concat(p.points, "-").concat(index),
|
|
317
|
+
index: index,
|
|
318
|
+
draggableId: index.toString()
|
|
319
|
+
}, function (provided) {
|
|
320
|
+
return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
|
|
321
|
+
className: classes.configHolder,
|
|
322
|
+
ref: provided.innerRef
|
|
323
|
+
}, provided.draggableProps, provided.dragHandleProps), /*#__PURE__*/_react["default"].createElement(PointConfig, {
|
|
324
|
+
points: value.points.length - 1 - index,
|
|
325
|
+
content: p,
|
|
326
|
+
sampleAnswer: value.sampleAnswers && value.sampleAnswers[index],
|
|
327
|
+
onChange: function onChange(content) {
|
|
328
|
+
return _this2.changeContent(index, content, 'points');
|
|
329
|
+
},
|
|
330
|
+
onSampleChange: function onSampleChange(content) {
|
|
331
|
+
return _this2.changeContent(index, content, 'sampleAnswers');
|
|
332
|
+
},
|
|
333
|
+
onMenuChange: function onMenuChange(clickedItem) {
|
|
334
|
+
return _this2.onPointMenuChange(index, clickedItem);
|
|
335
|
+
},
|
|
336
|
+
mathMlOptions: mathMlOptions
|
|
337
|
+
}));
|
|
338
|
+
});
|
|
339
|
+
}), provided.placeholder);
|
|
340
|
+
}))));
|
|
341
|
+
}
|
|
342
|
+
}]);
|
|
343
|
+
return RawAuthoring;
|
|
344
|
+
}(_react["default"].Component);
|
|
345
|
+
exports.RawAuthoring = RawAuthoring;
|
|
346
|
+
(0, _defineProperty2["default"])(RawAuthoring, "propTypes", {
|
|
347
|
+
classes: _propTypes["default"].object.isRequired,
|
|
348
|
+
className: _propTypes["default"].string,
|
|
349
|
+
value: RubricType,
|
|
350
|
+
onChange: _propTypes["default"].func
|
|
351
|
+
});
|
|
352
|
+
(0, _defineProperty2["default"])(RawAuthoring, "defaultProps", {});
|
|
353
|
+
var styles = function styles(theme) {
|
|
354
|
+
return {
|
|
355
|
+
container: {
|
|
356
|
+
backgroundColor: _grey["default"][200],
|
|
357
|
+
borderWidth: 1,
|
|
358
|
+
borderStyle: 'solid',
|
|
359
|
+
borderColor: _grey["default"][300],
|
|
360
|
+
padding: theme.spacing.unit * 2,
|
|
361
|
+
margin: theme.spacing.unit
|
|
362
|
+
},
|
|
363
|
+
configHolder: {
|
|
364
|
+
paddingTop: theme.spacing.unit,
|
|
365
|
+
paddingBottom: theme.spacing.unit
|
|
366
|
+
},
|
|
367
|
+
rubricTitle: {
|
|
368
|
+
paddingLeft: theme.spacing.unit,
|
|
369
|
+
margin: theme.spacing.unit
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
};
|
|
373
|
+
var StyledRawAuthoring = (0, _styles.withStyles)(styles)(RawAuthoring);
|
|
374
|
+
var Reverse = function Reverse(props) {
|
|
375
|
+
var points = Array.from(props.value.points || []).reverse();
|
|
376
|
+
var sampleAnswers = Array.from(props.value.sampleAnswers || []).reverse();
|
|
377
|
+
if (points.length > sampleAnswers.length) {
|
|
378
|
+
sampleAnswers = (0, _times["default"])(points.length - sampleAnswers.length).map(function () {
|
|
379
|
+
return null;
|
|
380
|
+
}).concat(sampleAnswers);
|
|
381
|
+
}
|
|
382
|
+
var value = _objectSpread(_objectSpread({}, props.value), {}, {
|
|
383
|
+
points: points,
|
|
384
|
+
sampleAnswers: sampleAnswers
|
|
385
|
+
});
|
|
386
|
+
var onChange = function onChange(value) {
|
|
387
|
+
props.onChange(_objectSpread(_objectSpread({}, value), {}, {
|
|
388
|
+
points: Array.from(value.points || []).reverse(),
|
|
389
|
+
sampleAnswers: Array.from(value.sampleAnswers || []).reverse()
|
|
390
|
+
}));
|
|
391
|
+
};
|
|
392
|
+
return /*#__PURE__*/_react["default"].createElement(StyledRawAuthoring, {
|
|
393
|
+
value: value,
|
|
394
|
+
onChange: onChange
|
|
395
|
+
});
|
|
396
|
+
};
|
|
397
|
+
Reverse.propTypes = {
|
|
398
|
+
value: RubricType,
|
|
399
|
+
getIndex: _propTypes["default"].func,
|
|
400
|
+
onChange: _propTypes["default"].func
|
|
401
|
+
};
|
|
402
|
+
var _default = Reverse;
|
|
403
|
+
exports["default"] = _default;
|
|
404
|
+
//# sourceMappingURL=authoring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authoring.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_classnames","_OutlinedInput","_InputLabel","_Select","_FormControl","_MenuItem","_times","_Checkbox","_FormGroup","_FormControlLabel","_grey","_Typography","_DragIndicator","_editableHtml","_reactBeautifulDnd","_debug","_takeRight","_pointMenu","_range","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","log","debug","reorder","list","startIndex","endIndex","Array","from","_result$splice","splice","_result$splice2","_slicedToArray2","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","maxPoints","number","exports","MaxPoints","withStyles","theme","formControl","minWidth","margin","spacing","unit","props","value","onChange","max","classes","createElement","className","variant","width","htmlFor","input","labelWidth","range","map","v","concat","checkSampleAnswer","sampleAnswer","PointConfig","pointConfig","row","display","position","editor","backgroundColor","palette","common","white","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","content","_props$mathMlOptions","mathMlOptions","showSampleAnswer","markup","icon","onMenuChange","onSampleChange","RawAuthoring","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","args","_key","_assertThisInitialized2","destination","_this$props","index","_this$props2","currentMax","times","takeRight","type","_this$props3","items","_this$props4","clickedItem","changeContent","_createClass2","render","_this2","_this$props5","_this$props5$mathMlOp","_ref","_ref$excludeZeroEnabl","excludeZeroEnabled","_ref$maxPointsEnabled","maxPointsEnabled","Number","isFinite","console","warn","classNames","rubricTitle","changeMaxPoints","label","control","checked","excludeZeros","container","DragDropContext","onDragEnd","dragEnd","Droppable","droppableId","provided","_extends2","droppableProps","ref","innerRef","p","shouldRenderPoint","Draggable","draggableId","toString","configHolder","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","isRequired","func","styles","borderWidth","borderStyle","borderColor","padding","StyledRawAuthoring","Reverse","reverse","propTypes","getIndex","_default"],"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 maxPoints: PropTypes.number,\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: `${theme.palette.common.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, mathMlOptions = {} } = 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\n <div className={classes.row}>\n <DragIndicator className={classes.dragIndicator} />\n <EditableHtml\n className={classes.editor}\n markup={content}\n onChange={props.onChange}\n mathMlOptions={mathMlOptions}\n />\n <PointMenu\n classes={{\n icon: classes.pointMenu,\n }}\n showSampleAnswer={showSampleAnswer}\n onChange={props.onMenuChange}\n />\n </div>\n\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 mathMlOptions={mathMlOptions}\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(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, mathMlOptions = {} } = 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\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 mathMlOptions={mathMlOptions}\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":"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"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "Authoring", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _authoring["default"];
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
exports.RUBRIC_TYPES = void 0;
|
|
14
|
+
var _authoring = _interopRequireDefault(require("./authoring"));
|
|
15
|
+
var RUBRIC_TYPES = {
|
|
16
|
+
SIMPLE_RUBRIC: 'simpleRubric',
|
|
17
|
+
MULTI_TRAIT_RUBRIC: 'multiTraitRubric'
|
|
18
|
+
};
|
|
19
|
+
exports.RUBRIC_TYPES = RUBRIC_TYPES;
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_authoring","_interopRequireDefault","require","RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC","exports"],"sources":["../src/index.js"],"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"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,YAAY,GAAG;EACnBC,aAAa,EAAE,cAAc;EAC7BC,kBAAkB,EAAE;AACtB,CAAC;AAACC,OAAA,CAAAH,YAAA,GAAAA,YAAA"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = exports.IconMenu = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
11
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _Menu = _interopRequireDefault(require("@material-ui/core/Menu"));
|
|
16
|
+
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
17
|
+
var _MoreVert = _interopRequireDefault(require("@material-ui/icons/MoreVert"));
|
|
18
|
+
var _MoreHoriz = _interopRequireDefault(require("@material-ui/icons/MoreHoriz"));
|
|
19
|
+
var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
|
|
20
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
21
|
+
var _react = _interopRequireDefault(require("react"));
|
|
22
|
+
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); }; }
|
|
23
|
+
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; } }
|
|
24
|
+
var IconMenu = /*#__PURE__*/function (_React$Component) {
|
|
25
|
+
(0, _inherits2["default"])(IconMenu, _React$Component);
|
|
26
|
+
var _super = _createSuper(IconMenu);
|
|
27
|
+
function IconMenu(props) {
|
|
28
|
+
var _this;
|
|
29
|
+
(0, _classCallCheck2["default"])(this, IconMenu);
|
|
30
|
+
_this = _super.call(this, props);
|
|
31
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClick", function (event) {
|
|
32
|
+
return _this.setState({
|
|
33
|
+
open: true,
|
|
34
|
+
anchorEl: event.currentTarget
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleRequestClose", function () {
|
|
38
|
+
return _this.setState({
|
|
39
|
+
open: false
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
_this.state = {
|
|
43
|
+
anchorEl: undefined,
|
|
44
|
+
open: false
|
|
45
|
+
};
|
|
46
|
+
return _this;
|
|
47
|
+
}
|
|
48
|
+
(0, _createClass2["default"])(IconMenu, [{
|
|
49
|
+
key: "render",
|
|
50
|
+
value: function render() {
|
|
51
|
+
var _this2 = this;
|
|
52
|
+
var _this$props = this.props,
|
|
53
|
+
opts = _this$props.opts,
|
|
54
|
+
onClick = _this$props.onClick,
|
|
55
|
+
classes = _this$props.classes;
|
|
56
|
+
var _this$state = this.state,
|
|
57
|
+
open = _this$state.open,
|
|
58
|
+
anchorEl = _this$state.anchorEl;
|
|
59
|
+
var keys = Object.keys(opts) || [];
|
|
60
|
+
var handleMenuClick = function handleMenuClick(key) {
|
|
61
|
+
return function () {
|
|
62
|
+
onClick(key);
|
|
63
|
+
_this2.handleRequestClose();
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
var iconColor = open ? 'inherit' : 'disabled';
|
|
67
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
68
|
+
onClick: this.handleClick
|
|
69
|
+
}, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
70
|
+
className: classes.icon
|
|
71
|
+
}, open ? /*#__PURE__*/_react["default"].createElement(_MoreVert["default"], {
|
|
72
|
+
color: iconColor
|
|
73
|
+
}) : /*#__PURE__*/_react["default"].createElement(_MoreHoriz["default"], {
|
|
74
|
+
color: iconColor
|
|
75
|
+
}))), /*#__PURE__*/_react["default"].createElement(_Menu["default"], {
|
|
76
|
+
id: "point-menu",
|
|
77
|
+
anchorEl: anchorEl,
|
|
78
|
+
open: open,
|
|
79
|
+
onClose: this.handleRequestClose,
|
|
80
|
+
style: {
|
|
81
|
+
transform: 'translate(-15px, -15px)'
|
|
82
|
+
},
|
|
83
|
+
transformOrigin: {
|
|
84
|
+
vertical: 'center',
|
|
85
|
+
horizontal: 'right'
|
|
86
|
+
}
|
|
87
|
+
}, keys.map(function (k, index) {
|
|
88
|
+
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
89
|
+
key: index,
|
|
90
|
+
onClick: handleMenuClick(k)
|
|
91
|
+
}, opts[k]);
|
|
92
|
+
})));
|
|
93
|
+
}
|
|
94
|
+
}]);
|
|
95
|
+
return IconMenu;
|
|
96
|
+
}(_react["default"].Component);
|
|
97
|
+
exports.IconMenu = IconMenu;
|
|
98
|
+
(0, _defineProperty2["default"])(IconMenu, "propTypes", {
|
|
99
|
+
opts: _propTypes["default"].object,
|
|
100
|
+
onClick: _propTypes["default"].func.isRequired,
|
|
101
|
+
classes: _propTypes["default"].object.isRequired
|
|
102
|
+
});
|
|
103
|
+
var PointMenu = /*#__PURE__*/function (_React$Component2) {
|
|
104
|
+
(0, _inherits2["default"])(PointMenu, _React$Component2);
|
|
105
|
+
var _super2 = _createSuper(PointMenu);
|
|
106
|
+
function PointMenu() {
|
|
107
|
+
(0, _classCallCheck2["default"])(this, PointMenu);
|
|
108
|
+
return _super2.apply(this, arguments);
|
|
109
|
+
}
|
|
110
|
+
(0, _createClass2["default"])(PointMenu, [{
|
|
111
|
+
key: "render",
|
|
112
|
+
value: function render() {
|
|
113
|
+
var _this$props2 = this.props,
|
|
114
|
+
onChange = _this$props2.onChange,
|
|
115
|
+
classes = _this$props2.classes,
|
|
116
|
+
showSampleAnswer = _this$props2.showSampleAnswer;
|
|
117
|
+
var sampleText = showSampleAnswer ? 'Provide Sample Response' : 'Remove Sample Response';
|
|
118
|
+
return /*#__PURE__*/_react["default"].createElement(IconMenu, {
|
|
119
|
+
onClick: function onClick(key) {
|
|
120
|
+
return onChange(key);
|
|
121
|
+
},
|
|
122
|
+
opts: {
|
|
123
|
+
sample: sampleText
|
|
124
|
+
},
|
|
125
|
+
classes: classes
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}]);
|
|
129
|
+
return PointMenu;
|
|
130
|
+
}(_react["default"].Component);
|
|
131
|
+
exports["default"] = PointMenu;
|
|
132
|
+
(0, _defineProperty2["default"])(PointMenu, "propTypes", {
|
|
133
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
134
|
+
classes: _propTypes["default"].object.isRequired,
|
|
135
|
+
showSampleAnswer: _propTypes["default"].bool.isRequired
|
|
136
|
+
});
|
|
137
|
+
(0, _defineProperty2["default"])(PointMenu, "defaultProps", {
|
|
138
|
+
classes: {}
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=point-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point-menu.js","names":["_Menu","_interopRequireDefault","require","_MenuItem","_MoreVert","_MoreHoriz","_IconButton","_propTypes","_react","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","IconMenu","_React$Component","_inherits2","_super","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","event","setState","open","anchorEl","currentTarget","state","undefined","_createClass2","key","value","render","_this2","_this$props","opts","onClick","classes","_this$state","keys","Object","handleMenuClick","handleRequestClose","iconColor","createElement","handleClick","className","icon","color","id","onClose","style","transform","transformOrigin","vertical","horizontal","map","k","index","React","Component","exports","PropTypes","object","func","isRequired","PointMenu","_React$Component2","_super2","_this$props2","onChange","showSampleAnswer","sampleText","sample","bool"],"sources":["../src/point-menu.jsx"],"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"],"mappings":"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"}
|