@pie-element/number-line 5.11.3-next.252 → 5.11.3-next.264

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 (43) hide show
  1. package/configure/lib/arrows.js +2 -2
  2. package/configure/lib/arrows.js.map +1 -1
  3. package/configure/lib/card-bar.js.map +1 -1
  4. package/configure/lib/domain.js +2 -2
  5. package/configure/lib/domain.js.map +1 -1
  6. package/configure/lib/index.js +8 -4
  7. package/configure/lib/index.js.map +1 -1
  8. package/configure/lib/main.js +2 -2
  9. package/configure/lib/main.js.map +1 -1
  10. package/configure/lib/number-text-field.js +2 -2
  11. package/configure/lib/number-text-field.js.map +1 -1
  12. package/configure/lib/point-config.js +2 -2
  13. package/configure/lib/point-config.js.map +1 -1
  14. package/configure/lib/size.js +1 -1
  15. package/configure/lib/size.js.map +1 -1
  16. package/configure/lib/ticks.js +7 -3
  17. package/configure/lib/ticks.js.map +1 -1
  18. package/controller/lib/index.js +1 -1
  19. package/controller/lib/index.js.map +1 -1
  20. package/lib/data-converter.js.map +1 -1
  21. package/lib/draggable/index.js +1 -1
  22. package/lib/index.js +9 -5
  23. package/lib/index.js.map +1 -1
  24. package/lib/number-line/feedback.js.map +1 -1
  25. package/lib/number-line/graph/elements/line.js +2 -2
  26. package/lib/number-line/graph/elements/line.js.map +1 -1
  27. package/lib/number-line/graph/elements/point.js +1 -1
  28. package/lib/number-line/graph/elements/point.js.map +1 -1
  29. package/lib/number-line/graph/elements/ray.js +8 -4
  30. package/lib/number-line/graph/elements/ray.js.map +1 -1
  31. package/lib/number-line/graph/index.js +1 -1
  32. package/lib/number-line/graph/index.js.map +1 -1
  33. package/lib/number-line/graph/stacks.js.map +1 -1
  34. package/lib/number-line/graph/tick-utils.js +7 -3
  35. package/lib/number-line/graph/tick-utils.js.map +1 -1
  36. package/lib/number-line/graph/ticks.js +1 -1
  37. package/lib/number-line/graph/ticks.js.map +1 -1
  38. package/lib/number-line/index.js +1 -1
  39. package/lib/number-line/index.js.map +1 -1
  40. package/lib/number-line/point-chooser/index.js +1 -1
  41. package/lib/number-line/point-chooser/index.js.map +1 -1
  42. package/lib/number-line/transitions/fade.js.map +1 -1
  43. package/package.json +2 -2
@@ -31,13 +31,13 @@ var _classnames = _interopRequireDefault(require("classnames"));
31
31
 
32
32
  var _configUi = require("@pie-lib/config-ui");
33
33
 
34
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
35
35
 
36
36
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
37
37
 
38
38
  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); }; }
39
39
 
40
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
40
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
41
 
