@pie-element/rubric 4.9.13-next.0 → 4.9.13-next.14
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/configure/lib/main.js +1 -1
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/pie-toolbox-rubric/authoring.js +6 -6
- package/configure/lib/pie-toolbox-rubric/authoring.js.map +1 -1
- package/configure/package.json +3 -1
- package/configure/src/__tests__/index.test.jsx +11 -0
- package/configure/src/main.jsx +1 -1
- package/configure/src/pie-toolbox-rubric/authoring.jsx +3 -3
- package/controller/package.json +0 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/main.js +1 -1
- package/lib/main.js.map +1 -1
- package/lib/print.js +1 -1
- package/lib/print.js.map +1 -1
- package/module/configure.js +1 -1
- package/module/element.js +1 -1
- package/module/manifest.json +4 -0
- package/module/print.js +1 -1
- package/package.json +4 -3
- package/src/index.js +1 -1
- package/src/main.jsx +1 -1
- package/src/print.js +1 -1
package/configure/lib/main.js
CHANGED
|
@@ -29,7 +29,7 @@ var _index = require("./pie-toolbox-rubric/index");
|
|
|
29
29
|
|
|
30
30
|
var _styles = require("@material-ui/core/styles");
|
|
31
31
|
|
|
32
|
-
var _configUi = require("@pie-lib/
|
|
32
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
33
33
|
|
|
34
34
|
var _excluded = ["points", "sampleAnswers"];
|
|
35
35
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","styles","theme","design","fontFamily","fontSize","typography","Main","m","config","rubricless","points","sampleAnswers","rest","props","model","configuration","onConfigurationChanged","onModelChanged","imageSupport","baseInputConfiguration","contentDimensions","settingsPanelDisabled","showExcludeZero","showMaxPoint","mathMlOptions","rubriclessInstruction","width","value","verifyRubriclessModel","extraCSSRules","panelProperties","excludeZeroEnabled","label","maxPointsEnabled","rubriclessInstructionEnabled","getPluginProps","Object","assign","inputConfiguration","Properties","maxWidth","React","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Authoring } from './pie-toolbox-rubric/index';\nimport { withStyles } from '@material-ui/core/styles';\nimport { layout, settings } from '@pie-lib/
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","styles","theme","design","fontFamily","fontSize","typography","Main","m","config","rubricless","points","sampleAnswers","rest","props","model","configuration","onConfigurationChanged","onModelChanged","imageSupport","baseInputConfiguration","contentDimensions","settingsPanelDisabled","showExcludeZero","showMaxPoint","mathMlOptions","rubriclessInstruction","width","value","verifyRubriclessModel","extraCSSRules","panelProperties","excludeZeroEnabled","label","maxPointsEnabled","rubriclessInstructionEnabled","getPluginProps","Object","assign","inputConfiguration","Properties","maxWidth","React","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Authoring } from './pie-toolbox-rubric/index';\nimport { withStyles } from '@material-ui/core/styles';\nimport { layout, settings } from '@pie-lib/config-ui';\n\nconst { Panel, toggle } = settings;\n\nconst styles = (theme) => ({\n design: {\n fontFamily: 'Cerebri Sans',\n fontSize: theme.typography.fontSize,\n },\n});\n\nclass Main extends React.Component {\n verifyRubriclessModel = (m, config) => {\n const { rubricless = false } = config || {};\n return rubricless ? (({ points, sampleAnswers, ...rest }) => rest)(m) : m;\n };\n\n render() {\n const { model, configuration, onConfigurationChanged, onModelChanged, imageSupport } = this.props || {};\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n settingsPanelDisabled,\n showExcludeZero = {},\n showMaxPoint = {},\n mathMlOptions = {},\n rubricless = false,\n rubriclessInstruction,\n width,\n } = configuration || {};\n\n // ensure to eliminate points and sampleAnswers in case of rubricless\n const value = this.verifyRubriclessModel(model, configuration);\n const { extraCSSRules } = model;\n\n const panelProperties = {\n excludeZeroEnabled: showExcludeZero.settings && toggle(showExcludeZero.label),\n maxPointsEnabled: showMaxPoint.settings && toggle(showMaxPoint.label),\n rubriclessInstructionEnabled: rubricless && rubriclessInstruction.settings && toggle(rubriclessInstruction.label),\n };\n\n const getPluginProps = (props) => {\n return Object.assign(\n {\n ...baseInputConfiguration,\n },\n props || {},\n );\n };\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n pluginOpts={getPluginProps(rubriclessInstruction?.inputConfiguration)}\n groups={{\n Properties: panelProperties,\n }}\n imageSupport={imageSupport}\n />\n }\n >\n <div style={{ maxWidth: width }}>\n <Authoring\n value={value}\n config={configuration}\n onChange={onModelChanged}\n mathMlOptions={mathMlOptions}\n rubricless={rubricless}\n pluginOpts={baseInputConfiguration}\n imageSupport={imageSupport}\n />\n </div>\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
@@ -57,7 +57,7 @@ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography")
|
|
|
57
57
|
|
|
58
58
|
var _DragIndicator = _interopRequireDefault(require("@material-ui/icons/DragIndicator"));
|
|
59
59
|
|
|
60
|
-
var _editableHtml = require("@pie-lib/
|
|
60
|
+
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
61
61
|
|
|
62
62
|
var _reactBeautifulDnd = require("react-beautiful-dnd");
|
|
63
63
|
|
|
@@ -67,9 +67,9 @@ var _pointMenu = _interopRequireDefault(require("./point-menu"));
|
|
|
67
67
|
|
|
68
68
|
var _range = _interopRequireDefault(require("lodash/range"));
|
|
69
69
|
|
|
70
|
-
var _configUi = require("@pie-lib/
|
|
70
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
71
71
|
|
|
72
|
-
var _renderUi = require("@pie-lib/
|
|
72
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
73
73
|
|
|
74
74
|
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; }
|
|
75
75
|
|
|
@@ -200,7 +200,7 @@ var PointConfig = (0, _styles.withStyles)(function (theme) {
|
|
|
200
200
|
className: classes.row
|
|
201
201
|
}, /*#__PURE__*/_react["default"].createElement(_DragIndicator["default"], {
|
|
202
202
|
className: classes.dragIndicator
|
|
203
|
-
}), /*#__PURE__*/_react["default"].createElement(_editableHtml
|
|
203
|
+
}), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
204
204
|
className: classes.editor,
|
|
205
205
|
error: error,
|
|
206
206
|
pluginProps: pluginOpts,
|
|
@@ -226,7 +226,7 @@ var PointConfig = (0, _styles.withStyles)(function (theme) {
|
|
|
226
226
|
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
227
227
|
variant: "overline",
|
|
228
228
|
className: classes.dragIndicator
|
|
229
|
-
}, "Sample Response"), /*#__PURE__*/_react["default"].createElement(_editableHtml
|
|
229
|
+
}, "Sample Response"), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
230
230
|
className: classes.editor,
|
|
231
231
|
markup: sampleAnswer,
|
|
232
232
|
pluginProps: pluginOpts,
|
|
@@ -405,7 +405,7 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
|
|
|
405
405
|
})), rubriclessInstructionEnabled && rubricless && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
406
406
|
label: rubriclessInstruction.label,
|
|
407
407
|
className: classes.inputContainer
|
|
408
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml
|
|
408
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
409
409
|
className: classes.input,
|
|
410
410
|
markup: value.rubriclessInstruction || '',
|
|
411
411
|
onChange: this.changeRubriclessInstruction,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pie-toolbox-rubric/authoring.jsx"],"names":["log","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","maxPoints","number","rubriclessInstruction","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","palette","common","white","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","errorText","fontSize","typography","error","main","content","mathMlOptions","pluginOpts","imageSupport","pointsCount","showSampleAnswer","language","icon","onMenuChange","onSampleChange","RawAuthoring","destination","source","index","input","type","items","clickedItem","changeContent","className","config","rubricless","excludeZeroEnabled","maxPointsEnabled","errors","rubriclessInstructionEnabled","maxMaxPoints","pointsDescriptorsErrors","Number","isFinite","console","warn","maxPointsValue","rubricTitle","changeMaxPoints","customColor","excludeZeros","label","inputContainer","changeRubriclessInstruction","container","dragEnd","provided","droppableProps","innerRef","p","toString","configHolder","draggableProps","dragHandleProps","length","onPointMenuChange","placeholder","React","Component","object","isRequired","func","add","styles","borderWidth","borderStyle","borderColor","padding","marginBottom","tertiary","StyledRawAuthoring","Reverse","reverse","concat","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/pie-toolbox/editable-html';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport debug from 'debug';\nimport PointMenu from './point-menu';\n\nimport range from 'lodash/range';\nimport { InputContainer } from '@pie-lib/pie-toolbox/config-ui';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string),\n maxPoints: PropTypes.number,\n rubriclessInstruction: 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 value={value} onChange={(e) => onChange(e.target.value)} input={<OutlinedInput labelWidth={80} />}>\n {range(1, max + 1).map((v) => (\n <MenuItem key={`${v}`} value={v}>\n {v}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n});\n\n// if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed\n// if the value is '', the Sample Answer input field will be empty\nconst checkSampleAnswer = (sampleAnswer) => sampleAnswer === null || sampleAnswer === 'null';\n\nexport const PointConfig = withStyles((theme) => ({\n pointConfig: {},\n row: {\n display: 'flex',\n width: '100%',\n position: 'relative',\n },\n editor: {\n width: '100%',\n backgroundColor: `${theme.palette.common.white} !important`,\n },\n dragIndicator: {\n paddingTop: theme.spacing.unit,\n color: grey[500],\n },\n pointsLabel: {\n color: grey[500],\n paddingBottom: theme.spacing.unit,\n textTransform: 'uppercase',\n },\n sampleAnswersEditor: {\n paddingLeft: theme.spacing.unit * 3,\n },\n pointMenu: {\n position: 'absolute',\n right: 0,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingLeft: theme.spacing.unit * 3,\n paddingTop: theme.spacing.unit,\n },\n}))((props) => {\n const {\n points,\n content,\n classes,\n sampleAnswer,\n mathMlOptions = {},\n error,\n pluginOpts = {},\n excludeZero,\n imageSupport = {},\n } = props;\n const pointsCount = excludeZero ? points + 1 : points;\n const pointsLabel = `${pointsCount} ${pointsCount === 1 ? 'pt' : 'pts'}`;\n const showSampleAnswer = checkSampleAnswer(sampleAnswer);\n\n return (\n <div className={classes.pointConfig}>\n <Typography variant=\"overline\" className={classes.pointsLabel}>\n {pointsLabel}\n </Typography>\n\n <div className={classes.row}>\n <DragIndicator className={classes.dragIndicator} />\n <EditableHtml\n className={classes.editor}\n error={error}\n pluginProps={pluginOpts}\n markup={content}\n onChange={props.onChange}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n <PointMenu\n classes={{\n icon: classes.pointMenu,\n }}\n showSampleAnswer={showSampleAnswer}\n onChange={props.onMenuChange}\n />\n </div>\n {error && <div className={classes.errorText}>{error}</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 pluginProps={pluginOpts}\n onChange={props.onSampleChange}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\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 config: PropTypes.object,\n pluginOpts: PropTypes.object,\n rubricless: PropTypes.bool,\n onChange: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n static defaultProps = {};\n\n dragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const { value, onChange } = this.props;\n\n const points = reorder(value.points, result.source.index, result.destination.index);\n const sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);\n\n onChange({ ...value, points, sampleAnswers });\n };\n\n changeRubriclessInstruction = (input) => {\n const { value, onChange } = this.props;\n onChange({ ...value, rubriclessInstruction: input });\n };\n\n changeMaxPoints = (maxPoints) => {\n const { value, onChange } = this.props;\n // excludeZero should be false and disabled when maxPoints is 1\n const excludeZero = maxPoints === 1 ? false : value.excludeZero;\n\n onChange({ ...value, maxPoints, excludeZero });\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 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 {\n classes,\n className,\n value,\n mathMlOptions = {},\n config = {},\n rubricless = false,\n pluginOpts = {},\n imageSupport = {},\n } = this.props;\n let {\n excludeZeroEnabled = true,\n maxPointsEnabled = true,\n errors = {},\n rubriclessInstructionEnabled = false,\n maxPoints = 10,\n } = value || {};\n // rubric will contain a max value for maxPoints\n const { rubriclessInstruction = {}, maxMaxPoints = 10 } = config || {};\n const { pointsDescriptorsErrors } = errors || {};\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 // for rubric value is computed based on points\n const maxPointsValue = maxPoints;\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\n max={maxMaxPoints < 100 ? maxMaxPoints : 100}\n value={maxPointsValue}\n onChange={this.changeMaxPoints}\n pluginOpts={pluginOpts}\n imageSupport={imageSupport}\n />\n )}\n {excludeZeroEnabled && (\n <FormControlLabel\n label=\"Exclude zeros\"\n control={\n <Checkbox\n className={classes.customColor}\n checked={value.excludeZero}\n onChange={this.excludeZeros}\n disabled={maxPointsValue === 1}\n />\n }\n />\n )}\n </FormGroup>\n\n {rubriclessInstructionEnabled && rubricless && (\n <InputContainer label={rubriclessInstruction.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={value.rubriclessInstruction || ''}\n onChange={this.changeRubriclessInstruction}\n pluginProps={pluginOpts}\n nonEmpty={false}\n disableUnderline\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n />\n </InputContainer>\n )}\n\n <div className={rubricless ? classes.rubricless : classes.container}>\n <DragDropContext onDragEnd={this.dragEnd}>\n <Droppable droppableId=\"droppable\">\n {(provided) => (\n <div {...provided.droppableProps} ref={provided.innerRef}>\n {value.points.map((p, index) => {\n return (\n <Draggable key={`${p.points}-${index}`} index={index} draggableId={index.toString()}>\n {(provided) => (\n <div\n className={classes.configHolder}\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <PointConfig\n points={value.points.length - 1 - index}\n content={p}\n error={\n pointsDescriptorsErrors && pointsDescriptorsErrors[value.points.length - 1 - index]\n }\n sampleAnswer={value.sampleAnswers && value.sampleAnswers[index]}\n onChange={(content) => this.changeContent(index, content, 'points')}\n onSampleChange={(content) => this.changeContent(index, content, 'sampleAnswers')}\n onMenuChange={(clickedItem) => this.onPointMenuChange(index, clickedItem)}\n mathMlOptions={mathMlOptions}\n pluginOpts={pluginOpts}\n imageSupport={imageSupport}\n excludeZero={value.excludeZero}\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 inputContainer: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n rubricless: {\n display: 'none',\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 customColor: {\n color: `${color.tertiary()} !important`,\n },\n});\n\nconst StyledRawAuthoring = withStyles(styles)(RawAuthoring);\n\nconst Reverse = (props) => {\n const { rubricless = false, config = {}, pluginOpts = {}, imageSupport = {} } = 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 (\n <StyledRawAuthoring\n value={value}\n config={config}\n onChange={onChange}\n rubricless={rubricless}\n pluginOpts={pluginOpts}\n imageSupport={imageSupport}\n />\n );\n};\n\nReverse.propTypes = {\n value: RubricType,\n config: PropTypes.object,\n pluginOpts: PropTypes.object,\n rubricless: PropTypes.bool,\n getIndex: PropTypes.func,\n onChange: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n};\n\nexport default Reverse;\n"],"file":"authoring.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/pie-toolbox-rubric/authoring.jsx"],"names":["log","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","maxPoints","number","rubriclessInstruction","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","palette","common","white","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","errorText","fontSize","typography","error","main","content","mathMlOptions","pluginOpts","imageSupport","pointsCount","showSampleAnswer","language","icon","onMenuChange","onSampleChange","RawAuthoring","destination","source","index","input","type","items","clickedItem","changeContent","className","config","rubricless","excludeZeroEnabled","maxPointsEnabled","errors","rubriclessInstructionEnabled","maxMaxPoints","pointsDescriptorsErrors","Number","isFinite","console","warn","maxPointsValue","rubricTitle","changeMaxPoints","customColor","excludeZeros","label","inputContainer","changeRubriclessInstruction","container","dragEnd","provided","droppableProps","innerRef","p","toString","configHolder","draggableProps","dragHandleProps","length","onPointMenuChange","placeholder","React","Component","object","isRequired","func","add","styles","borderWidth","borderStyle","borderColor","padding","marginBottom","tertiary","StyledRawAuthoring","Reverse","reverse","concat","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 PointMenu from './point-menu';\n\nimport range from 'lodash/range';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string),\n maxPoints: PropTypes.number,\n rubriclessInstruction: 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 value={value} onChange={(e) => onChange(e.target.value)} input={<OutlinedInput labelWidth={80} />}>\n {range(1, max + 1).map((v) => (\n <MenuItem key={`${v}`} value={v}>\n {v}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n});\n\n// if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed\n// if the value is '', the Sample Answer input field will be empty\nconst checkSampleAnswer = (sampleAnswer) => sampleAnswer === null || sampleAnswer === 'null';\n\nexport const PointConfig = withStyles((theme) => ({\n pointConfig: {},\n row: {\n display: 'flex',\n width: '100%',\n position: 'relative',\n },\n editor: {\n width: '100%',\n backgroundColor: `${theme.palette.common.white} !important`,\n },\n dragIndicator: {\n paddingTop: theme.spacing.unit,\n color: grey[500],\n },\n pointsLabel: {\n color: grey[500],\n paddingBottom: theme.spacing.unit,\n textTransform: 'uppercase',\n },\n sampleAnswersEditor: {\n paddingLeft: theme.spacing.unit * 3,\n },\n pointMenu: {\n position: 'absolute',\n right: 0,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingLeft: theme.spacing.unit * 3,\n paddingTop: theme.spacing.unit,\n },\n}))((props) => {\n const {\n points,\n content,\n classes,\n sampleAnswer,\n mathMlOptions = {},\n error,\n pluginOpts = {},\n excludeZero,\n imageSupport = {},\n } = props;\n const pointsCount = excludeZero ? points + 1 : points;\n const pointsLabel = `${pointsCount} ${pointsCount === 1 ? 'pt' : 'pts'}`;\n const showSampleAnswer = checkSampleAnswer(sampleAnswer);\n\n return (\n <div className={classes.pointConfig}>\n <Typography variant=\"overline\" className={classes.pointsLabel}>\n {pointsLabel}\n </Typography>\n\n <div className={classes.row}>\n <DragIndicator className={classes.dragIndicator} />\n <EditableHtml\n className={classes.editor}\n error={error}\n pluginProps={pluginOpts}\n markup={content}\n onChange={props.onChange}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n <PointMenu\n classes={{\n icon: classes.pointMenu,\n }}\n showSampleAnswer={showSampleAnswer}\n onChange={props.onMenuChange}\n />\n </div>\n {error && <div className={classes.errorText}>{error}</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 pluginProps={pluginOpts}\n onChange={props.onSampleChange}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\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 config: PropTypes.object,\n pluginOpts: PropTypes.object,\n rubricless: PropTypes.bool,\n onChange: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n static defaultProps = {};\n\n dragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const { value, onChange } = this.props;\n\n const points = reorder(value.points, result.source.index, result.destination.index);\n const sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);\n\n onChange({ ...value, points, sampleAnswers });\n };\n\n changeRubriclessInstruction = (input) => {\n const { value, onChange } = this.props;\n onChange({ ...value, rubriclessInstruction: input });\n };\n\n changeMaxPoints = (maxPoints) => {\n const { value, onChange } = this.props;\n // excludeZero should be false and disabled when maxPoints is 1\n const excludeZero = maxPoints === 1 ? false : value.excludeZero;\n\n onChange({ ...value, maxPoints, excludeZero });\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 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 {\n classes,\n className,\n value,\n mathMlOptions = {},\n config = {},\n rubricless = false,\n pluginOpts = {},\n imageSupport = {},\n } = this.props;\n let {\n excludeZeroEnabled = true,\n maxPointsEnabled = true,\n errors = {},\n rubriclessInstructionEnabled = false,\n maxPoints = 10,\n } = value || {};\n // rubric will contain a max value for maxPoints\n const { rubriclessInstruction = {}, maxMaxPoints = 10 } = config || {};\n const { pointsDescriptorsErrors } = errors || {};\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 // for rubric value is computed based on points\n const maxPointsValue = maxPoints;\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\n max={maxMaxPoints < 100 ? maxMaxPoints : 100}\n value={maxPointsValue}\n onChange={this.changeMaxPoints}\n pluginOpts={pluginOpts}\n imageSupport={imageSupport}\n />\n )}\n {excludeZeroEnabled && (\n <FormControlLabel\n label=\"Exclude zeros\"\n control={\n <Checkbox\n className={classes.customColor}\n checked={value.excludeZero}\n onChange={this.excludeZeros}\n disabled={maxPointsValue === 1}\n />\n }\n />\n )}\n </FormGroup>\n\n {rubriclessInstructionEnabled && rubricless && (\n <InputContainer label={rubriclessInstruction.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={value.rubriclessInstruction || ''}\n onChange={this.changeRubriclessInstruction}\n pluginProps={pluginOpts}\n nonEmpty={false}\n disableUnderline\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n imageSupport={imageSupport}\n />\n </InputContainer>\n )}\n\n <div className={rubricless ? classes.rubricless : classes.container}>\n <DragDropContext onDragEnd={this.dragEnd}>\n <Droppable droppableId=\"droppable\">\n {(provided) => (\n <div {...provided.droppableProps} ref={provided.innerRef}>\n {value.points.map((p, index) => {\n return (\n <Draggable key={`${p.points}-${index}`} index={index} draggableId={index.toString()}>\n {(provided) => (\n <div\n className={classes.configHolder}\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <PointConfig\n points={value.points.length - 1 - index}\n content={p}\n error={\n pointsDescriptorsErrors && pointsDescriptorsErrors[value.points.length - 1 - index]\n }\n sampleAnswer={value.sampleAnswers && value.sampleAnswers[index]}\n onChange={(content) => this.changeContent(index, content, 'points')}\n onSampleChange={(content) => this.changeContent(index, content, 'sampleAnswers')}\n onMenuChange={(clickedItem) => this.onPointMenuChange(index, clickedItem)}\n mathMlOptions={mathMlOptions}\n pluginOpts={pluginOpts}\n imageSupport={imageSupport}\n excludeZero={value.excludeZero}\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 inputContainer: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n rubricless: {\n display: 'none',\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 customColor: {\n color: `${color.tertiary()} !important`,\n },\n});\n\nconst StyledRawAuthoring = withStyles(styles)(RawAuthoring);\n\nconst Reverse = (props) => {\n const { rubricless = false, config = {}, pluginOpts = {}, imageSupport = {} } = 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 (\n <StyledRawAuthoring\n value={value}\n config={config}\n onChange={onChange}\n rubricless={rubricless}\n pluginOpts={pluginOpts}\n imageSupport={imageSupport}\n />\n );\n};\n\nReverse.propTypes = {\n value: RubricType,\n config: PropTypes.object,\n pluginOpts: PropTypes.object,\n rubricless: PropTypes.bool,\n getIndex: PropTypes.func,\n onChange: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n};\n\nexport default Reverse;\n"],"file":"authoring.js"}
|
package/configure/package.json
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@material-ui/core": "^3.9.2",
|
|
10
10
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
11
|
-
"@pie-lib/
|
|
11
|
+
"@pie-lib/config-ui": "^11.25.0",
|
|
12
|
+
"@pie-lib/editable-html": "^11.17.0",
|
|
13
|
+
"@pie-lib/render-ui": "^4.31.0",
|
|
12
14
|
"debug": "^4.1.1",
|
|
13
15
|
"react": "^16.8.6",
|
|
14
16
|
"react-beautiful-dnd": "^11.0.2",
|
|
@@ -7,6 +7,17 @@ jest.mock('react-dom', () => ({
|
|
|
7
7
|
render: jest.fn(),
|
|
8
8
|
}));
|
|
9
9
|
|
|
10
|
+
jest.mock('@pie-lib/config-ui', () => ({
|
|
11
|
+
layout: {
|
|
12
|
+
ConfigLayout: (props) => <div {...props} />,
|
|
13
|
+
},
|
|
14
|
+
settings: {
|
|
15
|
+
Panel: (props) => <div {...props} />,
|
|
16
|
+
toggle: jest.fn(),
|
|
17
|
+
radio: jest.fn(),
|
|
18
|
+
},
|
|
19
|
+
}));
|
|
20
|
+
|
|
10
21
|
const model = (extras) => ({
|
|
11
22
|
id: '1',
|
|
12
23
|
element: 'pie-rubric',
|
package/configure/src/main.jsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Authoring } from './pie-toolbox-rubric/index';
|
|
3
3
|
import { withStyles } from '@material-ui/core/styles';
|
|
4
|
-
import { layout, settings } from '@pie-lib/
|
|
4
|
+
import { layout, settings } from '@pie-lib/config-ui';
|
|
5
5
|
|
|
6
6
|
const { Panel, toggle } = settings;
|
|
7
7
|
|
|
@@ -14,14 +14,14 @@ import FormControlLabel from '@material-ui/core/FormControlLabel';
|
|
|
14
14
|
import grey from '@material-ui/core/colors/grey';
|
|
15
15
|
import Typography from '@material-ui/core/Typography';
|
|
16
16
|
import DragIndicator from '@material-ui/icons/DragIndicator';
|
|
17
|
-
import
|
|
17
|
+
import EditableHtml from '@pie-lib/editable-html';
|
|
18
18
|
import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
|
|
19
19
|
import debug from 'debug';
|
|
20
20
|
import PointMenu from './point-menu';
|
|
21
21
|
|
|
22
22
|
import range from 'lodash/range';
|
|
23
|
-
import { InputContainer } from '@pie-lib/
|
|
24
|
-
import { color } from '@pie-lib/
|
|
23
|
+
import { InputContainer } from '@pie-lib/config-ui';
|
|
24
|
+
import { color } from '@pie-lib/render-ui';
|
|
25
25
|
|
|
26
26
|
const log = debug('pie-lib:rubric:authoring');
|
|
27
27
|
|
package/controller/package.json
CHANGED
package/lib/index.js
CHANGED
|
@@ -29,7 +29,7 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
|
29
29
|
|
|
30
30
|
var _debug = _interopRequireDefault(require("debug"));
|
|
31
31
|
|
|
32
|
-
var _mathRendering = require("@pie-lib/
|
|
32
|
+
var _mathRendering = require("@pie-lib/math-rendering");
|
|
33
33
|
|
|
34
34
|
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); }; }
|
|
35
35
|
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["RubricRender","debug","log","onModelChanged","bind","s","_model","_render","m","el","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEqBA,Y;;;;;AACnB,0BAAc;AAAA;;AAAA;AACZ;;AACAC,sBAAMC,GAAN,CAAU,oBAAV;;AACA,UAAKC,cAAL,GAAsB,MAAKA,cAAL,CAAoBC,IAApB,gDAAtB;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;;AACA,WAAKE,OAAL;AACD;;;WAED,wBAAeC,CAAf,EAAkB;AAChB,WAAKF,MAAL,GAAcE,CAAd;;AACA,WAAKD,OAAL;AACD;;;WAED,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAED,mBAAU;AAAA;;AACR,UAAI,KAAKD,MAAT,EAAiB;AACf,YAAMG,EAAE,gBAAG,gCAAC,gBAAD;AAAQ,UAAA,KAAK,EAAE,KAAKH;AAApB,UAAX;;AAEAI,6BAASC,MAAT,CAAgBF,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,MAAX;AACD,SAFD;AAGD;AACF;;;kDA7BuCG,W","sourcesContent":["import Rubric from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport { renderMath } from '@pie-lib/
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["RubricRender","debug","log","onModelChanged","bind","s","_model","_render","m","el","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEqBA,Y;;;;;AACnB,0BAAc;AAAA;;AAAA;AACZ;;AACAC,sBAAMC,GAAN,CAAU,oBAAV;;AACA,UAAKC,cAAL,GAAsB,MAAKA,cAAL,CAAoBC,IAApB,gDAAtB;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;;AACA,WAAKE,OAAL;AACD;;;WAED,wBAAeC,CAAf,EAAkB;AAChB,WAAKF,MAAL,GAAcE,CAAd;;AACA,WAAKD,OAAL;AACD;;;WAED,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAED,mBAAU;AAAA;;AACR,UAAI,KAAKD,MAAT,EAAiB;AACf,YAAMG,EAAE,gBAAG,gCAAC,gBAAD;AAAQ,UAAA,KAAK,EAAE,KAAKH;AAApB,UAAX;;AAEAI,6BAASC,MAAT,CAAgBF,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,MAAX;AACD,SAFD;AAGD;AACF;;;kDA7BuCG,W","sourcesContent":["import Rubric from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nexport default class RubricRender extends HTMLElement {\n constructor() {\n super();\n debug.log('constructor called');\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n set model(s) {\n this._model = s;\n this._render();\n }\n\n onModelChanged(m) {\n this._model = m;\n this._render();\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (this._model) {\n const el = <Rubric value={this._model} />;\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
|
package/lib/main.js
CHANGED
|
@@ -31,7 +31,7 @@ var _List = _interopRequireDefault(require("@material-ui/core/List"));
|
|
|
31
31
|
|
|
32
32
|
var _Collapse = _interopRequireDefault(require("@material-ui/core/Collapse"));
|
|
33
33
|
|
|
34
|
-
var _renderUi = require("@pie-lib/
|
|
34
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
35
35
|
|
|
36
36
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
37
37
|
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","animationsDisabled","Rubric","props","index","value","state","rubricOpen","linkPrefix","toggleRubric","bind","setState","model","classes","extraCSSRules","rubricList","slice","reverse","map","desc","length","pointsLabel","listColumn","titleText","text","__html","fontWeight","root","hiddenScreenReader","rubricToggle","e","key","chevronStyle","React","Component","object","isRequired","styles","theme","color","backgroundColor","background","borderCollapse","padding","textAlign","marginBottom","marginTop","lineHeight","display","flexDirection","alignItems","listColumnItem","fontSize","margin","paddingBottom","cursor","userSelect","typography","tertiary","transition","marginLeft","alignSelf","position","width","height","overflow","clip","border","whiteSpace"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport ListItem from '@material-ui/core/ListItem';\nimport List from '@material-ui/core/List';\nimport Collapse from '@material-ui/core/Collapse';\nimport { color, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\nimport PropTypes from 'prop-types';\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string),\n animationsDisabled: PropTypes.bool,\n});\n\nclass Rubric extends React.Component {\n dudUrl = 'javascript:;';\n\n constructor(props) {\n super(props);\n this.state = {\n rubricOpen: false,\n linkPrefix: 'Show',\n };\n this.toggleRubric = this.toggleRubric.bind(this);\n }\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n animationsDisabled: PropTypes.bool,\n value: RubricType,\n };\n\n toggleRubric() {\n this.setState({ rubricOpen: !this.state.rubricOpen });\n this.setState({ linkPrefix: this.state.rubricOpen ? 'Show' : 'Hide' });\n }\n\n shouldRenderPoint = (index, value) => {\n if (!value.excludeZero) {\n return true;\n } else {\n return index !== 0;\n }\n };\n\n render() {\n const { model, value, classes } = this.props;\n let { animationsDisabled } = this.props;\n animationsDisabled = animationsDisabled || value.animationsDisabled;\n\n if (value && value.points) {\n const { extraCSSRules } = model || {};\n const { points, sampleAnswers } = value;\n\n const rubricList = (\n <List component=\"nav\">\n {points\n .slice(0)\n .reverse()\n .map((desc, index) => {\n index = points.length - index - 1;\n const pointsLabel = value.excludeZero ? index + 1 : index;\n\n return (\n <React.Fragment key={index}>\n <ListItem key={`P${index}`} className={classes.listColumn}>\n <h3 className={classes.titleText}>\n {pointsLabel === 1 ? `${pointsLabel} PT` : `${pointsLabel} PTS`}\n </h3>\n <div className={classes.text} dangerouslySetInnerHTML={{ __html: desc }} />\n </ListItem>\n\n {sampleAnswers && sampleAnswers[index] && (\n <ListItem key={`S${index}`} className={classes.listColumn}>\n <h4 className={classes.titleText} style={{ fontWeight: 'normal' }}>\n Sample Answer\n </h4>\n <div className={classes.text} dangerouslySetInnerHTML={{ __html: sampleAnswers[index] }} />\n </ListItem>\n )}\n </React.Fragment>\n );\n })}\n </List>\n );\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={classes.root}>\n {/* screen reader only heading for navigation as per PD-5057 */}\n <h2 className={classes.hiddenScreenReader}>Rubric</h2>\n {!animationsDisabled ? (\n <React.Fragment>\n <h2\n id={'rubric-toggle'}\n className={classes.rubricToggle}\n tabIndex={0}\n role=\"button\"\n aria-expanded={this.state.rubricOpen}\n onClick={this.toggleRubric}\n onKeyPress={(e) => {\n if (e.key === 'Enter' || e.key === ' ') this.toggleRubric();\n }}\n >\n {this.state.linkPrefix} Rubric\n <span className={classes.chevronStyle} aria-hidden=\"true\">\n {this.state.rubricOpen ? (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"18 15 12 9 6 15\"></polyline>\n </svg>\n ) : (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n </svg>\n )}\n </span>\n </h2>\n <Collapse in={this.state.rubricOpen} timeout=\"auto\">\n {rubricList}\n </Collapse>\n </React.Fragment>\n ) : (\n rubricList\n )}\n </UiLayout>\n );\n } else {\n return null;\n }\n }\n}\n\nconst styles = (theme) => ({\n root: {\n color: color.text(),\n backgroundColor: color.background(),\n // apply styles to tables to match the rest of the UI\n '&:not(.MathJax) table': {\n borderCollapse: 'collapse',\n },\n '&:not(.MathJax) table td, &:not(.MathJax) table th': {\n padding: '8px 12px',\n textAlign: 'left',\n },\n // reset paragraph margins and line-height inside lists to override client styles\n '& ul p, & ol p': {\n marginBottom: 0,\n marginTop: 0,\n lineHeight: 'normal',\n },\n },\n listColumn: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n padding: '12px 0px',\n },\n listColumnItem: {\n padding: 0,\n },\n text: {\n color: color.text(),\n },\n titleText: {\n color: color.text(),\n fontSize: '16px',\n fontWeight: '700',\n margin: 0,\n paddingBottom: '6px',\n },\n rubricToggle: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n userSelect: 'none',\n fontSize: theme.typography.fontSize,\n fontWeight: '500',\n color: color.tertiary(),\n margin: 0,\n },\n chevronStyle: {\n display: 'inline-flex',\n transition: 'transform 0.2s',\n marginLeft: 2,\n alignSelf: 'center',\n },\n hiddenScreenReader: {\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0,0,0,0)',\n border: 0,\n whiteSpace: 'nowrap',\n },\n});\n\nexport default withStyles(styles)(Rubric);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","animationsDisabled","Rubric","props","index","value","state","rubricOpen","linkPrefix","toggleRubric","bind","setState","model","classes","extraCSSRules","rubricList","slice","reverse","map","desc","length","pointsLabel","listColumn","titleText","text","__html","fontWeight","root","hiddenScreenReader","rubricToggle","e","key","chevronStyle","React","Component","object","isRequired","styles","theme","color","backgroundColor","background","borderCollapse","padding","textAlign","marginBottom","marginTop","lineHeight","display","flexDirection","alignItems","listColumnItem","fontSize","margin","paddingBottom","cursor","userSelect","typography","tertiary","transition","marginLeft","alignSelf","position","width","height","overflow","clip","border","whiteSpace"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport ListItem from '@material-ui/core/ListItem';\nimport List from '@material-ui/core/List';\nimport Collapse from '@material-ui/core/Collapse';\nimport { color, UiLayout } from '@pie-lib/render-ui';\nimport PropTypes from 'prop-types';\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string),\n animationsDisabled: PropTypes.bool,\n});\n\nclass Rubric extends React.Component {\n dudUrl = 'javascript:;';\n\n constructor(props) {\n super(props);\n this.state = {\n rubricOpen: false,\n linkPrefix: 'Show',\n };\n this.toggleRubric = this.toggleRubric.bind(this);\n }\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n animationsDisabled: PropTypes.bool,\n value: RubricType,\n };\n\n toggleRubric() {\n this.setState({ rubricOpen: !this.state.rubricOpen });\n this.setState({ linkPrefix: this.state.rubricOpen ? 'Show' : 'Hide' });\n }\n\n shouldRenderPoint = (index, value) => {\n if (!value.excludeZero) {\n return true;\n } else {\n return index !== 0;\n }\n };\n\n render() {\n const { model, value, classes } = this.props;\n let { animationsDisabled } = this.props;\n animationsDisabled = animationsDisabled || value.animationsDisabled;\n\n if (value && value.points) {\n const { extraCSSRules } = model || {};\n const { points, sampleAnswers } = value;\n\n const rubricList = (\n <List component=\"nav\">\n {points\n .slice(0)\n .reverse()\n .map((desc, index) => {\n index = points.length - index - 1;\n const pointsLabel = value.excludeZero ? index + 1 : index;\n\n return (\n <React.Fragment key={index}>\n <ListItem key={`P${index}`} className={classes.listColumn}>\n <h3 className={classes.titleText}>\n {pointsLabel === 1 ? `${pointsLabel} PT` : `${pointsLabel} PTS`}\n </h3>\n <div className={classes.text} dangerouslySetInnerHTML={{ __html: desc }} />\n </ListItem>\n\n {sampleAnswers && sampleAnswers[index] && (\n <ListItem key={`S${index}`} className={classes.listColumn}>\n <h4 className={classes.titleText} style={{ fontWeight: 'normal' }}>\n Sample Answer\n </h4>\n <div className={classes.text} dangerouslySetInnerHTML={{ __html: sampleAnswers[index] }} />\n </ListItem>\n )}\n </React.Fragment>\n );\n })}\n </List>\n );\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={classes.root}>\n {/* screen reader only heading for navigation as per PD-5057 */}\n <h2 className={classes.hiddenScreenReader}>Rubric</h2>\n {!animationsDisabled ? (\n <React.Fragment>\n <h2\n id={'rubric-toggle'}\n className={classes.rubricToggle}\n tabIndex={0}\n role=\"button\"\n aria-expanded={this.state.rubricOpen}\n onClick={this.toggleRubric}\n onKeyPress={(e) => {\n if (e.key === 'Enter' || e.key === ' ') this.toggleRubric();\n }}\n >\n {this.state.linkPrefix} Rubric\n <span className={classes.chevronStyle} aria-hidden=\"true\">\n {this.state.rubricOpen ? (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"18 15 12 9 6 15\"></polyline>\n </svg>\n ) : (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n </svg>\n )}\n </span>\n </h2>\n <Collapse in={this.state.rubricOpen} timeout=\"auto\">\n {rubricList}\n </Collapse>\n </React.Fragment>\n ) : (\n rubricList\n )}\n </UiLayout>\n );\n } else {\n return null;\n }\n }\n}\n\nconst styles = (theme) => ({\n root: {\n color: color.text(),\n backgroundColor: color.background(),\n // apply styles to tables to match the rest of the UI\n '&:not(.MathJax) table': {\n borderCollapse: 'collapse',\n },\n '&:not(.MathJax) table td, &:not(.MathJax) table th': {\n padding: '8px 12px',\n textAlign: 'left',\n },\n // reset paragraph margins and line-height inside lists to override client styles\n '& ul p, & ol p': {\n marginBottom: 0,\n marginTop: 0,\n lineHeight: 'normal',\n },\n },\n listColumn: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n padding: '12px 0px',\n },\n listColumnItem: {\n padding: 0,\n },\n text: {\n color: color.text(),\n },\n titleText: {\n color: color.text(),\n fontSize: '16px',\n fontWeight: '700',\n margin: 0,\n paddingBottom: '6px',\n },\n rubricToggle: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n userSelect: 'none',\n fontSize: theme.typography.fontSize,\n fontWeight: '500',\n color: color.tertiary(),\n margin: 0,\n },\n chevronStyle: {\n display: 'inline-flex',\n transition: 'transform 0.2s',\n marginLeft: 2,\n alignSelf: 'center',\n },\n hiddenScreenReader: {\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0,0,0,0)',\n border: 0,\n whiteSpace: 'nowrap',\n },\n});\n\nexport default withStyles(styles)(Rubric);\n"],"file":"main.js"}
|
package/lib/print.js
CHANGED
|
@@ -31,7 +31,7 @@ var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
|
31
31
|
|
|
32
32
|
var _main = _interopRequireDefault(require("./main"));
|
|
33
33
|
|
|
34
|
-
var _mathRendering = require("@pie-lib/
|
|
34
|
+
var _mathRendering = require("@pie-lib/math-rendering");
|
|
35
35
|
|
|
36
36
|
var _debug = _interopRequireDefault(require("debug"));
|
|
37
37
|
|
package/lib/print.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/print.js"],"names":["log","preparePrintModel","model","opts","instr","role","value","mode","animationsDisabled","RubricPrint","_options","_model","_session","_rerender","printModel","element","React","createElement","Main","ReactDOM","render","leading","trailing","o","s","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0BAAN,CAAZ;;AAEA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAQC,IAAR,EAAiB;AACzC,MAAMC,KAAK,GAAGD,IAAI,CAACE,IAAL,KAAc,YAA5B;;AAEA,MAAI,CAACD,KAAL,EAAY;AACV,WAAO,EAAP;AACD;;AAEDF,EAAAA,KAAK,CAACI,KAAN,qBAAmBJ,KAAnB;AACAA,EAAAA,KAAK,CAACK,IAAN,GAAa,UAAb;AACAL,EAAAA,KAAK,CAACM,kBAAN,GAA2B,IAA3B;AAEA,SAAON,KAAP;AACD,CAZD;;IAcqBO,W;;;;;AACnB,yBAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,QAAL,GAAgB,IAAhB;AACA,UAAKC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,EAAhB;AACA,UAAKC,SAAL,GAAiB,0BACf,YAAM;AACJ,UAAI,MAAKF,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAME,UAAU,GAAGb,iBAAiB,CAAC,MAAKU,MAAN,EAAc,MAAKD,QAAnB,CAApC;;AAEA,YAAMK,OAAO,GACX,MAAKL,QAAL,iBACAM,kBAAMC,aAAN,CAAoBC,gBAApB,oBACKJ,UADL,EAFF;;AAMAK,6BAASC,MAAT,CAAgBL,OAAhB,kDAA+B,YAAM;AACnCf,UAAAA,GAAG,CAAC,+BAAD,CAAH;AACA;AACD,SAHD;AAID,OAbD,MAaO;AACLA,QAAAA,GAAG,CAAC,MAAD,CAAH;AACD;AACF,KAlBc,EAmBf,EAnBe,EAoBf;AAAEqB,MAAAA,OAAO,EAAE,KAAX;AAAkBC,MAAAA,QAAQ,EAAE;AAA5B,KApBe,CAAjB;AALY;AA2Bb;;;;SACD,aAAYC,CAAZ,EAAe;AACb,WAAKb,QAAL,GAAgBa,CAAhB;AACD;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKb,MAAL,GAAca,CAAd;;AACA,WAAKX,SAAL;AACD;;;WAED,6BAAoB,CAAE;;;kDAtCiBY,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/
|
|
1
|
+
{"version":3,"sources":["../src/print.js"],"names":["log","preparePrintModel","model","opts","instr","role","value","mode","animationsDisabled","RubricPrint","_options","_model","_session","_rerender","printModel","element","React","createElement","Main","ReactDOM","render","leading","trailing","o","s","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0BAAN,CAAZ;;AAEA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAQC,IAAR,EAAiB;AACzC,MAAMC,KAAK,GAAGD,IAAI,CAACE,IAAL,KAAc,YAA5B;;AAEA,MAAI,CAACD,KAAL,EAAY;AACV,WAAO,EAAP;AACD;;AAEDF,EAAAA,KAAK,CAACI,KAAN,qBAAmBJ,KAAnB;AACAA,EAAAA,KAAK,CAACK,IAAN,GAAa,UAAb;AACAL,EAAAA,KAAK,CAACM,kBAAN,GAA2B,IAA3B;AAEA,SAAON,KAAP;AACD,CAZD;;IAcqBO,W;;;;;AACnB,yBAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,QAAL,GAAgB,IAAhB;AACA,UAAKC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,EAAhB;AACA,UAAKC,SAAL,GAAiB,0BACf,YAAM;AACJ,UAAI,MAAKF,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAME,UAAU,GAAGb,iBAAiB,CAAC,MAAKU,MAAN,EAAc,MAAKD,QAAnB,CAApC;;AAEA,YAAMK,OAAO,GACX,MAAKL,QAAL,iBACAM,kBAAMC,aAAN,CAAoBC,gBAApB,oBACKJ,UADL,EAFF;;AAMAK,6BAASC,MAAT,CAAgBL,OAAhB,kDAA+B,YAAM;AACnCf,UAAAA,GAAG,CAAC,+BAAD,CAAH;AACA;AACD,SAHD;AAID,OAbD,MAaO;AACLA,QAAAA,GAAG,CAAC,MAAD,CAAH;AACD;AACF,KAlBc,EAmBf,EAnBe,EAoBf;AAAEqB,MAAAA,OAAO,EAAE,KAAX;AAAkBC,MAAAA,QAAQ,EAAE;AAA5B,KApBe,CAAjB;AALY;AA2Bb;;;;SACD,aAAYC,CAAZ,EAAe;AACb,WAAKb,QAAL,GAAgBa,CAAhB;AACD;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKb,MAAL,GAAca,CAAd;;AACA,WAAKX,SAAL;AACD;;;WAED,6BAAoB,CAAE;;;kDAtCiBY,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\n\nconst log = debug('pie-element:rubric:print');\n\nconst preparePrintModel = (model, opts) => {\n const instr = opts.role === 'instructor';\n\n if (!instr) {\n return {};\n }\n\n model.value = { ...model };\n model.mode = 'evaluate';\n model.animationsDisabled = true;\n\n return model;\n};\n\nexport default class RubricPrint extends HTMLElement {\n constructor() {\n super();\n this._options = null;\n this._model = null;\n this._session = [];\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n const printModel = preparePrintModel(this._model, this._options);\n\n const element =\n this._options &&\n React.createElement(Main, {\n ...printModel,\n });\n\n ReactDOM.render(element, this, () => {\n log('render complete - render math');\n renderMath(this);\n });\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n set options(o) {\n this._options = o;\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n }\n\n connectedCallback() {}\n}\n"],"file":"print.js"}
|