@pie-lib/rubric 0.4.24 → 0.4.27

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 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.27](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.26...@pie-lib/rubric@0.4.27) (2022-06-28)
7
+
8
+ **Note:** Version bump only for package @pie-lib/rubric
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.4.26](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.25...@pie-lib/rubric@0.4.26) (2022-06-28)
15
+
16
+ **Note:** Version bump only for package @pie-lib/rubric
17
+
18
+
19
+
20
+
21
+
22
+ ## [0.4.25](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.24...@pie-lib/rubric@0.4.25) (2022-06-27)
23
+
24
+ **Note:** Version bump only for package @pie-lib/rubric
25
+
26
+
27
+
28
+
29
+
6
30
  ## [0.4.24](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.23...@pie-lib/rubric@0.4.24) (2022-06-27)
7
31
 
8
32
  **Note:** Version bump only for package @pie-lib/rubric
package/lib/authoring.js CHANGED
@@ -1,12 +1,30 @@
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); }
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = exports.RubricType = exports.RawAuthoring = exports.PointConfig = void 0;
9
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
27
+
10
28
  var _react = _interopRequireDefault(require("react"));
11
29
 
12
30
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -51,55 +69,21 @@ var _pointMenu = _interopRequireDefault(require("./point-menu"));
51
69
 
52
70
  var _range = _interopRequireDefault(require("lodash/range"));
53
71
 
54
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
55
-
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
-
58
72
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
59
73
 
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
-
62
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
63
-
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
-
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
-
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
-
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); }
74
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
75
75
 
76
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
76
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
77
77
 
78
78
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
79
79
 
80
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
81
-
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; }
83
-
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."); }
87
-
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); }
89
-
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; }
93
-
94
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
95
-
96
80
  var log = (0, _debug["default"])('pie-lib:rubric:authoring');
97
81
 
98
82
  var reorder = function reorder(list, startIndex, endIndex) {
99
83
  var result = Array.from(list);
100
84
 
101
85
  var _result$splice = result.splice(startIndex, 1),
102
- _result$splice2 = _slicedToArray(_result$splice, 1),
86
+ _result$splice2 = (0, _slicedToArray2["default"])(_result$splice, 1),
103
87
  removed = _result$splice2[0];
104
88
 
105
89
  result.splice(endIndex, 0, removed);
@@ -221,22 +205,21 @@ var PointConfig = (0, _styles.withStyles)(function (theme) {
221
205
  exports.PointConfig = PointConfig;
222
206
 
223
207
  var RawAuthoring = /*#__PURE__*/function (_React$Component) {
224
- _inherits(RawAuthoring, _React$Component);
208
+ (0, _inherits2["default"])(RawAuthoring, _React$Component);
225
209
 
226
210
  var _super = _createSuper(RawAuthoring);
227
211
 
228
212
  function RawAuthoring() {
229
213
  var _this;
230
214
 
231
- _classCallCheck(this, RawAuthoring);
215
+ (0, _classCallCheck2["default"])(this, RawAuthoring);
232
216
 
233
217
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
234
218
  args[_key] = arguments[_key];
235
219
  }
236
220
 
237
221
  _this = _super.call.apply(_super, [this].concat(args));
238
-
239
- _defineProperty(_assertThisInitialized(_this), "dragEnd", function (result) {
222
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragEnd", function (result) {
240
223
  if (!result.destination) {
241
224
  return;
242
225
  }
@@ -251,8 +234,7 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
251
234
  sampleAnswers: sampleAnswers
252
235
  }));
253
236
  });
254
-
255
- _defineProperty(_assertThisInitialized(_this), "changeMaxPoints", function (maxPoints) {
237
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxPoints", function (maxPoints) {
256
238
  var _this$props2 = _this.props,
257
239
  value = _this$props2.value,
258
240
  onChange = _this$props2.onChange;
@@ -282,8 +264,7 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
282
264
  }));
283
265
  }
284
266
  });
285
-
286
- _defineProperty(_assertThisInitialized(_this), "changeContent", function (index, content, type) {
267
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeContent", function (index, content, type) {
287
268
  // type could be 'points' or 'sampleAnswers'
288
269
  log("changeModel[".concat(type, "]:"), index, content);
289
270
 
@@ -297,10 +278,9 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
297
278
  var items = value[type] && Array.from(value[type]);
298
279
  items.splice(index, 1, content);
299
280
  log("changeModel[".concat(type, "]:"), items);
300
- onChange(_objectSpread(_objectSpread({}, value), {}, _defineProperty({}, type, items)));
281
+ onChange(_objectSpread(_objectSpread({}, value), {}, (0, _defineProperty2["default"])({}, type, items)));
301
282
  });
