@pie-element/number-line 6.16.1 → 6.16.2-next.2

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.
Files changed (35) hide show
  1. package/configure/lib/arrows.js +1 -1
  2. package/configure/lib/arrows.js.map +1 -1
  3. package/configure/lib/main.js +2 -2
  4. package/configure/lib/main.js.map +1 -1
  5. package/configure/lib/number-text-field.js +1 -1
  6. package/configure/lib/number-text-field.js.map +1 -1
  7. package/configure/package.json +1 -2
  8. package/controller/lib/index.js +2 -2
  9. package/controller/lib/index.js.map +1 -1
  10. package/controller/package.json +1 -2
  11. package/lib/index.js +1 -1
  12. package/lib/index.js.map +1 -1
  13. package/lib/number-line/colors.js +1 -1
  14. package/lib/number-line/colors.js.map +1 -1
  15. package/lib/number-line/feedback.js +2 -2
  16. package/lib/number-line/feedback.js.map +1 -1
  17. package/lib/number-line/graph/arrow.js +1 -1
  18. package/lib/number-line/graph/arrow.js.map +1 -1
  19. package/lib/number-line/graph/elements/line.js +1 -1
  20. package/lib/number-line/graph/elements/line.js.map +1 -1
  21. package/lib/number-line/graph/elements/point.js +1 -1
  22. package/lib/number-line/graph/elements/point.js.map +1 -1
  23. package/lib/number-line/graph/elements/ray.js +1 -1
  24. package/lib/number-line/graph/elements/ray.js.map +1 -1
  25. package/lib/number-line/graph/index.js +1 -1
  26. package/lib/number-line/graph/index.js.map +1 -1
  27. package/lib/number-line/graph/line.js +1 -1
  28. package/lib/number-line/graph/line.js.map +1 -1
  29. package/lib/number-line/graph/ticks.js +1 -1
  30. package/lib/number-line/graph/ticks.js.map +1 -1
  31. package/lib/number-line/index.js +3 -3
  32. package/lib/number-line/index.js.map +1 -1
  33. package/lib/number-line/point-chooser/index.js +1 -1
  34. package/lib/number-line/point-chooser/index.js.map +1 -1
  35. package/package.json +3 -8
@@ -29,7 +29,7 @@ var _styles = require("@material-ui/core/styles");
29
29
 
30
30
  var _classnames = _interopRequireDefault(require("classnames"));
31
31
 
32
- var _configUi = require("@pie-lib/config-ui");
32
+ var _configUi = require("@pie-lib/pie-toolbox/config-ui");
33
33
 
34
34
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
35
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/arrows.jsx"],"names":["Arrows","props","change","key","event","value","update","arrows","onChange","changeLeft","bind","changeRight","classes","className","checkbox","left","right","React","Component","PropTypes","object","isRequired","string","shape","bool","func","styles","theme","paddingTop","spacing","unit"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,M;;;;;AAWX,kBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;;AAEA,UAAKC,MAAL,GAAc,UAACC,GAAD,EAAMC,KAAN,EAAaC,KAAb,EAAuB;AACnC,UAAMC,MAAM,mCAAQ,MAAKL,KAAL,CAAWM,MAAnB,4CAA4BJ,GAA5B,EAAkCE,KAAlC,EAAZ;;AACA,YAAKJ,KAAL,CAAWO,QAAX,CAAoBF,MAApB;AACD,KAHD;;AAIA,UAAKG,UAAL,GAAkB,MAAKP,MAAL,CAAYQ,IAAZ,iDAAuB,MAAvB,CAAlB;AACA,UAAKC,WAAL,GAAmB,MAAKT,MAAL,CAAYQ,IAAZ,iDAAuB,OAAvB,CAAnB;AARiB;AASlB;;;;WAED,kBAAS;AACP,wBAAuC,KAAKT,KAA5C;AAAA,UAAQW,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BN,MAA5B,eAA4BA,MAA5B;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAGK,OAAO,CAACL,MAAX,EAAmBM,SAAnB;AAAhB,sBACE,gCAAC,uBAAD;AAAe,QAAA,SAAS,EAAED,OAAO,CAACE,QAAlC;AAA4C,QAAA,KAAK,EAAE,MAAnD;AAA2D,QAAA,OAAO,EAAEP,MAAM,CAACQ,IAA3E;AAAiF,QAAA,QAAQ,EAAE,KAAKN;AAAhG,QADF,uBAGE,gCAAC,uBAAD;AACE,QAAA,SAAS,EAAEG,OAAO,CAACE,QADrB;AAEE,QAAA,KAAK,EAAE,OAFT;AAGE,QAAA,OAAO,EAAEP,MAAM,CAACS,KAHlB;AAIE,QAAA,QAAQ,EAAE,KAAKL;AAJjB,QAHF,CADF;AAYD;;;EApCyBM,kBAAMC,S;;;iCAArBlB,M,eACQ;AACjBY,EAAAA,OAAO,EAAEO,sBAAUC,MAAV,CAAiBC,UADT;AAEjBR,EAAAA,SAAS,EAAEM,sBAAUG,MAFJ;AAGjBf,EAAAA,MAAM,EAAEY,sBAAUI,KAAV,CAAgB;AAAER,IAAAA,IAAI,EAAEI,sBAAUK,IAAlB;AAAwBR,IAAAA,KAAK,EAAEG,sBAAUK;AAAzC,GAAhB,EAAiEH,UAHxD;AAIjBb,EAAAA,QAAQ,EAAEW,sBAAUM;AAJH,C;iCADRzB,M,kBAOW;AACpBO,EAAAA,MAAM,EAAE;AAAEQ,IAAAA,IAAI,EAAE,IAAR;AAAcC,IAAAA,KAAK,EAAE;AAArB;AADY,C;;AA+BxB,IAAMU,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBpB,IAAAA,MAAM,EAAE;AACNqB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAD3B;AADiB,GAAZ;AAAA,CAAf;;eAKe,wBAAWJ,MAAX,EAAmB1B,MAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport { InputCheckbox } from '@pie-lib/config-ui';\n\nexport class Arrows extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n arrows: PropTypes.shape({ left: PropTypes.bool, right: PropTypes.bool }).isRequired,\n onChange: PropTypes.func,\n };\n static defaultProps = {\n arrows: { left: true, right: true },\n };\n\n constructor(props) {\n super(props);\n\n this.change = (key, event, value) => {\n const update = { ...this.props.arrows, [key]: value };\n this.props.onChange(update);\n };\n this.changeLeft = this.change.bind(this, 'left');\n this.changeRight = this.change.bind(this, 'right');\n }\n\n render() {\n const { classes, className, arrows } = this.props;\n return (\n <div className={cn(classes.arrows, className)}>\n <InputCheckbox className={classes.checkbox} label={'Left'} checked={arrows.left} onChange={this.changeLeft} />\n &nbsp;\n <InputCheckbox\n className={classes.checkbox}\n label={'Right'}\n checked={arrows.right}\n onChange={this.changeRight}\n />\n </div>\n );\n }\n}\nconst styles = (theme) => ({\n arrows: {\n paddingTop: theme.spacing.unit * 2,\n },\n});\nexport default withStyles(styles)(Arrows);\n"],"file":"arrows.js"}
1
+ {"version":3,"sources":["../src/arrows.jsx"],"names":["Arrows","props","change","key","event","value","update","arrows","onChange","changeLeft","bind","changeRight","classes","className","checkbox","left","right","React","Component","PropTypes","object","isRequired","string","shape","bool","func","styles","theme","paddingTop","spacing","unit"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,M;;;;;AAWX,kBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;;AAEA,UAAKC,MAAL,GAAc,UAACC,GAAD,EAAMC,KAAN,EAAaC,KAAb,EAAuB;AACnC,UAAMC,MAAM,mCAAQ,MAAKL,KAAL,CAAWM,MAAnB,4CAA4BJ,GAA5B,EAAkCE,KAAlC,EAAZ;;AACA,YAAKJ,KAAL,CAAWO,QAAX,CAAoBF,MAApB;AACD,KAHD;;AAIA,UAAKG,UAAL,GAAkB,MAAKP,MAAL,CAAYQ,IAAZ,iDAAuB,MAAvB,CAAlB;AACA,UAAKC,WAAL,GAAmB,MAAKT,MAAL,CAAYQ,IAAZ,iDAAuB,OAAvB,CAAnB;AARiB;AASlB;;;;WAED,kBAAS;AACP,wBAAuC,KAAKT,KAA5C;AAAA,UAAQW,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BN,MAA5B,eAA4BA,MAA5B;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAGK,OAAO,CAACL,MAAX,EAAmBM,SAAnB;AAAhB,sBACE,gCAAC,uBAAD;AAAe,QAAA,SAAS,EAAED,OAAO,CAACE,QAAlC;AAA4C,QAAA,KAAK,EAAE,MAAnD;AAA2D,QAAA,OAAO,EAAEP,MAAM,CAACQ,IAA3E;AAAiF,QAAA,QAAQ,EAAE,KAAKN;AAAhG,QADF,uBAGE,gCAAC,uBAAD;AACE,QAAA,SAAS,EAAEG,OAAO,CAACE,QADrB;AAEE,QAAA,KAAK,EAAE,OAFT;AAGE,QAAA,OAAO,EAAEP,MAAM,CAACS,KAHlB;AAIE,QAAA,QAAQ,EAAE,KAAKL;AAJjB,QAHF,CADF;AAYD;;;EApCyBM,kBAAMC,S;;;iCAArBlB,M,eACQ;AACjBY,EAAAA,OAAO,EAAEO,sBAAUC,MAAV,CAAiBC,UADT;AAEjBR,EAAAA,SAAS,EAAEM,sBAAUG,MAFJ;AAGjBf,EAAAA,MAAM,EAAEY,sBAAUI,KAAV,CAAgB;AAAER,IAAAA,IAAI,EAAEI,sBAAUK,IAAlB;AAAwBR,IAAAA,KAAK,EAAEG,sBAAUK;AAAzC,GAAhB,EAAiEH,UAHxD;AAIjBb,EAAAA,QAAQ,EAAEW,sBAAUM;AAJH,C;iCADRzB,M,kBAOW;AACpBO,EAAAA,MAAM,EAAE;AAAEQ,IAAAA,IAAI,EAAE,IAAR;AAAcC,IAAAA,KAAK,EAAE;AAArB;AADY,C;;AA+BxB,IAAMU,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBpB,IAAAA,MAAM,EAAE;AACNqB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAD3B;AADiB,GAAZ;AAAA,CAAf;;eAKe,wBAAWJ,MAAX,EAAmB1B,MAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport { InputCheckbox } from '@pie-lib/pie-toolbox/config-ui';\n\nexport class Arrows extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n arrows: PropTypes.shape({ left: PropTypes.bool, right: PropTypes.bool }).isRequired,\n onChange: PropTypes.func,\n };\n static defaultProps = {\n arrows: { left: true, right: true },\n };\n\n constructor(props) {\n super(props);\n\n this.change = (key, event, value) => {\n const update = { ...this.props.arrows, [key]: value };\n this.props.onChange(update);\n };\n this.changeLeft = this.change.bind(this, 'left');\n this.changeRight = this.change.bind(this, 'right');\n }\n\n render() {\n const { classes, className, arrows } = this.props;\n return (\n <div className={cn(classes.arrows, className)}>\n <InputCheckbox className={classes.checkbox} label={'Left'} checked={arrows.left} onChange={this.changeLeft} />\n &nbsp;\n <InputCheckbox\n className={classes.checkbox}\n label={'Right'}\n checked={arrows.right}\n onChange={this.changeRight}\n />\n </div>\n );\n }\n}\nconst styles = (theme) => ({\n arrows: {\n paddingTop: theme.spacing.unit * 2,\n },\n});\nexport default withStyles(styles)(Arrows);\n"],"file":"arrows.js"}
@@ -27,9 +27,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
27
27
 
28
28
  var _react = _interopRequireDefault(require("react"));
29
29
 
30
- var _configUi = require("@pie-lib/config-ui");
30
+ var _configUi = require("@pie-lib/pie-toolbox/config-ui");
31
31
 
32
- var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
32
+ var _editableHtml = _interopRequireDefault(require("@pie-lib/pie-toolbox/editable-html"));
33
33
 
34
34
  var _numberLine = require("@pie-element/number-line");
35
35
 
