@pie-lib/rubric 0.5.5-next.22 → 0.5.5-next.24
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 +8 -2
- package/lib/authoring.js.map +1 -1
- package/package.json +3 -3
- package/src/authoring.jsx +10 -5
package/lib/authoring.js
CHANGED
|
@@ -328,6 +328,12 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
328
328
|
className = _this$props5.className,
|
|
329
329
|
value = _this$props5.value;
|
|
330
330
|
|
|
331
|
+
var _ref = value || {},
|
|
332
|
+
_ref$excludeZeroEnabl = _ref.excludeZeroEnabled,
|
|
333
|
+
excludeZeroEnabled = _ref$excludeZeroEnabl === void 0 ? true : _ref$excludeZeroEnabl,
|
|
334
|
+
_ref$maxPointsEnabled = _ref.maxPointsEnabled,
|
|
335
|
+
maxPointsEnabled = _ref$maxPointsEnabled === void 0 ? true : _ref$maxPointsEnabled;
|
|
336
|
+
|
|
331
337
|
if (value && Number.isFinite(value.maxPoints)) {
|
|
332
338
|
// eslint-disable-next-line no-console
|
|
333
339
|
console.warn('maxPoints is deprecated - remove from model');
|
|
@@ -340,11 +346,11 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
340
346
|
className: classes.rubricTitle
|
|
341
347
|
}, "Rubric"), /*#__PURE__*/_react["default"].createElement(_FormGroup["default"], {
|
|
342
348
|
row: true
|
|
343
|
-
}, /*#__PURE__*/_react["default"].createElement(MaxPoints, {
|
|
349
|
+
}, maxPointsEnabled && /*#__PURE__*/_react["default"].createElement(MaxPoints, {
|
|
344
350
|
max: 10,
|
|
345
351
|
value: value.points.length - 1,
|
|
346
352
|
onChange: this.changeMaxPoints
|
|
347
|
-
}), /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
|
|
353
|
+
}), excludeZeroEnabled && /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
|
|
348
354
|
label: "Exclude zeros",
|
|
349
355
|
control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
350
356
|
checked: value.excludeZero,
|
package/lib/authoring.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authoring.js","names":["log","debug","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","MaxPoints","withStyles","theme","formControl","minWidth","margin","spacing","unit","props","value","onChange","max","classes","e","target","range","map","v","checkSampleAnswer","sampleAnswer","PointConfig","pointConfig","row","display","width","position","editor","backgroundColor","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","content","showSampleAnswer","icon","onMenuChange","onSampleChange","RawAuthoring","destination","source","index","maxPoints","currentMax","length","times","concat","takeRight","type","items","clickedItem","changeContent","className","Number","isFinite","console","warn","classNames","rubricTitle","changeMaxPoints","excludeZeros","container","dragEnd","provided","droppableProps","innerRef","p","shouldRenderPoint","toString","configHolder","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","object","isRequired","func","styles","borderWidth","borderStyle","borderColor","padding","StyledRawAuthoring","Reverse","reverse","propTypes","getIndex"],"sources":["../src/authoring.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport FormControl from '@material-ui/core/FormControl';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport times from 'lodash/times';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport grey from '@material-ui/core/colors/grey';\nimport Typography from '@material-ui/core/Typography';\nimport DragIndicator from '@material-ui/icons/DragIndicator';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport debug from 'debug';\nimport takeRight from 'lodash/takeRight';\nimport PointMenu from './point-menu';\n\nimport range from 'lodash/range';\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string)\n});\n\nconst MaxPoints = withStyles(theme => ({\n formControl: {\n minWidth: '120px',\n margin: theme.spacing.unit\n }\n}))(props => {\n const { value, onChange, max, classes } = props;\n\n return (\n <FormControl className={classes.formControl} variant=\"outlined\">\n <InputLabel width={100} htmlFor=\"...\">\n Max Points\n </InputLabel>\n <Select\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"authoring.js","names":["log","debug","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","MaxPoints","withStyles","theme","formControl","minWidth","margin","spacing","unit","props","value","onChange","max","classes","e","target","range","map","v","checkSampleAnswer","sampleAnswer","PointConfig","pointConfig","row","display","width","position","editor","backgroundColor","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","content","showSampleAnswer","icon","onMenuChange","onSampleChange","RawAuthoring","destination","source","index","maxPoints","currentMax","length","times","concat","takeRight","type","items","clickedItem","changeContent","className","excludeZeroEnabled","maxPointsEnabled","Number","isFinite","console","warn","classNames","rubricTitle","changeMaxPoints","excludeZeros","container","dragEnd","provided","droppableProps","innerRef","p","shouldRenderPoint","toString","configHolder","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","object","isRequired","func","styles","borderWidth","borderStyle","borderColor","padding","StyledRawAuthoring","Reverse","reverse","propTypes","getIndex"],"sources":["../src/authoring.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport FormControl from '@material-ui/core/FormControl';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport times from 'lodash/times';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport grey from '@material-ui/core/colors/grey';\nimport Typography from '@material-ui/core/Typography';\nimport DragIndicator from '@material-ui/icons/DragIndicator';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport debug from 'debug';\nimport takeRight from 'lodash/takeRight';\nimport PointMenu from './point-menu';\n\nimport range from 'lodash/range';\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string)\n});\n\nconst MaxPoints = withStyles(theme => ({\n formControl: {\n minWidth: '120px',\n margin: theme.spacing.unit\n }\n}))(props => {\n const { value, onChange, max, classes } = props;\n\n return (\n <FormControl className={classes.formControl} variant=\"outlined\">\n <InputLabel width={100} htmlFor=\"...\">\n Max Points\n </InputLabel>\n <Select\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 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 && (\n <MaxPoints max={10} value={value.points.length - 1} onChange={this.changeMaxPoints} />\n )}\n {excludeZeroEnabled && (\n <FormControlLabel\n label=\"Exclude zeros\"\n control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}\n />\n )}\n </FormGroup>\n <div className={classes.container}>\n <DragDropContext onDragEnd={this.dragEnd}>\n <Droppable droppableId=\"droppable\">\n {provided => (\n <div {...provided.droppableProps} ref={provided.innerRef}>\n {value.points.map(\n (p, index) =>\n this.shouldRenderPoint(index, value) && (\n <Draggable\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"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/rubric",
|
|
3
|
-
"version": "0.5.5-next.
|
|
3
|
+
"version": "0.5.5-next.24+20abbec4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.3",
|
|
11
11
|
"@material-ui/icons": "^3.0.2",
|
|
12
|
-
"@pie-lib/editable-html": "^9.2.
|
|
12
|
+
"@pie-lib/editable-html": "^9.2.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": "
|
|
21
|
+
"gitHead": "20abbec4222dca510c52eb8a1103cd0fac89b612"
|
|
22
22
|
}
|
package/src/authoring.jsx
CHANGED
|
@@ -242,6 +242,7 @@ export class RawAuthoring extends React.Component {
|
|
|
242
242
|
|
|
243
243
|
render() {
|
|
244
244
|
const { classes, className, value } = this.props;
|
|
245
|
+
let { excludeZeroEnabled = true, maxPointsEnabled = true } = value || {};
|
|
245
246
|
|
|
246
247
|
if (value && Number.isFinite(value.maxPoints)) {
|
|
247
248
|
// eslint-disable-next-line no-console
|
|
@@ -254,11 +255,15 @@ export class RawAuthoring extends React.Component {
|
|
|
254
255
|
Rubric
|
|
255
256
|
</Typography>
|
|
256
257
|
<FormGroup row>
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
258
|
+
{maxPointsEnabled && (
|
|
259
|
+
<MaxPoints max={10} value={value.points.length - 1} onChange={this.changeMaxPoints} />
|
|
260
|
+
)}
|
|
261
|
+
{excludeZeroEnabled && (
|
|
262
|
+
<FormControlLabel
|
|
263
|
+
label="Exclude zeros"
|
|
264
|
+
control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}
|
|
265
|
+
/>
|
|
266
|
+
)}
|
|
262
267
|
</FormGroup>
|
|
263
268
|
<div className={classes.container}>
|
|
264
269
|
<DragDropContext onDragEnd={this.dragEnd}>
|