@pie-element/graphing 5.5.1-next.6 → 5.5.2-next.12

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,18 @@
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
+ ## [5.5.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing@5.5.0...@pie-element/graphing@5.5.1) (2024-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
12
+ * **graphing:** overwrite with an empty object for incomplete circles PD-3341 ([46ce4dc](https://github.com/pie-framework/pie-elements/commit/46ce4dce1e91784a5985fcf64544af33cefb9bb2))
13
+
14
+
15
+
16
+
17
+
6
18
  # [5.5.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing@5.4.3...@pie-element/graphing@5.5.0) (2024-03-04)
7
19
 
8
20
 
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.5.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing-configure@5.5.0...@pie-element/graphing-configure@5.5.1) (2024-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
12
+
13
+
14
+
15
+
16
+
6
17
  # [5.5.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing-configure@5.4.2...@pie-element/graphing-configure@5.5.0) (2024-03-04)
7
18
 
8
19
 
@@ -72,6 +72,11 @@ var styles = function styles(theme) {
72
72
  },
73
73
  description: {
74
74
  marginBottom: theme.spacing.unit * 2.5
75
+ },
76
+ errorText: {
77
+ fontSize: theme.typography.fontSize - 2,
78
+ color: theme.palette.error.main,
79
+ paddingTop: theme.spacing.unit
75
80
  }
76
81
  };
77
82
  };
@@ -238,6 +243,11 @@ var Configure = /*#__PURE__*/function (_React$Component) {
238
243
  teacherInstructionsEnabled = _ref4.teacherInstructionsEnabled,
239
244
  titleEnabled = _ref4.titleEnabled;
240
245
 
246
+ var _ref5 = errors || {},
247
+ promptError = _ref5.prompt,
248
+ rationaleError = _ref5.rationale,
249
+ teacherInstructionsError = _ref5.teacherInstructions;
250
+
241
251
  log('[render] model', model);
242
252
  var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
243
253
  var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
@@ -298,6 +308,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
298
308
  markup: model.teacherInstructions || '',
299
309
  onChange: this.onTeacherInstructionsChange,
300
310
  imageSupport: imageSupport,
311
+ error: teacherInstructionsError,
301
312
  nonEmpty: false,
302
313
  spellCheck: spellCheckEnabled,
303
314
  maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
@@ -309,7 +320,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
309
320
  language: 'special'
310
321
  }],
311
322
  mathMlOptions: mathMlOptions
312
- })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
323
+ }), teacherInstructionsError && /*#__PURE__*/_react["default"].createElement("div", {
324
+ className: classes.errorText
325
+ }, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
313
326
  label: prompt.label,
314
327
  className: classes.promptHolder
315
328
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
@@ -317,6 +330,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
317
330
  markup: model.prompt,
318
331
  onChange: this.onPromptChange,
319
332
  imageSupport: imageSupport,
333
+ error: promptError,
320
334
  nonEmpty: false,
321
335
  spellCheck: spellCheckEnabled,
322
336
  disableUnderline: true,
@@ -329,7 +343,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
329
343
  language: 'special'
330
344
  }],
331
345
  mathMlOptions: mathMlOptions
332
- })), /*#__PURE__*/_react["default"].createElement(_graphingConfig["default"], {
346
+ }), promptError && /*#__PURE__*/_react["default"].createElement("div", {
347
+ className: classes.errorText
348
+ }, promptError)), /*#__PURE__*/_react["default"].createElement(_graphingConfig["default"], {
333
349
  authoring: authoring,
334
350
  availableTools: availableTools,
335
351
  gridConfigurations: gridConfigurations,
@@ -356,6 +372,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
356
372
  markup: model.rationale || '',
357
373
  onChange: this.onRationaleChange,
358
374
  imageSupport: imageSupport,
375
+ error: rationaleError,
359
376
  spellCheck: spellCheckEnabled,
360
377
  maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
361
378
  maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
@@ -366,7 +383,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
366
383
  language: 'special'
367
384
  }],
368
385
  mathMlOptions: mathMlOptions
369
- })));
386
+ }), rationaleError && /*#__PURE__*/_react["default"].createElement("div", {
387
+ className: classes.errorText
388
+ }, rationaleError)));
370
389
  }
371
390
  }]);
372
391
  return Configure;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configure.jsx"],"names":["Panel","settings","toggle","radio","checkboxes","textField","dropdown","log","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","promptHolder","width","paddingTop","description","Configure","rationale","props","onModelChanged","model","prompt","teacherInstructions","configuration","availableTools","graphDimensions","arrows","showTitle","titleEnabled","showDimensions","dimensionsEnabled","left","right","up","down","toolbarTools","undefined","enabled","classes","onConfigurationChanged","imageSupport","uploadSoundSupport","authoring","coordinatesOnHover","contentDimensions","gridConfigurations","instruction","labels","padding","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","withRubric","language","languageChoices","mathMlOptions","errors","labelsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","defaultImageMaxWidth","defaultImageMaxHeight","labelsPlaceholders","top","bottom","panelItemType","label","options","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","onTeacherInstructionsChange","onPromptChange","placeholder","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/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@material-ui/core/Typography';\nimport {EditableHtml} from '@pie-lib/pie-toolbox/editable-html';\nimport GraphingConfig from './graphing-config';\nimport CorrectResponse from './correct-response';\nimport intersection from 'lodash/intersection';\n\nconst { Panel, toggle, radio, checkboxes, textField, dropdown } = 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 promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n description: {\n marginBottom: theme.spacing.unit * 2.5,\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, title, graphDimensions } = configuration || {};\n let { arrows, titleEnabled: showTitle, dimensionsEnabled: showDimensions } = 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 = { left: true, right: true, up: true, down: true };\n } else {\n arrows = { left: false, right: false, up: false, down: false };\n }\n }\n\n const toolbarTools = intersection(availableTools || [], model.toolbarTools || []);\n const titleEnabled = showTitle === undefined || showTitle === null ? title.enabled : showTitle;\n const dimensionsEnabled =\n showDimensions === undefined || showDimensions === null ? graphDimensions.enabled : showDimensions;\n\n onModelChanged && onModelChanged({ ...model, arrows, toolbarTools, titleEnabled, dimensionsEnabled });\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 contentDimensions = {},\n gridConfigurations = [],\n graphDimensions = {},\n instruction = {},\n labels = {},\n padding = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n title = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n language = {},\n languageChoices = {},\n mathMlOptions = {},\n } = configuration || {};\n const {\n errors = {},\n labelsEnabled,\n dimensionsEnabled,\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 const panelItemType = {\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 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n dimensionsEnabled: graphDimensions.settings && toggle(graphDimensions.label),\n coordinatesOnHover: coordinatesOnHover.settings && toggle(coordinatesOnHover.label),\n };\n\n const panelProperties = {\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 instruction: instruction.settings && textField(instruction.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelItemType,\n Properties: panelProperties,\n }}\n />\n }\n >\n <Typography component=\"div\" type=\"body1\" className={classes.description}>\n {instruction?.label || ''}\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 mathMlOptions={mathMlOptions}\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 mathMlOptions={mathMlOptions}\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 dimensionsEnabled={dimensionsEnabled}\n showTitle={titleEnabled}\n titlePlaceholder={title.placeholder}\n onChange={this.props.onModelChanged}\n mathMlOptions={mathMlOptions}\n />\n\n <CorrectResponse\n availableTools={availableTools}\n errors={errors}\n model={model}\n onChange={this.props.onModelChanged}\n mathMlOptions={mathMlOptions}\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 mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\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","textField","dropdown","log","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","promptHolder","width","paddingTop","description","errorText","typography","color","palette","error","main","Configure","rationale","props","onModelChanged","model","prompt","teacherInstructions","configuration","availableTools","graphDimensions","arrows","showTitle","titleEnabled","showDimensions","dimensionsEnabled","left","right","up","down","toolbarTools","undefined","enabled","classes","onConfigurationChanged","imageSupport","uploadSoundSupport","authoring","coordinatesOnHover","contentDimensions","gridConfigurations","instruction","labels","padding","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","withRubric","language","languageChoices","mathMlOptions","errors","labelsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","promptError","rationaleError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","labelsPlaceholders","top","bottom","panelItemType","label","options","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","onTeacherInstructionsChange","onPromptChange","placeholder","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/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@material-ui/core/Typography';\nimport {EditableHtml} from '@pie-lib/pie-toolbox/editable-html';\nimport GraphingConfig from './graphing-config';\nimport CorrectResponse from './correct-response';\nimport intersection from 'lodash/intersection';\n\nconst { Panel, toggle, radio, checkboxes, textField, dropdown } = 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 promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n description: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\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, title, graphDimensions } = configuration || {};\n let { arrows, titleEnabled: showTitle, dimensionsEnabled: showDimensions } = 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 = { left: true, right: true, up: true, down: true };\n } else {\n arrows = { left: false, right: false, up: false, down: false };\n }\n }\n\n const toolbarTools = intersection(availableTools || [], model.toolbarTools || []);\n const titleEnabled = showTitle === undefined || showTitle === null ? title.enabled : showTitle;\n const dimensionsEnabled =\n showDimensions === undefined || showDimensions === null ? graphDimensions.enabled : showDimensions;\n\n onModelChanged && onModelChanged({ ...model, arrows, toolbarTools, titleEnabled, dimensionsEnabled });\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 contentDimensions = {},\n gridConfigurations = [],\n graphDimensions = {},\n instruction = {},\n labels = {},\n padding = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n title = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n language = {},\n languageChoices = {},\n mathMlOptions = {},\n } = configuration || {};\n const {\n errors = {},\n labelsEnabled,\n dimensionsEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n titleEnabled,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\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 const panelItemType = {\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 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n dimensionsEnabled: graphDimensions.settings && toggle(graphDimensions.label),\n coordinatesOnHover: coordinatesOnHover.settings && toggle(coordinatesOnHover.label),\n };\n\n const panelProperties = {\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 instruction: instruction.settings && textField(instruction.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelItemType,\n Properties: panelProperties,\n }}\n />\n }\n >\n <Typography component=\"div\" type=\"body1\" className={classes.description}>\n {instruction?.label || ''}\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 error={teacherInstructionsError}\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 mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\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 error={promptError}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n disableUnderline\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\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 dimensionsEnabled={dimensionsEnabled}\n showTitle={titleEnabled}\n titlePlaceholder={title.placeholder}\n onChange={this.props.onModelChanged}\n mathMlOptions={mathMlOptions}\n />\n\n <CorrectResponse\n availableTools={availableTools}\n errors={errors}\n model={model}\n onChange={this.props.onModelChanged}\n mathMlOptions={mathMlOptions}\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 error={rationaleError}\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 mathMlOptions={mathMlOptions}\n />\n {rationaleError && <div className={classes.errorText}>{rationaleError}</div>}\n </InputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
