@pie-element/number-line 5.14.5 → 5.14.6

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,14 @@
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.14.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line@5.14.5...@pie-element/number-line@5.14.6) (2022-03-22)
7
+
8
+ **Note:** Version bump only for package @pie-element/number-line
9
+
10
+
11
+
12
+
13
+
6
14
  ## [5.14.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line@5.14.4...@pie-element/number-line@5.14.5) (2022-03-08)
7
15
 
8
16
  **Note:** Version bump only for package @pie-element/number-line
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.9.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-configure@4.9.4...@pie-element/number-line-configure@4.9.5) (2022-03-22)
7
+
8
+ **Note:** Version bump only for package @pie-element/number-line-configure
9
+
10
+
11
+
12
+
13
+
6
14
  ## [4.9.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-configure@4.9.3...@pie-element/number-line-configure@4.9.4) (2022-03-08)
7
15
 
8
16
  **Note:** Version bump only for package @pie-element/number-line-configure
@@ -57,6 +57,11 @@ var configuration = {
57
57
  prompt: {
58
58
  settings: true,
59
59
  label: 'Prompt'
60
+ },
61
+ spellCheck: {
62
+ label: "Spellcheck",
63
+ settings: true,
64
+ enabled: true
60
65
  }
61
66
  };
62
67
  exports.configuration = configuration;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","correctResponse","graph","domain","min","max","ticks","minor","major","arrows","left","right","maxNumberOfPoints","width","initialType","exhibitOnly","toolbarEditorPosition","availableTypes","PF","LFF","LEF","LFE","LEE","RFN","RFP","REN","REP","initialElements","feedback","correct","type","incorrect","partial","configuration","prompt","settings","label"],"mappings":";;;;;;AAAO,IAAMA,KAAK,GAAG;AACnBC,EAAAA,eAAe,EAAE,EADE;AAEnBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,GAAG,EAAE,CAAC,CAAR;AAAWC,MAAAA,GAAG,EAAE;AAAhB,KADH;AAELC,IAAAA,KAAK,EAAE;AACLC,MAAAA,KAAK,EAAE,CADF;AAELC,MAAAA,KAAK,EAAE;AAFF,KAFF;AAMLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,IAAI,EAAE,IADA;AAENC,MAAAA,KAAK,EAAE;AAFD,KANH;AAULC,IAAAA,iBAAiB,EAAE,EAVd;AAWLC,IAAAA,KAAK,EAAE,GAXF;AAYLC,IAAAA,WAAW,EAAE,IAZR;AAaLC,IAAAA,WAAW,EAAE,KAbR;AAcLC,IAAAA,qBAAqB,EAAE,QAdlB;AAeLC,IAAAA,cAAc,EAAE;AACdC,MAAAA,EAAE,EAAE,IADU;AAEdC,MAAAA,GAAG,EAAE,IAFS;AAGdC,MAAAA,GAAG,EAAE,IAHS;AAIdC,MAAAA,GAAG,EAAE,IAJS;AAKdC,MAAAA,GAAG,EAAE,IALS;AAMdC,MAAAA,GAAG,EAAE,IANS;AAOdC,MAAAA,GAAG,EAAE,IAPS;AAQdC,MAAAA,GAAG,EAAE,IARS;AASdC,MAAAA,GAAG,EAAE;AATS,KAfX;AA0BLC,IAAAA,eAAe,EAAE;AA1BZ,GAFY;AA8BnBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,OAAO,EAAE;AACP,iBAAS,SADF;AAEPC,MAAAA,IAAI,EAAE;AAFC,KADD;AAKRC,IAAAA,SAAS,EAAE;AACT,iBAAS,WADA;AAETD,MAAAA,IAAI,EAAE;AAFG,KALH;AASRE,IAAAA,OAAO,EAAE;AACP,iBAAS,QADF;AAEPF,MAAAA,IAAI,EAAE;AAFC;AATD;AA9BS,CAAd;;AA8CA,IAAMG,aAAa,GAAG;AAC3BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,QAAQ,EAAE,IADJ;AAENC,IAAAA,KAAK,EAAE;AAFD;AADmB,CAAtB","sourcesContent":["export const model = {\n correctResponse: [],\n graph: {\n domain: { min: -5, max: 5 },\n ticks: {\n minor: 1,\n major: 2\n },\n arrows: {\n left: true,\n right: true\n },\n maxNumberOfPoints: 20,\n width: 500,\n initialType: 'PF',\n exhibitOnly: false,\n toolbarEditorPosition: 'bottom',\n availableTypes: {\n PF: true,\n LFF: true,\n LEF: true,\n LFE: true,\n LEE: true,\n RFN: true,\n RFP: true,\n REN: true,\n REP: true\n },\n initialElements: []\n },\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none'\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none'\n },\n partial: {\n default: 'Nearly',\n type: 'none'\n }\n },\n};\n\nexport const configuration = {\n prompt: {\n settings: true,\n label: 'Prompt'\n }\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","correctResponse","graph","domain","min","max","ticks","minor","major","arrows","left","right","maxNumberOfPoints","width","initialType","exhibitOnly","toolbarEditorPosition","availableTypes","PF","LFF","LEF","LFE","LEE","RFN","RFP","REN","REP","initialElements","feedback","correct","type","incorrect","partial","configuration","prompt","settings","label","spellCheck","enabled"],"mappings":";;;;;;AAAO,IAAMA,KAAK,GAAG;AACnBC,EAAAA,eAAe,EAAE,EADE;AAEnBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,GAAG,EAAE,CAAC,CAAR;AAAWC,MAAAA,GAAG,EAAE;AAAhB,KADH;AAELC,IAAAA,KAAK,EAAE;AACLC,MAAAA,KAAK,EAAE,CADF;AAELC,MAAAA,KAAK,EAAE;AAFF,KAFF;AAMLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,IAAI,EAAE,IADA;AAENC,MAAAA,KAAK,EAAE;AAFD,KANH;AAULC,IAAAA,iBAAiB,EAAE,EAVd;AAWLC,IAAAA,KAAK,EAAE,GAXF;AAYLC,IAAAA,WAAW,EAAE,IAZR;AAaLC,IAAAA,WAAW,EAAE,KAbR;AAcLC,IAAAA,qBAAqB,EAAE,QAdlB;AAeLC,IAAAA,cAAc,EAAE;AACdC,MAAAA,EAAE,EAAE,IADU;AAEdC,MAAAA,GAAG,EAAE,IAFS;AAGdC,MAAAA,GAAG,EAAE,IAHS;AAIdC,MAAAA,GAAG,EAAE,IAJS;AAKdC,MAAAA,GAAG,EAAE,IALS;AAMdC,MAAAA,GAAG,EAAE,IANS;AAOdC,MAAAA,GAAG,EAAE,IAPS;AAQdC,MAAAA,GAAG,EAAE,IARS;AASdC,MAAAA,GAAG,EAAE;AATS,KAfX;AA0BLC,IAAAA,eAAe,EAAE;AA1BZ,GAFY;AA8BnBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,OAAO,EAAE;AACP,iBAAS,SADF;AAEPC,MAAAA,IAAI,EAAE;AAFC,KADD;AAKRC,IAAAA,SAAS,EAAE;AACT,iBAAS,WADA;AAETD,MAAAA,IAAI,EAAE;AAFG,KALH;AASRE,IAAAA,OAAO,EAAE;AACP,iBAAS,QADF;AAEPF,MAAAA,IAAI,EAAE;AAFC;AATD;AA9BS,CAAd;;AA8CA,IAAMG,aAAa,GAAG;AAC3BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,QAAQ,EAAE,IADJ;AAENC,IAAAA,KAAK,EAAE;AAFD,GADmB;AAK3BC,EAAAA,UAAU,EAAE;AACVD,IAAAA,KAAK,EAAE,YADG;AAEVD,IAAAA,QAAQ,EAAC,IAFC;AAGVG,IAAAA,OAAO,EAAC;AAHE;AALe,CAAtB","sourcesContent":["export const model = {\n correctResponse: [],\n graph: {\n domain: { min: -5, max: 5 },\n ticks: {\n minor: 1,\n major: 2\n },\n arrows: {\n left: true,\n right: true\n },\n maxNumberOfPoints: 20,\n width: 500,\n initialType: 'PF',\n exhibitOnly: false,\n toolbarEditorPosition: 'bottom',\n availableTypes: {\n PF: true,\n LFF: true,\n LEF: true,\n LFE: true,\n LEE: true,\n RFN: true,\n RFP: true,\n REN: true,\n REP: true\n },\n initialElements: []\n },\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none'\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none'\n },\n partial: {\n default: 'Nearly',\n type: 'none'\n }\n },\n};\n\nexport const configuration = {\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n spellCheck: {\n label: \"Spellcheck\",\n settings:true,\n enabled:true\n },\n};\n"],"file":"defaults.js"}
@@ -416,12 +416,16 @@ var Main = /*#__PURE__*/function (_React$Component) {
416
416
  model = _this$props12.model,
417
417
  _onChange = _this$props12.onChange,
418
418
  configuration = _this$props12.configuration;
419
- var graph = model.graph;
419
+ var graph = model.graph,
420
+ spellCheckEnabled = model.spellCheckEnabled;
420
421
 
421
422
  var _ref4 = configuration || {},
422
423
  _ref4$prompt = _ref4.prompt,
423
- prompt = _ref4$prompt === void 0 ? {} : _ref4$prompt;
424
+ prompt = _ref4$prompt === void 0 ? {} : _ref4$prompt,
425
+ _ref4$spellCheck = _ref4.spellCheck,
426
+ spellCheck = _ref4$spellCheck === void 0 ? {} : _ref4$spellCheck;
424
427
 
428
+ console.log(spellCheckEnabled, spellCheckEnabled);
425
429
  var correctResponse = (0, _cloneDeep["default"])(model.correctResponse || []).map(toGraphFormat);
426
430
  var initialView = (0, _cloneDeep["default"])(graph.initialElements || []).map(toGraphFormat);
427
431
  var toolbarOpts = {};
@@ -450,7 +454,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
450
454
  },
451
455
  nonEmpty: false,
452
456
  disableUnderline: true,
453
- toolbarOpts: toolbarOpts
457
+ toolbarOpts: toolbarOpts,
458
+ spellCheck: spellCheckEnabled
454
459
  })), /*#__PURE__*/_react["default"].createElement(_cardBar["default"], {
455
460
  header: "Attributes"
456
461
  }, "Set up the number line by entering the domain and number of tick marks to display. Labels on the number line can be edited or removed by clicking on the label."), /*#__PURE__*/_react["default"].createElement("div", {
@@ -487,7 +492,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
487
492
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
488
493
  markup: graph.title || '',
489
494
  onChange: this.changeGraphTitle,
490
- toolbarOpts: toolbarOpts
495
+ toolbarOpts: toolbarOpts,
496
+ spellCheck: spellCheckEnabled
491
497
  })), /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