42
42
  var Arrows = /*#__PURE__*/function (_React$Component) {
43
43
  (0, _inherits2["default"])(Arrows, _React$Component);
@@ -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;;;;;AAYX,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;AAAA,wBACgC,KAAKT,KADrC;AAAA,UACCW,OADD,eACCA,OADD;AAAA,UACUC,SADV,eACUA,SADV;AAAA,UACqBN,MADrB,eACqBA,MADrB;AAEP,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAGK,OAAO,CAACL,MAAX,EAAmBM,SAAnB;AAAhB,sBACE,gCAAC,uBAAD;AACE,QAAA,SAAS,EAAED,OAAO,CAACE,QADrB;AAEE,QAAA,KAAK,EAAE,MAFT;AAGE,QAAA,OAAO,EAAEP,MAAM,CAACQ,IAHlB;AAIE,QAAA,QAAQ,EAAE,KAAKN;AAJjB,QADF,uBAQE,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,QARF,CADF;AAiBD;;;EA1CyBM,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,EACLH,UAJc;AAKjBb,EAAAA,QAAQ,EAAEW,sBAAUM;AALH,C;iCADRzB,M,kBAQW;AACpBO,EAAAA,MAAM,EAAE;AAAEQ,IAAAA,IAAI,EAAE,IAAR;AAAcC,IAAAA,KAAK,EAAE;AAArB;AADY,C;;AAoCxB,IAAMU,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBpB,IAAAA,MAAM,EAAE;AACNqB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAD3B;AADe,GAAL;AAAA,CAApB;;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 })\n .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\n className={classes.checkbox}\n label={'Left'}\n checked={arrows.left}\n onChange={this.changeLeft}\n />\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;;;;;AAYX,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;AACE,QAAA,SAAS,EAAED,OAAO,CAACE,QADrB;AAEE,QAAA,KAAK,EAAE,MAFT;AAGE,QAAA,OAAO,EAAEP,MAAM,CAACQ,IAHlB;AAIE,QAAA,QAAQ,EAAE,KAAKN;AAJjB,QADF,uBAQE,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,QARF,CADF;AAiBD;;;EA1CyBM,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,EACLH,UAJc;AAKjBb,EAAAA,QAAQ,EAAEW,sBAAUM;AALH,C;iCADRzB,M,kBAQW;AACpBO,EAAAA,MAAM,EAAE;AAAEQ,IAAAA,IAAI,EAAE,IAAR;AAAcC,IAAAA,KAAK,EAAE;AAArB;AADY,C;;AAoCxB,IAAMU,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBpB,IAAAA,MAAM,EAAE;AACNqB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAD3B;AADe,GAAL;AAAA,CAApB;;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 })\n .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\n className={classes.checkbox}\n label={'Left'}\n checked={arrows.left}\n onChange={this.changeLeft}\n />\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 +1 @@
1
- {"version":3,"sources":["../src/card-bar.jsx"],"names":["CardBar","props","classes","header","children","mini","cardBar","tooltip","button","propTypes","PropTypes","object","bool","string","node","styles","theme","display","justifyContent","paddingBottom","spacing","unit","paddingTop","margin","padding","fontSize"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAAAC,KAAK,EAAI;AAAA,MACfC,OADe,GACqBD,KADrB,CACfC,OADe;AAAA,MACNC,MADM,GACqBF,KADrB,CACNE,MADM;AAAA,MACEC,QADF,GACqBH,KADrB,CACEG,QADF;AAAA,MACYC,IADZ,GACqBJ,KADrB,CACYI,IADZ;AAEvB,sBACE;AAAK,IAAA,SAAS,EAAEH,OAAO,CAACI;AAAxB,kBACE,gCAAC,sBAAD;AAAY,IAAA,OAAO,EAAED,IAAI,GAAG,YAAH,GAAkB;AAA3C,KAAkDF,MAAlD,CADF,EAEGC,QAAQ,iBACP,gCAAC,mBAAD;AAAS,IAAA,KAAK,EAAEA,QAAhB;AAA0B,IAAA,OAAO,EAAE;AAAEG,MAAAA,OAAO,EAAEL,OAAO,CAACK;AAAnB;AAAnC,kBACE,gCAAC,sBAAD;AAAY,kBAAW,QAAvB;AAAgC,IAAA,SAAS,EAAEL,OAAO,CAACM;AAAnD,kBACE,gCAAC,uBAAD,OADF,CADF,CAHJ,CADF;AAYD,CAdD;;AAgBAR,OAAO,CAACS,SAAR,GAAoB;AAClBP,EAAAA,OAAO,EAAEQ,sBAAUC,MADD;AAElBN,EAAAA,IAAI,EAAEK,sBAAUE,IAFE;AAGlBT,EAAAA,MAAM,EAAEO,sBAAUG,MAHA;AAIlBT,EAAAA,QAAQ,EAAEM,sBAAUI;AAJF,CAApB;;AAMA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBV,IAAAA,OAAO,EAAE;AACPW,MAAAA,OAAO,EAAE,MADF;AAEPC,MAAAA,cAAc,EAAE,eAFT;AAGPC,MAAAA,aAAa,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CAH7B;AAIPC,MAAAA,UAAU,EAAEN,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB;AAJ1B,KADc;AAOvBb,IAAAA,MAAM,EAAE;AACNe,MAAAA,MAAM,EAAE,CADF;AAENC,MAAAA,OAAO,EAAE;AAFH,KAPe;AAWvBjB,IAAAA,OAAO,EAAE;AACPkB,MAAAA,QAAQ,EAAE;AADH;AAXc,GAAL;AAAA,CAApB;;eAee,wBAAWV,MAAX,EAAmBf,OAAnB,C","sourcesContent":["import { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport HelpIcon from '@material-ui/icons/HelpOutline';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Typography from '@material-ui/core/Typography';\n\nconst CardBar = props => {\n const { classes, header, children, mini } = props;\n return (\n <div className={classes.cardBar}>\n <Typography variant={mini ? 'subheading' : 'h5'}>{header}</Typography>\n {children && (\n <Tooltip title={children} classes={{ tooltip: classes.tooltip }}>\n <IconButton aria-label=\"Delete\" className={classes.button}>\n <HelpIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n\nCardBar.propTypes = {\n classes: PropTypes.object,\n mini: PropTypes.bool,\n header: PropTypes.string,\n children: PropTypes.node\n};\nconst styles = theme => ({\n cardBar: {\n display: 'flex',\n justifyContent: 'space-between',\n paddingBottom: theme.spacing.unit * 2,\n paddingTop: theme.spacing.unit * 2\n },\n button: {\n margin: 0,\n padding: 0\n },\n tooltip: {\n fontSize: '12px'\n }\n});\nexport default withStyles(styles)(CardBar);\n"],"file":"card-bar.js"}
1
+ {"version":3,"sources":["../src/card-bar.jsx"],"names":["CardBar","props","classes","header","children","mini","cardBar","tooltip","button","propTypes","PropTypes","object","bool","string","node","styles","theme","display","justifyContent","paddingBottom","spacing","unit","paddingTop","margin","padding","fontSize"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAAAC,KAAK,EAAI;AACvB,MAAQC,OAAR,GAA4CD,KAA5C,CAAQC,OAAR;AAAA,MAAiBC,MAAjB,GAA4CF,KAA5C,CAAiBE,MAAjB;AAAA,MAAyBC,QAAzB,GAA4CH,KAA5C,CAAyBG,QAAzB;AAAA,MAAmCC,IAAnC,GAA4CJ,KAA5C,CAAmCI,IAAnC;AACA,sBACE;AAAK,IAAA,SAAS,EAAEH,OAAO,CAACI;AAAxB,kBACE,gCAAC,sBAAD;AAAY,IAAA,OAAO,EAAED,IAAI,GAAG,YAAH,GAAkB;AAA3C,KAAkDF,MAAlD,CADF,EAEGC,QAAQ,iBACP,gCAAC,mBAAD;AAAS,IAAA,KAAK,EAAEA,QAAhB;AAA0B,IAAA,OAAO,EAAE;AAAEG,MAAAA,OAAO,EAAEL,OAAO,CAACK;AAAnB;AAAnC,kBACE,gCAAC,sBAAD;AAAY,kBAAW,QAAvB;AAAgC,IAAA,SAAS,EAAEL,OAAO,CAACM;AAAnD,kBACE,gCAAC,uBAAD,OADF,CADF,CAHJ,CADF;AAYD,CAdD;;AAgBAR,OAAO,CAACS,SAAR,GAAoB;AAClBP,EAAAA,OAAO,EAAEQ,sBAAUC,MADD;AAElBN,EAAAA,IAAI,EAAEK,sBAAUE,IAFE;AAGlBT,EAAAA,MAAM,EAAEO,sBAAUG,MAHA;AAIlBT,EAAAA,QAAQ,EAAEM,sBAAUI;AAJF,CAApB;;AAMA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBV,IAAAA,OAAO,EAAE;AACPW,MAAAA,OAAO,EAAE,MADF;AAEPC,MAAAA,cAAc,EAAE,eAFT;AAGPC,MAAAA,aAAa,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CAH7B;AAIPC,MAAAA,UAAU,EAAEN,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB;AAJ1B,KADc;AAOvBb,IAAAA,MAAM,EAAE;AACNe,MAAAA,MAAM,EAAE,CADF;AAENC,MAAAA,OAAO,EAAE;AAFH,KAPe;AAWvBjB,IAAAA,OAAO,EAAE;AACPkB,MAAAA,QAAQ,EAAE;AADH;AAXc,GAAL;AAAA,CAApB;;eAee,wBAAWV,MAAX,EAAmBf,OAAnB,C","sourcesContent":["import { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport HelpIcon from '@material-ui/icons/HelpOutline';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Typography from '@material-ui/core/Typography';\n\nconst CardBar = props => {\n const { classes, header, children, mini } = props;\n return (\n <div className={classes.cardBar}>\n <Typography variant={mini ? 'subheading' : 'h5'}>{header}</Typography>\n {children && (\n <Tooltip title={children} classes={{ tooltip: classes.tooltip }}>\n <IconButton aria-label=\"Delete\" className={classes.button}>\n <HelpIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n\nCardBar.propTypes = {\n classes: PropTypes.object,\n mini: PropTypes.bool,\n header: PropTypes.string,\n children: PropTypes.node\n};\nconst styles = theme => ({\n cardBar: {\n display: 'flex',\n justifyContent: 'space-between',\n paddingBottom: theme.spacing.unit * 2,\n paddingTop: theme.spacing.unit * 2\n },\n button: {\n margin: 0,\n padding: 0\n },\n tooltip: {\n fontSize: '12px'\n }\n});\nexport default withStyles(styles)(CardBar);\n"],"file":"card-bar.js"}
@@ -27,13 +27,13 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
27
27
 
28
28
  var _react = _interopRequireDefault(require("react"));
29
29
 
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
31
 
32
32
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
33
 
34
34
  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); }; }
35
35
 
36
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
36
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
37
 
38
38
  var DOMAIN_BEGIN = 'domainBegin';
39
39
  var DOMAIN_END = 'domainEnd';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/domain.jsx"],"names":["DOMAIN_BEGIN","DOMAIN_END","sort","domain","min","max","Domain","props","changeMin","change","bind","changeMax","key","event","value","onChange","update","React","Component","propTypes","PropTypes","shape","number","func","isRequired"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,YAAY,GAAG,aAArB;AACA,IAAMC,UAAU,GAAG,WAAnB;;AAEA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAAAC,MAAM,EAAI;AACrB,MAAIA,MAAM,CAACC,GAAP,IAAcD,MAAM,CAACE,GAAzB,EAA8B;AAC5B,WAAOF,MAAP;AACD;;AAED,SAAO;AAAEC,IAAAA,GAAG,EAAED,MAAM,CAACE,GAAd;AAAmBA,IAAAA,GAAG,EAAEF,MAAM,CAACC;AAA/B,GAAP;AACD,CAND;;IAQaE,M;;;;;AACX,kBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AAEA,UAAKC,SAAL,GAAiB,MAAKC,MAAL,CAAYC,IAAZ,iDAAuB,KAAvB,CAAjB;AACA,UAAKC,SAAL,GAAiB,MAAKF,MAAL,CAAYC,IAAZ,iDAAuB,KAAvB,CAAjB;AAJiB;AAKlB;;;;WAED,gBAAOE,GAAP,EAAYC,KAAZ,EAAmBC,KAAnB,EAA0B;AAAA,UAChBC,QADgB,GACH,KAAKR,KADF,CAChBQ,QADgB;;AAExB,UAAMC,MAAM,mCAAQ,KAAKT,KAAL,CAAWJ,MAAnB,4CAA4BS,GAA5B,EAAkCE,KAAlC,EAAZ;;AACAC,MAAAA,QAAQ,CAACb,IAAI,CAACc,MAAD,CAAL,CAAR;AACD;;;WAED,kBAAS;AAAA,UACCb,MADD,GACY,KAAKI,KADjB,CACCJ,MADD;AAGP,0BACE,0DAEE,gCAAC,0BAAD;AACE,QAAA,KAAK,EAAC,SADR;AAEE,QAAA,KAAK,EAAEA,MAAM,CAACC,GAFhB;AAGE,QAAA,IAAI,EAAEJ,YAHR;AAIE,QAAA,QAAQ,EAAE,KAAKQ;AAJjB,QAFF,eAQE,gCAAC,0BAAD;AACE,QAAA,KAAK,EAAC,SADR;AAEE,QAAA,KAAK,EAAEL,MAAM,CAACE,GAFhB;AAGE,QAAA,IAAI,EAAEJ,UAHR;AAIE,QAAA,QAAQ,EAAE,KAAKU;AAJjB,QARF,CADF;AAiBD;;;EAlCyBM,kBAAMC,S;;;AAoClCZ,MAAM,CAACa,SAAP,GAAmB;AACjBhB,EAAAA,MAAM,EAAEiB,sBAAUC,KAAV,CAAgB;AAAEjB,IAAAA,GAAG,EAAEgB,sBAAUE,MAAjB;AAAyBjB,IAAAA,GAAG,EAAEe,sBAAUE;AAAxC,GAAhB,CADS;AAEjBP,EAAAA,QAAQ,EAAEK,sBAAUG,IAAV,CAAeC;AAFR,CAAnB;eAIelB,M","sourcesContent":["import { MiniField } from './number-text-field';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst DOMAIN_BEGIN = 'domainBegin';\nconst DOMAIN_END = 'domainEnd';\n\nconst sort = domain => {\n if (domain.min <= domain.max) {\n return domain;\n }\n\n return { min: domain.max, max: domain.min };\n};\n\nexport class Domain extends React.Component {\n constructor(props) {\n super(props);\n\n this.changeMin = this.change.bind(this, 'min');\n this.changeMax = this.change.bind(this, 'max');\n }\n\n change(key, event, value) {\n const { onChange } = this.props;\n const update = { ...this.props.domain, [key]: value };\n onChange(sort(update));\n }\n\n render() {\n const { domain } = this.props;\n\n return (\n <div>\n {/* <Typography>Domain</Typography> */}\n <MiniField\n label=\"Minimum\"\n value={domain.min}\n name={DOMAIN_BEGIN}\n onChange={this.changeMin}\n />\n <MiniField\n label=\"Maximum\"\n value={domain.max}\n name={DOMAIN_END}\n onChange={this.changeMax}\n />\n </div>\n );\n }\n}\nDomain.propTypes = {\n domain: PropTypes.shape({ min: PropTypes.number, max: PropTypes.number }),\n onChange: PropTypes.func.isRequired\n};\nexport default Domain;\n"],"file":"domain.js"}
1
+ {"version":3,"sources":["../src/domain.jsx"],"names":["DOMAIN_BEGIN","DOMAIN_END","sort","domain","min","max","Domain","props","changeMin","change","bind","changeMax","key","event","value","onChange","update","React","Component","propTypes","PropTypes","shape","number","func","isRequired"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,YAAY,GAAG,aAArB;AACA,IAAMC,UAAU,GAAG,WAAnB;;AAEA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAAAC,MAAM,EAAI;AACrB,MAAIA,MAAM,CAACC,GAAP,IAAcD,MAAM,CAACE,GAAzB,EAA8B;AAC5B,WAAOF,MAAP;AACD;;AAED,SAAO;AAAEC,IAAAA,GAAG,EAAED,MAAM,CAACE,GAAd;AAAmBA,IAAAA,GAAG,EAAEF,MAAM,CAACC;AAA/B,GAAP;AACD,CAND;;IAQaE,M;;;;;AACX,kBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AAEA,UAAKC,SAAL,GAAiB,MAAKC,MAAL,CAAYC,IAAZ,iDAAuB,KAAvB,CAAjB;AACA,UAAKC,SAAL,GAAiB,MAAKF,MAAL,CAAYC,IAAZ,iDAAuB,KAAvB,CAAjB;AAJiB;AAKlB;;;;WAED,gBAAOE,GAAP,EAAYC,KAAZ,EAAmBC,KAAnB,EAA0B;AACxB,UAAQC,QAAR,GAAqB,KAAKR,KAA1B,CAAQQ,QAAR;;AACA,UAAMC,MAAM,mCAAQ,KAAKT,KAAL,CAAWJ,MAAnB,4CAA4BS,GAA5B,EAAkCE,KAAlC,EAAZ;;AACAC,MAAAA,QAAQ,CAACb,IAAI,CAACc,MAAD,CAAL,CAAR;AACD;;;WAED,kBAAS;AACP,UAAQb,MAAR,GAAmB,KAAKI,KAAxB,CAAQJ,MAAR;AAEA,0BACE,0DAEE,gCAAC,0BAAD;AACE,QAAA,KAAK,EAAC,SADR;AAEE,QAAA,KAAK,EAAEA,MAAM,CAACC,GAFhB;AAGE,QAAA,IAAI,EAAEJ,YAHR;AAIE,QAAA,QAAQ,EAAE,KAAKQ;AAJjB,QAFF,eAQE,gCAAC,0BAAD;AACE,QAAA,KAAK,EAAC,SADR;AAEE,QAAA,KAAK,EAAEL,MAAM,CAACE,GAFhB;AAGE,QAAA,IAAI,EAAEJ,UAHR;AAIE,QAAA,QAAQ,EAAE,KAAKU;AAJjB,QARF,CADF;AAiBD;;;EAlCyBM,kBAAMC,S;;;AAoClCZ,MAAM,CAACa,SAAP,GAAmB;AACjBhB,EAAAA,MAAM,EAAEiB,sBAAUC,KAAV,CAAgB;AAAEjB,IAAAA,GAAG,EAAEgB,sBAAUE,MAAjB;AAAyBjB,IAAAA,GAAG,EAAEe,sBAAUE;AAAxC,GAAhB,CADS;AAEjBP,EAAAA,QAAQ,EAAEK,sBAAUG,IAAV,CAAeC;AAFR,CAAnB;eAIelB,M","sourcesContent":["import { MiniField } from './number-text-field';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst DOMAIN_BEGIN = 'domainBegin';\nconst DOMAIN_END = 'domainEnd';\n\nconst sort = domain => {\n if (domain.min <= domain.max) {\n return domain;\n }\n\n return { min: domain.max, max: domain.min };\n};\n\nexport class Domain extends React.Component {\n constructor(props) {\n super(props);\n\n this.changeMin = this.change.bind(this, 'min');\n this.changeMax = this.change.bind(this, 'max');\n }\n\n change(key, event, value) {\n const { onChange } = this.props;\n const update = { ...this.props.domain, [key]: value };\n onChange(sort(update));\n }\n\n render() {\n const { domain } = this.props;\n\n return (\n <div>\n {/* <Typography>Domain</Typography> */}\n <MiniField\n label=\"Minimum\"\n value={domain.min}\n name={DOMAIN_BEGIN}\n onChange={this.changeMin}\n />\n <MiniField\n label=\"Maximum\"\n value={domain.max}\n name={DOMAIN_END}\n onChange={this.changeMax}\n />\n </div>\n );\n }\n}\nDomain.propTypes = {\n domain: PropTypes.shape({ min: PropTypes.number, max: PropTypes.number }),\n onChange: PropTypes.func.isRequired\n};\nexport default Domain;\n"],"file":"domain.js"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
@@ -35,13 +35,17 @@ var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
35
35
 
36
36
  var defaults = _interopRequireWildcard(require("./defaults"));
37
37
 
38
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
38
+ 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); }
39
+
40
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
+
42
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
39
43
 
40
44
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
41
45
 
42
46
  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); }; }
43
47
 
44
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
48
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
49
 
46
50
  var NumberLine = /*#__PURE__*/function (_HTMLElement) {
47
51
  (0, _inherits2["default"])(NumberLine, _HTMLElement);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["NumberLine","o","_model","dispatchEvent","ModelUpdatedEvent","_rerender","createDefaultModel","_configuration","defaults","configuration","s","element","React","createElement","Main","model","onChange","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEqBA,U;;;;;AAMnB,wBAAc;AAAA;;AAAA;AACZ;AADY,iGAWH,UAAAC,CAAC,EAAI;AACd,YAAKC,MAAL,mCAAmB,MAAKA,MAAxB,GAAmCD,CAAnC;;AAEA,YAAKE,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,MAAKF,MAA3B,EAAmC,IAAnC,CAAnB;;AAEA,YAAKG,SAAL;AACD,KAjBa;AAEZ,UAAKH,MAAL,GAAcF,UAAU,CAACM,kBAAX,EAAd;AACA,UAAKC,cAAL,GAAsBC,QAAQ,CAACC,aAA/B;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKR,MAAL,GAAcF,UAAU,CAACM,kBAAX,CAA8BI,CAA9B,CAAd;;AACA,WAAKL,SAAL;AACD;;;WAUD,qBAAY;AACV,UAAIM,OAAO,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACtCC,QAAAA,KAAK,EAAE,KAAKb,MAD0B;AAEtCO,QAAAA,aAAa,EAAE,KAAKF,cAFkB;AAGtCS,QAAAA,QAAQ,EAAE,KAAKA;AAHuB,OAA1B,CAAd;;AAKAC,2BAASC,MAAT,CAAgBP,OAAhB,EAAyB,IAAzB;AACD;;;kDAhCqCQ,W;;;iCAAnBnB,U,wBACS;AAAA,MAACe,KAAD,uEAAS,EAAT;AAAA,yCACvBP,QAAQ,CAACO,KADc,GAEvBA,KAFuB;AAAA,C","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport * as defaults from './defaults';\n\nexport default class NumberLine extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...defaults.model,\n ...model\n });\n\n constructor() {\n super();\n this._model = NumberLine.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(s) {\n this._model = NumberLine.createDefaultModel(s);\n this._rerender();\n }\n\n onChange = o => {\n this._model = { ...this._model, ...o };\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, true));\n\n this._rerender();\n };\n\n _rerender() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onChange: this.onChange\n });\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["NumberLine","o","_model","dispatchEvent","ModelUpdatedEvent","_rerender","createDefaultModel","_configuration","defaults","configuration","s","element","React","createElement","Main","model","onChange","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;IAEqBA,U;;;;;AAMnB,wBAAc;AAAA;;AAAA;AACZ;AADY,iGAWH,UAAAC,CAAC,EAAI;AACd,YAAKC,MAAL,mCAAmB,MAAKA,MAAxB,GAAmCD,CAAnC;;AAEA,YAAKE,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,MAAKF,MAA3B,EAAmC,IAAnC,CAAnB;;AAEA,YAAKG,SAAL;AACD,KAjBa;AAEZ,UAAKH,MAAL,GAAcF,UAAU,CAACM,kBAAX,EAAd;AACA,UAAKC,cAAL,GAAsBC,QAAQ,CAACC,aAA/B;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKR,MAAL,GAAcF,UAAU,CAACM,kBAAX,CAA8BI,CAA9B,CAAd;;AACA,WAAKL,SAAL;AACD;;;WAUD,qBAAY;AACV,UAAIM,OAAO,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACtCC,QAAAA,KAAK,EAAE,KAAKb,MAD0B;AAEtCO,QAAAA,aAAa,EAAE,KAAKF,cAFkB;AAGtCS,QAAAA,QAAQ,EAAE,KAAKA;AAHuB,OAA1B,CAAd;;AAKAC,2BAASC,MAAT,CAAgBP,OAAhB,EAAyB,IAAzB;AACD;;;kDAhCqCQ,W;;;iCAAnBnB,U,wBACS;AAAA,MAACe,KAAD,uEAAS,EAAT;AAAA,yCACvBP,QAAQ,CAACO,KADc,GAEvBA,KAFuB;AAAA,C","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport * as defaults from './defaults';\n\nexport default class NumberLine extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...defaults.model,\n ...model\n });\n\n constructor() {\n super();\n this._model = NumberLine.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(s) {\n this._model = NumberLine.createDefaultModel(s);\n this._rerender();\n }\n\n onChange = o => {\n this._model = { ...this._model, ...o };\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, true));\n\n this._rerender();\n };\n\n _rerender() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onChange: this.onChange\n });\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
@@ -59,9 +59,9 @@ var _defaults = require("./defaults");
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
 
62
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
62
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
63
63
 
64
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
64
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
65
65
 
66
66
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
67
67
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["trimModel","model","feedback","undefined","prompt","graph","title","correctResponse","lineIsSwitched","dataConverter","switchGraphLine","toGraphFormat","toSessionFormat","styles","theme","maxNumberOfPoints","width","checkbox","marginTop","spacing","unit","row","display","flexWrap","paddingRight","hide","opacity","resetDefaults","margin","pointTypeChooser","promptHolder","paddingBottom","marginBottom","paddingTop","section","padding","toPointType","response","rest","pointType","direction","leftPoint","rightPoint","type","toUpperCase","Main","props","o","onChange","height","graphChange","availableTypes","onlyPFAvailable","Object","entries","forEach","value","e","getAdjustedHeight","ticks","tickUtils","snapElements","domain","initialElements","arrows","defaultModel","event","exhibitOnly","index","el","position","update","Set","map","indices","filter","v","some","d","data","push","pop","addInitialView","classes","configuration","initialView","toolbarOpts","toolbarEditorPosition","root","settings","label","changeSize","changeTicks","changeArrows","changeGraphTitle","changeMaxNoOfPoints","setDefaults","moveCorrectResponse","deleteCorrectResponse","addCorrectResponse","clearCorrectResponse","undoCorrectResponse","availableTypesChange","moveInitialView","deleteInitialView","onAddElement","clearInitialView","undoInitialView","exhibitChanged","React","Component","PropTypes","object","isRequired","func","name"],"mappings":"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","sourcesContent":["import { InputCheckbox, FeedbackConfig, FormSection } from '@pie-lib/config-ui';\nimport NumberTextField from './number-text-field';\nimport CardBar from './card-bar';\nimport {\n NumberLineComponent,\n dataConverter,\n tickUtils\n} from '@pie-element/number-line';\nimport Size from './size';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Domain from './domain';\nimport Arrows from './arrows';\nimport PointConfig from './point-config';\nimport React from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { withStyles } from '@material-ui/core/styles';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Ticks from './ticks';\nimport { model as defaultModel } from './defaults';\n\nconst trimModel = model => ({\n ...model,\n feedback: undefined,\n prompt: undefined,\n graph: { ...model.graph, title: undefined },\n correctResponse: undefined\n});\n\nconst {\n lineIsSwitched,\n switchGraphLine,\n toGraphFormat,\n toSessionFormat\n} = dataConverter;\n\nconst styles = theme => ({\n maxNumberOfPoints: {\n width: '150px'\n },\n checkbox: {\n marginTop: theme.spacing.unit * 2\n },\n row: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n paddingRight: theme.spacing.unit * 2\n }\n },\n hide: {\n opacity: 0.5\n },\n resetDefaults: {\n margin: '20px 0'\n },\n pointTypeChooser: {\n margin: '20px 0'\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n section: {\n margin: 0,\n padding: 0\n }\n});\n\nexport const toPointType = response => {\n function rest(response) {\n if (response.pointType) {\n if (response.direction) {\n return `${response.pointType[0]}${response.direction[0]}`;\n }\n return response.pointType[0];\n } else {\n return `${response.leftPoint[0]}${response.rightPoint[0]}`;\n }\n }\n return `${response.type[0]}${rest(response)}`.toUpperCase();\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired\n };\n\n constructor(props) {\n super(props);\n const { model: { graph: { availableTypes, maxNumberOfPoints }}} = props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ height });\n }\n\n graphChange = o => {\n const { onChange } = this.props;\n const graph = { ...this.props.model.graph, ...o };\n onChange({ graph });\n };\n\n changeSize = ({ width, height }) => this.graphChange({ width, height });\n\n getAdjustedHeight = (availableTypes, maxNumberOfPoints) => {\n let onlyPFAvailable = true;\n\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (type !== 'PF' && value) {\n onlyPFAvailable = false;\n return;\n }\n });\n\n const height = maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable)\n ? 100 : (50 + (maxNumberOfPoints || 20) * 25);\n\n return height;\n };\n\n changeMaxNoOfPoints = (e, maxNumberOfPoints) => {\n const { model : { graph: { availableTypes }}} = this.props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ maxNumberOfPoints, height });\n };\n\n changeGraphTitle = title => this.graphChange({ title });\n\n changeTicks = ticks => {\n const { model, onChange } = this.props;\n const correctResponse = tickUtils.snapElements(\n model.graph.domain,\n ticks,\n model.correctResponse\n );\n const initialElements = tickUtils.snapElements(\n model.graph.domain,\n ticks,\n model.graph.initialElements\n );\n\n const graph = { ...this.props.model.graph, ticks, initialElements };\n onChange({ graph, correctResponse });\n };\n\n changeArrows = arrows => this.graphChange({ arrows });\n\n setDefaults = () => {\n const { graph: { availableTypes, maxNumberOfPoints }} = defaultModel;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...cloneDeep(defaultModel.graph), height };\n\n this.props.onChange({ graph });\n };\n\n exhibitChanged = (event, value) => {\n const graph = { ...this.props.model.graph, exhibitOnly: value };\n this.props.onChange({ graph });\n };\n\n moveCorrectResponse = (index, el, position) => {\n const { onChange, model } = this.props;\n el.position = position;\n const update = toSessionFormat(\n el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el\n );\n const correctResponse = [...model.correctResponse];\n correctResponse[index] = update;\n onChange({ correctResponse });\n };\n\n moveInitialView = (index, el, position) => {\n const { model, onChange } = this.props;\n el.position = position;\n const update = toSessionFormat(\n el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el\n );\n const initialElements = [...this.props.model.graph.initialElements];\n initialElements[index] = update;\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n availableTypesChange = availableTypes => {\n const { model, onChange } = this.props;\n const { correctResponse, graph: { maxNumberOfPoints }} = model;\n\n new Set(correctResponse.map(toPointType)).forEach(pointType => {\n availableTypes[pointType] = true;\n });\n\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...model.graph, availableTypes, height };\n\n onChange({ graph });\n };\n\n deleteCorrectResponse = indices => {\n const { model, onChange } = this.props;\n const correctResponse = model.correctResponse.filter((v, index) => {\n return !indices.some(d => d === index);\n });\n onChange({ correctResponse });\n };\n\n deleteInitialView = indices => {\n const { model, onChange } = this.props;\n const initialElements = model.graph.initialElements.filter((v, index) => {\n return !indices.some(d => d === index);\n });\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n addCorrectResponse = data => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.push(toSessionFormat(data));\n onChange({ correctResponse });\n };\n\n addInitialView = data => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.push(toSessionFormat(data));\n onChange({ graph });\n };\n\n clearCorrectResponse = () => {\n const { onChange } = this.props;\n const correctResponse = [];\n onChange({ correctResponse });\n };\n\n clearInitialView = () => {\n const { model, onChange } = this.props;\n const initialElements = [];\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n undoCorrectResponse = () => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.pop();\n onChange({ correctResponse });\n };\n\n undoInitialView = () => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.pop();\n onChange({ graph });\n };\n\n onAddElement = this.addInitialView;\n\n render() {\n const { classes, model, onChange, configuration } = this.props;\n\n const { graph } = model;\n const { prompt = {} } = configuration || {};\n\n const correctResponse = cloneDeep(model.correctResponse || []).map(\n toGraphFormat\n );\n\n const initialView = cloneDeep(graph.initialElements || []).map(\n toGraphFormat\n );\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n return (\n <div className={classes.root}>\n\n {prompt.settings && (\n <FormSection label={prompt.label}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={prompt => onChange({ prompt })}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n />\n </FormSection>\n )}\n\n <CardBar header=\"Attributes\">\n Set up the number line by entering the domain and number of tick marks\n to display. Labels on the number line can be edited or removed by\n clicking on the label.\n </CardBar>\n\n <div className={classes.row}>\n <FormSection label={'Size'}>\n <Size size={graph} onChange={this.changeSize} />\n </FormSection>\n\n <FormSection label={'Domain'}>\n <Domain\n domain={graph.domain}\n onChange={domain => this.graphChange({ domain })}\n />\n </FormSection>\n </div>\n <div className={classes.row}>\n <FormSection label={'Ticks'}>\n <Ticks\n ticks={graph.ticks}\n onChange={this.changeTicks}\n domain={graph.domain}\n />\n </FormSection>\n <FormSection label={'Arrows'}>\n <Arrows arrows={graph.arrows} onChange={this.changeArrows} />\n </FormSection>\n </div>\n <FormSection label={'Title'}>\n <EditableHtml\n markup={graph.title || ''}\n onChange={this.changeGraphTitle}\n toolbarOpts={toolbarOpts}\n />\n </FormSection>\n <FormSection label={'Limits'}>\n <NumberTextField\n className={classes.maxNumberOfPoints}\n label=\"Max No of Elements\"\n min={1}\n max={20}\n value={graph.maxNumberOfPoints}\n onChange={this.changeMaxNoOfPoints}\n />\n </FormSection>\n <Button\n variant=\"outlined\"\n mini\n color=\"primary\"\n onClick={this.setDefaults}\n >\n Reset to default values\n </Button>\n <br />\n <br />\n\n {!graph.exhibitOnly && (\n <div>\n <CardBar header=\"Correct Response\">\n Select answer type and place it on the number line. Intersecting\n points, line segments and/or rays will appear above the number\n line.{' '}\n <i>\n Note: A maximum of 20 points, line segments or rays may be\n plotted.\n </i>\n </CardBar>\n\n <NumberLineComponent\n onMoveElement={this.moveCorrectResponse}\n onDeleteElements={this.deleteCorrectResponse}\n onAddElement={this.addCorrectResponse}\n onClearElements={this.clearCorrectResponse}\n onUndoElement={this.undoCorrectResponse}\n answer={correctResponse}\n //strip feedback for this model\n model={trimModel(model)}\n />\n <CardBar header=\"Available Types\" mini>\n Click on the input options to be displayed to the students. All\n inputs will display by default.\n </CardBar>\n <div className={classes.pointTypeChooser}>\n <PointConfig\n onSelectionChange={this.availableTypesChange}\n selection={graph.availableTypes}\n />\n </div>\n </div>\n )}\n <CardBar header=\"Initial view/Make Exhibit\">\n Use this number line to set a starting point, line segment or ray.\n This is optional. <br />\n This number line may also be used to make an exhibit number line,\n which can not be manipulated by a student.\n </CardBar>\n <NumberLineComponent\n onMoveElement={this.moveInitialView}\n onDeleteElements={this.deleteInitialView}\n onAddElement={this.onAddElement}\n onClearElements={this.clearInitialView}\n onUndoElement={this.undoInitialView}\n answer={initialView}\n model={trimModel(model)}\n />\n <InputCheckbox\n label=\"Make exhibit\"\n className={classes.checkbox}\n checked={graph.exhibitOnly}\n onChange={this.exhibitChanged}\n value={'exhibitOnly'}\n />\n\n {!graph.exhibitOnly && (\n <React.Fragment>\n <br />\n <FeedbackConfig\n feedback={model.feedback}\n onChange={feedback => onChange({ feedback })}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["trimModel","model","feedback","undefined","prompt","graph","title","correctResponse","lineIsSwitched","dataConverter","switchGraphLine","toGraphFormat","toSessionFormat","styles","theme","maxNumberOfPoints","width","checkbox","marginTop","spacing","unit","row","display","flexWrap","paddingRight","hide","opacity","resetDefaults","margin","pointTypeChooser","promptHolder","paddingBottom","marginBottom","paddingTop","section","padding","toPointType","response","rest","pointType","direction","leftPoint","rightPoint","type","toUpperCase","Main","props","o","onChange","height","graphChange","availableTypes","onlyPFAvailable","Object","entries","forEach","value","e","getAdjustedHeight","ticks","tickUtils","snapElements","domain","initialElements","arrows","defaultModel","event","exhibitOnly","index","el","position","update","Set","map","indices","filter","v","some","d","data","push","pop","addInitialView","classes","configuration","initialView","toolbarOpts","toolbarEditorPosition","root","settings","label","changeSize","changeTicks","changeArrows","changeGraphTitle","changeMaxNoOfPoints","setDefaults","moveCorrectResponse","deleteCorrectResponse","addCorrectResponse","clearCorrectResponse","undoCorrectResponse","availableTypesChange","moveInitialView","deleteInitialView","onAddElement","clearInitialView","undoInitialView","exhibitChanged","React","Component","PropTypes","object","isRequired","func","name"],"mappings":"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","sourcesContent":["import { InputCheckbox, FeedbackConfig, FormSection } from '@pie-lib/config-ui';\nimport NumberTextField from './number-text-field';\nimport CardBar from './card-bar';\nimport {\n NumberLineComponent,\n dataConverter,\n tickUtils\n} from '@pie-element/number-line';\nimport Size from './size';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Domain from './domain';\nimport Arrows from './arrows';\nimport PointConfig from './point-config';\nimport React from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { withStyles } from '@material-ui/core/styles';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Ticks from './ticks';\nimport { model as defaultModel } from './defaults';\n\nconst trimModel = model => ({\n ...model,\n feedback: undefined,\n prompt: undefined,\n graph: { ...model.graph, title: undefined },\n correctResponse: undefined\n});\n\nconst {\n lineIsSwitched,\n switchGraphLine,\n toGraphFormat,\n toSessionFormat\n} = dataConverter;\n\nconst styles = theme => ({\n maxNumberOfPoints: {\n width: '150px'\n },\n checkbox: {\n marginTop: theme.spacing.unit * 2\n },\n row: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n paddingRight: theme.spacing.unit * 2\n }\n },\n hide: {\n opacity: 0.5\n },\n resetDefaults: {\n margin: '20px 0'\n },\n pointTypeChooser: {\n margin: '20px 0'\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n section: {\n margin: 0,\n padding: 0\n }\n});\n\nexport const toPointType = response => {\n function rest(response) {\n if (response.pointType) {\n if (response.direction) {\n return `${response.pointType[0]}${response.direction[0]}`;\n }\n return response.pointType[0];\n } else {\n return `${response.leftPoint[0]}${response.rightPoint[0]}`;\n }\n }\n return `${response.type[0]}${rest(response)}`.toUpperCase();\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired\n };\n\n constructor(props) {\n super(props);\n const { model: { graph: { availableTypes, maxNumberOfPoints }}} = props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ height });\n }\n\n graphChange = o => {\n const { onChange } = this.props;\n const graph = { ...this.props.model.graph, ...o };\n onChange({ graph });\n };\n\n changeSize = ({ width, height }) => this.graphChange({ width, height });\n\n getAdjustedHeight = (availableTypes, maxNumberOfPoints) => {\n let onlyPFAvailable = true;\n\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (type !== 'PF' && value) {\n onlyPFAvailable = false;\n return;\n }\n });\n\n const height = maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable)\n ? 100 : (50 + (maxNumberOfPoints || 20) * 25);\n\n return height;\n };\n\n changeMaxNoOfPoints = (e, maxNumberOfPoints) => {\n const { model : { graph: { availableTypes }}} = this.props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ maxNumberOfPoints, height });\n };\n\n changeGraphTitle = title => this.graphChange({ title });\n\n changeTicks = ticks => {\n const { model, onChange } = this.props;\n const correctResponse = tickUtils.snapElements(\n model.graph.domain,\n ticks,\n model.correctResponse\n );\n const initialElements = tickUtils.snapElements(\n model.graph.domain,\n ticks,\n model.graph.initialElements\n );\n\n const graph = { ...this.props.model.graph, ticks, initialElements };\n onChange({ graph, correctResponse });\n };\n\n changeArrows = arrows => this.graphChange({ arrows });\n\n setDefaults = () => {\n const { graph: { availableTypes, maxNumberOfPoints }} = defaultModel;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...cloneDeep(defaultModel.graph), height };\n\n this.props.onChange({ graph });\n };\n\n exhibitChanged = (event, value) => {\n const graph = { ...this.props.model.graph, exhibitOnly: value };\n this.props.onChange({ graph });\n };\n\n moveCorrectResponse = (index, el, position) => {\n const { onChange, model } = this.props;\n el.position = position;\n const update = toSessionFormat(\n el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el\n );\n const correctResponse = [...model.correctResponse];\n correctResponse[index] = update;\n onChange({ correctResponse });\n };\n\n moveInitialView = (index, el, position) => {\n const { model, onChange } = this.props;\n el.position = position;\n const update = toSessionFormat(\n el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el\n );\n const initialElements = [...this.props.model.graph.initialElements];\n initialElements[index] = update;\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n availableTypesChange = availableTypes => {\n const { model, onChange } = this.props;\n const { correctResponse, graph: { maxNumberOfPoints }} = model;\n\n new Set(correctResponse.map(toPointType)).forEach(pointType => {\n availableTypes[pointType] = true;\n });\n\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...model.graph, availableTypes, height };\n\n onChange({ graph });\n };\n\n deleteCorrectResponse = indices => {\n const { model, onChange } = this.props;\n const correctResponse = model.correctResponse.filter((v, index) => {\n return !indices.some(d => d === index);\n });\n onChange({ correctResponse });\n };\n\n deleteInitialView = indices => {\n const { model, onChange } = this.props;\n const initialElements = model.graph.initialElements.filter((v, index) => {\n return !indices.some(d => d === index);\n });\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n addCorrectResponse = data => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.push(toSessionFormat(data));\n onChange({ correctResponse });\n };\n\n addInitialView = data => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.push(toSessionFormat(data));\n onChange({ graph });\n };\n\n clearCorrectResponse = () => {\n const { onChange } = this.props;\n const correctResponse = [];\n onChange({ correctResponse });\n };\n\n clearInitialView = () => {\n const { model, onChange } = this.props;\n const initialElements = [];\n const graph = { ...model.graph, initialElements };\n onChange({ graph });\n };\n\n undoCorrectResponse = () => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.pop();\n onChange({ correctResponse });\n };\n\n undoInitialView = () => {\n const { onChange, model } = this.props;\n const graph = { ...model.graph };\n graph.initialElements = graph.initialElements || [];\n graph.initialElements.pop();\n onChange({ graph });\n };\n\n onAddElement = this.addInitialView;\n\n render() {\n const { classes, model, onChange, configuration } = this.props;\n\n const { graph } = model;\n const { prompt = {} } = configuration || {};\n\n const correctResponse = cloneDeep(model.correctResponse || []).map(\n toGraphFormat\n );\n\n const initialView = cloneDeep(graph.initialElements || []).map(\n toGraphFormat\n );\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n return (\n <div className={classes.root}>\n\n {prompt.settings && (\n <FormSection label={prompt.label}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={prompt => onChange({ prompt })}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n />\n </FormSection>\n )}\n\n <CardBar header=\"Attributes\">\n Set up the number line by entering the domain and number of tick marks\n to display. Labels on the number line can be edited or removed by\n clicking on the label.\n </CardBar>\n\n <div className={classes.row}>\n <FormSection label={'Size'}>\n <Size size={graph} onChange={this.changeSize} />\n </FormSection>\n\n <FormSection label={'Domain'}>\n <Domain\n domain={graph.domain}\n onChange={domain => this.graphChange({ domain })}\n />\n </FormSection>\n </div>\n <div className={classes.row}>\n <FormSection label={'Ticks'}>\n <Ticks\n ticks={graph.ticks}\n onChange={this.changeTicks}\n domain={graph.domain}\n />\n </FormSection>\n <FormSection label={'Arrows'}>\n <Arrows arrows={graph.arrows} onChange={this.changeArrows} />\n </FormSection>\n </div>\n <FormSection label={'Title'}>\n <EditableHtml\n markup={graph.title || ''}\n onChange={this.changeGraphTitle}\n toolbarOpts={toolbarOpts}\n />\n </FormSection>\n <FormSection label={'Limits'}>\n <NumberTextField\n className={classes.maxNumberOfPoints}\n label=\"Max No of Elements\"\n min={1}\n max={20}\n value={graph.maxNumberOfPoints}\n onChange={this.changeMaxNoOfPoints}\n />\n </FormSection>\n <Button\n variant=\"outlined\"\n mini\n color=\"primary\"\n onClick={this.setDefaults}\n >\n Reset to default values\n </Button>\n <br />\n <br />\n\n {!graph.exhibitOnly && (\n <div>\n <CardBar header=\"Correct Response\">\n Select answer type and place it on the number line. Intersecting\n points, line segments and/or rays will appear above the number\n line.{' '}\n <i>\n Note: A maximum of 20 points, line segments or rays may be\n plotted.\n </i>\n </CardBar>\n\n <NumberLineComponent\n onMoveElement={this.moveCorrectResponse}\n onDeleteElements={this.deleteCorrectResponse}\n onAddElement={this.addCorrectResponse}\n onClearElements={this.clearCorrectResponse}\n onUndoElement={this.undoCorrectResponse}\n answer={correctResponse}\n //strip feedback for this model\n model={trimModel(model)}\n />\n <CardBar header=\"Available Types\" mini>\n Click on the input options to be displayed to the students. All\n inputs will display by default.\n </CardBar>\n <div className={classes.pointTypeChooser}>\n <PointConfig\n onSelectionChange={this.availableTypesChange}\n selection={graph.availableTypes}\n />\n </div>\n </div>\n )}\n <CardBar header=\"Initial view/Make Exhibit\">\n Use this number line to set a starting point, line segment or ray.\n This is optional. <br />\n This number line may also be used to make an exhibit number line,\n which can not be manipulated by a student.\n </CardBar>\n <NumberLineComponent\n onMoveElement={this.moveInitialView}\n onDeleteElements={this.deleteInitialView}\n onAddElement={this.onAddElement}\n onClearElements={this.clearInitialView}\n onUndoElement={this.undoInitialView}\n answer={initialView}\n model={trimModel(model)}\n />\n <InputCheckbox\n label=\"Make exhibit\"\n className={classes.checkbox}\n checked={graph.exhibitOnly}\n onChange={this.exhibitChanged}\n value={'exhibitOnly'}\n />\n\n {!graph.exhibitOnly && (\n <React.Fragment>\n <br />\n <FeedbackConfig\n feedback={model.feedback}\n onChange={feedback => onChange({ feedback })}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
@@ -31,13 +31,13 @@ var _styles = require("@material-ui/core/styles");
31
31
 
32
32
  var _classnames = _interopRequireDefault(require("classnames"));
33
33
 
34
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
35
35
 
36
36
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
37
37
 
38
38
  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); }; }
