@pie-element/number-line 9.7.1 → 9.7.2-beta.1

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/CHANGELOG.md +12 -0
  2. package/configure/CHANGELOG.md +12 -0
  3. package/configure/lib/arrows.js +1 -1
  4. package/configure/lib/arrows.js.map +1 -1
  5. package/configure/lib/main.js +6 -6
  6. package/configure/lib/main.js.map +1 -1
  7. package/configure/lib/number-text-field.js +1 -1
  8. package/configure/lib/number-text-field.js.map +1 -1
  9. package/configure/lib/size.js +1 -1
  10. package/configure/lib/size.js.map +1 -1
  11. package/configure/lib/ticks.js +2 -2
  12. package/configure/lib/ticks.js.map +1 -1
  13. package/configure/package.json +4 -2
  14. package/controller/CHANGELOG.md +12 -0
  15. package/controller/lib/index.js +2 -2
  16. package/controller/lib/index.js.map +1 -1
  17. package/controller/package.json +3 -2
  18. package/lib/index.js +1 -1
  19. package/lib/index.js.map +1 -1
  20. package/lib/number-line/colors.js +1 -1
  21. package/lib/number-line/colors.js.map +1 -1
  22. package/lib/number-line/feedback.js +2 -2
  23. package/lib/number-line/feedback.js.map +1 -1
  24. package/lib/number-line/graph/arrow.js +1 -1
  25. package/lib/number-line/graph/arrow.js.map +1 -1
  26. package/lib/number-line/graph/elements/line.js +1 -1
  27. package/lib/number-line/graph/elements/line.js.map +1 -1
  28. package/lib/number-line/graph/elements/point.js +1 -1
  29. package/lib/number-line/graph/elements/point.js.map +1 -1
  30. package/lib/number-line/graph/elements/ray.js +1 -1
  31. package/lib/number-line/graph/elements/ray.js.map +1 -1
  32. package/lib/number-line/graph/index.js +1 -1
  33. package/lib/number-line/graph/index.js.map +1 -1
  34. package/lib/number-line/graph/line.js +1 -1
  35. package/lib/number-line/graph/line.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 +3 -3
  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/package.json +7 -3
  43. package/LICENSE.md +0 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/index.jsx"],"names":["getXScale","min","max","width","padding","undefined","Error","domain","range","Debug","props","JSON","stringify","NumberLineGraph","state","toString","length","ticks","snapTo","bind","minor","xScale","xScaleFn","snapValue","snapValueFn","rect","elements","disabled","anyElementSelected","some","e","selected","onDeselectElements","coords","_groups","x","invert","addElement","on","onRectClick","snapFn","v","onAddElement","height","onToggleElement","onMoveElement","fraction","arrows","left","right","lineY","stacks","Stacks","map","el","index","stackIndex","add","y","commonProps","key","interval","correct","toggleElement","moveElement","type","empty","leftPoint","rightPoint","position","bounds","pointType","direction","color","primary","c","React","Component","PropTypes","func","isRequired","shape","number","major","bool","debug","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { scaleLinear } from 'd3-scale';\nimport { select, mouse } from 'd3-selection';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport Point from './elements/point';\nimport Line from './elements/line';\nimport Ray from './elements/ray';\nimport BaseLine from './line';\nimport Arrow from './arrow';\nimport Ticks from './ticks';\nimport { snapTo } from './tick-utils';\nimport Stacks from './stacks';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport { Fade } from '../transitions';\n\nconst getXScale = (min, max, width, padding) => {\n if (min === undefined || max === undefined || width === undefined) {\n throw new Error('missing min/max/width');\n }\n\n return scaleLinear()\n .domain([min, max])\n .range([padding, width - padding]);\n};\n\nconst Debug = (props) => (\n <g>\n <text x=\"00\" y=\"20\">\n {JSON.stringify(props)}\n </text>\n </g>\n);\n\nexport class NumberLineGraph extends React.Component {\n static childContextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n ticks: PropTypes.shape({ minor: PropTypes.number, major: PropTypes.number }).isRequired,\n fraction: PropTypes.bool,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onToggleElement: PropTypes.func.isRequired,\n onMoveElement: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n debug: PropTypes.bool,\n elements: PropTypes.array,\n disabled: PropTypes.bool,\n onDeselectElements: PropTypes.func,\n arrows: PropTypes.shape({ left: PropTypes.bool, right: PropTypes.bool }),\n };\n\n static defaultProps = {\n debug: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n xScaleFn() {\n const { domain, width } = this.props;\n const { max, min } = domain || {};\n\n let padding = 20;\n\n if (max) {\n padding = max.toString().length * 4 + 15;\n }\n\n return getXScale(min, max, width, padding);\n }\n\n snapValueFn() {\n const { domain, ticks } = this.props;\n return snapTo.bind(null, domain.min, domain.max, ticks.minor);\n }\n\n getChildContext() {\n return {\n xScale: this.xScaleFn(),\n snapValue: this.snapValueFn(),\n };\n }\n\n /**\n * Note: we use d3 click + mouse to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick(rect) {\n const { elements, disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const anyElementSelected = elements.some((e) => e.selected);\n\n if (anyElementSelected) {\n this.props.onDeselectElements();\n } else {\n var coords = mouse(rect._groups[0][0]);\n const x = this.xScaleFn().invert(coords[0]);\n this.addElement(x);\n }\n }\n\n componentDidMount() {\n const rect = select(this.rect);\n rect.on('click', this.onRectClick.bind(this, rect));\n }\n\n addElement(x) {\n const snapFn = this.snapValueFn();\n const v = snapFn(x);\n this.props.onAddElement(v);\n }\n\n render() {\n const { domain, width, ticks, height, onToggleElement, onMoveElement, disabled, fraction } = this.props;\n let { arrows } = this.props;\n\n arrows = arrows || { left: true, right: true };\n const { min, max } = domain;\n\n if (domain.max <= domain.min) {\n return (\n <div>\n {domain.max} is less than or equal to {domain.min}\n </div>\n );\n } else {\n const lineY = height - 30;\n\n const stacks = new Stacks(domain);\n\n const elements = this.props.elements.map((el, index) => {\n const stackIndex = stacks.add(el);\n\n if (stackIndex === -1) {\n throw new Error('stack index is -1, cant add element');\n }\n\n const y = lineY - stackIndex * 25;\n\n const commonProps = {\n key: index,\n y,\n selected: el.selected && !disabled,\n interval: ticks.minor,\n disabled,\n correct: el.correct,\n };\n\n const toggleElement = onToggleElement.bind(null, index, el);\n const moveElement = onMoveElement.bind(null, index, el);\n\n if (el.type === 'line') {\n const empty = {\n left: el.leftPoint === 'empty',\n right: el.rightPoint === 'empty',\n };\n\n return (\n <Line\n {...commonProps}\n domain={{ min: min, max: max }}\n onMoveLine={moveElement}\n onToggleSelect={toggleElement}\n position={el.position}\n empty={empty}\n />\n );\n } else if (el.type === 'point') {\n const bounds = {\n left: min - el.position,\n right: max - el.position,\n };\n\n return (\n <Point\n {...commonProps}\n empty={el.pointType === 'empty'}\n position={el.position}\n bounds={bounds}\n onClick={toggleElement}\n onMove={moveElement}\n />\n );\n } else if (el.type === 'ray') {\n return (\n <Ray\n {...commonProps}\n domain={{ min: min, max: max }}\n direction={el.direction}\n position={el.position}\n onMove={moveElement}\n onToggleSelect={toggleElement}\n width={width}\n empty={el.pointType === 'empty'}\n />\n );\n }\n });\n\n return (\n <svg width={width} height={fraction ? height + 20 : height}>\n {false && <Debug domain={domain} ticks={ticks} />}\n <BaseLine y={lineY} width={width} />\n {arrows.left && <Arrow y={lineY} />}\n {arrows.right && <Arrow x={width} y={lineY} direction=\"right\" />}\n <Ticks y={lineY} domain={domain} width={width} ticks={ticks} fraction={fraction} />\n <rect\n ref={(rect) => (this.rect = rect)}\n //need to have a fill for it to be clickable\n fill={color.primary()}\n fillOpacity=\"0.0\"\n width={width}\n height={height}\n />\n <TransitionGroup component=\"g\">\n {elements.map((c, index) => (\n <Fade key={index}>{c}</Fade>\n ))}\n </TransitionGroup>\n </svg>\n );\n }\n }\n}\n\nexport default NumberLineGraph;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/number-line/graph/index.jsx"],"names":["getXScale","min","max","width","padding","undefined","Error","domain","range","Debug","props","JSON","stringify","NumberLineGraph","state","toString","length","ticks","snapTo","bind","minor","xScale","xScaleFn","snapValue","snapValueFn","rect","elements","disabled","anyElementSelected","some","e","selected","onDeselectElements","coords","_groups","x","invert","addElement","on","onRectClick","snapFn","v","onAddElement","height","onToggleElement","onMoveElement","fraction","arrows","left","right","lineY","stacks","Stacks","map","el","index","stackIndex","add","y","commonProps","key","interval","correct","toggleElement","moveElement","type","empty","leftPoint","rightPoint","position","bounds","pointType","direction","color","primary","c","React","Component","PropTypes","func","isRequired","shape","number","major","bool","debug","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { scaleLinear } from 'd3-scale';\nimport { select, mouse } from 'd3-selection';\nimport { color } from '@pie-lib/render-ui';\nimport Point from './elements/point';\nimport Line from './elements/line';\nimport Ray from './elements/ray';\nimport BaseLine from './line';\nimport Arrow from './arrow';\nimport Ticks from './ticks';\nimport { snapTo } from './tick-utils';\nimport Stacks from './stacks';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport { Fade } from '../transitions';\n\nconst getXScale = (min, max, width, padding) => {\n if (min === undefined || max === undefined || width === undefined) {\n throw new Error('missing min/max/width');\n }\n\n return scaleLinear()\n .domain([min, max])\n .range([padding, width - padding]);\n};\n\nconst Debug = (props) => (\n <g>\n <text x=\"00\" y=\"20\">\n {JSON.stringify(props)}\n </text>\n </g>\n);\n\nexport class NumberLineGraph extends React.Component {\n static childContextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n ticks: PropTypes.shape({ minor: PropTypes.number, major: PropTypes.number }).isRequired,\n fraction: PropTypes.bool,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onToggleElement: PropTypes.func.isRequired,\n onMoveElement: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n debug: PropTypes.bool,\n elements: PropTypes.array,\n disabled: PropTypes.bool,\n onDeselectElements: PropTypes.func,\n arrows: PropTypes.shape({ left: PropTypes.bool, right: PropTypes.bool }),\n };\n\n static defaultProps = {\n debug: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n xScaleFn() {\n const { domain, width } = this.props;\n const { max, min } = domain || {};\n\n let padding = 20;\n\n if (max) {\n padding = max.toString().length * 4 + 15;\n }\n\n return getXScale(min, max, width, padding);\n }\n\n snapValueFn() {\n const { domain, ticks } = this.props;\n return snapTo.bind(null, domain.min, domain.max, ticks.minor);\n }\n\n getChildContext() {\n return {\n xScale: this.xScaleFn(),\n snapValue: this.snapValueFn(),\n };\n }\n\n /**\n * Note: we use d3 click + mouse to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick(rect) {\n const { elements, disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n const anyElementSelected = elements.some((e) => e.selected);\n\n if (anyElementSelected) {\n this.props.onDeselectElements();\n } else {\n var coords = mouse(rect._groups[0][0]);\n const x = this.xScaleFn().invert(coords[0]);\n this.addElement(x);\n }\n }\n\n componentDidMount() {\n const rect = select(this.rect);\n rect.on('click', this.onRectClick.bind(this, rect));\n }\n\n addElement(x) {\n const snapFn = this.snapValueFn();\n const v = snapFn(x);\n this.props.onAddElement(v);\n }\n\n render() {\n const { domain, width, ticks, height, onToggleElement, onMoveElement, disabled, fraction } = this.props;\n let { arrows } = this.props;\n\n arrows = arrows || { left: true, right: true };\n const { min, max } = domain;\n\n if (domain.max <= domain.min) {\n return (\n <div>\n {domain.max} is less than or equal to {domain.min}\n </div>\n );\n } else {\n const lineY = height - 30;\n\n const stacks = new Stacks(domain);\n\n const elements = this.props.elements.map((el, index) => {\n const stackIndex = stacks.add(el);\n\n if (stackIndex === -1) {\n throw new Error('stack index is -1, cant add element');\n }\n\n const y = lineY - stackIndex * 25;\n\n const commonProps = {\n key: index,\n y,\n selected: el.selected && !disabled,\n interval: ticks.minor,\n disabled,\n correct: el.correct,\n };\n\n const toggleElement = onToggleElement.bind(null, index, el);\n const moveElement = onMoveElement.bind(null, index, el);\n\n if (el.type === 'line') {\n const empty = {\n left: el.leftPoint === 'empty',\n right: el.rightPoint === 'empty',\n };\n\n return (\n <Line\n {...commonProps}\n domain={{ min: min, max: max }}\n onMoveLine={moveElement}\n onToggleSelect={toggleElement}\n position={el.position}\n empty={empty}\n />\n );\n } else if (el.type === 'point') {\n const bounds = {\n left: min - el.position,\n right: max - el.position,\n };\n\n return (\n <Point\n {...commonProps}\n empty={el.pointType === 'empty'}\n position={el.position}\n bounds={bounds}\n onClick={toggleElement}\n onMove={moveElement}\n />\n );\n } else if (el.type === 'ray') {\n return (\n <Ray\n {...commonProps}\n domain={{ min: min, max: max }}\n direction={el.direction}\n position={el.position}\n onMove={moveElement}\n onToggleSelect={toggleElement}\n width={width}\n empty={el.pointType === 'empty'}\n />\n );\n }\n });\n\n return (\n <svg width={width} height={fraction ? height + 20 : height}>\n {false && <Debug domain={domain} ticks={ticks} />}\n <BaseLine y={lineY} width={width} />\n {arrows.left && <Arrow y={lineY} />}\n {arrows.right && <Arrow x={width} y={lineY} direction=\"right\" />}\n <Ticks y={lineY} domain={domain} width={width} ticks={ticks} fraction={fraction} />\n <rect\n ref={(rect) => (this.rect = rect)}\n //need to have a fill for it to be clickable\n fill={color.primary()}\n fillOpacity=\"0.0\"\n width={width}\n height={height}\n />\n <TransitionGroup component=\"g\">\n {elements.map((c, index) => (\n <Fade key={index}>{c}</Fade>\n ))}\n </TransitionGroup>\n </svg>\n );\n }\n }\n}\n\nexport default NumberLineGraph;\n"],"file":"index.js"}