492
498
  label: 'Limits'
493
499
  }, /*#__PURE__*/_react["default"].createElement(_numberTextField["default"], {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["trimModel","model","feedback","undefined","prompt","graph","title","correctResponse","lineIsSwitched","dataConverter","switchGraphLine","toGraphFormat","toSessionFormat","styles","theme","maxNumberOfPoints","width","checkbox","marginTop","spacing","unit","row","display","flexWrap","paddingRight","hide","opacity","resetDefaults","margin","pointTypeChooser","promptHolder","paddingBottom","marginBottom","paddingTop","section","padding","toPointType","response","rest","pointType","direction","leftPoint","rightPoint","type","toUpperCase","Main","props","o","onChange","height","graphChange","availableTypes","onlyPFAvailable","Object","entries","forEach","value","e","getAdjustedHeight","ticks","tickUtils","snapElements","domain","initialElements","arrows","defaultModel","event","exhibitOnly","index","el","position","update","Set","map","indices","filter","v","some","d","data","push","pop","addInitialView","classes","configuration","initialView","toolbarOpts","toolbarEditorPosition","root","settings","label","changeSize","changeTicks","changeArrows","changeGraphTitle","changeMaxNoOfPoints","setDefaults","moveCorrectResponse","deleteCorrectResponse","addCorrectResponse","clearCorrectResponse","undoCorrectResponse","availableTypesChange","moveInitialView","deleteInitialView","onAddElement","clearInitialView","undoInitialView","exhibitChanged","React","Component","PropTypes","object","isRequired","func","name"],"mappings":"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","sourcesContent":["import { InputCheckbox, FeedbackConfig, FormSection } from '@pie-lib/config-ui';\nimport NumberTextField from './number-text-field';\nimport CardBar from './card-bar';\nimport {\n NumberLineComponent,\n dataConverter,\n tickUtils\n} from '@pie-element/number-line';\nimport Size from './size';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Domain from './domain';\nimport Arrows from './arrows';\nimport PointConfig from './point-config';\nimport React from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { withStyles } from '@material-ui/core/styles';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Ticks from './ticks';\nimport { model as defaultModel } from './defaults';\n\nconst trimModel = model => ({\n ...model,\n feedback: undefined,\n prompt: undefined,\n graph: { ...model.graph, title: undefined },\n correctResponse: undefined\n});\n\nconst {\n lineIsSwitched,\n switchGraphLine,\n toGraphFormat,\n toSessionFormat\n} = dataConverter;\n\nconst styles = theme => ({\n maxNumberOfPoints: {\n width: '150px'\n },\n checkbox: {\n marginTop: theme.spacing.unit * 2\n },\n row: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n paddingRight: theme.spacing.unit * 2\n }\n },\n hide: {\n opacity: 0.5\n },\n resetDefaults: {\n margin: '20px 0'\n },\n pointTypeChooser: {\n margin: '20px 0'\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n section: {\n margin: 0,\n padding: 0\n }\n});\n\nexport const toPointType = response => {\n function rest(response) {\n if (response.pointType) {\n if (response.direction) {\n return `${response.pointType[0]}${response.direction[0]}`;\n }\n return response.pointType[0];\n } else {\n return `${response.leftPoint[0]}${response.rightPoint[0]}`;\n }\n }\n return `${response.type[0]}${rest(response)}`.toUpperCase();\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired\n };\n\n constructor(props) {\n super(props);\n const { model: { graph: { availableTypes, maxNumberOfPoints }}} = props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ height });\n }\n\n graphChange = o => {\n const { onChange } = this.props;\n const graph = { ...this.props.model.graph, ...o };\n onChange({ graph });\n };\n\n changeSize = ({ width, height }) => this.graphChange({ width, height });\n\n getAdjustedHeight = (availableTypes, maxNumberOfPoints) => {\n let onlyPFAvailable = true;\n\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (type !== 'PF' && value) {\n onlyPFAvailable = false;\n return;\n }\n });\n\n const height = maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable)\n ? 100 : (50 + (maxNumberOfPoints || 20) * 25);\n\n return height;\n };\n\n changeMaxNoOfPoints = (e, maxNumberOfPoints) => {\n const { model : { graph: { availableTypes }}} = this.props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ maxNumberOfPoints, height });\n };\n\n changeGraphTitle = title => this.graphChange({ title });\n\n changeTicks = ticks => {\n const { model, onChange } = this.props;\n const correctResponse = tickUtils.snapElements(\n model.graph.domain,\n ticks,\n model.correctResponse\n );\n const initialElements = tickUtils.snapElements(\n model.graph.domain,\n ticks,\n model.graph.initialElements\n );\n\n const graph = { ...this.props.model.graph, ticks, initialElements };\n onChange({ graph, correctResponse });\n };\n\n changeArrows = arrows => this.graphChange({ arrows });\n\n setDefaults = () => {\n const { graph: { availableTypes, maxNumberOfPoints }} = defaultModel;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...cloneDeep(defaultModel.graph), height };\n\n this.props.onChange({ graph });\n };\n\n exhibitChanged = (event, value) => {\n const graph = { ...this.props.model.graph, exhibitOnly: value };\n this.props.onChange({ graph });\n };\n\n moveCorrectResponse = (index, el, position) => {\n const { onChange, model } = this.props;\n el.position = position;\n const update = toSessionFormat(\n el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el\n );\n const correctResponse = [...model.correctResponse];\n correctResponse[index] = update;\n onChange({ correctResponse });\n };\n\n moveInitialView = (index, el, position) => {\n const { model, onChange } = this.props;\n el.position = position;\n const update = toSessionFormat(\n el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el\n );\n const initialElements = [...this.props.model.graph.initialElements];\n initialElements[index] = update;\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n availableTypesChange = availableTypes => {\n const { model, onChange } = this.props;\n const { correctResponse, graph: { maxNumberOfPoints }} = model;\n\n new Set(correctResponse.map(toPointType)).forEach(pointType => {\n availableTypes[pointType] = true;\n });\n\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...model.graph, availableTypes, height };\n\n onChange({ graph });\n };\n\n deleteCorrectResponse = indices => {\n const { model, onChange } = this.props;\n const correctResponse = model.correctResponse.filter((v, index) => {\n return !indices.some(d => d === index);\n });\n onChange({ correctResponse });\n };\n\n deleteInitialView = indices => {\n const { model, onChange } = this.props;\n const initialElements = model.graph.initialElements.filter((v, index) => {\n return !indices.some(d => d === index);\n });\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n addCorrectResponse = data => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.push(toSessionFormat(data));\n onChange({ correctResponse });\n };\n\n addInitialView = data => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.push(toSessionFormat(data));\n onChange({ graph });\n };\n\n clearCorrectResponse = () => {\n const { onChange } = this.props;\n const correctResponse = [];\n onChange({ correctResponse });\n };\n\n clearInitialView = () => {\n const { model, onChange } = this.props;\n const initialElements = [];\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n undoCorrectResponse = () => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.pop();\n onChange({ correctResponse });\n };\n\n undoInitialView = () => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.pop();\n onChange({ graph });\n };\n\n onAddElement = this.addInitialView;\n\n render() {\n const { classes, model, onChange, configuration } = this.props;\n\n const { graph } = model;\n const { prompt = {} } = configuration || {};\n\n const correctResponse = cloneDeep(model.correctResponse || []).map(\n toGraphFormat\n );\n\n const initialView = cloneDeep(graph.initialElements || []).map(\n toGraphFormat\n );\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n return (\n <div className={classes.root}>\n\n {prompt.settings && (\n <FormSection label={prompt.label}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={prompt => onChange({ prompt })}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n />\n </FormSection>\n )}\n\n <CardBar header=\"Attributes\">\n Set up the number line by entering the domain and number of tick marks\n to display. Labels on the number line can be edited or removed by\n clicking on the label.\n </CardBar>\n\n <div className={classes.row}>\n <FormSection label={'Size'}>\n <Size size={graph} onChange={this.changeSize} />\n </FormSection>\n\n <FormSection label={'Domain'}>\n <Domain\n domain={graph.domain}\n onChange={domain => this.graphChange({ domain })}\n />\n </FormSection>\n </div>\n <div className={classes.row}>\n <FormSection label={'Ticks'}>\n <Ticks\n ticks={graph.ticks}\n onChange={this.changeTicks}\n domain={graph.domain}\n />\n </FormSection>\n <FormSection label={'Arrows'}>\n <Arrows arrows={graph.arrows} onChange={this.changeArrows} />\n </FormSection>\n </div>\n <FormSection label={'Title'}>\n <EditableHtml\n markup={graph.title || ''}\n onChange={this.changeGraphTitle}\n toolbarOpts={toolbarOpts}\n />\n </FormSection>\n <FormSection label={'Limits'}>\n <NumberTextField\n className={classes.maxNumberOfPoints}\n label=\"Max No of Elements\"\n min={1}\n max={20}\n value={graph.maxNumberOfPoints}\n onChange={this.changeMaxNoOfPoints}\n />\n </FormSection>\n <Button\n variant=\"outlined\"\n mini\n color=\"primary\"\n onClick={this.setDefaults}\n >\n Reset to default values\n </Button>\n <br />\n <br />\n\n {!graph.exhibitOnly && (\n <div>\n <CardBar header=\"Correct Response\">\n Select answer type and place it on the number line. Intersecting\n points, line segments and/or rays will appear above the number\n line.{' '}\n <i>\n Note: A maximum of 20 points, line segments or rays may be\n plotted.\n </i>\n </CardBar>\n\n <NumberLineComponent\n onMoveElement={this.moveCorrectResponse}\n onDeleteElements={this.deleteCorrectResponse}\n onAddElement={this.addCorrectResponse}\n onClearElements={this.clearCorrectResponse}\n onUndoElement={this.undoCorrectResponse}\n answer={correctResponse}\n //strip feedback for this model\n model={trimModel(model)}\n />\n <CardBar header=\"Available Types\" mini>\n Click on the input options to be displayed to the students. All\n inputs will display by default.\n </CardBar>\n <div className={classes.pointTypeChooser}>\n <PointConfig\n onSelectionChange={this.availableTypesChange}\n selection={graph.availableTypes}\n />\n </div>\n </div>\n )}\n <CardBar header=\"Initial view/Make Exhibit\">\n Use this number line to set a starting point, line segment or ray.\n This is optional. <br />\n This number line may also be used to make an exhibit number line,\n which can not be manipulated by a student.\n </CardBar>\n <NumberLineComponent\n onMoveElement={this.moveInitialView}\n onDeleteElements={this.deleteInitialView}\n onAddElement={this.onAddElement}\n onClearElements={this.clearInitialView}\n onUndoElement={this.undoInitialView}\n answer={initialView}\n model={trimModel(model)}\n />\n <InputCheckbox\n label=\"Make exhibit\"\n className={classes.checkbox}\n checked={graph.exhibitOnly}\n onChange={this.exhibitChanged}\n value={'exhibitOnly'}\n />\n\n {!graph.exhibitOnly && (\n <React.Fragment>\n <br />\n <FeedbackConfig\n feedback={model.feedback}\n onChange={feedback => onChange({ feedback })}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["trimModel","model","feedback","undefined","prompt","graph","title","correctResponse","lineIsSwitched","dataConverter","switchGraphLine","toGraphFormat","toSessionFormat","styles","theme","maxNumberOfPoints","width","checkbox","marginTop","spacing","unit","row","display","flexWrap","paddingRight","hide","opacity","resetDefaults","margin","pointTypeChooser","promptHolder","paddingBottom","marginBottom","paddingTop","section","padding","toPointType","response","rest","pointType","direction","leftPoint","rightPoint","type","toUpperCase","Main","props","o","onChange","height","graphChange","availableTypes","onlyPFAvailable","Object","entries","forEach","value","e","getAdjustedHeight","ticks","tickUtils","snapElements","domain","initialElements","arrows","defaultModel","event","exhibitOnly","index","el","position","update","Set","map","indices","filter","v","some","d","data","push","pop","addInitialView","classes","configuration","spellCheckEnabled","spellCheck","console","log","initialView","toolbarOpts","toolbarEditorPosition","root","settings","label","changeSize","changeTicks","changeArrows","changeGraphTitle","changeMaxNoOfPoints","setDefaults","moveCorrectResponse","deleteCorrectResponse","addCorrectResponse","clearCorrectResponse","undoCorrectResponse","availableTypesChange","moveInitialView","deleteInitialView","onAddElement","clearInitialView","undoInitialView","exhibitChanged","React","Component","PropTypes","object","isRequired","func","name"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAAAC,KAAK;AAAA,yCAClBA,KADkB;AAErBC,IAAAA,QAAQ,EAAEC,SAFW;AAGrBC,IAAAA,MAAM,EAAED,SAHa;AAIrBE,IAAAA,KAAK,kCAAOJ,KAAK,CAACI,KAAb;AAAoBC,MAAAA,KAAK,EAAEH;AAA3B,MAJgB;AAKrBI,IAAAA,eAAe,EAAEJ;AALI;AAAA,CAAvB;;AAQA,IACEK,cADF,GAKIC,yBALJ,CACED,cADF;AAAA,IAEEE,eAFF,GAKID,yBALJ,CAEEC,eAFF;AAAA,IAGEC,aAHF,GAKIF,yBALJ,CAGEE,aAHF;AAAA,IAIEC,eAJF,GAKIH,yBALJ,CAIEG,eAJF;;AAOA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBC,IAAAA,iBAAiB,EAAE;AACjBC,MAAAA,KAAK,EAAE;AADU,KADI;AAIvBC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,SAAS,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB;AADxB,KAJa;AAOvBC,IAAAA,GAAG,EAAE;AACHC,MAAAA,OAAO,EAAE,MADN;AAEHC,MAAAA,QAAQ,EAAE,MAFP;AAGH,eAAS;AACPC,QAAAA,YAAY,EAAEV,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB;AAD5B;AAHN,KAPkB;AAcvBK,IAAAA,IAAI,EAAE;AACJC,MAAAA,OAAO,EAAE;AADL,KAdiB;AAiBvBC,IAAAA,aAAa,EAAE;AACbC,MAAAA,MAAM,EAAE;AADK,KAjBQ;AAoBvBC,IAAAA,gBAAgB,EAAE;AAChBD,MAAAA,MAAM,EAAE;AADQ,KApBK;AAuBvBE,IAAAA,YAAY,EAAE;AACZd,MAAAA,KAAK,EAAE,MADK;AAEZe,MAAAA,aAAa,EAAEjB,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAFxB;AAGZY,MAAAA,YAAY,EAAElB,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB;AAHvB,KAvBS;AA4BvBhB,IAAAA,MAAM,EAAE;AACN6B,MAAAA,UAAU,EAAEnB,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAD3B;AAENJ,MAAAA,KAAK,EAAE;AAFD,KA5Be;AAgCvBkB,IAAAA,OAAO,EAAE;AACPN,MAAAA,MAAM,EAAE,CADD;AAEPO,MAAAA,OAAO,EAAE;AAFF;AAhCc,GAAL;AAAA,CAApB;;AAsCO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAAAC,QAAQ,EAAI;AACrC,WAASC,IAAT,CAAcD,QAAd,EAAwB;AACtB,QAAIA,QAAQ,CAACE,SAAb,EAAwB;AACtB,UAAIF,QAAQ,CAACG,SAAb,EAAwB;AACtB,yBAAUH,QAAQ,CAACE,SAAT,CAAmB,CAAnB,CAAV,SAAkCF,QAAQ,CAACG,SAAT,CAAmB,CAAnB,CAAlC;AACD;;AACD,aAAOH,QAAQ,CAACE,SAAT,CAAmB,CAAnB,CAAP;AACD,KALD,MAKO;AACL,uBAAUF,QAAQ,CAACI,SAAT,CAAmB,CAAnB,CAAV,SAAkCJ,QAAQ,CAACK,UAAT,CAAoB,CAApB,CAAlC;AACD;AACF;;AACD,SAAO,UAAGL,QAAQ,CAACM,IAAT,CAAc,CAAd,CAAH,SAAsBL,IAAI,CAACD,QAAD,CAA1B,EAAuCO,WAAvC,EAAP;AACD,CAZM;;;;IAcMC,I;;;;;AAQX,gBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,oGAQL,UAAAC,CAAC,EAAI;AACjB,UAAQC,QAAR,GAAqB,MAAKF,KAA1B,CAAQE,QAAR;;AACA,UAAM3C,KAAK,mCAAQ,MAAKyC,KAAL,CAAW7C,KAAX,CAAiBI,KAAzB,GAAmC0C,CAAnC,CAAX;;AACAC,MAAAA,QAAQ,CAAC;AAAE3C,QAAAA,KAAK,EAALA;AAAF,OAAD,CAAR;AACD,KAZkB;AAAA,mGAcN;AAAA,UAAGW,KAAH,QAAGA,KAAH;AAAA,UAAUiC,MAAV,QAAUA,MAAV;AAAA,aAAuB,MAAKC,WAAL,CAAiB;AAAElC,QAAAA,KAAK,EAALA,KAAF;AAASiC,QAAAA,MAAM,EAANA;AAAT,OAAjB,CAAvB;AAAA,KAdM;AAAA,0GAgBC,UAACE,cAAD,EAAiBpC,iBAAjB,EAAuC;AACzD,UAAIqC,eAAe,GAAG,IAAtB;AAEAC,MAAAA,MAAM,CAACC,OAAP,CAAeH,cAAc,IAAI,EAAjC,EAAqCI,OAArC,CAA6C,iBAAmB;AAAA;AAAA,YAAjBZ,IAAiB;AAAA,YAAXa,KAAW;;AAC9D,YAAIb,IAAI,KAAK,IAAT,IAAiBa,KAArB,EAA4B;AAC1BJ,UAAAA,eAAe,GAAG,KAAlB;AACA;AACD;AACF,OALD;AAOA,UAAMH,MAAM,GAAGlC,iBAAiB,KAAKA,iBAAiB,KAAK,CAAtB,IAA2BqC,eAAhC,CAAjB,GACX,GADW,GACJ,KAAK,CAACrC,iBAAiB,IAAI,EAAtB,IAA4B,EAD5C;AAGA,aAAOkC,MAAP;AACD,KA9BkB;AAAA,4GAgCG,UAACQ,CAAD,EAAI1C,iBAAJ,EAA0B;AAC9C,UAA2BoC,cAA3B,GAAgD,MAAKL,KAArD,CAAQ7C,KAAR,CAAkBI,KAAlB,CAA2B8C,cAA3B;;AACA,UAAMF,MAAM,GAAG,MAAKS,iBAAL,CAAuBP,cAAvB,EAAuCpC,iBAAvC,CAAf;;AAEA,YAAKmC,WAAL,CAAiB;AAAEnC,QAAAA,iBAAiB,EAAjBA,iBAAF;AAAqBkC,QAAAA,MAAM,EAANA;AAArB,OAAjB;AACD,KArCkB;AAAA,yGAuCA,UAAA3C,KAAK;AAAA,aAAI,MAAK4C,WAAL,CAAiB;AAAE5C,QAAAA,KAAK,EAALA;AAAF,OAAjB,CAAJ;AAAA,KAvCL;AAAA,oGAyCL,UAAAqD,KAAK,EAAI;AACrB,wBAA4B,MAAKb,KAAjC;AAAA,UAAQ7C,KAAR,eAAQA,KAAR;AAAA,UAAe+C,QAAf,eAAeA,QAAf;;AACA,UAAMzC,eAAe,GAAGqD,sBAAUC,YAAV,CACtB5D,KAAK,CAACI,KAAN,CAAYyD,MADU,EAEtBH,KAFsB,EAGtB1D,KAAK,CAACM,eAHgB,CAAxB;;AAKA,UAAMwD,eAAe,GAAGH,sBAAUC,YAAV,CACtB5D,KAAK,CAACI,KAAN,CAAYyD,MADU,EAEtBH,KAFsB,EAGtB1D,KAAK,CAACI,KAAN,CAAY0D,eAHU,CAAxB;;AAMA,UAAM1D,KAAK,mCAAQ,MAAKyC,KAAL,CAAW7C,KAAX,CAAiBI,KAAzB;AAAgCsD,QAAAA,KAAK,EAALA,KAAhC;AAAuCI,QAAAA,eAAe,EAAfA;AAAvC,QAAX;;AACAf,MAAAA,QAAQ,CAAC;AAAE3C,QAAAA,KAAK,EAALA,KAAF;AAASE,QAAAA,eAAe,EAAfA;AAAT,OAAD,CAAR;AACD,KAxDkB;AAAA,qGA0DJ,UAAAyD,MAAM;AAAA,aAAI,MAAKd,WAAL,CAAiB;AAAEc,QAAAA,MAAM,EAANA;AAAF,OAAjB,CAAJ;AAAA,KA1DF;AAAA,oGA4DL,YAAM;AAClB,gCAAwDC,eAAxD,CAAQ5D,KAAR;AAAA,UAAiB8C,cAAjB,uBAAiBA,cAAjB;AAAA,UAAiCpC,iBAAjC,uBAAiCA,iBAAjC;;AACA,UAAMkC,MAAM,GAAG,MAAKS,iBAAL,CAAuBP,cAAvB,EAAuCpC,iBAAvC,CAAf;;AACA,UAAMV,KAAK,mCAAQ,2BAAU4D,gBAAa5D,KAAvB,CAAR;AAAuC4C,QAAAA,MAAM,EAANA;AAAvC,QAAX;;AAEA,YAAKH,KAAL,CAAWE,QAAX,CAAoB;AAAE3C,QAAAA,KAAK,EAALA;AAAF,OAApB;AACD,KAlEkB;AAAA,uGAoEF,UAAC6D,KAAD,EAAQV,KAAR,EAAkB;AACjC,UAAMnD,KAAK,mCAAQ,MAAKyC,KAAL,CAAW7C,KAAX,CAAiBI,KAAzB;AAAgC8D,QAAAA,WAAW,EAAEX;AAA7C,QAAX;;AACA,YAAKV,KAAL,CAAWE,QAAX,CAAoB;AAAE3C,QAAAA,KAAK,EAALA;AAAF,OAApB;AACD,KAvEkB;AAAA,4GAyEG,UAAC+D,KAAD,EAAQC,EAAR,EAAYC,QAAZ,EAAyB;AAC7C,yBAA4B,MAAKxB,KAAjC;AAAA,UAAQE,QAAR,gBAAQA,QAAR;AAAA,UAAkB/C,KAAlB,gBAAkBA,KAAlB;AACAoE,MAAAA,EAAE,CAACC,QAAH,GAAcA,QAAd;AACA,UAAMC,MAAM,GAAG3D,eAAe,CAC5ByD,EAAE,CAAC1B,IAAH,KAAY,MAAZ,IAAsBnC,cAAc,CAAC6D,EAAD,CAApC,GAA2C3D,eAAe,CAAC2D,EAAD,CAA1D,GAAiEA,EADrC,CAA9B;AAGA,UAAM9D,eAAe,uCAAON,KAAK,CAACM,eAAb,CAArB;AACAA,MAAAA,eAAe,CAAC6D,KAAD,CAAf,GAAyBG,MAAzB;AACAvB,MAAAA,QAAQ,CAAC;AAAEzC,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAR;AACD,KAlFkB;AAAA,wGAoFD,UAAC6D,KAAD,EAAQC,EAAR,EAAYC,QAAZ,EAAyB;AACzC,yBAA4B,MAAKxB,KAAjC;AAAA,UAAQ7C,KAAR,gBAAQA,KAAR;AAAA,UAAe+C,QAAf,gBAAeA,QAAf;AACAqB,MAAAA,EAAE,CAACC,QAAH,GAAcA,QAAd;AACA,UAAMC,MAAM,GAAG3D,eAAe,CAC5ByD,EAAE,CAAC1B,IAAH,KAAY,MAAZ,IAAsBnC,cAAc,CAAC6D,EAAD,CAApC,GAA2C3D,eAAe,CAAC2D,EAAD,CAA1D,GAAiEA,EADrC,CAA9B;AAGA,UAAMN,eAAe,uCAAO,MAAKjB,KAAL,CAAW7C,KAAX,CAAiBI,KAAjB,CAAuB0D,eAA9B,CAArB;AACAA,MAAAA,eAAe,CAACK,KAAD,CAAf,GAAyBG,MAAzB;;AACA,UAAMlE,KAAK,mCAAQJ,KAAK,CAACI,KAAd;AAAqB0D,QAAAA,eAAe,EAAfA;AAArB,QAAX;;AACAf,MAAAA,QAAQ,CAAC;AAAE3C,QAAAA,KAAK,EAALA;AAAF,OAAD,CAAR;AACD,KA9FkB;AAAA,6GAgGI,UAAA8C,cAAc,EAAI;AACvC,yBAA4B,MAAKL,KAAjC;AAAA,UAAQ7C,KAAR,gBAAQA,KAAR;AAAA,UAAe+C,QAAf,gBAAeA,QAAf;AACA,UAAQzC,eAAR,GAAyDN,KAAzD,CAAQM,eAAR;AAAA,UAAkCQ,iBAAlC,GAAyDd,KAAzD,CAAyBI,KAAzB,CAAkCU,iBAAlC;AAEA,UAAIyD,GAAJ,CAAQjE,eAAe,CAACkE,GAAhB,CAAoBrC,WAApB,CAAR,EAA0CmB,OAA1C,CAAkD,UAAAhB,SAAS,EAAI;AAC7DY,QAAAA,cAAc,CAACZ,SAAD,CAAd,GAA4B,IAA5B;AACD,OAFD;;AAIA,UAAMU,MAAM,GAAG,MAAKS,iBAAL,CAAuBP,cAAvB,EAAuCpC,iBAAvC,CAAf;;AACA,UAAMV,KAAK,mCAAQJ,KAAK,CAACI,KAAd;AAAqB8C,QAAAA,cAAc,EAAdA,cAArB;AAAqCF,QAAAA,MAAM,EAANA;AAArC,QAAX;;AAEAD,MAAAA,QAAQ,CAAC;AAAE3C,QAAAA,KAAK,EAALA;AAAF,OAAD,CAAR;AACD,KA5GkB;AAAA,8GA8GK,UAAAqE,OAAO,EAAI;AACjC,yBAA4B,MAAK5B,KAAjC;AAAA,UAAQ7C,KAAR,gBAAQA,KAAR;AAAA,UAAe+C,QAAf,gBAAeA,QAAf;AACA,UAAMzC,eAAe,GAAGN,KAAK,CAACM,eAAN,CAAsBoE,MAAtB,CAA6B,UAACC,CAAD,EAAIR,KAAJ,EAAc;AACjE,eAAO,CAACM,OAAO,CAACG,IAAR,CAAa,UAAAC,CAAC;AAAA,iBAAIA,CAAC,KAAKV,KAAV;AAAA,SAAd,CAAR;AACD,OAFuB,CAAxB;AAGApB,MAAAA,QAAQ,CAAC;AAAEzC,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAR;AACD,KApHkB;AAAA,0GAsHC,UAAAmE,OAAO,EAAI;AAC7B,yBAA4B,MAAK5B,KAAjC;AAAA,UAAQ7C,KAAR,gBAAQA,KAAR;AAAA,UAAe+C,QAAf,gBAAeA,QAAf;AACA,UAAMe,eAAe,GAAG9D,KAAK,CAACI,KAAN,CAAY0D,eAAZ,CAA4BY,MAA5B,CAAmC,UAACC,CAAD,EAAIR,KAAJ,EAAc;AACvE,eAAO,CAACM,OAAO,CAACG,IAAR,CAAa,UAAAC,CAAC;AAAA,iBAAIA,CAAC,KAAKV,KAAV;AAAA,SAAd,CAAR;AACD,OAFuB,CAAxB;;AAGA,UAAM/D,KAAK,mCAAQJ,KAAK,CAACI,KAAd;AAAqB0D,QAAAA,eAAe,EAAfA;AAArB,QAAX;;AACAf,MAAAA,QAAQ,CAAC;AAAE3C,QAAAA,KAAK,EAALA;AAAF,OAAD,CAAR;AACD,KA7HkB;AAAA,2GA+HE,UAAA0E,IAAI,EAAI;AAC3B,yBAA4B,MAAKjC,KAAjC;AAAA,UAAQ7C,KAAR,gBAAQA,KAAR;AAAA,UAAe+C,QAAf,gBAAeA,QAAf;AACA,UAAMzC,eAAe,uCAAON,KAAK,CAACM,eAAb,CAArB;AACAA,MAAAA,eAAe,CAACyE,IAAhB,CAAqBpE,eAAe,CAACmE,IAAD,CAApC;AACA/B,MAAAA,QAAQ,CAAC;AAAEzC,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAR;AACD,KApIkB;AAAA,uGAsIF,UAAAwE,IAAI,EAAI;AACvB,yBAA4B,MAAKjC,KAAjC;AAAA,UAAQE,QAAR,gBAAQA,QAAR;AAAA,UAAkB/C,KAAlB,gBAAkBA,KAAlB;;AACA,UAAMI,KAAK,qBAAQJ,KAAK,CAACI,KAAd,CAAX;;AACAA,MAAAA,KAAK,CAAC0D,eAAN,GAAwB1D,KAAK,CAAC0D,eAAN,IAAyB,EAAjD;AACA1D,MAAAA,KAAK,CAAC0D,eAAN,CAAsBiB,IAAtB,CAA2BpE,eAAe,CAACmE,IAAD,CAA1C;AACA/B,MAAAA,QAAQ,CAAC;AAAE3C,QAAAA,KAAK,EAALA;AAAF,OAAD,CAAR;AACD,KA5IkB;AAAA,6GA8II,YAAM;AAC3B,UAAQ2C,QAAR,GAAqB,MAAKF,KAA1B,CAAQE,QAAR;AACA,UAAMzC,eAAe,GAAG,EAAxB;AACAyC,MAAAA,QAAQ,CAAC;AAAEzC,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAR;AACD,KAlJkB;AAAA,yGAoJA,YAAM;AACvB,yBAA4B,MAAKuC,KAAjC;AAAA,UAAQ7C,KAAR,gBAAQA,KAAR;AAAA,UAAe+C,QAAf,gBAAeA,QAAf;AACA,UAAMe,eAAe,GAAG,EAAxB;;AACA,UAAM1D,KAAK,mCAAQJ,KAAK,CAACI,KAAd;AAAqB0D,QAAAA,eAAe,EAAfA;AAArB,QAAX;;AACAf,MAAAA,QAAQ,CAAC;AAAE3C,QAAAA,KAAK,EAALA;AAAF,OAAD,CAAR;AACD,KAzJkB;AAAA,4GA2JG,YAAM;AAC1B,0BAA4B,MAAKyC,KAAjC;AAAA,UAAQ7C,KAAR,iBAAQA,KAAR;AAAA,UAAe+C,QAAf,iBAAeA,QAAf;AACA,UAAMzC,eAAe,uCAAON,KAAK,CAACM,eAAb,CAArB;AACAA,MAAAA,eAAe,CAAC0E,GAAhB;AACAjC,MAAAA,QAAQ,CAAC;AAAEzC,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAR;AACD,KAhKkB;AAAA,wGAkKD,YAAM;AACtB,0BAA4B,MAAKuC,KAAjC;AAAA,UAAQE,QAAR,iBAAQA,QAAR;AAAA,UAAkB/C,KAAlB,iBAAkBA,KAAlB;;AACA,UAAMI,KAAK,qBAAQJ,KAAK,CAACI,KAAd,CAAX;;AACAA,MAAAA,KAAK,CAAC0D,eAAN,GAAwB1D,KAAK,CAAC0D,eAAN,IAAyB,EAAjD;AACA1D,MAAAA,KAAK,CAAC0D,eAAN,CAAsBkB,GAAtB;AACAjC,MAAAA,QAAQ,CAAC;AAAE3C,QAAAA,KAAK,EAALA;AAAF,OAAD,CAAR;AACD,KAxKkB;AAAA,qGA0KJ,MAAK6E,cA1KD;AAEjB,6BAAkEpC,KAAlE,CAAQ7C,KAAR,CAAiBI,KAAjB;AAAA,QAA0B8C,eAA1B,sBAA0BA,cAA1B;AAAA,QAA0CpC,kBAA1C,sBAA0CA,iBAA1C;;AACA,QAAMkC,OAAM,GAAG,MAAKS,iBAAL,CAAuBP,eAAvB,EAAuCpC,kBAAvC,CAAf;;AAEA,UAAKmC,WAAL,CAAiB;AAAED,MAAAA,MAAM,EAANA;AAAF,KAAjB;;AALiB;AAMlB;;;;WAsKD,kBAAS;AAAA;;AACP,0BAAoD,KAAKH,KAAzD;AAAA,UAAQqC,OAAR,iBAAQA,OAAR;AAAA,UAAiBlF,KAAjB,iBAAiBA,KAAjB;AAAA,UAAwB+C,SAAxB,iBAAwBA,QAAxB;AAAA,UAAkCoC,aAAlC,iBAAkCA,aAAlC;AAEA,UAAQ/E,KAAR,GAAqCJ,KAArC,CAAQI,KAAR;AAAA,UAAegF,iBAAf,GAAqCpF,KAArC,CAAeoF,iBAAf;;AACA,kBAAyCD,aAAa,IAAI,EAA1D;AAAA,+BAAQhF,MAAR;AAAA,UAAQA,MAAR,6BAAiB,EAAjB;AAAA,mCAAqBkF,UAArB;AAAA,UAAqBA,UAArB,iCAAkC,EAAlC;;AAGAC,MAAAA,OAAO,CAACC,GAAR,CAAYH,iBAAZ,EAA+BA,iBAA/B;AACA,UAAM9E,eAAe,GAAG,2BAAUN,KAAK,CAACM,eAAN,IAAyB,EAAnC,EAAuCkE,GAAvC,CACtB9D,aADsB,CAAxB;AAIA,UAAM8E,WAAW,GAAG,2BAAUpF,KAAK,CAAC0D,eAAN,IAAyB,EAAnC,EAAuCU,GAAvC,CAClB9D,aADkB,CAApB;AAGA,UAAM+E,WAAW,GAAG,EAApB;;AAEA,cAAQzF,KAAK,CAAC0F,qBAAd;AACE,aAAK,KAAL;AACED,UAAAA,WAAW,CAACpB,QAAZ,GAAuB,KAAvB;AACA;;AACF;AACEoB,UAAAA,WAAW,CAACpB,QAAZ,GAAuB,QAAvB;AACA;AANJ;;AASA,0BACE;AAAK,QAAA,SAAS,EAAEa,OAAO,CAACS;AAAxB,SAEGxF,MAAM,CAACyF,QAAP,iBACC,gCAAC,qBAAD;AAAa,QAAA,KAAK,EAAEzF,MAAM,CAAC0F;AAA3B,sBACE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAEX,OAAO,CAAC/E,MADrB;AAEE,QAAA,MAAM,EAAEH,KAAK,CAACG,MAFhB;AAGE,QAAA,QAAQ,EAAE,kBAAAA,MAAM;AAAA,iBAAI4C,SAAQ,CAAC;AAAE5C,YAAAA,MAAM,EAANA;AAAF,WAAD,CAAZ;AAAA,SAHlB;AAIE,QAAA,QAAQ,EAAE,KAJZ;AAKE,QAAA,gBAAgB,MALlB;AAME,QAAA,WAAW,EAAEsF,WANf;AAOE,QAAA,UAAU,EAAEL;AAPd,QADF,CAHJ,eAgBE,gCAAC,mBAAD;AAAS,QAAA,MAAM,EAAC;AAAhB,2KAhBF,eAsBE;AAAK,QAAA,SAAS,EAAEF,OAAO,CAAC9D;AAAxB,sBACE,gCAAC,qBAAD;AAAa,QAAA,KAAK,EAAE;AAApB,sBACE,gCAAC,gBAAD;AAAM,QAAA,IAAI,EAAEhB,KAAZ;AAAmB,QAAA,QAAQ,EAAE,KAAK0F;AAAlC,QADF,CADF,eAKE,gCAAC,qBAAD;AAAa,QAAA,KAAK,EAAE;AAApB,sBACE,gCAAC,kBAAD;AACE,QAAA,MAAM,EAAE1F,KAAK,CAACyD,MADhB;AAEE,QAAA,QAAQ,EAAE,kBAAAA,MAAM;AAAA,iBAAI,MAAI,CAACZ,WAAL,CAAiB;AAAEY,YAAAA,MAAM,EAANA;AAAF,WAAjB,CAAJ;AAAA;AAFlB,QADF,CALF,CAtBF,eAkCE;AAAK,QAAA,SAAS,EAAEqB,OAAO,CAAC9D;AAAxB,sBACE,gCAAC,qBAAD;AAAa,QAAA,KAAK,EAAE;AAApB,sBACE,gCAAC,iBAAD;AACE,QAAA,KAAK,EAAEhB,KAAK,CAACsD,KADf;AAEE,QAAA,QAAQ,EAAE,KAAKqC,WAFjB;AAGE,QAAA,MAAM,EAAE3F,KAAK,CAACyD;AAHhB,QADF,CADF,eAQE,gCAAC,qBAAD;AAAa,QAAA,KAAK,EAAE;AAApB,sBACE,gCAAC,kBAAD;AAAQ,QAAA,MAAM,EAAEzD,KAAK,CAAC2D,MAAtB;AAA8B,QAAA,QAAQ,EAAE,KAAKiC;AAA7C,QADF,CARF,CAlCF,eA8CE,gCAAC,qBAAD;AAAa,QAAA,KAAK,EAAE;AAApB,sBACE,gCAAC,wBAAD;AACE,QAAA,MAAM,EAAE5F,KAAK,CAACC,KAAN,IAAe,EADzB;AAEE,QAAA,QAAQ,EAAE,KAAK4F,gBAFjB;AAGE,QAAA,WAAW,EAAER,WAHf;AAIE,QAAA,UAAU,EAAEL;AAJd,QADF,CA9CF,eAsDE,gCAAC,qBAAD;AAAa,QAAA,KAAK,EAAE;AAApB,sBACE,gCAAC,2BAAD;AACE,QAAA,SAAS,EAAEF,OAAO,CAACpE,iBADrB;AAEE,QAAA,KAAK,EAAC,oBAFR;AAGE,QAAA,GAAG,EAAE,CAHP;AAIE,QAAA,GAAG,EAAE,EAJP;AAKE,QAAA,KAAK,EAAEV,KAAK,CAACU,iBALf;AAME,QAAA,QAAQ,EAAE,KAAKoF;AANjB,QADF,CAtDF,eAgEE,gCAAC,kBAAD;AACE,QAAA,OAAO,EAAC,UADV;AAEE,QAAA,IAAI,MAFN;AAGE,QAAA,KAAK,EAAC,SAHR;AAIE,QAAA,OAAO,EAAE,KAAKC;AAJhB,mCAhEF,eAwEE,2CAxEF,eAyEE,2CAzEF,EA2EG,CAAC/F,KAAK,CAAC8D,WAAP,iBACC,0DACE,gCAAC,mBAAD;AAAS,QAAA,MAAM,EAAC;AAAhB,kJAGQ,GAHR,eAIE,iHAJF,CADF,eAWE,gCAAC,+BAAD;AACE,QAAA,aAAa,EAAE,KAAKkC,mBADtB;AAEE,QAAA,gBAAgB,EAAE,KAAKC,qBAFzB;AAGE,QAAA,YAAY,EAAE,KAAKC,kBAHrB;AAIE,QAAA,eAAe,EAAE,KAAKC,oBAJxB;AAKE,QAAA,aAAa,EAAE,KAAKC,mBALtB;AAME,QAAA,MAAM,EAAElG,eANV,CAOE;AAPF;AAQE,QAAA,KAAK,EAAEP,SAAS,CAACC,KAAD;AARlB,QAXF,eAqBE,gCAAC,mBAAD;AAAS,QAAA,MAAM,EAAC,iBAAhB;AAAkC,QAAA,IAAI;AAAtC,2GArBF,eAyBE;AAAK,QAAA,SAAS,EAAEkF,OAAO,CAACtD;AAAxB,sBACE,gCAAC,uBAAD;AACE,QAAA,iBAAiB,EAAE,KAAK6E,oBAD1B;AAEE,QAAA,SAAS,EAAErG,KAAK,CAAC8C;AAFnB,QADF,CAzBF,CA5EJ,eA6GE,gCAAC,mBAAD;AAAS,QAAA,MAAM,EAAC;AAAhB,+GAEoB,2CAFpB,iHA7GF,eAmHE,gCAAC,+BAAD;AACE,QAAA,aAAa,EAAE,KAAKwD,eADtB;AAEE,QAAA,gBAAgB,EAAE,KAAKC,iBAFzB;AAGE,QAAA,YAAY,EAAE,KAAKC,YAHrB;AAIE,QAAA,eAAe,EAAE,KAAKC,gBAJxB;AAKE,QAAA,aAAa,EAAE,KAAKC,eALtB;AAME,QAAA,MAAM,EAAEtB,WANV;AAOE,QAAA,KAAK,EAAEzF,SAAS,CAACC,KAAD;AAPlB,QAnHF,eA4HE,gCAAC,uBAAD;AACE,QAAA,KAAK,EAAC,cADR;AAEE,QAAA,SAAS,EAAEkF,OAAO,CAAClE,QAFrB;AAGE,QAAA,OAAO,EAAEZ,KAAK,CAAC8D,WAHjB;AAIE,QAAA,QAAQ,EAAE,KAAK6C,cAJjB;AAKE,QAAA,KAAK,EAAE;AALT,QA5HF,EAoIG,CAAC3G,KAAK,CAAC8D,WAAP,iBACC,gCAAC,iBAAD,CAAO,QAAP,qBACE,2CADF,eAEE,gCAAC,wBAAD;AACE,QAAA,QAAQ,EAAElE,KAAK,CAACC,QADlB;AAEE,QAAA,QAAQ,EAAE,kBAAAA,QAAQ;AAAA,iBAAI8C,SAAQ,CAAC;AAAE9C,YAAAA,QAAQ,EAARA;AAAF,WAAD,CAAZ;AAAA,SAFpB;AAGE,QAAA,WAAW,EAAEwF;AAHf,QAFF,CArIJ,CADF;AAiJD;;;EA/VuBuB,kBAAMC,S;;;iCAAnBrE,I,eACQ;AACjBsC,EAAAA,OAAO,EAAEgC,sBAAUC,MAAV,CAAiBC,UADT;AAEjBpH,EAAAA,KAAK,EAAEkH,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBjC,EAAAA,aAAa,EAAE+B,sBAAUC,MAAV,CAAiBC,UAHf;AAIjBrE,EAAAA,QAAQ,EAAEmE,sBAAUG,IAAV,CAAeD;AAJR,C;;eAiWN,wBAAWxG,MAAX,EAAmB;AAAE0G,EAAAA,IAAI,EAAE;AAAR,CAAnB,EAAqC1E,IAArC,C","sourcesContent":["import { InputCheckbox, FeedbackConfig, FormSection } from '@pie-lib/config-ui';\nimport NumberTextField from './number-text-field';\nimport CardBar from './card-bar';\nimport {\n NumberLineComponent,\n dataConverter,\n tickUtils\n} from '@pie-element/number-line';\nimport Size from './size';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Domain from './domain';\nimport Arrows from './arrows';\nimport PointConfig from './point-config';\nimport React from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { withStyles } from '@material-ui/core/styles';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Ticks from './ticks';\nimport { model as defaultModel } from './defaults';\n\nconst trimModel = model => ({\n ...model,\n feedback: undefined,\n prompt: undefined,\n graph: { ...model.graph, title: undefined },\n correctResponse: undefined\n});\n\nconst {\n lineIsSwitched,\n switchGraphLine,\n toGraphFormat,\n toSessionFormat\n} = dataConverter;\n\nconst styles = theme => ({\n maxNumberOfPoints: {\n width: '150px'\n },\n checkbox: {\n marginTop: theme.spacing.unit * 2\n },\n row: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n paddingRight: theme.spacing.unit * 2\n }\n },\n hide: {\n opacity: 0.5\n },\n resetDefaults: {\n margin: '20px 0'\n },\n pointTypeChooser: {\n margin: '20px 0'\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n section: {\n margin: 0,\n padding: 0\n }\n});\n\nexport const toPointType = response => {\n function rest(response) {\n if (response.pointType) {\n if (response.direction) {\n return `${response.pointType[0]}${response.direction[0]}`;\n }\n return response.pointType[0];\n } else {\n return `${response.leftPoint[0]}${response.rightPoint[0]}`;\n }\n }\n return `${response.type[0]}${rest(response)}`.toUpperCase();\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired\n };\n\n constructor(props) {\n super(props);\n const { model: { graph: { availableTypes, maxNumberOfPoints }}} = props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ height });\n }\n\n graphChange = o => {\n const { onChange } = this.props;\n const graph = { ...this.props.model.graph, ...o };\n onChange({ graph });\n };\n\n changeSize = ({ width, height }) => this.graphChange({ width, height });\n\n getAdjustedHeight = (availableTypes, maxNumberOfPoints) => {\n let onlyPFAvailable = true;\n\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (type !== 'PF' && value) {\n onlyPFAvailable = false;\n return;\n }\n });\n\n const height = maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable)\n ? 100 : (50 + (maxNumberOfPoints || 20) * 25);\n\n return height;\n };\n\n changeMaxNoOfPoints = (e, maxNumberOfPoints) => {\n const { model : { graph: { availableTypes }}} = this.props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ maxNumberOfPoints, height });\n };\n\n changeGraphTitle = title => this.graphChange({ title });\n\n changeTicks = ticks => {\n const { model, onChange } = this.props;\n const correctResponse = tickUtils.snapElements(\n model.graph.domain,\n ticks,\n model.correctResponse\n );\n const initialElements = tickUtils.snapElements(\n model.graph.domain,\n ticks,\n model.graph.initialElements\n );\n\n const graph = { ...this.props.model.graph, ticks, initialElements };\n onChange({ graph, correctResponse });\n };\n\n changeArrows = arrows => this.graphChange({ arrows });\n\n setDefaults = () => {\n const { graph: { availableTypes, maxNumberOfPoints }} = defaultModel;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...cloneDeep(defaultModel.graph), height };\n\n this.props.onChange({ graph });\n };\n\n exhibitChanged = (event, value) => {\n const graph = { ...this.props.model.graph, exhibitOnly: value };\n this.props.onChange({ graph });\n };\n\n moveCorrectResponse = (index, el, position) => {\n const { onChange, model } = this.props;\n el.position = position;\n const update = toSessionFormat(\n el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el\n );\n const correctResponse = [...model.correctResponse];\n correctResponse[index] = update;\n onChange({ correctResponse });\n };\n\n moveInitialView = (index, el, position) => {\n const { model, onChange } = this.props;\n el.position = position;\n const update = toSessionFormat(\n el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el\n );\n const initialElements = [...this.props.model.graph.initialElements];\n initialElements[index] = update;\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n availableTypesChange = availableTypes => {\n const { model, onChange } = this.props;\n const { correctResponse, graph: { maxNumberOfPoints }} = model;\n\n new Set(correctResponse.map(toPointType)).forEach(pointType => {\n availableTypes[pointType] = true;\n });\n\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...model.graph, availableTypes, height };\n\n onChange({ graph });\n };\n\n deleteCorrectResponse = indices => {\n const { model, onChange } = this.props;\n const correctResponse = model.correctResponse.filter((v, index) => {\n return !indices.some(d => d === index);\n });\n onChange({ correctResponse });\n };\n\n deleteInitialView = indices => {\n const { model, onChange } = this.props;\n const initialElements = model.graph.initialElements.filter((v, index) => {\n return !indices.some(d => d === index);\n });\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n addCorrectResponse = data => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.push(toSessionFormat(data));\n onChange({ correctResponse });\n };\n\n addInitialView = data => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.push(toSessionFormat(data));\n onChange({ graph });\n };\n\n clearCorrectResponse = () => {\n const { onChange } = this.props;\n const correctResponse = [];\n onChange({ correctResponse });\n };\n\n clearInitialView = () => {\n const { model, onChange } = this.props;\n const initialElements = [];\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n undoCorrectResponse = () => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.pop();\n onChange({ correctResponse });\n };\n\n undoInitialView = () => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.pop();\n onChange({ graph });\n };\n\n onAddElement = this.addInitialView;\n\n render() {\n const { classes, model, onChange, configuration } = this.props;\n\n const { graph, spellCheckEnabled } = model;\n const { prompt = {}, spellCheck = {} } = configuration || {};\n\n\n console.log(spellCheckEnabled, spellCheckEnabled)\n const correctResponse = cloneDeep(model.correctResponse || []).map(\n toGraphFormat\n );\n\n const initialView = cloneDeep(graph.initialElements || []).map(\n toGraphFormat\n );\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n return (\n <div className={classes.root}>\n\n {prompt.settings && (\n <FormSection label={prompt.label}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={prompt => onChange({ prompt })}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </FormSection>\n )}\n\n <CardBar header=\"Attributes\">\n Set up the number line by entering the domain and number of tick marks\n to display. Labels on the number line can be edited or removed by\n clicking on the label.\n </CardBar>\n\n <div className={classes.row}>\n <FormSection label={'Size'}>\n <Size size={graph} onChange={this.changeSize} />\n </FormSection>\n\n <FormSection label={'Domain'}>\n <Domain\n domain={graph.domain}\n onChange={domain => this.graphChange({ domain })}\n />\n </FormSection>\n </div>\n <div className={classes.row}>\n <FormSection label={'Ticks'}>\n <Ticks\n ticks={graph.ticks}\n onChange={this.changeTicks}\n domain={graph.domain}\n />\n </FormSection>\n <FormSection label={'Arrows'}>\n <Arrows arrows={graph.arrows} onChange={this.changeArrows} />\n </FormSection>\n </div>\n <FormSection label={'Title'}>\n <EditableHtml\n markup={graph.title || ''}\n onChange={this.changeGraphTitle}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </FormSection>\n <FormSection label={'Limits'}>\n <NumberTextField\n className={classes.maxNumberOfPoints}\n label=\"Max No of Elements\"\n min={1}\n max={20}\n value={graph.maxNumberOfPoints}\n onChange={this.changeMaxNoOfPoints}\n />\n </FormSection>\n <Button\n variant=\"outlined\"\n mini\n color=\"primary\"\n onClick={this.setDefaults}\n >\n Reset to default values\n </Button>\n <br />\n <br />\n\n {!graph.exhibitOnly && (\n <div>\n <CardBar header=\"Correct Response\">\n Select answer type and place it on the number line. Intersecting\n points, line segments and/or rays will appear above the number\n line.{' '}\n <i>\n Note: A maximum of 20 points, line segments or rays may be\n plotted.\n </i>\n </CardBar>\n\n <NumberLineComponent\n onMoveElement={this.moveCorrectResponse}\n onDeleteElements={this.deleteCorrectResponse}\n onAddElement={this.addCorrectResponse}\n onClearElements={this.clearCorrectResponse}\n onUndoElement={this.undoCorrectResponse}\n answer={correctResponse}\n //strip feedback for this model\n model={trimModel(model)}\n />\n <CardBar header=\"Available Types\" mini>\n Click on the input options to be displayed to the students. All\n inputs will display by default.\n </CardBar>\n <div className={classes.pointTypeChooser}>\n <PointConfig\n onSelectionChange={this.availableTypesChange}\n selection={graph.availableTypes}\n />\n </div>\n </div>\n )}\n <CardBar header=\"Initial view/Make Exhibit\">\n Use this number line to set a starting point, line segment or ray.\n This is optional. <br />\n This number line may also be used to make an exhibit number line,\n which can not be manipulated by a student.\n </CardBar>\n <NumberLineComponent\n onMoveElement={this.moveInitialView}\n onDeleteElements={this.deleteInitialView}\n onAddElement={this.onAddElement}\n onClearElements={this.clearInitialView}\n onUndoElement={this.undoInitialView}\n answer={initialView}\n model={trimModel(model)}\n />\n <InputCheckbox\n label=\"Make exhibit\"\n className={classes.checkbox}\n checked={graph.exhibitOnly}\n onChange={this.exhibitChanged}\n value={'exhibitOnly'}\n />\n\n {!graph.exhibitOnly && (\n <React.Fragment>\n <br />\n <FeedbackConfig\n feedback={model.feedback}\n onChange={feedback => onChange({ feedback })}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@pie-element/number-line-configure",
3
3
  "private": true,
4
- "version": "4.9.4",
4
+ "version": "4.9.5",
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.js",
7
7
  "dependencies": {
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@pie-framework/pie-configure-events": "^1.2.0",
10
- "@pie-lib/config-ui": "^10.10.23",
11
- "@pie-lib/editable-html": "^7.19.2",
10
+ "@pie-lib/config-ui": "^10.10.24",
11
+ "@pie-lib/editable-html": "^7.19.3",
12
12
  "react": "^16.8.1",
13
13
  "react-dom": "^16.8.1"
14
14
  }
@@ -19,6 +19,22 @@
19
19
  }
20
20
  }
21
21
  },
22
+ "spellCheck": {
23
+ "title": "ConfigureProp",
24
+ "type": "object",
25
+ "properties": {
26
+ "settings": {
27
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
28
+ "type": "boolean",
29
+ "title": "settings"
30
+ },
31
+ "label": {
32
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
33
+ "type": "string",
34
+ "title": "label"
35
+ }
36
+ }
37
+ },
22
38
  "showPrompt": {
23
39
  "description": "Determines whether prompt field will be displayed or not",
24
40
  "default": true,
@@ -14,6 +14,18 @@ Indicates if the item has to be displayed in the Settings Panel
14
14
 
15
15
  Indicates the label for the item that has to be displayed in the Settings Panel
16
16
 
17
+ # `spellCheck` (object)
18
+
19
+ Properties of the `spellCheck` object:
20
+
21
+ ## `settings` (boolean)
22
+
23
+ Indicates if the item has to be displayed in the Settings Panel
24
+
25
+ ## `label` (string)
26
+
27
+ Indicates the label for the item that has to be displayed in the Settings Panel
28
+
17
29
  # `showPrompt` (boolean)
18
30
 
19
31
  Determines whether prompt field will be displayed or not
@@ -643,6 +643,11 @@
643
643
  "type": "string",
644
644
  "title": "prompt"
645
645
  },
646
+ "spellCheckEnabled": {
647
+ "description": "Indicates if spellcheck is enabled",
648
+ "type": "boolean",
649
+ "title": "spellCheckEnabled"
650
+ },
646
651
  "toolbarEditorPosition": {
647
652
  "description": "Indicates the editor's toolbar position which can be 'bottom' or 'top'",
648
653
  "default": ": 'bottom'",
@@ -669,7 +674,8 @@
669
674
  "element",
670
675
  "graph",
671
676
  "id",
672
- "partialScoring"
677
+ "partialScoring",
678
+ "spellCheckEnabled"
673
679
  ],
674
680
  "definitions": {
675
681
  "ConfigureProp": {
@@ -144,6 +144,10 @@ Indicates the fractional step between 2 labeled ticks
144
144
 
145
145
  The question prompt or item stem
146
146
 
147
+ # `spellCheckEnabled` (boolean, required)
148
+
149
+ Indicates if spellcheck is enabled
150
+
147
151
  # `toolbarEditorPosition` (string, enum)
148
152
 
149
153
  Indicates the editor's toolbar position which can be 'bottom' or 'top'
@@ -266,7 +266,7 @@ var buildTickData = function buildTickData(domain, ticks, opts) {
266
266
  var result = buildTickDataAsFractions(domain, ticks, opts);
267
267
  var out = result.map(function (o) {
268
268
  return opts.fraction ? o : _objectSpread(_objectSpread({}, o), {}, {
269
- x: math.number(o.x)
269
+ x: math.number(o.x) || 0
270
270
  });
271
271
  });
272
272
  return out;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/tick-utils.js"],"names":["fractionSnapTo","min","max","interval","value","fmax","fmin","mod","v","half","div","math","largerEq","abs","d","sub","fn","fn2","snapTo","out","fraction","number","fractionRange","start","end","m","equal","Error","e","subtract","direction","larger","smallerEq","compareFn","next","push","add","zbrErrorMessage","zeroBasedRange","length","a","multiplier","smaller","s","r","map","multiply","reverse","b","simpleRange","positiveRange","negativeRange","together","concat","closeTo","precision","expectedDiff","Math","pow","receivedDiff","limit","minorLimits","domain","divide","isMultiple","multiple","src","n","normalizeTicks","ticks","opts","l","minor","major","buildTickDataAsFractions","rng","o","filter","x","type","modulo","buildTickData","result","snapElements","elements","size","Number","isFinite","undefined","domainPosition"],"mappings":"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","sourcesContent":["import * as math from 'mathjs';\nimport uniqWith from 'lodash/uniqWith';\nimport isObject from 'lodash/isObject';\nimport isNumber from 'lodash/isNumber';\n\nexport const fractionSnapTo = (min, max, interval, value) => {\n value = fmax(fmin(value, max), min);\n const mod = value.mod(interval);\n let v;\n\n const half = interval.div(2);\n if (math.largerEq(math.abs(mod), half)) {\n const d = interval.sub(math.abs(mod));\n const fn = math.largerEq(value, 0) ? 'add' : 'sub';\n v = value[fn](d);\n } else {\n const fn2 = math.largerEq(value, 0) ? 'sub' : 'add';\n v = value[fn2](math.abs(mod));\n }\n return v;\n};\n\nexport const snapTo = (min, max, interval, value) => {\n const out = fractionSnapTo(\n math.fraction(min),\n math.fraction(max),\n math.fraction(interval),\n math.fraction(value)\n );\n return math.number(out);\n};\n\nexport const fractionRange = (start, end, interval) => {\n const m = math.mod(math.abs(start), math.abs(interval));\n if (!math.equal(m, 0)) {\n throw new Error('start point must be divisible by interval');\n }\n\n if (math.equal(start, end)) {\n return [];\n }\n\n const e = math.subtract(end, math.mod(end, math.abs(interval)));\n\n const direction = math.larger(interval, 0) ? 'positive' : 'negative';\n\n if (direction === 'negative' && math.largerEq(end, start)) {\n throw new Error('start must be > than end when doing a negative decrement');\n }\n if (direction === 'positive' && math.smallerEq(end, start)) {\n throw new Error('start must be < end when doing increments');\n }\n const compareFn =\n direction === 'positive'\n ? math.smallerEq\n : math.equal(e, end)\n ? math.largerEq\n : math.larger;\n const out = [];\n\n let next = start;\n while (compareFn(next, e)) {\n out.push(next);\n next = math.add(next, interval);\n }\n return out;\n};\n\nexport const zbrErrorMessage = (start, end) =>\n `Can only do a positive or negative range, but got: start: ${start} and end:${end}`;\n\nexport const zeroBasedRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const length = math.abs(math.subtract(end, start));\n\n if (math.larger(length, math.abs(end))) {\n throw new Error(zbrErrorMessage(start, end));\n }\n const a = {\n start: math.abs(start),\n end: math.abs(end),\n interval: math.abs(interval),\n multiplier: math.smaller(interval, 0) ? -1 : 1,\n };\n\n const m = math.mod(a.start, a.interval);\n const s = math.larger(m, 0)\n ? math.add(math.subtract(a.start, m), a.interval)\n : a.start;\n\n const r = fractionRange(s, a.end, a.interval);\n const out = a.multiplier === -1 ? r.map((v) => math.multiply(v, -1)) : r;\n\n if (math.smaller(interval, 0)) {\n out.reverse();\n }\n return out;\n};\n\nconst fmin = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.smaller(a, b) ? a : b;\n};\n\nconst fmax = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.larger(a, b) ? a : b;\n};\n/**\n * the lodash range was causing too much variance in the rounding errors\n * such that it was hard to round the numbers.\n * This is a more simplistic version but makes rounding work.\n */\nexport const simpleRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const positiveRange = math.larger(end, 0)\n ? zeroBasedRange(fmax(0, start), end, interval)\n : [];\n\n const negativeRange = math.smaller(start, 0)\n ? zeroBasedRange(fmin(0, end), start, math.multiply(interval, -1))\n : [];\n let together = negativeRange.concat(positiveRange);\n\n const out = uniqWith(together, math.equal);\n return out;\n};\n\nexport const closeTo = (a, b, precision) => {\n precision = precision || 2;\n const expectedDiff = Math.pow(10, -precision) / 2;\n const receivedDiff = Math.abs(a - b);\n return receivedDiff < expectedDiff;\n};\n\nconst limit = (v, min, max) => {\n if (math.smaller(v, min)) {\n return min;\n }\n\n if (math.larger(v, max)) {\n return max;\n }\n\n return v;\n};\n\nexport const minorLimits = (domain) => {\n const end = domain.max - domain.min;\n return {\n min: math.divide(math.fraction(end), 100),\n max: math.divide(math.fraction(end), 3),\n };\n};\n\nexport const isMultiple = (multiple, src) => {\n const mod = math.mod(multiple, src);\n return math.equal(mod, 0);\n};\n\n/**\n * Accepts a fraction object {n,d,s} or number.\n * @param {*} v\n * @return mathjs.fraction\n */\nexport const fraction = (v) => {\n if (isObject(v)) {\n return math.fraction(v.n * v.s, v.d);\n } else if (isNumber(v)) {\n return math.fraction(v);\n }\n};\n\nexport const normalizeTicks = (domain, ticks, opts) => {\n const l = opts ? opts.limit !== false : true;\n const end = fraction(domain.max - domain.min);\n const minor = l\n ? limit(fraction(ticks.minor), math.divide(end, 100), math.divide(end, 3))\n : math.fraction(ticks.minor);\n const major = l\n ? limit(fraction(ticks.major), minor, math.multiply(minor, 10))\n : math.fraction(ticks.major);\n\n const m = isMultiple(major, minor);\n\n if (!m) {\n return { minor, major: math.multiply(minor, 2) };\n }\n\n return { major, minor };\n};\n\n/**\n * Build ticks as an array of mathjs Fractions\n */\nexport const buildTickDataAsFractions = (domain, ticks, opts) => {\n ticks = normalizeTicks(domain, ticks, opts);\n const rng = simpleRange(domain.min, domain.max, ticks.minor);\n\n const o = rng\n .filter((x) => math.smallerEq(x, math.fraction(domain.max)))\n .map((x) => {\n let type = 'minor';\n const modulo = math.mod(x, ticks.major);\n\n if (closeTo(math.number(modulo), 0)) {\n type = 'major';\n }\n\n return { x, type };\n });\n\n return o;\n};\n\nexport const buildTickData = (domain, ticks, opts) => {\n const result = buildTickDataAsFractions(domain, ticks, opts);\n\n const out = result.map((o) => (opts.fraction ? o : { ...o, x: math.number(o.x) }));\n\n return out;\n};\n\nexport const snapElements = (domain, ticks, elements) => {\n return elements.map((e) => {\n const size = Number.isFinite(e.size)\n ? snapTo(0, e.size, ticks.minor, e.size)\n : undefined;\n const domainPosition = snapTo(\n domain.min,\n domain.max,\n ticks.minor,\n e.domainPosition\n );\n const out = { ...e, domainPosition };\n\n if (Number.isFinite(size)) {\n out.size = size;\n }\n\n return out;\n });\n};\n"],"file":"tick-utils.js"}