@@ -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","marginBottom","row","display","flexWrap","paddingRight","pointTypeChooser","margin","promptContainer","paddingTop","tooltip","fontSize","typography","whiteSpace","maxWidth","inlineFlexContainer","resetButton","errorText","color","palette","error","main","toPointType","response","rest","pointType","direction","leftPoint","rightPoint","type","toUpperCase","Main","props","obj","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","classes","configuration","uploadSoundSupport","contentDimensions","mathMlOptions","errors","spellCheckEnabled","toolbarEditorPosition","widthError","domainError","maxError","pointsError","correctResponseError","validationMessage","initialView","toolbarOpts","settings","label","language","marginLeft","changeSize","changeTicks","changeArrows","changeGraphTitle","changeMaxNoOfPoints","setDefaults","availableTypesChange","moveCorrectResponse","deleteCorrectResponse","addCorrectResponse","clearCorrectResponse","undoCorrectResponse","moveInitialView","deleteInitialView","addInitialView","clearInitialView","undoInitialView","exhibitChanged","React","Component","PropTypes","object","isRequired","func","name"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { InputCheckbox, FeedbackConfig, FormSection, InputContainer, layout } from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { NumberLineComponent, dataConverter, tickUtils } from '@pie-element/number-line';\nimport NumberTextField from './number-text-field';\nimport CardBar from './card-bar';\nimport Size from './size';\nimport PropTypes from 'prop-types';\nimport Domain from './domain';\nimport Arrows from './arrows';\nimport PointConfig from './point-config';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport Ticks from './ticks';\nimport { model as defaultModel } from './defaults';\nimport { generateValidationMessage } from './utils';\n\nconst trimModel = (model) => ({\n ...model,\n feedback: undefined,\n prompt: undefined,\n graph: { ...model.graph, title: undefined },\n correctResponse: undefined,\n});\n\nconst { lineIsSwitched, switchGraphLine, toGraphFormat, toSessionFormat } = dataConverter;\n\nconst styles = (theme) => ({\n maxNumberOfPoints: {\n width: '150px',\n },\n checkbox: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n row: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n paddingRight: theme.spacing.unit * 2,\n },\n },\n pointTypeChooser: {\n margin: `${theme.spacing.unit * 2.5}px 0`,\n },\n promptContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n inlineFlexContainer: {\n display: 'inline-flex',\n },\n resetButton: {\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 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\n return response.pointType[0];\n }\n\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 uploadSoundSupport: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const {\n model: {\n graph: { availableTypes, maxNumberOfPoints },\n },\n } = props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ height });\n }\n\n graphChange = (obj) => {\n const { model, onChange } = this.props;\n const graph = { ...model.graph, ...obj };\n\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\n return;\n }\n });\n\n return maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable)\n ? 100\n : 50 + (maxNumberOfPoints || 20) * 25;\n };\n\n changeMaxNoOfPoints = (e, maxNumberOfPoints) => {\n const {\n model: {\n graph: { availableTypes },\n },\n } = 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(model.graph.domain, ticks, model.correctResponse);\n const initialElements = tickUtils.snapElements(model.graph.domain, ticks, model.graph.initialElements);\n const graph = { ...model.graph, ticks, initialElements };\n\n onChange({ graph, correctResponse });\n };\n\n changeArrows = (arrows) => this.graphChange({ arrows });\n\n setDefaults = () => {\n const {\n graph: { availableTypes, maxNumberOfPoints },\n } = 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\n this.props.onChange({ graph });\n };\n\n moveCorrectResponse = (index, el, position) => {\n el.position = position;\n\n const { onChange, model } = this.props;\n const update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);\n const correctResponse = [...model.correctResponse];\n correctResponse[index] = update;\n\n onChange({ correctResponse });\n };\n\n moveInitialView = (index, el, position) => {\n el.position = position;\n\n const { model, onChange } = this.props;\n const update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);\n const initialElements = [...model.graph.initialElements];\n initialElements[index] = update;\n const graph = { ...model.graph, initialElements };\n\n onChange({ graph });\n };\n\n availableTypesChange = (availableTypes) => {\n const { model, onChange } = this.props;\n const {\n correctResponse,\n graph: { maxNumberOfPoints },\n } = 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) => !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) => !indices.some((d) => d === index));\n const graph = { ...model.graph, initialElements };\n\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\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\n onChange({ graph });\n };\n\n clearCorrectResponse = () => {\n const { onChange } = this.props;\n\n onChange({ correctResponse: [] });\n };\n\n clearInitialView = () => {\n const { model, onChange } = this.props;\n const graph = { ...model.graph, initialElements: [] };\n\n onChange({ graph });\n };\n\n undoCorrectResponse = () => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.pop();\n\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\n onChange({ graph });\n };\n\n render() {\n const { classes, model, onChange, configuration, uploadSoundSupport } = this.props;\n const { contentDimensions = {}, prompt = {}, mathMlOptions = {} } = configuration || {};\n const { errors, graph, spellCheckEnabled, toolbarEditorPosition } = model || {};\n\n const { widthError, domainError, maxError, pointsError, correctResponseError } = errors || {};\n const validationMessage = generateValidationMessage();\n\n const correctResponse = cloneDeep(model.correctResponse || []).map(toGraphFormat);\n const initialView = cloneDeep(graph.initialElements || []).map(toGraphFormat);\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n return (\n <layout.ConfigLayout dimensions={contentDimensions} hideSettings={true} settings={null}>\n {prompt.settings && (\n <InputContainer label={prompt.label} className={classes.promptContainer}>\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 uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <CardBar\n header=\"Attributes\"\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </Tooltip>\n }\n >\n Set up the number line by entering the domain and number of tick marks to display. Labels on the number line\n can be edited or removed by 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 domain={graph.domain} onChange={(domain) => this.graphChange({ domain })} />\n </FormSection>\n </div>\n\n {widthError && <div className={classes.errorText}>{widthError}</div>}\n {maxError && <div className={classes.errorText}>{maxError}</div>}\n {domainError && <div className={classes.errorText}>{domainError}</div>}\n\n <div className={classes.row}>\n <FormSection label={'Ticks'}>\n <Ticks ticks={graph.ticks} onChange={this.changeTicks} domain={graph.domain} />\n </FormSection>\n\n <FormSection label={'Arrows'}>\n <Arrows arrows={graph.arrows} onChange={this.changeArrows} />\n </FormSection>\n </div>\n\n <FormSection label={'Title'} className={classes.title}>\n <EditableHtml\n markup={graph.title || ''}\n onChange={this.changeGraphTitle}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </FormSection>\n\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 {pointsError && <div className={classes.errorText}>{pointsError}</div>}\n </FormSection>\n\n <Button className={classes.resetButton} variant=\"outlined\" mini color=\"primary\" onClick={this.setDefaults}>\n Reset to default values\n </Button>\n\n {!graph.exhibitOnly && (\n <React.Fragment>\n <CardBar header=\"Available Types\" mini>\n Click on the input options to be displayed to the students. All inputs will display by default.\n </CardBar>\n\n <div className={classes.pointTypeChooser}>\n <PointConfig onSelectionChange={this.availableTypesChange} selection={graph.availableTypes} />\n </div>\n\n <CardBar header=\"Correct Response\">\n Select answer type and place it on the number line. Intersecting points, line segments and/or rays will\n appear above the number line. <i>Note: A maximum of 20 points, line segments or rays may be plotted.</i>\n </CardBar>\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 {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n </React.Fragment>\n )}\n\n <CardBar header=\"Initial view/Make Exhibit\">\n Use this number line to set a starting point, line segment or ray. This is optional. <br />\n This number line may also be used to make an exhibit number line, which can not be manipulated by a student.\n </CardBar>\n <NumberLineComponent\n onMoveElement={this.moveInitialView}\n onDeleteElements={this.deleteInitialView}\n onAddElement={this.addInitialView}\n onClearElements={this.clearInitialView}\n onUndoElement={this.undoInitialView}\n answer={initialView}\n model={trimModel(model)}\n />\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 <FeedbackConfig\n feedback={model.feedback}\n onChange={(feedback) => onChange({ feedback })}\n toolbarOpts={toolbarOpts}\n />\n )}\n </layout.ConfigLayout>\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","marginBottom","row","display","flexWrap","paddingRight","pointTypeChooser","margin","promptContainer","paddingTop","tooltip","fontSize","typography","whiteSpace","maxWidth","inlineFlexContainer","resetButton","errorText","color","palette","error","main","toPointType","response","rest","pointType","direction","leftPoint","rightPoint","type","toUpperCase","Main","props","obj","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","classes","configuration","uploadSoundSupport","contentDimensions","mathMlOptions","errors","spellCheckEnabled","toolbarEditorPosition","widthError","domainError","maxError","pointsError","correctResponseError","validationMessage","initialView","toolbarOpts","settings","label","language","marginLeft","changeSize","changeTicks","changeArrows","changeGraphTitle","changeMaxNoOfPoints","setDefaults","availableTypesChange","moveCorrectResponse","deleteCorrectResponse","addCorrectResponse","clearCorrectResponse","undoCorrectResponse","moveInitialView","deleteInitialView","addInitialView","clearInitialView","undoInitialView","exhibitChanged","React","Component","PropTypes","object","isRequired","func","name"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { InputCheckbox, FeedbackConfig, FormSection, InputContainer, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport EditableHtml from '@pie-lib/pie-toolbox/editable-html';\nimport { NumberLineComponent, dataConverter, tickUtils } from '@pie-element/number-line';\nimport NumberTextField from './number-text-field';\nimport CardBar from './card-bar';\nimport Size from './size';\nimport PropTypes from 'prop-types';\nimport Domain from './domain';\nimport Arrows from './arrows';\nimport PointConfig from './point-config';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport Ticks from './ticks';\nimport { model as defaultModel } from './defaults';\nimport { generateValidationMessage } from './utils';\n\nconst trimModel = (model) => ({\n ...model,\n feedback: undefined,\n prompt: undefined,\n graph: { ...model.graph, title: undefined },\n correctResponse: undefined,\n});\n\nconst { lineIsSwitched, switchGraphLine, toGraphFormat, toSessionFormat } = dataConverter;\n\nconst styles = (theme) => ({\n maxNumberOfPoints: {\n width: '150px',\n },\n checkbox: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n row: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n paddingRight: theme.spacing.unit * 2,\n },\n },\n pointTypeChooser: {\n margin: `${theme.spacing.unit * 2.5}px 0`,\n },\n promptContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n inlineFlexContainer: {\n display: 'inline-flex',\n },\n resetButton: {\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 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\n return response.pointType[0];\n }\n\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 uploadSoundSupport: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const {\n model: {\n graph: { availableTypes, maxNumberOfPoints },\n },\n } = props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ height });\n }\n\n graphChange = (obj) => {\n const { model, onChange } = this.props;\n const graph = { ...model.graph, ...obj };\n\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\n return;\n }\n });\n\n return maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable)\n ? 100\n : 50 + (maxNumberOfPoints || 20) * 25;\n };\n\n changeMaxNoOfPoints = (e, maxNumberOfPoints) => {\n const {\n model: {\n graph: { availableTypes },\n },\n } = 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(model.graph.domain, ticks, model.correctResponse);\n const initialElements = tickUtils.snapElements(model.graph.domain, ticks, model.graph.initialElements);\n const graph = { ...model.graph, ticks, initialElements };\n\n onChange({ graph, correctResponse });\n };\n\n changeArrows = (arrows) => this.graphChange({ arrows });\n\n setDefaults = () => {\n const {\n graph: { availableTypes, maxNumberOfPoints },\n } = 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\n this.props.onChange({ graph });\n };\n\n moveCorrectResponse = (index, el, position) => {\n el.position = position;\n\n const { onChange, model } = this.props;\n const update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);\n const correctResponse = [...model.correctResponse];\n correctResponse[index] = update;\n\n onChange({ correctResponse });\n };\n\n moveInitialView = (index, el, position) => {\n el.position = position;\n\n const { model, onChange } = this.props;\n const update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);\n const initialElements = [...model.graph.initialElements];\n initialElements[index] = update;\n const graph = { ...model.graph, initialElements };\n\n onChange({ graph });\n };\n\n availableTypesChange = (availableTypes) => {\n const { model, onChange } = this.props;\n const {\n correctResponse,\n graph: { maxNumberOfPoints },\n } = 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) => !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) => !indices.some((d) => d === index));\n const graph = { ...model.graph, initialElements };\n\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\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\n onChange({ graph });\n };\n\n clearCorrectResponse = () => {\n const { onChange } = this.props;\n\n onChange({ correctResponse: [] });\n };\n\n clearInitialView = () => {\n const { model, onChange } = this.props;\n const graph = { ...model.graph, initialElements: [] };\n\n onChange({ graph });\n };\n\n undoCorrectResponse = () => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.pop();\n\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\n onChange({ graph });\n };\n\n render() {\n const { classes, model, onChange, configuration, uploadSoundSupport } = this.props;\n const { contentDimensions = {}, prompt = {}, mathMlOptions = {} } = configuration || {};\n const { errors, graph, spellCheckEnabled, toolbarEditorPosition } = model || {};\n\n const { widthError, domainError, maxError, pointsError, correctResponseError } = errors || {};\n const validationMessage = generateValidationMessage();\n\n const correctResponse = cloneDeep(model.correctResponse || []).map(toGraphFormat);\n const initialView = cloneDeep(graph.initialElements || []).map(toGraphFormat);\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n return (\n <layout.ConfigLayout dimensions={contentDimensions} hideSettings={true} settings={null}>\n {prompt.settings && (\n <InputContainer label={prompt.label} className={classes.promptContainer}>\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 uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <CardBar\n header=\"Attributes\"\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </Tooltip>\n }\n >\n Set up the number line by entering the domain and number of tick marks to display. Labels on the number line\n can be edited or removed by 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 domain={graph.domain} onChange={(domain) => this.graphChange({ domain })} />\n </FormSection>\n </div>\n\n {widthError && <div className={classes.errorText}>{widthError}</div>}\n {maxError && <div className={classes.errorText}>{maxError}</div>}\n {domainError && <div className={classes.errorText}>{domainError}</div>}\n\n <div className={classes.row}>\n <FormSection label={'Ticks'}>\n <Ticks ticks={graph.ticks} onChange={this.changeTicks} domain={graph.domain} />\n </FormSection>\n\n <FormSection label={'Arrows'}>\n <Arrows arrows={graph.arrows} onChange={this.changeArrows} />\n </FormSection>\n </div>\n\n <FormSection label={'Title'} className={classes.title}>\n <EditableHtml\n markup={graph.title || ''}\n onChange={this.changeGraphTitle}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </FormSection>\n\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 {pointsError && <div className={classes.errorText}>{pointsError}</div>}\n </FormSection>\n\n <Button className={classes.resetButton} variant=\"outlined\" mini color=\"primary\" onClick={this.setDefaults}>\n Reset to default values\n </Button>\n\n {!graph.exhibitOnly && (\n <React.Fragment>\n <CardBar header=\"Available Types\" mini>\n Click on the input options to be displayed to the students. All inputs will display by default.\n </CardBar>\n\n <div className={classes.pointTypeChooser}>\n <PointConfig onSelectionChange={this.availableTypesChange} selection={graph.availableTypes} />\n </div>\n\n <CardBar header=\"Correct Response\">\n Select answer type and place it on the number line. Intersecting points, line segments and/or rays will\n appear above the number line. <i>Note: A maximum of 20 points, line segments or rays may be plotted.</i>\n </CardBar>\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 {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n </React.Fragment>\n )}\n\n <CardBar header=\"Initial view/Make Exhibit\">\n Use this number line to set a starting point, line segment or ray. This is optional. <br />\n This number line may also be used to make an exhibit number line, which can not be manipulated by a student.\n </CardBar>\n <NumberLineComponent\n onMoveElement={this.moveInitialView}\n onDeleteElements={this.deleteInitialView}\n onAddElement={this.addInitialView}\n onClearElements={this.clearInitialView}\n onUndoElement={this.undoInitialView}\n answer={initialView}\n model={trimModel(model)}\n />\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 <FeedbackConfig\n feedback={model.feedback}\n onChange={(feedback) => onChange({ feedback })}\n toolbarOpts={toolbarOpts}\n />\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
@@ -21,7 +21,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
21
21
 
22
22
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
23
 
24
- var _configUi = require("@pie-lib/config-ui");
24
+ var _configUi = require("@pie-lib/pie-toolbox/config-ui");
25
25
 
26
26
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
27
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/number-text-field.jsx"],"names":["NumberTextField","classes","props","undefined","textField","className","React","Component","PropTypes","object","isRequired","styles","theme","marginLeft","spacing","unit","miniStyles","maxWidth","MiniField"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,e;;;;;;;;;;;;WAKX,kBAAS;AACP,UAAQC,OAAR,GAAoB,KAAKC,KAAzB,CAAQD,OAAR;;AACA,UAAMC,KAAK,mCAAQ,KAAKA,KAAb;AAAoBD,QAAAA,OAAO,EAAEE;AAA7B,QAAX;;AACA,0BAAO,gCAAC,yBAAD,gCAASD,KAAT;AAAgB,QAAA,SAAS,EAAE,4BAAGD,OAAO,CAACG,SAAX,EAAsBF,KAAK,CAACG,SAA5B,CAA3B;AAAmE,QAAA,OAAO,EAAC;AAA3E,SAAP;AACD;;;EATkCC,kBAAMC,S;;;iCAA9BP,e,eACQ;AACjBC,EAAAA,OAAO,EAAEO,sBAAUC,MAAV,CAAiBC;AADT,C;;AAWrB,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBR,IAAAA,SAAS,EAAE;AACTS,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC;AADjB;AADc,GAAZ;AAAA,CAAf;;AAMA,IAAMC,UAAU,GAAG,SAAbA,UAAa;AAAA,SAAO;AACxBZ,IAAAA,SAAS,EAAE;AACTa,MAAAA,QAAQ,EAAE;AADD;AADa,GAAP;AAAA,CAAnB;;AAKO,IAAMC,SAAS,GAAG,wBAAWF,UAAX,EAAuBhB,eAAvB,CAAlB;;;eAEQ,wBAAWW,MAAX,EAAmBX,eAAnB,C","sourcesContent":["import { NumberTextField as NTF } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\n\nexport class NumberTextField extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n };\n\n render() {\n const { classes } = this.props;\n const props = { ...this.props, classes: undefined };\n return <NTF {...props} className={cn(classes.textField, props.className)} variant=\"outlined\" />;\n }\n}\n\nconst styles = (theme) => ({\n textField: {\n marginLeft: theme.spacing.unit,\n },\n});\n\nconst miniStyles = () => ({\n textField: {\n maxWidth: '100px',\n },\n});\nexport const MiniField = withStyles(miniStyles)(NumberTextField);\n\nexport default withStyles(styles)(NumberTextField);\n"],"file":"number-text-field.js"}
1
+ {"version":3,"sources":["../src/number-text-field.jsx"],"names":["NumberTextField","classes","props","undefined","textField","className","React","Component","PropTypes","object","isRequired","styles","theme","marginLeft","spacing","unit","miniStyles","maxWidth","MiniField"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,e;;;;;;;;;;;;WAKX,kBAAS;AACP,UAAQC,OAAR,GAAoB,KAAKC,KAAzB,CAAQD,OAAR;;AACA,UAAMC,KAAK,mCAAQ,KAAKA,KAAb;AAAoBD,QAAAA,OAAO,EAAEE;AAA7B,QAAX;;AACA,0BAAO,gCAAC,yBAAD,gCAASD,KAAT;AAAgB,QAAA,SAAS,EAAE,4BAAGD,OAAO,CAACG,SAAX,EAAsBF,KAAK,CAACG,SAA5B,CAA3B;AAAmE,QAAA,OAAO,EAAC;AAA3E,SAAP;AACD;;;EATkCC,kBAAMC,S;;;iCAA9BP,e,eACQ;AACjBC,EAAAA,OAAO,EAAEO,sBAAUC,MAAV,CAAiBC;AADT,C;;AAWrB,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBR,IAAAA,SAAS,EAAE;AACTS,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC;AADjB;AADc,GAAZ;AAAA,CAAf;;AAMA,IAAMC,UAAU,GAAG,SAAbA,UAAa;AAAA,SAAO;AACxBZ,IAAAA,SAAS,EAAE;AACTa,MAAAA,QAAQ,EAAE;AADD;AADa,GAAP;AAAA,CAAnB;;AAKO,IAAMC,SAAS,GAAG,wBAAWF,UAAX,EAAuBhB,eAAvB,CAAlB;;;eAEQ,wBAAWW,MAAX,EAAmBX,eAAnB,C","sourcesContent":["import { NumberTextField as NTF } from '@pie-lib/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\n\nexport class NumberTextField extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n };\n\n render() {\n const { classes } = this.props;\n const props = { ...this.props, classes: undefined };\n return <NTF {...props} className={cn(classes.textField, props.className)} variant=\"outlined\" />;\n }\n}\n\nconst styles = (theme) => ({\n textField: {\n marginLeft: theme.spacing.unit,\n },\n});\n\nconst miniStyles = () => ({\n textField: {\n maxWidth: '100px',\n },\n});\nexport const MiniField = withStyles(miniStyles)(NumberTextField);\n\nexport default withStyles(styles)(NumberTextField);\n"],"file":"number-text-field.js"}
@@ -7,8 +7,7 @@
7
7
  "dependencies": {
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@pie-framework/pie-configure-events": "^1.3.0",
10
- "@pie-lib/config-ui": "^11.9.24",
11
- "@pie-lib/editable-html": "^11.1.1",
10
+ "@pie-lib/pie-toolbox": "1.0.1",
12
11
  "react": "^16.8.1",
13
12
  "react-dom": "^16.8.1"
14
13
  }
@@ -36,9 +36,9 @@ var _merge = _interopRequireDefault(require("lodash/merge"));
36
36
 
37
37
  var _omitBy = _interopRequireDefault(require("lodash/omitBy"));
38
38
 
39
- var _feedback = require("@pie-lib/feedback");
39
+ var _feedback = require("@pie-lib/pie-toolbox/feedback");
40
40
 
41
- var _controllerUtils = require("@pie-lib/controller-utils");
41
+ var _controllerUtils = require("@pie-lib/pie-toolbox/controller-utils");
42
42
 
43
43
  var math = _interopRequireWildcard(require("mathjs"));
44
44
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["score","number","scaled","getPartialScore","corrected","ps","correct","rule","find","r","numberOfCorrect","length","scorePercentage","accumulateAnswer","correctResponse","total","answer","isCorrectResponse","some","cr","matches","outcome","model","session","env","Promise","resolve","empty","partialScoringEnabled","partialScoring","enabled","numCorrect","reduce","numIncorrect","getScore","question","getCorrected","correctness","getCorrectness","allowPartialScoring","filter","o","canDoPartialScoring","CLOSE_TO_PRECISION","closeTo","a","b","precision","expectedDiff","Math","pow","receivedDiff","abs","close","v","ov","incorrect","notInAnswer","noCorrectResponse","acc","index","match","push","splice","indexOf","normalize","feedback","defaults","createDefaultModel","out","graph","colorContrast","updateTicks","domain","labelStep","ticks","minor","major","min","Number","toFixed","max","fraction","step","math","evaluate","reject","Error","normalizedQuestion","evaluateMode","mode","exhibitOnly","disabled","fb","undefined","then","feedbackMessage","prompt","type","message","accessibility","language","createCorrectResponseSession","role","id","validate","width","maxNumberOfPoints","errors","widthError","domainError","maxError","pointsError","correctResponseError"],"mappings":"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","sourcesContent":["import cloneDeep from 'lodash/cloneDeep';\nimport find from 'lodash/find';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport isEqualWith from 'lodash/isEqualWith';\nimport merge from 'lodash/merge';\nimport omitBy from 'lodash/omitBy';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { partialScoring } from '@pie-lib/controller-utils';\nimport * as math from 'mathjs';\n\nimport defaults from './defaults';\n\nconst score = (number) => {\n return {\n score: {\n scaled: number,\n },\n };\n};\n\nconst getPartialScore = (corrected, ps) => {\n const { correct } = corrected;\n const rule = ps.find((r) => r.numberOfCorrect === correct.length);\n\n if (rule) {\n return 1.0 * (rule.scorePercentage / 100);\n } else {\n return 0;\n }\n};\n\nconst accumulateAnswer = (correctResponse) => (total, answer) => {\n const isCorrectResponse = correctResponse.some((cr) => matches(cr)(answer));\n return total + (isCorrectResponse ? 1 : 0);\n};\n\n/**\n */\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n } else {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const numCorrect = (session.answer || []).reduce(accumulateAnswer(model.correctResponse), 0);\n\n let total = model.correctResponse.length;\n let numIncorrect = 0;\n\n if ((session.answer || []).length > total) {\n numIncorrect = (session.answer || []).length - total;\n }\n\n if (total === 0) {\n total = 1;\n }\n\n let score = numCorrect < 0 ? 0 : (numCorrect - numIncorrect) / total;\n\n if (score < 0) {\n score = 0;\n }\n\n resolve({ score: partialScoringEnabled ? score : score === 1 ? 1 : 0 });\n }\n });\n}\n\nexport function getScore(question, session) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: { scaled: 0 } });\n } else {\n session.answer = session.answer || [];\n\n const corrected = getCorrected(session.answer, cloneDeep(question.correctResponse));\n\n const correctness = getCorrectness(corrected);\n\n if (correctness === 'correct') {\n resolve(score(1.0));\n } else if (correctness === 'incorrect') {\n resolve(score(0.0));\n } else if (correctness === 'partial') {\n const { allowPartialScoring, partialScoring } = question;\n const ps = (partialScoring || []).filter((o) => !isEmpty(o));\n const canDoPartialScoring = allowPartialScoring && ps.length > 0;\n if (canDoPartialScoring) {\n resolve(score(getPartialScore(corrected, ps)));\n } else {\n resolve(score(0.0));\n }\n } else {\n resolve({ score: { scaled: -1 } });\n }\n }\n });\n}\n\nexport const CLOSE_TO_PRECISION = 3;\n\nexport const closeTo = (a, b, precision) => {\n precision = precision || 5;\n const expectedDiff = Math.pow(10, -precision) / 2;\n const receivedDiff = Math.abs(a - b);\n const close = receivedDiff <= expectedDiff;\n return close;\n};\n\nconst matches = (a) => (v) => {\n return isEqualWith(a, v, (v, ov) => {\n if (typeof v === 'number' && typeof ov === 'number') {\n return closeTo(v, ov, CLOSE_TO_PRECISION);\n }\n });\n};\n\nexport const getCorrected = (answer, correctResponse) => {\n if (isEmpty(correctResponse) && answer.length > 0) {\n return {\n correct: [],\n incorrect: [],\n notInAnswer: [],\n noCorrectResponse: true,\n };\n }\n\n return answer.reduce(\n (acc, a, index) => {\n const { correct, incorrect, notInAnswer } = acc;\n\n const match = find(notInAnswer, matches(a));\n if (match) {\n correct.push(index);\n notInAnswer.splice(notInAnswer.indexOf(match), 1);\n } else {\n incorrect.push(index);\n }\n\n return {\n correct: correct,\n incorrect: incorrect,\n notInAnswer: notInAnswer,\n };\n },\n {\n correct: [],\n incorrect: [],\n notInAnswer: correctResponse,\n },\n );\n};\n\nexport const getCorrectness = (corrected) => {\n const { incorrect, correct, notInAnswer, noCorrectResponse } = corrected;\n\n if (noCorrectResponse) {\n return 'unknown';\n }\n\n if (incorrect.length === 0 && correct.length === 0) {\n return 'unanswered';\n }\n\n if (incorrect.length === 0 && notInAnswer.length === 0) {\n return 'correct';\n }\n\n if (incorrect.length > 0 || notInAnswer.length > 0) {\n if (correct.length > 0) {\n return 'partial';\n } else {\n return 'incorrect';\n }\n }\n\n return 'unknown';\n};\n\n/**\n * A sample of a normalize function see:\n * https://github.com/pie-framework/pie-elements/issues/21\n */\nexport function normalize(question) {\n return new Promise((resolve) => {\n const feedback = merge(defaults.feedback, question.feedback);\n\n if (isEqual(feedback, question.feedback)) {\n return resolve({ ...question });\n } else {\n resolve({ ...question, feedback });\n }\n });\n}\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n const out = {\n ...model,\n graph: {\n ...defaults.graph,\n ...model.graph,\n },\n colorContrast: 'black_on_white',\n };\n\n resolve(omitBy(out, (v) => !v));\n });\n}\n\n// this function is duplicated in configure; at some point, use the same shared function\nconst updateTicks = (model) => {\n const { graph: { domain, labelStep, ticks = {} } = {} } = model;\n const { minor, major } = ticks;\n\n if (domain) {\n domain.min = Number((domain.min || 0).toFixed(2));\n domain.max = Number((domain.max || 0).toFixed(2));\n }\n\n if (labelStep && typeof labelStep === 'string' && labelStep.match(/^[1-9][0-9]*\\/[1-9][0-9]*$/g)) {\n model.graph.fraction = true;\n\n // update the ticks frequency and label value to match the label step if needed\n const step = math.evaluate(labelStep);\n\n if (step !== major) {\n ticks.major = step;\n ticks.minor = step / (major / minor);\n }\n }\n\n return model;\n};\n\nexport function model(question, session, env) {\n if (!question) {\n return Promise.reject(new Error('question is null'));\n }\n\n return new Promise(async (resolve, reject) => {\n const normalizedQuestion = await normalize(question);\n const { graph } = updateTicks(normalizedQuestion);\n\n if (graph) {\n const evaluateMode = env.mode === 'evaluate';\n\n const correctResponse = cloneDeep(normalizedQuestion.correctResponse);\n const corrected = evaluateMode && getCorrected(session ? session.answer || [] : [], correctResponse);\n const correctness = evaluateMode && getCorrectness(corrected);\n\n const { exhibitOnly } = graph;\n const disabled = env.mode !== 'gather' || exhibitOnly === true;\n\n const fb = evaluateMode\n ? getFeedbackForCorrectness(correctness, normalizedQuestion.feedback)\n : Promise.resolve(undefined);\n\n fb.then((feedbackMessage) => {\n const out = {\n prompt: normalizedQuestion.prompt,\n graph,\n disabled,\n corrected,\n correctResponse:\n evaluateMode && ['unanswered', 'correct'].indexOf(correctness) === -1 && normalizedQuestion.correctResponse,\n feedback: feedbackMessage && {\n type: correctness,\n message: feedbackMessage,\n },\n colorContrast: (env.accessibility && env.accessibility.colorContrast) || 'black_on_white',\n language: normalizedQuestion.language,\n };\n\n resolve(omitBy(out, (v) => !v));\n });\n } else {\n reject(new Error('graph is undefined'));\n }\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { correctResponse: answer } = question;\n\n resolve({\n answer,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}) => {\n // TODO: add configurable validation props after authoring is updated\n const { graph, correctResponse } = model || {};\n const { width, domain, maxNumberOfPoints } = graph || {};\n const { min, max } = domain || {};\n const errors = {};\n\n if (width < 200 || width > 800) {\n errors.widthError = 'Width should be a value between 200 and 800.';\n }\n\n if (min < -100000 || min > 10000 || max < -100000 || max > 10000) {\n errors.domainError = 'Min and max must both be in the range [-100000, 10000].';\n }\n\n if (min >= max) {\n errors.maxError = 'Max must be greater than min.';\n }\n\n if (maxNumberOfPoints < 1 || maxNumberOfPoints > 20) {\n errors.pointsError = 'Max number of elements should be between 1 and 20.';\n }\n\n if (correctResponse && correctResponse.length === 0) {\n errors.correctResponseError = 'The correct answer should include at least one number line object.';\n }\n\n return errors;\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["score","number","scaled","getPartialScore","corrected","ps","correct","rule","find","r","numberOfCorrect","length","scorePercentage","accumulateAnswer","correctResponse","total","answer","isCorrectResponse","some","cr","matches","outcome","model","session","env","Promise","resolve","empty","partialScoringEnabled","partialScoring","enabled","numCorrect","reduce","numIncorrect","getScore","question","getCorrected","correctness","getCorrectness","allowPartialScoring","filter","o","canDoPartialScoring","CLOSE_TO_PRECISION","closeTo","a","b","precision","expectedDiff","Math","pow","receivedDiff","abs","close","v","ov","incorrect","notInAnswer","noCorrectResponse","acc","index","match","push","splice","indexOf","normalize","feedback","defaults","createDefaultModel","out","graph","colorContrast","updateTicks","domain","labelStep","ticks","minor","major","min","Number","toFixed","max","fraction","step","math","evaluate","reject","Error","normalizedQuestion","evaluateMode","mode","exhibitOnly","disabled","fb","undefined","then","feedbackMessage","prompt","type","message","accessibility","language","createCorrectResponseSession","role","id","validate","width","maxNumberOfPoints","errors","widthError","domainError","maxError","pointsError","correctResponseError"],"mappings":"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","sourcesContent":["import cloneDeep from 'lodash/cloneDeep';\nimport find from 'lodash/find';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport isEqualWith from 'lodash/isEqualWith';\nimport merge from 'lodash/merge';\nimport omitBy from 'lodash/omitBy';\nimport { getFeedbackForCorrectness } from '@pie-lib/pie-toolbox/feedback';\nimport { partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\nimport * as math from 'mathjs';\n\nimport defaults from './defaults';\n\nconst score = (number) => {\n return {\n score: {\n scaled: number,\n },\n };\n};\n\nconst getPartialScore = (corrected, ps) => {\n const { correct } = corrected;\n const rule = ps.find((r) => r.numberOfCorrect === correct.length);\n\n if (rule) {\n return 1.0 * (rule.scorePercentage / 100);\n } else {\n return 0;\n }\n};\n\nconst accumulateAnswer = (correctResponse) => (total, answer) => {\n const isCorrectResponse = correctResponse.some((cr) => matches(cr)(answer));\n return total + (isCorrectResponse ? 1 : 0);\n};\n\n/**\n */\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n } else {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const numCorrect = (session.answer || []).reduce(accumulateAnswer(model.correctResponse), 0);\n\n let total = model.correctResponse.length;\n let numIncorrect = 0;\n\n if ((session.answer || []).length > total) {\n numIncorrect = (session.answer || []).length - total;\n }\n\n if (total === 0) {\n total = 1;\n }\n\n let score = numCorrect < 0 ? 0 : (numCorrect - numIncorrect) / total;\n\n if (score < 0) {\n score = 0;\n }\n\n resolve({ score: partialScoringEnabled ? score : score === 1 ? 1 : 0 });\n }\n });\n}\n\nexport function getScore(question, session) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: { scaled: 0 } });\n } else {\n session.answer = session.answer || [];\n\n const corrected = getCorrected(session.answer, cloneDeep(question.correctResponse));\n\n const correctness = getCorrectness(corrected);\n\n if (correctness === 'correct') {\n resolve(score(1.0));\n } else if (correctness === 'incorrect') {\n resolve(score(0.0));\n } else if (correctness === 'partial') {\n const { allowPartialScoring, partialScoring } = question;\n const ps = (partialScoring || []).filter((o) => !isEmpty(o));\n const canDoPartialScoring = allowPartialScoring && ps.length > 0;\n if (canDoPartialScoring) {\n resolve(score(getPartialScore(corrected, ps)));\n } else {\n resolve(score(0.0));\n }\n } else {\n resolve({ score: { scaled: -1 } });\n }\n }\n });\n}\n\nexport const CLOSE_TO_PRECISION = 3;\n\nexport const closeTo = (a, b, precision) => {\n precision = precision || 5;\n const expectedDiff = Math.pow(10, -precision) / 2;\n const receivedDiff = Math.abs(a - b);\n const close = receivedDiff <= expectedDiff;\n return close;\n};\n\nconst matches = (a) => (v) => {\n return isEqualWith(a, v, (v, ov) => {\n if (typeof v === 'number' && typeof ov === 'number') {\n return closeTo(v, ov, CLOSE_TO_PRECISION);\n }\n });\n};\n\nexport const getCorrected = (answer, correctResponse) => {\n if (isEmpty(correctResponse) && answer.length > 0) {\n return {\n correct: [],\n incorrect: [],\n notInAnswer: [],\n noCorrectResponse: true,\n };\n }\n\n return answer.reduce(\n (acc, a, index) => {\n const { correct, incorrect, notInAnswer } = acc;\n\n const match = find(notInAnswer, matches(a));\n if (match) {\n correct.push(index);\n notInAnswer.splice(notInAnswer.indexOf(match), 1);\n } else {\n incorrect.push(index);\n }\n\n return {\n correct: correct,\n incorrect: incorrect,\n notInAnswer: notInAnswer,\n };\n },\n {\n correct: [],\n incorrect: [],\n notInAnswer: correctResponse,\n },\n );\n};\n\nexport const getCorrectness = (corrected) => {\n const { incorrect, correct, notInAnswer, noCorrectResponse } = corrected;\n\n if (noCorrectResponse) {\n return 'unknown';\n }\n\n if (incorrect.length === 0 && correct.length === 0) {\n return 'unanswered';\n }\n\n if (incorrect.length === 0 && notInAnswer.length === 0) {\n return 'correct';\n }\n\n if (incorrect.length > 0 || notInAnswer.length > 0) {\n if (correct.length > 0) {\n return 'partial';\n } else {\n return 'incorrect';\n }\n }\n\n return 'unknown';\n};\n\n/**\n * A sample of a normalize function see:\n * https://github.com/pie-framework/pie-elements/issues/21\n */\nexport function normalize(question) {\n return new Promise((resolve) => {\n const feedback = merge(defaults.feedback, question.feedback);\n\n if (isEqual(feedback, question.feedback)) {\n return resolve({ ...question });\n } else {\n resolve({ ...question, feedback });\n }\n });\n}\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n const out = {\n ...model,\n graph: {\n ...defaults.graph,\n ...model.graph,\n },\n colorContrast: 'black_on_white',\n };\n\n resolve(omitBy(out, (v) => !v));\n });\n}\n\n// this function is duplicated in configure; at some point, use the same shared function\nconst updateTicks = (model) => {\n const { graph: { domain, labelStep, ticks = {} } = {} } = model;\n const { minor, major } = ticks;\n\n if (domain) {\n domain.min = Number((domain.min || 0).toFixed(2));\n domain.max = Number((domain.max || 0).toFixed(2));\n }\n\n if (labelStep && typeof labelStep === 'string' && labelStep.match(/^[1-9][0-9]*\\/[1-9][0-9]*$/g)) {\n model.graph.fraction = true;\n\n // update the ticks frequency and label value to match the label step if needed\n const step = math.evaluate(labelStep);\n\n if (step !== major) {\n ticks.major = step;\n ticks.minor = step / (major / minor);\n }\n }\n\n return model;\n};\n\nexport function model(question, session, env) {\n if (!question) {\n return Promise.reject(new Error('question is null'));\n }\n\n return new Promise(async (resolve, reject) => {\n const normalizedQuestion = await normalize(question);\n const { graph } = updateTicks(normalizedQuestion);\n\n if (graph) {\n const evaluateMode = env.mode === 'evaluate';\n\n const correctResponse = cloneDeep(normalizedQuestion.correctResponse);\n const corrected = evaluateMode && getCorrected(session ? session.answer || [] : [], correctResponse);\n const correctness = evaluateMode && getCorrectness(corrected);\n\n const { exhibitOnly } = graph;\n const disabled = env.mode !== 'gather' || exhibitOnly === true;\n\n const fb = evaluateMode\n ? getFeedbackForCorrectness(correctness, normalizedQuestion.feedback)\n : Promise.resolve(undefined);\n\n fb.then((feedbackMessage) => {\n const out = {\n prompt: normalizedQuestion.prompt,\n graph,\n disabled,\n corrected,\n correctResponse:\n evaluateMode && ['unanswered', 'correct'].indexOf(correctness) === -1 && normalizedQuestion.correctResponse,\n feedback: feedbackMessage && {\n type: correctness,\n message: feedbackMessage,\n },\n colorContrast: (env.accessibility && env.accessibility.colorContrast) || 'black_on_white',\n language: normalizedQuestion.language,\n };\n\n resolve(omitBy(out, (v) => !v));\n });\n } else {\n reject(new Error('graph is undefined'));\n }\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { correctResponse: answer } = question;\n\n resolve({\n answer,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}) => {\n // TODO: add configurable validation props after authoring is updated\n const { graph, correctResponse } = model || {};\n const { width, domain, maxNumberOfPoints } = graph || {};\n const { min, max } = domain || {};\n const errors = {};\n\n if (width < 200 || width > 800) {\n errors.widthError = 'Width should be a value between 200 and 800.';\n }\n\n if (min < -100000 || min > 10000 || max < -100000 || max > 10000) {\n errors.domainError = 'Min and max must both be in the range [-100000, 10000].';\n }\n\n if (min >= max) {\n errors.maxError = 'Max must be greater than min.';\n }\n\n if (maxNumberOfPoints < 1 || maxNumberOfPoints > 20) {\n errors.pointsError = 'Max number of elements should be between 1 and 20.';\n }\n\n if (correctResponse && correctResponse.length === 0) {\n errors.correctResponseError = 'The correct answer should include at least one number line object.';\n }\n\n return errors;\n};\n"],"file":"index.js"}
@@ -14,8 +14,7 @@
14
14
  "access": "public"