39
39
 
40
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
40
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
41
 
42
42
  var NumberTextField = /*#__PURE__*/function (_React$Component) {
43
43
  (0, _inherits2["default"])(NumberTextField, _React$Component);
@@ -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;AAAA,UACCC,OADD,GACa,KAAKC,KADlB,CACCD,OADD;;AAEP,UAAMC,KAAK,mCAAQ,KAAKA,KAAb;AAAoBD,QAAAA,OAAO,EAAEE;AAA7B,QAAX;;AACA,0BACE,gCAAC,yBAAD,gCACMD,KADN;AAEE,QAAA,SAAS,EAAE,4BAAGD,OAAO,CAACG,SAAX,EAAsBF,KAAK,CAACG,SAA5B,CAFb;AAGE,QAAA,OAAO,EAAC;AAHV,SADF;AAOD;;;EAfkCC,kBAAMC,S;;;iCAA9BP,e,eACQ;AACjBC,EAAAA,OAAO,EAAEO,sBAAUC,MAAV,CAAiBC;AADT,C;;AAiBrB,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBR,IAAAA,SAAS,EAAE;AACTS,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC;AADjB;AADY,GAAL;AAAA,CAApB;;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 (\n <NTF\n {...props}\n className={cn(classes.textField, props.className)}\n variant=\"outlined\"\n />\n );\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,0BACE,gCAAC,yBAAD,gCACMD,KADN;AAEE,QAAA,SAAS,EAAE,4BAAGD,OAAO,CAACG,SAAX,EAAsBF,KAAK,CAACG,SAA5B,CAFb;AAGE,QAAA,OAAO,EAAC;AAHV,SADF;AAOD;;;EAfkCC,kBAAMC,S;;;iCAA9BP,e,eACQ;AACjBC,EAAAA,OAAO,EAAEO,sBAAUC,MAAV,CAAiBC;AADT,C;;AAiBrB,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBR,IAAAA,SAAS,EAAE;AACTS,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC;AADjB;AADY,GAAL;AAAA,CAApB;;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 (\n <NTF\n {...props}\n className={cn(classes.textField, props.className)}\n variant=\"outlined\"\n />\n );\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"}
@@ -31,13 +31,13 @@ var _styles = require("@material-ui/core/styles");
31
31
 
32
32
  var _propTypes = _interopRequireDefault(require("prop-types"));
33
33
 
34
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
35
35
 
36
36
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
37
37
 
38
38
  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); }; }