@@ -315,11 +315,13 @@ var _default = {
315
315
  },
316
316
  prompt: {
317
317
  settings: true,
318
- label: 'Item Stem'
318
+ label: 'Item Stem',
319
+ required: false
319
320
  },
320
321
  rationale: {
321
322
  settings: true,
322
- label: 'Rationale'
323
+ label: 'Rationale',
324
+ required: false
323
325
  },
324
326
  scoringType: {
325
327
  settings: false,
@@ -331,7 +333,8 @@ var _default = {
331
333
  },
332
334
  teacherInstructions: {
333
335
  settings: true,
334
- label: 'Teacher Instructions'
336
+ label: 'Teacher Instructions',
337
+ required: false
335
338
  },
336
339
  title: {
337
340
  settings: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["allTools","model","answers","correctAnswer","name","marks","arrows","left","right","up","down","backgroundMarks","defaultGridConfiguration","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","labelsEnabled","padding","prompt","range","rationale","standardGrid","title","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","availableTools","authoring","settings","label","enabled","includeAxesEnabled","standardGridEnabled","gridConfigurations","top","bottom","graphDimensions","scoringType","studentInstructions","teacherInstructions","placeholder","instruction","settingsPanelDisabled","spellCheck","maxImageWidth","maxImageHeight","withRubric","language","languageChoices","options","mathMlOptions","mmlOutput","mmlEditing"],"mappings":";;;;;;AAAA,IAAMA,QAAQ,GAAG,CACf,QADe,EAEf,MAFe,EAGf,OAHe,EAIf,UAJe,EAKf,OALe,EAMf,SANe,EAOf,KAPe,EAQf,SARe,EASf,MATe,EAUf,QAVe,CAWf;AACA;AAZe,CAAjB;eAee;AACbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE;AACPC,MAAAA,aAAa,EAAE;AACbC,QAAAA,IAAI,EAAE,gBADO;AAEbC,QAAAA,KAAK,EAAE;AAFM;AADR,KADJ;AAOLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,IAAI,EAAE,IADA;AAENC,MAAAA,KAAK,EAAE,IAFD;AAGNC,MAAAA,EAAE,EAAE,IAHE;AAINC,MAAAA,IAAI,EAAE;AAJA,KAPH;AAaLC,IAAAA,eAAe,EAAE,EAbZ;AAcLC,IAAAA,wBAAwB,EAAE,CAdrB;AAeLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,GAAG,EAAE,CAAC,CADA;AAENC,MAAAA,GAAG,EAAE,CAFC;AAGNC,MAAAA,IAAI,EAAE,CAHA;AAINC,MAAAA,SAAS,EAAE,CAJL;AAKNC,MAAAA,SAAS,EAAE;AALL,KAfH;AAsBLC,IAAAA,KAAK,EAAE;AACLC,MAAAA,KAAK,EAAE,GADF;AAELC,MAAAA,MAAM,EAAE;AAFH,KAtBF;AA0BLC,IAAAA,WAAW,EAAE,IA1BR;AA2BLC,IAAAA,MAAM,EAAE,EA3BH;AA4BLC,IAAAA,aAAa,EAAE,IA5BV;AA6BLC,IAAAA,OAAO,EAAE,IA7BJ;AA8BLC,IAAAA,MAAM,EAAE,EA9BH;AA+BLC,IAAAA,KAAK,EAAE;AACLb,MAAAA,GAAG,EAAE,CAAC,CADD;AAELC,MAAAA,GAAG,EAAE,CAFA;AAGLC,MAAAA,IAAI,EAAE,CAHD;AAILC,MAAAA,SAAS,EAAE,CAJN;AAKLC,MAAAA,SAAS,EAAE;AALN,KA/BF;AAsCLU,IAAAA,SAAS,EAAE,EAtCN;AAuCLC,IAAAA,YAAY,EAAE,KAvCT;AAwCLC,IAAAA,KAAK,EAAE,EAxCF;AAyCLC,IAAAA,YAAY,EAAE/B,QAzCT;AA0CLgC,IAAAA,kBAAkB,EAAE,KA1Cf;AA2CLC,IAAAA,aAAa,EAAE,IA3CV;AA4CLC,IAAAA,gBAAgB,EAAE,IA5Cb;AA6CLC,IAAAA,0BAA0B,EAAE,IA7CvB;AA8CLC,IAAAA,0BAA0B,EAAE;AA9CvB,GADM;AAiDbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,cAAc,EAAEtC,QADH;AAEbuC,IAAAA,SAAS,EAAE;AACTC,MAAAA,QAAQ,EAAE,KADD;AAETC,MAAAA,KAAK,EAAE,sBAFE;AAGTC,MAAAA,OAAO,EAAE,IAHA;AAITC,MAAAA,kBAAkB,EAAE,IAJX;AAKTC,MAAAA,mBAAmB,EAAE,IALZ;AAMT9B,MAAAA,GAAG,EAAE;AACH2B,QAAAA,KAAK,EAAE,WADJ;AAEHC,QAAAA,OAAO,EAAE;AAFN,OANI;AAUT3B,MAAAA,GAAG,EAAE;AACH0B,QAAAA,KAAK,EAAE,WADJ;AAEHC,QAAAA,OAAO,EAAE;AAFN,OAVI;AAcTxB,MAAAA,SAAS,EAAE;AACTuB,QAAAA,KAAK,EAAE,OADE;AAETC,QAAAA,OAAO,EAAE;AAFA,OAdF;AAkBT1B,MAAAA,IAAI,EAAE;AACJyB,QAAAA,KAAK,EAAE,eADH;AAEJC,QAAAA,OAAO,EAAE;AAFL,OAlBG;AAsBTzB,MAAAA,SAAS,EAAE;AACTwB,QAAAA,KAAK,EAAE,gBADE;AAETC,QAAAA,OAAO,EAAE;AAFA;AAtBF,KAFE;AA6BbpC,IAAAA,MAAM,EAAE;AACNkC,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE,gBAFD;AAGNlC,MAAAA,IAAI,EAAE;AACJkC,QAAAA,KAAK,EAAE;AADH,OAHA;AAMNjC,MAAAA,KAAK,EAAE;AACLiC,QAAAA,KAAK,EAAE;AADF,OAND;AASNhC,MAAAA,EAAE,EAAE;AACFgC,QAAAA,KAAK,EAAE;AADL,OATE;AAYN/B,MAAAA,IAAI,EAAE;AACJ+B,QAAAA,KAAK,EAAE;AADH;AAZA,KA7BK;AA6CbI,IAAAA,kBAAkB,EAAE,CAClB;AACEJ,MAAAA,KAAK,EAAE,uCADT;AAEEnC,MAAAA,MAAM,EAAE;AACNC,QAAAA,IAAI,EAAE,IADA;AAENC,QAAAA,KAAK,EAAE,IAFD;AAGNC,QAAAA,EAAE,EAAE,IAHE;AAINC,QAAAA,IAAI,EAAE;AAJA,OAFV;AAQEG,MAAAA,MAAM,EAAE;AACNC,QAAAA,GAAG,EAAE,CAAC,EADA;AAENC,QAAAA,GAAG,EAAE,EAFC;AAGNC,QAAAA,IAAI,EAAE,CAHA;AAINS,QAAAA,OAAO,EAAE,CAJH;AAKNR,QAAAA,SAAS,EAAE,CALL;AAMNC,QAAAA,SAAS,EAAE;AANL,OARV;AAgBEC,MAAAA,KAAK,EAAE;AACLC,QAAAA,KAAK,EAAE,GADF;AAELC,QAAAA,MAAM,EAAE;AAFH,OAhBT;AAoBEC,MAAAA,WAAW,EAAE,IApBf;AAqBEC,MAAAA,MAAM,EAAE;AACNuB,QAAAA,GAAG,EAAE,EADC;AAENtC,QAAAA,KAAK,EAAE,EAFD;AAGNuC,QAAAA,MAAM,EAAE,EAHF;AAINxC,QAAAA,IAAI,EAAE;AAJA,OArBV;AA2BEkB,MAAAA,OAAO,EAAE,IA3BX;AA4BEE,MAAAA,KAAK,EAAE;AACLb,QAAAA,GAAG,EAAE,CAAC,EADD;AAELC,QAAAA,GAAG,EAAE,EAFA;AAGLC,QAAAA,IAAI,EAAE,CAHD;AAILS,QAAAA,OAAO,EAAE,CAJJ;AAKLR,QAAAA,SAAS,EAAE,CALN;AAMLC,QAAAA,SAAS,EAAE;AANN,OA5BT;AAoCEW,MAAAA,YAAY,EAAE,IApChB;AAqCEC,MAAAA,KAAK,EAAE;AArCT,KADkB,EAwClB;AACEW,MAAAA,KAAK,EAAE,sBADT;AAEEnC,MAAAA,MAAM,EAAE;AACNC,QAAAA,IAAI,EAAE,KADA;AAENC,QAAAA,KAAK,EAAE,IAFD;AAGNC,QAAAA,EAAE,EAAE,IAHE;AAINC,QAAAA,IAAI,EAAE;AAJA,OAFV;AAQEG,MAAAA,MAAM,EAAE;AACNC,QAAAA,GAAG,EAAE,CADC;AAENC,QAAAA,GAAG,EAAE,EAFC;AAGNC,QAAAA,IAAI,EAAE,CAHA;AAINS,QAAAA,OAAO,EAAE,CAJH;AAKNR,QAAAA,SAAS,EAAE,CALL;AAMNC,QAAAA,SAAS,EAAE;AANL,OARV;AAgBEC,MAAAA,KAAK,EAAE;AACLC,QAAAA,KAAK,EAAE,GADF;AAELC,QAAAA,MAAM,EAAE;AAFH,OAhBT;AAoBEC,MAAAA,WAAW,EAAE,IApBf;AAqBEC,MAAAA,MAAM,EAAE;AACNuB,QAAAA,GAAG,EAAE,EADC;AAENtC,QAAAA,KAAK,EAAE,EAFD;AAGNuC,QAAAA,MAAM,EAAE,EAHF;AAINxC,QAAAA,IAAI,EAAE;AAJA,OArBV;AA2BEkB,MAAAA,OAAO,EAAE,IA3BX;AA4BEE,MAAAA,KAAK,EAAE;AACLb,QAAAA,GAAG,EAAE,CADA;AAELC,QAAAA,GAAG,EAAE,EAFA;AAGLC,QAAAA,IAAI,EAAE,CAHD;AAILS,QAAAA,OAAO,EAAE,CAJJ;AAKLR,QAAAA,SAAS,EAAE,CALN;AAMLC,QAAAA,SAAS,EAAE;AANN,OA5BT;AAoCEW,MAAAA,YAAY,EAAE,IApChB;AAqCEC,MAAAA,KAAK,EAAE;AArCT,KAxCkB,EA+ElB;AACEW,MAAAA,KAAK,EAAE,sBADT;AAEEnC,MAAAA,MAAM,EAAE;AACNC,QAAAA,IAAI,EAAE,KADA;AAENC,QAAAA,KAAK,EAAE,IAFD;AAGNC,QAAAA,EAAE,EAAE,IAHE;AAINC,QAAAA,IAAI,EAAE;AAJA,OAFV;AAQEG,MAAAA,MAAM,EAAE;AACNC,QAAAA,GAAG,EAAE,CADC;AAENC,QAAAA,GAAG,EAAE,EAFC;AAGNC,QAAAA,IAAI,EAAE,CAHA;AAINS,QAAAA,OAAO,EAAE,CAJH;AAKNR,QAAAA,SAAS,EAAE,CALL;AAMNC,QAAAA,SAAS,EAAE;AANL,OARV;AAgBEC,MAAAA,KAAK,EAAE;AACLC,QAAAA,KAAK,EAAE,GADF;AAELC,QAAAA,MAAM,EAAE;AAFH,OAhBT;AAoBEC,MAAAA,WAAW,EAAE,IApBf;AAqBEC,MAAAA,MAAM,EAAE;AACNuB,QAAAA,GAAG,EAAE,EADC;AAENtC,QAAAA,KAAK,EAAE,EAFD;AAGNuC,QAAAA,MAAM,EAAE,EAHF;AAINxC,QAAAA,IAAI,EAAE;AAJA,OArBV;AA2BEkB,MAAAA,OAAO,EAAE,IA3BX;AA4BEE,MAAAA,KAAK,EAAE;AACLb,QAAAA,GAAG,EAAE,CADA;AAELC,QAAAA,GAAG,EAAE,EAFA;AAGLC,QAAAA,IAAI,EAAE,CAHD;AAILS,QAAAA,OAAO,EAAE,CAJJ;AAKLR,QAAAA,SAAS,EAAE,CALN;AAMLC,QAAAA,SAAS,EAAE;AANN,OA5BT;AAoCEW,MAAAA,YAAY,EAAE,IApChB;AAqCEC,MAAAA,KAAK,EAAE;AArCT,KA/EkB,EAsHlB;AACEW,MAAAA,KAAK,EAAE,mBADT;AAEEnC,MAAAA,MAAM,EAAE;AACNC,QAAAA,IAAI,EAAE,KADA;AAENC,QAAAA,KAAK,EAAE,IAFD;AAGNC,QAAAA,EAAE,EAAE,IAHE;AAINC,QAAAA,IAAI,EAAE;AAJA,OAFV;AAQEG,MAAAA,MAAM,EAAE;AACNC,QAAAA,GAAG,EAAE,CADC;AAENC,QAAAA,GAAG,EAAE,EAFC;AAGNC,QAAAA,IAAI,EAAE,CAHA;AAINS,QAAAA,OAAO,EAAE,CAJH;AAKNR,QAAAA,SAAS,EAAE,CALL;AAMNC,QAAAA,SAAS,EAAE;AANL,OARV;AAgBEC,MAAAA,KAAK,EAAE;AACLC,QAAAA,KAAK,EAAE,GADF;AAELC,QAAAA,MAAM,EAAE;AAFH,OAhBT;AAoBEC,MAAAA,WAAW,EAAE,IApBf;AAqBEC,MAAAA,MAAM,EAAE;AACNuB,QAAAA,GAAG,EAAE,EADC;AAENtC,QAAAA,KAAK,EAAE,EAFD;AAGNuC,QAAAA,MAAM,EAAE,gBAHF;AAINxC,QAAAA,IAAI,EAAE;AAJA,OArBV;AA2BEkB,MAAAA,OAAO,EAAE,IA3BX;AA4BEE,MAAAA,KAAK,EAAE;AACLb,QAAAA,GAAG,EAAE,CADA;AAELC,QAAAA,GAAG,EAAE,EAFA;AAGLC,QAAAA,IAAI,EAAE,CAHD;AAILS,QAAAA,OAAO,EAAE,CAJJ;AAKLR,QAAAA,SAAS,EAAE,EALN;AAMLC,QAAAA,SAAS,EAAE;AANN,OA5BT;AAoCEW,MAAAA,YAAY,EAAE,KApChB;AAqCEC,MAAAA,KAAK,EAAE;AArCT,KAtHkB,EA6JlB;AACEW,MAAAA,KAAK,EAAE,iBADT;AAEEnC,MAAAA,MAAM,EAAE;AACNC,QAAAA,IAAI,EAAE,KADA;AAENC,QAAAA,KAAK,EAAE,KAFD;AAGNC,QAAAA,EAAE,EAAE,KAHE;AAINC,QAAAA,IAAI,EAAE;AAJA,OAFV;AAQEG,MAAAA,MAAM,EAAE;AACNC,QAAAA,GAAG,EAAE,CADC;AAENC,QAAAA,GAAG,EAAE,EAFC;AAGNC,QAAAA,IAAI,EAAE,CAHA;AAINS,QAAAA,OAAO,EAAE,CAJH;AAKNR,QAAAA,SAAS,EAAE,CALL;AAMNC,QAAAA,SAAS,EAAE;AANL,OARV;AAgBEC,MAAAA,KAAK,EAAE;AACLC,QAAAA,KAAK,EAAE,GADF;AAELC,QAAAA,MAAM,EAAE;AAFH,OAhBT;AAoBEC,MAAAA,WAAW,EAAE,KApBf;AAqBEC,MAAAA,MAAM,EAAE;AACNuB,QAAAA,GAAG,EAAE,EADC;AAENtC,QAAAA,KAAK,EAAE,EAFD;AAGNuC,QAAAA,MAAM,EAAE,EAHF;AAINxC,QAAAA,IAAI,EAAE;AAJA,OArBV;AA2BEkB,MAAAA,OAAO,EAAE,IA3BX;AA4BEE,MAAAA,KAAK,EAAE;AACLb,QAAAA,GAAG,EAAE,CADA;AAELC,QAAAA,GAAG,EAAE,EAFA;AAGLC,QAAAA,IAAI,EAAE,CAHD;AAILS,QAAAA,OAAO,EAAE,CAJJ;AAKLR,QAAAA,SAAS,EAAE,CALN;AAMLC,QAAAA,SAAS,EAAE;AANN,OA5BT;AAoCEW,MAAAA,YAAY,EAAE,KApChB;AAqCEC,MAAAA,KAAK,EAAE;AArCT,KA7JkB,CA7CP;AAkPbkB,IAAAA,eAAe,EAAE;AACfR,MAAAA,QAAQ,EAAE,KADK;AAEfC,MAAAA,KAAK,EAAE,kBAFQ;AAGfC,MAAAA,OAAO,EAAE,IAHM;AAIf5B,MAAAA,GAAG,EAAE,GAJU;AAKfC,MAAAA,GAAG,EAAE,GALU;AAMfC,MAAAA,IAAI,EAAE;AANS,KAlPJ;AA0PbS,IAAAA,OAAO,EAAE;AACPe,MAAAA,QAAQ,EAAE,KADH;AAEPC,MAAAA,KAAK,EAAE;AAFA,KA1PI;AA8PblB,IAAAA,MAAM,EAAE;AACNiB,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE,cAFD;AAGNC,MAAAA,OAAO,EAAE,IAHH;AAINI,MAAAA,GAAG,EAAE,+BAJC;AAKNtC,MAAAA,KAAK,EAAE,iCALD;AAMNuC,MAAAA,MAAM,EAAE,kCANF;AAONxC,MAAAA,IAAI,EAAE;AAPA,KA9PK;AAuQbmB,IAAAA,MAAM,EAAE;AACNc,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KAvQK;AA2Qbb,IAAAA,SAAS,EAAE;AACTY,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KA3QE;AA+QbQ,IAAAA,WAAW,EAAE;AACXT,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KA/QA;AAmRbS,IAAAA,mBAAmB,EAAE;AACnBV,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAnRR;AAuRbU,IAAAA,mBAAmB,EAAE;AACnBX,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAvRR;AA2RbX,IAAAA,KAAK,EAAE;AACLU,MAAAA,QAAQ,EAAE,IADL;AAELC,MAAAA,KAAK,EAAE,aAFF;AAGLC,MAAAA,OAAO,EAAE,IAHJ;AAILU,MAAAA,WAAW,EAAE;AAJR,KA3RM;AAiSbC,IAAAA,WAAW,EAAE;AACXb,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EACH;AAHS,KAjSA;AAsSba,IAAAA,qBAAqB,EAAE,KAtSV;AAuSbC,IAAAA,UAAU,EAAE;AACVd,MAAAA,KAAK,EAAE,YADG;AAEVD,MAAAA,QAAQ,EAAE,KAFA;AAGVE,MAAAA,OAAO,EAAE;AAHC,KAvSC;AA4SbV,IAAAA,kBAAkB,EAAE;AAClBQ,MAAAA,QAAQ,EAAE,IADQ;AAElBC,MAAAA,KAAK,EAAE;AAFW,KA5SP;AAgTbe,IAAAA,aAAa,EAAE;AACbL,MAAAA,mBAAmB,EAAE,GADR;AAEbzB,MAAAA,MAAM,EAAE,GAFK;AAGbE,MAAAA,SAAS,EAAE;AAHE,KAhTF;AAqTb6B,IAAAA,cAAc,EAAE;AACdN,MAAAA,mBAAmB,EAAE,GADP;AAEdzB,MAAAA,MAAM,EAAE,GAFM;AAGdE,MAAAA,SAAS,EAAE;AAHG,KArTH;AA0Tb8B,IAAAA,UAAU,EAAE;AACVlB,MAAAA,QAAQ,EAAE,KADA;AAEVC,MAAAA,KAAK,EAAE;AAFG,KA1TC;AA8TbkB,IAAAA,QAAQ,EAAE;AACRnB,MAAAA,QAAQ,EAAE,KADF;AAERC,MAAAA,KAAK,EAAE,kBAFC;AAGRC,MAAAA,OAAO,EAAE;AAHD,KA9TG;AAmUbkB,IAAAA,eAAe,EAAE;AACfnB,MAAAA,KAAK,EAAE,kBADQ;AAEfoB,MAAAA,OAAO,EAAE;AAFM,KAnUJ;AAuUbC,IAAAA,aAAa,EAAE;AACbC,MAAAA,SAAS,EAAE,KADE;AAEbC,MAAAA,UAAU,EAAE;AAFC;AAvUF;AAjDF,C","sourcesContent":["const allTools = [\n 'circle',\n 'line',\n 'label',\n 'parabola',\n 'point',\n 'polygon',\n 'ray',\n 'segment',\n 'sine',\n 'vector',\n // 'absolute', // - not available as default\n // 'exponential', // - not available as default\n];\n\nexport default {\n model: {\n answers: {\n correctAnswer: {\n name: 'Correct Answer',\n marks: [],\n },\n },\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n backgroundMarks: [],\n defaultGridConfiguration: 0,\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 toolbarTools: allTools,\n coordinatesOnHover: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n availableTools: allTools,\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 instruction: {\n settings: false,\n label:\n 'Graphing questions involve plotting points, lines, or other objects on a graph. To create one, first configure the grid, then select the plotting tools students will be offered, and use them to define the correct answer.',\n },\n settingsPanelDisabled: false,\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 language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["allTools","model","answers","correctAnswer","name","marks","arrows","left","right","up","down","backgroundMarks","defaultGridConfiguration","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","labelsEnabled","padding","prompt","range","rationale","standardGrid","title","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","availableTools","authoring","settings","label","enabled","includeAxesEnabled","standardGridEnabled","gridConfigurations","top","bottom","graphDimensions","required","scoringType","studentInstructions","teacherInstructions","placeholder","instruction","settingsPanelDisabled","spellCheck","maxImageWidth","maxImageHeight","withRubric","language","languageChoices","options","mathMlOptions","mmlOutput","mmlEditing"],"mappings":"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","sourcesContent":["const allTools = [\n 'circle',\n 'line',\n 'label',\n 'parabola',\n 'point',\n 'polygon',\n 'ray',\n 'segment',\n 'sine',\n 'vector',\n // 'absolute', // - not available as default\n // 'exponential', // - not available as default\n];\n\nexport default {\n model: {\n answers: {\n correctAnswer: {\n name: 'Correct Answer',\n marks: [],\n },\n },\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n backgroundMarks: [],\n defaultGridConfiguration: 0,\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 toolbarTools: allTools,\n coordinatesOnHover: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n availableTools: allTools,\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 required: false,\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n required: false,\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 required: false,\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 instruction: {\n settings: false,\n label:\n 'Graphing questions involve plotting points, lines, or other objects on a graph. To create one, first configure the grid, then select the plotting tools students will be offered, and use them to define the correct answer.',\n },\n settingsPanelDisabled: false,\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 language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n};\n"],"file":"defaults.js"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/graphing-configure",
3
3
  "private": true,
4
- "version": "5.5.0",
4
+ "version": "5.5.1",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -9,7 +9,7 @@
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-configure-events": "^1.3.0",
12
- "@pie-lib/pie-toolbox": "1.8.1",
12
+ "@pie-lib/pie-toolbox": "1.8.4",
13
13
  "classnames": "^2.2.5",
14
14
  "debug": "^4.1.1",
15
15
  "lodash": "^4.17.15",
@@ -3,6 +3,18 @@
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
+ ## [5.3.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing-controller@5.3.0...@pie-element/graphing-controller@5.3.1) (2024-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
12
+ * **graphing:** overwrite with an empty object for incomplete circles PD-3341 ([46ce4dc](https://github.com/pie-framework/pie-elements/commit/46ce4dce1e91784a5985fcf64544af33cefb9bb2))
13
+
14
+
15
+
16
+
17
+
6
18
  # [5.3.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/graphing-controller@5.2.2...@pie-element/graphing-controller@5.3.0) (2024-03-04)
7
19
 
8
20
 
@@ -370,8 +370,13 @@ var createCorrectResponseSession = function createCorrectResponseSession(questio
370
370
 
371
371
  exports.createCorrectResponseSession = createCorrectResponseSession;
372
372
 
373
+ var getInnerText = function getInnerText(html) {
374
+ return (html || '').replaceAll(/<[^>]*>/g, '');
375
+ };
376
+
373
377
  var validate = function validate() {
374
378
  var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
379
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
375
380
  var answers = model.answers,
376
381
  toolbarTools = model.toolbarTools;
377
382
  var errors = {};
@@ -384,6 +389,13 @@ var validate = function validate() {
384
389
  errors.toolbarToolsError = 'There should be at least 1 tool defined.';
385
390
  }
386
391
 
392
+ ['teacherInstructions', 'prompt', 'rationale'].forEach(function (field) {
393
+ var _config$field;
394
+
395
+ if ((_config$field = config[field]) !== null && _config$field !== void 0 && _config$field.required && !getInnerText(model[field])) {
396
+ errors[field] = 'This field is required';
397
+ }
398
+ });
387
399
  Object.entries(answers || {}).forEach(function (_ref11) {
388
400
  var _ref12 = (0, _slicedToArray2["default"])(_ref11, 2),
389
401
  key = _ref12[0],
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","initializeGraphMap","point","segment","line","ray","vector","polygon","circle","sine","parabola","absolute","exponential","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","rez","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","missingAnswers","answerIndex","getPartialScoring","scoringType","env","pS","partialScoring","enabled","getBestAnswer","question","session","answers","questionPossibleAnswers","Object","entries","forEach","key","value","filter","building","correctAnswer","partialScoringEnabled","possibleAnswers","acc","entry","possibleAnswerKey","possibleAnswer","length","correctMarks","scoredCorrectedAnswer","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","id","validate","errors","correctAnswerErrors","toolbarToolsError"],"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, removeInvalidAnswers } from './utils';\n\nimport { partialScoring } from '@pie-lib/pie-toolbox/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 absolute: [],\n exponential: [],\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 const rez = 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 // add missing objects from correct answer\n const missingAnswers = cloneDeep(correctAnswers).reduce((correctedAnswer, answer) => {\n const answerIndex = sessionAnswers.find((mark) => compareMarks(answer, mark));\n\n if (!answerIndex) {\n // means that corrected answer is missing from session, so we mark it as missing object\n return [...correctedAnswer, { ...answer, correctness: 'missing' }];\n }\n\n return correctedAnswer;\n }, []);\n\n return [...rez, ...missingAnswers];\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 // filter the incomplete objects\n Object.entries(questionPossibleAnswers || {}).forEach(\n ([key, value]) =>\n (questionPossibleAnswers[key] = { ...value, marks: value?.marks.filter((mark) => !mark.building) }),\n );\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 // filter out missing objects because they do not affect the calculation of the score\n // only correct and incorrect are needed\n const scoredCorrectedAnswer = correctedAnswer.filter((answer) => answer.correctness !== 'missing');\n\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (scoredCorrectedAnswer.length > maxScore) {\n score -= scoredCorrectedAnswer.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 // ensure removing of invalid answers\n // need this if undo redo was last operation\n session.answer = removeInvalidAnswers(session.answer);\n // console.log('normalizedQuestion', normalizedQuestion);\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:\n env.mode === 'evaluate' &&\n !isEmpty(answers) &&\n answers.correctAnswer &&\n answers.correctAnswer.marks &&\n !isEmpty(answers.correctAnswer.marks),\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 (\n !isEmpty(answers) &&\n answers.correctAnswer &&\n answers.correctAnswer.marks &&\n !isEmpty(answers.correctAnswer.marks)\n ) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } = getBestAnswer(normalizedQuestion, session, env);\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 (\n env.mode !== 'evaluate' ||\n isEmpty(question.answers) ||\n (question.answers && question.answers.correctAnswer && isEmpty(question.answers.correctAnswer.marks))\n ) {\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 correctAnswer = answers.correctAnswer || Object.values(answers)[0] || {};\n marks = correctAnswer.marks || [];\n }\n\n resolve({\n answer: marks,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}) => {\n const { answers, toolbarTools } = model;\n const errors = {};\n const correctAnswerErrors = {};\n const toolbarToolsNoLabel = (toolbarTools || []).filter((tool) => tool !== 'label');\n\n if (!toolbarToolsNoLabel.length) {\n errors.toolbarToolsError = 'There should be at least 1 tool defined.';\n }\n\n Object.entries(answers || {}).forEach(([key, value]) => {\n if (!value.marks.length) {\n correctAnswerErrors[key] = 'At least 1 graph object should be defined.';\n }\n // check if all graph objects are correctly defined with respect to root, edge and from, to\n if (value.marks.length > 0) {\n value.marks.forEach((mark) => {\n if (mark.building) {\n correctAnswerErrors[key] = 'At least 1 graph object is not correctly defined.';\n }\n });\n }\n });\n\n if (!isEmpty(correctAnswerErrors)) {\n errors.correctAnswerErrors = correctAnswerErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","initializeGraphMap","point","segment","line","ray","vector","polygon","circle","sine","parabola","absolute","exponential","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","rez","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","missingAnswers","answerIndex","getPartialScoring","scoringType","env","pS","partialScoring","enabled","getBestAnswer","question","session","answers","questionPossibleAnswers","Object","entries","forEach","key","value","filter","building","correctAnswer","partialScoringEnabled","possibleAnswers","acc","entry","possibleAnswerKey","possibleAnswer","length","correctMarks","scoredCorrectedAnswer","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","id","getInnerText","html","replaceAll","validate","config","errors","correctAnswerErrors","toolbarToolsError","field","required"],"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, removeInvalidAnswers } from './utils';\n\nimport { partialScoring } from '@pie-lib/pie-toolbox/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 absolute: [],\n exponential: [],\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 const rez = 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 // add missing objects from correct answer\n const missingAnswers = cloneDeep(correctAnswers).reduce((correctedAnswer, answer) => {\n const answerIndex = sessionAnswers.find((mark) => compareMarks(answer, mark));\n\n if (!answerIndex) {\n // means that corrected answer is missing from session, so we mark it as missing object\n return [...correctedAnswer, { ...answer, correctness: 'missing' }];\n }\n\n return correctedAnswer;\n }, []);\n\n return [...rez, ...missingAnswers];\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 // filter the incomplete objects\n Object.entries(questionPossibleAnswers || {}).forEach(\n ([key, value]) =>\n (questionPossibleAnswers[key] = { ...value, marks: value?.marks.filter((mark) => !mark.building) }),\n );\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 // filter out missing objects because they do not affect the calculation of the score\n // only correct and incorrect are needed\n const scoredCorrectedAnswer = correctedAnswer.filter((answer) => answer.correctness !== 'missing');\n\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (scoredCorrectedAnswer.length > maxScore) {\n score -= scoredCorrectedAnswer.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 // ensure removing of invalid answers\n // need this if undo redo was last operation\n session.answer = removeInvalidAnswers(session.answer);\n // console.log('normalizedQuestion', normalizedQuestion);\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:\n env.mode === 'evaluate' &&\n !isEmpty(answers) &&\n answers.correctAnswer &&\n answers.correctAnswer.marks &&\n !isEmpty(answers.correctAnswer.marks),\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 (\n !isEmpty(answers) &&\n answers.correctAnswer &&\n answers.correctAnswer.marks &&\n !isEmpty(answers.correctAnswer.marks)\n ) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } = getBestAnswer(normalizedQuestion, session, env);\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 (\n env.mode !== 'evaluate' ||\n isEmpty(question.answers) ||\n (question.answers && question.answers.correctAnswer && isEmpty(question.answers.correctAnswer.marks))\n ) {\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 correctAnswer = answers.correctAnswer || Object.values(answers)[0] || {};\n marks = correctAnswer.marks || [];\n }\n\n resolve({\n answer: marks,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { answers, toolbarTools } = model;\n const errors = {};\n const correctAnswerErrors = {};\n const toolbarToolsNoLabel = (toolbarTools || []).filter((tool) => tool !== 'label');\n\n if (!toolbarToolsNoLabel.length) {\n errors.toolbarToolsError = 'There should be at least 1 tool defined.';\n }\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getInnerText(model[field])) {\n errors[field] = 'This field is required';\n }\n });\n\n Object.entries(answers || {}).forEach(([key, value]) => {\n if (!value.marks.length) {\n correctAnswerErrors[key] = 'At least 1 graph object should be defined.';\n }\n // check if all graph objects are correctly defined with respect to root, edge and from, to\n if (value.marks.length > 0) {\n value.marks.forEach((mark) => {\n if (mark.building) {\n correctAnswerErrors[key] = 'At least 1 graph object is not correctly defined.';\n }\n });\n }\n });\n\n if (!isEmpty(correctAnswerErrors)) {\n errors.correctAnswerErrors = correctAnswerErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
@@ -204,6 +204,14 @@ var equalPolygon = function equalPolygon(poly1, poly2) {
204
204
  exports.equalPolygon = equalPolygon;
205
205
 
206
206
  var equalCircle = function equalCircle(c1, c2) {
207
+ c1 = _objectSpread(_objectSpread({}, c1), {}, {
208
+ root: _objectSpread({}, c1.root),
209
+ edge: _objectSpread({}, c1.edge)
210
+ });
211
+ c2 = _objectSpread(_objectSpread({}, c2), {}, {
212
+ root: _objectSpread({}, c2.root),
213
+ edge: _objectSpread({}, c2.edge)
214
+ });
207
215
  var equalRootAndEdge = (0, _isEqual["default"])(c2.edge, c1.edge) && (0, _isEqual["default"])(c2.root, c1.root); // if both edge and root are the same, it means the shapes are exactly the same
208
216
 
209
217
  if (equalRootAndEdge) return true;
@@ -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","edgeP2","rootP1","rootP2","p1edge","p2edge","p1mirrorEdge","p2mirrorEdge","equalAbsolute","p1a1","p2a2","equalExponential","equalMarks","circle","sessAnswer","mark","parabola","absolute","exponential","polygon","poly","ray","sine","vector","completePoint","Number","isFinite","completeFromTo","item","completeMark","completeRootEdge","completePoints","removeInvalidAnswers","type","answer"],"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 {\n getAmplitudeAndFreq,\n pointsToABC,\n pointsToAForAbsolute,\n pointsToABForExponential,\n} from '@pie-lib/pie-toolbox/graphing-utils';\n\nexport const equalPoint = (A, B) => {\n // x1 = x2 & y1 = y2\n let equalLabel = true;\n\n A = {...A};\n B = {...B};\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 line = {...line, to: { ...line.to }, from: { ...line.from }};\n\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 ray1 = {...ray1, to: { ...ray1.to }, from: { ...ray1.from }};\n ray2 = {...ray2, to: { ...ray2.to }, from: { ...ray2.from }};\n\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 root = { ...root};\n edge = { ...edge};\n\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 } = p1;\n const { edge: edgeP2 } = p2;\n let { root: rootP1 } = p1;\n let { root: rootP2 } = p2;\n\n rootP1 = {...rootP1};\n rootP2 = {...rootP2};\n\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 if (!edgeP1 || !edgeP2) return false;\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\n/*\n * Function to check if given two points for absolute function\n * for correct answer and student answer are equal or not.\n * @param p1 - student answer\n * @param p2 - correct answer\n * */\nexport const equalAbsolute = (p1, p2) => {\n const { edge: edgeP1 } = p1;\n const { edge: edgeP2 } = p2;\n let { root: rootP1 } = p1;\n let { root: rootP2 } = p2;\n\n rootP1 = { ...rootP1 };\n rootP2 = { ...rootP2 };\n\n const p1edge = edgeP1 || { ...rootP1 };\n const p2edge = edgeP2 || { ...rootP2 };\n\n const p1a1 = pointsToAForAbsolute(rootP1, p1edge);\n const p2a2 = pointsToAForAbsolute(rootP2, p2edge);\n\n // if both root and a value are equal\n return isEqual(rootP2, rootP1) && isEqual(p2a2, p1a1);\n};\n\n/*\n * Function to check if given two points for exponential function\n * for correct answer and student answer are equal or not.\n * @param p1 - student answer\n * @param p2 - correct answer\n * */\nexport const equalExponential = (p1, p2) => {\n const { edge: edgeP1 } = p1;\n const { edge: edgeP2 } = p2;\n let { root: rootP1 } = p1;\n let { root: rootP2 } = p2;\n\n rootP1 = { ...rootP1 };\n rootP2 = { ...rootP2 };\n\n const p1edge = edgeP1 || { ...rootP1 };\n const p2edge = edgeP2 || { ...rootP2 };\n\n const { a1, b1 } = pointsToABForExponential(rootP1, p1edge);\n const { a2, b2 } = pointsToABForExponential(rootP2, p2edge);\n\n // if both a and b value are equal\n return isEqual(a2, a1) && isEqual(b2, b1);\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 absolute: (sessAnswer, mark) => equalAbsolute(sessAnswer, mark),\n exponential: (sessAnswer, mark) => equalExponential(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\nconst 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 absolute: completeRootEdge,\n exponential: 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"}
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","root","edge","equalRootAndEdge","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","edgeP2","rootP1","rootP2","p1edge","p2edge","p1mirrorEdge","p2mirrorEdge","equalAbsolute","p1a1","p2a2","equalExponential","equalMarks","circle","sessAnswer","mark","parabola","absolute","exponential","polygon","poly","ray","sine","vector","completePoint","Number","isFinite","completeFromTo","item","completeMark","completeRootEdge","completePoints","removeInvalidAnswers","type","answer"],"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 {\n getAmplitudeAndFreq,\n pointsToABC,\n pointsToAForAbsolute,\n pointsToABForExponential,\n} from '@pie-lib/pie-toolbox/graphing-utils';\n\nexport const equalPoint = (A, B) => {\n // x1 = x2 & y1 = y2\n let equalLabel = true;\n\n A = {...A};\n B = {...B};\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 line = {...line, to: { ...line.to }, from: { ...line.from }};\n\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 ray1 = {...ray1, to: { ...ray1.to }, from: { ...ray1.from }};\n ray2 = {...ray2, to: { ...ray2.to }, from: { ...ray2.from }};\n\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 c1 = {...c1, root: { ...c1.root }, edge: { ...c1.edge }};\n c2 = {...c2, root: { ...c2.root }, edge: { ...c2.edge }};\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 root = { ...root};\n edge = { ...edge};\n\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 } = p1;\n const { edge: edgeP2 } = p2;\n let { root: rootP1 } = p1;\n let { root: rootP2 } = p2;\n\n rootP1 = {...rootP1};\n rootP2 = {...rootP2};\n\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 if (!edgeP1 || !edgeP2) return false;\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\n/*\n * Function to check if given two points for absolute function\n * for correct answer and student answer are equal or not.\n * @param p1 - student answer\n * @param p2 - correct answer\n * */\nexport const equalAbsolute = (p1, p2) => {\n const { edge: edgeP1 } = p1;\n const { edge: edgeP2 } = p2;\n let { root: rootP1 } = p1;\n let { root: rootP2 } = p2;\n\n rootP1 = { ...rootP1 };\n rootP2 = { ...rootP2 };\n\n const p1edge = edgeP1 || { ...rootP1 };\n const p2edge = edgeP2 || { ...rootP2 };\n\n const p1a1 = pointsToAForAbsolute(rootP1, p1edge);\n const p2a2 = pointsToAForAbsolute(rootP2, p2edge);\n\n // if both root and a value are equal\n return isEqual(rootP2, rootP1) && isEqual(p2a2, p1a1);\n};\n\n/*\n * Function to check if given two points for exponential function\n * for correct answer and student answer are equal or not.\n * @param p1 - student answer\n * @param p2 - correct answer\n * */\nexport const equalExponential = (p1, p2) => {\n const { edge: edgeP1 } = p1;\n const { edge: edgeP2 } = p2;\n let { root: rootP1 } = p1;\n let { root: rootP2 } = p2;\n\n rootP1 = { ...rootP1 };\n rootP2 = { ...rootP2 };\n\n const p1edge = edgeP1 || { ...rootP1 };\n const p2edge = edgeP2 || { ...rootP2 };\n\n const { a1, b1 } = pointsToABForExponential(rootP1, p1edge);\n const { a2, b2 } = pointsToABForExponential(rootP2, p2edge);\n\n // if both a and b value are equal\n return isEqual(a2, a1) && isEqual(b2, b1);\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 absolute: (sessAnswer, mark) => equalAbsolute(sessAnswer, mark),\n exponential: (sessAnswer, mark) => equalExponential(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\nconst 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 absolute: completeRootEdge,\n exponential: 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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/graphing-controller",
3
3
  "private": true,
4
- "version": "5.3.0",
4
+ "version": "5.3.1",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -9,7 +9,7 @@
9
9
  "test": "./node_modules/.bin/jest"
10
10
  },
11
11
  "dependencies": {
12
- "@pie-lib/pie-toolbox": "1.8.1",
12
+ "@pie-lib/pie-toolbox": "1.8.4",
13
13
  "debug": "^4.1.1"
14
14
  },
15
15
  "devDependencies": {
@@ -565,9 +565,14 @@
565
565
  "title": "languageChoices"
566
566
  },
567
567
  "prompt": {
568
- "title": "ConfigureProp",
568
+ "title": "ConfigureRequiredProp",
569
569
  "type": "object",
570
570
  "properties": {
571
+ "required": {
572
+ "description": "Indicates if the item is required and the value cannot be empty",
573
+ "type": "boolean",
574
+ "title": "required"
575
+ },
571
576
  "settings": {
572
577
  "description": "Indicates if the item has to be displayed in the Settings Panel",
573
578
  "type": "boolean",
@@ -602,9 +607,14 @@
602
607
  }
603
608
  },
604
609
  "rationale": {
605
- "title": "ConfigureProp",
610
+ "title": "ConfigureRequiredProp",
606
611
  "type": "object",
607
612
  "properties": {
613
+ "required": {
614
+ "description": "Indicates if the item is required and the value cannot be empty",
615
+ "type": "boolean",
616
+ "title": "required"
617
+ },
608
618
  "settings": {
609
619
  "description": "Indicates if the item has to be displayed in the Settings Panel",
610
620
  "type": "boolean",
@@ -650,9 +660,14 @@
650
660
  }
651
661
  },
652
662
  "teacherInstructions": {
653
- "title": "ConfigureProp",
663
+ "title": "ConfigureRequiredProp",
654
664
  "type": "object",
655
665
  "properties": {
666
+ "required": {
667
+ "description": "Indicates if the item is required and the value cannot be empty",
668
+ "type": "boolean",
669
+ "title": "required"
670
+ },
656
671
  "settings": {
657
672
  "description": "Indicates if the item has to be displayed in the Settings Panel",
658
673
  "type": "boolean",
@@ -1500,6 +1515,27 @@
1500
1515
  "value"
1501
1516
  ]
1502
1517
  },
1518
+ "ConfigureRequiredProp": {
1519
+ "title": "ConfigureRequiredProp",
1520
+ "type": "object",
1521
+ "properties": {
1522
+ "required": {
1523
+ "description": "Indicates if the item is required and the value cannot be empty",
1524
+ "type": "boolean",
1525
+ "title": "required"
1526
+ },
1527
+ "settings": {
1528
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
1529
+ "type": "boolean",
1530
+ "title": "settings"
1531
+ },
1532
+ "label": {
1533
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
1534
+ "type": "string",
1535
+ "title": "label"
1536
+ }
1537
+ }
1538
+ },
1503
1539
  "TitleConfigProp": {
1504
1540
  "title": "TitleConfigProp",
1505
1541
  "type": "object",
@@ -401,6 +401,10 @@ Label of the language option
401
401
 
402
402
  Properties of the `prompt` object:
403
403
 
404
+ ## `required` (boolean)
405
+
406
+ Indicates if the item is required and the value cannot be empty
407
+
404
408
  ## `settings` (boolean)
405
409
 
406
410
  Indicates if the item has to be displayed in the Settings Panel
@@ -429,6 +433,10 @@ Indicates the label for the item that has to be displayed in the Settings Panel
429
433
 
430
434
  Properties of the `rationale` object:
431
435
 
436
+ ## `required` (boolean)
437
+
438
+ Indicates if the item is required and the value cannot be empty
439
+
432
440
  ## `settings` (boolean)
433
441
 
434
442
  Indicates if the item has to be displayed in the Settings Panel
@@ -465,6 +473,10 @@ Indicates the label for the item that has to be displayed in the Settings Panel
465
473
 
466
474
  Properties of the `teacherInstructions` object:
467
475
 
476
+ ## `required` (boolean)
477
+
478
+ Indicates if the item is required and the value cannot be empty
479
+
468
480
  ## `settings` (boolean)
469
481
 
470
482
  Indicates if the item has to be displayed in the Settings Panel
@@ -1070,6 +1082,22 @@ Value of the language option
1070
1082
 
1071
1083
  Label of the language option
1072
1084
 
1085
+ ## `ConfigureRequiredProp` (object)
1086
+
1087
+ Properties of the `ConfigureRequiredProp` object:
1088
+
1089
+ ### `required` (boolean)
1090
+
1091
+ Indicates if the item is required and the value cannot be empty
1092
+
1093
+ ### `settings` (boolean)
1094
+
1095
+ Indicates if the item has to be displayed in the Settings Panel
1096
+
1097
+ ### `label` (string)
1098
+
1099
+ Indicates the label for the item that has to be displayed in the Settings Panel
1100
+
1073
1101
  ## `TitleConfigProp` (object)
1074
1102
 
1075
1103
  Properties of the `TitleConfigProp` object:
@@ -2243,6 +2243,27 @@
2243
2243
  "value"
2244
2244
  ]
2245
2245
  },
2246
+ "ConfigureRequiredProp": {
2247
+ "title": "ConfigureRequiredProp",
2248
+ "type": "object",
2249
+ "properties": {
2250
+ "required": {
2251
+ "description": "Indicates if the item is required and the value cannot be empty",
2252
+ "type": "boolean",
2253
+ "title": "required"
2254
+ },
2255
+ "settings": {
2256
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
2257
+ "type": "boolean",
2258
+ "title": "settings"
2259
+ },
2260
+ "label": {
2261
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
2262
+ "type": "string",
2263
+ "title": "label"
2264
+ }
2265
+ }
2266
+ },
2246
2267
  "TitleConfigProp": {
2247
2268
  "title": "TitleConfigProp",
2248
2269
  "type": "object",
@@ -746,6 +746,22 @@ Value of the language option
746
746
 
747
747
  Label of the language option
748
748
 
749
+ ## `ConfigureRequiredProp` (object)
750
+
751
+ Properties of the `ConfigureRequiredProp` object:
752
+
753
+ ### `required` (boolean)
754
+
755
+ Indicates if the item is required and the value cannot be empty
756
+
757
+ ### `settings` (boolean)
758
+
759
+ Indicates if the item has to be displayed in the Settings Panel
760
+
761
+ ### `label` (string)
762
+
763
+ Indicates the label for the item that has to be displayed in the Settings Panel
764
+
749
765
  ## `TitleConfigProp` (object)
750
766
 
751
767
  Properties of the `TitleConfigProp` object:
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "5.5.1-next.6+58a2b4054",
7
+ "version": "5.5.2-next.12+9df520faa",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -13,7 +13,7 @@
13
13
  "dependencies": {
14
14
  "@material-ui/core": "^3.9.2",
15
15
  "@pie-framework/pie-player-events": "^0.1.0",
16
- "@pie-lib/pie-toolbox": "1.8.1",
16
+ "@pie-lib/pie-toolbox": "1.8.4",
17
17
  "classnames": "^2.2.5",
18
18
  "debug": "^4.1.1",
19
19
  "react": "^16.8.1",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "author": "",
23
23
  "license": "ISC",
24
- "gitHead": "58a2b4054c992254766b1fe55211f61c2187acdd",
24
+ "gitHead": "9df520faa7b811c0f662aabd9622f1a8ca45e468",
25
25
  "main": "lib/index.js",
26
26
  "module": "src/index.js"
27
27
  }