302
-
303
- _defineProperty(_assertThisInitialized(_this), "excludeZeros", function () {
283
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "excludeZeros", function () {
304
284
  var _this$props4 = _this.props,
305
285
  value = _this$props4.value,
306
286
  onChange = _this$props4.onChange;
@@ -308,8 +288,7 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
308
288
  excludeZero: !value.excludeZero
309
289
  }));
310
290
  });
311
-
312
- _defineProperty(_assertThisInitialized(_this), "shouldRenderPoint", function (index, value) {
291
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "shouldRenderPoint", function (index, value) {
313
292
  if (!value.excludeZero) {
314
293
  return true;
315
294
  } else {
@@ -322,8 +301,7 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
322
301
  return true;
323
302
  }
324
303
  });
325
-
326
- _defineProperty(_assertThisInitialized(_this), "onPointMenuChange", function (index, clickedItem) {
304
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPointMenuChange", function (index, clickedItem) {
327
305
  if (clickedItem === 'sample') {
328
306
  var value = _this.props.value;
329
307
  var sampleAnswers = Array.from(value.sampleAnswers || []);
@@ -337,11 +315,10 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
337
315
  }
338
316
  }
339
317
  });
340
-
341
318
  return _this;
342
319
  }
343
320
 
344
- _createClass(RawAuthoring, [{
321
+ (0, _createClass2["default"])(RawAuthoring, [{
345
322
  key: "render",
346
323
  value: function render() {
347
324
  var _this2 = this;
@@ -380,7 +357,7 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
380
357
  }, /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.Droppable, {
381
358
  droppableId: "droppable"
382
359
  }, function (provided) {
383
- return /*#__PURE__*/_react["default"].createElement("div", _extends({}, provided.droppableProps, {
360
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, provided.droppableProps, {
384
361
  ref: provided.innerRef
385
362
  }), value.points.map(function (p, index) {
386
363
  return _this2.shouldRenderPoint(index, value) && /*#__PURE__*/_react["default"].createElement(_reactBeautifulDnd.Draggable, {
@@ -388,7 +365,7 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
388
365
  index: index,
389
366
  draggableId: index.toString()
390
367
  }, function (provided) {
391
- return /*#__PURE__*/_react["default"].createElement("div", _extends({
368
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
392
369
  className: classes.configHolder,
393
370
  ref: provided.innerRef
394
371
  }, provided.draggableProps, provided.dragHandleProps), /*#__PURE__*/_react["default"].createElement(PointConfig, {
@@ -410,20 +387,17 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
410
387
  }))));
411
388
  }
412
389
  }]);
413
-
414
390
  return RawAuthoring;
415
391
  }(_react["default"].Component);
416
392
 
417
393
  exports.RawAuthoring = RawAuthoring;
418
-
419
- _defineProperty(RawAuthoring, "propTypes", {
394
+ (0, _defineProperty2["default"])(RawAuthoring, "propTypes", {
420
395
  classes: _propTypes["default"].object.isRequired,
421
396
  className: _propTypes["default"].string,
422
397
  value: RubricType,
423
398
  onChange: _propTypes["default"].func
424
399
  });
425
-
426
- _defineProperty(RawAuthoring, "defaultProps", {});
400
+ (0, _defineProperty2["default"])(RawAuthoring, "defaultProps", {});
427
401
 
428
402
  var styles = function styles(theme) {
429
403
  return {
@@ -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/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -11,6 +13,4 @@ Object.defineProperty(exports, "Authoring", {
11
13
  });
12
14
 
13
15
  var _authoring = _interopRequireDefault(require("./authoring"));
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
16
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA","sourcesContent":["import Authoring from './authoring';\nexport { Authoring };\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA","sourcesContent":["import Authoring from './authoring';\nexport { Authoring };\n"],"file":"index.js"}
package/lib/point-menu.js CHANGED
@@ -1,75 +1,65 @@
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); }
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = exports.IconMenu = void 0;
9
9
 
10
- var _Menu = _interopRequireDefault(require("@material-ui/core/Menu"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
 
14
- var _MoreVert = _interopRequireDefault(require("@material-ui/icons/MoreVert"));
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
15
 
16
- var _MoreHoriz = _interopRequireDefault(require("@material-ui/icons/MoreHoriz"));
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
17
 
18
- var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
19
-
20
- var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
19
 
22
- var _react = _interopRequireDefault(require("react"));
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
21
 
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
23
 
26
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
24
+ var _Menu = _interopRequireDefault(require("@material-ui/core/Menu"));
27
25
 
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); } }
26
+ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
29
27
 
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; }
28
+ var _MoreVert = _interopRequireDefault(require("@material-ui/icons/MoreVert"));
31
29
 
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); }
30
+ var _MoreHoriz = _interopRequireDefault(require("@material-ui/icons/MoreHoriz"));
33
31
 
34
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
32
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
35
33
 
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); }; }
34
+ var _propTypes = _interopRequireDefault(require("prop-types"));
37
35
 
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); }
36
+ var _react = _interopRequireDefault(require("react"));
39
37
 
