@pie-lib/rubric 0.5.5-next.24 → 0.6.0

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,17 @@
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.6.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.5.4...@pie-lib/rubric@0.6.0) (2022-10-17)
7
+
8
+
9
+ ### Features
10
+
11
+ * **rubric:** add conditional rendering for exclude zeros and max points PD-2040 ([9914c99](https://github.com/pie-framework/pie-lib/commit/9914c99bf25da0e1e94bae6f59febafded65cfe6))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [0.5.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.5.3...@pie-lib/rubric@0.5.4) (2022-09-29)
7
18
 
8
19
  **Note:** Version bump only for package @pie-lib/rubric
@@ -1 +1 @@
1
- {"version":3,"file":"authoring.js","names":["log","debug","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","MaxPoints","withStyles","theme","formControl","minWidth","margin","spacing","unit","props","value","onChange","max","classes","e","target","range","map","v","checkSampleAnswer","sampleAnswer","PointConfig","pointConfig","row","display","width","position","editor","backgroundColor","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","content","showSampleAnswer","icon","onMenuChange","onSampleChange","RawAuthoring","destination","source","index","maxPoints","currentMax","length","times","concat","takeRight","type","items","clickedItem","changeContent","className","excludeZeroEnabled","maxPointsEnabled","Number","isFinite","console","warn","classNames","rubricTitle","changeMaxPoints","excludeZeros","container","dragEnd","provided","droppableProps","innerRef","p","shouldRenderPoint","toString","configHolder","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","object","isRequired","func","styles","borderWidth","borderStyle","borderColor","padding","StyledRawAuthoring","Reverse","reverse","propTypes","getIndex"],"sources":["../src/authoring.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport FormControl from '@material-ui/core/FormControl';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport times from 'lodash/times';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport grey from '@material-ui/core/colors/grey';\nimport Typography from '@material-ui/core/Typography';\nimport DragIndicator from '@material-ui/icons/DragIndicator';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport debug from 'debug';\nimport takeRight from 'lodash/takeRight';\nimport PointMenu from './point-menu';\n\nimport range from 'lodash/range';\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string)\n});\n\nconst MaxPoints = withStyles(theme => ({\n formControl: {\n minWidth: '120px',\n margin: theme.spacing.unit\n }\n}))(props => {\n const { value, onChange, max, classes } = props;\n\n return (\n <FormControl className={classes.formControl} variant=\"outlined\">\n <InputLabel width={100} htmlFor=\"...\">\n Max Points\n </InputLabel>\n <Select\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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"}
1
+ {"version":3,"sources":["../src/authoring.jsx"],"names":["log","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","MaxPoints","theme","formControl","minWidth","margin","spacing","unit","props","value","onChange","max","classes","e","target","map","v","checkSampleAnswer","sampleAnswer","PointConfig","pointConfig","row","display","width","position","editor","backgroundColor","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","content","showSampleAnswer","icon","onMenuChange","onSampleChange","RawAuthoring","destination","source","index","maxPoints","currentMax","length","concat","type","items","clickedItem","changeContent","className","excludeZeroEnabled","maxPointsEnabled","Number","isFinite","console","warn","rubricTitle","changeMaxPoints","excludeZeros","container","dragEnd","provided","droppableProps","innerRef","p","shouldRenderPoint","toString","configHolder","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","object","isRequired","func","styles","borderWidth","borderStyle","borderColor","padding","StyledRawAuthoring","Reverse","reverse","propTypes","getIndex"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport FormControl from '@material-ui/core/FormControl';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport times from 'lodash/times';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport grey from '@material-ui/core/colors/grey';\nimport Typography from '@material-ui/core/Typography';\nimport DragIndicator from '@material-ui/icons/DragIndicator';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport debug from 'debug';\nimport takeRight from 'lodash/takeRight';\nimport PointMenu from './point-menu';\n\nimport range from 'lodash/range';\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string)\n});\n\nconst MaxPoints = withStyles(theme => ({\n formControl: {\n minWidth: '120px',\n margin: theme.spacing.unit\n }\n}))(props => {\n const { value, onChange, max, classes } = props;\n\n return (\n <FormControl className={classes.formControl} variant=\"outlined\">\n <InputLabel width={100} htmlFor=\"...\">\n Max Points\n </InputLabel>\n <Select\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"],"file":"authoring.js"}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC"],"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;;AAEA,IAAMA,YAAY,GAAG;EACnBC,aAAa,EAAE,cADI;EAEnBC,kBAAkB,EAAE;AAFD,CAArB"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,aAAa,EAAE,cADI;AAEnBC,EAAAA,kBAAkB,EAAE;AAFD,CAArB","sourcesContent":["import Authoring from './authoring';\n\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric'\n};\n\nexport { Authoring, RUBRIC_TYPES };\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"point-menu.js","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"],"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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"}
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.5.5-next.24+20abbec4",
3
+ "version": "0.6.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -18,5 +18,5 @@
18
18
  "react-beautiful-dnd": "^11.0.2",
19
19
  "react-dom": "^16.9.0"
20
20
  },
21
- "gitHead": "20abbec4222dca510c52eb8a1103cd0fac89b612"
21
+ "gitHead": "b81c7f2808e1df009c014dbfb99f995718e795a8"
22
22
  }