1
+ {"version":3,"sources":["../../../src/number-line/graph/tick-utils.js"],"names":["fractionSnapTo","min","max","interval","value","fmax","fmin","mod","v","half","div","math","largerEq","abs","d","sub","fn","fn2","snapTo","out","fraction","number","fractionRange","start","end","m","equal","Error","e","subtract","direction","larger","smallerEq","compareFn","next","push","add","zbrErrorMessage","zeroBasedRange","length","a","multiplier","smaller","s","r","map","multiply","reverse","b","simpleRange","positiveRange","negativeRange","together","concat","closeTo","precision","expectedDiff","Math","pow","receivedDiff","limit","minorLimits","domain","divide","isMultiple","multiple","src","n","normalizeTicks","ticks","opts","l","minor","major","buildTickDataAsFractions","rng","o","filter","x","type","modulo","buildTickData","result","snapElements","elements","size","Number","isFinite","undefined","domainPosition"],"mappings":"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","sourcesContent":["import * as math from 'mathjs';\nimport uniqWith from 'lodash/uniqWith';\nimport isObject from 'lodash/isObject';\nimport isNumber from 'lodash/isNumber';\n\nexport const fractionSnapTo = (min, max, interval, value) => {\n value = fmax(fmin(value, max), min);\n const mod = value.mod(interval);\n let v;\n\n const half = interval.div(2);\n if (math.largerEq(math.abs(mod), half)) {\n const d = interval.sub(math.abs(mod));\n const fn = math.largerEq(value, 0) ? 'add' : 'sub';\n v = value[fn](d);\n } else {\n const fn2 = math.largerEq(value, 0) ? 'sub' : 'add';\n v = value[fn2](math.abs(mod));\n }\n return v;\n};\n\nexport const snapTo = (min, max, interval, value) => {\n const out = fractionSnapTo(\n math.fraction(min),\n math.fraction(max),\n math.fraction(interval),\n math.fraction(value)\n );\n return math.number(out);\n};\n\nexport const fractionRange = (start, end, interval) => {\n const m = math.mod(math.abs(start), math.abs(interval));\n if (!math.equal(m, 0)) {\n throw new Error('start point must be divisible by interval');\n }\n\n if (math.equal(start, end)) {\n return [];\n }\n\n const e = math.subtract(end, math.mod(end, math.abs(interval)));\n\n const direction = math.larger(interval, 0) ? 'positive' : 'negative';\n\n if (direction === 'negative' && math.largerEq(end, start)) {\n throw new Error('start must be > than end when doing a negative decrement');\n }\n if (direction === 'positive' && math.smallerEq(end, start)) {\n throw new Error('start must be < end when doing increments');\n }\n const compareFn =\n direction === 'positive'\n ? math.smallerEq\n : math.equal(e, end)\n ? math.largerEq\n : math.larger;\n const out = [];\n\n let next = start;\n while (compareFn(next, e)) {\n out.push(next);\n next = math.add(next, interval);\n }\n return out;\n};\n\nexport const zbrErrorMessage = (start, end) =>\n `Can only do a positive or negative range, but got: start: ${start} and end:${end}`;\n\nexport const zeroBasedRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const length = math.abs(math.subtract(end, start));\n\n if (math.larger(length, math.abs(end))) {\n throw new Error(zbrErrorMessage(start, end));\n }\n const a = {\n start: math.abs(start),\n end: math.abs(end),\n interval: math.abs(interval),\n multiplier: math.smaller(interval, 0) ? -1 : 1,\n };\n\n const m = math.mod(a.start, a.interval);\n const s = math.larger(m, 0)\n ? math.add(math.subtract(a.start, m), a.interval)\n : a.start;\n\n const r = fractionRange(s, a.end, a.interval);\n const out = a.multiplier === -1 ? r.map((v) => math.multiply(v, -1)) : r;\n\n if (math.smaller(interval, 0)) {\n out.reverse();\n }\n return out;\n};\n\nconst fmin = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.smaller(a, b) ? a : b;\n};\n\nconst fmax = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.larger(a, b) ? a : b;\n};\n/**\n * the lodash range was causing too much variance in the rounding errors\n * such that it was hard to round the numbers.\n * This is a more simplistic version but makes rounding work.\n */\nexport const simpleRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const positiveRange = math.larger(end, 0)\n ? zeroBasedRange(fmax(0, start), end, interval)\n : [];\n\n const negativeRange = math.smaller(start, 0)\n ? zeroBasedRange(fmin(0, end), start, math.multiply(interval, -1))\n : [];\n let together = negativeRange.concat(positiveRange);\n\n const out = uniqWith(together, math.equal);\n return out;\n};\n\nexport const closeTo = (a, b, precision) => {\n precision = precision || 2;\n const expectedDiff = Math.pow(10, -precision) / 2;\n const receivedDiff = Math.abs(a - b);\n return receivedDiff < expectedDiff;\n};\n\nconst limit = (v, min, max) => {\n if (math.smaller(v, min)) {\n return min;\n }\n\n if (math.larger(v, max)) {\n return max;\n }\n\n return v;\n};\n\nexport const minorLimits = (domain) => {\n const end = domain.max - domain.min;\n return {\n min: math.divide(math.fraction(end), 100),\n max: math.divide(math.fraction(end), 3),\n };\n};\n\nexport const isMultiple = (multiple, src) => {\n const mod = math.mod(multiple, src);\n return math.equal(mod, 0);\n};\n\n/**\n * Accepts a fraction object {n,d,s} or number.\n * @param {*} v\n * @return mathjs.fraction\n */\nexport const fraction = (v) => {\n if (isObject(v)) {\n return math.fraction(v.n * v.s, v.d);\n } else if (isNumber(v)) {\n return math.fraction(v);\n }\n};\n\nexport const normalizeTicks = (domain, ticks, opts) => {\n const l = opts ? opts.limit !== false : true;\n const end = fraction(domain.max - domain.min);\n const minor = l\n ? limit(fraction(ticks.minor), math.divide(end, 100), math.divide(end, 3))\n : math.fraction(ticks.minor);\n const major = l\n ? limit(fraction(ticks.major), minor, math.multiply(minor, 10))\n : math.fraction(ticks.major);\n\n const m = isMultiple(major, minor);\n\n if (!m) {\n return { minor, major: math.multiply(minor, 2) };\n }\n\n return { major, minor };\n};\n\n/**\n * Build ticks as an array of mathjs Fractions\n */\nexport const buildTickDataAsFractions = (domain, ticks, opts) => {\n ticks = normalizeTicks(domain, ticks, opts);\n const rng = simpleRange(domain.min, domain.max, ticks.minor);\n\n const o = rng\n .filter((x) => math.smallerEq(x, math.fraction(domain.max)))\n .map((x) => {\n let type = 'minor';\n const modulo = math.mod(x, ticks.major);\n\n if (closeTo(math.number(modulo), 0)) {\n type = 'major';\n }\n\n return { x, type };\n });\n\n return o;\n};\n\nexport const buildTickData = (domain, ticks, opts) => {\n const result = buildTickDataAsFractions(domain, ticks, opts);\n\n const out = result.map((o) => (opts.fraction ? o : { ...o, x: math.number(o.x) || 0 }));\n\n return out;\n};\n\nexport const snapElements = (domain, ticks, elements) => {\n return elements.map((e) => {\n const size = Number.isFinite(e.size)\n ? snapTo(0, e.size, ticks.minor, e.size)\n : undefined;\n const domainPosition = snapTo(\n domain.min,\n domain.max,\n ticks.minor,\n e.domainPosition\n );\n const out = { ...e, domainPosition };\n\n if (Number.isFinite(size)) {\n out.size = size;\n }\n\n return out;\n });\n};\n"],"file":"tick-utils.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/number-line",
3
- "version": "5.14.5",
3
+ "version": "5.14.6",
4
4
  "repository": "pie-framework/pie-elements",
5
5
  "description": "",
6
6
  "publishConfig": {
@@ -8,11 +8,11 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
- "@pie-lib/correct-answer-toggle": "^2.3.34",
11
+ "@pie-lib/correct-answer-toggle": "^2.3.35",
12
12
  "@pie-lib/feedback": "^0.4.27",
13
13
  "@pie-lib/icons": "^2.4.25",
14
- "@pie-lib/math-rendering": "^2.3.12",
15
- "@pie-lib/render-ui": "^4.12.4",
14
+ "@pie-lib/math-rendering": "^2.3.13",
15
+ "@pie-lib/render-ui": "^4.12.5",
16
16
  "classnames": "^2.2.5",
17
17
  "d3-scale": "^3.2.1",
18
18
  "d3-selection": "^1.4.1",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "author": "pie framework developers",
29
29
  "license": "ISC",
30
- "gitHead": "7b61c8a15ceae75e9e6db5d465abfb6d22c34f30",
30
+ "gitHead": "b32a90d35916de8f2b77d7b3428b02efbd145313",
31
31
  "scripts": {
32
32
  "postpublish": "../../scripts/postpublish"
33
33
  },