15
15
  },
16
16
  "dependencies": {
17
- "@pie-lib/controller-utils": "^0.2.44",
18
- "@pie-lib/feedback": "^0.4.43",
17
+ "@pie-lib/pie-toolbox": "1.0.1",
19
18
  "lodash": "^4.17.15"
20
19
  },
21
20
  "author": "",
package/lib/index.js CHANGED
@@ -55,7 +55,7 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
55
55
 
56
56
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
57
57
 
58
- var _mathRendering = require("@pie-lib/math-rendering");
58
+ var _mathRendering = require("@pie-lib/pie-toolbox/math-rendering");
59
59
 
60
60
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
61
61
 
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["NumberLine","m","_model","_applyInitialElements","_render","dispatch","_session","s","answer","length","type","dispatchEvent","CustomEvent","bubbles","detail","complete","isComplete","data","push","dispatchSessionChanged","index","el","position","Error","left","right","update","splice","indices","filter","v","some","d","pop","graph","initialElements","map","toGraphFormat","model","correctResponse","props","onAddElement","addElement","bind","onMoveElement","moveElement","onDeleteElements","deleteElements","onUndoElement","undoElement","onClearElements","clearElements","React","createElement","RootComponent","ReactDOM","render","e","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AACA;;;;AACA;;;;AAIA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;;;IAKqBA,U;;;;;AACnB,wBAAc;AAAA;AAAA;AAEb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;;AACA,WAAKE,qBAAL;;AACA,WAAKC,OAAL;;AACA,WAAKC,QAAL,CAAc,WAAd;AACD;;;SAQD,eAAc;AACZ,aAAO,KAAKC,QAAZ;AACD,K;SARD,aAAYC,CAAZ,EAAe;AACb,WAAKD,QAAL,GAAgBC,CAAhB;;AACA,WAAKJ,qBAAL;;AACA,WAAKC,OAAL;AACD;;;WAMD,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAED,sBAAa;AACX,aAAO,KAAKE,QAAL,GAAgB,CAAC,KAAKA,QAAL,CAAcE,MAAd,IAAwB,EAAzB,EAA6BC,MAA7B,GAAsC,CAAtD,GAA0D,KAAjE;AACD;;;WAED,kBAASC,IAAT,EAAe;AACb,WAAKC,aAAL,CACE,IAAIC,WAAJ,CAAgBF,IAAhB,EAAsB;AACpBG,QAAAA,OAAO,EAAE,IADW;AAEpBC,QAAAA,MAAM,EAAE;AACNC,UAAAA,QAAQ,EAAE,KAAKC,UAAL;AADJ;AAFY,OAAtB,CADF;AAQD;;;WAED,kCAAyB;AACvB,WAAKX,QAAL,CAAc,iBAAd;AACD;;;WAED,oBAAWY,IAAX,EAAiB;AACf,UAAI,CAAC,KAAKX,QAAV,EAAoB;AAClB;AACD;;AAED,WAAKA,QAAL,CAAcE,MAAd,GAAuB,KAAKF,QAAL,CAAcE,MAAd,IAAwB,EAA/C;;AACA,WAAKF,QAAL,CAAcE,MAAd,CAAqBU,IAArB,CAA0B,mCAAgBD,IAAhB,CAA1B;;AACA,WAAKE,sBAAL;;AACA,WAAKf,OAAL;AACD;;;WAED,qBAAYgB,KAAZ,EAAmBC,EAAnB,EAAuBC,QAAvB,EAAiC;AAC/B,UAAId,MAAM,GAAG,KAAKF,QAAL,CAAcE,MAAd,CAAqBY,KAArB,CAAb;;AAEA,UAAI,CAACZ,MAAL,EAAa;AACX,cAAM,IAAIe,KAAJ,CAAU,8BAAV,EAA0CH,KAA1C,CAAN;AACD;;AAED,UAAIC,EAAE,CAACX,IAAH,KAAY,MAAZ,IAAsBY,QAAQ,CAACE,IAAT,KAAkBF,QAAQ,CAACG,KAArD,EAA4D;AAC1D,aAAKrB,OAAL;;AACA;AACD,OAV8B,CAY/B;;;AACAiB,MAAAA,EAAE,CAACC,QAAH,GAAcA,QAAd;AAEA,UAAII,MAAM,GAAGL,EAAE,CAACX,IAAH,KAAY,MAAZ,IAAsB,kCAAeW,EAAf,CAAtB,GAA2C,mCAAgBA,EAAhB,CAA3C,GAAiEA,EAA9E;;AAEA,WAAKf,QAAL,CAAcE,MAAd,CAAqBmB,MAArB,CAA4BP,KAA5B,EAAmC,CAAnC,EAAsC,mCAAgBM,MAAhB,CAAtC;;AAEA,WAAKP,sBAAL;;AACA,WAAKf,OAAL;AACD;;;WAED,wBAAewB,OAAf,EAAwB;AACtB,WAAKtB,QAAL,CAAcE,MAAd,GAAuB,KAAKF,QAAL,CAAcE,MAAd,CAAqBqB,MAArB,CAA4B,UAACC,CAAD,EAAIV,KAAJ,EAAc;AAC/D,eAAO,CAACQ,OAAO,CAACG,IAAR,CAAa,UAACC,CAAD;AAAA,iBAAOA,CAAC,KAAKZ,KAAb;AAAA,SAAb,CAAR;AACD,OAFsB,CAAvB;AAGA,WAAKD,sBAAL;;AACA,WAAKf,OAAL;AACD;;;WAED,uBAAc;AACZ,WAAKE,QAAL,CAAcE,MAAd,CAAqByB,GAArB;;AACA,WAAKd,sBAAL;;AACA,WAAKf,OAAL;AACD;;;WAED,yBAAgB;AACd,WAAKE,QAAL,CAAcE,MAAd,GAAuB,EAAvB;AACA,WAAKW,sBAAL;;AACA,WAAKf,OAAL;AACD;;;WAED,iCAAwB;AACtB,UACE,KAAKF,MAAL,IACA,KAAKA,MAAL,CAAYgC,KADZ,IAEA,KAAKhC,MAAL,CAAYgC,KAAZ,CAAkBC,eAFlB,IAGA,KAAK7B,QAHL,KAIC,CAAC,KAAKA,QAAL,CAAcE,MAAf,IAAyB,CAAC,KAAKF,QAAL,CAAcE,MAAd,CAAqBC,MAJhD,CADF,EAME;AACA,aAAKH,QAAL,CAAcE,MAAd,GAAuB,2BAAU,KAAKN,MAAL,CAAYgC,KAAZ,CAAkBC,eAA5B,CAAvB;AACD;AACF;;;WAED,mBAAU;AAAA;;AACR,UAAI;AACF,YAAI,KAAKjC,MAAL,IAAe,KAAKI,QAAxB,EAAkC;AAChC,cAAI,CAAC,KAAKA,QAAL,CAAcE,MAAnB,EAA2B;AACzB,iBAAKL,qBAAL;AACD;;AAED,cAAIK,MAAM,GAAG,CAAC,KAAKF,QAAL,CAAcE,MAAd,IAAwB,EAAzB,EAA6B4B,GAA7B,CAAiCC,2BAAjC,CAAb;AACA,cAAIC,KAAK,GAAG,2BAAU,KAAKpC,MAAf,CAAZ;AACAoC,UAAAA,KAAK,CAACC,eAAN,GAAwBD,KAAK,CAACC,eAAN,IAAyBD,KAAK,CAACC,eAAN,CAAsBH,GAAtB,CAA0BC,2BAA1B,CAAjD;AAEA,cAAIG,KAAK,GAAG;AACVF,YAAAA,KAAK,EAALA,KADU;AAEV9B,YAAAA,MAAM,EAANA,MAFU;AAGViC,YAAAA,YAAY,EAAE,KAAKC,UAAL,CAAgBC,IAAhB,CAAqB,IAArB,CAHJ;AAIVC,YAAAA,aAAa,EAAE,KAAKC,WAAL,CAAiBF,IAAjB,CAAsB,IAAtB,CAJL;AAKVG,YAAAA,gBAAgB,EAAE,KAAKC,cAAL,CAAoBJ,IAApB,CAAyB,IAAzB,CALR;AAMVK,YAAAA,aAAa,EAAE,KAAKC,WAAL,CAAiBN,IAAjB,CAAsB,IAAtB,CANL;AAOVO,YAAAA,eAAe,EAAE,KAAKC,aAAL,CAAmBR,IAAnB,CAAwB,IAAxB;AAPP,WAAZ;;AAUA,cAAItB,EAAE,gBAAG+B,kBAAMC,aAAN,CAAoBC,sBAApB,EAAmCd,KAAnC,CAAT;;AAEAe,+BAASC,MAAT,CAAgBnC,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,2CAAW,KAAX;AACD,WAFD;AAGD;AACF,OA1BD,CA0BE,OAAOoC,CAAP,EAAU;AACV,cAAMA,CAAN;AACD;AACF;;;kDA7IqCC,W","sourcesContent":["import * as dataConverter from './data-converter';\nimport * as pointChooser from './number-line/point-chooser';\nimport * as tickUtils from './number-line/graph/tick-utils';\n\nimport { lineIsSwitched, switchGraphLine, toGraphFormat, toSessionFormat } from './data-converter';\n\nimport Graph from './number-line/graph';\nimport NumberLineComponent from './number-line';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport RootComponent from './number-line';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { renderMath } from '@pie-lib/math-rendering';\n\n//Expose some additional modules for configuration\nexport { Graph, NumberLineComponent, tickUtils, dataConverter, pointChooser };\n\nexport default class NumberLine extends HTMLElement {\n constructor() {\n super();\n }\n\n set model(m) {\n this._model = m;\n this._applyInitialElements();\n this._render();\n this.dispatch('model-set');\n }\n\n set session(s) {\n this._session = s;\n this._applyInitialElements();\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n connectedCallback() {\n this._render();\n }\n\n isComplete() {\n return this._session ? (this._session.answer || []).length > 0 : false;\n }\n\n dispatch(type) {\n this.dispatchEvent(\n new CustomEvent(type, {\n bubbles: true,\n detail: {\n complete: this.isComplete(),\n },\n }),\n );\n }\n\n dispatchSessionChanged() {\n this.dispatch('session-changed');\n }\n\n addElement(data) {\n if (!this._session) {\n return;\n }\n\n this._session.answer = this._session.answer || [];\n this._session.answer.push(toSessionFormat(data));\n this.dispatchSessionChanged();\n this._render();\n }\n\n moveElement(index, el, position) {\n let answer = this._session.answer[index];\n\n if (!answer) {\n throw new Error('cant find element at index: ', index);\n }\n\n if (el.type === 'line' && position.left === position.right) {\n this._render();\n return;\n }\n\n //set the new position\n el.position = position;\n\n let update = el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el;\n\n this._session.answer.splice(index, 1, toSessionFormat(update));\n\n this.dispatchSessionChanged();\n this._render();\n }\n\n deleteElements(indices) {\n this._session.answer = this._session.answer.filter((v, index) => {\n return !indices.some((d) => d === index);\n });\n this.dispatchSessionChanged();\n this._render();\n }\n\n undoElement() {\n this._session.answer.pop();\n this.dispatchSessionChanged();\n this._render();\n }\n\n clearElements() {\n this._session.answer = [];\n this.dispatchSessionChanged();\n this._render();\n }\n\n _applyInitialElements() {\n if (\n this._model &&\n this._model.graph &&\n this._model.graph.initialElements &&\n this._session &&\n (!this._session.answer || !this._session.answer.length)\n ) {\n this._session.answer = cloneDeep(this._model.graph.initialElements);\n }\n }\n\n _render() {\n try {\n if (this._model && this._session) {\n if (!this._session.answer) {\n this._applyInitialElements();\n }\n\n let answer = (this._session.answer || []).map(toGraphFormat);\n let model = cloneDeep(this._model);\n model.correctResponse = model.correctResponse && model.correctResponse.map(toGraphFormat);\n\n let props = {\n model,\n answer,\n onAddElement: this.addElement.bind(this),\n onMoveElement: this.moveElement.bind(this),\n onDeleteElements: this.deleteElements.bind(this),\n onUndoElement: this.undoElement.bind(this),\n onClearElements: this.clearElements.bind(this),\n };\n\n let el = React.createElement(RootComponent, props);\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n } catch (e) {\n throw e;\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["NumberLine","m","_model","_applyInitialElements","_render","dispatch","_session","s","answer","length","type","dispatchEvent","CustomEvent","bubbles","detail","complete","isComplete","data","push","dispatchSessionChanged","index","el","position","Error","left","right","update","splice","indices","filter","v","some","d","pop","graph","initialElements","map","toGraphFormat","model","correctResponse","props","onAddElement","addElement","bind","onMoveElement","moveElement","onDeleteElements","deleteElements","onUndoElement","undoElement","onClearElements","clearElements","React","createElement","RootComponent","ReactDOM","render","e","HTMLElement"],"mappings":"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","sourcesContent":["import * as dataConverter from './data-converter';\nimport * as pointChooser from './number-line/point-chooser';\nimport * as tickUtils from './number-line/graph/tick-utils';\n\nimport { lineIsSwitched, switchGraphLine, toGraphFormat, toSessionFormat } from './data-converter';\n\nimport Graph from './number-line/graph';\nimport NumberLineComponent from './number-line';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport RootComponent from './number-line';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering';\n\n//Expose some additional modules for configuration\nexport { Graph, NumberLineComponent, tickUtils, dataConverter, pointChooser };\n\nexport default class NumberLine extends HTMLElement {\n constructor() {\n super();\n }\n\n set model(m) {\n this._model = m;\n this._applyInitialElements();\n this._render();\n this.dispatch('model-set');\n }\n\n set session(s) {\n this._session = s;\n this._applyInitialElements();\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n connectedCallback() {\n this._render();\n }\n\n isComplete() {\n return this._session ? (this._session.answer || []).length > 0 : false;\n }\n\n dispatch(type) {\n this.dispatchEvent(\n new CustomEvent(type, {\n bubbles: true,\n detail: {\n complete: this.isComplete(),\n },\n }),\n );\n }\n\n dispatchSessionChanged() {\n this.dispatch('session-changed');\n }\n\n addElement(data) {\n if (!this._session) {\n return;\n }\n\n this._session.answer = this._session.answer || [];\n this._session.answer.push(toSessionFormat(data));\n this.dispatchSessionChanged();\n this._render();\n }\n\n moveElement(index, el, position) {\n let answer = this._session.answer[index];\n\n if (!answer) {\n throw new Error('cant find element at index: ', index);\n }\n\n if (el.type === 'line' && position.left === position.right) {\n this._render();\n return;\n }\n\n //set the new position\n el.position = position;\n\n let update = el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el;\n\n this._session.answer.splice(index, 1, toSessionFormat(update));\n\n this.dispatchSessionChanged();\n this._render();\n }\n\n deleteElements(indices) {\n this._session.answer = this._session.answer.filter((v, index) => {\n return !indices.some((d) => d === index);\n });\n this.dispatchSessionChanged();\n this._render();\n }\n\n undoElement() {\n this._session.answer.pop();\n this.dispatchSessionChanged();\n this._render();\n }\n\n clearElements() {\n this._session.answer = [];\n this.dispatchSessionChanged();\n this._render();\n }\n\n _applyInitialElements() {\n if (\n this._model &&\n this._model.graph &&\n this._model.graph.initialElements &&\n this._session &&\n (!this._session.answer || !this._session.answer.length)\n ) {\n this._session.answer = cloneDeep(this._model.graph.initialElements);\n }\n }\n\n _render() {\n try {\n if (this._model && this._session) {\n if (!this._session.answer) {\n this._applyInitialElements();\n }\n\n let answer = (this._session.answer || []).map(toGraphFormat);\n let model = cloneDeep(this._model);\n model.correctResponse = model.correctResponse && model.correctResponse.map(toGraphFormat);\n\n let props = {\n model,\n answer,\n onAddElement: this.addElement.bind(this),\n onMoveElement: this.moveElement.bind(this),\n onDeleteElements: this.deleteElements.bind(this),\n onUndoElement: this.undoElement.bind(this),\n onClearElements: this.clearElements.bind(this),\n };\n\n let el = React.createElement(RootComponent, props);\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n } catch (e) {\n throw e;\n }\n }\n}\n"],"file":"index.js"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.selected = exports.incorrect = exports.correct = void 0;
7
7
 
8
- var _renderUi = require("@pie-lib/render-ui");
8
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
9
9
 
10
10
  var selected = _renderUi.color.primaryDark();
11
11
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/number-line/colors.js"],"names":["selected","color","primaryDark","correct","incorrect"],"mappings":";;;;;;;AAAA;;AAEO,IAAMA,QAAQ,GAAGC,gBAAMC,WAAN,EAAjB;;;;AACA,IAAMC,OAAO,GAAGF,gBAAME,OAAN,EAAhB;;;;AACA,IAAMC,SAAS,GAAGH,gBAAMG,SAAN,EAAlB","sourcesContent":["import { color } from '@pie-lib/render-ui';\n\nexport const selected = color.primaryDark();\nexport const correct = color.correct();\nexport const incorrect = color.incorrect();\n"],"file":"colors.js"}
1
+ {"version":3,"sources":["../../src/number-line/colors.js"],"names":["selected","color","primaryDark","correct","incorrect"],"mappings":";;;;;;;AAAA;;AAEO,IAAMA,QAAQ,GAAGC,gBAAMC,WAAN,EAAjB;;;;AACA,IAAMC,OAAO,GAAGF,gBAAME,OAAN,EAAhB;;;;AACA,IAAMC,SAAS,GAAGH,gBAAMG,SAAN,EAAlB","sourcesContent":["import { color } from '@pie-lib/pie-toolbox/render-ui';\n\nexport const selected = color.primaryDark();\nexport const correct = color.correct();\nexport const incorrect = color.incorrect();\n"],"file":"colors.js"}
@@ -7,11 +7,11 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
- var _icons = require("@pie-lib/icons");
10
+ var _icons = require("@pie-lib/pie-toolbox/icons");
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
- var _renderUi = require("@pie-lib/render-ui");
14
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
15
15
 
16
16
  var _react = _interopRequireDefault(require("react"));
17
17
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/number-line/feedback.jsx"],"names":["getIcon","t","NothingSubmitted","Correct","Incorrect","PartiallyCorrect","ShowRationale","undefined","Feedback","props","classes","type","className","feedback","Icon","width","message","__html","propTypes","PropTypes","number","string","object","isRequired","styles","marginTop","backgroundColor","padding","display","alignItems","height","margin","paddingLeft","userSelect","correct","color","incorrect"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAEA,IAAIA,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAO;AACnB,UAAQA,CAAR;AACE,SAAK,YAAL;AACE,aAAOC,uBAAP;;AACF,SAAK,SAAL;AACE,aAAOC,cAAP;;AACF,SAAK,WAAL;AACE,aAAOC,gBAAP;;AACF,SAAK,SAAL;AACE,aAAOC,uBAAP;;AACF,SAAK,MAAL;AACE,aAAOC,oBAAP;;AACF;AACE,aAAOC,SAAP;AAZJ;AAcD,CAfD;;AAiBA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAW;AAC1B,MAAQC,OAAR,GAA0BD,KAA1B,CAAQC,OAAR;AAAA,MAAiBC,IAAjB,GAA0BF,KAA1B,CAAiBE,IAAjB;AACA,MAAIC,SAAS,GAAG,4BAAWF,OAAO,CAACC,IAAD,CAAlB,EAA0BD,OAAO,CAACG,QAAlC,CAAhB;AACA,MAAIC,IAAI,GAAGd,OAAO,CAACS,KAAK,CAACE,IAAP,CAAlB;AAEA,sBACE,gCAAC,qCAAD,qBACE,gCAAC,mCAAD;AAAe,IAAA,UAAU,EAAE,IAA3B;AAAiC,IAAA,GAAG,EAAC,IAArC;AAA0C,IAAA,OAAO,EAAE;AAAnD,kBACE;AAAK,IAAA,GAAG,EAAC,OAAT;AAAiB,IAAA,SAAS,EAAEC,SAA5B;AAAuC,IAAA,KAAK,EAAE;AAAEG,MAAAA,KAAK,EAAEN,KAAK,CAACM;AAAf;AAA9C,kBACE,gCAAC,IAAD;AAAM,IAAA,OAAO,EAAC,OAAd;AAAsB,IAAA,KAAK,EAAC;AAA5B,IADF,eAEE;AAAM,IAAA,SAAS,EAAEL,OAAO,CAACM,OAAzB;AAAkC,IAAA,uBAAuB,EAAE;AAAEC,MAAAA,MAAM,EAAER,KAAK,CAACO;AAAhB;AAA3D,IAFF,CADF,CADF,CADF;AAUD,CAfD;;AAiBAR,QAAQ,CAACU,SAAT,GAAqB;AACnBH,EAAAA,KAAK,EAAEI,sBAAUC,MADE;AAEnBJ,EAAAA,OAAO,EAAEG,sBAAUE,MAFA;AAGnBX,EAAAA,OAAO,EAAES,sBAAUG,MAAV,CAAiBC,UAHP;AAInBZ,EAAAA,IAAI,EAAEQ,sBAAUE;AAJG,CAArB;AAOA,IAAMG,MAAM,GAAG;AACbX,EAAAA,QAAQ,EAAE;AACRY,IAAAA,SAAS,EAAE,MADH;AAERC,IAAAA,eAAe,EAAE,SAFT;AAGRC,IAAAA,OAAO,EAAE,MAHD;AAIRC,IAAAA,OAAO,EAAE,MAJD;AAKRC,IAAAA,UAAU,EAAE,QALJ;AAMR,aAAS;AACPC,MAAAA,MAAM,EAAE;AADD,KAND;AASR,YAAQ;AACNH,MAAAA,OAAO,EAAE,KADH;AAENI,MAAAA,MAAM,EAAE;AAFF;AATA,GADG;AAebf,EAAAA,OAAO,EAAE;AACPgB,IAAAA,WAAW,EAAE,KADN;AAEPC,IAAAA,UAAU,EAAE;AAFL,GAfI;AAmBbC,EAAAA,OAAO,EAAE;AACPR,IAAAA,eAAe,EAAES,gBAAMD,OAAN;AADV,GAnBI;AAsBbE,EAAAA,SAAS,EAAE;AACTV,IAAAA,eAAe,EAAES,gBAAMC,SAAN;AADR;AAtBE,CAAf;;eA2Be,0BAAYZ,MAAZ,EAAoBhB,QAApB,C","sourcesContent":["import { Correct, Incorrect, NothingSubmitted, PartiallyCorrect, ShowRationale } from '@pie-lib/icons';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\n\nimport React from 'react';\nimport { TransitionGroup, CSSTransition } from 'react-transition-group';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\n\nlet getIcon = (t) => {\n switch (t) {\n case 'unanswered':\n return NothingSubmitted;\n case 'correct':\n return Correct;\n case 'incorrect':\n return Incorrect;\n case 'partial':\n return PartiallyCorrect;\n case 'info':\n return ShowRationale;\n default:\n return undefined;\n }\n};\n\nconst Feedback = (props) => {\n const { classes, type } = props;\n let className = classNames(classes[type], classes.feedback);\n let Icon = getIcon(props.type);\n\n return (\n <TransitionGroup>\n <CSSTransition classNames={'fb'} key=\"fb\" timeout={300}>\n <div key=\"panel\" className={className} style={{ width: props.width }}>\n <Icon iconSet=\"emoji\" shape=\"square\" />\n <span className={classes.message} dangerouslySetInnerHTML={{ __html: props.message }} />\n </div>\n </CSSTransition>\n </TransitionGroup>\n );\n};\n\nFeedback.propTypes = {\n width: PropTypes.number,\n message: PropTypes.string,\n classes: PropTypes.object.isRequired,\n type: PropTypes.string,\n};\n\nconst styles = {\n feedback: {\n marginTop: '10px',\n backgroundColor: '#dddddd',\n padding: '10px',\n display: 'flex',\n alignItems: 'center',\n '& svg': {\n height: '30px',\n },\n '& h1': {\n padding: '0px',\n margin: '0px',\n },\n },\n message: {\n paddingLeft: '5px',\n userSelect: 'none',\n },\n correct: {\n backgroundColor: color.correct(),\n },\n incorrect: {\n backgroundColor: color.incorrect(),\n },\n};\n\nexport default injectSheet(styles)(Feedback);\n"],"file":"feedback.js"}
1
+ {"version":3,"sources":["../../src/number-line/feedback.jsx"],"names":["getIcon","t","NothingSubmitted","Correct","Incorrect","PartiallyCorrect","ShowRationale","undefined","Feedback","props","classes","type","className","feedback","Icon","width","message","__html","propTypes","PropTypes","number","string","object","isRequired","styles","marginTop","backgroundColor","padding","display","alignItems","height","margin","paddingLeft","userSelect","correct","color","incorrect"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAEA,IAAIA,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAO;AACnB,UAAQA,CAAR;AACE,SAAK,YAAL;AACE,aAAOC,uBAAP;;AACF,SAAK,SAAL;AACE,aAAOC,cAAP;;AACF,SAAK,WAAL;AACE,aAAOC,gBAAP;;AACF,SAAK,SAAL;AACE,aAAOC,uBAAP;;AACF,SAAK,MAAL;AACE,aAAOC,oBAAP;;AACF;AACE,aAAOC,SAAP;AAZJ;AAcD,CAfD;;AAiBA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAW;AAC1B,MAAQC,OAAR,GAA0BD,KAA1B,CAAQC,OAAR;AAAA,MAAiBC,IAAjB,GAA0BF,KAA1B,CAAiBE,IAAjB;AACA,MAAIC,SAAS,GAAG,4BAAWF,OAAO,CAACC,IAAD,CAAlB,EAA0BD,OAAO,CAACG,QAAlC,CAAhB;AACA,MAAIC,IAAI,GAAGd,OAAO,CAACS,KAAK,CAACE,IAAP,CAAlB;AAEA,sBACE,gCAAC,qCAAD,qBACE,gCAAC,mCAAD;AAAe,IAAA,UAAU,EAAE,IAA3B;AAAiC,IAAA,GAAG,EAAC,IAArC;AAA0C,IAAA,OAAO,EAAE;AAAnD,kBACE;AAAK,IAAA,GAAG,EAAC,OAAT;AAAiB,IAAA,SAAS,EAAEC,SAA5B;AAAuC,IAAA,KAAK,EAAE;AAAEG,MAAAA,KAAK,EAAEN,KAAK,CAACM;AAAf;AAA9C,kBACE,gCAAC,IAAD;AAAM,IAAA,OAAO,EAAC,OAAd;AAAsB,IAAA,KAAK,EAAC;AAA5B,IADF,eAEE;AAAM,IAAA,SAAS,EAAEL,OAAO,CAACM,OAAzB;AAAkC,IAAA,uBAAuB,EAAE;AAAEC,MAAAA,MAAM,EAAER,KAAK,CAACO;AAAhB;AAA3D,IAFF,CADF,CADF,CADF;AAUD,CAfD;;AAiBAR,QAAQ,CAACU,SAAT,GAAqB;AACnBH,EAAAA,KAAK,EAAEI,sBAAUC,MADE;AAEnBJ,EAAAA,OAAO,EAAEG,sBAAUE,MAFA;AAGnBX,EAAAA,OAAO,EAAES,sBAAUG,MAAV,CAAiBC,UAHP;AAInBZ,EAAAA,IAAI,EAAEQ,sBAAUE;AAJG,CAArB;AAOA,IAAMG,MAAM,GAAG;AACbX,EAAAA,QAAQ,EAAE;AACRY,IAAAA,SAAS,EAAE,MADH;AAERC,IAAAA,eAAe,EAAE,SAFT;AAGRC,IAAAA,OAAO,EAAE,MAHD;AAIRC,IAAAA,OAAO,EAAE,MAJD;AAKRC,IAAAA,UAAU,EAAE,QALJ;AAMR,aAAS;AACPC,MAAAA,MAAM,EAAE;AADD,KAND;AASR,YAAQ;AACNH,MAAAA,OAAO,EAAE,KADH;AAENI,MAAAA,MAAM,EAAE;AAFF;AATA,GADG;AAebf,EAAAA,OAAO,EAAE;AACPgB,IAAAA,WAAW,EAAE,KADN;AAEPC,IAAAA,UAAU,EAAE;AAFL,GAfI;AAmBbC,EAAAA,OAAO,EAAE;AACPR,IAAAA,eAAe,EAAES,gBAAMD,OAAN;AADV,GAnBI;AAsBbE,EAAAA,SAAS,EAAE;AACTV,IAAAA,eAAe,EAAES,gBAAMC,SAAN;AADR;AAtBE,CAAf;;eA2Be,0BAAYZ,MAAZ,EAAoBhB,QAApB,C","sourcesContent":["import { Correct, Incorrect, NothingSubmitted, PartiallyCorrect, ShowRationale } from '@pie-lib/pie-toolbox/icons';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nimport React from 'react';\nimport { TransitionGroup, CSSTransition } from 'react-transition-group';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\n\nlet getIcon = (t) => {\n switch (t) {\n case 'unanswered':\n return NothingSubmitted;\n case 'correct':\n return Correct;\n case 'incorrect':\n return Incorrect;\n case 'partial':\n return PartiallyCorrect;\n case 'info':\n return ShowRationale;\n default:\n return undefined;\n }\n};\n\nconst Feedback = (props) => {\n const { classes, type } = props;\n let className = classNames(classes[type], classes.feedback);\n let Icon = getIcon(props.type);\n\n return (\n <TransitionGroup>\n <CSSTransition classNames={'fb'} key=\"fb\" timeout={300}>\n <div key=\"panel\" className={className} style={{ width: props.width }}>\n <Icon iconSet=\"emoji\" shape=\"square\" />\n <span className={classes.message} dangerouslySetInnerHTML={{ __html: props.message }} />\n </div>\n </CSSTransition>\n </TransitionGroup>\n );\n};\n\nFeedback.propTypes = {\n width: PropTypes.number,\n message: PropTypes.string,\n classes: PropTypes.object.isRequired,\n type: PropTypes.string,\n};\n\nconst styles = {\n feedback: {\n marginTop: '10px',\n backgroundColor: '#dddddd',\n padding: '10px',\n display: 'flex',\n alignItems: 'center',\n '& svg': {\n height: '30px',\n },\n '& h1': {\n padding: '0px',\n margin: '0px',\n },\n },\n message: {\n paddingLeft: '5px',\n userSelect: 'none',\n },\n correct: {\n backgroundColor: color.correct(),\n },\n incorrect: {\n backgroundColor: color.incorrect(),\n },\n};\n\nexport default injectSheet(styles)(Feedback);\n"],"file":"feedback.js"}
@@ -16,7 +16,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
16
16
 
17
17
  var _reactJss = _interopRequireDefault(require("react-jss"));
18
18
 
19
- var _renderUi = require("@pie-lib/render-ui");
19
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
20
20
 
21
21
  var style = {
22
22
  root: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/arrow.jsx"],"names":["style","root","fill","color","primary","Arrow","x","y","direction","classes","className","transform","names","propTypes","PropTypes","number","oneOf","object","isRequired","string","defaultProps"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAEC,gBAAMC,OAAN;AADF;AADM,CAAd;;AAMO,SAASC,KAAT,OAAwD;AAAA,MAAvCC,CAAuC,QAAvCA,CAAuC;AAAA,MAApCC,CAAoC,QAApCA,CAAoC;AAAA,MAAjCC,SAAiC,QAAjCA,SAAiC;AAAA,MAAtBC,OAAsB,QAAtBA,OAAsB;AAAA,MAAbC,SAAa,QAAbA,SAAa;AAC7D,MAAIC,SAAS,uBAAgBL,CAAC,IAAI,CAArB,cAA0BC,CAA1B,MAAb;;AAEA,MAAIC,SAAS,IAAIA,SAAS,KAAK,OAA/B,EAAwC;AACtCG,IAAAA,SAAS,IAAI,cAAb;AACD;;AAED,MAAMC,KAAK,GAAG,4BAAWH,OAAO,CAACR,IAAnB,EAAyBS,SAAzB,CAAd;AACA,sBAAO;AAAM,IAAA,CAAC,EAAC,uBAAR;AAAgC,IAAA,SAAS,EAAEC,SAA3C;AAAsD,IAAA,SAAS,EAAEC;AAAjE,IAAP;AACD;;AAEDP,KAAK,CAACQ,SAAN,GAAkB;AAChBN,EAAAA,CAAC,EAAEO,sBAAUC,MADG;AAEhBT,EAAAA,CAAC,EAAEQ,sBAAUC,MAFG;AAGhBP,EAAAA,SAAS,EAAEM,sBAAUE,KAAV,CAAgB,CAAC,MAAD,EAAS,OAAT,CAAhB,CAHK;AAIhBP,EAAAA,OAAO,EAAEK,sBAAUG,MAAV,CAAiBC,UAJV;AAKhBR,EAAAA,SAAS,EAAEI,sBAAUK;AALL,CAAlB;AAQAd,KAAK,CAACe,YAAN,GAAqB;AACnBb,EAAAA,CAAC,EAAE,CADgB;AAEnBD,EAAAA,CAAC,EAAE,CAFgB;AAGnBE,EAAAA,SAAS,EAAE;AAHQ,CAArB;;eAMe,0BAAYR,KAAZ,EAAmBK,KAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/render-ui';\n\nconst style = {\n root: {\n fill: color.primary(),\n },\n};\n\nexport function Arrow({ x, y, direction, classes, className }) {\n let transform = `translate(${x || 0},${y})`;\n\n if (direction && direction === 'right') {\n transform += ' rotate(180)';\n }\n\n const names = classNames(classes.root, className);\n return <path d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={names} />;\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right']),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left',\n};\n\nexport default injectSheet(style)(Arrow);\n"],"file":"arrow.js"}
1
+ {"version":3,"sources":["../../../src/number-line/graph/arrow.jsx"],"names":["style","root","fill","color","primary","Arrow","x","y","direction","classes","className","transform","names","propTypes","PropTypes","number","oneOf","object","isRequired","string","defaultProps"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAEC,gBAAMC,OAAN;AADF;AADM,CAAd;;AAMO,SAASC,KAAT,OAAwD;AAAA,MAAvCC,CAAuC,QAAvCA,CAAuC;AAAA,MAApCC,CAAoC,QAApCA,CAAoC;AAAA,MAAjCC,SAAiC,QAAjCA,SAAiC;AAAA,MAAtBC,OAAsB,QAAtBA,OAAsB;AAAA,MAAbC,SAAa,QAAbA,SAAa;AAC7D,MAAIC,SAAS,uBAAgBL,CAAC,IAAI,CAArB,cAA0BC,CAA1B,MAAb;;AAEA,MAAIC,SAAS,IAAIA,SAAS,KAAK,OAA/B,EAAwC;AACtCG,IAAAA,SAAS,IAAI,cAAb;AACD;;AAED,MAAMC,KAAK,GAAG,4BAAWH,OAAO,CAACR,IAAnB,EAAyBS,SAAzB,CAAd;AACA,sBAAO;AAAM,IAAA,CAAC,EAAC,uBAAR;AAAgC,IAAA,SAAS,EAAEC,SAA3C;AAAsD,IAAA,SAAS,EAAEC;AAAjE,IAAP;AACD;;AAEDP,KAAK,CAACQ,SAAN,GAAkB;AAChBN,EAAAA,CAAC,EAAEO,sBAAUC,MADG;AAEhBT,EAAAA,CAAC,EAAEQ,sBAAUC,MAFG;AAGhBP,EAAAA,SAAS,EAAEM,sBAAUE,KAAV,CAAgB,CAAC,MAAD,EAAS,OAAT,CAAhB,CAHK;AAIhBP,EAAAA,OAAO,EAAEK,sBAAUG,MAAV,CAAiBC,UAJV;AAKhBR,EAAAA,SAAS,EAAEI,sBAAUK;AALL,CAAlB;AAQAd,KAAK,CAACe,YAAN,GAAqB;AACnBb,EAAAA,CAAC,EAAE,CADgB;AAEnBD,EAAAA,CAAC,EAAE,CAFgB;AAGnBE,EAAAA,SAAS,EAAE;AAHQ,CAArB;;eAMe,0BAAYR,KAAZ,EAAmBK,KAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst style = {\n root: {\n fill: color.primary(),\n },\n};\n\nexport function Arrow({ x, y, direction, classes, className }) {\n let transform = `translate(${x || 0},${y})`;\n\n if (direction && direction === 'right') {\n transform += ' rotate(180)';\n }\n\n const names = classNames(classes.root, className);\n return <path d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={names} />;\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right']),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left',\n};\n\nexport default injectSheet(style)(Arrow);\n"],"file":"arrow.js"}
@@ -39,7 +39,7 @@ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
39
39
 
40
40
  var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
41
41
 
42
- var _renderUi = require("@pie-lib/render-ui");
42
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
43
43
 
44
44
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
45
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/number-line/graph/elements/line.jsx"],"names":["duration","style","line","stroke","color","primary","cursor","strokeWidth","transition","opacity","disabled","selected","primaryDark","correct","incorrect","Line","props","state","left","right","nextProps","position","setState","side","p","domain","min","max","newState","d","newPosition","onMoveLine","interval","empty","y","classes","xScale","context","onDrag","onMove","onMoveLeft","bind","onMoveRight","onDragLeft","onDragRight","is","onMouseDown","e","nativeEvent","preventDefault","onLineDragStart","startX","clientX","onLineClick","endX","deltaX","Math","abs","onToggleSelect","onRectClick","onLineDragStop","dd","invertedX","invert","lastX","scaledLineBounds","lineClass","common","handle","React","Component","PropTypes","shape","bool","isRequired","number","func","onDragStart","onDragStop","undefined","snapValue"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Draggable from '../../../draggable';\nimport Point from './point';\nimport { basePropTypes } from './base';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport isEqual from 'lodash/isEqual';\nimport isNumber from 'lodash/isNumber';\nimport { color } from '@pie-lib/render-ui';\n\nconst duration = '150ms';\n\nconst style = {\n line: {\n '& .line-handle': {\n stroke: color.primary(),\n cursor: 'pointer',\n strokeWidth: '5px',\n transition: `opacity ${duration} linear, \n stroke-width ${duration} linear,\n stroke ${duration} linear`,\n },\n '&.react-draggable-dragging': {\n opacity: 0.6,\n '& .line-handle': {\n opacity: 1.0,\n strokeWidth: '12px',\n },\n },\n },\n disabled: {\n cursor: 'not-allowed',\n opacity: 0.8,\n },\n selected: {\n '& .line-handle': {\n stroke: color.primaryDark(),\n },\n '& circle': {\n stroke: color.primaryDark(),\n },\n },\n correct: {\n '& .line-handle': {\n cursor: 'inherit',\n stroke: color.correct(),\n },\n },\n incorrect: {\n '& .line-handle': {\n cursor: 'inherit',\n stroke: color.incorrect(),\n },\n },\n};\n\nexport class Line extends React.Component {\n static propTypes = {\n ...basePropTypes(),\n empty: PropTypes.shape({\n left: PropTypes.bool.isRequired,\n right: PropTypes.bool.isRequired,\n }).isRequired,\n position: PropTypes.shape({\n left: PropTypes.number.isRequired,\n right: PropTypes.number.isRequired,\n }).isRequired,\n y: PropTypes.number,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n correct: PropTypes.bool,\n onMoveLine: PropTypes.func.isRequired,\n onToggleSelect: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n };\n\n static defaultProps = {\n selected: false,\n y: 0,\n disabled: false,\n correct: undefined,\n };\n\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n left: null,\n right: null,\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps) {\n const { position } = nextProps;\n this.setState({ left: position.left, right: position.right });\n }\n }\n\n onDrag(side, p) {\n const { domain } = this.props;\n if (p >= domain.min && p <= domain.max) {\n const newState = {};\n newState[side] = p;\n this.setState(newState);\n }\n }\n\n onMove(side, d) {\n const { position: p } = this.props;\n const newPosition = { left: p.left, right: p.right };\n newPosition[side] = d;\n this.props.onMoveLine(newPosition);\n }\n\n render() {\n const { interval, empty, position, domain, y, selected, disabled, correct, classes } = this.props;\n\n const { xScale } = this.context;\n\n const { onDrag, onMove } = this;\n const onMoveLeft = onMove.bind(this, 'left');\n const onMoveRight = onMove.bind(this, 'right');\n const onDragLeft = onDrag.bind(this, 'left');\n const onDragRight = onDrag.bind(this, 'right');\n\n const left = isNumber(this.state.left) ? this.state.left : position.left;\n const right = isNumber(this.state.right) ? this.state.right : position.right;\n\n const is = xScale(interval) - xScale(0);\n\n const onMouseDown = (e) => e.nativeEvent.preventDefault();\n const onLineDragStart = (e) => this.setState({ startX: e.clientX });\n\n const onLineClick = () => {\n const { startX, endX } = this.state;\n if (!startX || !endX) {\n return;\n }\n\n const deltaX = Math.abs(endX - startX);\n if (deltaX < is / 10) {\n this.props.onToggleSelect();\n this.setState({ startX: null, endX: null });\n }\n };\n\n const onRectClick = () => {\n this.props.onToggleSelect();\n };\n\n const onLineDragStop = (e, dd) => {\n this.setState({ endX: e.clientX });\n const invertedX = xScale.invert(dd.lastX + xScale(0));\n const newPosition = {\n left: position.left + invertedX,\n right: position.right + invertedX,\n };\n\n if (!isEqual(newPosition, this.props.position)) {\n this.props.onMoveLine(newPosition);\n }\n };\n\n const scaledLineBounds = {\n left: ((domain.min - position.left) / interval) * is,\n right: ((domain.max - position.right) / interval) * is,\n };\n\n var lineClass = classNames(classes.line, {\n [classes.disabled]: disabled,\n [classes.selected]: selected,\n [classes.correct]: correct === true,\n [classes.incorrect]: correct === false,\n });\n\n const common = {\n interval,\n selected,\n disabled,\n correct,\n };\n\n return (\n <Draggable\n disabled={disabled}\n axis=\"x\"\n handle=\".line-handle\"\n grid={[is]}\n bounds={scaledLineBounds}\n onStart={onLineDragStart}\n onStop={onLineDragStop}\n onMouseDown={onMouseDown}\n >\n <g className={lineClass}>\n <g transform={`translate(0, ${y})`}>\n <rect\n x={xScale(left)}\n width={Math.abs(xScale(right) - xScale(left))}\n fill=\"red\"\n fillOpacity=\"0.0\"\n y=\"-8\"\n height={16}\n onClick={onRectClick}\n />\n <line\n className={classNames('line-handle', classes.handle, {\n [classes.selected]: selected,\n })}\n x1={xScale(left)}\n x2={xScale(right)}\n onClick={onLineClick}\n />\n <Point\n {...common}\n empty={empty.left}\n bounds={{\n left: domain.min - position.left,\n right: domain.max - position.left,\n }}\n position={position.left}\n onDrag={onDragLeft}\n onMove={onMoveLeft}\n />\n <Point\n {...common}\n empty={empty.right}\n bounds={{\n left: domain.min - position.right,\n right: domain.max - position.right,\n }}\n position={position.right}\n onDrag={onDragRight}\n onMove={onMoveRight}\n />\n </g>\n </g>\n </Draggable>\n );\n }\n}\n\nexport default injectSheet(style)(Line);\n"],"file":"line.js"}
1
+ {"version":3,"sources":["../../../../src/number-line/graph/elements/line.jsx"],"names":["duration","style","line","stroke","color","primary","cursor","strokeWidth","transition","opacity","disabled","selected","primaryDark","correct","incorrect","Line","props","state","left","right","nextProps","position","setState","side","p","domain","min","max","newState","d","newPosition","onMoveLine","interval","empty","y","classes","xScale","context","onDrag","onMove","onMoveLeft","bind","onMoveRight","onDragLeft","onDragRight","is","onMouseDown","e","nativeEvent","preventDefault","onLineDragStart","startX","clientX","onLineClick","endX","deltaX","Math","abs","onToggleSelect","onRectClick","onLineDragStop","dd","invertedX","invert","lastX","scaledLineBounds","lineClass","common","handle","React","Component","PropTypes","shape","bool","isRequired","number","func","onDragStart","onDragStop","undefined","snapValue"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Draggable from '../../../draggable';\nimport Point from './point';\nimport { basePropTypes } from './base';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport isEqual from 'lodash/isEqual';\nimport isNumber from 'lodash/isNumber';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst duration = '150ms';\n\nconst style = {\n line: {\n '& .line-handle': {\n stroke: color.primary(),\n cursor: 'pointer',\n strokeWidth: '5px',\n transition: `opacity ${duration} linear, \n stroke-width ${duration} linear,\n stroke ${duration} linear`,\n },\n '&.react-draggable-dragging': {\n opacity: 0.6,\n '& .line-handle': {\n opacity: 1.0,\n strokeWidth: '12px',\n },\n },\n },\n disabled: {\n cursor: 'not-allowed',\n opacity: 0.8,\n },\n selected: {\n '& .line-handle': {\n stroke: color.primaryDark(),\n },\n '& circle': {\n stroke: color.primaryDark(),\n },\n },\n correct: {\n '& .line-handle': {\n cursor: 'inherit',\n stroke: color.correct(),\n },\n },\n incorrect: {\n '& .line-handle': {\n cursor: 'inherit',\n stroke: color.incorrect(),\n },\n },\n};\n\nexport class Line extends React.Component {\n static propTypes = {\n ...basePropTypes(),\n empty: PropTypes.shape({\n left: PropTypes.bool.isRequired,\n right: PropTypes.bool.isRequired,\n }).isRequired,\n position: PropTypes.shape({\n left: PropTypes.number.isRequired,\n right: PropTypes.number.isRequired,\n }).isRequired,\n y: PropTypes.number,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n correct: PropTypes.bool,\n onMoveLine: PropTypes.func.isRequired,\n onToggleSelect: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n };\n\n static defaultProps = {\n selected: false,\n y: 0,\n disabled: false,\n correct: undefined,\n };\n\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n left: null,\n right: null,\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps) {\n const { position } = nextProps;\n this.setState({ left: position.left, right: position.right });\n }\n }\n\n onDrag(side, p) {\n const { domain } = this.props;\n if (p >= domain.min && p <= domain.max) {\n const newState = {};\n newState[side] = p;\n this.setState(newState);\n }\n }\n\n onMove(side, d) {\n const { position: p } = this.props;\n const newPosition = { left: p.left, right: p.right };\n newPosition[side] = d;\n this.props.onMoveLine(newPosition);\n }\n\n render() {\n const { interval, empty, position, domain, y, selected, disabled, correct, classes } = this.props;\n\n const { xScale } = this.context;\n\n const { onDrag, onMove } = this;\n const onMoveLeft = onMove.bind(this, 'left');\n const onMoveRight = onMove.bind(this, 'right');\n const onDragLeft = onDrag.bind(this, 'left');\n const onDragRight = onDrag.bind(this, 'right');\n\n const left = isNumber(this.state.left) ? this.state.left : position.left;\n const right = isNumber(this.state.right) ? this.state.right : position.right;\n\n const is = xScale(interval) - xScale(0);\n\n const onMouseDown = (e) => e.nativeEvent.preventDefault();\n const onLineDragStart = (e) => this.setState({ startX: e.clientX });\n\n const onLineClick = () => {\n const { startX, endX } = this.state;\n if (!startX || !endX) {\n return;\n }\n\n const deltaX = Math.abs(endX - startX);\n if (deltaX < is / 10) {\n this.props.onToggleSelect();\n this.setState({ startX: null, endX: null });\n }\n };\n\n const onRectClick = () => {\n this.props.onToggleSelect();\n };\n\n const onLineDragStop = (e, dd) => {\n this.setState({ endX: e.clientX });\n const invertedX = xScale.invert(dd.lastX + xScale(0));\n const newPosition = {\n left: position.left + invertedX,\n right: position.right + invertedX,\n };\n\n if (!isEqual(newPosition, this.props.position)) {\n this.props.onMoveLine(newPosition);\n }\n };\n\n const scaledLineBounds = {\n left: ((domain.min - position.left) / interval) * is,\n right: ((domain.max - position.right) / interval) * is,\n };\n\n var lineClass = classNames(classes.line, {\n [classes.disabled]: disabled,\n [classes.selected]: selected,\n [classes.correct]: correct === true,\n [classes.incorrect]: correct === false,\n });\n\n const common = {\n interval,\n selected,\n disabled,\n correct,\n };\n\n return (\n <Draggable\n disabled={disabled}\n axis=\"x\"\n handle=\".line-handle\"\n grid={[is]}\n bounds={scaledLineBounds}\n onStart={onLineDragStart}\n onStop={onLineDragStop}\n onMouseDown={onMouseDown}\n >\n <g className={lineClass}>\n <g transform={`translate(0, ${y})`}>\n <rect\n x={xScale(left)}\n width={Math.abs(xScale(right) - xScale(left))}\n fill=\"red\"\n fillOpacity=\"0.0\"\n y=\"-8\"\n height={16}\n onClick={onRectClick}\n />\n <line\n className={classNames('line-handle', classes.handle, {\n [classes.selected]: selected,\n })}\n x1={xScale(left)}\n x2={xScale(right)}\n onClick={onLineClick}\n />\n <Point\n {...common}\n empty={empty.left}\n bounds={{\n left: domain.min - position.left,\n right: domain.max - position.left,\n }}\n position={position.left}\n onDrag={onDragLeft}\n onMove={onMoveLeft}\n />\n <Point\n {...common}\n empty={empty.right}\n bounds={{\n left: domain.min - position.right,\n right: domain.max - position.right,\n }}\n position={position.right}\n onDrag={onDragRight}\n onMove={onMoveRight}\n />\n </g>\n </g>\n </Draggable>\n );\n }\n}\n\nexport default injectSheet(style)(Line);\n"],"file":"line.js"}
@@ -23,7 +23,7 @@ var _react = _interopRequireDefault(require("react"));
23
23
 
24
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
25
 
26
- var _renderUi = require("@pie-lib/render-ui");
26
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
27
27
 
28
28
  var _draggable = _interopRequireDefault(require("../../../draggable"));
29
29
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/number-line/graph/elements/point.jsx"],"names":["duration","style","point","cursor","transition","stroke","color","primary","fill","opacity","r","primaryDark","selected","disabled","correct","incorrect","empty","Point","props","onDragStop","onDragStart","onDragCallback","onDrag","onClick","onMove","interval","y","bounds","position","classes","context","snapValue","xScale","dragPosition","x","normalized","inverted","invert","onStart","e","setState","startX","clientX","onStop","dd","endX","state","deltaX","Math","abs","is","newPosition","lastX","onMouseDown","nativeEvent","preventDefault","scaledBounds","left","right","p","circleClass","React","Component","undefined","PropTypes","number","isRequired","shape","bool","func","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\nimport Draggable from '../../../draggable';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\n\nconst duration = '150ms';\n\nconst style = {\n point: {\n cursor: 'pointer',\n transition: `r ${duration} linear, \n opacity ${duration} linear, \n fill ${duration} linear,\n stroke ${duration} linear`,\n\n stroke: color.primary(),\n fill: color.primary(),\n '&.react-draggable-dragging': {\n opacity: 0.25,\n r: '10px',\n },\n '&:hover': {\n stroke: color.primaryDark(),\n },\n },\n selected: {\n stroke: color.primaryDark(),\n },\n disabled: {\n cursor: 'not-allowed',\n opacity: 0.8,\n },\n correct: {\n cursor: 'inherit',\n stroke: color.correct(),\n fill: color.correct(),\n },\n incorrect: {\n cursor: 'inherit',\n stroke: color.incorrect(),\n fill: color.incorrect(),\n },\n empty: {\n fill: 'white',\n },\n};\n\nexport class Point extends React.Component {\n static defaultProps = {\n y: 0,\n selected: false,\n empty: false,\n disabled: false,\n correct: undefined,\n };\n\n static propTypes = {\n interval: PropTypes.number.isRequired,\n position: PropTypes.number.isRequired,\n bounds: PropTypes.shape({\n left: PropTypes.number.isRequired,\n right: PropTypes.number.isRequired,\n }),\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n correct: PropTypes.bool,\n empty: PropTypes.bool,\n y: PropTypes.number,\n onMove: PropTypes.func.isRequired,\n onClick: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onDragStart: PropTypes.func,\n classes: PropTypes.object.isRequired,\n };\n\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n render() {\n const {\n onDragStop,\n onDragStart,\n onDrag: onDragCallback,\n onClick,\n onMove,\n interval,\n y,\n bounds,\n selected,\n position,\n disabled,\n correct,\n empty,\n classes,\n } = this.props;\n\n const { snapValue, xScale } = this.context;\n\n const dragPosition = (x) => {\n const normalized = x + xScale(0);\n const inverted = xScale.invert(normalized);\n return snapValue(position + inverted);\n };\n\n const onStart = (e) => {\n this.setState({ startX: e.clientX });\n if (onDragStart) {\n onDragStart();\n }\n };\n\n const onStop = (e, dd) => {\n if (onDragStop) {\n onDragStop();\n }\n\n const endX = e.clientX;\n const startX = this.state.startX;\n const deltaX = Math.abs(endX - startX);\n\n if (deltaX < is / 10) {\n if (onClick) {\n onClick();\n this.setState({ startX: null });\n }\n } else {\n const newPosition = dragPosition(dd.lastX);\n onMove(newPosition);\n }\n };\n\n //prevent the text select icon from rendering.\n const onMouseDown = (e) => e.nativeEvent.preventDefault();\n\n const is = xScale(interval) - xScale(0);\n const scaledBounds = {\n left: (bounds.left / interval) * is,\n right: (bounds.right / interval) * is,\n };\n\n const onDrag = (e, dd) => {\n const p = dragPosition(dd.x);\n if (onDragCallback) {\n onDragCallback(p);\n }\n };\n\n const circleClass = classNames(classes.point, {\n [classes.disabled]: disabled,\n [classes.selected]: selected,\n [classes.correct]: correct === true,\n [classes.incorrect]: correct === false,\n [classes.empty]: empty === true,\n });\n\n return (\n <Draggable\n disabled={disabled}\n onMouseDown={onMouseDown}\n onStart={onStart}\n onDrag={onDrag}\n onStop={onStop}\n axis=\"x\"\n grid={[is]}\n bounds={scaledBounds}\n >\n <g>\n <circle r=\"20\" strokeWidth=\"3\" style={{ fill: 'transparent' }} cx={xScale(position)} cy={y} />\n <circle r=\"5\" strokeWidth=\"3\" className={circleClass} cx={xScale(position)} cy={y} />\n </g>\n </Draggable>\n );\n }\n}\n\nexport default injectSheet(style)(Point);\n"],"file":"point.js"}
1
+ {"version":3,"sources":["../../../../src/number-line/graph/elements/point.jsx"],"names":["duration","style","point","cursor","transition","stroke","color","primary","fill","opacity","r","primaryDark","selected","disabled","correct","incorrect","empty","Point","props","onDragStop","onDragStart","onDragCallback","onDrag","onClick","onMove","interval","y","bounds","position","classes","context","snapValue","xScale","dragPosition","x","normalized","inverted","invert","onStart","e","setState","startX","clientX","onStop","dd","endX","state","deltaX","Math","abs","is","newPosition","lastX","onMouseDown","nativeEvent","preventDefault","scaledBounds","left","right","p","circleClass","React","Component","undefined","PropTypes","number","isRequired","shape","bool","func","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport Draggable from '../../../draggable';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\n\nconst duration = '150ms';\n\nconst style = {\n point: {\n cursor: 'pointer',\n transition: `r ${duration} linear, \n opacity ${duration} linear, \n fill ${duration} linear,\n stroke ${duration} linear`,\n\n stroke: color.primary(),\n fill: color.primary(),\n '&.react-draggable-dragging': {\n opacity: 0.25,\n r: '10px',\n },\n '&:hover': {\n stroke: color.primaryDark(),\n },\n },\n selected: {\n stroke: color.primaryDark(),\n },\n disabled: {\n cursor: 'not-allowed',\n opacity: 0.8,\n },\n correct: {\n cursor: 'inherit',\n stroke: color.correct(),\n fill: color.correct(),\n },\n incorrect: {\n cursor: 'inherit',\n stroke: color.incorrect(),\n fill: color.incorrect(),\n },\n empty: {\n fill: 'white',\n },\n};\n\nexport class Point extends React.Component {\n static defaultProps = {\n y: 0,\n selected: false,\n empty: false,\n disabled: false,\n correct: undefined,\n };\n\n static propTypes = {\n interval: PropTypes.number.isRequired,\n position: PropTypes.number.isRequired,\n bounds: PropTypes.shape({\n left: PropTypes.number.isRequired,\n right: PropTypes.number.isRequired,\n }),\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n correct: PropTypes.bool,\n empty: PropTypes.bool,\n y: PropTypes.number,\n onMove: PropTypes.func.isRequired,\n onClick: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onDragStart: PropTypes.func,\n classes: PropTypes.object.isRequired,\n };\n\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n render() {\n const {\n onDragStop,\n onDragStart,\n onDrag: onDragCallback,\n onClick,\n onMove,\n interval,\n y,\n bounds,\n selected,\n position,\n disabled,\n correct,\n empty,\n classes,\n } = this.props;\n\n const { snapValue, xScale } = this.context;\n\n const dragPosition = (x) => {\n const normalized = x + xScale(0);\n const inverted = xScale.invert(normalized);\n return snapValue(position + inverted);\n };\n\n const onStart = (e) => {\n this.setState({ startX: e.clientX });\n if (onDragStart) {\n onDragStart();\n }\n };\n\n const onStop = (e, dd) => {\n if (onDragStop) {\n onDragStop();\n }\n\n const endX = e.clientX;\n const startX = this.state.startX;\n const deltaX = Math.abs(endX - startX);\n\n if (deltaX < is / 10) {\n if (onClick) {\n onClick();\n this.setState({ startX: null });\n }\n } else {\n const newPosition = dragPosition(dd.lastX);\n onMove(newPosition);\n }\n };\n\n //prevent the text select icon from rendering.\n const onMouseDown = (e) => e.nativeEvent.preventDefault();\n\n const is = xScale(interval) - xScale(0);\n const scaledBounds = {\n left: (bounds.left / interval) * is,\n right: (bounds.right / interval) * is,\n };\n\n const onDrag = (e, dd) => {\n const p = dragPosition(dd.x);\n if (onDragCallback) {\n onDragCallback(p);\n }\n };\n\n const circleClass = classNames(classes.point, {\n [classes.disabled]: disabled,\n [classes.selected]: selected,\n [classes.correct]: correct === true,\n [classes.incorrect]: correct === false,\n [classes.empty]: empty === true,\n });\n\n return (\n <Draggable\n disabled={disabled}\n onMouseDown={onMouseDown}\n onStart={onStart}\n onDrag={onDrag}\n onStop={onStop}\n axis=\"x\"\n grid={[is]}\n bounds={scaledBounds}\n >\n <g>\n <circle r=\"20\" strokeWidth=\"3\" style={{ fill: 'transparent' }} cx={xScale(position)} cy={y} />\n <circle r=\"5\" strokeWidth=\"3\" className={circleClass} cx={xScale(position)} cy={y} />\n </g>\n </Draggable>\n );\n }\n}\n\nexport default injectSheet(style)(Point);\n"],"file":"point.js"}
@@ -23,7 +23,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
23
23
 
24
24
  var colors = _interopRequireWildcard(require("../../colors"));
25
25
 
26
- var _renderUi = require("@pie-lib/render-ui");
26
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
27
27
 
28
28
  var _react = _interopRequireDefault(require("react"));
29
29
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/number-line/graph/elements/ray.jsx"],"names":["rayColor","stroke","fill","strokeWidth","style","ray","cursor","color","primary","transition","selected","colors","correct","incorrect","arrowCorrect","arrowIncorrect","arrowSelected","Ray","props","state","dragPosition","p","domain","min","max","setState","interval","empty","position","direction","y","disabled","width","classes","xScale","context","drag","bind","stopDrag","finalPosition","className","positive","left","right","x1","x2","arrowX","arrowDirection","noop","arrowClassNames","onToggleSelect","onMove","React","Component","PropTypes","number","isRequired","bool","oneOf","func","snapValue"],"mappings":"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","sourcesContent":["import * as colors from '../../colors';\nimport { color } from '@pie-lib/render-ui';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Arrow from '../arrow';\nimport Point from './point';\nimport { basePropTypes } from './base';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport isNumber from 'lodash/isNumber';\n\nconst rayColor = (rayColor) => ({\n '& line': {\n stroke: rayColor,\n },\n '& .arrow': {\n fill: rayColor,\n strokeWidth: '1px',\n stroke: rayColor,\n },\n});\n\nconst style = {\n ray: {\n '& line': {\n cursor: 'pointer',\n strokeWidth: '5px',\n stroke: color.primary(),\n },\n '& line, & .arrow': {\n transition: 'stroke 150ms linear, fill 150ms linear',\n },\n },\n selected: rayColor(colors.selected),\n correct: rayColor(colors.correct),\n incorrect: rayColor(colors.incorrect),\n arrowCorrect: {\n fill: colors.correct,\n '--arrow-color': colors.correct,\n },\n arrowIncorrect: {\n fill: colors.incorrect,\n '--arrow-color': colors.incorrect,\n },\n arrowSelected: {\n fill: colors.selected,\n '--arrow-color': colors.selected,\n },\n};\n\nexport class Ray extends React.Component {\n static propTypes = {\n ...basePropTypes(),\n width: PropTypes.number.isRequired,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n empty: PropTypes.bool,\n direction: PropTypes.oneOf(['positive', 'negative']),\n y: PropTypes.number,\n position: PropTypes.number.isRequired,\n onMove: PropTypes.func.isRequired,\n onToggleSelect: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n selected: false,\n direction: 'positive',\n y: 0,\n disabled: false,\n };\n\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dragPosition: null,\n };\n }\n\n drag(p) {\n const { domain } = this.props;\n if (p >= domain.min && p <= domain.max) {\n this.setState({ dragPosition: p });\n }\n }\n\n stopDrag() {\n this.setState({ dragPosition: null });\n }\n\n render() {\n /* eslint-disable */\n const { interval, empty, position, direction, domain, y, selected, disabled, width, correct, classes } = this.props;\n /* eslint-enable */\n const { xScale } = this.context;\n\n const drag = this.drag.bind(this);\n const stopDrag = this.stopDrag.bind(this);\n\n const finalPosition = isNumber(this.state.dragPosition) ? this.state.dragPosition : position;\n\n const className = classNames(classes.ray, {\n [classes.selected]: selected,\n [classes.correct]: correct === true,\n [classes.incorrect]: correct === false,\n });\n\n const positive = direction === 'positive';\n const left = positive ? finalPosition : domain.min;\n const right = positive ? domain.max : finalPosition;\n // const triangleX = positive ? xScale(right) : xScale(left);\n\n //const et the line run all the way to 0 or width.\n const x1 = positive ? xScale(left) : 8;\n const x2 = positive ? width - 8 : xScale(right);\n const arrowX = positive ? width : 0;\n const arrowDirection = positive ? 'right' : 'left';\n\n const noop = () => {};\n\n const arrowClassNames = classNames({\n [classes.arrowCorrect]: correct === true,\n [classes.arrowIncorrect]: correct === false,\n [classes.arrowSelected]: selected,\n });\n\n return (\n <g className={className} transform={`translate(0, ${y})`}>\n <line onClick={disabled ? noop : this.props.onToggleSelect} className=\"line-handle\" x1={x1} x2={x2} />\n <Point\n disabled={disabled}\n correct={correct}\n selected={selected}\n empty={empty}\n interval={interval}\n bounds={{ left: domain.min - position, right: domain.max - position }}\n position={position}\n onDrag={drag}\n onDragStop={stopDrag}\n onMove={this.props.onMove}\n />\n <Arrow x={arrowX} className={arrowClassNames} direction={arrowDirection} />\n </g>\n );\n }\n}\n\nexport default injectSheet(style)(Ray);\n"],"file":"ray.js"}
1
+ {"version":3,"sources":["../../../../src/number-line/graph/elements/ray.jsx"],"names":["rayColor","stroke","fill","strokeWidth","style","ray","cursor","color","primary","transition","selected","colors","correct","incorrect","arrowCorrect","arrowIncorrect","arrowSelected","Ray","props","state","dragPosition","p","domain","min","max","setState","interval","empty","position","direction","y","disabled","width","classes","xScale","context","drag","bind","stopDrag","finalPosition","className","positive","left","right","x1","x2","arrowX","arrowDirection","noop","arrowClassNames","onToggleSelect","onMove","React","Component","PropTypes","number","isRequired","bool","oneOf","func","snapValue"],"mappings":"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","sourcesContent":["import * as colors from '../../colors';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Arrow from '../arrow';\nimport Point from './point';\nimport { basePropTypes } from './base';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport isNumber from 'lodash/isNumber';\n\nconst rayColor = (rayColor) => ({\n '& line': {\n stroke: rayColor,\n },\n '& .arrow': {\n fill: rayColor,\n strokeWidth: '1px',\n stroke: rayColor,\n },\n});\n\nconst style = {\n ray: {\n '& line': {\n cursor: 'pointer',\n strokeWidth: '5px',\n stroke: color.primary(),\n },\n '& line, & .arrow': {\n transition: 'stroke 150ms linear, fill 150ms linear',\n },\n },\n selected: rayColor(colors.selected),\n correct: rayColor(colors.correct),\n incorrect: rayColor(colors.incorrect),\n arrowCorrect: {\n fill: colors.correct,\n '--arrow-color': colors.correct,\n },\n arrowIncorrect: {\n fill: colors.incorrect,\n '--arrow-color': colors.incorrect,\n },\n arrowSelected: {\n fill: colors.selected,\n '--arrow-color': colors.selected,\n },\n};\n\nexport class Ray extends React.Component {\n static propTypes = {\n ...basePropTypes(),\n width: PropTypes.number.isRequired,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n empty: PropTypes.bool,\n direction: PropTypes.oneOf(['positive', 'negative']),\n y: PropTypes.number,\n position: PropTypes.number.isRequired,\n onMove: PropTypes.func.isRequired,\n onToggleSelect: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n selected: false,\n direction: 'positive',\n y: 0,\n disabled: false,\n };\n\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dragPosition: null,\n };\n }\n\n drag(p) {\n const { domain } = this.props;\n if (p >= domain.min && p <= domain.max) {\n this.setState({ dragPosition: p });\n }\n }\n\n stopDrag() {\n this.setState({ dragPosition: null });\n }\n\n render() {\n /* eslint-disable */\n const { interval, empty, position, direction, domain, y, selected, disabled, width, correct, classes } = this.props;\n /* eslint-enable */\n const { xScale } = this.context;\n\n const drag = this.drag.bind(this);\n const stopDrag = this.stopDrag.bind(this);\n\n const finalPosition = isNumber(this.state.dragPosition) ? this.state.dragPosition : position;\n\n const className = classNames(classes.ray, {\n [classes.selected]: selected,\n [classes.correct]: correct === true,\n [classes.incorrect]: correct === false,\n });\n\n const positive = direction === 'positive';\n const left = positive ? finalPosition : domain.min;\n const right = positive ? domain.max : finalPosition;\n // const triangleX = positive ? xScale(right) : xScale(left);\n\n //const et the line run all the way to 0 or width.\n const x1 = positive ? xScale(left) : 8;\n const x2 = positive ? width - 8 : xScale(right);\n const arrowX = positive ? width : 0;\n const arrowDirection = positive ? 'right' : 'left';\n\n const noop = () => {};\n\n const arrowClassNames = classNames({\n [classes.arrowCorrect]: correct === true,\n [classes.arrowIncorrect]: correct === false,\n [classes.arrowSelected]: selected,\n });\n\n return (\n <g className={className} transform={`translate(0, ${y})`}>\n <line onClick={disabled ? noop : this.props.onToggleSelect} className=\"line-handle\" x1={x1} x2={x2} />\n <Point\n disabled={disabled}\n correct={correct}\n selected={selected}\n empty={empty}\n interval={interval}\n bounds={{ left: domain.min - position, right: domain.max - position }}\n position={position}\n onDrag={drag}\n onDragStop={stopDrag}\n onMove={this.props.onMove}\n />\n <Arrow x={arrowX} className={arrowClassNames} direction={arrowDirection} />\n </g>\n );\n }\n}\n\nexport default injectSheet(style)(Ray);\n"],"file":"ray.js"}
@@ -27,7 +27,7 @@ var _d3Scale = require("d3-scale");
27
27
 
28
28
  var _d3Selection = require("d3-selection");
29
29
 
30
- var _renderUi = require("@pie-lib/render-ui");
30
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
31
31
 
32
32
  var _point = _interopRequireDefault(require("./elements/point"));
33
33
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/index.jsx"],"names":["getXScale","min","max","width","padding","undefined","Error","domain","range","Debug","props","JSON","stringify","NumberLineGraph","state","toString","length","ticks","snapTo","bind","minor","xScale","xScaleFn","snapValue","snapValueFn","rect","elements","disabled","anyElementSelected","some","e","selected","onDeselectElements","coords","_groups","x","invert","addElement","on","onRectClick","snapFn","v","onAddElement","height","onToggleElement","onMoveElement","fraction","arrows","left","right","lineY","stacks","Stacks","map","el","index","stackIndex","add","y","commonProps","key","interval","correct","toggleElement","moveElement","type","empty","leftPoint","rightPoint","position","bounds","pointType","direction","color","primary","c","React","Component","PropTypes","func","isRequired","shape","number","major","bool","debug","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { scaleLinear } from 'd3-scale';\nimport { select, mouse } from 'd3-selection';\nimport { color } from '@pie-lib/render-ui';\nimport Point from './elements/point';\nimport Line from './elements/line';\nimport Ray from './elements/ray';\nimport BaseLine from './line';\nimport Arrow from './arrow';\nimport Ticks from './ticks';\nimport { snapTo } from './tick-utils';\nimport Stacks from './stacks';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport { Fade } from '../transitions';\n\nconst getXScale = (min, max, width, padding) => {\n if (min === undefined || max === undefined || width === undefined) {\n throw new Error('missing min/max/width');\n }\n\n return scaleLinear()\n .domain([min, max])\n .range([padding, width - padding]);\n};\n\nconst Debug = (props) => (\n <g>\n <text x=\"00\" y=\"20\">\n {JSON.stringify(props)}\n </text>\n </g>\n);\n\nexport class NumberLineGraph extends React.Component {\n static childContextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n ticks: PropTypes.shape({ minor: PropTypes.number, major: PropTypes.number }).isRequired,\n fraction: PropTypes.bool,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onToggleElement: PropTypes.func.isRequired,\n onMoveElement: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n debug: PropTypes.bool,\n elements: PropTypes.array,\n disabled: PropTypes.bool,\n onDeselectElements: PropTypes.func,\n arrows: PropTypes.shape({ left: PropTypes.bool, right: PropTypes.bool }),\n };\n\n static defaultProps = {\n debug: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n xScaleFn() {\n const { domain, width } = this.props;\n const { max, min } = domain || {};\n\n let padding = 20;\n\n if (max) {\n padding = max.toString().length * 4 + 15;\n }\n\n return getXScale(min, max, width, padding);\n }\n\n snapValueFn() {\n const { domain, ticks } = this.props;\n return snapTo.bind(null, domain.min, domain.max, ticks.minor);\n }\n\n getChildContext() {\n return {\n xScale: this.xScaleFn(),\n snapValue: this.snapValueFn(),\n };\n }\n\n /**\n * Note: we use d3 click + mouse to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick(rect) {\n const { elements, disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const anyElementSelected = elements.some((e) => e.selected);\n\n if (anyElementSelected) {\n this.props.onDeselectElements();\n } else {\n var coords = mouse(rect._groups[0][0]);\n const x = this.xScaleFn().invert(coords[0]);\n this.addElement(x);\n }\n }\n\n componentDidMount() {\n const rect = select(this.rect);\n rect.on('click', this.onRectClick.bind(this, rect));\n }\n\n addElement(x) {\n const snapFn = this.snapValueFn();\n const v = snapFn(x);\n this.props.onAddElement(v);\n }\n\n render() {\n const { domain, width, ticks, height, onToggleElement, onMoveElement, disabled, fraction } = this.props;\n let { arrows } = this.props;\n\n arrows = arrows || { left: true, right: true };\n const { min, max } = domain;\n\n if (domain.max <= domain.min) {\n return (\n <div>\n {domain.max} is less than or equal to {domain.min}\n </div>\n );\n } else {\n const lineY = height - 30;\n\n const stacks = new Stacks(domain);\n\n const elements = this.props.elements.map((el, index) => {\n const stackIndex = stacks.add(el);\n\n if (stackIndex === -1) {\n throw new Error('stack index is -1, cant add element');\n }\n\n const y = lineY - stackIndex * 25;\n\n const commonProps = {\n key: index,\n y,\n selected: el.selected && !disabled,\n interval: ticks.minor,\n disabled,\n correct: el.correct,\n };\n\n const toggleElement = onToggleElement.bind(null, index, el);\n const moveElement = onMoveElement.bind(null, index, el);\n\n if (el.type === 'line') {\n const empty = {\n left: el.leftPoint === 'empty',\n right: el.rightPoint === 'empty',\n };\n\n return (\n <Line\n {...commonProps}\n domain={{ min: min, max: max }}\n onMoveLine={moveElement}\n onToggleSelect={toggleElement}\n position={el.position}\n empty={empty}\n />\n );\n } else if (el.type === 'point') {\n const bounds = {\n left: min - el.position,\n right: max - el.position,\n };\n\n return (\n <Point\n {...commonProps}\n empty={el.pointType === 'empty'}\n position={el.position}\n bounds={bounds}\n onClick={toggleElement}\n onMove={moveElement}\n />\n );\n } else if (el.type === 'ray') {\n return (\n <Ray\n {...commonProps}\n domain={{ min: min, max: max }}\n direction={el.direction}\n position={el.position}\n onMove={moveElement}\n onToggleSelect={toggleElement}\n width={width}\n empty={el.pointType === 'empty'}\n />\n );\n }\n });\n\n return (\n <svg width={width} height={fraction ? height + 20 : height}>\n {false && <Debug domain={domain} ticks={ticks} />}\n <BaseLine y={lineY} width={width} />\n {arrows.left && <Arrow y={lineY} />}\n {arrows.right && <Arrow x={width} y={lineY} direction=\"right\" />}\n <Ticks y={lineY} domain={domain} ticks={ticks} fraction={fraction} />\n <rect\n ref={(rect) => (this.rect = rect)}\n //need to have a fill for it to be clickable\n fill={color.primary()}\n fillOpacity=\"0.0\"\n width={width}\n height={height}\n />\n <TransitionGroup component=\"g\">\n {elements.map((c, index) => (\n <Fade key={index}>{c}</Fade>\n ))}\n </TransitionGroup>\n </svg>\n );\n }\n }\n}\n\nexport default NumberLineGraph;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/number-line/graph/index.jsx"],"names":["getXScale","min","max","width","padding","undefined","Error","domain","range","Debug","props","JSON","stringify","NumberLineGraph","state","toString","length","ticks","snapTo","bind","minor","xScale","xScaleFn","snapValue","snapValueFn","rect","elements","disabled","anyElementSelected","some","e","selected","onDeselectElements","coords","_groups","x","invert","addElement","on","onRectClick","snapFn","v","onAddElement","height","onToggleElement","onMoveElement","fraction","arrows","left","right","lineY","stacks","Stacks","map","el","index","stackIndex","add","y","commonProps","key","interval","correct","toggleElement","moveElement","type","empty","leftPoint","rightPoint","position","bounds","pointType","direction","color","primary","c","React","Component","PropTypes","func","isRequired","shape","number","major","bool","debug","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { scaleLinear } from 'd3-scale';\nimport { select, mouse } from 'd3-selection';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport Point from './elements/point';\nimport Line from './elements/line';\nimport Ray from './elements/ray';\nimport BaseLine from './line';\nimport Arrow from './arrow';\nimport Ticks from './ticks';\nimport { snapTo } from './tick-utils';\nimport Stacks from './stacks';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport { Fade } from '../transitions';\n\nconst getXScale = (min, max, width, padding) => {\n if (min === undefined || max === undefined || width === undefined) {\n throw new Error('missing min/max/width');\n }\n\n return scaleLinear()\n .domain([min, max])\n .range([padding, width - padding]);\n};\n\nconst Debug = (props) => (\n <g>\n <text x=\"00\" y=\"20\">\n {JSON.stringify(props)}\n </text>\n </g>\n);\n\nexport class NumberLineGraph extends React.Component {\n static childContextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n ticks: PropTypes.shape({ minor: PropTypes.number, major: PropTypes.number }).isRequired,\n fraction: PropTypes.bool,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onToggleElement: PropTypes.func.isRequired,\n onMoveElement: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n debug: PropTypes.bool,\n elements: PropTypes.array,\n disabled: PropTypes.bool,\n onDeselectElements: PropTypes.func,\n arrows: PropTypes.shape({ left: PropTypes.bool, right: PropTypes.bool }),\n };\n\n static defaultProps = {\n debug: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n xScaleFn() {\n const { domain, width } = this.props;\n const { max, min } = domain || {};\n\n let padding = 20;\n\n if (max) {\n padding = max.toString().length * 4 + 15;\n }\n\n return getXScale(min, max, width, padding);\n }\n\n snapValueFn() {\n const { domain, ticks } = this.props;\n return snapTo.bind(null, domain.min, domain.max, ticks.minor);\n }\n\n getChildContext() {\n return {\n xScale: this.xScaleFn(),\n snapValue: this.snapValueFn(),\n };\n }\n\n /**\n * Note: we use d3 click + mouse to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick(rect) {\n const { elements, disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const anyElementSelected = elements.some((e) => e.selected);\n\n if (anyElementSelected) {\n this.props.onDeselectElements();\n } else {\n var coords = mouse(rect._groups[0][0]);\n const x = this.xScaleFn().invert(coords[0]);\n this.addElement(x);\n }\n }\n\n componentDidMount() {\n const rect = select(this.rect);\n rect.on('click', this.onRectClick.bind(this, rect));\n }\n\n addElement(x) {\n const snapFn = this.snapValueFn();\n const v = snapFn(x);\n this.props.onAddElement(v);\n }\n\n render() {\n const { domain, width, ticks, height, onToggleElement, onMoveElement, disabled, fraction } = this.props;\n let { arrows } = this.props;\n\n arrows = arrows || { left: true, right: true };\n const { min, max } = domain;\n\n if (domain.max <= domain.min) {\n return (\n <div>\n {domain.max} is less than or equal to {domain.min}\n </div>\n );\n } else {\n const lineY = height - 30;\n\n const stacks = new Stacks(domain);\n\n const elements = this.props.elements.map((el, index) => {\n const stackIndex = stacks.add(el);\n\n if (stackIndex === -1) {\n throw new Error('stack index is -1, cant add element');\n }\n\n const y = lineY - stackIndex * 25;\n\n const commonProps = {\n key: index,\n y,\n selected: el.selected && !disabled,\n interval: ticks.minor,\n disabled,\n correct: el.correct,\n };\n\n const toggleElement = onToggleElement.bind(null, index, el);\n const moveElement = onMoveElement.bind(null, index, el);\n\n if (el.type === 'line') {\n const empty = {\n left: el.leftPoint === 'empty',\n right: el.rightPoint === 'empty',\n };\n\n return (\n <Line\n {...commonProps}\n domain={{ min: min, max: max }}\n onMoveLine={moveElement}\n onToggleSelect={toggleElement}\n position={el.position}\n empty={empty}\n />\n );\n } else if (el.type === 'point') {\n const bounds = {\n left: min - el.position,\n right: max - el.position,\n };\n\n return (\n <Point\n {...commonProps}\n empty={el.pointType === 'empty'}\n position={el.position}\n bounds={bounds}\n onClick={toggleElement}\n onMove={moveElement}\n />\n );\n } else if (el.type === 'ray') {\n return (\n <Ray\n {...commonProps}\n domain={{ min: min, max: max }}\n direction={el.direction}\n position={el.position}\n onMove={moveElement}\n onToggleSelect={toggleElement}\n width={width}\n empty={el.pointType === 'empty'}\n />\n );\n }\n });\n\n return (\n <svg width={width} height={fraction ? height + 20 : height}>\n {false && <Debug domain={domain} ticks={ticks} />}\n <BaseLine y={lineY} width={width} />\n {arrows.left && <Arrow y={lineY} />}\n {arrows.right && <Arrow x={width} y={lineY} direction=\"right\" />}\n <Ticks y={lineY} domain={domain} ticks={ticks} fraction={fraction} />\n <rect\n ref={(rect) => (this.rect = rect)}\n //need to have a fill for it to be clickable\n fill={color.primary()}\n fillOpacity=\"0.0\"\n width={width}\n height={height}\n />\n <TransitionGroup component=\"g\">\n {elements.map((c, index) => (\n <Fade key={index}>{c}</Fade>\n ))}\n </TransitionGroup>\n </svg>\n );\n }\n }\n}\n\nexport default NumberLineGraph;\n"],"file":"index.js"}
@@ -14,7 +14,7 @@ var _reactJss = _interopRequireDefault(require("react-jss"));
14
14
 
15
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
16
16
 
17
- var _renderUi = require("@pie-lib/render-ui");
17
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
18
18
 
19
19
  var style = {
20
20
  root: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/line.jsx"],"names":["style","root","strokeWidth","stroke","color","primary","Line","y","width","classes","propTypes","PropTypes","number","isRequired","object"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE;AACJC,IAAAA,WAAW,EAAE,CADT;AAEJC,IAAAA,MAAM,EAAEC,gBAAMC,OAAN;AAFJ;AADM,CAAd;;AAOO,SAASC,IAAT,OAAqC;AAAA,MAArBC,CAAqB,QAArBA,CAAqB;AAAA,MAAlBC,KAAkB,QAAlBA,KAAkB;AAAA,MAAXC,OAAW,QAAXA,OAAW;AAC1C,sBAAO;AAAM,IAAA,EAAE,EAAE,CAAV;AAAa,IAAA,EAAE,EAAEF,CAAjB;AAAoB,IAAA,EAAE,EAAEC,KAAxB;AAA+B,IAAA,EAAE,EAAED,CAAnC;AAAsC,IAAA,SAAS,EAAEE,OAAO,CAACR;AAAzD,IAAP;AACD;;AAEDK,IAAI,CAACI,SAAL,GAAiB;AACfH,EAAAA,CAAC,EAAEI,sBAAUC,MAAV,CAAiBC,UADL;AAEfL,EAAAA,KAAK,EAAEG,sBAAUC,MAAV,CAAiBC,UAFT;AAGfJ,EAAAA,OAAO,EAAEE,sBAAUG,MAAV,CAAiBD;AAHX,CAAjB;;eAMe,0BAAYb,KAAZ,EAAmBM,IAAnB,C","sourcesContent":["import React from 'react';\nimport injectSheet from 'react-jss';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\n\nconst style = {\n root: {\n strokeWidth: 2,\n stroke: color.primary(),\n },\n};\n\nexport function Line({ y, width, classes }) {\n return <line x1={0} y1={y} x2={width} y2={y} className={classes.root} />;\n}\n\nLine.propTypes = {\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nexport default injectSheet(style)(Line);\n"],"file":"line.js"}
1
+ {"version":3,"sources":["../../../src/number-line/graph/line.jsx"],"names":["style","root","strokeWidth","stroke","color","primary","Line","y","width","classes","propTypes","PropTypes","number","isRequired","object"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE;AACJC,IAAAA,WAAW,EAAE,CADT;AAEJC,IAAAA,MAAM,EAAEC,gBAAMC,OAAN;AAFJ;AADM,CAAd;;AAOO,SAASC,IAAT,OAAqC;AAAA,MAArBC,CAAqB,QAArBA,CAAqB;AAAA,MAAlBC,KAAkB,QAAlBA,KAAkB;AAAA,MAAXC,OAAW,QAAXA,OAAW;AAC1C,sBAAO;AAAM,IAAA,EAAE,EAAE,CAAV;AAAa,IAAA,EAAE,EAAEF,CAAjB;AAAoB,IAAA,EAAE,EAAEC,KAAxB;AAA+B,IAAA,EAAE,EAAED,CAAnC;AAAsC,IAAA,SAAS,EAAEE,OAAO,CAACR;AAAzD,IAAP;AACD;;AAEDK,IAAI,CAACI,SAAL,GAAiB;AACfH,EAAAA,CAAC,EAAEI,sBAAUC,MAAV,CAAiBC,UADL;AAEfL,EAAAA,KAAK,EAAEG,sBAAUC,MAAV,CAAiBC,UAFT;AAGfJ,EAAAA,OAAO,EAAEE,sBAAUG,MAAV,CAAiBD;AAHX,CAAjB;;eAMe,0BAAYb,KAAZ,EAAmBM,IAAnB,C","sourcesContent":["import React from 'react';\nimport injectSheet from 'react-jss';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst style = {\n root: {\n strokeWidth: 2,\n stroke: color.primary(),\n },\n};\n\nexport function Line({ y, width, classes }) {\n return <line x1={0} y1={y} x2={width} y2={y} className={classes.root} />;\n}\n\nLine.propTypes = {\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nexport default injectSheet(style)(Line);\n"],"file":"line.js"}
@@ -27,7 +27,7 @@ var _tickUtils = require("./tick-utils");
27
27
 
28
28
  var _reactJss = _interopRequireDefault(require("react-jss"));
29
29
 
30
- var _renderUi = require("@pie-lib/render-ui");
30
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
31
31
 
32
32
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
33
33
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/ticks.jsx"],"names":["style","text","userSelect","textAlign","fill","color","primary","line","stroke","TickValidator","PropTypes","shape","major","props","propName","minor","Error","componentName","isRequired","Tick","wasRendered","fraction","getBBox","width","setAttribute","forceUpdate","x","y","type","classes","xScale","displayFraction","n","d","labelTick","height","textWidth","textHeight","textX","textY","xText","Number","toFixed","s","React","Component","object","number","bool","func","string","Ticks","domain","ticks","context","tickData","map","min","max"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { buildTickData, isMultiple } from './tick-utils';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/render-ui';\n\nconst style = {\n text: {\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary(),\n },\n line: {\n stroke: color.primary(),\n },\n};\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {\n let major = props[propName];\n let minor = props.minor;\n\n if (!isMultiple(major, minor)) {\n return new Error(`Invalid prop major. It must be a multiple of ${minor}`);\n }\n },\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);\n }\n },\n}).isRequired;\n\nexport class Tick extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n y: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n major: PropTypes.bool,\n fraction: PropTypes.bool,\n xScale: PropTypes.func,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n major: false,\n };\n\n constructor(props) {\n super(props);\n this.wasRendered = false;\n }\n\n componentDidMount() {\n //center align the tick text\n if (this.text) {\n const { fraction } = this.props;\n let { width } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n\n if (fraction && !this.wasRendered) {\n // used for rendering the line fraction\n this.wasRendered = true;\n this.forceUpdate();\n }\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, classes, xScale, fraction } = this.props;\n const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;\n const labelTick = type === 'major';\n const height = labelTick ? 20 : 10;\n const {\n width: textWidth = 0,\n height: textHeight = 0,\n x: textX = 0,\n y: textY = 0,\n } = (this.text && this.text.getBBox()) || {};\n\n const xText = !fraction ? (\n Number(x.toFixed(2))\n ) : !displayFraction ? (\n x.n * x.s\n ) : (\n <React.Fragment>\n <tspan x=\"0\" dy=\"0.71em\">\n {x.n * x.s}\n </tspan>\n <tspan x=\"0\" dy=\"1.11em\">\n {x.d}\n </tspan>\n </React.Fragment>\n );\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <line className={classes.line} y1={(height / 2) * -1} y2={height / 2} x1=\"0.5\" x2=\"0.5\" />\n\n {displayFraction && (\n <line\n className={classes.line}\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n )}\n\n {labelTick && (\n <text\n ref={(text) => (this.text = text)}\n className={classes.text}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </text>\n )}\n </g>\n );\n }\n}\n\nexport class Ticks extends React.Component {\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n fraction: PropTypes.bool,\n ticks: TickValidator,\n y: PropTypes.number.isRequired,\n };\n\n render() {\n let { domain, ticks, y, classes, fraction } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, ticks, { fraction });\n\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick classes={classes} fraction={fraction} x={x} y={y} type={type} xScale={xScale} key={`${x}-${type}`} />\n );\n })}\n </g>\n );\n }\n}\n\nexport default injectSheet(style)(Ticks);\n"],"file":"ticks.js"}
1
+ {"version":3,"sources":["../../../src/number-line/graph/ticks.jsx"],"names":["style","text","userSelect","textAlign","fill","color","primary","line","stroke","TickValidator","PropTypes","shape","major","props","propName","minor","Error","componentName","isRequired","Tick","wasRendered","fraction","getBBox","width","setAttribute","forceUpdate","x","y","type","classes","xScale","displayFraction","n","d","labelTick","height","textWidth","textHeight","textX","textY","xText","Number","toFixed","s","React","Component","object","number","bool","func","string","Ticks","domain","ticks","context","tickData","map","min","max"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { buildTickData, isMultiple } from './tick-utils';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst style = {\n text: {\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary(),\n },\n line: {\n stroke: color.primary(),\n },\n};\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {\n let major = props[propName];\n let minor = props.minor;\n\n if (!isMultiple(major, minor)) {\n return new Error(`Invalid prop major. It must be a multiple of ${minor}`);\n }\n },\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);\n }\n },\n}).isRequired;\n\nexport class Tick extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n y: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n major: PropTypes.bool,\n fraction: PropTypes.bool,\n xScale: PropTypes.func,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n major: false,\n };\n\n constructor(props) {\n super(props);\n this.wasRendered = false;\n }\n\n componentDidMount() {\n //center align the tick text\n if (this.text) {\n const { fraction } = this.props;\n let { width } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n\n if (fraction && !this.wasRendered) {\n // used for rendering the line fraction\n this.wasRendered = true;\n this.forceUpdate();\n }\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, classes, xScale, fraction } = this.props;\n const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;\n const labelTick = type === 'major';\n const height = labelTick ? 20 : 10;\n const {\n width: textWidth = 0,\n height: textHeight = 0,\n x: textX = 0,\n y: textY = 0,\n } = (this.text && this.text.getBBox()) || {};\n\n const xText = !fraction ? (\n Number(x.toFixed(2))\n ) : !displayFraction ? (\n x.n * x.s\n ) : (\n <React.Fragment>\n <tspan x=\"0\" dy=\"0.71em\">\n {x.n * x.s}\n </tspan>\n <tspan x=\"0\" dy=\"1.11em\">\n {x.d}\n </tspan>\n </React.Fragment>\n );\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <line className={classes.line} y1={(height / 2) * -1} y2={height / 2} x1=\"0.5\" x2=\"0.5\" />\n\n {displayFraction && (\n <line\n className={classes.line}\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n )}\n\n {labelTick && (\n <text\n ref={(text) => (this.text = text)}\n className={classes.text}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </text>\n )}\n </g>\n );\n }\n}\n\nexport class Ticks extends React.Component {\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n fraction: PropTypes.bool,\n ticks: TickValidator,\n y: PropTypes.number.isRequired,\n };\n\n render() {\n let { domain, ticks, y, classes, fraction } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, ticks, { fraction });\n\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick classes={classes} fraction={fraction} x={x} y={y} type={type} xScale={xScale} key={`${x}-${type}`} />\n );\n })}\n </g>\n );\n }\n}\n\nexport default injectSheet(style)(Ticks);\n"],"file":"ticks.js"}
@@ -37,7 +37,7 @@ var _pointChooser = _interopRequireDefault(require("./point-chooser"));
37
37
 
38
38
  var _react = _interopRequireDefault(require("react"));
39
39
 
40
- var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
40
+ var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/pie-toolbox/correct-answer-toggle"));
41
41
 
42
42
  var _builder = require("./graph/elements/builder");
43
43
 
@@ -45,7 +45,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
45
45
 
46
46
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
47
47
 
48
- var _renderUi = require("@pie-lib/render-ui");
48
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
49
49
 
50
50
  var _reactJss = _interopRequireDefault(require("react-jss"));
51
51
 
@@ -55,7 +55,7 @@ var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
55
55
 
56
56
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
57
57
 
58
- var _translator = _interopRequireDefault(require("@pie-lib/translator"));
58
+ var _translator = _interopRequireDefault(require("@pie-lib/pie-toolbox/translator"));
59
59
 
60
60
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
61
61
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/number-line/index.jsx"],"names":["translator","Translator","styles","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","boxSizing","toggle","marginBottom","black_on_rose","white_on_black","prompt","verticalAlign","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","corrected","correct","incorrect","disabled","correctResponse","emptyAnswer","feedback","colorContrast","language","addElement","bind","elementsSelected","arrows","height","availableTypes","title","fraction","width","getSize","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","lng","count","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","names","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","__html","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport React from 'react';\nimport Toggle from '@pie-lib/correct-answer-toggle';\nimport { buildElementModel } from './graph/elements/builder';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { color, PreviewPrompt } from '@pie-lib/render-ui';\nimport injectSheet from 'react-jss';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nexport { Graph };\n\nconst styles = {\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n boxSizing: 'unset',\n },\n toggle: {\n marginBottom: '16px',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n};\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType ? initialType.toLowerCase() : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain } = this.props.model.graph;\n\n let elementData = buildElementModel(x, this.state.elementType, domain, ticks.minor);\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return isNumber(maxNumberOfPoints) && maxNumberOfPoints > 0 && (answer || []).length >= maxNumberOfPoints;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement } = this.props;\n let { showCorrectAnswer, answers, selectedElements, showMaxPointsWarning, elementType } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n language\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected = !disabled && selectedElements && selectedElements.length > 0;\n const { ticks, domain, arrows, maxNumberOfPoints, height, availableTypes, title, fraction } = graph;\n const width = this.getSize('width', 400, 1600, 600);\n const graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: height || 100,\n arrows,\n fraction,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer ? getCorrectAnswerElements() : getAnswerElements();\n\n let maxPointsMessage = () => maxNumberOfPoints == 1 ? translator.t('numberLine.addElementLimit_one', {\n lng: language,\n count: 1\n }) : translator.t('numberLine.addElementLimit_other', { lng: language, count: maxNumberOfPoints });\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const names = classNames(classes.numberLine, classes.mainContainer, classes[colorContrast]);\n\n return (\n <div className={names} style={{ width }}>\n {prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n <div style={{ width: adjustedWidth }} className={classes.toggle}>\n <Toggle\n show={isArray(correctResponse) && correctResponse.length && !emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n language={language}\n />\n </div>\n\n {!disabled && (\n <PointChooser\n elementType={elementType}\n showDeleteButton={elementsSelected}\n onDeleteClick={deleteElements}\n onElementType={this.elementTypeSelected.bind(this)}\n onClearElements={this.clearAll.bind(this)}\n onUndoElement={this.undo.bind(this)}\n icons={getIcons()}\n language={language}\n />\n )}\n\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {title && <div className={classes.graphTitle} dangerouslySetInnerHTML={{ __html: title }} />}\n\n {showMaxPointsWarning && <Feedback type=\"info\" width={adjustedWidth} message={maxPointsMessage()} />}\n {feedback && !showCorrectAnswer && <Feedback {...feedback} width={adjustedWidth} />}\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(NumberLine);\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/number-line/index.jsx"],"names":["translator","Translator","styles","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","boxSizing","toggle","marginBottom","black_on_rose","white_on_black","prompt","verticalAlign","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","corrected","correct","incorrect","disabled","correctResponse","emptyAnswer","feedback","colorContrast","language","addElement","bind","elementsSelected","arrows","height","availableTypes","title","fraction","width","getSize","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","lng","count","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","names","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","__html","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport React from 'react';\nimport Toggle from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { buildElementModel } from './graph/elements/builder';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { color, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport injectSheet from 'react-jss';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nexport { Graph };\n\nconst styles = {\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n boxSizing: 'unset',\n },\n toggle: {\n marginBottom: '16px',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n};\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType ? initialType.toLowerCase() : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain } = this.props.model.graph;\n\n let elementData = buildElementModel(x, this.state.elementType, domain, ticks.minor);\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return isNumber(maxNumberOfPoints) && maxNumberOfPoints > 0 && (answer || []).length >= maxNumberOfPoints;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement } = this.props;\n let { showCorrectAnswer, answers, selectedElements, showMaxPointsWarning, elementType } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n language\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected = !disabled && selectedElements && selectedElements.length > 0;\n const { ticks, domain, arrows, maxNumberOfPoints, height, availableTypes, title, fraction } = graph;\n const width = this.getSize('width', 400, 1600, 600);\n const graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: height || 100,\n arrows,\n fraction,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer ? getCorrectAnswerElements() : getAnswerElements();\n\n let maxPointsMessage = () => maxNumberOfPoints == 1 ? translator.t('numberLine.addElementLimit_one', {\n lng: language,\n count: 1\n }) : translator.t('numberLine.addElementLimit_other', { lng: language, count: maxNumberOfPoints });\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const names = classNames(classes.numberLine, classes.mainContainer, classes[colorContrast]);\n\n return (\n <div className={names} style={{ width }}>\n {prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n <div style={{ width: adjustedWidth }} className={classes.toggle}>\n <Toggle\n show={isArray(correctResponse) && correctResponse.length && !emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n language={language}\n />\n </div>\n\n {!disabled && (\n <PointChooser\n elementType={elementType}\n showDeleteButton={elementsSelected}\n onDeleteClick={deleteElements}\n onElementType={this.elementTypeSelected.bind(this)}\n onClearElements={this.clearAll.bind(this)}\n onUndoElement={this.undo.bind(this)}\n icons={getIcons()}\n language={language}\n />\n )}\n\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {title && <div className={classes.graphTitle} dangerouslySetInnerHTML={{ __html: title }} />}\n\n {showMaxPointsWarning && <Feedback type=\"info\" width={adjustedWidth} message={maxPointsMessage()} />}\n {feedback && !showCorrectAnswer && <Feedback {...feedback} width={adjustedWidth} />}\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(NumberLine);\n"],"file":"index.js"}
@@ -31,7 +31,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
31
31
 
32
32
  var _button = _interopRequireDefault(require("./button"));
33
33
 
34
- var _translator = _interopRequireDefault(require("@pie-lib/translator"));
34
+ var _translator = _interopRequireDefault(require("@pie-lib/pie-toolbox/translator"));
35
35
 
36
36
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
37
37
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/point-chooser/index.jsx"],"names":["translator","Translator","DeleteIcon","classes","deleteIcon","propTypes","PropTypes","object","RawPoint","props","iconKey","active","onClick","names","string","isRequired","bool","func","Point","styles","Points","selectPoint","selected","icons","iconTags","map","key","bind","toLowerCase","elementSelector","array","PointChooser","elementType","showDeleteButton","onDeleteClick","onUndoElement","onClearElements","onElementType","language","pointChooser","controls","deleteIconHolder","t","lng","React","Component","DEFAULT_TYPE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport styles from './styles';\nimport PropTypes from 'prop-types';\nimport Button from './button';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst DeleteIcon = ({ classes }) => {\n return (\n <svg\n className={classes.deleteIcon}\n fill=\"#000000\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nDeleteIcon.propTypes = {\n classes: PropTypes.object,\n};\n\nconst RawPoint = (props) => {\n const { iconKey, active, classes, onClick } = props;\n const names = classNames(classes[iconKey], { active });\n return (\n <span role=\"presentation\" key={iconKey} onClick={onClick}>\n <a className={names}>&nbsp;</a>\n </span>\n );\n};\n\nRawPoint.propTypes = {\n iconKey: PropTypes.string.isRequired,\n active: PropTypes.bool,\n classes: PropTypes.object,\n onClick: PropTypes.func,\n};\n\nexport const Point = injectSheet(styles)(RawPoint);\n\nconst Points = ({ selectPoint, classes, selected, icons }) => {\n const iconTags = icons.map((key) => {\n let active = key === selected;\n let onClick = active ? () => {} : selectPoint.bind(null, key);\n return <Point key={key.toLowerCase()} iconKey={key.toLowerCase()} active={active} onClick={onClick} />; //icon(key, active);\n });\n\n return <div className={classes.elementSelector}>{iconTags}</div>;\n};\n\nPoints.propTypes = {\n selectPoint: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n selected: PropTypes.string,\n icons: PropTypes.array,\n};\n\nexport class PointChooser extends React.Component {\n static defaultProps = {\n showDeleteButton: false,\n elementType: PointChooser.DEFAULT_TYPE,\n icons: ['pf', 'lff', 'lef', 'lfe', 'lee', 'rfn', 'rfp', 'ren', 'rep'],\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n elementType: PropTypes.string,\n showDeleteButton: PropTypes.bool,\n onDeleteClick: PropTypes.func.isRequired,\n onElementType: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n icons: PropTypes.array,\n language: PropTypes.string,\n };\n\n render() {\n const {\n elementType,\n showDeleteButton,\n onDeleteClick,\n onUndoElement,\n onClearElements,\n icons,\n classes,\n onElementType,\n language\n } = this.props;\n\n return (\n <div className={classes.pointChooser}>\n <Points selected={elementType} classes={classes} selectPoint={onElementType} icons={icons} />\n <div className={classes.controls}>\n {showDeleteButton && (\n <span className={classes.deleteIconHolder} onClick={onDeleteClick}>\n <DeleteIcon classes={classes} />\n </span>\n )}\n <Button onClick={onUndoElement} label={translator.t('common:undo', { lng: language })} />\n <Button onClick={onClearElements} label={translator.t('numberLine.clearAll', { lng: language })} />\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(PointChooser);\n\nPointChooser.DEFAULT_TYPE = 'pf';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/number-line/point-chooser/index.jsx"],"names":["translator","Translator","DeleteIcon","classes","deleteIcon","propTypes","PropTypes","object","RawPoint","props","iconKey","active","onClick","names","string","isRequired","bool","func","Point","styles","Points","selectPoint","selected","icons","iconTags","map","key","bind","toLowerCase","elementSelector","array","PointChooser","elementType","showDeleteButton","onDeleteClick","onUndoElement","onClearElements","onElementType","language","pointChooser","controls","deleteIconHolder","t","lng","React","Component","DEFAULT_TYPE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport styles from './styles';\nimport PropTypes from 'prop-types';\nimport Button from './button';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nconst DeleteIcon = ({ classes }) => {\n return (\n <svg\n className={classes.deleteIcon}\n fill=\"#000000\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nDeleteIcon.propTypes = {\n classes: PropTypes.object,\n};\n\nconst RawPoint = (props) => {\n const { iconKey, active, classes, onClick } = props;\n const names = classNames(classes[iconKey], { active });\n return (\n <span role=\"presentation\" key={iconKey} onClick={onClick}>\n <a className={names}>&nbsp;</a>\n </span>\n );\n};\n\nRawPoint.propTypes = {\n iconKey: PropTypes.string.isRequired,\n active: PropTypes.bool,\n classes: PropTypes.object,\n onClick: PropTypes.func,\n};\n\nexport const Point = injectSheet(styles)(RawPoint);\n\nconst Points = ({ selectPoint, classes, selected, icons }) => {\n const iconTags = icons.map((key) => {\n let active = key === selected;\n let onClick = active ? () => {} : selectPoint.bind(null, key);\n return <Point key={key.toLowerCase()} iconKey={key.toLowerCase()} active={active} onClick={onClick} />; //icon(key, active);\n });\n\n return <div className={classes.elementSelector}>{iconTags}</div>;\n};\n\nPoints.propTypes = {\n selectPoint: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n selected: PropTypes.string,\n icons: PropTypes.array,\n};\n\nexport class PointChooser extends React.Component {\n static defaultProps = {\n showDeleteButton: false,\n elementType: PointChooser.DEFAULT_TYPE,\n icons: ['pf', 'lff', 'lef', 'lfe', 'lee', 'rfn', 'rfp', 'ren', 'rep'],\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n elementType: PropTypes.string,\n showDeleteButton: PropTypes.bool,\n onDeleteClick: PropTypes.func.isRequired,\n onElementType: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n icons: PropTypes.array,\n language: PropTypes.string,\n };\n\n render() {\n const {\n elementType,\n showDeleteButton,\n onDeleteClick,\n onUndoElement,\n onClearElements,\n icons,\n classes,\n onElementType,\n language\n } = this.props;\n\n return (\n <div className={classes.pointChooser}>\n <Points selected={elementType} classes={classes} selectPoint={onElementType} icons={icons} />\n <div className={classes.controls}>\n {showDeleteButton && (\n <span className={classes.deleteIconHolder} onClick={onDeleteClick}>\n <DeleteIcon classes={classes} />\n </span>\n )}\n <Button onClick={onUndoElement} label={translator.t('common:undo', { lng: language })} />\n <Button onClick={onClearElements} label={translator.t('numberLine.clearAll', { lng: language })} />\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(PointChooser);\n\nPointChooser.DEFAULT_TYPE = 'pf';\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/number-line",
3
- "version": "6.16.1",
3
+ "version": "6.16.2-next.2+f22cd60fc",
4
4
  "repository": "pie-framework/pie-elements",
5
5
  "description": "",
6
6
  "publishConfig": {
@@ -8,12 +8,7 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
- "@pie-lib/correct-answer-toggle": "^2.5.11",
12
- "@pie-lib/feedback": "^0.4.43",
13
- "@pie-lib/icons": "^2.4.43",
14
- "@pie-lib/math-rendering": "2.5.18",
15
- "@pie-lib/render-ui": "^4.15.9",
16
- "@pie-lib/translator": "^2.3.0",
11
+ "@pie-lib/pie-toolbox": "1.0.1",
17
12
  "classnames": "^2.2.5",
18
13
  "d3-scale": "^3.2.1",
19
14
  "d3-selection": "^1.4.1",
@@ -28,7 +23,7 @@
28
23
  },
29
24
  "author": "pie framework developers",
30
25
  "license": "ISC",
31
- "gitHead": "9017d16cb1939e7d65fa2b3c8f62a8d70898d1c1",
26
+ "gitHead": "f22cd60fc479d41808d66319151a90d1fa6b4499",
32
27
  "scripts": {
33
28
  "postpublish": "../../scripts/postpublish"
34
29
  },