@@ -14,7 +14,7 @@ var _reactJss = _interopRequireDefault(require("react-jss"));
14
14
 
15
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
16
16
 
17
- var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
17
+ var _renderUi = require("@pie-lib/render-ui");
18
18
 
19
19
  var style = {
20
20
  root: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/line.jsx"],"names":["style","root","strokeWidth","stroke","color","primary","Line","y","width","classes","propTypes","PropTypes","number","isRequired","object"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE;AACJC,IAAAA,WAAW,EAAE,CADT;AAEJC,IAAAA,MAAM,EAAEC,gBAAMC,OAAN;AAFJ;AADM,CAAd;;AAOO,SAASC,IAAT,OAAqC;AAAA,MAArBC,CAAqB,QAArBA,CAAqB;AAAA,MAAlBC,KAAkB,QAAlBA,KAAkB;AAAA,MAAXC,OAAW,QAAXA,OAAW;AAC1C,sBAAO;AAAM,IAAA,EAAE,EAAE,CAAV;AAAa,IAAA,EAAE,EAAEF,CAAjB;AAAoB,IAAA,EAAE,EAAEC,KAAxB;AAA+B,IAAA,EAAE,EAAED,CAAnC;AAAsC,IAAA,SAAS,EAAEE,OAAO,CAACR;AAAzD,IAAP;AACD;;AAEDK,IAAI,CAACI,SAAL,GAAiB;AACfH,EAAAA,CAAC,EAAEI,sBAAUC,MAAV,CAAiBC,UADL;AAEfL,EAAAA,KAAK,EAAEG,sBAAUC,MAAV,CAAiBC,UAFT;AAGfJ,EAAAA,OAAO,EAAEE,sBAAUG,MAAV,CAAiBD;AAHX,CAAjB;;eAMe,0BAAYb,KAAZ,EAAmBM,IAAnB,C","sourcesContent":["import React from 'react';\nimport injectSheet from 'react-jss';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst style = {\n root: {\n strokeWidth: 2,\n stroke: color.primary(),\n },\n};\n\nexport function Line({ y, width, classes }) {\n return <line x1={0} y1={y} x2={width} y2={y} className={classes.root} />;\n}\n\nLine.propTypes = {\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nexport default injectSheet(style)(Line);\n"],"file":"line.js"}