39
39
 
40
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
40
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
41
 
42
42
  var Point = _numberLine.pointChooser.Point;
43
43
  var styles = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/point-config.jsx"],"names":["Point","pointChooser","styles","displayToggles","paddingTop","PointConfig","props","state","selection","point","update","_stateUpdate","value","display","types","reduce","acc","setState","onSelectionChange","classes","icons","map","toLowerCase","toggle","bind","active","toggleAll","React","Component","PropTypes","func","object","name"],"mappings":"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","sourcesContent":["import Button from '@material-ui/core/Button';\nimport React from 'react';\nimport { pointChooser } from '@pie-element/number-line';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nconst { Point } = pointChooser;\n\nconst styles = {\n displayToggles: {\n paddingTop: '20px'\n }\n};\n\nclass PointConfig extends React.Component {\n static propTypes = {\n onSelectionChange: PropTypes.func,\n selection: PropTypes.object,\n classes: PropTypes.object\n };\n constructor(props) {\n super(props);\n this.state = {\n selection: props.selection\n };\n }\n\n toggle(point) {\n const update = { ...this.state.selection };\n update[point] = !update[point];\n this._stateUpdate(update);\n }\n\n toggleAll(value) {\n const display = [...PointConfig.types].reduce((acc, point) => {\n acc[point] = value;\n\n return acc;\n }, {});\n\n this._stateUpdate(display);\n }\n\n _stateUpdate(selection) {\n this.setState({ selection }, () => {\n this.props.onSelectionChange(this.state.selection);\n });\n }\n\n active(point) {\n return this.state.selection[point] === true; // ? 'active' : '';\n }\n\n render() {\n const { classes } = this.props;\n\n const icons = PointConfig.types.map(point => {\n return (\n <Point\n iconKey={point.toLowerCase()}\n key={point.toLowerCase()}\n onClick={this.toggle.bind(this, point)}\n active={this.active(point)}\n />\n );\n });\n\n return (\n <div>\n <div>{icons}</div>\n <div className={classes.displayToggles}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n onClick={this.toggleAll.bind(this, true)}\n >\n Display All\n </Button>\n <Button\n variant=\"outlined\"\n size=\"small\"\n onClick={this.toggleAll.bind(this, false)}\n >\n None\n </Button>\n </div>\n </div>\n );\n }\n}\n\nPointConfig.types = [\n 'PF',\n 'LFF',\n 'LEF',\n 'LFE',\n 'LEE',\n 'RFN',\n 'RFP',\n 'REN',\n 'REP'\n];\n\nexport default withStyles(styles, { name: 'PointConfig' })(PointConfig);\n"],"file":"point-config.js"}
1
+ {"version":3,"sources":["../src/point-config.jsx"],"names":["Point","pointChooser","styles","displayToggles","paddingTop","PointConfig","props","state","selection","point","update","_stateUpdate","value","display","types","reduce","acc","setState","onSelectionChange","classes","icons","map","toLowerCase","toggle","bind","active","toggleAll","React","Component","PropTypes","func","object","name"],"mappings":"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","sourcesContent":["import Button from '@material-ui/core/Button';\nimport React from 'react';\nimport { pointChooser } from '@pie-element/number-line';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nconst { Point } = pointChooser;\n\nconst styles = {\n displayToggles: {\n paddingTop: '20px'\n }\n};\n\nclass PointConfig extends React.Component {\n static propTypes = {\n onSelectionChange: PropTypes.func,\n selection: PropTypes.object,\n classes: PropTypes.object\n };\n constructor(props) {\n super(props);\n this.state = {\n selection: props.selection\n };\n }\n\n toggle(point) {\n const update = { ...this.state.selection };\n update[point] = !update[point];\n this._stateUpdate(update);\n }\n\n toggleAll(value) {\n const display = [...PointConfig.types].reduce((acc, point) => {\n acc[point] = value;\n\n return acc;\n }, {});\n\n this._stateUpdate(display);\n }\n\n _stateUpdate(selection) {\n this.setState({ selection }, () => {\n this.props.onSelectionChange(this.state.selection);\n });\n }\n\n active(point) {\n return this.state.selection[point] === true; // ? 'active' : '';\n }\n\n render() {\n const { classes } = this.props;\n\n const icons = PointConfig.types.map(point => {\n return (\n <Point\n iconKey={point.toLowerCase()}\n key={point.toLowerCase()}\n onClick={this.toggle.bind(this, point)}\n active={this.active(point)}\n />\n );\n });\n\n return (\n <div>\n <div>{icons}</div>\n <div className={classes.displayToggles}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n onClick={this.toggleAll.bind(this, true)}\n >\n Display All\n </Button>\n <Button\n variant=\"outlined\"\n size=\"small\"\n onClick={this.toggleAll.bind(this, false)}\n >\n None\n </Button>\n </div>\n </div>\n );\n }\n}\n\nPointConfig.types = [\n 'PF',\n 'LFF',\n 'LEF',\n 'LFE',\n 'LEE',\n 'RFN',\n 'RFP',\n 'REN',\n 'REP'\n];\n\nexport default withStyles(styles, { name: 'PointConfig' })(PointConfig);\n"],"file":"point-config.js"}
@@ -17,7 +17,7 @@ var _styles = require("@material-ui/core/styles");
17
17
 
18
18
  var _numberTextField = require("./number-text-field");
19
19
 
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
21
 
22
22
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
23
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/size.jsx"],"names":["Size","props","size","onChange","changeWidth","e","width","propTypes","PropTypes","shape","number","height","func","isRequired","styles"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,IAAI,GAAG,SAAPA,IAAO,CAAAC,KAAK,EAAI;AAAA,MACZC,IADY,GACOD,KADP,CACZC,IADY;AAAA,MACNC,QADM,GACOF,KADP,CACNE,QADM;;AAGpB,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAIC,KAAJ;AAAA,WAAcH,QAAQ,iCAAMF,KAAK,CAACC,IAAZ;AAAkBI,MAAAA,KAAK,EAALA;AAAlB,OAAtB;AAAA,GAApB;;AAEA,sBAAO,gCAAC,0BAAD;AAAW,IAAA,KAAK,EAAC,OAAjB;AAAyB,IAAA,KAAK,EAAEJ,IAAI,CAACI,KAArC;AAA4C,IAAA,QAAQ,EAAEF;AAAtD,IAAP;AACD,CAND;;AAQAJ,IAAI,CAACO,SAAL,GAAiB;AACfL,EAAAA,IAAI,EAAEM,sBAAUC,KAAV,CAAgB;AACpBH,IAAAA,KAAK,EAAEE,sBAAUE,MADG;AAEpBC,IAAAA,MAAM,EAAEH,sBAAUE;AAFE,GAAhB,CADS;AAKfP,EAAAA,QAAQ,EAAEK,sBAAUI,IAAV,CAAeC;AALV,CAAjB;;AAQA,IAAMC,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpB,aAAO;AADa,GAAP;AAAA,CAAf;;eAGe,wBAAWA,MAAX,EAAmBd,IAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { MiniField } from './number-text-field';\n\nconst Size = props => {\n const { size, onChange } = props;\n\n const changeWidth = (e, width) => onChange({ ...props.size, width });\n\n return <MiniField label=\"Width\" value={size.width} onChange={changeWidth} />;\n};\n\nSize.propTypes = {\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number\n }),\n onChange: PropTypes.func.isRequired\n};\n\nconst styles = () => ({\n class: {}\n});\nexport default withStyles(styles)(Size);\n"],"file":"size.js"}
1
+ {"version":3,"sources":["../src/size.jsx"],"names":["Size","props","size","onChange","changeWidth","e","width","propTypes","PropTypes","shape","number","height","func","isRequired","styles"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,IAAI,GAAG,SAAPA,IAAO,CAAAC,KAAK,EAAI;AACpB,MAAQC,IAAR,GAA2BD,KAA3B,CAAQC,IAAR;AAAA,MAAcC,QAAd,GAA2BF,KAA3B,CAAcE,QAAd;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAIC,KAAJ;AAAA,WAAcH,QAAQ,iCAAMF,KAAK,CAACC,IAAZ;AAAkBI,MAAAA,KAAK,EAALA;AAAlB,OAAtB;AAAA,GAApB;;AAEA,sBAAO,gCAAC,0BAAD;AAAW,IAAA,KAAK,EAAC,OAAjB;AAAyB,IAAA,KAAK,EAAEJ,IAAI,CAACI,KAArC;AAA4C,IAAA,QAAQ,EAAEF;AAAtD,IAAP;AACD,CAND;;AAQAJ,IAAI,CAACO,SAAL,GAAiB;AACfL,EAAAA,IAAI,EAAEM,sBAAUC,KAAV,CAAgB;AACpBH,IAAAA,KAAK,EAAEE,sBAAUE,MADG;AAEpBC,IAAAA,MAAM,EAAEH,sBAAUE;AAFE,GAAhB,CADS;AAKfP,EAAAA,QAAQ,EAAEK,sBAAUI,IAAV,CAAeC;AALV,CAAjB;;AAQA,IAAMC,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpB,aAAO;AADa,GAAP;AAAA,CAAf;;eAGe,wBAAWA,MAAX,EAAmBd,IAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { MiniField } from './number-text-field';\n\nconst Size = props => {\n const { size, onChange } = props;\n\n const changeWidth = (e, width) => onChange({ ...props.size, width });\n\n return <MiniField label=\"Width\" value={size.width} onChange={changeWidth} />;\n};\n\nSize.propTypes = {\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number\n }),\n onChange: PropTypes.func.isRequired\n};\n\nconst styles = () => ({\n class: {}\n});\nexport default withStyles(styles)(Size);\n"],"file":"size.js"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
@@ -23,7 +23,11 @@ var _numberLine = require("@pie-element/number-line");
23
23
 
24
24
  var math = _interopRequireWildcard(require("mathjs"));
25
25
 
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
26
+ 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); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
27
31
 
28
32
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
33
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ticks.jsx"],"names":["Ticks","props","classes","ticks","onChange","domain","changeMinor","e","minor","changeMajor","major","t","tickUtils","normalizeTicks","minorLimits","math","number","min","max","nl","propTypes","PropTypes","object","isRequired","func","shape","styles"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AACO,IAAMA,KAAK,GAAG,SAARA,KAAQ,CAAAC,KAAK,EAAI;AAAA,MACpBC,OADoB,GACiBD,KADjB,CACpBC,OADoB;AAAA,MACXC,KADW,GACiBF,KADjB,CACXE,KADW;AAAA,MACJC,QADI,GACiBH,KADjB,CACJG,QADI;AAAA,MACMC,MADN,GACiBJ,KADjB,CACMI,MADN;;AAG5B,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAIC,KAAJ;AAAA,WAAcJ,QAAQ,iCAAMH,KAAK,CAACE,KAAZ;AAAmBK,MAAAA,KAAK,EAALA;AAAnB,OAAtB;AAAA,GAApB;;AACA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACF,CAAD,EAAIG,KAAJ;AAAA,WAAcN,QAAQ,iCAAMH,KAAK,CAACE,KAAZ;AAAmBO,MAAAA,KAAK,EAALA;AAAnB,OAAtB;AAAA,GAApB;;AAEA,MAAMC,CAAC,GAAGC,sBAAUC,cAAV,CAAyBR,MAAzB,EAAiCF,KAAjC,CAAV;;AAEA,MAAMW,WAAW,GAAGF,sBAAUE,WAAV,CAAsBT,MAAtB,CAApB;;AACA,sBACE,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,0BAAD;AACE,IAAA,KAAK,EAAC,WADR;AAEE,IAAA,KAAK,EAAEU,IAAI,CAACC,MAAL,CAAYL,CAAC,CAACH,KAAd,CAFT;AAGE,IAAA,GAAG,EAAEO,IAAI,CAACC,MAAL,CAAYF,WAAW,CAACG,GAAxB,CAHP;AAIE,IAAA,GAAG,EAAEF,IAAI,CAACC,MAAL,CAAYF,WAAW,CAACI,GAAxB,CAJP;AAKE,IAAA,SAAS,EAAEhB,OAAO,CAACiB,EALrB;AAME,IAAA,QAAQ,EAAEb;AANZ,IADF,eASE,gCAAC,0BAAD;AACE,IAAA,KAAK,EAAC,QADR;AAEE,IAAA,KAAK,EAAES,IAAI,CAACC,MAAL,CAAYL,CAAC,CAACD,KAAd,CAFT;AAGE,IAAA,SAAS,EAAER,OAAO,CAACiB,EAHrB;AAIE,IAAA,QAAQ,EAAEV;AAJZ,IATF,CADF;AAkBD,CA3BM;;;AA4BPT,KAAK,CAACoB,SAAN,GAAkB;AAChBlB,EAAAA,OAAO,EAAEmB,sBAAUC,MAAV,CAAiBC,UADV;AAEhBnB,EAAAA,QAAQ,EAAEiB,sBAAUG,IAFJ;AAGhBrB,EAAAA,KAAK,EAAEkB,sBAAUI,KAAV,CAAgB;AACrBf,IAAAA,KAAK,EAAEW,sBAAUL,MADI;AAErBR,IAAAA,KAAK,EAAEa,sBAAUL;AAFI,GAAhB,CAHS;AAOhBX,EAAAA,MAAM,EAAEgB,sBAAUI,KAAV,CAAgB;AAAER,IAAAA,GAAG,EAAEI,sBAAUL,MAAjB;AAAyBE,IAAAA,GAAG,EAAEG,sBAAUL;AAAxC,GAAhB;AAPQ,CAAlB;;AAUA,IAAMU,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO,EAAP;AAAA,CAAf;;eACe,wBAAWA,MAAX,EAAmB1B,KAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { MiniField } from './number-text-field';\nimport { tickUtils } from '@pie-element/number-line';\nimport * as math from 'mathjs';\nexport const Ticks = props => {\n const { classes, ticks, onChange, domain } = props;\n\n const changeMinor = (e, minor) => onChange({ ...props.ticks, minor });\n const changeMajor = (e, major) => onChange({ ...props.ticks, major });\n\n const t = tickUtils.normalizeTicks(domain, ticks);\n\n const minorLimits = tickUtils.minorLimits(domain);\n return (\n <React.Fragment>\n <MiniField\n label=\"Frequency\"\n value={math.number(t.minor)}\n min={math.number(minorLimits.min)}\n max={math.number(minorLimits.max)}\n className={classes.nl}\n onChange={changeMinor}\n />\n <MiniField\n label=\"Labels\"\n value={math.number(t.major)}\n className={classes.nl}\n onChange={changeMajor}\n />\n </React.Fragment>\n );\n};\nTicks.propTypes = {\n classes: PropTypes.object.isRequired,\n onChange: PropTypes.func,\n ticks: PropTypes.shape({\n major: PropTypes.number,\n minor: PropTypes.number\n }),\n domain: PropTypes.shape({ min: PropTypes.number, max: PropTypes.number })\n};\n\nconst styles = () => ({});\nexport default withStyles(styles)(Ticks);\n"],"file":"ticks.js"}
1
+ {"version":3,"sources":["../src/ticks.jsx"],"names":["Ticks","props","classes","ticks","onChange","domain","changeMinor","e","minor","changeMajor","major","t","tickUtils","normalizeTicks","minorLimits","math","number","min","max","nl","propTypes","PropTypes","object","isRequired","func","shape","styles"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AACO,IAAMA,KAAK,GAAG,SAARA,KAAQ,CAAAC,KAAK,EAAI;AAC5B,MAAQC,OAAR,GAA6CD,KAA7C,CAAQC,OAAR;AAAA,MAAiBC,KAAjB,GAA6CF,KAA7C,CAAiBE,KAAjB;AAAA,MAAwBC,QAAxB,GAA6CH,KAA7C,CAAwBG,QAAxB;AAAA,MAAkCC,MAAlC,GAA6CJ,KAA7C,CAAkCI,MAAlC;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAIC,KAAJ;AAAA,WAAcJ,QAAQ,iCAAMH,KAAK,CAACE,KAAZ;AAAmBK,MAAAA,KAAK,EAALA;AAAnB,OAAtB;AAAA,GAApB;;AACA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACF,CAAD,EAAIG,KAAJ;AAAA,WAAcN,QAAQ,iCAAMH,KAAK,CAACE,KAAZ;AAAmBO,MAAAA,KAAK,EAALA;AAAnB,OAAtB;AAAA,GAApB;;AAEA,MAAMC,CAAC,GAAGC,sBAAUC,cAAV,CAAyBR,MAAzB,EAAiCF,KAAjC,CAAV;;AAEA,MAAMW,WAAW,GAAGF,sBAAUE,WAAV,CAAsBT,MAAtB,CAApB;;AACA,sBACE,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,0BAAD;AACE,IAAA,KAAK,EAAC,WADR;AAEE,IAAA,KAAK,EAAEU,IAAI,CAACC,MAAL,CAAYL,CAAC,CAACH,KAAd,CAFT;AAGE,IAAA,GAAG,EAAEO,IAAI,CAACC,MAAL,CAAYF,WAAW,CAACG,GAAxB,CAHP;AAIE,IAAA,GAAG,EAAEF,IAAI,CAACC,MAAL,CAAYF,WAAW,CAACI,GAAxB,CAJP;AAKE,IAAA,SAAS,EAAEhB,OAAO,CAACiB,EALrB;AAME,IAAA,QAAQ,EAAEb;AANZ,IADF,eASE,gCAAC,0BAAD;AACE,IAAA,KAAK,EAAC,QADR;AAEE,IAAA,KAAK,EAAES,IAAI,CAACC,MAAL,CAAYL,CAAC,CAACD,KAAd,CAFT;AAGE,IAAA,SAAS,EAAER,OAAO,CAACiB,EAHrB;AAIE,IAAA,QAAQ,EAAEV;AAJZ,IATF,CADF;AAkBD,CA3BM;;;AA4BPT,KAAK,CAACoB,SAAN,GAAkB;AAChBlB,EAAAA,OAAO,EAAEmB,sBAAUC,MAAV,CAAiBC,UADV;AAEhBnB,EAAAA,QAAQ,EAAEiB,sBAAUG,IAFJ;AAGhBrB,EAAAA,KAAK,EAAEkB,sBAAUI,KAAV,CAAgB;AACrBf,IAAAA,KAAK,EAAEW,sBAAUL,MADI;AAErBR,IAAAA,KAAK,EAAEa,sBAAUL;AAFI,GAAhB,CAHS;AAOhBX,EAAAA,MAAM,EAAEgB,sBAAUI,KAAV,CAAgB;AAAER,IAAAA,GAAG,EAAEI,sBAAUL,MAAjB;AAAyBE,IAAAA,GAAG,EAAEG,sBAAUL;AAAxC,GAAhB;AAPQ,CAAlB;;AAUA,IAAMU,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO,EAAP;AAAA,CAAf;;eACe,wBAAWA,MAAX,EAAmB1B,KAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { MiniField } from './number-text-field';\nimport { tickUtils } from '@pie-element/number-line';\nimport * as math from 'mathjs';\nexport const Ticks = props => {\n const { classes, ticks, onChange, domain } = props;\n\n const changeMinor = (e, minor) => onChange({ ...props.ticks, minor });\n const changeMajor = (e, major) => onChange({ ...props.ticks, major });\n\n const t = tickUtils.normalizeTicks(domain, ticks);\n\n const minorLimits = tickUtils.minorLimits(domain);\n return (\n <React.Fragment>\n <MiniField\n label=\"Frequency\"\n value={math.number(t.minor)}\n min={math.number(minorLimits.min)}\n max={math.number(minorLimits.max)}\n className={classes.nl}\n onChange={changeMinor}\n />\n <MiniField\n label=\"Labels\"\n value={math.number(t.major)}\n className={classes.nl}\n onChange={changeMajor}\n />\n </React.Fragment>\n );\n};\nTicks.propTypes = {\n classes: PropTypes.object.isRequired,\n onChange: PropTypes.func,\n ticks: PropTypes.shape({\n major: PropTypes.number,\n minor: PropTypes.number\n }),\n domain: PropTypes.shape({ min: PropTypes.number, max: PropTypes.number })\n};\n\nconst styles = () => ({});\nexport default withStyles(styles)(Ticks);\n"],"file":"ticks.js"}
@@ -38,7 +38,7 @@ var _controllerUtils = require("@pie-lib/controller-utils");
38
38
 
39
39
  var _defaults = _interopRequireDefault(require("./defaults"));
40
40
 
41
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
41
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
42
42
 
43
43
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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","reject","Error","normalizedQuestion","evaluateMode","mode","exhibitOnly","disabled","fb","undefined","then","feedbackMessage","prompt","type","message","accessibility","createCorrectResponseSession","role","id"],"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';\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(\n accumulateAnswer(model.correctResponse),\n 0\n );\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(\n session.answer,\n cloneDeep(question.correctResponse)\n );\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\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\n const { graph } = normalizedQuestion;\n\n if (graph) {\n const evaluateMode = env.mode === 'evaluate';\n\n const correctResponse = cloneDeep(normalizedQuestion.correctResponse);\n const corrected =\n evaluateMode &&\n getCorrected(session ? session.answer || [] : [], correctResponse);\n const correctness = evaluateMode && getCorrectness(corrected);\n\n const { exhibitOnly } = graph;\n\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 &&\n ['unanswered', 'correct'].indexOf(correctness) === -1 &&\n normalizedQuestion.correctResponse,\n feedback: feedbackMessage && {\n type: correctness,\n message: feedbackMessage\n },\n colorContrast:\n (env.accessibility && env.accessibility.colorContrast) ||\n 'black_on_white'\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"],"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","reject","Error","normalizedQuestion","evaluateMode","mode","exhibitOnly","disabled","fb","undefined","then","feedbackMessage","prompt","type","message","accessibility","createCorrectResponseSession","role","id"],"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';\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(\n accumulateAnswer(model.correctResponse),\n 0\n );\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(\n session.answer,\n cloneDeep(question.correctResponse)\n );\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\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\n const { graph } = normalizedQuestion;\n\n if (graph) {\n const evaluateMode = env.mode === 'evaluate';\n\n const correctResponse = cloneDeep(normalizedQuestion.correctResponse);\n const corrected =\n evaluateMode &&\n getCorrected(session ? session.answer || [] : [], correctResponse);\n const correctness = evaluateMode && getCorrectness(corrected);\n\n const { exhibitOnly } = graph;\n\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 &&\n ['unanswered', 'correct'].indexOf(correctness) === -1 &&\n normalizedQuestion.correctResponse,\n feedback: feedbackMessage && {\n type: correctness,\n message: feedbackMessage\n },\n colorContrast:\n (env.accessibility && env.accessibility.colorContrast) ||\n 'black_on_white'\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"],"file":"index.js"}