40
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
38
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
39
 
42
40
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
41
 
44
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
45
-
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; }
47
-
48
42
  var IconMenu = /*#__PURE__*/function (_React$Component) {
49
- _inherits(IconMenu, _React$Component);
43
+ (0, _inherits2["default"])(IconMenu, _React$Component);
50
44
 
51
45
  var _super = _createSuper(IconMenu);
52
46
 
53
47
  function IconMenu(props) {
54
48
  var _this;
55
49
 
56
- _classCallCheck(this, IconMenu);
57
-
50
+ (0, _classCallCheck2["default"])(this, IconMenu);
58
51
  _this = _super.call(this, props);
59
-
60
- _defineProperty(_assertThisInitialized(_this), "handleClick", function (event) {
52
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClick", function (event) {
61
53
  return _this.setState({
62
54
  open: true,
63
55
  anchorEl: event.currentTarget
64
56
  });
65
57
  });
66
-
67
- _defineProperty(_assertThisInitialized(_this), "handleRequestClose", function () {
58
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleRequestClose", function () {
68
59
  return _this.setState({
69
60
  open: false
70
61
  });
71
62
  });
72
-
73
63
  _this.state = {
74
64
  anchorEl: undefined,
75
65
  open: false
@@ -77,7 +67,7 @@ var IconMenu = /*#__PURE__*/function (_React$Component) {
77
67
  return _this;
78
68
  }
79
69
 
80
- _createClass(IconMenu, [{
70
+ (0, _createClass2["default"])(IconMenu, [{
81
71
  key: "render",
82
72
  value: function render() {
83
73
  var _this2 = this;
@@ -128,30 +118,27 @@ var IconMenu = /*#__PURE__*/function (_React$Component) {
128
118
  })));
129
119
  }
130
120
  }]);
131
-
132
121
  return IconMenu;
133
122
  }(_react["default"].Component);
134
123
 
135
124
  exports.IconMenu = IconMenu;
136
-
137
- _defineProperty(IconMenu, "propTypes", {
125
+ (0, _defineProperty2["default"])(IconMenu, "propTypes", {
138
126
  opts: _propTypes["default"].object,
139
127
  onClick: _propTypes["default"].func.isRequired,
140
128
  classes: _propTypes["default"].object.isRequired
141
129
  });
142
130
 
143
131
  var PointMenu = /*#__PURE__*/function (_React$Component2) {
144
- _inherits(PointMenu, _React$Component2);
132
+ (0, _inherits2["default"])(PointMenu, _React$Component2);
145
133
 
146
134
  var _super2 = _createSuper(PointMenu);
147
135
 
148
136
  function PointMenu() {
149
- _classCallCheck(this, PointMenu);
150
-
137
+ (0, _classCallCheck2["default"])(this, PointMenu);
151
138
  return _super2.apply(this, arguments);
152
139
  }
153
140
 
154
- _createClass(PointMenu, [{
141
+ (0, _createClass2["default"])(PointMenu, [{
155
142
  key: "render",
156
143
  value: function render() {
157
144
  var _this$props2 = this.props,
@@ -170,19 +157,16 @@ var PointMenu = /*#__PURE__*/function (_React$Component2) {
170
157
  });
171
158
  }
172
159
  }]);
173
-
174
160
  return PointMenu;
175
161
  }(_react["default"].Component);
176
162
 
177
163
  exports["default"] = PointMenu;
178
-
179
- _defineProperty(PointMenu, "propTypes", {
164
+ (0, _defineProperty2["default"])(PointMenu, "propTypes", {
180
165
  onChange: _propTypes["default"].func.isRequired,
181
166
  classes: _propTypes["default"].object.isRequired,
182
167
  showSampleAnswer: _propTypes["default"].bool.isRequired
183
168
  });
184
-
185
- _defineProperty(PointMenu, "defaultProps", {
169
+ (0, _defineProperty2["default"])(PointMenu, "defaultProps", {
186
170
  classes: {}
187
171
  });
188
172
  //# sourceMappingURL=point-menu.js.map
@@ -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","sample","bool"],"mappings":"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","sourcesContent":["import Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nexport class IconMenu extends React.Component {\n static propTypes = {\n opts: PropTypes.object,\n onClick: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: undefined,\n open: false\n };\n }\n\n handleClick = event => this.setState({ open: true, anchorEl: event.currentTarget });\n\n handleRequestClose = () => this.setState({ open: false });\n\n render() {\n const { opts, onClick, classes } = this.props;\n const { open, anchorEl } = this.state;\n const keys = Object.keys(opts) || [];\n\n const handleMenuClick = key => () => {\n onClick(key);\n this.handleRequestClose();\n };\n\n const iconColor = open ? 'inherit' : 'disabled';\n\n return (\n <div>\n <div onClick={this.handleClick}>\n <IconButton className={classes.icon}>\n {open ? <MoreVertIcon color={iconColor} /> : <MoreHorizIcon color={iconColor} />}\n </IconButton>\n </div>\n <Menu\n id=\"point-menu\"\n anchorEl={anchorEl}\n open={open}\n onClose={this.handleRequestClose}\n style={{ transform: 'translate(-15px, -15px)' }}\n transformOrigin={{\n vertical: 'center',\n horizontal: 'right'\n }}\n >\n {keys.map((k, index) => (\n <MenuItem key={index} onClick={handleMenuClick(k)}>\n {opts[k]}\n </MenuItem>\n ))}\n </Menu>\n </div>\n );\n }\n}\n\nexport default class PointMenu extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n showSampleAnswer: PropTypes.bool.isRequired\n };\n\n static defaultProps = {\n classes: {}\n };\n\n render() {\n const { onChange, classes, showSampleAnswer } = this.props;\n const sampleText = showSampleAnswer ? 'Provide Sample Response' : 'Remove Sample Response';\n\n return (\n <IconMenu\n onClick={key => onChange(key)}\n opts={{\n sample: sampleText\n }}\n classes={classes}\n />\n );\n }\n}\n"],"file":"point-menu.js"}
1
+ {"version":3,"sources":["../src/point-menu.jsx"],"names":["IconMenu","props","event","setState","open","anchorEl","currentTarget","state","undefined","opts","onClick","classes","keys","Object","handleMenuClick","key","handleRequestClose","iconColor","handleClick","icon","transform","vertical","horizontal","map","k","index","React","Component","PropTypes","object","func","isRequired","PointMenu","onChange","showSampleAnswer","sampleText","sample","bool"],"mappings":"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","sourcesContent":["import Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nexport class IconMenu extends React.Component {\n static propTypes = {\n opts: PropTypes.object,\n onClick: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: undefined,\n open: false\n };\n }\n\n handleClick = event => this.setState({ open: true, anchorEl: event.currentTarget });\n\n handleRequestClose = () => this.setState({ open: false });\n\n render() {\n const { opts, onClick, classes } = this.props;\n const { open, anchorEl } = this.state;\n const keys = Object.keys(opts) || [];\n\n const handleMenuClick = key => () => {\n onClick(key);\n this.handleRequestClose();\n };\n\n const iconColor = open ? 'inherit' : 'disabled';\n\n return (\n <div>\n <div onClick={this.handleClick}>\n <IconButton className={classes.icon}>\n {open ? <MoreVertIcon color={iconColor} /> : <MoreHorizIcon color={iconColor} />}\n </IconButton>\n </div>\n <Menu\n id=\"point-menu\"\n anchorEl={anchorEl}\n open={open}\n onClose={this.handleRequestClose}\n style={{ transform: 'translate(-15px, -15px)' }}\n transformOrigin={{\n vertical: 'center',\n horizontal: 'right'\n }}\n >\n {keys.map((k, index) => (\n <MenuItem key={index} onClick={handleMenuClick(k)}>\n {opts[k]}\n </MenuItem>\n ))}\n </Menu>\n </div>\n );\n }\n}\n\nexport default class PointMenu extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n showSampleAnswer: PropTypes.bool.isRequired\n };\n\n static defaultProps = {\n classes: {}\n };\n\n render() {\n const { onChange, classes, showSampleAnswer } = this.props;\n const sampleText = showSampleAnswer ? 'Provide Sample Response' : 'Remove Sample Response';\n\n return (\n <IconMenu\n onClick={key => onChange(key)}\n opts={{\n sample: sampleText\n }}\n classes={classes}\n />\n );\n }\n}\n"],"file":"point-menu.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/rubric",
3
- "version": "0.4.24",
3
+ "version": "0.4.27",
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": "^8.0.0",
12
+ "@pie-lib/editable-html": "^8.1.2",
13
13
  "debug": "^4.1.1",
14
14
  "editable-html": "npm:@pie-lib/editable-html@^7.21.0",
15
15
  "lodash": "^4.17.11",
@@ -18,5 +18,5 @@
18
18
  "react-beautiful-dnd": "^11.0.2",
19
19
  "react-dom": "^16.9.0"
20
20
  },
21
- "gitHead": "2f841d92dcda7472f18cbce517eb664dec2f6442"
21
+ "gitHead": "90c3cb92947f6f25ab9effcd274bff0c1ba44c1f"
22
22
  }