@pie-element/graphing 4.4.4-next.5 → 4.4.4-next.54
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/configure.js.map +1 -1
- package/configure/lib/correct-response.js +0 -1
- package/configure/lib/correct-response.js.map +1 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/graphing-config.js +0 -1
- package/configure/lib/graphing-config.js.map +1 -1
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/utils.js +26 -26
- package/configure/lib/utils.js.map +1 -1
- package/configure/package.json +4 -4
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +3 -3
- package/docs/config-schema.json.md +1 -1
- package/docs/demo/config.js +2 -2
- package/docs/demo/generate.js +24 -20
- package/docs/pie-schema.json.md +1 -1
- package/lib/index.js.map +1 -1
- package/lib/main.js.map +1 -1
- package/lib/utils.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/configure.jsx"],"names":["Panel","settings","toggle","radio","checkboxes","log","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingBottom","prompt","paddingTop","Configure","rationale","props","onModelChanged","model","teacherInstructions","configuration","availableTools","arrows","left","right","up","down","toolbarTools","classes","onConfigurationChanged","imageSupport","uploadSoundSupport","authoring","coordinatesOnHover","gridConfigurations","graphDimensions","labels","padding","scoringType","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","withRubric","labelsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","titleEnabled","rubricEnabled","defaultImageMaxWidth","defaultImageMaxHeight","labelsPlaceholders","top","bottom","label","Properties","studentInstructionsEnabled","onTeacherInstructionsChange","language","onPromptChange","onRationaleChange","placeholder","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@material-ui/core/Typography';\nimport EditableHtml from '@pie-lib/editable-html';\nimport GraphingConfig from './graphing-config';\nimport CorrectResponse from './correct-response';\nimport intersection from 'lodash/intersection';\n\nconst { Panel, toggle, radio, checkboxes } = settings;\nconst log = debug('@pie-element:graphing:configure');\n\nconst styles = theme => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n },\n content: {\n marginTop: theme.spacing.unit * 2\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n }\n});\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired\n };\n\n static defaultProps = { classes: {} };\n\n componentDidMount() {\n const { configuration, onModelChanged, model } = this.props;\n const { availableTools } = configuration || {};\n let { arrows } = model || {};\n\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in the controller: packages/graphing/controller/src/index.js - model\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false\n };\n }\n }\n\n const toolbarTools = intersection(availableTools || [], model.toolbarTools || []);\n\n onModelChanged && onModelChanged({ ...model, arrows, toolbarTools });\n };\n\n onRationaleChange = rationale => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, rationale });\n };\n\n onPromptChange = prompt => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, prompt });\n };\n\n onTeacherInstructionsChange = teacherInstructions => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, teacherInstructions });\n };\n\n render() {\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n onModelChanged,\n imageSupport,\n uploadSoundSupport\n } = this.props;\n const {\n arrows = {},\n authoring = {},\n availableTools = [],\n coordinatesOnHover = {},\n gridConfigurations = [],\n graphDimensions = {},\n labels = {},\n padding = {},\n prompt = {},\n title = {},\n rationale = {},\n scoringType = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n } = configuration || {};\n const {\n labelsEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n titleEnabled,\n rubricEnabled\n } = model || {};\n\n log('[render] model', model);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n const labelsPlaceholders = {\n top: labels.top,\n right: labels.right,\n bottom: labels.bottom,\n left: labels.left,\n };\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n 'Item Type': {\n arrows: arrows.settings && checkboxes(arrows.label, {\n left: arrows.left,\n right: arrows.right,\n up: arrows.up,\n down: arrows.down\n }),\n titleEnabled: title.settings && toggle(title.label),\n padding: padding.settings && toggle(padding.label),\n labelsEnabled: labels.settings && toggle(labels.label),\n coordinatesOnHover: coordinatesOnHover.settings && toggle(coordinatesOnHover.label),\n },\n Properties: {\n 'authoring.enabled':\n authoring.settings && toggle(authoring.label, true),\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['dichotomous', 'partial scoring']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label)\n }\n }}\n />\n }\n >\n <div className={classes.content}>\n <Typography component=\"div\" type=\"body1\">\n <span>\n This interaction asks a student to draw a line that meets specific\n criteria. The student will draw the line by clicking on two points\n on the graph.\n </span>\n </Typography>\n\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n disableUnderline\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label || 'Rationale'}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\n imageSupport={imageSupport}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <GraphingConfig\n authoring={authoring}\n availableTools={availableTools}\n gridConfigurations={gridConfigurations}\n graphDimensions={graphDimensions}\n labelsPlaceholders={labelsPlaceholders}\n model={model}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n titlePlaceholder={title.placeholder}\n onChange={this.props.onModelChanged}\n />\n\n <CorrectResponse\n availableTools={availableTools}\n model={model}\n onChange={this.props.onModelChanged}\n />\n </div>\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
|
|
1
|
+
{"version":3,"sources":["../src/configure.jsx"],"names":["Panel","settings","toggle","radio","checkboxes","log","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingBottom","prompt","paddingTop","Configure","rationale","props","onModelChanged","model","teacherInstructions","configuration","availableTools","arrows","left","right","up","down","toolbarTools","classes","onConfigurationChanged","imageSupport","uploadSoundSupport","authoring","coordinatesOnHover","gridConfigurations","graphDimensions","labels","padding","scoringType","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","withRubric","labelsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","titleEnabled","rubricEnabled","defaultImageMaxWidth","defaultImageMaxHeight","labelsPlaceholders","top","bottom","label","Properties","studentInstructionsEnabled","onTeacherInstructionsChange","language","onPromptChange","onRationaleChange","placeholder","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@material-ui/core/Typography';\nimport EditableHtml from '@pie-lib/editable-html';\nimport GraphingConfig from './graphing-config';\nimport CorrectResponse from './correct-response';\nimport intersection from 'lodash/intersection';\n\nconst { Panel, toggle, radio, checkboxes } = settings;\nconst log = debug('@pie-element:graphing:configure');\n\nconst styles = (theme) => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n content: {\n marginTop: theme.spacing.unit * 2,\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n});\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n };\n\n static defaultProps = { classes: {} };\n\n componentDidMount() {\n const { configuration, onModelChanged, model } = this.props;\n const { availableTools } = configuration || {};\n let { arrows } = model || {};\n\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in the controller: packages/graphing/controller/src/index.js - model\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true,\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false,\n };\n }\n }\n\n const toolbarTools = intersection(availableTools || [], model.toolbarTools || []);\n\n onModelChanged && onModelChanged({ ...model, arrows, toolbarTools });\n }\n\n onRationaleChange = (rationale) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, rationale });\n };\n\n onPromptChange = (prompt) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, prompt });\n };\n\n onTeacherInstructionsChange = (teacherInstructions) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, teacherInstructions });\n };\n\n render() {\n const { classes, model, configuration, onConfigurationChanged, onModelChanged, imageSupport, uploadSoundSupport } =\n this.props;\n const {\n arrows = {},\n authoring = {},\n availableTools = [],\n coordinatesOnHover = {},\n gridConfigurations = [],\n graphDimensions = {},\n labels = {},\n padding = {},\n prompt = {},\n title = {},\n rationale = {},\n scoringType = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n } = configuration || {};\n const {\n labelsEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n titleEnabled,\n rubricEnabled,\n } = model || {};\n\n log('[render] model', model);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n const labelsPlaceholders = {\n top: labels.top,\n right: labels.right,\n bottom: labels.bottom,\n left: labels.left,\n };\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n 'Item Type': {\n arrows:\n arrows.settings &&\n checkboxes(arrows.label, {\n left: arrows.left,\n right: arrows.right,\n up: arrows.up,\n down: arrows.down,\n }),\n titleEnabled: title.settings && toggle(title.label),\n padding: padding.settings && toggle(padding.label),\n labelsEnabled: labels.settings && toggle(labels.label),\n coordinatesOnHover: coordinatesOnHover.settings && toggle(coordinatesOnHover.label),\n },\n Properties: {\n 'authoring.enabled': authoring.settings && toggle(authoring.label, true),\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['dichotomous', 'partial scoring']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n },\n }}\n />\n }\n >\n <div className={classes.content}>\n <Typography component=\"div\" type=\"body1\">\n <span>\n This interaction asks a student to draw a line that meets specific criteria. The student will draw the\n line by clicking on two points on the graph.\n </span>\n </Typography>\n\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n disableUnderline\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label || 'Rationale'} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\n imageSupport={imageSupport}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <GraphingConfig\n authoring={authoring}\n availableTools={availableTools}\n gridConfigurations={gridConfigurations}\n graphDimensions={graphDimensions}\n labelsPlaceholders={labelsPlaceholders}\n model={model}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n titlePlaceholder={title.placeholder}\n onChange={this.props.onModelChanged}\n />\n\n <CorrectResponse availableTools={availableTools} model={model} onChange={this.props.onModelChanged} />\n </div>\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
|
|
@@ -503,7 +503,6 @@ exports.CorrectResponse = CorrectResponse;
|
|
|
503
503
|
onChange: _propTypes["default"].func.isRequired,
|
|
504
504
|
toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].String)
|
|
505
505
|
});
|
|
506
|
-
;
|
|
507
506
|
|
|
508
507
|
var _default = (0, _styles.withStyles)(styles)(CorrectResponse);
|
|
509
508
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/correct-response.jsx"],"names":["styles","theme","column","flex","graphingTools","color","availableTools","marginTop","spacing","unit","display","availableTool","cursor","margin","padding","border","textTransform","selectedTool","background","container","borderRadius","button","width","responseTitle","alignItems","iconButton","marginLeft","name","subtitleText","marginBottom","toolsHeader","justifyContent","defaultTool","defaultToolSelect","menuItem","noDefaultTool","Tools","classes","toolbarTools","toggleToolBarTool","onDefaultToolChange","allTools","isLabelAvailable","includes","toolbarToolsNoLabel","filter","tool","allToolsNoLabel","length","map","index","selected","find","t","toUpperCase","propTypes","PropTypes","object","isRequired","arrayOf","string","func","CorrectResponse","dialog","open","callback","setState","key","marks","props","model","onChange","answers","Object","entries","reduce","answer","mark","type","updatedToolbarTools","newDefaultTool","findIndex","updatedAnswers","filterMarks","splice","title","text","onConfirm","handleAlertDialog","updateModel","onClose","push","event","value","target","answersKeys","keys","deleteAnswer","state","arrows","backgroundMarks","coordinatesOnHover","domain","graph","labels","labelsEnabled","range","titleEnabled","deleteAlternateResponse","includeArrows","newMarks","changeMarks","height","addAlternateResponse","React","Component","String"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer as Graph } from '@pie-lib/graphing';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Delete from '@material-ui/icons/Delete';\nimport { set, isEqual } from 'lodash';\nimport { MenuItem, Select, Typography } from '@material-ui/core';\n\nconst styles = theme => ({\n column: {\n flex: 1\n },\n graphingTools: {\n color: '#ababab'\n },\n availableTools: {\n marginTop: theme.spacing.unit,\n display: 'flex'\n },\n availableTool: {\n cursor: 'pointer',\n margin: theme.spacing.unit,\n padding: theme.spacing.unit,\n border: '2px solid white',\n textTransform: 'capitalize',\n '&:hover': {\n color: '#4d4d4d'\n }\n },\n selectedTool: {\n background: '#d8d8d8',\n border: '2px solid #ababab'\n },\n container: {\n border: '2px solid #ababab',\n borderRadius: '4px',\n padding: `0 ${theme.spacing.unit * 4}px ${theme.spacing.unit * 2}px`,\n background: '#fafafa'\n },\n button: {\n margin: `${theme.spacing.unit * 3}px 0`,\n cursor: 'pointer',\n background: '#eee',\n padding: theme.spacing.unit * 1.5,\n width: 'fit-content',\n borderRadius: '4px',\n '&:hover': {\n background: '#d8d8d8'\n }\n },\n responseTitle: {\n display: 'flex',\n alignItems: 'center',\n marginTop: '20px'\n },\n iconButton: {\n marginLeft: '6px',\n color: '#6d6d6d',\n '&:hover': {\n cursor: 'pointer',\n color: '#000000'\n }\n },\n name: {\n margin: '5px 0'\n },\n subtitleText: {\n marginTop: theme.spacing.unit * 1.5,\n marginBottom: theme.spacing.unit\n },\n toolsHeader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n defaultTool: {\n display: 'flex',\n alignItems: 'center',\n width: '300px'\n },\n defaultToolSelect: {\n marginLeft: theme.spacing.unit,\n textTransform: 'uppercase',\n color: '#4d4d4d'\n },\n menuItem: {\n textTransform: 'uppercase',\n },\n noDefaultTool: {\n padding: theme.spacing.unit / 2\n }\n});\n\nexport const Tools = ({ classes, availableTools, defaultTool, toolbarTools, toggleToolBarTool, onDefaultToolChange }) => {\n let allTools = availableTools || [];\n const isLabelAvailable = allTools.includes('label');\n const toolbarToolsNoLabel = (toolbarTools || []).filter(tool => tool !== 'label');\n\n if (isLabelAvailable) {\n // label has to be placed at the end of the list\n const allToolsNoLabel = allTools.filter(tool => tool !== 'label');\n allTools = [ ...allToolsNoLabel, 'label'];\n }\n\n return (\n <div className={classes.graphingTools}>\n <div className={classes.toolsHeader}>\n <span>GRAPHING TOOLS</span>\n {toolbarToolsNoLabel.length > 0 && (\n <div className={classes.defaultTool}>\n <span>Default graphing tool:</span>\n <Select\n className={classes.defaultToolSelect}\n onChange={onDefaultToolChange}\n value={defaultTool}\n disableUnderline\n >\n {toolbarToolsNoLabel.map((tool, index) =>\n <MenuItem key={index} className={classes.menuItem} value={tool}>{tool}</MenuItem>)}\n </Select>\n </div>\n )}\n </div>\n <div className={classes.availableTools}>\n {allTools.map(tool => {\n const selected = toolbarTools.find(t => t === tool);\n\n return (\n <div\n key={tool}\n className={classnames(\n classes.availableTool,\n selected && classes.selectedTool\n )}\n onClick={() => toggleToolBarTool(tool)}\n >\n {tool.toUpperCase()}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nTools.propTypes = {\n classes: PropTypes.object.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n toggleToolBarTool: PropTypes.func\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.String)\n };\n\n state = {\n dialog: {\n open: false\n }\n };\n\n handleAlertDialog = (open, callback) =>\n this.setState({\n dialog: { open }\n }, callback);\n\n changeMarks = (key, marks) => {\n const { model, onChange } = this.props;\n\n set(model, `answers.${key}.marks`, marks);\n onChange(model);\n };\n\n filterMarks = (tool) => {\n const { model: { answers }} = this.props;\n\n return Object.entries(answers || {}).reduce((object, [key, answer]) => {\n object[key] = {\n ...answer,\n marks: (answer.marks || []).filter(mark => mark.type !== tool)\n };\n\n return object;\n }, {});\n };\n\n changeToolbarTools = toolbarTools => {\n const { model, onChange } = this.props;\n model.toolbarTools = toolbarTools;\n\n onChange(model);\n };\n\n updateModel = props => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n ...props\n });\n };\n\n toggleToolBarTool = tool => {\n const { model: { defaultTool, toolbarTools, answers = {}}} = this.props;\n const updatedToolbarTools = [ ...toolbarTools ];\n let newDefaultTool = defaultTool;\n\n const index = toolbarTools.findIndex(t => tool === t);\n\n if (index >= 0) {\n const updatedAnswers = this.filterMarks(tool);\n updatedToolbarTools.splice(index, 1);\n\n if (tool === defaultTool) {\n const toolbarToolsNoLabel = (updatedToolbarTools || []).filter(tool => tool !== 'label');\n newDefaultTool = toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';\n }\n\n if (!isEqual(answers, updatedAnswers)) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `Correct answer includes one or more ${tool} objects and all of them will be deleted.`,\n onConfirm: () => this.handleAlertDialog(\n false, this.updateModel({\n toolbarTools: updatedToolbarTools,\n answers: updatedAnswers,\n defaultTool: newDefaultTool\n })),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n\n return;\n }\n } else {\n updatedToolbarTools.push(tool);\n\n if (defaultTool === '' && tool !== 'label') {\n newDefaultTool = tool;\n }\n }\n\n this.updateModel({\n toolbarTools: updatedToolbarTools,\n defaultTool: newDefaultTool\n });\n };\n\n onDefaultToolChange = event => {\n const { value } = event.target;\n\n this.updateModel( { defaultTool: value });\n }\n\n addAlternateResponse = () => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const answersKeys = Object.keys(answers || {});\n\n set(\n model,\n `answers.${`alternate${answersKeys.length}`}`,\n { name: `Alternate ${answersKeys.length}`, marks: [] }\n );\n onChange(model);\n };\n\n deleteAlternateResponse = (key, answer) => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const { marks = [], name } = answer || {};\n\n const deleteAnswer = () => {\n delete answers[key];\n onChange(model);\n };\n\n if (marks.length) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `${name} includes one or more shapes and the entire response will be deleted.`,\n onConfirm: () => this.handleAlertDialog(false, deleteAnswer),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n\n return;\n }\n\n deleteAnswer();\n };\n\n render() {\n const { availableTools, classes, model } = this.props;\n const { dialog } = this.state;\n const {\n answers = {},\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n defaultTool,\n domain,\n graph = {},\n labels,\n labelsEnabled,\n range,\n title,\n titleEnabled,\n toolbarTools\n } = model || {};\n\n return (\n <div>\n <Typography component=\"div\" variant=\"subheading\">\n <span>Define Tool Set and Correct Response</span>\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.subtitleText}>\n <span>Use this interface to choose which graphing tools students will be able to use, and to define the correct answer</span>\n </Typography>\n\n <Tools\n classes={classes}\n availableTools={availableTools}\n defaultTool={defaultTool}\n onDefaultToolChange={this.onDefaultToolChange}\n toggleToolBarTool={this.toggleToolBarTool}\n toolbarTools={toolbarTools}\n />\n\n {Object.entries(answers || {}).map(([key, answer]) => {\n const { marks = [], name } = answer || {};\n\n return (\n <div key={`correct-response-graph-${name}`}>\n <div className={classes.responseTitle}>\n <p className={classes.name}>{name}</p>\n {key !== 'correctAnswer' &&\n <Delete\n className={classes.iconButton}\n onClick={() => this.deleteAlternateResponse(key, answer)}\n />}\n </div>\n\n <Graph\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n draggableTools={key === 'correctAnswer'}\n labels={labels}\n marks={marks}\n onChangeMarks={newMarks => this.changeMarks(key, newMarks)}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={{width: graph.width, height: graph.height}}\n title={title}\n toolbarTools={toolbarTools}\n onChangeTools={toolbarTools => this.updateModel({ toolbarTools })}\n />\n </div>\n )\n })}\n\n <div className={classes.button} onClick={this.addAlternateResponse}>\n ADD ALTERNATE\n </div>\n\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n );\n }\n};\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
|
|
1
|
+
{"version":3,"sources":["../src/correct-response.jsx"],"names":["styles","theme","column","flex","graphingTools","color","availableTools","marginTop","spacing","unit","display","availableTool","cursor","margin","padding","border","textTransform","selectedTool","background","container","borderRadius","button","width","responseTitle","alignItems","iconButton","marginLeft","name","subtitleText","marginBottom","toolsHeader","justifyContent","defaultTool","defaultToolSelect","menuItem","noDefaultTool","Tools","classes","toolbarTools","toggleToolBarTool","onDefaultToolChange","allTools","isLabelAvailable","includes","toolbarToolsNoLabel","filter","tool","allToolsNoLabel","length","map","index","selected","find","t","toUpperCase","propTypes","PropTypes","object","isRequired","arrayOf","string","func","CorrectResponse","dialog","open","callback","setState","key","marks","props","model","onChange","answers","Object","entries","reduce","answer","mark","type","updatedToolbarTools","newDefaultTool","findIndex","updatedAnswers","filterMarks","splice","title","text","onConfirm","handleAlertDialog","updateModel","onClose","push","event","value","target","answersKeys","keys","deleteAnswer","state","arrows","backgroundMarks","coordinatesOnHover","domain","graph","labels","labelsEnabled","range","titleEnabled","deleteAlternateResponse","includeArrows","newMarks","changeMarks","height","addAlternateResponse","React","Component","String"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer as Graph } from '@pie-lib/graphing';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Delete from '@material-ui/icons/Delete';\nimport { set, isEqual } from 'lodash';\nimport { MenuItem, Select, Typography } from '@material-ui/core';\n\nconst styles = (theme) => ({\n column: {\n flex: 1,\n },\n graphingTools: {\n color: '#ababab',\n },\n availableTools: {\n marginTop: theme.spacing.unit,\n display: 'flex',\n },\n availableTool: {\n cursor: 'pointer',\n margin: theme.spacing.unit,\n padding: theme.spacing.unit,\n border: '2px solid white',\n textTransform: 'capitalize',\n '&:hover': {\n color: '#4d4d4d',\n },\n },\n selectedTool: {\n background: '#d8d8d8',\n border: '2px solid #ababab',\n },\n container: {\n border: '2px solid #ababab',\n borderRadius: '4px',\n padding: `0 ${theme.spacing.unit * 4}px ${theme.spacing.unit * 2}px`,\n background: '#fafafa',\n },\n button: {\n margin: `${theme.spacing.unit * 3}px 0`,\n cursor: 'pointer',\n background: '#eee',\n padding: theme.spacing.unit * 1.5,\n width: 'fit-content',\n borderRadius: '4px',\n '&:hover': {\n background: '#d8d8d8',\n },\n },\n responseTitle: {\n display: 'flex',\n alignItems: 'center',\n marginTop: '20px',\n },\n iconButton: {\n marginLeft: '6px',\n color: '#6d6d6d',\n '&:hover': {\n cursor: 'pointer',\n color: '#000000',\n },\n },\n name: {\n margin: '5px 0',\n },\n subtitleText: {\n marginTop: theme.spacing.unit * 1.5,\n marginBottom: theme.spacing.unit,\n },\n toolsHeader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n defaultTool: {\n display: 'flex',\n alignItems: 'center',\n width: '300px',\n },\n defaultToolSelect: {\n marginLeft: theme.spacing.unit,\n textTransform: 'uppercase',\n color: '#4d4d4d',\n },\n menuItem: {\n textTransform: 'uppercase',\n },\n noDefaultTool: {\n padding: theme.spacing.unit / 2,\n },\n});\n\nexport const Tools = ({\n classes,\n availableTools,\n defaultTool,\n toolbarTools,\n toggleToolBarTool,\n onDefaultToolChange,\n}) => {\n let allTools = availableTools || [];\n const isLabelAvailable = allTools.includes('label');\n const toolbarToolsNoLabel = (toolbarTools || []).filter((tool) => tool !== 'label');\n\n if (isLabelAvailable) {\n // label has to be placed at the end of the list\n const allToolsNoLabel = allTools.filter((tool) => tool !== 'label');\n allTools = [...allToolsNoLabel, 'label'];\n }\n\n return (\n <div className={classes.graphingTools}>\n <div className={classes.toolsHeader}>\n <span>GRAPHING TOOLS</span>\n {toolbarToolsNoLabel.length > 0 && (\n <div className={classes.defaultTool}>\n <span>Default graphing tool:</span>\n <Select\n className={classes.defaultToolSelect}\n onChange={onDefaultToolChange}\n value={defaultTool}\n disableUnderline\n >\n {toolbarToolsNoLabel.map((tool, index) => (\n <MenuItem key={index} className={classes.menuItem} value={tool}>\n {tool}\n </MenuItem>\n ))}\n </Select>\n </div>\n )}\n </div>\n <div className={classes.availableTools}>\n {allTools.map((tool) => {\n const selected = toolbarTools.find((t) => t === tool);\n\n return (\n <div\n key={tool}\n className={classnames(classes.availableTool, selected && classes.selectedTool)}\n onClick={() => toggleToolBarTool(tool)}\n >\n {tool.toUpperCase()}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nTools.propTypes = {\n classes: PropTypes.object.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n toggleToolBarTool: PropTypes.func,\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.String),\n };\n\n state = {\n dialog: {\n open: false,\n },\n };\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n changeMarks = (key, marks) => {\n const { model, onChange } = this.props;\n\n set(model, `answers.${key}.marks`, marks);\n onChange(model);\n };\n\n filterMarks = (tool) => {\n const {\n model: { answers },\n } = this.props;\n\n return Object.entries(answers || {}).reduce((object, [key, answer]) => {\n object[key] = {\n ...answer,\n marks: (answer.marks || []).filter((mark) => mark.type !== tool),\n };\n\n return object;\n }, {});\n };\n\n changeToolbarTools = (toolbarTools) => {\n const { model, onChange } = this.props;\n model.toolbarTools = toolbarTools;\n\n onChange(model);\n };\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n ...props,\n });\n };\n\n toggleToolBarTool = (tool) => {\n const {\n model: { defaultTool, toolbarTools, answers = {} },\n } = this.props;\n const updatedToolbarTools = [...toolbarTools];\n let newDefaultTool = defaultTool;\n\n const index = toolbarTools.findIndex((t) => tool === t);\n\n if (index >= 0) {\n const updatedAnswers = this.filterMarks(tool);\n updatedToolbarTools.splice(index, 1);\n\n if (tool === defaultTool) {\n const toolbarToolsNoLabel = (updatedToolbarTools || []).filter((tool) => tool !== 'label');\n newDefaultTool = (toolbarToolsNoLabel.length && toolbarToolsNoLabel[0]) || '';\n }\n\n if (!isEqual(answers, updatedAnswers)) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `Correct answer includes one or more ${tool} objects and all of them will be deleted.`,\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n this.updateModel({\n toolbarTools: updatedToolbarTools,\n answers: updatedAnswers,\n defaultTool: newDefaultTool,\n }),\n ),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n\n return;\n }\n } else {\n updatedToolbarTools.push(tool);\n\n if (defaultTool === '' && tool !== 'label') {\n newDefaultTool = tool;\n }\n }\n\n this.updateModel({\n toolbarTools: updatedToolbarTools,\n defaultTool: newDefaultTool,\n });\n };\n\n onDefaultToolChange = (event) => {\n const { value } = event.target;\n\n this.updateModel({ defaultTool: value });\n };\n\n addAlternateResponse = () => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const answersKeys = Object.keys(answers || {});\n\n set(model, `answers.${`alternate${answersKeys.length}`}`, { name: `Alternate ${answersKeys.length}`, marks: [] });\n onChange(model);\n };\n\n deleteAlternateResponse = (key, answer) => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const { marks = [], name } = answer || {};\n\n const deleteAnswer = () => {\n delete answers[key];\n onChange(model);\n };\n\n if (marks.length) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `${name} includes one or more shapes and the entire response will be deleted.`,\n onConfirm: () => this.handleAlertDialog(false, deleteAnswer),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n\n return;\n }\n\n deleteAnswer();\n };\n\n render() {\n const { availableTools, classes, model } = this.props;\n const { dialog } = this.state;\n const {\n answers = {},\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n defaultTool,\n domain,\n graph = {},\n labels,\n labelsEnabled,\n range,\n title,\n titleEnabled,\n toolbarTools,\n } = model || {};\n\n return (\n <div>\n <Typography component=\"div\" variant=\"subheading\">\n <span>Define Tool Set and Correct Response</span>\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.subtitleText}>\n <span>\n Use this interface to choose which graphing tools students will be able to use, and to define the correct\n answer\n </span>\n </Typography>\n\n <Tools\n classes={classes}\n availableTools={availableTools}\n defaultTool={defaultTool}\n onDefaultToolChange={this.onDefaultToolChange}\n toggleToolBarTool={this.toggleToolBarTool}\n toolbarTools={toolbarTools}\n />\n\n {Object.entries(answers || {}).map(([key, answer]) => {\n const { marks = [], name } = answer || {};\n\n return (\n <div key={`correct-response-graph-${name}`}>\n <div className={classes.responseTitle}>\n <p className={classes.name}>{name}</p>\n {key !== 'correctAnswer' && (\n <Delete className={classes.iconButton} onClick={() => this.deleteAlternateResponse(key, answer)} />\n )}\n </div>\n\n <Graph\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n draggableTools={key === 'correctAnswer'}\n labels={labels}\n marks={marks}\n onChangeMarks={(newMarks) => this.changeMarks(key, newMarks)}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={toolbarTools}\n onChangeTools={(toolbarTools) => this.updateModel({ toolbarTools })}\n />\n </div>\n );\n })}\n\n <div className={classes.button} onClick={this.addAlternateResponse}>\n ADD ALTERNATE\n </div>\n\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["tools","allTools","model","answers","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","labelsEnabled","padding","prompt","range","rationale","standardGrid","title","titleEnabled","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","authoring","settings","label","enabled","includeAxesEnabled","standardGridEnabled","gridConfigurations","top","bottom","graphDimensions","scoringType","studentInstructions","teacherInstructions","placeholder","availableTools","spellCheck","maxImageWidth","maxImageHeight","withRubric"],"mappings":"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","sourcesContent":["import { tools } from '@pie-lib/graphing';\n\nconst { allTools = [] } = tools;\n\nexport default {\n model: {\n answers: {},\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true\n },\n backgroundMarks: [],\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x'\n },\n graph: {\n width: 500,\n height: 500\n },\n includeAxes: true,\n labels: {},\n labelsEnabled: true,\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y'\n },\n rationale: '',\n standardGrid: false,\n title: '',\n titleEnabled: true,\n toolbarTools: allTools,\n coordinatesOnHover: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n authoring: {\n settings: false,\n label: 'Customize Grid Setup',\n enabled: true,\n includeAxesEnabled: true,\n standardGridEnabled: true,\n min: {\n label: 'Min Value',\n enabled: true\n },\n max: {\n label: 'Max Value',\n enabled: true\n },\n axisLabel: {\n label: 'Label',\n enabled: true\n },\n step: {\n label: 'Grid Interval',\n enabled: true\n },\n labelStep: {\n label: 'Label Interval',\n enabled: true\n }\n },\n arrows: {\n settings: true,\n label: 'Include Arrows',\n left: {\n label: 'left'\n },\n right: {\n label: 'right'\n },\n up: {\n label: 'up'\n },\n down: {\n label: 'down'\n }\n },\n gridConfigurations: [{\n label: '4-quadrant coordinate grid, -10 to 10',\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true\n },\n domain: {\n min: -10,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>'\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: ''\n },\n padding: true,\n range: {\n min: -10,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>'\n },\n standardGrid: true,\n title: ''\n }, {\n label: '0 to 10 on both axes',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false\n },\n domain: {\n min: 0,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>'\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: ''\n },\n padding: true,\n range: {\n min: 0,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>'\n },\n standardGrid: true,\n title: ''\n }, {\n label: '0 to 20 on both axes',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false\n },\n domain: {\n min: 0,\n max: 20,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>'\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: ''\n },\n padding: true,\n range: {\n min: 0,\n max: 20,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>'\n },\n standardGrid: true,\n title: ''\n }, {\n label: 'Sample Data Graph',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false\n },\n domain: {\n min: 0,\n max: 30,\n step: 1,\n padding: 0,\n labelStep: 2,\n axisLabel: '<i>t</i>'\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: 'Time (seconds)',\n left: 'Distance (meters)'\n },\n padding: true,\n range: {\n min: 0,\n max: 80,\n step: 5,\n padding: 0,\n labelStep: 10,\n axisLabel: '<i>d</i>'\n },\n standardGrid: false,\n title: 'Distance as a function of time'\n }, {\n label: 'No Visible Axes',\n arrows: {\n left: false,\n right: false,\n up: false,\n down: false\n },\n domain: {\n min: 1,\n max: 21,\n step: 1,\n padding: 0,\n labelStep: 0,\n axisLabel: ''\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: false,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: ''\n },\n padding: true,\n range: {\n min: 1,\n max: 21,\n step: 1,\n padding: 0,\n labelStep: 0,\n axisLabel: ''\n },\n standardGrid: false,\n title: ''\n }],\n graphDimensions: {\n settings: false,\n label: 'Graph Dimensions',\n enabled: true,\n min: 150,\n max: 800,\n step: 20\n },\n padding: {\n settings: false,\n label: 'Padding'\n },\n labels: {\n settings: true,\n label: 'Graph Labels',\n enabled: true,\n top: 'Click here to add a top label',\n right: 'Click here to add a right label',\n bottom: 'Click here to add a bottom label',\n left: 'Click here to add a left label'\n },\n prompt: {\n settings: true,\n label: 'Item Stem'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type'\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n title: {\n settings: true,\n label: 'Graph Title',\n enabled: true,\n placeholder: 'Click here to add a title for this graph'\n },\n availableTools: allTools,\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n coordinatesOnHover: {\n settings: true,\n label: 'Coordinates on Hover'\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric'\n }\n }\n};\n"],"file":"defaults.js"}
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["tools","allTools","model","answers","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","labelsEnabled","padding","prompt","range","rationale","standardGrid","title","titleEnabled","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","authoring","settings","label","enabled","includeAxesEnabled","standardGridEnabled","gridConfigurations","top","bottom","graphDimensions","scoringType","studentInstructions","teacherInstructions","placeholder","availableTools","spellCheck","maxImageWidth","maxImageHeight","withRubric"],"mappings":"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","sourcesContent":["import { tools } from '@pie-lib/graphing';\n\nconst { allTools = [] } = tools;\n\nexport default {\n model: {\n answers: {},\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n backgroundMarks: [],\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x',\n },\n graph: {\n width: 500,\n height: 500,\n },\n includeAxes: true,\n labels: {},\n labelsEnabled: true,\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y',\n },\n rationale: '',\n standardGrid: false,\n title: '',\n titleEnabled: true,\n toolbarTools: allTools,\n coordinatesOnHover: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n authoring: {\n settings: false,\n label: 'Customize Grid Setup',\n enabled: true,\n includeAxesEnabled: true,\n standardGridEnabled: true,\n min: {\n label: 'Min Value',\n enabled: true,\n },\n max: {\n label: 'Max Value',\n enabled: true,\n },\n axisLabel: {\n label: 'Label',\n enabled: true,\n },\n step: {\n label: 'Grid Interval',\n enabled: true,\n },\n labelStep: {\n label: 'Label Interval',\n enabled: true,\n },\n },\n arrows: {\n settings: true,\n label: 'Include Arrows',\n left: {\n label: 'left',\n },\n right: {\n label: 'right',\n },\n up: {\n label: 'up',\n },\n down: {\n label: 'down',\n },\n },\n gridConfigurations: [\n {\n label: '4-quadrant coordinate grid, -10 to 10',\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n domain: {\n min: -10,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: -10,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>',\n },\n standardGrid: true,\n title: '',\n },\n {\n label: '0 to 10 on both axes',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false,\n },\n domain: {\n min: 0,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: 0,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>',\n },\n standardGrid: true,\n title: '',\n },\n {\n label: '0 to 20 on both axes',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false,\n },\n domain: {\n min: 0,\n max: 20,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: 0,\n max: 20,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>',\n },\n standardGrid: true,\n title: '',\n },\n {\n label: 'Sample Data Graph',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false,\n },\n domain: {\n min: 0,\n max: 30,\n step: 1,\n padding: 0,\n labelStep: 2,\n axisLabel: '<i>t</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: 'Time (seconds)',\n left: 'Distance (meters)',\n },\n padding: true,\n range: {\n min: 0,\n max: 80,\n step: 5,\n padding: 0,\n labelStep: 10,\n axisLabel: '<i>d</i>',\n },\n standardGrid: false,\n title: 'Distance as a function of time',\n },\n {\n label: 'No Visible Axes',\n arrows: {\n left: false,\n right: false,\n up: false,\n down: false,\n },\n domain: {\n min: 1,\n max: 21,\n step: 1,\n padding: 0,\n labelStep: 0,\n axisLabel: '',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: false,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: 1,\n max: 21,\n step: 1,\n padding: 0,\n labelStep: 0,\n axisLabel: '',\n },\n standardGrid: false,\n title: '',\n },\n ],\n graphDimensions: {\n settings: false,\n label: 'Graph Dimensions',\n enabled: true,\n min: 150,\n max: 800,\n step: 20,\n },\n padding: {\n settings: false,\n label: 'Padding',\n },\n labels: {\n settings: true,\n label: 'Graph Labels',\n enabled: true,\n top: 'Click here to add a top label',\n right: 'Click here to add a right label',\n bottom: 'Click here to add a bottom label',\n left: 'Click here to add a left label',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n title: {\n settings: true,\n label: 'Graph Title',\n enabled: true,\n placeholder: 'Click here to add a title for this graph',\n },\n availableTools: allTools,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n coordinatesOnHover: {\n settings: true,\n label: 'Coordinates on Hover',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n },\n};\n"],"file":"defaults.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graphing-config.jsx"],"names":["styles","theme","container","display","flexWrap","marginBottom","spacing","unit","gridConfigWrapper","flexDirection","marginRight","graphConfig","subtitleText","marginTop","gridConfig","alignItems","width","gridConfigLabel","padding","gridConfigSelect","flex","GraphingConfig","props","backgroundMarks","model","onChange","labels","title","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","domain","includeAxes","graph","range","standardGrid","domainConstraints","step","labelStep","rangeConstraints","height","setState","event","expanded","graphDimensions","enabled","showPixelGuides","gridConfigurations","value","target","label","selectedGrid","authoring","availableTools","classes","labelsPlaceholders","showLabels","showTitle","titlePlaceholder","arrows","coordinatesOnHover","dimensionsEnabled","min","max","sizeConstraints","Math","displayedFields","axisLabel","includeAxesEnabled","standardGridEnabled","displayGridSetup","Object","values","some","field","length","changeGridConfiguration","map","index","onConfigChange","onChangeView","includeArrows","changeLabels","changeBackgroundMarks","changeTitle","React","Component","PropTypes","object","isRequired","array","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphContainer, GridSetup } from '@pie-lib/graphing';\nimport { MenuItem, Select, Typography, OutlinedInput } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils';\n\nconst styles = theme => ({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: theme.spacing.unit * 7\n },\n gridConfigWrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: theme.spacing.unit * 4,\n marginBottom: theme.spacing.unit * 3\n },\n graphConfig: {\n display: 'flex',\n flexDirection: 'column'\n },\n subtitleText: {\n marginTop: theme.spacing.unit * 1.5,\n marginBottom: theme.spacing.unit\n },\n gridConfig: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n marginBottom: '16px'\n },\n gridConfigLabel: {\n padding: '0 8px'\n },\n gridConfigSelect: {\n flex: '1'\n }\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n authoring: PropTypes.object,\n graphDimensions: PropTypes.object,\n gridConfigurations: PropTypes.array,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { domain, range, graph } = props.model || {};\n\n const gridValues = {\n domain: getGridValues(domain, graph.width, true),\n range: getGridValues(range, graph.height, true)\n };\n const labelValues = {\n domain: getLabelValues(domain.step),\n range: getLabelValues(range.step)\n };\n\n this.state = { gridValues, labelValues, selectedGrid: 0, showPixelGuides: false };\n };\n\n changeBackgroundMarks = backgroundMarks => {\n const model = { ...this.props.model, backgroundMarks };\n\n this.props.onChange(model);\n };\n\n changeLabels = labels => {\n const { model, onChange } = this.props;\n\n onChange({ ...model, labels });\n };\n\n changeTitle = title => {\n const { model, onChange } = this.props;\n\n onChange({ ...model, title });\n };\n\n onConfigChange = config => {\n const { model, onChange } = this.props;\n const { gridValues: oldGridValues, labelValues: oldLabelValues } = this.state;\n const updatedModel = { ...model, ...config };\n const { domain, includeAxes, graph, range, standardGrid } = updatedModel;\n const gridValues = { domain: [], range: [] };\n const labelValues = { domain: [], range: [] };\n\n if (includeAxes) {\n const domainConstraints = applyConstraints(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);\n\n gridValues.domain = domainConstraints.gridValues || [];\n labelValues.domain = domainConstraints.labelValues || [];\n }\n\n if (standardGrid) {\n gridValues.range = gridValues.domain;\n labelValues.range = labelValues.domain;\n range.step = domain.step;\n range.labelStep = domain.labelStep;\n } else {\n if (includeAxes) {\n const rangeConstraints = applyConstraints(range, graph.height, oldGridValues.range, oldLabelValues.range);\n\n gridValues.range = rangeConstraints.gridValues || [];\n labelValues.range = rangeConstraints.labelValues || [];\n }\n }\n\n this.setState({ gridValues, labelValues });\n onChange(updatedModel);\n };\n\n onChangeView = (event, expanded) => {\n const { graphDimensions: { enabled } = {}} = this.props;\n\n if (enabled) {\n this.setState({ showPixelGuides: expanded });\n }\n };\n\n changeGridConfiguration = (event) => {\n const { gridConfigurations, model, onChange } = this.props;\n const { value } = event.target;\n const { label, ...updatedModel } = gridConfigurations[value] || {};\n\n this.setState({ selectedGrid: value });\n onChange({ ...model, ...updatedModel });\n };\n\n render() {\n const {\n authoring = {},\n availableTools = [],\n classes,\n gridConfigurations = [],\n graphDimensions = {},\n labelsPlaceholders,\n model,\n showLabels,\n showTitle,\n titlePlaceholder\n } = this.props;\n const {\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n domain,\n includeAxes,\n labels,\n range,\n standardGrid,\n title\n } = model || {};\n const graph = (model || {}).graph || {};\n const { enabled: dimensionsEnabled, min, max, step } = graphDimensions || {};\n const { gridValues, labelValues, selectedGrid, showPixelGuides } = this.state;\n\n const sizeConstraints = {\n min: Math.max(150, min),\n max: Math.min(800, max),\n step: step >= 1 ? Math.min(200, step) : 20\n };\n\n const displayedFields = {\n axisLabel: authoring.axisLabel,\n dimensionsEnabled,\n includeAxesEnabled: authoring.includeAxesEnabled,\n labelStep: authoring.labelStep,\n min: authoring.min,\n max: authoring.max,\n standardGridEnabled: authoring.standardGridEnabled,\n step: authoring.step\n };\n\n const displayGridSetup = authoring.enabled &&\n Object.values(displayedFields).some(field => typeof field === 'object' ? field.enabled : field);\n\n return (\n <div className={classes.container}>\n <div className={classes.gridConfigWrapper}>\n {gridConfigurations && gridConfigurations.length ? (\n <div className={classes.gridConfig}>\n <Typography component=\"div\" variant=\"subheading\" className={classes.gridConfigLabel}>\n <span>Grid Configuration</span>\n </Typography>\n <Select\n input={<OutlinedInput />}\n className={classes.gridConfigSelect}\n displayEmpty\n onChange={this.changeGridConfiguration}\n value={selectedGrid}\n >\n {(gridConfigurations || []).map((config, index) =>\n <MenuItem key={index} value={index}>{config.label}</MenuItem>\n )}\n </Select>\n </div>\n ) : null}\n {displayGridSetup && (\n <GridSetup\n displayedFields={displayedFields}\n domain={domain}\n dimensionsEnabled={dimensionsEnabled}\n gridValues={gridValues}\n includeAxes={includeAxes}\n labelValues={labelValues}\n range={range}\n size={graph}\n sizeConstraints={sizeConstraints}\n standardGrid={standardGrid}\n onChange={this.onConfigChange}\n onChangeView={this.onChangeView}\n />\n )}\n </div>\n\n <div className={classes.graphConfig} key=\"graph\">\n <Typography component=\"div\" variant=\"subheading\">\n <span>Define Graph Attributes</span>\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.subtitleText}>\n <span>Use this interface to add/edit a title and/or labels, and to set background shapes</span>\n </Typography>\n\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n collapsibleToolbar={true}\n collapsibleToolbarTitle={'Add Background Shapes to Graph'}\n domain={domain}\n key=\"graphing-config\"\n labels={labels}\n labelsPlaceholders={labelsPlaceholders}\n marks={backgroundMarks}\n onChangeLabels={this.changeLabels}\n onChangeMarks={this.changeBackgroundMarks}\n onChangeTitle={this.changeTitle}\n range={range}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n titlePlaceholder={titlePlaceholder}\n toolbarTools={availableTools}\n />\n </div>\n </div>\n );\n }\n};\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
|
|
1
|
+
{"version":3,"sources":["../src/graphing-config.jsx"],"names":["styles","theme","container","display","flexWrap","marginBottom","spacing","unit","gridConfigWrapper","flexDirection","marginRight","graphConfig","subtitleText","marginTop","gridConfig","alignItems","width","gridConfigLabel","padding","gridConfigSelect","flex","GraphingConfig","props","backgroundMarks","model","onChange","labels","title","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","domain","includeAxes","graph","range","standardGrid","domainConstraints","step","labelStep","rangeConstraints","height","setState","event","expanded","graphDimensions","enabled","showPixelGuides","gridConfigurations","value","target","label","selectedGrid","authoring","availableTools","classes","labelsPlaceholders","showLabels","showTitle","titlePlaceholder","arrows","coordinatesOnHover","dimensionsEnabled","min","max","sizeConstraints","Math","displayedFields","axisLabel","includeAxesEnabled","standardGridEnabled","displayGridSetup","Object","values","some","field","length","changeGridConfiguration","map","index","onConfigChange","onChangeView","includeArrows","changeLabels","changeBackgroundMarks","changeTitle","React","Component","PropTypes","object","isRequired","array","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphContainer, GridSetup } from '@pie-lib/graphing';\nimport { MenuItem, Select, Typography, OutlinedInput } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils';\n\nconst styles = (theme) => ({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: theme.spacing.unit * 7,\n },\n gridConfigWrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: theme.spacing.unit * 4,\n marginBottom: theme.spacing.unit * 3,\n },\n graphConfig: {\n display: 'flex',\n flexDirection: 'column',\n },\n subtitleText: {\n marginTop: theme.spacing.unit * 1.5,\n marginBottom: theme.spacing.unit,\n },\n gridConfig: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n marginBottom: '16px',\n },\n gridConfigLabel: {\n padding: '0 8px',\n },\n gridConfigSelect: {\n flex: '1',\n },\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n authoring: PropTypes.object,\n graphDimensions: PropTypes.object,\n gridConfigurations: PropTypes.array,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { domain, range, graph } = props.model || {};\n\n const gridValues = {\n domain: getGridValues(domain, graph.width, true),\n range: getGridValues(range, graph.height, true),\n };\n const labelValues = {\n domain: getLabelValues(domain.step),\n range: getLabelValues(range.step),\n };\n\n this.state = { gridValues, labelValues, selectedGrid: 0, showPixelGuides: false };\n }\n\n changeBackgroundMarks = (backgroundMarks) => {\n const model = { ...this.props.model, backgroundMarks };\n\n this.props.onChange(model);\n };\n\n changeLabels = (labels) => {\n const { model, onChange } = this.props;\n\n onChange({ ...model, labels });\n };\n\n changeTitle = (title) => {\n const { model, onChange } = this.props;\n\n onChange({ ...model, title });\n };\n\n onConfigChange = (config) => {\n const { model, onChange } = this.props;\n const { gridValues: oldGridValues, labelValues: oldLabelValues } = this.state;\n const updatedModel = { ...model, ...config };\n const { domain, includeAxes, graph, range, standardGrid } = updatedModel;\n const gridValues = { domain: [], range: [] };\n const labelValues = { domain: [], range: [] };\n\n if (includeAxes) {\n const domainConstraints = applyConstraints(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);\n\n gridValues.domain = domainConstraints.gridValues || [];\n labelValues.domain = domainConstraints.labelValues || [];\n }\n\n if (standardGrid) {\n gridValues.range = gridValues.domain;\n labelValues.range = labelValues.domain;\n range.step = domain.step;\n range.labelStep = domain.labelStep;\n } else {\n if (includeAxes) {\n const rangeConstraints = applyConstraints(range, graph.height, oldGridValues.range, oldLabelValues.range);\n\n gridValues.range = rangeConstraints.gridValues || [];\n labelValues.range = rangeConstraints.labelValues || [];\n }\n }\n\n this.setState({ gridValues, labelValues });\n onChange(updatedModel);\n };\n\n onChangeView = (event, expanded) => {\n const { graphDimensions: { enabled } = {} } = this.props;\n\n if (enabled) {\n this.setState({ showPixelGuides: expanded });\n }\n };\n\n changeGridConfiguration = (event) => {\n const { gridConfigurations, model, onChange } = this.props;\n const { value } = event.target;\n const { label, ...updatedModel } = gridConfigurations[value] || {};\n\n this.setState({ selectedGrid: value });\n onChange({ ...model, ...updatedModel });\n };\n\n render() {\n const {\n authoring = {},\n availableTools = [],\n classes,\n gridConfigurations = [],\n graphDimensions = {},\n labelsPlaceholders,\n model,\n showLabels,\n showTitle,\n titlePlaceholder,\n } = this.props;\n const { arrows, backgroundMarks, coordinatesOnHover, domain, includeAxes, labels, range, standardGrid, title } =\n model || {};\n const graph = (model || {}).graph || {};\n const { enabled: dimensionsEnabled, min, max, step } = graphDimensions || {};\n const { gridValues, labelValues, selectedGrid, showPixelGuides } = this.state;\n\n const sizeConstraints = {\n min: Math.max(150, min),\n max: Math.min(800, max),\n step: step >= 1 ? Math.min(200, step) : 20,\n };\n\n const displayedFields = {\n axisLabel: authoring.axisLabel,\n dimensionsEnabled,\n includeAxesEnabled: authoring.includeAxesEnabled,\n labelStep: authoring.labelStep,\n min: authoring.min,\n max: authoring.max,\n standardGridEnabled: authoring.standardGridEnabled,\n step: authoring.step,\n };\n\n const displayGridSetup =\n authoring.enabled &&\n Object.values(displayedFields).some((field) => (typeof field === 'object' ? field.enabled : field));\n\n return (\n <div className={classes.container}>\n <div className={classes.gridConfigWrapper}>\n {gridConfigurations && gridConfigurations.length ? (\n <div className={classes.gridConfig}>\n <Typography component=\"div\" variant=\"subheading\" className={classes.gridConfigLabel}>\n <span>Grid Configuration</span>\n </Typography>\n <Select\n input={<OutlinedInput />}\n className={classes.gridConfigSelect}\n displayEmpty\n onChange={this.changeGridConfiguration}\n value={selectedGrid}\n >\n {(gridConfigurations || []).map((config, index) => (\n <MenuItem key={index} value={index}>\n {config.label}\n </MenuItem>\n ))}\n </Select>\n </div>\n ) : null}\n {displayGridSetup && (\n <GridSetup\n displayedFields={displayedFields}\n domain={domain}\n dimensionsEnabled={dimensionsEnabled}\n gridValues={gridValues}\n includeAxes={includeAxes}\n labelValues={labelValues}\n range={range}\n size={graph}\n sizeConstraints={sizeConstraints}\n standardGrid={standardGrid}\n onChange={this.onConfigChange}\n onChangeView={this.onChangeView}\n />\n )}\n </div>\n\n <div className={classes.graphConfig} key=\"graph\">\n <Typography component=\"div\" variant=\"subheading\">\n <span>Define Graph Attributes</span>\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.subtitleText}>\n <span>Use this interface to add/edit a title and/or labels, and to set background shapes</span>\n </Typography>\n\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n collapsibleToolbar={true}\n collapsibleToolbarTitle={'Add Background Shapes to Graph'}\n domain={domain}\n key=\"graphing-config\"\n labels={labels}\n labelsPlaceholders={labelsPlaceholders}\n marks={backgroundMarks}\n onChangeLabels={this.changeLabels}\n onChangeMarks={this.changeBackgroundMarks}\n onChangeTitle={this.changeTitle}\n range={range}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n titlePlaceholder={titlePlaceholder}\n toolbarTools={availableTools}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["log","sortedAnswers","answers","Object","keys","sort","reduce","result","key","GraphLinesConfigure","model","_model","_render","dispatchEvent","ModelUpdatedEvent","config","_configuration","handler","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","defaultValues","configuration","m","c","InsertSoundEvent","DeleteSoundEvent","el","React","createElement","Configure","onModelChanged","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","bind","onDeleteSound","ReactDOM","render","HTMLElement","normalizedModel","domain","defaultTool","graph","range","standardGrid","toolbarTools","toolbarToolsNoLabel","filter","tool","normalizedDefaultTool","length","correctAnswer","min","max","step","labelStep","height","width"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAOA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,iCAAN,CAAZ,C,CAEA;;AACA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["log","sortedAnswers","answers","Object","keys","sort","reduce","result","key","GraphLinesConfigure","model","_model","_render","dispatchEvent","ModelUpdatedEvent","config","_configuration","handler","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","defaultValues","configuration","m","c","InsertSoundEvent","DeleteSoundEvent","el","React","createElement","Configure","onModelChanged","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","bind","onDeleteSound","ReactDOM","render","HTMLElement","normalizedModel","domain","defaultTool","graph","range","standardGrid","toolbarTools","toolbarToolsNoLabel","filter","tool","normalizedDefaultTool","length","correctAnswer","min","max","step","labelStep","height","width"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Configure from './configure';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport defaultValues from './defaults';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst log = debug('pie-elements:graphing:configure');\n\n// this function is implemented in controller as well\nconst sortedAnswers = (answers) =>\n Object.keys(answers || {})\n .sort()\n .reduce((result, key) => {\n if (key !== 'correctAnswer') {\n result[key] = answers[key];\n }\n\n return result;\n }, {});\n\nexport default class GraphLinesConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const normalizedModel = { ...defaultValues.model, ...model };\n const {\n answers = {},\n domain = {},\n defaultTool,\n graph = {},\n range = {},\n standardGrid,\n toolbarTools,\n } = normalizedModel;\n\n // added support for models without defaultTool defined; also used in packages/graphing/controller/src/index.js\n const toolbarToolsNoLabel = (toolbarTools || []).filter((tool) => tool !== 'label');\n const normalizedDefaultTool = defaultTool || (toolbarToolsNoLabel.length && toolbarToolsNoLabel[0]) || '';\n\n return {\n ...normalizedModel,\n answers:\n (answers &&\n answers.correctAnswer && {\n correctAnswer: answers.correctAnswer,\n ...sortedAnswers(answers),\n }) ||\n answers,\n defaultTool: normalizedDefaultTool,\n range:\n (standardGrid && {\n ...range,\n min: domain.min,\n max: domain.max,\n step: domain.step,\n labelStep: domain.labelStep,\n }) ||\n range,\n graph: (standardGrid && { ...graph, height: graph.width }) || graph,\n };\n };\n\n constructor() {\n super();\n this._model = GraphLinesConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = GraphLinesConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged = (model) => {\n this._model = model;\n this._render();\n\n log('[onModelChanged]: ', this._model);\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n };\n\n onConfigurationChanged = (config) => {\n this._configuration = config;\n this._render();\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage,\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
|
package/configure/lib/utils.js
CHANGED
|
@@ -13,32 +13,32 @@ var VALID_GRID_VALUES = [0.01, 0.02, 0.04, 0.05, 0.0625, 0.1, 0.125, 0.2, 0.25,
|
|
|
13
13
|
|
|
14
14
|
var PREFERRED_VALID_GRID_VALUES = [0.01, 0.02, 0.05, 0.1, 0.2, 0.25, 0.5, 1, 2, 5, 10, 20, 50, 100, 500, 1000];
|
|
15
15
|
var VALID_LABEL_VALUES = {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
16
|
+
0.01: [0, 0.01, 0.02, 0.04, 0.05, 0.1],
|
|
17
|
+
0.02: [0, 0.02, 0.04, 0.1],
|
|
18
|
+
0.04: [0, 0.04, 0.08, 0.16, 0.2],
|
|
19
|
+
0.05: [0, 0.05, 0.1, 0.2, 0.25],
|
|
20
|
+
0.0625: [0, 0.0625, 0.125, 0.25, 0.5],
|
|
21
|
+
0.1: [0, 0.1, 0.2, 0.4, 0.5, 1],
|
|
22
|
+
0.125: [0, 0.125, 0.25, 0.5, 1],
|
|
23
|
+
0.2: [0, 0.2, 0.5, 0.1],
|
|
24
|
+
0.25: [0, 0.25, 0.5, 1, 2],
|
|
25
|
+
0.5: [0, 0.5, 1, 2],
|
|
26
|
+
1: [0, 1, 2, 4, 5, 10],
|
|
27
|
+
2: [0, 2, 4, 8, 10],
|
|
28
|
+
3: [0, 3, 6, 12, 15],
|
|
29
|
+
4: [0, 4, 8, 16, 20],
|
|
30
|
+
5: [0, 5, 10, 20, 25],
|
|
31
|
+
8: [0, 8, 16, 32, 40, 64],
|
|
32
|
+
10: [0, 10, 20, 40, 50, 100],
|
|
33
|
+
12: [0, 12, 24],
|
|
34
|
+
15: [0, 15, 30, 60],
|
|
35
|
+
20: [0, 20, 40, 80, 100],
|
|
36
|
+
40: [0, 40, 80, 160, 200],
|
|
37
|
+
50: [0, 50, 100, 200, 250],
|
|
38
|
+
64: [0, 64, 128],
|
|
39
|
+
100: [0, 100, 200, 400, 500],
|
|
40
|
+
500: [0, 500, 1000, 2500],
|
|
41
|
+
1000: [0, 1000, 2000, 4000, 5000]
|
|
42
42
|
};
|
|
43
43
|
exports.VALID_LABEL_VALUES = VALID_LABEL_VALUES;
|
|
44
44
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["VALID_GRID_VALUES","PREFERRED_VALID_GRID_VALUES","VALID_LABEL_VALUES","getGridValues","axis","size","prefferedValues","minValue","max","min","maxValue","values","filter","value","getLabelValues","applyConstraints","oldGridValues","oldLabelValues","gridValues","labelValues","step","includes","preferredValues","lowestValue","labelStep"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,iBAAiB,GAAG,CACxB,IADwB,EAClB,IADkB,EACZ,IADY,EACN,IADM,EACA,MADA,EACQ,GADR,EACa,KADb,EACoB,GADpB,EACyB,IADzB,EAC+B,GAD/B,
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["VALID_GRID_VALUES","PREFERRED_VALID_GRID_VALUES","VALID_LABEL_VALUES","getGridValues","axis","size","prefferedValues","minValue","max","min","maxValue","values","filter","value","getLabelValues","applyConstraints","oldGridValues","oldLabelValues","gridValues","labelValues","step","includes","preferredValues","lowestValue","labelStep"],"mappings":"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","sourcesContent":["import isEqual from 'lodash/isEqual';\n\nconst VALID_GRID_VALUES = [\n 0.01, 0.02, 0.04, 0.05, 0.0625, 0.1, 0.125, 0.2, 0.25, 0.5, 1, 2, 3, 4, 5, 8, 10, 12, 15, 20, 40, 50, 64, 100, 500,\n 1000,\n];\n\n// same as VALID_GRID_VALUES but next values are excluded: 0.04, 0.0625, 0.125, 3, 4, 8, 12, 15, 40, 64\nconst PREFERRED_VALID_GRID_VALUES = [0.01, 0.02, 0.05, 0.1, 0.2, 0.25, 0.5, 1, 2, 5, 10, 20, 50, 100, 500, 1000];\n\nexport const VALID_LABEL_VALUES = {\n 0.01: [0, 0.01, 0.02, 0.04, 0.05, 0.1],\n 0.02: [0, 0.02, 0.04, 0.1],\n 0.04: [0, 0.04, 0.08, 0.16, 0.2],\n 0.05: [0, 0.05, 0.1, 0.2, 0.25],\n 0.0625: [0, 0.0625, 0.125, 0.25, 0.5],\n 0.1: [0, 0.1, 0.2, 0.4, 0.5, 1],\n 0.125: [0, 0.125, 0.25, 0.5, 1],\n 0.2: [0, 0.2, 0.5, 0.1],\n 0.25: [0, 0.25, 0.5, 1, 2],\n 0.5: [0, 0.5, 1, 2],\n 1: [0, 1, 2, 4, 5, 10],\n 2: [0, 2, 4, 8, 10],\n 3: [0, 3, 6, 12, 15],\n 4: [0, 4, 8, 16, 20],\n 5: [0, 5, 10, 20, 25],\n 8: [0, 8, 16, 32, 40, 64],\n 10: [0, 10, 20, 40, 50, 100],\n 12: [0, 12, 24],\n 15: [0, 15, 30, 60],\n 20: [0, 20, 40, 80, 100],\n 40: [0, 40, 80, 160, 200],\n 50: [0, 50, 100, 200, 250],\n 64: [0, 64, 128],\n 100: [0, 100, 200, 400, 500],\n 500: [0, 500, 1000, 2500],\n 1000: [0, 1000, 2000, 4000, 5000],\n};\n\nexport const getGridValues = (axis, size, prefferedValues = false) => {\n const minValue = (10 * (axis.max - axis.min)) / size;\n const maxValue = minValue * 10;\n const values = prefferedValues ? PREFERRED_VALID_GRID_VALUES : VALID_GRID_VALUES;\n\n return values.filter((value) => value >= minValue && value <= maxValue);\n};\n\nexport const getLabelValues = (value) => VALID_LABEL_VALUES[value] || [];\n\nexport const applyConstraints = (axis, size, oldGridValues, oldLabelValues) => {\n const gridValues = getGridValues(axis, size);\n let labelValues = getLabelValues(axis.step);\n\n if (!isEqual(oldGridValues, gridValues) && !gridValues.includes(axis.step)) {\n const preferredValues = getGridValues(axis, size, true);\n const lowestValue = preferredValues[0] || 1;\n\n axis.step = lowestValue;\n labelValues = getLabelValues(lowestValue);\n\n if (!labelValues.includes(axis.labelStep)) {\n axis.labelStep = lowestValue;\n }\n\n return { gridValues, labelValues };\n }\n\n if (!isEqual(oldLabelValues, labelValues) && !labelValues.includes(axis.labelStep)) {\n axis.labelStep = axis.step;\n }\n\n return { gridValues, labelValues };\n};\n"],"file":"utils.js"}
|
package/configure/package.json
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.2",
|
|
11
11
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
12
|
-
"@pie-lib/config-ui": "^11.0.
|
|
13
|
-
"@pie-lib/editable-html": "^9.2.
|
|
14
|
-
"@pie-lib/graphing": "^2.11.
|
|
15
|
-
"@pie-lib/math-rendering": "^2.5.
|
|
12
|
+
"@pie-lib/config-ui": "^11.0.26",
|
|
13
|
+
"@pie-lib/editable-html": "^9.2.8",
|
|
14
|
+
"@pie-lib/graphing": "^2.11.5",
|
|
15
|
+
"@pie-lib/math-rendering": "^2.5.1",
|
|
16
16
|
"classnames": "^2.2.5",
|
|
17
17
|
"debug": "^4.1.1",
|
|
18
18
|
"prop-types": "^15.6.2",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["allTools","answers","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","labelsEnabled","coordinatesOnHover","padding","prompt","range","rationale","standardGrid","title","titleEnabled","toolbarTools","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled"],"mappings":";;;;;;AAAA;AACA,IAAMA,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["allTools","answers","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","labelsEnabled","coordinatesOnHover","padding","prompt","range","rationale","standardGrid","title","titleEnabled","toolbarTools","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled"],"mappings":";;;;;;AAAA;AACA,IAAMA,QAAQ,GAAG,CAAC,QAAD,EAAW,MAAX,EAAmB,OAAnB,EAA4B,UAA5B,EAAwC,OAAxC,EAAiD,SAAjD,EAA4D,KAA5D,EAAmE,SAAnE,EAA8E,MAA9E,EAAsF,QAAtF,CAAjB;AAEA;;eACe;AACbC,EAAAA,OAAO,EAAE,EADI;AAEbC,EAAAA,MAAM,EAAE;AACNC,IAAAA,IAAI,EAAE,IADA;AAENC,IAAAA,KAAK,EAAE,IAFD;AAGNC,IAAAA,EAAE,EAAE,IAHE;AAINC,IAAAA,IAAI,EAAE;AAJA,GAFK;AAQbC,EAAAA,eAAe,EAAE,EARJ;AASbC,EAAAA,MAAM,EAAE;AACNC,IAAAA,GAAG,EAAE,CAAC,CADA;AAENC,IAAAA,GAAG,EAAE,CAFC;AAGNC,IAAAA,IAAI,EAAE,CAHA;AAINC,IAAAA,SAAS,EAAE,CAJL;AAKNC,IAAAA,SAAS,EAAE;AALL,GATK;AAgBbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE,GADF;AAELC,IAAAA,MAAM,EAAE;AAFH,GAhBM;AAoBbC,EAAAA,WAAW,EAAE,IApBA;AAqBbC,EAAAA,MAAM,EAAE,EArBK;AAsBbC,EAAAA,aAAa,EAAE,IAtBF;AAuBbC,EAAAA,kBAAkB,EAAE,KAvBP;AAwBbC,EAAAA,OAAO,EAAE,IAxBI;AAyBbC,EAAAA,MAAM,EAAE,EAzBK;AA0BbC,EAAAA,KAAK,EAAE;AACLd,IAAAA,GAAG,EAAE,CAAC,CADD;AAELC,IAAAA,GAAG,EAAE,CAFA;AAGLC,IAAAA,IAAI,EAAE,CAHD;AAILC,IAAAA,SAAS,EAAE,CAJN;AAKLC,IAAAA,SAAS,EAAE;AALN,GA1BM;AAiCbW,EAAAA,SAAS,EAAE,EAjCE;AAkCbC,EAAAA,YAAY,EAAE,KAlCD;AAmCbC,EAAAA,KAAK,EAAE,EAnCM;AAoCbC,EAAAA,YAAY,EAAE,IApCD;AAqCbC,EAAAA,YAAY,EAAE5B,QArCD;AAsCb6B,EAAAA,aAAa,EAAE,IAtCF;AAuCbC,EAAAA,gBAAgB,EAAE,IAvCL;AAwCbC,EAAAA,0BAA0B,EAAE,IAxCf;AAyCbC,EAAAA,0BAA0B,EAAE;AAzCf,C","sourcesContent":["// TODO: This is lifted from @pie-lib/graphing, however importing this will break a controller build because it has jsx source in that package.\nconst allTools = ['circle', 'line', 'label', 'parabola', 'point', 'polygon', 'ray', 'segment', 'sine', 'vector'];\n\n/* model defaults */\nexport default {\n answers: {},\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n backgroundMarks: [],\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x',\n },\n graph: {\n width: 500,\n height: 500,\n },\n includeAxes: true,\n labels: {},\n labelsEnabled: true,\n coordinatesOnHover: false,\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y',\n },\n rationale: '',\n standardGrid: false,\n title: '',\n titleEnabled: true,\n toolbarTools: allTools,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n};\n"],"file":"defaults.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["log","initializeGraphMap","point","segment","line","ray","vector","polygon","circle","sine","parabola","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","getPartialScoring","scoringType","env","pS","partialScoring","enabled","getBestAnswer","question","session","answers","questionPossibleAnswers","correctAnswer","partialScoringEnabled","possibleAnswers","Object","entries","acc","entry","possibleAnswerKey","possibleAnswer","length","correctMarks","filter","maxScore","score","bestScore","foundOneSolution","parseFloat","toFixed","Math","floor","bestScoreAnswerKey","answersCorrected","map","normalize","defaults","model","Promise","resolve","normalizedQuestion","defaultTool","prompt","promptEnabled","graph","toolbarTools","questionProps","arrows","mode","role","left","right","up","down","toolbarToolsNoLabel","tool","normalizedDefaultTool","base","disabled","rationale","size","showToggle","teacherInstructions","rationaleEnabled","teacherInstructionsEnabled","correctResponse","outcome","empty","createCorrectResponseSession","values","firstCorrectAnswer","id"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport uniqWith from 'lodash/uniqWith';\nimport isEmpty from 'lodash/isEmpty';\nimport defaults from './defaults';\nimport { equalMarks, sortedAnswers } from './utils';\n\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst initializeGraphMap = () => ({\n point: [],\n segment: [],\n line: [],\n ray: [],\n vector: [],\n polygon: [],\n circle: [],\n sine: [],\n parabola: []\n});\n\nexport const compareMarks = (mark1, mark2) => {\n // marks can be compared with equalMarks[type] function only if they have the same type;\n // if type is different, they are clearly not equal\n return !!(mark1 && mark2 && mark1.type === mark2.type && equalMarks[mark1.type] && equalMarks[mark1.type](mark1, mark2));\n};\n\nexport const getAnswerCorrected = ({ sessionAnswers, marks: correctAnswers }) => {\n sessionAnswers = sessionAnswers || [];\n correctAnswers = correctAnswers || [];\n\n return cloneDeep(sessionAnswers).reduce((correctedAnswer, answer) => {\n const answerIsCorrect = correctAnswers.find(mark => compareMarks(answer, mark));\n\n answer.correctness = answerIsCorrect ? 'correct' : 'incorrect';\n\n return [...correctedAnswer, answer];\n }, []);\n};\n\nconst getPartialScoring = ({ scoringType, env }) => {\n let pS = scoringType;\n\n // if scoringType is undefined, partialScoring should be considered undefined (not set)\n // because partialScoring.enabled is using that information\n // if it has a value, we check if it is partial scoring or dichotomous\n if (scoringType) {\n pS = scoringType === 'partial scoring';\n }\n\n return partialScoring.enabled({ partialScoring: pS }, env);\n};\n\nexport const getBestAnswer = (question, session, env = {}) => {\n // questionPossibleAnswers contains all possible answers (correct response and alternates);\n let { answers: questionPossibleAnswers = {}, scoringType } = question || {};\n let { answer } = session || {};\n\n // initialize answer if no values\n answer = answer || [];\n\n // initialize one possible answer if no values\n if (isEmpty(questionPossibleAnswers)) {\n questionPossibleAnswers = { correctAnswer: initializeGraphMap() };\n } else {\n questionPossibleAnswers = {\n correctAnswer: questionPossibleAnswers.correctAnswer,\n ...sortedAnswers(questionPossibleAnswers)\n };\n }\n\n const partialScoringEnabled = getPartialScoring({ scoringType, env });\n\n // student's answers without DUPLICATES\n const sessionAnswers = uniqWith(answer, compareMarks);\n // array of possible answers entries\n const possibleAnswers = Object.entries(questionPossibleAnswers);\n\n return possibleAnswers.reduce((acc, entry) => {\n // iterating each possible answer (main + alternates)\n const possibleAnswerKey = entry[0];\n const possibleAnswer = entry[1] || {};\n let { marks } = possibleAnswer;\n\n if (!marks || !marks.length) {\n return acc;\n }\n\n // returns array of marks, each having 'correctness' property\n const correctedAnswer = getAnswerCorrected({ sessionAnswers, marks });\n const correctMarks = correctedAnswer.filter(answer => answer.correctness === 'correct');\n\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (correctedAnswer.length > maxScore) {\n score -= correctedAnswer.length - maxScore;\n }\n\n if (score < 0) {\n score = 0;\n }\n\n if (score / maxScore > acc.bestScore || !acc.foundOneSolution) {\n if (partialScoringEnabled) {\n acc.bestScore = parseFloat((score / maxScore).toFixed(2));\n } else {\n acc.bestScore = Math.floor(score / maxScore);\n }\n\n acc.bestScoreAnswerKey = possibleAnswerKey;\n acc.answersCorrected = correctedAnswer;\n acc.foundOneSolution = true;\n }\n\n return acc;\n }, {\n bestScore: 0,\n bestScoreAnswerKey: null,\n // initially we just suppose all the answers are incorrect\n answersCorrected: cloneDeep(sessionAnswers).map(answer => ({ ...answer, correctness: 'incorrect' })),\n foundOneSolution: false\n });\n};\n\nexport const normalize = question => ({ ...defaults, ...question });\n\nexport function model(question, session, env) {\n return new Promise(resolve => {\n const normalizedQuestion = normalize(question);\n const {\n defaultTool,\n prompt,\n promptEnabled,\n graph,\n answers,\n toolbarTools,\n ...questionProps\n } = normalizedQuestion || {};\n let { arrows } = normalizedQuestion;\n const { mode, role } = env || {};\n\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in authoring : packages/graphing/configure/src/configure.jsx - componentDidMount\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false\n };\n }\n }\n\n // added support for models without defaultTool defined; also used in packages/graphing/configure/src/index.js\n const toolbarToolsNoLabel = (toolbarTools || []).filter(tool => tool !== 'label');\n const normalizedDefaultTool = defaultTool || (toolbarToolsNoLabel.length && toolbarToolsNoLabel[0]) || '';\n\n const base = {\n ...questionProps,\n answers,\n arrows,\n defaultTool: normalizedDefaultTool,\n disabled: env.mode !== 'gather',\n prompt: promptEnabled ? prompt : null,\n rationale: null,\n size: graph,\n showToggle: env.mode === 'evaluate' && !isEmpty(answers),\n teacherInstructions: null,\n toolbarTools\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n const { rationale, rationaleEnabled, teacherInstructions, teacherInstructionsEnabled } = normalizedQuestion || {};\n\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n }\n\n if (mode === 'evaluate') {\n if (!isEmpty(answers)) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } = getBestAnswer(normalizedQuestion, session, env);\n\n // array of marks from session with 'correctness' property set\n base.answersCorrected = answersCorrected;\n base.correctResponse = bestScoreAnswerKey ? (answers[bestScoreAnswerKey] || {}).marks : [];\n base.showToggle = base.showToggle && bestScore !== 1;\n } else {\n base.answersCorrected = session && session.answer || [];\n base.correctResponse = [];\n }\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(question, session, env = {}) {\n return new Promise(resolve => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (env.mode !== 'evaluate' || isEmpty(question.answers)) {\n resolve({ score: 0 });\n }\n\n const { bestScore } = getBestAnswer(question, session, env);\n\n resolve({ score: bestScore });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { answers } = question || {};\n let marks = [];\n\n if (answers && Object.values(answers)) {\n const firstCorrectAnswer = Object.values(answers)[0] || {};\n\n marks = firstCorrectAnswer.marks || [];\n }\n\n resolve({\n answer: marks,\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["log","initializeGraphMap","point","segment","line","ray","vector","polygon","circle","sine","parabola","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","getPartialScoring","scoringType","env","pS","partialScoring","enabled","getBestAnswer","question","session","answers","questionPossibleAnswers","correctAnswer","partialScoringEnabled","possibleAnswers","Object","entries","acc","entry","possibleAnswerKey","possibleAnswer","length","correctMarks","filter","maxScore","score","bestScore","foundOneSolution","parseFloat","toFixed","Math","floor","bestScoreAnswerKey","answersCorrected","map","normalize","defaults","model","Promise","resolve","normalizedQuestion","defaultTool","prompt","promptEnabled","graph","toolbarTools","questionProps","arrows","mode","role","left","right","up","down","toolbarToolsNoLabel","tool","normalizedDefaultTool","base","disabled","rationale","size","showToggle","teacherInstructions","rationaleEnabled","teacherInstructionsEnabled","correctResponse","outcome","empty","createCorrectResponseSession","values","firstCorrectAnswer","id"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport uniqWith from 'lodash/uniqWith';\nimport isEmpty from 'lodash/isEmpty';\nimport defaults from './defaults';\nimport { equalMarks, sortedAnswers } from './utils';\n\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst initializeGraphMap = () => ({\n point: [],\n segment: [],\n line: [],\n ray: [],\n vector: [],\n polygon: [],\n circle: [],\n sine: [],\n parabola: [],\n});\n\nexport const compareMarks = (mark1, mark2) => {\n // marks can be compared with equalMarks[type] function only if they have the same type;\n // if type is different, they are clearly not equal\n return !!(\n mark1 &&\n mark2 &&\n mark1.type === mark2.type &&\n equalMarks[mark1.type] &&\n equalMarks[mark1.type](mark1, mark2)\n );\n};\n\nexport const getAnswerCorrected = ({ sessionAnswers, marks: correctAnswers }) => {\n sessionAnswers = sessionAnswers || [];\n correctAnswers = correctAnswers || [];\n\n return cloneDeep(sessionAnswers).reduce((correctedAnswer, answer) => {\n const answerIsCorrect = correctAnswers.find((mark) => compareMarks(answer, mark));\n\n answer.correctness = answerIsCorrect ? 'correct' : 'incorrect';\n\n return [...correctedAnswer, answer];\n }, []);\n};\n\nconst getPartialScoring = ({ scoringType, env }) => {\n let pS = scoringType;\n\n // if scoringType is undefined, partialScoring should be considered undefined (not set)\n // because partialScoring.enabled is using that information\n // if it has a value, we check if it is partial scoring or dichotomous\n if (scoringType) {\n pS = scoringType === 'partial scoring';\n }\n\n return partialScoring.enabled({ partialScoring: pS }, env);\n};\n\nexport const getBestAnswer = (question, session, env = {}) => {\n // questionPossibleAnswers contains all possible answers (correct response and alternates);\n let { answers: questionPossibleAnswers = {}, scoringType } = question || {};\n let { answer } = session || {};\n\n // initialize answer if no values\n answer = answer || [];\n\n // initialize one possible answer if no values\n if (isEmpty(questionPossibleAnswers)) {\n questionPossibleAnswers = { correctAnswer: initializeGraphMap() };\n } else {\n questionPossibleAnswers = {\n correctAnswer: questionPossibleAnswers.correctAnswer,\n ...sortedAnswers(questionPossibleAnswers),\n };\n }\n\n const partialScoringEnabled = getPartialScoring({ scoringType, env });\n\n // student's answers without DUPLICATES\n const sessionAnswers = uniqWith(answer, compareMarks);\n // array of possible answers entries\n const possibleAnswers = Object.entries(questionPossibleAnswers);\n\n return possibleAnswers.reduce(\n (acc, entry) => {\n // iterating each possible answer (main + alternates)\n const possibleAnswerKey = entry[0];\n const possibleAnswer = entry[1] || {};\n let { marks } = possibleAnswer;\n\n if (!marks || !marks.length) {\n return acc;\n }\n\n // returns array of marks, each having 'correctness' property\n const correctedAnswer = getAnswerCorrected({ sessionAnswers, marks });\n const correctMarks = correctedAnswer.filter((answer) => answer.correctness === 'correct');\n\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (correctedAnswer.length > maxScore) {\n score -= correctedAnswer.length - maxScore;\n }\n\n if (score < 0) {\n score = 0;\n }\n\n if (score / maxScore > acc.bestScore || !acc.foundOneSolution) {\n if (partialScoringEnabled) {\n acc.bestScore = parseFloat((score / maxScore).toFixed(2));\n } else {\n acc.bestScore = Math.floor(score / maxScore);\n }\n\n acc.bestScoreAnswerKey = possibleAnswerKey;\n acc.answersCorrected = correctedAnswer;\n acc.foundOneSolution = true;\n }\n\n return acc;\n },\n {\n bestScore: 0,\n bestScoreAnswerKey: null,\n // initially we just suppose all the answers are incorrect\n answersCorrected: cloneDeep(sessionAnswers).map((answer) => ({ ...answer, correctness: 'incorrect' })),\n foundOneSolution: false,\n },\n );\n};\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nexport function model(question, session, env) {\n return new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n const { defaultTool, prompt, promptEnabled, graph, answers, toolbarTools, ...questionProps } =\n normalizedQuestion || {};\n let { arrows } = normalizedQuestion;\n const { mode, role } = env || {};\n\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in authoring : packages/graphing/configure/src/configure.jsx - componentDidMount\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true,\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false,\n };\n }\n }\n\n // added support for models without defaultTool defined; also used in packages/graphing/configure/src/index.js\n const toolbarToolsNoLabel = (toolbarTools || []).filter((tool) => tool !== 'label');\n const normalizedDefaultTool = defaultTool || (toolbarToolsNoLabel.length && toolbarToolsNoLabel[0]) || '';\n\n const base = {\n ...questionProps,\n answers,\n arrows,\n defaultTool: normalizedDefaultTool,\n disabled: env.mode !== 'gather',\n prompt: promptEnabled ? prompt : null,\n rationale: null,\n size: graph,\n showToggle: env.mode === 'evaluate' && !isEmpty(answers),\n teacherInstructions: null,\n toolbarTools,\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n const { rationale, rationaleEnabled, teacherInstructions, teacherInstructionsEnabled } = normalizedQuestion || {};\n\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n }\n\n if (mode === 'evaluate') {\n if (!isEmpty(answers)) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } = getBestAnswer(normalizedQuestion, session, env);\n\n // array of marks from session with 'correctness' property set\n base.answersCorrected = answersCorrected;\n base.correctResponse = bestScoreAnswerKey ? (answers[bestScoreAnswerKey] || {}).marks : [];\n base.showToggle = base.showToggle && bestScore !== 1;\n } else {\n base.answersCorrected = (session && session.answer) || [];\n base.correctResponse = [];\n }\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(question, session, env = {}) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (env.mode !== 'evaluate' || isEmpty(question.answers)) {\n resolve({ score: 0 });\n }\n\n const { bestScore } = getBestAnswer(question, session, env);\n\n resolve({ score: bestScore });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { answers } = question || {};\n let marks = [];\n\n if (answers && Object.values(answers)) {\n const firstCorrectAnswer = Object.values(answers)[0] || {};\n\n marks = firstCorrectAnswer.marks || [];\n }\n\n resolve({\n answer: marks,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["equalPoint","A","B","equalLabel","label","x","y","equalSegment","segment1","segment2","from","to","equalVector","vector1","vector2","sortedAnswers","answers","Object","keys","sort","reduce","result","key","returnLineEquationCoefficients","line","xA","yA","xB","yB","a","b","c","getSignificantDecimals","number","Math","round","equalLine","line1","line2","a1","b1","c1","a2","b2","c2","proportions","push","lodash","uniq","length","equalRay","ray1","ray2","mRay1","mRay2","angleRay1","atan2","PI","angleRay2","constructSegmentsFromPoints","points","map","point","index","removeDuplicateSegments","segments","s1","s2","removeInvalidSegments","filter","segment","equalPolygon","poly1","poly2","points1","points2","segments1","segments2","segments1NoDuplicates","segments2NoDuplicates","differentSegments1","differentSegments2","equalCircle","equalRootAndEdge","edge","root","rC1","sqrt","rC2","equalSine","sine1","sine2","getPoints","amplitude","freq","tY","abs","tXRoot","tX","edgeAboveZeroX","edgeAboveZeroY","min","max","studentAnswerBpY","correctAnswerBpY","amplitude1","freq1","min1","max1","edgeAboveZeroX1","edgeAboveZeroY1","amplitude2","freq2","min2","max2","edgeAboveZeroX2","edgeAboveZeroY2","equalParabola","p1","p2","edgeP1","rootP1","edgeP2","rootP2","p1edge","p2edge","p1mirrorEdge","p2mirrorEdge","equalMarks","circle","sessAnswer","mark","parabola","polygon","poly","ray","sine","vector"],"mappings":"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","sourcesContent":["import isEqual from 'lodash/isEqual';\nimport lodash from 'lodash';\nimport uniqWith from 'lodash/uniqWith';\nimport differenceWith from 'lodash/differenceWith';\nimport { getAmplitudeAndFreq, pointsToABC } from '@pie-lib/graphing-utils';\n\nexport const equalPoint = (A, B) => {\n // x1 = x2 & y1 = y2\n let equalLabel = true;\n\n if (A.label || B.label) {\n equalLabel = isEqual(A.label, B.label);\n }\n\n return isEqual(A.x, B.x) && isEqual(A.y, B.y) && equalLabel;\n};\n\nexport const equalSegment = (segment1, segment2) => {\n // A.from = B.from, A.to = B.to OR A.from = B.to, A.to = B.from\n // x1 = x3 & y1 = y3 & x2 = x4 & y2 = y4\n return ((isEqual(segment1.from, segment2.from) && isEqual(segment1.to, segment2.to)) ||\n ((isEqual(segment1.to, segment2.from) && isEqual(segment1.from, segment2.to))));\n};\n\nexport const equalVector = (vector1, vector2) => {\n // A.from = B.from, A.to = B.to;\n // x1 = x3 & y1 = y3 & x2 = x4 & y2 = y4\n return ((isEqual(vector1.from, vector2.from) && isEqual(vector1.to, vector2.to)));\n};\n\n// this function is implemented in configure as well\nexport const sortedAnswers = answers => Object.keys(answers || {}).sort().reduce((result, key) => {\n if (key !== 'correctAnswer') {\n result[key] = answers[key];\n }\n\n return result;\n}, {});\n\nconst returnLineEquationCoefficients = line => {\n const xA = line.from.x;\n const yA = line.from.y;\n const xB = line.to.x;\n const yB = line.to.y;\n\n return {\n a: yB - yA,\n b: xA - xB,\n c: (xB * yA) - (xA * yB)\n };\n};\n\nconst getSignificantDecimals = number => Math.round(number * 10000) / 10000;\n\nexport const equalLine = (line1, line2) => {\n // line equation: ax + by + c = 0\n // 2 lines are equal if a1/a2 = b1/b2 = c1/c2, where a, b, c are the coefficients in line equation\n\n // line equation knowing 2 points: (y - yA) / (yB - yA) = (x - xA) / (xB - xA)\n // extending this equation, we get: x * (yB - yA) + y * (xA - xB) + (xB * yA - xA * yB) = 0\n // where a = yB - yA; b = xA - xB; c = xB * yA - xA * yB\n\n const { a: a1, b: b1, c: c1 } = returnLineEquationCoefficients(line1);\n const { a: a2, b: b2, c: c2 } = returnLineEquationCoefficients(line2);\n\n const proportions = [];\n\n if (a2 !== 0) {\n proportions.push(getSignificantDecimals((a1 / a2)));\n } else if (a1 !== a2) {\n return false;\n }\n\n if (b2 !== 0) {\n proportions.push(getSignificantDecimals((b1 / b2)));\n } else if (b1 !== b2) {\n return false;\n }\n\n if (c2 !== 0) {\n proportions.push(getSignificantDecimals(c1 / c2));\n } else if (c1 !== c2) {\n return false;\n }\n\n return lodash.uniq(proportions).length === 1;\n\n // (y2 - y1)/(x2 - x1) = (y4 - y3)/(x4 - x3);\n // return ((Math.abs((line1.to.y - line1.from.y) / (line1.to.x - line1.from.x))) === (Math.abs((line2.to.y - line2.from.y) / (line2.to.x - line2.from.x))));\n};\n\nexport const equalRay = (ray1, ray2) => {\n // slope: m = (y2-y1)/(x2-x1)\n // slope & x1 = x3 & y1 = y3 & angle between (x1, y1) (x2, y2) is same as angle between (x3, y3) (x4, y4)\n const mRay1 = (ray1.to.y - ray1.from.y) / (ray1.to.x - ray1.from.x);\n const mRay2 = (ray2.to.y - ray2.from.y) / (ray2.to.x - ray2.from.x);\n const angleRay1 = Math.atan2(ray1.to.y - ray1.from.y, ray1.to.x - ray1.from.x) * 180 / Math.PI;\n const angleRay2 = Math.atan2(ray2.to.y - ray2.from.y, ray2.to.x - ray2.from.x) * 180 / Math.PI;\n\n return mRay1 === mRay2 && ray1.from.x === ray2.from.x && ray1.from.y === ray2.from.y && angleRay1 === angleRay2;\n};\n\nexport const constructSegmentsFromPoints = points => {\n // takes the list of points that represent a polygon and transforms it into a list of segments; eg.:\n // points: A, B, C, D => segments: AB, BC, CD, DA\n return (points || []).map((point, index) => ({ from: point, to: points[(index + 1) % points.length] }));\n};\n\nexport const removeDuplicateSegments = segments => {\n segments = segments || [];\n // removes segments that are duplicates; eg. These segments are the same, so one will be removed:\n // segment1: from: { x: 1, y: 1 }, to: { x: 2, y: 1 }\n // segment2: from: { x: 2, y: 1 }, to: { x: 1, y: 1 }\n return uniqWith(segments, (s1, s2) => equalSegment(s1, s2));\n};\n\nexport const removeInvalidSegments = segments => {\n segments = segments || [];\n // removes segments that start in a point and end in the same point (eg.: from: { x: 1, y: 1 }, to: { x: 1, y: 1 })\n\n return segments.filter(segment => !isEqual(segment.from, segment.to));\n};\n\nexport const equalPolygon = (poly1, poly2) => {\n const { points: points1 } = poly1;\n const { points: points2 } = poly2;\n\n // generate segments\n const segments1 = constructSegmentsFromPoints(points1);\n const segments2 = constructSegmentsFromPoints(points2);\n\n const segments1NoDuplicates = removeDuplicateSegments(removeInvalidSegments(segments1));\n const segments2NoDuplicates = removeDuplicateSegments(removeInvalidSegments(segments2));\n\n const differentSegments1 = differenceWith(segments1NoDuplicates, segments2NoDuplicates, equalSegment);\n const differentSegments2 = differenceWith(segments2NoDuplicates, segments1NoDuplicates, equalSegment);\n\n return (!differentSegments1 || !differentSegments1.length) && (!differentSegments2 || !differentSegments2.length);\n};\n\nexport const equalCircle = (c1, c2) => {\n const equalRootAndEdge = isEqual(c2.edge, c1.edge) && isEqual(c2.root, c1.root);\n\n // if both edge and root are the same, it means the shapes are exactly the same\n if (equalRootAndEdge) return true;\n\n const rC1 = Math.sqrt(((c1.edge.x - c1.root.x) ** 2) + ((c1.edge.y - c1.root.y) ** 2));\n const rC2 = Math.sqrt(((c2.edge.x - c2.root.x) ** 2) + ((c2.edge.y - c2.root.y) ** 2));\n\n // if both root and radius are the same, it means the shapes are equal\n return isEqual(c2.root, c1.root) && isEqual(rC1, rC2);\n};\n\nexport const equalSine = (sine1, sine2) => {\n const getPoints = ({ root, edge }) => {\n const { amplitude, freq } = getAmplitudeAndFreq(root, edge);\n // the height of the sine wave\n const tY = Math.abs(root.y - edge.y) * 2;\n // the distance on x axis between edge and root\n const tXRoot = Math.abs(root.x - edge.x);\n // the distance on x axis between 2 edges for sine wave (min & max)\n const tX = tXRoot * 2;\n // the first edge placed east side of root\n let edgeAboveZeroX = edge.x;\n let edgeAboveZeroY = edge.y;\n\n // if edge less then 0, find out the appropriate edge placed east side of zero (0)\n while (edgeAboveZeroX < 0 && tX !== 0) {\n edgeAboveZeroX = edgeAboveZeroX + tX;\n edgeAboveZeroY = edgeAboveZeroY < root.y ? edgeAboveZeroY + tY : edgeAboveZeroY - tY;\n }\n\n // if edge more then 0, find out the appropriate edge placed east side of zero (0)\n while (edgeAboveZeroX - tX > 0 && tX !== 0) {\n edgeAboveZeroX = edgeAboveZeroX - tX;\n edgeAboveZeroY = edgeAboveZeroY < root.y ? edgeAboveZeroY + tY : edgeAboveZeroY - tY;\n }\n\n return {\n amplitude: getSignificantDecimals(amplitude),\n freq: getSignificantDecimals(freq),\n min: getSignificantDecimals(edge.y < root.y ? edge.y : edge.y - tY),\n max: getSignificantDecimals(edge.y < root.y ? edge.y + tY : edge.y),\n edgeAboveZeroX: getSignificantDecimals(edgeAboveZeroX),\n edgeAboveZeroY: getSignificantDecimals(edgeAboveZeroY)\n };\n };\n\n const studentAnswerBpY = getPoints(sine1);\n const correctAnswerBpY = getPoints(sine2);\n\n const {\n amplitude: amplitude1,\n freq: freq1,\n min: min1,\n max: max1,\n edgeAboveZeroX: edgeAboveZeroX1,\n edgeAboveZeroY: edgeAboveZeroY1\n } = studentAnswerBpY;\n const {\n amplitude: amplitude2,\n freq: freq2,\n min: min2,\n max: max2,\n edgeAboveZeroX: edgeAboveZeroX2,\n edgeAboveZeroY: edgeAboveZeroY2\n } = correctAnswerBpY;\n\n return (Math.abs(amplitude1) === Math.abs(amplitude2) &&\n Math.abs(freq1) === Math.abs(freq2) &&\n min1 === min2 && max1 === max2 &&\n edgeAboveZeroX1 === edgeAboveZeroX2 &&\n edgeAboveZeroY1 === edgeAboveZeroY2);\n // rootDiff1 === rootDiff2);\n};\n\nexport const equalParabola = (p1, p2) => {\n const { edge: edgeP1, root: rootP1 } = p1;\n const { edge: edgeP2, root: rootP2 } = p2;\n const p1edge = edgeP1 || { ...rootP1 };\n const p2edge = edgeP2 || { ...rootP2 };\n\n const p1mirrorEdge = { x: rootP1.x - (p1edge.x - rootP1.x), y: p1edge.y };\n const p2mirrorEdge = { x: rootP2.x - (p2edge.x - rootP2.x), y: p2edge.y };\n\n const { a: a1, b: b1, c: c1 } = pointsToABC(rootP1, edgeP1, p1mirrorEdge);\n const { a: a2, b: b2, c: c2 } = pointsToABC(rootP2, edgeP2, p2mirrorEdge);\n\n // sometimes numbers have this form: 1.00000000002 because of calculations, we have to round them\n const round = number => Math.round(number * 10000) / 10000;\n\n return round(a1) === round(a2) && round(b1) === round(b2) && round(c1) === round(c2);\n};\n\nexport const equalMarks = {\n circle: (sessAnswer, mark) => equalCircle(sessAnswer, mark),\n line: (sessAnswer, mark) => equalLine(sessAnswer, mark),\n parabola: (sessAnswer, mark) => equalParabola(sessAnswer, mark),\n point: (sessAnswer, mark) => equalPoint(sessAnswer, mark),\n polygon: (sessAnswer, poly) => equalPolygon(sessAnswer, poly),\n ray: (sessAnswer, mark) => equalRay(sessAnswer, mark),\n segment: (sessAnswer, mark) => equalSegment(sessAnswer, mark),\n sine: (sessAnswer, mark) => equalSine(sessAnswer, mark),\n vector: (sessAnswer, mark) => equalVector(sessAnswer, mark),\n};\n"],"file":"utils.js"}
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["equalPoint","A","B","equalLabel","label","x","y","equalSegment","segment1","segment2","from","to","equalVector","vector1","vector2","sortedAnswers","answers","Object","keys","sort","reduce","result","key","returnLineEquationCoefficients","line","xA","yA","xB","yB","a","b","c","getSignificantDecimals","number","Math","round","equalLine","line1","line2","a1","b1","c1","a2","b2","c2","proportions","push","lodash","uniq","length","equalRay","ray1","ray2","mRay1","mRay2","angleRay1","atan2","PI","angleRay2","constructSegmentsFromPoints","points","map","point","index","removeDuplicateSegments","segments","s1","s2","removeInvalidSegments","filter","segment","equalPolygon","poly1","poly2","points1","points2","segments1","segments2","segments1NoDuplicates","segments2NoDuplicates","differentSegments1","differentSegments2","equalCircle","equalRootAndEdge","edge","root","rC1","sqrt","rC2","equalSine","sine1","sine2","getPoints","amplitude","freq","tY","abs","tXRoot","tX","edgeAboveZeroX","edgeAboveZeroY","min","max","studentAnswerBpY","correctAnswerBpY","amplitude1","freq1","min1","max1","edgeAboveZeroX1","edgeAboveZeroY1","amplitude2","freq2","min2","max2","edgeAboveZeroX2","edgeAboveZeroY2","equalParabola","p1","p2","edgeP1","rootP1","edgeP2","rootP2","p1edge","p2edge","p1mirrorEdge","p2mirrorEdge","equalMarks","circle","sessAnswer","mark","parabola","polygon","poly","ray","sine","vector"],"mappings":"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","sourcesContent":["import isEqual from 'lodash/isEqual';\nimport lodash from 'lodash';\nimport uniqWith from 'lodash/uniqWith';\nimport differenceWith from 'lodash/differenceWith';\nimport { getAmplitudeAndFreq, pointsToABC } from '@pie-lib/graphing-utils';\n\nexport const equalPoint = (A, B) => {\n // x1 = x2 & y1 = y2\n let equalLabel = true;\n\n if (A.label || B.label) {\n equalLabel = isEqual(A.label, B.label);\n }\n\n return isEqual(A.x, B.x) && isEqual(A.y, B.y) && equalLabel;\n};\n\nexport const equalSegment = (segment1, segment2) => {\n // A.from = B.from, A.to = B.to OR A.from = B.to, A.to = B.from\n // x1 = x3 & y1 = y3 & x2 = x4 & y2 = y4\n return (\n (isEqual(segment1.from, segment2.from) && isEqual(segment1.to, segment2.to)) ||\n (isEqual(segment1.to, segment2.from) && isEqual(segment1.from, segment2.to))\n );\n};\n\nexport const equalVector = (vector1, vector2) => {\n // A.from = B.from, A.to = B.to;\n // x1 = x3 & y1 = y3 & x2 = x4 & y2 = y4\n return isEqual(vector1.from, vector2.from) && isEqual(vector1.to, vector2.to);\n};\n\n// this function is implemented in configure as well\nexport const sortedAnswers = (answers) =>\n Object.keys(answers || {})\n .sort()\n .reduce((result, key) => {\n if (key !== 'correctAnswer') {\n result[key] = answers[key];\n }\n\n return result;\n }, {});\n\nconst returnLineEquationCoefficients = (line) => {\n const xA = line.from.x;\n const yA = line.from.y;\n const xB = line.to.x;\n const yB = line.to.y;\n\n return {\n a: yB - yA,\n b: xA - xB,\n c: xB * yA - xA * yB,\n };\n};\n\nconst getSignificantDecimals = (number) => Math.round(number * 10000) / 10000;\n\nexport const equalLine = (line1, line2) => {\n // line equation: ax + by + c = 0\n // 2 lines are equal if a1/a2 = b1/b2 = c1/c2, where a, b, c are the coefficients in line equation\n\n // line equation knowing 2 points: (y - yA) / (yB - yA) = (x - xA) / (xB - xA)\n // extending this equation, we get: x * (yB - yA) + y * (xA - xB) + (xB * yA - xA * yB) = 0\n // where a = yB - yA; b = xA - xB; c = xB * yA - xA * yB\n\n const { a: a1, b: b1, c: c1 } = returnLineEquationCoefficients(line1);\n const { a: a2, b: b2, c: c2 } = returnLineEquationCoefficients(line2);\n\n const proportions = [];\n\n if (a2 !== 0) {\n proportions.push(getSignificantDecimals(a1 / a2));\n } else if (a1 !== a2) {\n return false;\n }\n\n if (b2 !== 0) {\n proportions.push(getSignificantDecimals(b1 / b2));\n } else if (b1 !== b2) {\n return false;\n }\n\n if (c2 !== 0) {\n proportions.push(getSignificantDecimals(c1 / c2));\n } else if (c1 !== c2) {\n return false;\n }\n\n return lodash.uniq(proportions).length === 1;\n\n // (y2 - y1)/(x2 - x1) = (y4 - y3)/(x4 - x3);\n // return ((Math.abs((line1.to.y - line1.from.y) / (line1.to.x - line1.from.x))) === (Math.abs((line2.to.y - line2.from.y) / (line2.to.x - line2.from.x))));\n};\n\nexport const equalRay = (ray1, ray2) => {\n // slope: m = (y2-y1)/(x2-x1)\n // slope & x1 = x3 & y1 = y3 & angle between (x1, y1) (x2, y2) is same as angle between (x3, y3) (x4, y4)\n const mRay1 = (ray1.to.y - ray1.from.y) / (ray1.to.x - ray1.from.x);\n const mRay2 = (ray2.to.y - ray2.from.y) / (ray2.to.x - ray2.from.x);\n const angleRay1 = (Math.atan2(ray1.to.y - ray1.from.y, ray1.to.x - ray1.from.x) * 180) / Math.PI;\n const angleRay2 = (Math.atan2(ray2.to.y - ray2.from.y, ray2.to.x - ray2.from.x) * 180) / Math.PI;\n\n return mRay1 === mRay2 && ray1.from.x === ray2.from.x && ray1.from.y === ray2.from.y && angleRay1 === angleRay2;\n};\n\nexport const constructSegmentsFromPoints = (points) => {\n // takes the list of points that represent a polygon and transforms it into a list of segments; eg.:\n // points: A, B, C, D => segments: AB, BC, CD, DA\n return (points || []).map((point, index) => ({ from: point, to: points[(index + 1) % points.length] }));\n};\n\nexport const removeDuplicateSegments = (segments) => {\n segments = segments || [];\n // removes segments that are duplicates; eg. These segments are the same, so one will be removed:\n // segment1: from: { x: 1, y: 1 }, to: { x: 2, y: 1 }\n // segment2: from: { x: 2, y: 1 }, to: { x: 1, y: 1 }\n return uniqWith(segments, (s1, s2) => equalSegment(s1, s2));\n};\n\nexport const removeInvalidSegments = (segments) => {\n segments = segments || [];\n // removes segments that start in a point and end in the same point (eg.: from: { x: 1, y: 1 }, to: { x: 1, y: 1 })\n\n return segments.filter((segment) => !isEqual(segment.from, segment.to));\n};\n\nexport const equalPolygon = (poly1, poly2) => {\n const { points: points1 } = poly1;\n const { points: points2 } = poly2;\n\n // generate segments\n const segments1 = constructSegmentsFromPoints(points1);\n const segments2 = constructSegmentsFromPoints(points2);\n\n const segments1NoDuplicates = removeDuplicateSegments(removeInvalidSegments(segments1));\n const segments2NoDuplicates = removeDuplicateSegments(removeInvalidSegments(segments2));\n\n const differentSegments1 = differenceWith(segments1NoDuplicates, segments2NoDuplicates, equalSegment);\n const differentSegments2 = differenceWith(segments2NoDuplicates, segments1NoDuplicates, equalSegment);\n\n return (!differentSegments1 || !differentSegments1.length) && (!differentSegments2 || !differentSegments2.length);\n};\n\nexport const equalCircle = (c1, c2) => {\n const equalRootAndEdge = isEqual(c2.edge, c1.edge) && isEqual(c2.root, c1.root);\n\n // if both edge and root are the same, it means the shapes are exactly the same\n if (equalRootAndEdge) return true;\n\n const rC1 = Math.sqrt((c1.edge.x - c1.root.x) ** 2 + (c1.edge.y - c1.root.y) ** 2);\n const rC2 = Math.sqrt((c2.edge.x - c2.root.x) ** 2 + (c2.edge.y - c2.root.y) ** 2);\n\n // if both root and radius are the same, it means the shapes are equal\n return isEqual(c2.root, c1.root) && isEqual(rC1, rC2);\n};\n\nexport const equalSine = (sine1, sine2) => {\n const getPoints = ({ root, edge }) => {\n const { amplitude, freq } = getAmplitudeAndFreq(root, edge);\n // the height of the sine wave\n const tY = Math.abs(root.y - edge.y) * 2;\n // the distance on x axis between edge and root\n const tXRoot = Math.abs(root.x - edge.x);\n // the distance on x axis between 2 edges for sine wave (min & max)\n const tX = tXRoot * 2;\n // the first edge placed east side of root\n let edgeAboveZeroX = edge.x;\n let edgeAboveZeroY = edge.y;\n\n // if edge less then 0, find out the appropriate edge placed east side of zero (0)\n while (edgeAboveZeroX < 0 && tX !== 0) {\n edgeAboveZeroX = edgeAboveZeroX + tX;\n edgeAboveZeroY = edgeAboveZeroY < root.y ? edgeAboveZeroY + tY : edgeAboveZeroY - tY;\n }\n\n // if edge more then 0, find out the appropriate edge placed east side of zero (0)\n while (edgeAboveZeroX - tX > 0 && tX !== 0) {\n edgeAboveZeroX = edgeAboveZeroX - tX;\n edgeAboveZeroY = edgeAboveZeroY < root.y ? edgeAboveZeroY + tY : edgeAboveZeroY - tY;\n }\n\n return {\n amplitude: getSignificantDecimals(amplitude),\n freq: getSignificantDecimals(freq),\n min: getSignificantDecimals(edge.y < root.y ? edge.y : edge.y - tY),\n max: getSignificantDecimals(edge.y < root.y ? edge.y + tY : edge.y),\n edgeAboveZeroX: getSignificantDecimals(edgeAboveZeroX),\n edgeAboveZeroY: getSignificantDecimals(edgeAboveZeroY),\n };\n };\n\n const studentAnswerBpY = getPoints(sine1);\n const correctAnswerBpY = getPoints(sine2);\n\n const {\n amplitude: amplitude1,\n freq: freq1,\n min: min1,\n max: max1,\n edgeAboveZeroX: edgeAboveZeroX1,\n edgeAboveZeroY: edgeAboveZeroY1,\n } = studentAnswerBpY;\n const {\n amplitude: amplitude2,\n freq: freq2,\n min: min2,\n max: max2,\n edgeAboveZeroX: edgeAboveZeroX2,\n edgeAboveZeroY: edgeAboveZeroY2,\n } = correctAnswerBpY;\n\n return (\n Math.abs(amplitude1) === Math.abs(amplitude2) &&\n Math.abs(freq1) === Math.abs(freq2) &&\n min1 === min2 &&\n max1 === max2 &&\n edgeAboveZeroX1 === edgeAboveZeroX2 &&\n edgeAboveZeroY1 === edgeAboveZeroY2\n );\n // rootDiff1 === rootDiff2);\n};\n\nexport const equalParabola = (p1, p2) => {\n const { edge: edgeP1, root: rootP1 } = p1;\n const { edge: edgeP2, root: rootP2 } = p2;\n const p1edge = edgeP1 || { ...rootP1 };\n const p2edge = edgeP2 || { ...rootP2 };\n\n const p1mirrorEdge = { x: rootP1.x - (p1edge.x - rootP1.x), y: p1edge.y };\n const p2mirrorEdge = { x: rootP2.x - (p2edge.x - rootP2.x), y: p2edge.y };\n\n const { a: a1, b: b1, c: c1 } = pointsToABC(rootP1, edgeP1, p1mirrorEdge);\n const { a: a2, b: b2, c: c2 } = pointsToABC(rootP2, edgeP2, p2mirrorEdge);\n\n // sometimes numbers have this form: 1.00000000002 because of calculations, we have to round them\n const round = (number) => Math.round(number * 10000) / 10000;\n\n return round(a1) === round(a2) && round(b1) === round(b2) && round(c1) === round(c2);\n};\n\nexport const equalMarks = {\n circle: (sessAnswer, mark) => equalCircle(sessAnswer, mark),\n line: (sessAnswer, mark) => equalLine(sessAnswer, mark),\n parabola: (sessAnswer, mark) => equalParabola(sessAnswer, mark),\n point: (sessAnswer, mark) => equalPoint(sessAnswer, mark),\n polygon: (sessAnswer, poly) => equalPolygon(sessAnswer, poly),\n ray: (sessAnswer, mark) => equalRay(sessAnswer, mark),\n segment: (sessAnswer, mark) => equalSegment(sessAnswer, mark),\n sine: (sessAnswer, mark) => equalSine(sessAnswer, mark),\n vector: (sessAnswer, mark) => equalVector(sessAnswer, mark),\n};\n"],"file":"utils.js"}
|
package/controller/package.json
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
"test": "./node_modules/.bin/jest"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@pie-lib/controller-utils": "^0.2.
|
|
13
|
-
"@pie-lib/feedback": "^0.4.
|
|
14
|
-
"@pie-lib/graphing-utils": "^1.1.
|
|
12
|
+
"@pie-lib/controller-utils": "^0.2.27",
|
|
13
|
+
"@pie-lib/feedback": "^0.4.28",
|
|
14
|
+
"@pie-lib/graphing-utils": "^1.1.21",
|
|
15
15
|
"debug": "^4.1.1"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
package/docs/demo/config.js
CHANGED
package/docs/demo/generate.js
CHANGED
|
@@ -83,33 +83,37 @@ exports.model = (id, element) => ({
|
|
|
83
83
|
answers: {
|
|
84
84
|
correctAnswer: {
|
|
85
85
|
name: 'Correct Answer',
|
|
86
|
-
marks: [
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
marks: [
|
|
87
|
+
{
|
|
88
|
+
type: 'point',
|
|
89
|
+
x: 0,
|
|
90
|
+
y: 0,
|
|
91
|
+
},
|
|
92
|
+
],
|
|
91
93
|
},
|
|
92
94
|
alternate1: {
|
|
93
95
|
name: 'Alternate 1',
|
|
94
|
-
marks: [
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
marks: [
|
|
97
|
+
{
|
|
98
|
+
type: 'segment',
|
|
99
|
+
from: { x: 0, y: 0 },
|
|
100
|
+
to: { x: 1, y: 1 },
|
|
101
|
+
},
|
|
99
102
|
{
|
|
100
103
|
type: 'point',
|
|
101
104
|
x: 3,
|
|
102
105
|
y: 3,
|
|
103
106
|
label: 'Point',
|
|
104
|
-
showLabel: true
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
+
showLabel: true,
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
},
|
|
107
111
|
},
|
|
108
112
|
arrows: {
|
|
109
113
|
left: true,
|
|
110
114
|
right: true,
|
|
111
115
|
up: true,
|
|
112
|
-
down: true
|
|
116
|
+
down: true,
|
|
113
117
|
},
|
|
114
118
|
backgroundMarks: [
|
|
115
119
|
{
|
|
@@ -117,8 +121,8 @@ exports.model = (id, element) => ({
|
|
|
117
121
|
x: 2,
|
|
118
122
|
y: 2,
|
|
119
123
|
label: 'Point',
|
|
120
|
-
showLabel: true
|
|
121
|
-
}
|
|
124
|
+
showLabel: true,
|
|
125
|
+
},
|
|
122
126
|
],
|
|
123
127
|
domain: {
|
|
124
128
|
min: -10,
|
|
@@ -126,12 +130,12 @@ exports.model = (id, element) => ({
|
|
|
126
130
|
padding: 0,
|
|
127
131
|
step: 1,
|
|
128
132
|
labelStep: 1,
|
|
129
|
-
axisLabel: 'x'
|
|
133
|
+
axisLabel: 'x',
|
|
130
134
|
},
|
|
131
135
|
defaultTool: 'point',
|
|
132
136
|
graph: {
|
|
133
137
|
width: 480,
|
|
134
|
-
height: 480
|
|
138
|
+
height: 480,
|
|
135
139
|
},
|
|
136
140
|
coordinatesOnHover: false,
|
|
137
141
|
labels: { top: 'top', left: 'left', bottom: 'bottom', right: 'right' },
|
|
@@ -144,9 +148,9 @@ exports.model = (id, element) => ({
|
|
|
144
148
|
padding: 0,
|
|
145
149
|
step: 1,
|
|
146
150
|
labelStep: 1,
|
|
147
|
-
axisLabel: 'y'
|
|
151
|
+
axisLabel: 'y',
|
|
148
152
|
},
|
|
149
153
|
rationale: 'Rationale goes here',
|
|
150
154
|
title: 'Graph title',
|
|
151
|
-
rubricEnabled: false
|
|
155
|
+
rubricEnabled: false,
|
|
152
156
|
});
|
package/docs/pie-schema.json.md
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["Graphing","answer","Array","isArray","length","_session","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","m","_model","s","el","React","createElement","Main","model","session","onAnswersChange","changeAnswers","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;IAIqBA,Q;;;;;AACnB,sBAAc;AAAA;;AAAA;AACZ;AADY,mGAsBD,
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["Graphing","answer","Array","isArray","length","_session","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","m","_model","s","el","React","createElement","Main","model","session","onAnswersChange","changeAnswers","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;IAIqBA,Q;;;;;AACnB,sBAAc;AAAA;;AAAA;AACZ;AADY,mGAsBD,UAACC,MAAD;AAAA,aAAYC,KAAK,CAACC,OAAN,CAAcF,MAAd,KAAyBA,MAAM,CAACG,MAAP,GAAgB,CAArD;AAAA,KAtBC;AAAA,sGAwBE,UAACH,MAAD,EAAY;AAC1B,YAAKI,QAAL,CAAcJ,MAAd,GAAuB,iCAAqBA,MAArB,CAAvB;;AAEA,YAAKK,aAAL,CAAmB,IAAIC,oCAAJ,CAAwB,MAAKC,OAAL,CAAaC,WAAb,EAAxB,EAAoD,MAAKC,UAAL,CAAgB,MAAKL,QAAL,CAAcJ,MAA9B,CAApD,CAAnB;;AAEA,YAAKU,OAAL;AACD,KA9Ba;AAAA;AAEb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;;AACA,WAAKD,OAAL;AACD;;;SAOD,eAAc;AACZ,aAAO,KAAKN,QAAZ;AACD,K;SAPD,aAAYS,CAAZ,EAAe;AACb,WAAKT,QAAL,GAAgBS,CAAhB;;AACA,WAAKH,OAAL;AACD;;;WAMD,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAYD,mBAAU;AAAA;;AACR,UAAI,CAAC,KAAKE,MAAN,IAAgB,CAAC,KAAKR,QAA1B,EAAoC;AAClC;AACD;;AAED,UAAMU,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,QAAAA,KAAK,EAAE,KAAKN,MADuB;AAEnCO,QAAAA,OAAO,EAAE,KAAKf,QAFqB;AAGnCgB,QAAAA,eAAe,EAAE,KAAKC;AAHa,OAA1B,CAAX;;AAMAC,2BAASC,MAAT,CAAgBT,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,uCAAW,MAAX;AACD,OAFD;AAGD;;;kDA/CmCU,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nimport { removeInvalidAnswers } from './utils';\nimport Main from './main';\n\nexport { Main as Component };\n\nexport default class Graphing extends HTMLElement {\n constructor() {\n super();\n }\n\n set model(m) {\n this._model = m;\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n connectedCallback() {\n this._render();\n }\n\n isComplete = (answer) => Array.isArray(answer) && answer.length > 0;\n\n changeAnswers = (answer) => {\n this._session.answer = removeInvalidAnswers(answer);\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));\n\n this._render();\n };\n\n _render() {\n if (!this._model || !this._session) {\n return;\n }\n\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onAnswersChange: this.changeAnswers,\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n}\n"],"file":"index.js"}
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["Main","showingCorrect","setState","props","model","classes","onAnswersChange","session","state","answer","answersCorrected","arrows","backgroundMarks","coordinatesOnHover","correctResponse","defaultTool","disabled","domain","labels","labelsEnabled","prompt","range","rationale","size","showToggle","title","titleEnabled","teacherInstructions","toolbarTools","marks","mainContainer","toggleCorrect","includeArrows","map","i","correctness","hidden","visible","React","Component","PropTypes","object","isRequired","func","styles","theme","padding","spacing","unit","color","text","backgroundColor","background"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,I;;;;;;;;;;;;;;;8FAYH;AAAEC,MAAAA,cAAc,EAAE;AAAlB,K;sGAEQ,
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["Main","showingCorrect","setState","props","model","classes","onAnswersChange","session","state","answer","answersCorrected","arrows","backgroundMarks","coordinatesOnHover","correctResponse","defaultTool","disabled","domain","labels","labelsEnabled","prompt","range","rationale","size","showToggle","title","titleEnabled","teacherInstructions","toolbarTools","marks","mainContainer","toggleCorrect","includeArrows","map","i","correctness","hidden","visible","React","Component","PropTypes","object","isRequired","func","styles","theme","padding","spacing","unit","color","text","backgroundColor","background"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer } from '@pie-lib/graphing';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n session: PropTypes.object.isRequired,\n onAnswersChange: PropTypes.func,\n };\n\n static defaultProps = {\n classes: {},\n };\n\n state = { showingCorrect: false };\n\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n render() {\n const { model, classes, onAnswersChange, session } = this.props;\n const { showingCorrect } = this.state;\n const { answer } = session || {};\n const {\n answersCorrected,\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n correctResponse,\n defaultTool,\n disabled,\n domain,\n labels,\n labelsEnabled,\n prompt,\n range,\n rationale,\n size,\n showToggle,\n title,\n titleEnabled,\n teacherInstructions,\n toolbarTools,\n } = model || {};\n const marks = answersCorrected || answer || [];\n\n return (\n <div className={classes.mainContainer}>\n <CorrectAnswerToggle show={showToggle} toggled={showingCorrect} onToggle={this.toggleCorrect} />\n\n {showingCorrect && showToggle && (\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n disabled={true}\n domain={domain}\n labels={labels}\n marks={correctResponse.map((i) => ({ ...i, correctness: 'correct' }))}\n onChangeMarks={onAnswersChange}\n range={range}\n size={size}\n title={title}\n toolbarTools={toolbarTools}\n />\n )}\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <React.Fragment>\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n <br />\n </React.Fragment>\n )}\n\n {prompt && (\n <React.Fragment>\n <PreviewPrompt className=\"prompt\" prompt={prompt} />\n <br />\n </React.Fragment>\n )}\n\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n defaultTool={defaultTool}\n disabled={disabled}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n labels={labels}\n marks={marks}\n onChangeMarks={onAnswersChange}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={size}\n title={title}\n toolbarTools={toolbarTools}\n />\n\n <br />\n\n {rationale && hasText(rationale) && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.background(),\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["completePoint","point","Number","isFinite","x","y","completeFromTo","item","completeMark","from","to","completeRootEdge","edge","root","completePoints","points","length","filter","line","ray","segment","vector","circle","parabola","sine","polygon","removeInvalidAnswers","answers","type","answer"],"mappings":";;;;;;;;;;;;;AAAA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["completePoint","point","Number","isFinite","x","y","completeFromTo","item","completeMark","from","to","completeRootEdge","edge","root","completePoints","points","length","filter","line","ray","segment","vector","circle","parabola","sine","polygon","removeInvalidAnswers","answers","type","answer"],"mappings":";;;;;;;;;;;;;AAAA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;AAAA,SAAWA,KAAK,IAAIC,MAAM,CAACC,QAAP,CAAgBF,KAAK,CAACG,CAAtB,CAAT,IAAqCF,MAAM,CAACC,QAAP,CAAgBF,KAAK,CAACI,CAAtB,CAAhD;AAAA,CAAtB;;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,IAAD;AAAA,SAAUA,IAAI,IAAIC,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACE,IAAxB,CAAR,IAAyCD,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACG,EAAxB,CAAnD;AAAA,CAAvB;;AACA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,IAAD;AAAA,SAAUA,IAAI,IAAIC,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACK,IAAxB,CAAR,IAAyCJ,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACM,IAAxB,CAAnD;AAAA,CAAzB;;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACP,IAAD;AAAA,SACrBA,IAAI,IACJA,IAAI,CAACQ,MADL,IAEAR,IAAI,CAACQ,MAAL,CAAYC,MAFZ,IAGA,CAACT,IAAI,CAACQ,MAAL,CAAYE,MAAZ,CAAmB,UAAChB,KAAD;AAAA,WAAWD,aAAa,CAACC,KAAD,CAAxB;AAAA,GAAnB,KAAuD,EAAxD,EAA4De,MAA5D,KAAuET,IAAI,CAACQ,MAAL,CAAYC,MAJ9D;AAAA,CAAvB;;AAMA,IAAMR,YAAY,GAAG;AACnBP,EAAAA,KAAK,EAAED,aADY;AAEnBkB,EAAAA,IAAI,EAAEZ,cAFa;AAGnBa,EAAAA,GAAG,EAAEb,cAHc;AAInBc,EAAAA,OAAO,EAAEd,cAJU;AAKnBe,EAAAA,MAAM,EAAEf,cALW;AAMnBgB,EAAAA,MAAM,EAAEX,gBANW;AAOnBY,EAAAA,QAAQ,EAAEZ,gBAPS;AAQnBa,EAAAA,IAAI,EAAEb,gBARa;AASnBc,EAAAA,OAAO,EAAEX;AATU,CAArB;;AAYO,IAAMY,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,OAAD;AAAA,SAClCA,OAAO,GACH,CAACA,OAAO,IAAI,EAAZ,EAAgBV,MAAhB,CAAuB;AAAA,QAAGW,IAAH,QAAGA,IAAH;AAAA,QAAYC,MAAZ;AAAA,WAA0BrB,YAAY,CAACoB,IAAD,CAAZ,GAAqBpB,YAAY,CAACoB,IAAD,CAAZ,CAAmBC,MAAnB,CAArB,GAAkD,KAA5E;AAAA,GAAvB,CADG,GAEH,EAH8B;AAAA,CAA7B","sourcesContent":["const completePoint = (point) => point && Number.isFinite(point.x) && Number.isFinite(point.y);\nconst completeFromTo = (item) => item && completeMark.point(item.from) && completeMark.point(item.to);\nconst completeRootEdge = (item) => item && completeMark.point(item.edge) && completeMark.point(item.root);\nconst completePoints = (item) =>\n item &&\n item.points &&\n item.points.length &&\n (item.points.filter((point) => completePoint(point)) || []).length === item.points.length;\n\nconst completeMark = {\n point: completePoint,\n line: completeFromTo,\n ray: completeFromTo,\n segment: completeFromTo,\n vector: completeFromTo,\n circle: completeRootEdge,\n parabola: completeRootEdge,\n sine: completeRootEdge,\n polygon: completePoints,\n};\n\nexport const removeInvalidAnswers = (answers) =>\n answers\n ? (answers || []).filter(({ type, ...answer }) => (completeMark[type] ? completeMark[type](answer) : false))\n : [];\n"],"file":"utils.js"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "4.4.4-next.
|
|
7
|
+
"version": "4.4.4-next.54+689166a2c",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@material-ui/core": "^3.9.2",
|
|
15
15
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
16
|
-
"@pie-lib/correct-answer-toggle": "2.3.
|
|
17
|
-
"@pie-lib/graphing": "^2.11.
|
|
18
|
-
"@pie-lib/math-rendering": "^2.5.
|
|
19
|
-
"@pie-lib/render-ui": "^4.13.
|
|
16
|
+
"@pie-lib/correct-answer-toggle": "2.3.47",
|
|
17
|
+
"@pie-lib/graphing": "^2.11.5",
|
|
18
|
+
"@pie-lib/math-rendering": "^2.5.1",
|
|
19
|
+
"@pie-lib/render-ui": "^4.13.7",
|
|
20
20
|
"classnames": "^2.2.5",
|
|
21
21
|
"debug": "^4.1.1",
|
|
22
22
|
"react": "^16.8.1",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"author": "",
|
|
26
26
|
"license": "ISC",
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "689166a2c90339a7dbb1f82076236f15b3c15515",
|
|
28
28
|
"main": "lib/index.js",
|
|
29
29
|
"module": "src/index.js"
|
|
30
30
|
}
|