1
+ {"version":3,"sources":["../../../src/number-line/graph/line.jsx"],"names":["style","root","strokeWidth","stroke","color","primary","Line","y","width","classes","propTypes","PropTypes","number","isRequired","object"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE;AACJC,IAAAA,WAAW,EAAE,CADT;AAEJC,IAAAA,MAAM,EAAEC,gBAAMC,OAAN;AAFJ;AADM,CAAd;;AAOO,SAASC,IAAT,OAAqC;AAAA,MAArBC,CAAqB,QAArBA,CAAqB;AAAA,MAAlBC,KAAkB,QAAlBA,KAAkB;AAAA,MAAXC,OAAW,QAAXA,OAAW;AAC1C,sBAAO;AAAM,IAAA,EAAE,EAAE,CAAV;AAAa,IAAA,EAAE,EAAEF,CAAjB;AAAoB,IAAA,EAAE,EAAEC,KAAxB;AAA+B,IAAA,EAAE,EAAED,CAAnC;AAAsC,IAAA,SAAS,EAAEE,OAAO,CAACR;AAAzD,IAAP;AACD;;AAEDK,IAAI,CAACI,SAAL,GAAiB;AACfH,EAAAA,CAAC,EAAEI,sBAAUC,MAAV,CAAiBC,UADL;AAEfL,EAAAA,KAAK,EAAEG,sBAAUC,MAAV,CAAiBC,UAFT;AAGfJ,EAAAA,OAAO,EAAEE,sBAAUG,MAAV,CAAiBD;AAHX,CAAjB;;eAMe,0BAAYb,KAAZ,EAAmBM,IAAnB,C","sourcesContent":["import React from 'react';\nimport injectSheet from 'react-jss';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\n\nconst style = {\n root: {\n strokeWidth: 2,\n stroke: color.primary(),\n },\n};\n\nexport function Line({ y, width, classes }) {\n return <line x1={0} y1={y} x2={width} y2={y} className={classes.root} />;\n}\n\nLine.propTypes = {\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nexport default injectSheet(style)(Line);\n"],"file":"line.js"}
@@ -27,7 +27,7 @@ var _tickUtils = require("./tick-utils");
27
27
 
28
28
  var _reactJss = _interopRequireDefault(require("react-jss"));
29
29
 
30
- var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
30
+ var _renderUi = require("@pie-lib/render-ui");
31
31
 
32
32
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
33
33
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/ticks.jsx"],"names":["style","text","userSelect","textAlign","fill","color","primary","line","stroke","TickValidator","PropTypes","shape","major","props","propName","minor","componentName","Error","isRequired","Tick","wasRendered","state","textBox","width","height","x","y","resizeObserver","getBBox","setAttribute","setState","ResizeObserver","updateTextBox","observe","disconnect","type","classes","xScale","fraction","displayFraction","n","d","labelTick","textWidth","textHeight","textX","textY","xText","Number","toFixed","s","React","Component","object","number","bool","func","string","Ticks","domain","ticks","context","tickData","map","min","max"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { buildTickData } from './tick-utils';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst style = {\n text: {\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary(),\n },\n line: {\n stroke: color.primary(),\n },\n};\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {},\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);\n }\n },\n}).isRequired;\n\nexport class Tick extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n y: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n major: PropTypes.bool,\n fraction: PropTypes.bool,\n xScale: PropTypes.func,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n major: false,\n };\n\n constructor(props) {\n super(props);\n this.wasRendered = false;\n this.state = {\n textBox: {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n }\n };\n this.resizeObserver = null;\n }\n\n updateTextBox() {\n if (this.text) {\n const { width, height, x, y } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n this.setState({ textBox: { width, height, x, y } });\n }\n }\n\n componentDidMount() {\n // Set up ResizeObserver\n this.resizeObserver = new ResizeObserver(() => {\n this.updateTextBox();\n });\n\n if(this.text) {\n this.resizeObserver.observe(this.text);\n }\n }\n\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, classes, xScale, fraction } = this.props;\n const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;\n const labelTick = type === 'major';\n const height = labelTick ? 20 : 10;\n const {\n width: textWidth = 0,\n height: textHeight = 0,\n x: textX = 0,\n y: textY = 0,\n } = this.state.textBox;\n\n const xText = !fraction ? (\n Number(x.toFixed(3))\n ) : !displayFraction ? (\n x.n * x.s\n ) : (\n <React.Fragment>\n <tspan x=\"0\" dy=\"0.71em\">\n {x.n * x.s}\n </tspan>\n <tspan x=\"0\" dy=\"1.11em\">\n {x.d}\n </tspan>\n </React.Fragment>\n );\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <line className={classes.line} y1={(height / 2) * -1} y2={height / 2} x1=\"0.5\" x2=\"0.5\" />\n\n {displayFraction && (\n <line\n className={classes.line}\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n )}\n\n {labelTick && (\n <text\n ref={(text) => (this.text = text)}\n className={classes.text}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </text>\n )}\n </g>\n );\n }\n}\n\nexport class Ticks extends React.Component {\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n fraction: PropTypes.bool,\n width: PropTypes.number,\n ticks: TickValidator,\n y: PropTypes.number.isRequired,\n };\n\n render() {\n let { domain, width, ticks, y, classes, fraction } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, width, ticks, { fraction });\n\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick\n classes={classes}\n fraction={fraction}\n x={x}\n y={y}\n type={type}\n xScale={xScale}\n key={`${x}-${type}-${fraction}`}\n />\n );\n })}\n </g>\n );\n }\n}\n\nexport default injectSheet(style)(Ticks);\n"],"file":"ticks.js"}
1
+ {"version":3,"sources":["../../../src/number-line/graph/ticks.jsx"],"names":["style","text","userSelect","textAlign","fill","color","primary","line","stroke","TickValidator","PropTypes","shape","major","props","propName","minor","componentName","Error","isRequired","Tick","wasRendered","state","textBox","width","height","x","y","resizeObserver","getBBox","setAttribute","setState","ResizeObserver","updateTextBox","observe","disconnect","type","classes","xScale","fraction","displayFraction","n","d","labelTick","textWidth","textHeight","textX","textY","xText","Number","toFixed","s","React","Component","object","number","bool","func","string","Ticks","domain","ticks","context","tickData","map","min","max"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { buildTickData } from './tick-utils';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/render-ui';\n\nconst style = {\n text: {\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary(),\n },\n line: {\n stroke: color.primary(),\n },\n};\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {},\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);\n }\n },\n}).isRequired;\n\nexport class Tick extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n y: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n major: PropTypes.bool,\n fraction: PropTypes.bool,\n xScale: PropTypes.func,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n major: false,\n };\n\n constructor(props) {\n super(props);\n this.wasRendered = false;\n this.state = {\n textBox: {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n },\n };\n this.resizeObserver = null;\n }\n\n updateTextBox() {\n if (this.text) {\n const { width, height, x, y } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n this.setState({ textBox: { width, height, x, y } });\n }\n }\n\n componentDidMount() {\n // Set up ResizeObserver\n this.resizeObserver = new ResizeObserver(() => {\n this.updateTextBox();\n });\n\n if (this.text) {\n this.resizeObserver.observe(this.text);\n }\n }\n\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, classes, xScale, fraction } = this.props;\n const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;\n const labelTick = type === 'major';\n const height = labelTick ? 20 : 10;\n const { width: textWidth = 0, height: textHeight = 0, x: textX = 0, y: textY = 0 } = this.state.textBox;\n\n const xText = !fraction ? (\n Number(x.toFixed(3))\n ) : !displayFraction ? (\n x.n * x.s\n ) : (\n <React.Fragment>\n <tspan x=\"0\" dy=\"0.71em\">\n {x.n * x.s}\n </tspan>\n <tspan x=\"0\" dy=\"1.11em\">\n {x.d}\n </tspan>\n </React.Fragment>\n );\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <line className={classes.line} y1={(height / 2) * -1} y2={height / 2} x1=\"0.5\" x2=\"0.5\" />\n\n {displayFraction && (\n <line\n className={classes.line}\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n )}\n\n {labelTick && (\n <text\n ref={(text) => (this.text = text)}\n className={classes.text}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </text>\n )}\n </g>\n );\n }\n}\n\nexport class Ticks extends React.Component {\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n fraction: PropTypes.bool,\n width: PropTypes.number,\n ticks: TickValidator,\n y: PropTypes.number.isRequired,\n };\n\n render() {\n let { domain, width, ticks, y, classes, fraction } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, width, ticks, { fraction });\n\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick\n classes={classes}\n fraction={fraction}\n x={x}\n y={y}\n type={type}\n xScale={xScale}\n key={`${x}-${type}-${fraction}`}\n />\n );\n })}\n </g>\n );\n }\n}\n\nexport default injectSheet(style)(Ticks);\n"],"file":"ticks.js"}
@@ -29,7 +29,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
29
29
 
30
30
  var _react = _interopRequireDefault(require("react"));
31
31
 
32
- var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/pie-toolbox/correct-answer-toggle"));
32
+ var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
33
33
 
34
34
  var _classnames = _interopRequireDefault(require("classnames"));
35
35
 
@@ -41,9 +41,9 @@ var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
41
41
 
42
42
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
43
43
 
44
- var _translator = _interopRequireDefault(require("@pie-lib/pie-toolbox/translator"));
44
+ var _translator = _interopRequireDefault(require("@pie-lib/translator"));
45
45
 
46
- var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
46
+ var _renderUi = require("@pie-lib/render-ui");
47
47
 
48
48
  var _styles = require("@material-ui/core/styles");
49
49
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/number-line/index.jsx"],"names":["translator","Translator","styles","theme","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","boxSizing","toggle","marginBottom","black_on_rose","white_on_black","prompt","verticalAlign","collapsible","paddingBottom","spacing","unit","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","availableTypes","toUpperCase","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","minWidth","maxWidth","maxHeight","corrected","correct","incorrect","disabled","extraCSSRules","correctResponse","emptyAnswer","feedback","colorContrast","language","teacherInstructions","addElement","bind","elementsSelected","arrows","height","title","fraction","width","getSize","showTeacherInstructions","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","lng","count","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","containerNames","numberLineContainerNames","hidden","visible","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","__html","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Toggle from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nimport { Collapsible, color, hasMedia, hasText, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport { buildElementModel } from './graph/elements/builder';\n\nconst { translator } = Translator;\n\nexport { Graph };\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n boxSizing: 'unset',\n },\n toggle: {\n marginBottom: '16px',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType ? initialType.toLowerCase() : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain, availableTypes } = this.props.model.graph;\n\n // check if the element type is enabled in availableTypes\n if (availableTypes && !availableTypes[this.state.elementType.toUpperCase()]) {\n return;\n }\n\n let elementData = buildElementModel(x, this.state.elementType, domain, ticks.minor);\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return isNumber(maxNumberOfPoints) && maxNumberOfPoints > 0 && (answer || []).length >= maxNumberOfPoints;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement, minWidth = 400, maxWidth = 1600, maxHeight } = this.props;\n let { showCorrectAnswer, answers, selectedElements, showMaxPointsWarning, elementType } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n extraCSSRules,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n language,\n teacherInstructions\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected = !disabled && selectedElements && selectedElements.length > 0;\n const { ticks, domain, arrows, maxNumberOfPoints, height = 100, availableTypes, title, fraction } = graph;\n const width = this.getSize('width', minWidth, maxWidth, 600);\n const showTeacherInstructions = teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: (height > maxHeight ? maxHeight : height) || 100,\n arrows,\n fraction,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer ? getCorrectAnswerElements() : getAnswerElements();\n\n let maxPointsMessage = () =>\n maxNumberOfPoints == 1\n ? translator.t('numberLine.addElementLimit_one', { lng: language, count: 1 })\n : translator.t('numberLine.addElementLimit_other', { lng: language, count: maxNumberOfPoints });\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const containerNames = classNames(classes.mainContainer, classes[colorContrast]);\n const numberLineContainerNames = classNames(classes.numberLine, classes.mainContainer, classes[colorContrast]);\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={containerNames}>\n {showTeacherInstructions && (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={teacherInstructions}/>\n </Collapsible>\n )}\n\n {prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n <div className={numberLineContainerNames} style={{ width }}>\n <div style={{ width: adjustedWidth }} className={classes.toggle}>\n <Toggle\n show={isArray(correctResponse) && correctResponse.length && !emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n language={language}\n />\n </div>\n\n {!disabled && (\n <PointChooser\n elementType={elementType}\n showDeleteButton={elementsSelected}\n onDeleteClick={deleteElements}\n onElementType={this.elementTypeSelected.bind(this)}\n onClearElements={this.clearAll.bind(this)}\n onUndoElement={this.undo.bind(this)}\n icons={getIcons()}\n language={language}\n />\n )}\n\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {title && <div className={classes.graphTitle} dangerouslySetInnerHTML={{ __html: title }} />}\n\n {showMaxPointsWarning && <Feedback type=\"info\" width={adjustedWidth} message={maxPointsMessage()} />}\n {feedback && !showCorrectAnswer && <Feedback {...feedback} width={adjustedWidth} />}\n </div>\n </UiLayout>\n );\n }\n}\n\nexport default withStyles(styles)(NumberLine);\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/number-line/index.jsx"],"names":["translator","Translator","styles","theme","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","boxSizing","toggle","marginBottom","black_on_rose","white_on_black","prompt","verticalAlign","collapsible","paddingBottom","spacing","unit","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","availableTypes","toUpperCase","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","minWidth","maxWidth","maxHeight","corrected","correct","incorrect","disabled","extraCSSRules","correctResponse","emptyAnswer","feedback","colorContrast","language","teacherInstructions","addElement","bind","elementsSelected","arrows","height","title","fraction","width","getSize","showTeacherInstructions","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","lng","count","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","containerNames","numberLineContainerNames","hidden","visible","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","__html","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Toggle from '@pie-lib/correct-answer-toggle';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\nimport Translator from '@pie-lib/translator';\nimport { Collapsible, color, hasMedia, hasText, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport { buildElementModel } from './graph/elements/builder';\n\nconst { translator } = Translator;\n\nexport { Graph };\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n boxSizing: 'unset',\n },\n toggle: {\n marginBottom: '16px',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType ? initialType.toLowerCase() : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain, availableTypes } = this.props.model.graph;\n\n // check if the element type is enabled in availableTypes\n if (availableTypes && !availableTypes[this.state.elementType.toUpperCase()]) {\n return;\n }\n\n let elementData = buildElementModel(x, this.state.elementType, domain, ticks.minor);\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return isNumber(maxNumberOfPoints) && maxNumberOfPoints > 0 && (answer || []).length >= maxNumberOfPoints;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement, minWidth = 400, maxWidth = 1600, maxHeight } = this.props;\n let { showCorrectAnswer, answers, selectedElements, showMaxPointsWarning, elementType } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n extraCSSRules,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n language,\n teacherInstructions,\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected = !disabled && selectedElements && selectedElements.length > 0;\n const { ticks, domain, arrows, maxNumberOfPoints, height = 100, availableTypes, title, fraction } = graph;\n const width = this.getSize('width', minWidth, maxWidth, 600);\n const showTeacherInstructions =\n teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: (height > maxHeight ? maxHeight : height) || 100,\n arrows,\n fraction,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer ? getCorrectAnswerElements() : getAnswerElements();\n\n let maxPointsMessage = () =>\n maxNumberOfPoints == 1\n ? translator.t('numberLine.addElementLimit_one', { lng: language, count: 1 })\n : translator.t('numberLine.addElementLimit_other', { lng: language, count: maxNumberOfPoints });\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const containerNames = classNames(classes.mainContainer, classes[colorContrast]);\n const numberLineContainerNames = classNames(classes.numberLine, classes.mainContainer, classes[colorContrast]);\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={containerNames}>\n {showTeacherInstructions && (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n\n {prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n <div className={numberLineContainerNames} style={{ width }}>\n <div style={{ width: adjustedWidth }} className={classes.toggle}>\n <Toggle\n show={isArray(correctResponse) && correctResponse.length && !emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n language={language}\n />\n </div>\n\n {!disabled && (\n <PointChooser\n elementType={elementType}\n showDeleteButton={elementsSelected}\n onDeleteClick={deleteElements}\n onElementType={this.elementTypeSelected.bind(this)}\n onClearElements={this.clearAll.bind(this)}\n onUndoElement={this.undo.bind(this)}\n icons={getIcons()}\n language={language}\n />\n )}\n\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {title && <div className={classes.graphTitle} dangerouslySetInnerHTML={{ __html: title }} />}\n\n {showMaxPointsWarning && <Feedback type=\"info\" width={adjustedWidth} message={maxPointsMessage()} />}\n {feedback && !showCorrectAnswer && <Feedback {...feedback} width={adjustedWidth} />}\n </div>\n </UiLayout>\n );\n }\n}\n\nexport default withStyles(styles)(NumberLine);\n"],"file":"index.js"}
@@ -31,7 +31,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
31
31
 
32
32
  var _button = _interopRequireDefault(require("./button"));
33
33
 
34
- var _translator = _interopRequireDefault(require("@pie-lib/pie-toolbox/translator"));
34
+ var _translator = _interopRequireDefault(require("@pie-lib/translator"));
35
35
 
36
36
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
37
37
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/point-chooser/index.jsx"],"names":["translator","Translator","DeleteIcon","classes","deleteIcon","propTypes","PropTypes","object","RawPoint","props","iconKey","active","onClick","names","string","isRequired","bool","func","Point","styles","Points","selectPoint","selected","icons","iconTags","map","key","bind","toLowerCase","elementSelector","array","PointChooser","elementType","showDeleteButton","onDeleteClick","onUndoElement","onClearElements","onElementType","language","pointChooser","controls","deleteIconHolder","buttonText","t","lng","React","Component","DEFAULT_TYPE"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAQA,UAAR,GAAuBC,sBAAvB,CAAQD,UAAR;;AAEA,IAAME,UAAU,GAAG,SAAbA,UAAa,OAAiB;AAAA,MAAdC,OAAc,QAAdA,OAAc;AAClC,sBACE;AACE,IAAA,SAAS,EAAEA,OAAO,CAACC,UADrB;AAEE,IAAA,IAAI,EAAC,SAFP;AAGE,IAAA,MAAM,EAAC,IAHT;AAIE,IAAA,OAAO,EAAC,WAJV;AAKE,IAAA,KAAK,EAAC,IALR;AAME,IAAA,KAAK,EAAC;AANR,kBAQE;AAAM,IAAA,CAAC,EAAC;AAAR,IARF,eASE;AAAM,IAAA,CAAC,EAAC,eAAR;AAAwB,IAAA,IAAI,EAAC;AAA7B,IATF,CADF;AAaD,CAdD;;AAgBAF,UAAU,CAACG,SAAX,GAAuB;AACrBF,EAAAA,OAAO,EAAEG,sBAAUC;AADE,CAAvB;;AAIA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAW;AAC1B,MAAQC,OAAR,GAA8CD,KAA9C,CAAQC,OAAR;AAAA,MAAiBC,MAAjB,GAA8CF,KAA9C,CAAiBE,MAAjB;AAAA,MAAyBR,OAAzB,GAA8CM,KAA9C,CAAyBN,OAAzB;AAAA,MAAkCS,OAAlC,GAA8CH,KAA9C,CAAkCG,OAAlC;AACA,MAAMC,KAAK,GAAG,4BAAWV,OAAO,CAACO,OAAD,CAAlB,EAA6B;AAAEC,IAAAA,MAAM,EAANA;AAAF,GAA7B,CAAd;AACA,sBACE;AAAM,IAAA,IAAI,EAAC,cAAX;AAA0B,IAAA,GAAG,EAAED,OAA/B;AAAwC,IAAA,OAAO,EAAEE;AAAjD,kBACE;AAAG,IAAA,SAAS,EAAEC;AAAd,YADF,CADF;AAKD,CARD;;AAUAL,QAAQ,CAACH,SAAT,GAAqB;AACnBK,EAAAA,OAAO,EAAEJ,sBAAUQ,MAAV,CAAiBC,UADP;AAEnBJ,EAAAA,MAAM,EAAEL,sBAAUU,IAFC;AAGnBb,EAAAA,OAAO,EAAEG,sBAAUC,MAHA;AAInBK,EAAAA,OAAO,EAAEN,sBAAUW;AAJA,CAArB;AAOO,IAAMC,KAAK,GAAG,0BAAYC,kBAAZ,EAAoBX,QAApB,CAAd;;;AAEP,IAAMY,MAAM,GAAG,SAATA,MAAS,QAA+C;AAAA,MAA5CC,WAA4C,SAA5CA,WAA4C;AAAA,MAA/BlB,OAA+B,SAA/BA,OAA+B;AAAA,MAAtBmB,QAAsB,SAAtBA,QAAsB;AAAA,MAAZC,KAAY,SAAZA,KAAY;AAC5D,MAAMC,QAAQ,GAAGD,KAAK,CAACE,GAAN,CAAU,UAACC,GAAD,EAAS;AAClC,QAAIf,MAAM,GAAGe,GAAG,KAAKJ,QAArB;AACA,QAAIV,OAAO,GAAGD,MAAM,GAAG,YAAM,CAAE,CAAX,GAAcU,WAAW,CAACM,IAAZ,CAAiB,IAAjB,EAAuBD,GAAvB,CAAlC;AACA,wBAAO,gCAAC,KAAD;AAAO,MAAA,GAAG,EAAEA,GAAG,CAACE,WAAJ,EAAZ;AAA+B,MAAA,OAAO,EAAEF,GAAG,CAACE,WAAJ,EAAxC;AAA2D,MAAA,MAAM,EAAEjB,MAAnE;AAA2E,MAAA,OAAO,EAAEC;AAApF,MAAP,CAHkC,CAGsE;AACzG,GAJgB,CAAjB;AAMA,sBAAO;AAAK,IAAA,SAAS,EAAET,OAAO,CAAC0B;AAAxB,KAA0CL,QAA1C,CAAP;AACD,CARD;;AAUAJ,MAAM,CAACf,SAAP,GAAmB;AACjBgB,EAAAA,WAAW,EAAEf,sBAAUW,IAAV,CAAeF,UADX;AAEjBZ,EAAAA,OAAO,EAAEG,sBAAUC,MAAV,CAAiBQ,UAFT;AAGjBO,EAAAA,QAAQ,EAAEhB,sBAAUQ,MAHH;AAIjBS,EAAAA,KAAK,EAAEjB,sBAAUwB;AAJA,CAAnB;;IAOaC,Y;;;;;;;;;;;;WAmBX,kBAAS;AACP,wBAUI,KAAKtB,KAVT;AAAA,UACEuB,WADF,eACEA,WADF;AAAA,UAEEC,gBAFF,eAEEA,gBAFF;AAAA,UAGEC,aAHF,eAGEA,aAHF;AAAA,UAIEC,aAJF,eAIEA,aAJF;AAAA,UAKEC,eALF,eAKEA,eALF;AAAA,UAMEb,KANF,eAMEA,KANF;AAAA,UAOEpB,OAPF,eAOEA,OAPF;AAAA,UAQEkC,aARF,eAQEA,aARF;AAAA,UASEC,QATF,eASEA,QATF;AAYA,0BACE;AAAK,QAAA,SAAS,EAAEnC,OAAO,CAACoC;AAAxB,sBACE,gCAAC,MAAD;AAAQ,QAAA,QAAQ,EAAEP,WAAlB;AAA+B,QAAA,OAAO,EAAE7B,OAAxC;AAAiD,QAAA,WAAW,EAAEkC,aAA9D;AAA6E,QAAA,KAAK,EAAEd;AAApF,QADF,eAEE;AAAK,QAAA,SAAS,EAAEpB,OAAO,CAACqC;AAAxB,SACGP,gBAAgB,iBACf;AAAM,QAAA,SAAS,EAAE9B,OAAO,CAACsC,gBAAzB;AAA2C,QAAA,OAAO,EAAEP;AAApD,sBACE,gCAAC,UAAD;AAAY,QAAA,OAAO,EAAE/B;AAArB,QADF,CAFJ,eAME,gCAAC,kBAAD;AACE,QAAA,SAAS,EAAEA,OAAO,CAACuC,UADrB;AAEE,QAAA,OAAO,EAAEP,aAFX;AAGE,QAAA,KAAK,EAAEnC,UAAU,CAAC2C,CAAX,CAAa,aAAb,EAA4B;AAAEC,UAAAA,GAAG,EAAEN;AAAP,SAA5B;AAHT,QANF,eAWE,gCAAC,kBAAD;AACE,QAAA,SAAS,EAAEnC,OAAO,CAACuC,UADrB;AAEE,QAAA,OAAO,EAAEN,eAFX;AAGE,QAAA,KAAK,EAAEpC,UAAU,CAAC2C,CAAX,CAAa,qBAAb,EAAoC;AAAEC,UAAAA,GAAG,EAAEN;AAAP,SAApC;AAHT,QAXF,CAFF,CADF;AAsBD;;;EAtD+BO,kBAAMC,S;;;iCAA3Bf,Y,kBACW;AACpBE,EAAAA,gBAAgB,EAAE,KADE;AAEpBD,EAAAA,WAAW,EAAED,YAAY,CAACgB,YAFN;AAGpBxB,EAAAA,KAAK,EAAE,CAAC,IAAD,EAAO,KAAP,EAAc,KAAd,EAAqB,KAArB,EAA4B,KAA5B,EAAmC,KAAnC,EAA0C,KAA1C,EAAiD,KAAjD,EAAwD,KAAxD;AAHa,C;iCADXQ,Y,eAOQ;AACjB5B,EAAAA,OAAO,EAAEG,sBAAUC,MAAV,CAAiBQ,UADT;AAEjBiB,EAAAA,WAAW,EAAE1B,sBAAUQ,MAFN;AAGjBmB,EAAAA,gBAAgB,EAAE3B,sBAAUU,IAHX;AAIjBkB,EAAAA,aAAa,EAAE5B,sBAAUW,IAAV,CAAeF,UAJb;AAKjBsB,EAAAA,aAAa,EAAE/B,sBAAUW,IAAV,CAAeF,UALb;AAMjBoB,EAAAA,aAAa,EAAE7B,sBAAUW,IAAV,CAAeF,UANb;AAOjBqB,EAAAA,eAAe,EAAE9B,sBAAUW,IAAV,CAAeF,UAPf;AAQjBQ,EAAAA,KAAK,EAAEjB,sBAAUwB,KARA;AASjBQ,EAAAA,QAAQ,EAAEhC,sBAAUQ;AATH,C;;eAkDN,0BAAYK,kBAAZ,EAAoBY,YAApB,C;;;AAEfA,YAAY,CAACgB,YAAb,GAA4B,IAA5B","sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport styles from './styles';\nimport PropTypes from 'prop-types';\nimport Button from './button';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nconst DeleteIcon = ({ classes }) => {\n return (\n <svg\n className={classes.deleteIcon}\n fill=\"#000000\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nDeleteIcon.propTypes = {\n classes: PropTypes.object,\n};\n\nconst RawPoint = (props) => {\n const { iconKey, active, classes, onClick } = props;\n const names = classNames(classes[iconKey], { active });\n return (\n <span role=\"presentation\" key={iconKey} onClick={onClick}>\n <a className={names}>&nbsp;</a>\n </span>\n );\n};\n\nRawPoint.propTypes = {\n iconKey: PropTypes.string.isRequired,\n active: PropTypes.bool,\n classes: PropTypes.object,\n onClick: PropTypes.func,\n};\n\nexport const Point = injectSheet(styles)(RawPoint);\n\nconst Points = ({ selectPoint, classes, selected, icons }) => {\n const iconTags = icons.map((key) => {\n let active = key === selected;\n let onClick = active ? () => {} : selectPoint.bind(null, key);\n return <Point key={key.toLowerCase()} iconKey={key.toLowerCase()} active={active} onClick={onClick} />; //icon(key, active);\n });\n\n return <div className={classes.elementSelector}>{iconTags}</div>;\n};\n\nPoints.propTypes = {\n selectPoint: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n selected: PropTypes.string,\n icons: PropTypes.array,\n};\n\nexport class PointChooser extends React.Component {\n static defaultProps = {\n showDeleteButton: false,\n elementType: PointChooser.DEFAULT_TYPE,\n icons: ['pf', 'lff', 'lef', 'lfe', 'lee', 'rfn', 'rfp', 'ren', 'rep'],\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n elementType: PropTypes.string,\n showDeleteButton: PropTypes.bool,\n onDeleteClick: PropTypes.func.isRequired,\n onElementType: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n icons: PropTypes.array,\n language: PropTypes.string,\n };\n\n render() {\n const {\n elementType,\n showDeleteButton,\n onDeleteClick,\n onUndoElement,\n onClearElements,\n icons,\n classes,\n onElementType,\n language,\n } = this.props;\n\n return (\n <div className={classes.pointChooser}>\n <Points selected={elementType} classes={classes} selectPoint={onElementType} icons={icons} />\n <div className={classes.controls}>\n {showDeleteButton && (\n <span className={classes.deleteIconHolder} onClick={onDeleteClick}>\n <DeleteIcon classes={classes} />\n </span>\n )}\n <Button\n className={classes.buttonText}\n onClick={onUndoElement}\n label={translator.t('common:undo', { lng: language })}\n />\n <Button\n className={classes.buttonText}\n onClick={onClearElements}\n label={translator.t('numberLine.clearAll', { lng: language })}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(PointChooser);\n\nPointChooser.DEFAULT_TYPE = 'pf';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/number-line/point-chooser/index.jsx"],"names":["translator","Translator","DeleteIcon","classes","deleteIcon","propTypes","PropTypes","object","RawPoint","props","iconKey","active","onClick","names","string","isRequired","bool","func","Point","styles","Points","selectPoint","selected","icons","iconTags","map","key","bind","toLowerCase","elementSelector","array","PointChooser","elementType","showDeleteButton","onDeleteClick","onUndoElement","onClearElements","onElementType","language","pointChooser","controls","deleteIconHolder","buttonText","t","lng","React","Component","DEFAULT_TYPE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport styles from './styles';\nimport PropTypes from 'prop-types';\nimport Button from './button';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst DeleteIcon = ({ classes }) => {\n return (\n <svg\n className={classes.deleteIcon}\n fill=\"#000000\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nDeleteIcon.propTypes = {\n classes: PropTypes.object,\n};\n\nconst RawPoint = (props) => {\n const { iconKey, active, classes, onClick } = props;\n const names = classNames(classes[iconKey], { active });\n return (\n <span role=\"presentation\" key={iconKey} onClick={onClick}>\n <a className={names}>&nbsp;</a>\n </span>\n );\n};\n\nRawPoint.propTypes = {\n iconKey: PropTypes.string.isRequired,\n active: PropTypes.bool,\n classes: PropTypes.object,\n onClick: PropTypes.func,\n};\n\nexport const Point = injectSheet(styles)(RawPoint);\n\nconst Points = ({ selectPoint, classes, selected, icons }) => {\n const iconTags = icons.map((key) => {\n let active = key === selected;\n let onClick = active ? () => {} : selectPoint.bind(null, key);\n return <Point key={key.toLowerCase()} iconKey={key.toLowerCase()} active={active} onClick={onClick} />; //icon(key, active);\n });\n\n return <div className={classes.elementSelector}>{iconTags}</div>;\n};\n\nPoints.propTypes = {\n selectPoint: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n selected: PropTypes.string,\n icons: PropTypes.array,\n};\n\nexport class PointChooser extends React.Component {\n static defaultProps = {\n showDeleteButton: false,\n elementType: PointChooser.DEFAULT_TYPE,\n icons: ['pf', 'lff', 'lef', 'lfe', 'lee', 'rfn', 'rfp', 'ren', 'rep'],\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n elementType: PropTypes.string,\n showDeleteButton: PropTypes.bool,\n onDeleteClick: PropTypes.func.isRequired,\n onElementType: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n icons: PropTypes.array,\n language: PropTypes.string,\n };\n\n render() {\n const {\n elementType,\n showDeleteButton,\n onDeleteClick,\n onUndoElement,\n onClearElements,\n icons,\n classes,\n onElementType,\n language,\n } = this.props;\n\n return (\n <div className={classes.pointChooser}>\n <Points selected={elementType} classes={classes} selectPoint={onElementType} icons={icons} />\n <div className={classes.controls}>\n {showDeleteButton && (\n <span className={classes.deleteIconHolder} onClick={onDeleteClick}>\n <DeleteIcon classes={classes} />\n </span>\n )}\n <Button\n className={classes.buttonText}\n onClick={onUndoElement}\n label={translator.t('common:undo', { lng: language })}\n />\n <Button\n className={classes.buttonText}\n onClick={onClearElements}\n label={translator.t('numberLine.clearAll', { lng: language })}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(PointChooser);\n\nPointChooser.DEFAULT_TYPE = 'pf';\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/number-line",
3
- "version": "9.7.1",
3
+ "version": "9.7.2-beta.1",
4
4
  "repository": "pie-framework/pie-elements",
5
5
  "description": "",
6
6
  "publishConfig": {
@@ -8,7 +8,11 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
- "@pie-lib/pie-toolbox": "2.22.1",
11
+ "@pie-lib/correct-answer-toggle": "^2.14.1",
12
+ "@pie-lib/icons": "^2.13.1",
13
+ "@pie-lib/math-rendering": "^3.11.1",
14
+ "@pie-lib/render-ui": "^4.24.1",
15
+ "@pie-lib/translator": "^2.12.1",
12
16
  "classnames": "^2.2.5",
13
17
  "d3-scale": "^3.2.1",
14
18
  "d3-selection": "^1.4.1",
@@ -23,7 +27,7 @@
23
27
  },
24
28
  "author": "pie framework developers",
25
29
  "license": "ISC",
26
- "gitHead": "c48e5fb0f6e2f1509b525936981909c38cdc6f4e",
30
+ "gitHead": "0e14ff981bcdc8a89a0e58484026496701bfdbc3",
27
31
  "scripts": {
28
32
  "postpublish": "../../scripts/postpublish"
29
33
  },
package/LICENSE.md DELETED
@@ -1,5 +0,0 @@
1
- Copyright 2019 CoreSpring Inc
2
-
3
- Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
4
-
5
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.