@pie-element/graphing 4.1.3 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,37 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [4.3.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing@4.2.1...@pie-element/graphing@4.3.0) (2022-08-16)
7
+
8
+
9
+ ### Features
10
+
11
+ * **graphing:** added pixel grid lines support PD-1719 ([d189bbf](https://github.com/pie-framework/pie-elements/commit/d189bbfa7e36fcc2f9a2aeb9dc6b8bb791e378f3))
12
+ * **graphing:** added support for default grid configurations PD-1678 ([4132ebf](https://github.com/pie-framework/pie-elements/commit/4132ebfa1d70da4bdbd35e1cd2ca204483bfa429))
13
+
14
+
15
+
16
+
17
+
18
+ ## [4.2.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing@4.2.0...@pie-element/graphing@4.2.1) (2022-08-08)
19
+
20
+ **Note:** Version bump only for package @pie-element/graphing
21
+
22
+
23
+
24
+
25
+
26
+ # [4.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing@4.1.3...@pie-element/graphing@4.2.0) (2022-08-02)
27
+
28
+
29
+ ### Features
30
+
31
+ * **graphing:** Added the ability to edit title and labels PD-1605 ([7aac4a0](https://github.com/pie-framework/pie-elements/commit/7aac4a0a2cdd06209912a9edbed6cd1d911c5773))
32
+
33
+
34
+
35
+
36
+
6
37
  ## [4.1.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing@4.1.2...@pie-element/graphing@4.1.3) (2022-07-22)
7
38
 
8
39
  **Note:** Version bump only for package @pie-element/graphing
@@ -3,6 +3,37 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [4.3.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing-configure@4.2.1...@pie-element/graphing-configure@4.3.0) (2022-08-16)
7
+
8
+
9
+ ### Features
10
+
11
+ * **graphing:** added pixel grid lines support PD-1719 ([d189bbf](https://github.com/pie-framework/pie-elements/commit/d189bbfa7e36fcc2f9a2aeb9dc6b8bb791e378f3))
12
+ * **graphing:** added support for default grid configurations PD-1678 ([4132ebf](https://github.com/pie-framework/pie-elements/commit/4132ebfa1d70da4bdbd35e1cd2ca204483bfa429))
13
+
14
+
15
+
16
+
17
+
18
+ ## [4.2.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing-configure@4.2.0...@pie-element/graphing-configure@4.2.1) (2022-08-08)
19
+
20
+ **Note:** Version bump only for package @pie-element/graphing-configure
21
+
22
+
23
+
24
+
25
+
26
+ # [4.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing-configure@4.1.3...@pie-element/graphing-configure@4.2.0) (2022-08-02)
27
+
28
+
29
+ ### Features
30
+
31
+ * **graphing:** Added the ability to edit title and labels PD-1605 ([7aac4a0](https://github.com/pie-framework/pie-elements/commit/7aac4a0a2cdd06209912a9edbed6cd1d911c5773))
32
+
33
+
34
+
35
+
36
+
6
37
  ## [4.1.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing-configure@4.1.2...@pie-element/graphing-configure@4.1.3) (2022-07-22)
7
38
 
8
39
  **Note:** Version bump only for package @pie-element/graphing-configure
@@ -181,6 +181,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
181
181
  availableTools = _ref3$availableTools === void 0 ? [] : _ref3$availableTools,
182
182
  _ref3$coordinatesOnHo = _ref3.coordinatesOnHover,
183
183
  coordinatesOnHover = _ref3$coordinatesOnHo === void 0 ? {} : _ref3$coordinatesOnHo,
184
+ _ref3$gridConfigurati = _ref3.gridConfigurations,
185
+ gridConfigurations = _ref3$gridConfigurati === void 0 ? [] : _ref3$gridConfigurati,
184
186
  _ref3$graphDimensions = _ref3.graphDimensions,
185
187
  graphDimensions = _ref3$graphDimensions === void 0 ? {} : _ref3$graphDimensions,
186
188
  _ref3$labels = _ref3.labels,
@@ -207,14 +209,22 @@ var Configure = /*#__PURE__*/function (_React$Component) {
207
209
  maxImageHeight = _ref3$maxImageHeight === void 0 ? {} : _ref3$maxImageHeight;
208
210
 
209
211
  var _ref4 = model || {},
210
- teacherInstructionsEnabled = _ref4.teacherInstructionsEnabled,
212
+ labelsEnabled = _ref4.labelsEnabled,
211
213
  promptEnabled = _ref4.promptEnabled,
212
214
  rationaleEnabled = _ref4.rationaleEnabled,
213
- spellCheckEnabled = _ref4.spellCheckEnabled;
215
+ spellCheckEnabled = _ref4.spellCheckEnabled,
216
+ teacherInstructionsEnabled = _ref4.teacherInstructionsEnabled,
217
+ titleEnabled = _ref4.titleEnabled;
214
218
 
215
219
  log('[render] model', model);
216
220
  var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
217
221
  var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
222
+ var labelsPlaceholders = {
223
+ top: labels.top,
224
+ right: labels.right,
225
+ bottom: labels.bottom,
226
+ left: labels.left
227
+ };
218
228
  return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
219
229
  settings: /*#__PURE__*/_react["default"].createElement(Panel, {
220
230
  model: model,
@@ -229,9 +239,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
229
239
  up: arrows.up,
230
240
  down: arrows.down
231
241
  }),
232
- 'title.enabled': title.settings && toggle(title.label, true),
242
+ titleEnabled: title.settings && toggle(title.label),
233
243
  padding: padding.settings && toggle(padding.label),
234
- labels: labels.settings && toggle(labels.label),
244
+ labelsEnabled: labels.settings && toggle(labels.label),
235
245
  coordinatesOnHover: coordinatesOnHover.settings && toggle(coordinatesOnHover.label)
236
246
  },
237
247
  Properties: {
@@ -289,8 +299,13 @@ var Configure = /*#__PURE__*/function (_React$Component) {
289
299
  })), /*#__PURE__*/_react["default"].createElement(_graphingConfig["default"], {
290
300
  authoring: authoring,
291
301
  availableTools: availableTools,
302
+ gridConfigurations: gridConfigurations,
292
303
  graphDimensions: graphDimensions,
304
+ labelsPlaceholders: labelsPlaceholders,
293
305
  model: model,
306
+ showLabels: labelsEnabled,
307
+ showTitle: titleEnabled,
308
+ titlePlaceholder: title.placeholder,
294
309
  onChange: this.props.onModelChanged
295
310
  }), /*#__PURE__*/_react["default"].createElement(_correctResponse["default"], {
296
311
  availableTools: availableTools,
@@ -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","authoring","coordinatesOnHover","graphDimensions","labels","padding","scoringType","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","defaultImageMaxWidth","defaultImageMaxHeight","label","Properties","studentInstructionsEnabled","onTeacherInstructionsChange","onPromptChange","onRationaleChange","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 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 } = this.props;\n const {\n arrows = {},\n authoring = {},\n availableTools = [],\n coordinatesOnHover = {},\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 } = configuration || {};\n const { teacherInstructionsEnabled, promptEnabled, rationaleEnabled, spellCheckEnabled } =\n model || {};\n\n log('[render] model', model);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\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 'title.enabled': title.settings && toggle(title.label, true),\n padding: padding.settings && toggle(padding.label),\n labels: 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 }\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 />\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 />\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 />\n </InputContainer>\n )}\n\n <GraphingConfig\n authoring={authoring}\n availableTools={availableTools}\n graphDimensions={graphDimensions}\n model={model}\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","authoring","coordinatesOnHover","gridConfigurations","graphDimensions","labels","padding","scoringType","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","labelsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","titleEnabled","defaultImageMaxWidth","defaultImageMaxHeight","labelsPlaceholders","top","bottom","label","Properties","studentInstructionsEnabled","onTeacherInstructionsChange","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 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 } = 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 } = configuration || {};\n const {\n labelsEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n titleEnabled\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 }\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 />\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 />\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 />\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"}
@@ -410,8 +410,10 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
410
410
  _ref7$graph = _ref7.graph,
411
411
  graph = _ref7$graph === void 0 ? {} : _ref7$graph,
412
412
  labels = _ref7.labels,
413
+ labelsEnabled = _ref7.labelsEnabled,
413
414
  range = _ref7.range,
414
415
  title = _ref7.title,
416
+ titleEnabled = _ref7.titleEnabled,
415
417
  toolbarTools = _ref7.toolbarTools;
416
418
 
417
419
  return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_core.Typography, {
@@ -455,6 +457,8 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
455
457
  },
456
458
  backgroundMarks: backgroundMarks,
457
459
  coordinatesOnHover: coordinatesOnHover,
460
+ disabledLabels: true,
461
+ disabledTitle: true,
458
462
  domain: domain,
459
463
  draggableTools: key === 'correctAnswer',
460
464
  labels: labels,
@@ -463,6 +467,8 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
463
467
  return _this2.changeMarks(key, newMarks);
464
468
  },
465
469
  range: range,
470
+ showLabels: labelsEnabled,
471
+ showTitle: titleEnabled,
466
472
  size: {
467
473
  width: graph.width,
468
474
  height: graph.height
@@ -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","range","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 range,\n title,\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 domain={domain}\n draggableTools={key === 'correctAnswer'}\n labels={labels}\n marks={marks}\n onChangeMarks={newMarks => this.changeMarks(key, newMarks)}\n range={range}\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 = ({ 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"}
@@ -32,6 +32,7 @@ var _default = {
32
32
  },
33
33
  includeAxes: true,
34
34
  labels: {},
35
+ labelsEnabled: true,
35
36
  padding: true,
36
37
  prompt: '',
37
38
  range: {
@@ -44,6 +45,7 @@ var _default = {
44
45
  rationale: '',
45
46
  standardGrid: false,
46
47
  title: '',
48
+ titleEnabled: true,
47
49
  toolbarTools: allTools,
48
50
  coordinatesOnHover: false,
49
51
  promptEnabled: true,
@@ -95,6 +97,197 @@ var _default = {
95
97
  label: 'down'
96
98
  }
97
99
  },
100
+ gridConfigurations: [{
101
+ label: '4-quadrant coordinate grid, -10 to 10',
102
+ arrows: {
103
+ left: true,
104
+ right: true,
105
+ up: true,
106
+ down: true
107
+ },
108
+ domain: {
109
+ min: -10,
110
+ max: 10,
111
+ step: 1,
112
+ padding: 0,
113
+ labelStep: 1,
114
+ axisLabel: '<i>x</i>'
115
+ },
116
+ graph: {
117
+ width: 480,
118
+ height: 480
119
+ },
120
+ includeAxes: true,
121
+ labels: {
122
+ top: '',
123
+ right: '',
124
+ bottom: '',
125
+ left: ''
126
+ },
127
+ padding: true,
128
+ range: {
129
+ min: -10,
130
+ max: 10,
131
+ step: 1,
132
+ padding: 0,
133
+ labelStep: 1,
134
+ axisLabel: '<i>y</i>'
135
+ },
136
+ standardGrid: true,
137
+ title: ''
138
+ }, {
139
+ label: '0 to 10 on both axes',
140
+ arrows: {
141
+ left: false,
142
+ right: true,
143
+ up: true,
144
+ down: false
145
+ },
146
+ domain: {
147
+ min: 0,
148
+ max: 10,
149
+ step: 1,
150
+ padding: 0,
151
+ labelStep: 1,
152
+ axisLabel: '<i>x</i>'
153
+ },
154
+ graph: {
155
+ width: 480,
156
+ height: 480
157
+ },
158
+ includeAxes: true,
159
+ labels: {
160
+ top: '',
161
+ right: '',
162
+ bottom: '',
163
+ left: ''
164
+ },
165
+ padding: true,
166
+ range: {
167
+ min: 0,
168
+ max: 10,
169
+ step: 1,
170
+ padding: 0,
171
+ labelStep: 1,
172
+ axisLabel: '<i>y</i>'
173
+ },
174
+ standardGrid: true,
175
+ title: ''
176
+ }, {
177
+ label: '0 to 20 on both axes',
178
+ arrows: {
179
+ left: false,
180
+ right: true,
181
+ up: true,
182
+ down: false
183
+ },
184
+ domain: {
185
+ min: 0,
186
+ max: 20,
187
+ step: 1,
188
+ padding: 0,
189
+ labelStep: 1,
190
+ axisLabel: '<i>x</i>'
191
+ },
192
+ graph: {
193
+ width: 480,
194
+ height: 480
195
+ },
196
+ includeAxes: true,
197
+ labels: {
198
+ top: '',
199
+ right: '',
200
+ bottom: '',
201
+ left: ''
202
+ },
203
+ padding: true,
204
+ range: {
205
+ min: 0,
206
+ max: 20,
207
+ step: 1,
208
+ padding: 0,
209
+ labelStep: 1,
210
+ axisLabel: '<i>y</i>'
211
+ },
212
+ standardGrid: true,
213
+ title: ''
214
+ }, {
215
+ label: 'Sample Data Graph',
216
+ arrows: {
217
+ left: false,
218
+ right: true,
219
+ up: true,
220
+ down: false
221
+ },
222
+ domain: {
223
+ min: 0,
224
+ max: 30,
225
+ step: 1,
226
+ padding: 0,
227
+ labelStep: 2,
228
+ axisLabel: '<i>t</i>'
229
+ },
230
+ graph: {
231
+ width: 480,
232
+ height: 480
233
+ },
234
+ includeAxes: true,
235
+ labels: {
236
+ top: '',
237
+ right: '',
238
+ bottom: 'Time (seconds)',
239
+ left: 'Distance (meters)'
240
+ },
241
+ padding: true,
242
+ range: {
243
+ min: 0,
244
+ max: 80,
245
+ step: 5,
246
+ padding: 0,
247
+ labelStep: 10,
248
+ axisLabel: '<i>d</i>'
249
+ },
250
+ standardGrid: false,
251
+ title: 'Distance as a function of time'
252
+ }, {
253
+ label: 'No Visible Axes',
254
+ arrows: {
255
+ left: false,
256
+ right: false,
257
+ up: false,
258
+ down: false
259
+ },
260
+ domain: {
261
+ min: 1,
262
+ max: 21,
263
+ step: 1,
264
+ padding: 0,
265
+ labelStep: 0,
266
+ axisLabel: ''
267
+ },
268
+ graph: {
269
+ width: 480,
270
+ height: 480
271
+ },
272
+ includeAxes: false,
273
+ labels: {
274
+ top: '',
275
+ right: '',
276
+ bottom: '',
277
+ left: ''
278
+ },
279
+ padding: true,
280
+ range: {
281
+ min: 1,
282
+ max: 21,
283
+ step: 1,
284
+ padding: 0,
285
+ labelStep: 0,
286
+ axisLabel: ''
287
+ },
288
+ standardGrid: false,
289
+ title: ''
290
+ }],
98
291
  graphDimensions: {
99
292
  settings: false,
100
293
  label: 'Graph Dimensions',
@@ -108,9 +301,13 @@ var _default = {
108
301
  label: 'Padding'
109
302
  },
110
303
  labels: {
111
- settings: false,
112
- label: 'Labels',
113
- enabled: true
304
+ settings: true,
305
+ label: 'Graph Labels',
306
+ enabled: true,
307
+ top: 'Click here to add a top label',
308
+ right: 'Click here to add a right label',
309
+ bottom: 'Click here to add a bottom label',
310
+ left: 'Click here to add a left label'
114
311
  },
115
312
  prompt: {
116
313
  settings: true,
@@ -133,9 +330,10 @@ var _default = {
133
330
  label: 'Teacher Instructions'
134
331
  },
135
332
  title: {
136
- settings: false,
333
+ settings: true,
137
334
  label: 'Graph Title',
138
- enabled: true
335
+ enabled: true,
336
+ placeholder: 'Click here to add a title for this graph'
139
337
  },
140
338
  availableTools: allTools,
141
339
  spellCheck: {