@pie-element/number-line 5.10.0 → 5.10.1-beta.587

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 (73) hide show
  1. package/CHANGELOG.md +504 -0
  2. package/configure/CHANGELOG.md +429 -0
  3. package/configure/lib/arrows.js +3 -3
  4. package/configure/lib/arrows.js.map +1 -1
  5. package/configure/lib/card-bar.js +10 -3
  6. package/configure/lib/card-bar.js.map +1 -1
  7. package/configure/lib/defaults.js +21 -2
  8. package/configure/lib/defaults.js.map +1 -1
  9. package/configure/lib/domain.js +3 -3
  10. package/configure/lib/domain.js.map +1 -1
  11. package/configure/lib/index.js +61 -8
  12. package/configure/lib/index.js.map +1 -1
  13. package/configure/lib/main.js +212 -92
  14. package/configure/lib/main.js.map +1 -1
  15. package/configure/lib/number-text-field.js +4 -4
  16. package/configure/lib/number-text-field.js.map +1 -1
  17. package/configure/lib/point-config.js +7 -4
  18. package/configure/lib/point-config.js.map +1 -1
  19. package/configure/lib/size.js +2 -2
  20. package/configure/lib/size.js.map +1 -1
  21. package/configure/lib/ticks.js +8 -4
  22. package/configure/lib/ticks.js.map +1 -1
  23. package/configure/lib/utils.js +14 -0
  24. package/configure/lib/utils.js.map +1 -0
  25. package/configure/package.json +4 -4
  26. package/controller/CHANGELOG.md +90 -0
  27. package/controller/lib/defaults.js +36 -23
  28. package/controller/lib/defaults.js.map +1 -1
  29. package/controller/lib/index.js +179 -64
  30. package/controller/lib/index.js.map +1 -1
  31. package/controller/package.json +3 -3
  32. package/docs/config-schema.json +16 -0
  33. package/docs/config-schema.json.md +12 -0
  34. package/docs/demo/config.js +2 -2
  35. package/docs/demo/generate.js +22 -26
  36. package/docs/demo/index.html +1 -1
  37. package/docs/pie-schema.json +29 -13
  38. package/docs/pie-schema.json.md +23 -8
  39. package/lib/data-converter.js +1 -1
  40. package/lib/data-converter.js.map +1 -1
  41. package/lib/draggable/index.js +1 -1
  42. package/lib/draggable/index.js.map +1 -1
  43. package/lib/index.js +16 -5
  44. package/lib/index.js.map +1 -1
  45. package/lib/number-line/colors.js +1 -1
  46. package/lib/number-line/feedback.js.map +1 -1
  47. package/lib/number-line/graph/arrow.js.map +1 -1
  48. package/lib/number-line/graph/elements/base.js.map +1 -1
  49. package/lib/number-line/graph/elements/builder.js.map +1 -1
  50. package/lib/number-line/graph/elements/line.js +3 -3
  51. package/lib/number-line/graph/elements/line.js.map +1 -1
  52. package/lib/number-line/graph/elements/point.js +12 -4
  53. package/lib/number-line/graph/elements/point.js.map +1 -1
  54. package/lib/number-line/graph/elements/ray.js +12 -5
  55. package/lib/number-line/graph/elements/ray.js.map +1 -1
  56. package/lib/number-line/graph/index.js +6 -4
  57. package/lib/number-line/graph/index.js.map +1 -1
  58. package/lib/number-line/graph/line.js.map +1 -1
  59. package/lib/number-line/graph/stacks.js +1 -1
  60. package/lib/number-line/graph/stacks.js.map +1 -1
  61. package/lib/number-line/graph/tick-utils.js +14 -10
  62. package/lib/number-line/graph/tick-utils.js.map +1 -1
  63. package/lib/number-line/graph/ticks.js +58 -14
  64. package/lib/number-line/graph/ticks.js.map +1 -1
  65. package/lib/number-line/index.js +68 -45
  66. package/lib/number-line/index.js.map +1 -1
  67. package/lib/number-line/point-chooser/button.js.map +1 -1
  68. package/lib/number-line/point-chooser/index.js +1 -1
  69. package/lib/number-line/point-chooser/index.js.map +1 -1
  70. package/lib/number-line/point-chooser/styles.js +1 -1
  71. package/lib/number-line/point-chooser/styles.js.map +1 -1
  72. package/lib/number-line/transitions/fade.js.map +1 -1
  73. package/package.json +9 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/ticks.jsx"],"names":["style","text","userSelect","textAlign","fill","color","primary","line","stroke","TickValidator","PropTypes","shape","major","props","propName","minor","Error","componentName","isRequired","Tick","getBBox","width","setAttribute","x","y","type","classes","xScale","xText","Number","toFixed","labelTick","height","React","Component","object","number","bool","func","string","Ticks","domain","ticks","context","tickData","map","min","max"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { buildTickData, isMultiple } from './tick-utils';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/render-ui';\n\nconst style = {\n text: {\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary()\n },\n line: {\n stroke: color.primary()\n }\n};\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {\n let major = props[propName];\n let minor = props.minor;\n\n if (!isMultiple(major, minor)) {\n return new Error(`Invalid prop major. It must be a multiple of ${minor}`);\n }\n },\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(\n `Invalid prop ${propName} must be > 0. ${componentName}`\n );\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 xScale: PropTypes.func,\n type: PropTypes.string\n };\n\n static defaultProps = {\n major: false\n };\n\n componentDidMount() {\n //center align the tick text\n if (this.text) {\n let { width } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, classes, xScale } = this.props;\n\n let xText = Number(x.toFixed(2));\n const labelTick = type === 'major';\n let height = labelTick ? 20 : 10;\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <line\n className={classes.line}\n y1={(height / 2) * -1}\n y2={height / 2}\n x1=\"0.5\"\n x2=\"0.5\"\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 >\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 ticks: TickValidator,\n y: PropTypes.number.isRequired\n };\n\n render() {\n let { domain, ticks, y, classes } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, ticks);\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick\n classes={classes}\n x={x}\n y={y}\n type={type}\n xScale={xScale}\n key={`${x}-${type}`}\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","Error","componentName","isRequired","Tick","wasRendered","fraction","getBBox","width","setAttribute","forceUpdate","x","y","type","classes","xScale","displayFraction","n","d","labelTick","height","textWidth","textHeight","textX","textY","xText","Number","toFixed","s","React","Component","object","number","bool","func","string","Ticks","domain","ticks","context","tickData","map","min","max"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { buildTickData, isMultiple } from './tick-utils';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/render-ui';\n\nconst style = {\n text: {\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary(),\n },\n line: {\n stroke: color.primary(),\n },\n};\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {\n let major = props[propName];\n let minor = props.minor;\n\n if (!isMultiple(major, minor)) {\n return new Error(`Invalid prop major. It must be a multiple of ${minor}`);\n }\n },\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);\n }\n },\n}).isRequired;\n\nexport class Tick extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n y: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n major: PropTypes.bool,\n fraction: PropTypes.bool,\n xScale: PropTypes.func,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n major: false,\n };\n\n constructor(props) {\n super(props);\n this.wasRendered = false;\n }\n\n componentDidMount() {\n //center align the tick text\n if (this.text) {\n const { fraction } = this.props;\n let { width } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n\n if (fraction && !this.wasRendered) {\n // used for rendering the line fraction\n this.wasRendered = true;\n this.forceUpdate();\n }\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, classes, xScale, fraction } = this.props;\n const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;\n const labelTick = type === 'major';\n const height = labelTick ? 20 : 10;\n const {\n width: textWidth = 0,\n height: textHeight = 0,\n x: textX = 0,\n y: textY = 0,\n } = (this.text && this.text.getBBox()) || {};\n\n const xText = !fraction ? (\n Number(x.toFixed(2))\n ) : !displayFraction ? (\n x.n * x.s\n ) : (\n <>\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 </>\n );\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <line className={classes.line} y1={(height / 2) * -1} y2={height / 2} x1=\"0.5\" x2=\"0.5\" />\n\n {displayFraction && (\n <line\n className={classes.line}\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n )}\n\n {labelTick && (\n <text\n ref={(text) => (this.text = text)}\n className={classes.text}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </text>\n )}\n </g>\n );\n }\n}\n\nexport class Ticks extends React.Component {\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n fraction: PropTypes.bool,\n ticks: TickValidator,\n y: PropTypes.number.isRequired,\n };\n\n render() {\n let { domain, ticks, y, classes, fraction } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, ticks, { fraction });\n\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick classes={classes} fraction={fraction} x={x} y={y} type={type} xScale={xScale} key={`${x}-${type}`} />\n );\n })}\n </g>\n );\n }\n}\n\nexport default injectSheet(style)(Ticks);\n"],"file":"ticks.js"}
@@ -53,9 +53,11 @@ var _isArray = _interopRequireDefault(require("lodash/isArray"));
53
53
 
54
54
  var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
55
55
 
56
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
57
+
56
58
  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); }; }
57
59
 
58
- 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; } }
60
+ 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; } }
59
61
 
60
62
  var styles = {
61
63
  mainContainer: {
@@ -68,7 +70,8 @@ var styles = {
68
70
  userSelect: 'none'
69
71
  },
70
72
  numberLine: {
71
- padding: '10px'
73
+ padding: '10px',
74
+ boxSizing: 'unset'
72
75
  },
73
76
  black_on_rose: {
74
77
  backgroundColor: 'mistyrose'
@@ -156,11 +159,17 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
156
159
 
157
160
  if (elementData) {
158
161
  var answers = this.state.answers;
159
- answers.push(elementData);
160
- this.setState({
161
- answers: answers
162
+ var contains = answers.some(function (element) {
163
+ return (0, _isEqual["default"])(element, elementData);
162
164
  });
163
- this.props.onAddElement(elementData);
165
+
166
+ if (!contains) {
167
+ answers.push(elementData);
168
+ this.setState({
169
+ answers: answers
170
+ });
171
+ this.props.onAddElement(elementData);
172
+ }
164
173
  }
165
174
  }
166
175
  }, {
@@ -175,10 +184,13 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
175
184
  key: "UNSAFE_componentWillReceiveProps",
176
185
  value: function UNSAFE_componentWillReceiveProps(nextProps) {
177
186
  var answer = nextProps.answer;
178
- this.setState({
179
- showCorrectAnswer: false,
180
- answers: answer
181
- });
187
+
188
+ if (!(0, _isEqual["default"])(this.state.answers, answer)) {
189
+ this.setState({
190
+ showCorrectAnswer: false,
191
+ answers: answer
192
+ });
193
+ }
182
194
  }
183
195
  }, {
184
196
  key: "deselectElements",
@@ -225,44 +237,59 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
225
237
 
226
238
  var _this$props2 = this.props,
227
239
  model = _this$props2.model,
228
- classes = _this$props2.classes;
240
+ classes = _this$props2.classes,
241
+ onDeleteElements = _this$props2.onDeleteElements,
242
+ onMoveElement = _this$props2.onMoveElement;
229
243
  var _this$state = this.state,
230
244
  showCorrectAnswer = _this$state.showCorrectAnswer,
231
- answers = _this$state.answers;
245
+ answers = _this$state.answers,
246
+ selectedElements = _this$state.selectedElements,
247
+ showMaxPointsWarning = _this$state.showMaxPointsWarning,
248
+ elementType = _this$state.elementType;
232
249
  var _model$corrected = model.corrected,
233
250
  corrected = _model$corrected === void 0 ? {
234
251
  correct: [],
235
252
  incorrect: []
236
253
  } : _model$corrected,
237
- disabled = model.disabled;
254
+ disabled = model.disabled,
255
+ graph = model.graph,
256
+ correctResponse = model.correctResponse,
257
+ prompt = model.prompt,
258
+ emptyAnswer = model.emptyAnswer,
259
+ feedback = model.feedback,
260
+ colorContrast = model.colorContrast;
238
261
  var addElement = this.addElement.bind(this);
239
- var elementsSelected = !disabled && this.state.selectedElements && this.state.selectedElements.length > 0;
262
+ var elementsSelected = !disabled && selectedElements && selectedElements.length > 0;
263
+ var ticks = graph.ticks,
264
+ domain = graph.domain,
265
+ arrows = graph.arrows,
266
+ maxNumberOfPoints = graph.maxNumberOfPoints,
267
+ height = graph.height,
268
+ availableTypes = graph.availableTypes,
269
+ title = graph.title,
270
+ fraction = graph.fraction;
240
271
  var width = this.getSize('width', 400, 1600, 600);
241
- var height = this.getSize('height', 300, 800, 400);
242
- var _model$graph = model.graph,
243
- ticks = _model$graph.ticks,
244
- domain = _model$graph.domain,
245
- arrows = _model$graph.arrows;
246
272
  var graphProps = {
247
273
  disabled: disabled,
248
274
  domain: domain,
249
275
  ticks: ticks,
250
276
  width: width,
251
- height: height,
252
- arrows: arrows
277
+ height: height || 100,
278
+ arrows: arrows,
279
+ fraction: fraction
253
280
  };
254
281
 
255
282
  var getAnswerElements = function getAnswerElements() {
256
283
  return (answers || []).map(function (e, index) {
257
284
  var out = (0, _cloneDeep["default"])(e);
258
- out.selected = _this3.state.selectedElements.indexOf(index) !== -1;
285
+ out.selected = selectedElements.indexOf(index) !== -1;
259
286
  out.correct = corrected.correct.includes(index) ? true : corrected.incorrect.includes(index) ? false : undefined;
260
287
  return out;
261
288
  });
262
289
  };
263
290
 
264
291
  var getCorrectAnswerElements = function getCorrectAnswerElements() {
265
- return (model.correctResponse || []).map(function (r) {
292
+ return (correctResponse || []).map(function (r) {
266
293
  r.correct = true;
267
294
  return r;
268
295
  });
@@ -271,14 +298,11 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
271
298
  var elements = showCorrectAnswer ? getCorrectAnswerElements() : getAnswerElements();
272
299
 
273
300
  var maxPointsMessage = function maxPointsMessage() {
274
- return "You can only add ".concat(model.graph.maxNumberOfPoints, " element").concat(model.graph.maxNumberOfPoints == 1 ? '' : 's');
301
+ return "You can only add ".concat(maxNumberOfPoints, " element").concat(maxNumberOfPoints == 1 ? '' : 's');
275
302
  };
276
303
 
277
304
  var deleteElements = function deleteElements() {
278
- var selectedElements = _this3.state.selectedElements;
279
-
280
- _this3.props.onDeleteElements(selectedElements);
281
-
305
+ onDeleteElements(selectedElements);
282
306
  answers = answers.filter(function (v, index) {
283
307
  return !selectedElements.some(function (d) {
284
308
  return d === index;
@@ -292,9 +316,9 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
292
316
  };
293
317
 
294
318
  var getIcons = function getIcons() {
295
- if (model.graph.availableTypes) {
296
- return Object.keys(model.graph.availableTypes).filter(function (k) {
297
- return model.graph.availableTypes[k];
319
+ if (availableTypes) {
320
+ return Object.keys(availableTypes).filter(function (k) {
321
+ return availableTypes[k];
298
322
  }).map(function (k) {
299
323
  return k.toLowerCase();
300
324
  });
@@ -308,28 +332,27 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
308
332
  };
309
333
 
310
334
  var adjustedWidth = graphProps.width - 20;
311
- var names = (0, _classnames["default"])(classes.numberLine, classes.mainContainer, classes[model.colorContrast]);
335
+ var names = (0, _classnames["default"])(classes.numberLine, classes.mainContainer, classes[colorContrast]);
312
336
  return /*#__PURE__*/_react["default"].createElement("div", {
313
337
  className: names,
314
338
  style: {
315
339
  width: width
316
340
  }
317
- }, model.prompt && /*#__PURE__*/_react["default"].createElement("div", {
318
- className: classes.prompt,
319
- dangerouslySetInnerHTML: {
320
- __html: model.prompt
321
- }
322
- }), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
341
+ }, prompt && /*#__PURE__*/_react["default"].createElement("div", {
342
+ className: classes.prompt
343
+ }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
344
+ prompt: prompt
345
+ })), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
323
346
  style: {
324
347
  width: adjustedWidth
325
348
  }
326
349
  }, /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
327
- show: (0, _isArray["default"])(model.correctResponse) && model.correctResponse.length && !model.emptyAnswer,
350
+ show: (0, _isArray["default"])(correctResponse) && correctResponse.length && !emptyAnswer,
328
351
  toggled: showCorrectAnswer,
329
352
  onToggle: onShowCorrectAnswer,
330
353
  initialValue: false
331
354
  })), !disabled && /*#__PURE__*/_react["default"].createElement(_pointChooser["default"], {
332
- elementType: this.state.elementType,
355
+ elementType: elementType,
333
356
  showDeleteButton: elementsSelected,
334
357
  onDeleteClick: deleteElements,
335
358
  onElementType: this.elementTypeSelected.bind(this),
@@ -339,20 +362,20 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
339
362
  }), /*#__PURE__*/_react["default"].createElement(_graph["default"], (0, _extends2["default"])({}, graphProps, {
340
363
  elements: elements,
341
364
  onAddElement: addElement,
342
- onMoveElement: this.props.onMoveElement,
365
+ onMoveElement: onMoveElement,
343
366
  onToggleElement: this.toggleElement.bind(this),
344
367
  onDeselectElements: this.deselectElements.bind(this),
345
368
  debug: false
346
- })), model.graph.title && /*#__PURE__*/_react["default"].createElement("div", {
369
+ })), title && /*#__PURE__*/_react["default"].createElement("div", {
347
370
  className: classes.graphTitle,
348
371
  dangerouslySetInnerHTML: {
349
- __html: model.graph.title
372
+ __html: title
350
373
  }
351
- }), this.state.showMaxPointsWarning && /*#__PURE__*/_react["default"].createElement(_feedback["default"], {
374
+ }), showMaxPointsWarning && /*#__PURE__*/_react["default"].createElement(_feedback["default"], {
352
375
  type: "info",
353
376
  width: adjustedWidth,
354
377
  message: maxPointsMessage()
355
- }), model.feedback && /*#__PURE__*/_react["default"].createElement(_feedback["default"], (0, _extends2["default"])({}, model.feedback, {
378
+ }), feedback && !showCorrectAnswer && /*#__PURE__*/_react["default"].createElement(_feedback["default"], (0, _extends2["default"])({}, feedback, {
356
379
  width: adjustedWidth
357
380
  }))));
358
381
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/number-line/index.jsx"],"names":["styles","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","padding","black_on_rose","white_on_black","prompt","verticalAlign","marginBottom","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","elementData","minor","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","corrected","correct","incorrect","disabled","addElement","bind","elementsSelected","width","getSize","height","arrows","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","correctResponse","r","elements","maxPointsMessage","deleteElements","onDeleteElements","v","some","d","getIcons","availableTypes","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","names","colorContrast","__html","emptyAnswer","elementTypeSelected","clearAll","undo","onMoveElement","toggleElement","deselectElements","title","feedback","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport React from 'react';\nimport Toggle from '@pie-lib/correct-answer-toggle';\nimport { buildElementModel } from './graph/elements/builder';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { color } from '@pie-lib/render-ui';\nimport injectSheet from 'react-jss';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\n\nexport { Graph };\n\nconst styles = {\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none'\n },\n numberLine: {\n padding: '10px'\n },\n black_on_rose: {\n backgroundColor: 'mistyrose'\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black'\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px'\n }\n};\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType\n ? initialType.toLowerCase()\n : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter(e => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain } = this.props.model.graph;\n\n let elementData = buildElementModel(\n x,\n this.state.elementType,\n domain,\n ticks.minor\n );\n\n if (elementData) {\n const { answers } = this.state;\n answers.push(elementData);\n\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints }\n }\n } = this.props;\n\n return (\n isNumber(maxNumberOfPoints) &&\n maxNumberOfPoints > 0 &&\n (answer || []).length >= maxNumberOfPoints\n );\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n this.setState({ showCorrectAnswer: false, answers: answer });\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 } = this.props;\n let { showCorrectAnswer, answers } = this.state;\n let { corrected = { correct: [], incorrect: [] }, disabled } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected =\n !disabled &&\n this.state.selectedElements &&\n this.state.selectedElements.length > 0;\n const width = this.getSize('width', 400, 1600, 600);\n const height = this.getSize('height', 300, 800, 400);\n\n const { ticks, domain, arrows } = model.graph;\n\n let graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height,\n arrows\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = this.state.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 (model.correctResponse || []).map(r => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer\n ? getCorrectAnswerElements()\n : getAnswerElements();\n\n let maxPointsMessage = () =>\n `You can only add ${model.graph.maxNumberOfPoints} element${model.graph.maxNumberOfPoints == 1 ? '' : 's'}`;\n\n\n let deleteElements = () => {\n const { selectedElements } = this.state;\n this.props.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 (model.graph.availableTypes) {\n return Object.keys(model.graph.availableTypes)\n .filter(k => model.graph.availableTypes[k])\n .map(k => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = show => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const names = classNames(classes.numberLine, classes.mainContainer, classes[model.colorContrast]);\n\n return (\n <div className={names} style={{ width }}>\n {model.prompt && (\n <div\n className={classes.prompt}\n dangerouslySetInnerHTML={{ __html: model.prompt }}\n />\n )}\n <div>\n <div style={{ width: adjustedWidth }}>\n <Toggle\n show={isArray(model.correctResponse) && model.correctResponse.length && !model.emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n />\n </div>\n {!disabled && (\n <PointChooser\n elementType={this.state.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 />\n )}\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={this.props.onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {model.graph.title && (\n <div\n className={classes.graphTitle}\n dangerouslySetInnerHTML={{ __html: model.graph.title }}\n />\n )}\n {this.state.showMaxPointsWarning && (\n <Feedback\n type=\"info\"\n width={adjustedWidth}\n message={maxPointsMessage()}\n />\n )}\n {model.feedback && (\n <Feedback {...model.feedback} width={adjustedWidth} />\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(NumberLine);\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/number-line/index.jsx"],"names":["styles","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","padding","boxSizing","black_on_rose","white_on_black","prompt","verticalAlign","marginBottom","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","corrected","correct","incorrect","disabled","correctResponse","emptyAnswer","feedback","colorContrast","addElement","bind","elementsSelected","arrows","height","availableTypes","title","fraction","width","getSize","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","names","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","__html","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport React from 'react';\nimport Toggle from '@pie-lib/correct-answer-toggle';\nimport { buildElementModel } from './graph/elements/builder';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { color, PreviewPrompt } from '@pie-lib/render-ui';\nimport injectSheet from 'react-jss';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\n\nexport { Graph };\n\nconst styles = {\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n padding: '10px',\n boxSizing: 'unset',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n};\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType ? initialType.toLowerCase() : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain } = this.props.model.graph;\n\n let elementData = buildElementModel(x, this.state.elementType, domain, ticks.minor);\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return isNumber(maxNumberOfPoints) && maxNumberOfPoints > 0 && (answer || []).length >= maxNumberOfPoints;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement } = this.props;\n let { showCorrectAnswer, answers, selectedElements, showMaxPointsWarning, elementType } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected = !disabled && selectedElements && selectedElements.length > 0;\n const { ticks, domain, arrows, maxNumberOfPoints, height, availableTypes, title, fraction } = graph;\n const width = this.getSize('width', 400, 1600, 600);\n const graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: height || 100,\n arrows,\n fraction,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer ? getCorrectAnswerElements() : getAnswerElements();\n\n let maxPointsMessage = () => `You can only add ${maxNumberOfPoints} element${maxNumberOfPoints == 1 ? '' : 's'}`;\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const names = classNames(classes.numberLine, classes.mainContainer, classes[colorContrast]);\n\n return (\n <div className={names} style={{ width }}>\n {prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n <div>\n <div style={{ width: adjustedWidth }}>\n <Toggle\n show={isArray(correctResponse) && correctResponse.length && !emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n />\n </div>\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 />\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 {showMaxPointsWarning && <Feedback type=\"info\" width={adjustedWidth} message={maxPointsMessage()} />}\n {feedback && !showCorrectAnswer && <Feedback {...feedback} width={adjustedWidth} />}\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(NumberLine);\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/point-chooser/button.jsx"],"names":["RawButton","classes","className","label","onClick","disabled","title","addButton","propTypes","PropTypes","object","isRequired","string","bool","oneOfType","func","defaultProps","styles","fontSize","marginLeft","minWidth","height","width","ButtonStyled"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,SAAZ,QAAYA,SAAZ;AAAA,MAAuBC,KAAvB,QAAuBA,KAAvB;AAAA,MAA8BC,OAA9B,QAA8BA,OAA9B;AAAA,MAAuCC,QAAvC,QAAuCA,QAAvC;AAAA,MAAiDC,KAAjD,QAAiDA,KAAjD;AAAA,sBAChB,gCAAC,kBAAD;AACE,IAAA,KAAK,EAAEA,KADT;AAEE,IAAA,OAAO,EAAEF,OAFX;AAGE,IAAA,QAAQ,EAAEC,QAHZ;AAIE,IAAA,SAAS,EAAE,4BAAWJ,OAAO,CAACM,SAAnB,EAA8BL,SAA9B,CAJb;AAKE,IAAA,IAAI,EAAC,OALP;AAME,IAAA,OAAO,EAAC,WANV;AAOE,IAAA,KAAK,EAAC;AAPR,KASGC,KATH,CADgB;AAAA,CAAlB;;AAcAH,SAAS,CAACQ,SAAV,GAAsB;AACpBP,EAAAA,OAAO,EAAEQ,sBAAUC,MAAV,CAAiBC,UADN;AAEpBT,EAAAA,SAAS,EAAEO,sBAAUG,MAFD;AAGpBP,EAAAA,QAAQ,EAAEI,sBAAUI,IAHA;AAIpBV,EAAAA,KAAK,EAAEM,sBAAUK,SAAV,CAAoB,CACzBL,sBAAUG,MADe,EAEzBH,sBAAUC,MAFe,CAApB,CAJa;AAQpBN,EAAAA,OAAO,EAAEK,sBAAUM,IARC;AASpBT,EAAAA,KAAK,EAAEG,sBAAUG;AATG,CAAtB;AAYAZ,SAAS,CAACgB,YAAV,GAAyB;AACvBd,EAAAA,SAAS,EAAE,EADY;AAEvBG,EAAAA,QAAQ,EAAE,KAFa;AAGvBF,EAAAA,KAAK,EAAE,KAHgB;AAIvBC,EAAAA,OAAO,EAAE,mBAAM,CAAE,CAJM;AAKvBE,EAAAA,KAAK,EAAE;AALgB,CAAzB;;AAQA,IAAMW,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpBV,IAAAA,SAAS,EAAE;AACTW,MAAAA,QAAQ,EAAE,OADD;AAETC,MAAAA,UAAU,EAAE,CAFH;AAGTC,MAAAA,QAAQ,EAAE,EAHD;AAITC,MAAAA,MAAM,EAAE,EAJC;AAMT,gBAAU;AACR,iBAAS;AACPC,UAAAA,KAAK,EAAE,kBADA;AAEPD,UAAAA,MAAM,EAAE;AAFD;AADD;AAND;AADS,GAAP;AAAA,CAAf;;AAgBA,IAAME,YAAY,GAAG,wBAAWN,MAAX,EAAmBjB,SAAnB,CAArB;eAEeuB,Y","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\n\nconst RawButton = ({ classes, className, label, onClick, disabled, title }) => (\n <Button\n title={title}\n onClick={onClick}\n disabled={disabled}\n className={classNames(classes.addButton, className)}\n size=\"small\"\n variant=\"contained\"\n color=\"default\"\n >\n {label}\n </Button>\n);\n\nRawButton.propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n onClick: PropTypes.func,\n title: PropTypes.string\n};\n\nRawButton.defaultProps = {\n className: '',\n disabled: false,\n label: 'Add',\n onClick: () => {},\n title: ''\n};\n\nconst styles = () => ({\n addButton: {\n fontSize: '0.9em',\n marginLeft: 8,\n minWidth: 32,\n height: 32,\n\n '& span': {\n '& svg': {\n width: '1.3em !important',\n height: '1.3em !important',\n }\n }\n },\n});\n\nconst ButtonStyled = withStyles(styles)(RawButton);\n\nexport default ButtonStyled;\n"],"file":"button.js"}
1
+ {"version":3,"sources":["../../../src/number-line/point-chooser/button.jsx"],"names":["RawButton","classes","className","label","onClick","disabled","title","addButton","propTypes","PropTypes","object","isRequired","string","bool","oneOfType","func","defaultProps","styles","fontSize","marginLeft","minWidth","height","width","ButtonStyled"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,SAAZ,QAAYA,SAAZ;AAAA,MAAuBC,KAAvB,QAAuBA,KAAvB;AAAA,MAA8BC,OAA9B,QAA8BA,OAA9B;AAAA,MAAuCC,QAAvC,QAAuCA,QAAvC;AAAA,MAAiDC,KAAjD,QAAiDA,KAAjD;AAAA,sBAChB,gCAAC,kBAAD;AACE,IAAA,KAAK,EAAEA,KADT;AAEE,IAAA,OAAO,EAAEF,OAFX;AAGE,IAAA,QAAQ,EAAEC,QAHZ;AAIE,IAAA,SAAS,EAAE,4BAAWJ,OAAO,CAACM,SAAnB,EAA8BL,SAA9B,CAJb;AAKE,IAAA,IAAI,EAAC,OALP;AAME,IAAA,OAAO,EAAC,WANV;AAOE,IAAA,KAAK,EAAC;AAPR,KASGC,KATH,CADgB;AAAA,CAAlB;;AAcAH,SAAS,CAACQ,SAAV,GAAsB;AACpBP,EAAAA,OAAO,EAAEQ,sBAAUC,MAAV,CAAiBC,UADN;AAEpBT,EAAAA,SAAS,EAAEO,sBAAUG,MAFD;AAGpBP,EAAAA,QAAQ,EAAEI,sBAAUI,IAHA;AAIpBV,EAAAA,KAAK,EAAEM,sBAAUK,SAAV,CAAoB,CAACL,sBAAUG,MAAX,EAAmBH,sBAAUC,MAA7B,CAApB,CAJa;AAKpBN,EAAAA,OAAO,EAAEK,sBAAUM,IALC;AAMpBT,EAAAA,KAAK,EAAEG,sBAAUG;AANG,CAAtB;AASAZ,SAAS,CAACgB,YAAV,GAAyB;AACvBd,EAAAA,SAAS,EAAE,EADY;AAEvBG,EAAAA,QAAQ,EAAE,KAFa;AAGvBF,EAAAA,KAAK,EAAE,KAHgB;AAIvBC,EAAAA,OAAO,EAAE,mBAAM,CAAE,CAJM;AAKvBE,EAAAA,KAAK,EAAE;AALgB,CAAzB;;AAQA,IAAMW,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpBV,IAAAA,SAAS,EAAE;AACTW,MAAAA,QAAQ,EAAE,OADD;AAETC,MAAAA,UAAU,EAAE,CAFH;AAGTC,MAAAA,QAAQ,EAAE,EAHD;AAITC,MAAAA,MAAM,EAAE,EAJC;AAMT,gBAAU;AACR,iBAAS;AACPC,UAAAA,KAAK,EAAE,kBADA;AAEPD,UAAAA,MAAM,EAAE;AAFD;AADD;AAND;AADS,GAAP;AAAA,CAAf;;AAgBA,IAAME,YAAY,GAAG,wBAAWN,MAAX,EAAmBjB,SAAnB,CAArB;eAEeuB,Y","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\n\nconst RawButton = ({ classes, className, label, onClick, disabled, title }) => (\n <Button\n title={title}\n onClick={onClick}\n disabled={disabled}\n className={classNames(classes.addButton, className)}\n size=\"small\"\n variant=\"contained\"\n color=\"default\"\n >\n {label}\n </Button>\n);\n\nRawButton.propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nRawButton.defaultProps = {\n className: '',\n disabled: false,\n label: 'Add',\n onClick: () => {},\n title: '',\n};\n\nconst styles = () => ({\n addButton: {\n fontSize: '0.9em',\n marginLeft: 8,\n minWidth: 32,\n height: 32,\n\n '& span': {\n '& svg': {\n width: '1.3em !important',\n height: '1.3em !important',\n },\n },\n },\n});\n\nconst ButtonStyled = withStyles(styles)(RawButton);\n\nexport default ButtonStyled;\n"],"file":"button.js"}
@@ -33,7 +33,7 @@ var _button = _interopRequireDefault(require("./button"));
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 DeleteIcon = function DeleteIcon(_ref) {
39
39
  var classes = _ref.classes;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/point-chooser/index.jsx"],"names":["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","pointChooser","controls","deleteIconHolder","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';\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 (\n <Point\n key={key.toLowerCase()}\n iconKey={key.toLowerCase()}\n active={active}\n onClick={onClick}\n />\n ); //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 };\n\n render() {\n const {\n elementType,\n showDeleteButton,\n onDeleteClick,\n onUndoElement,\n onClearElements,\n icons,\n classes,\n onElementType\n } = this.props;\n\n return (\n <div className={classes.pointChooser}>\n <Points\n selected={elementType}\n classes={classes}\n selectPoint={onElementType}\n icons={icons}\n />\n <div className={classes.controls}>\n {showDeleteButton && (\n <span className={classes.deleteIconHolder} onClick={onDeleteClick}>\n <DeleteIcon classes={classes} />\n </span>\n )}\n <Button onClick={onUndoElement} label=\"Undo\" />\n <Button onClick={onClearElements} label=\"Clear all\" />\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":["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","pointChooser","controls","deleteIconHolder","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';\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 };\n\n render() {\n const {\n elementType,\n showDeleteButton,\n onDeleteClick,\n onUndoElement,\n onClearElements,\n icons,\n classes,\n onElementType,\n } = this.props;\n\n return (\n <div className={classes.pointChooser}>\n <Points selected={elementType} classes={classes} selectPoint={onElementType} icons={icons} />\n <div className={classes.controls}>\n {showDeleteButton && (\n <span className={classes.deleteIconHolder} onClick={onDeleteClick}>\n <DeleteIcon classes={classes} />\n </span>\n )}\n <Button onClick={onUndoElement} label=\"Undo\" />\n <Button onClick={onClearElements} label=\"Clear all\" />\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(PointChooser);\n\nPointChooser.DEFAULT_TYPE = 'pf';\n"],"file":"index.js"}
@@ -31,7 +31,7 @@ var noselect = function noselect() {
31
31
  ,
32
32
  'user-select': 'none'
33
33
  /* Non-prefixed version, currently
34
- supported by Chrome and Opera */
34
+ supported by Chrome and Opera */
35
35
 
36
36
  };
37
37
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/point-chooser/styles.js"],"names":["iconHeight","iconWidth","noselect","styleElement","index","display","width","height","position","top","cursor","background","img","backgroundPosition","textDecoration","pointChooser","backgroundColor","justifyContent","borderRadius","padding","deleteIconHolder","deleteIcon","fill","transition","opacity","elementSelector","Object","assign","controls","paddingTop","pf","lff","lef","lfe","lee","rfn","rfp","ren","rep"],"mappings":";;;;;;;;;AAGA;;AAHA,IAAMA,UAAU,GAAG,EAAnB;AACA,IAAMC,SAAS,GAAG,EAAlB;;AAIA,IAAMC,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAAO;AACtB,6BAAyB;AAAO;AADV;AAEtB,2BAAuB;AAAO;AAFR;AAGtB,0BAAsB;AAAO;AAHP;AAItB,wBAAoB;AAAO;AAJL;AAKtB,uBAAmB;AAAO;AALJ;AAMtB,mBACE;AAAO;AACX;;AARwB,GAAP;AAAA,CAAjB;;AAWA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAAAC,KAAK;AAAA,SAAK;AAC7BC,IAAAA,OAAO,EAAE,cADoB;AAE7BC,IAAAA,KAAK,EAAEL,SAFsB;AAG7BM,IAAAA,MAAM,EAAEP,UAHqB;AAI7BQ,IAAAA,QAAQ,EAAE,UAJmB;AAK7BC,IAAAA,GAAG,EAAE,KALwB;AAM7BC,IAAAA,MAAM,EAAE,SANqB;AAO7BC,IAAAA,UAAU,gBAASC,eAAT,gBAAkBR,KAAK,GAAGH,SAA1B,WAPmB;AAQ7B,gCAA4B;AAC1BY,MAAAA,kBAAkB,aAAMT,KAAK,GAAGH,SAAd,iBAA8B,IAAID,UAAlC;AADQ,KARC;AAW7B,eAAW;AACTc,MAAAA,cAAc,EAAE,MADP;AAETD,MAAAA,kBAAkB,aAAMT,KAAK,GAAGH,SAAd,iBAA8BD,UAA9B;AAFT;AAXkB,GAAL;AAAA,CAA1B;;eAiBe;AACbe,EAAAA,YAAY,EAAE;AACZC,IAAAA,eAAe,EAAE,OADL;AAEZX,IAAAA,OAAO,EAAE,MAFG;AAGZY,IAAAA,cAAc,EAAE,eAHJ;AAIZC,IAAAA,YAAY,EAAE,KAJF;AAKZC,IAAAA,OAAO,EAAE;AALG,GADD;AAQbC,EAAAA,gBAAgB,EAAE;AAChBZ,IAAAA,QAAQ,EAAE,UADM;AAEhBC,IAAAA,GAAG,EAAE,KAFW;AAGhBH,IAAAA,KAAK,EAAE;AAHS,GARL;AAabe,EAAAA,UAAU,EAAE;AACVC,IAAAA,IAAI,EAAE,OADI;AAEVZ,IAAAA,MAAM,EAAE,SAFE;AAGVa,IAAAA,UAAU,EAAE,sBAHF;AAIV,eAAW;AACTC,MAAAA,OAAO,EAAE;AADA;AAJD,GAbC;AAqBbC,EAAAA,eAAe,EAAEC,MAAM,CAACC,MAAP,CACf;AACErB,IAAAA,KAAK,EAAE,KADT;AAEEa,IAAAA,OAAO,EAAE;AAFX,GADe,EAKfjB,QAAQ,EALO,CArBJ;AA4Bb0B,EAAAA,QAAQ,EAAE;AACRvB,IAAAA,OAAO,EAAE,MADD;AAERwB,IAAAA,UAAU,EAAE;AAFJ,GA5BG;AAgCbC,EAAAA,EAAE,EAAE3B,YAAY,CAAC,CAAD,CAhCH;AAiCb4B,EAAAA,GAAG,EAAE5B,YAAY,CAAC,CAAD,CAjCJ;AAkCb6B,EAAAA,GAAG,EAAE7B,YAAY,CAAC,CAAD,CAlCJ;AAmCb8B,EAAAA,GAAG,EAAE9B,YAAY,CAAC,CAAD,CAnCJ;AAoCb+B,EAAAA,GAAG,EAAE/B,YAAY,CAAC,CAAD,CApCJ;AAqCbgC,EAAAA,GAAG,EAAEhC,YAAY,CAAC,CAAD,CArCJ;AAsCbiC,EAAAA,GAAG,EAAEjC,YAAY,CAAC,CAAD,CAtCJ;AAuCbkC,EAAAA,GAAG,EAAElC,YAAY,CAAC,CAAD,CAvCJ;AAwCbmC,EAAAA,GAAG,EAAEnC,YAAY,CAAC,CAAD;AAxCJ,C","sourcesContent":["const iconHeight = 41;\nconst iconWidth = 42;\n\nimport img from './img';\n\nconst noselect = () => ({\n '-webkit-touch-callout': 'none' /* iOS Safari */,\n '-webkit-user-select': 'none' /* Safari */,\n '-khtml-user-select': 'none' /* Konqueror HTML */,\n '-moz-user-select': 'none' /* Firefox */,\n '-ms-user-select': 'none' /* Internet Explorer/Edge */,\n 'user-select':\n 'none' /* Non-prefixed version, currently\n supported by Chrome and Opera */\n});\n\nconst styleElement = index => ({\n display: 'inline-block',\n width: iconWidth,\n height: iconHeight,\n position: 'relative',\n top: '1px',\n cursor: 'pointer',\n background: `url(${img}) -${index * iconWidth}px 0px`,\n '&.active, &.active:hover': {\n backgroundPosition: `-${index * iconWidth}px -${2 * iconHeight}px`\n },\n '&:hover': {\n textDecoration: 'none',\n backgroundPosition: `-${index * iconWidth}px -${iconHeight}px`\n }\n});\n\nexport default {\n pointChooser: {\n backgroundColor: 'white',\n display: 'flex',\n justifyContent: 'space-between',\n borderRadius: '4px',\n padding: '1px'\n },\n deleteIconHolder: {\n position: 'relative',\n top: '3px',\n width: '30px'\n },\n deleteIcon: {\n fill: 'black',\n cursor: 'pointer',\n transition: 'opacity 100ms linear',\n '&:hover': {\n opacity: '0.5'\n }\n },\n elementSelector: Object.assign(\n {\n width: '55%',\n padding: '1px'\n },\n noselect()\n ),\n controls: {\n display: 'flex',\n paddingTop: '7px'\n },\n pf: styleElement(0),\n lff: styleElement(1),\n lef: styleElement(2),\n lfe: styleElement(3),\n lee: styleElement(4),\n rfn: styleElement(5),\n rfp: styleElement(6),\n ren: styleElement(7),\n rep: styleElement(8)\n};\n"],"file":"styles.js"}
1
+ {"version":3,"sources":["../../../src/number-line/point-chooser/styles.js"],"names":["iconHeight","iconWidth","noselect","styleElement","index","display","width","height","position","top","cursor","background","img","backgroundPosition","textDecoration","pointChooser","backgroundColor","justifyContent","borderRadius","padding","deleteIconHolder","deleteIcon","fill","transition","opacity","elementSelector","Object","assign","controls","paddingTop","pf","lff","lef","lfe","lee","rfn","rfp","ren","rep"],"mappings":";;;;;;;;;AAGA;;AAHA,IAAMA,UAAU,GAAG,EAAnB;AACA,IAAMC,SAAS,GAAG,EAAlB;;AAIA,IAAMC,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAAO;AACtB,6BAAyB;AAAO;AADV;AAEtB,2BAAuB;AAAO;AAFR;AAGtB,0BAAsB;AAAO;AAHP;AAItB,wBAAoB;AAAO;AAJL;AAKtB,uBAAmB;AAAO;AALJ;AAMtB,mBAAe;AAAO;AACxB;;AAPwB,GAAP;AAAA,CAAjB;;AAUA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD;AAAA,SAAY;AAC/BC,IAAAA,OAAO,EAAE,cADsB;AAE/BC,IAAAA,KAAK,EAAEL,SAFwB;AAG/BM,IAAAA,MAAM,EAAEP,UAHuB;AAI/BQ,IAAAA,QAAQ,EAAE,UAJqB;AAK/BC,IAAAA,GAAG,EAAE,KAL0B;AAM/BC,IAAAA,MAAM,EAAE,SANuB;AAO/BC,IAAAA,UAAU,gBAASC,eAAT,gBAAkBR,KAAK,GAAGH,SAA1B,WAPqB;AAQ/B,gCAA4B;AAC1BY,MAAAA,kBAAkB,aAAMT,KAAK,GAAGH,SAAd,iBAA8B,IAAID,UAAlC;AADQ,KARG;AAW/B,eAAW;AACTc,MAAAA,cAAc,EAAE,MADP;AAETD,MAAAA,kBAAkB,aAAMT,KAAK,GAAGH,SAAd,iBAA8BD,UAA9B;AAFT;AAXoB,GAAZ;AAAA,CAArB;;eAiBe;AACbe,EAAAA,YAAY,EAAE;AACZC,IAAAA,eAAe,EAAE,OADL;AAEZX,IAAAA,OAAO,EAAE,MAFG;AAGZY,IAAAA,cAAc,EAAE,eAHJ;AAIZC,IAAAA,YAAY,EAAE,KAJF;AAKZC,IAAAA,OAAO,EAAE;AALG,GADD;AAQbC,EAAAA,gBAAgB,EAAE;AAChBZ,IAAAA,QAAQ,EAAE,UADM;AAEhBC,IAAAA,GAAG,EAAE,KAFW;AAGhBH,IAAAA,KAAK,EAAE;AAHS,GARL;AAabe,EAAAA,UAAU,EAAE;AACVC,IAAAA,IAAI,EAAE,OADI;AAEVZ,IAAAA,MAAM,EAAE,SAFE;AAGVa,IAAAA,UAAU,EAAE,sBAHF;AAIV,eAAW;AACTC,MAAAA,OAAO,EAAE;AADA;AAJD,GAbC;AAqBbC,EAAAA,eAAe,EAAEC,MAAM,CAACC,MAAP,CACf;AACErB,IAAAA,KAAK,EAAE,KADT;AAEEa,IAAAA,OAAO,EAAE;AAFX,GADe,EAKfjB,QAAQ,EALO,CArBJ;AA4Bb0B,EAAAA,QAAQ,EAAE;AACRvB,IAAAA,OAAO,EAAE,MADD;AAERwB,IAAAA,UAAU,EAAE;AAFJ,GA5BG;AAgCbC,EAAAA,EAAE,EAAE3B,YAAY,CAAC,CAAD,CAhCH;AAiCb4B,EAAAA,GAAG,EAAE5B,YAAY,CAAC,CAAD,CAjCJ;AAkCb6B,EAAAA,GAAG,EAAE7B,YAAY,CAAC,CAAD,CAlCJ;AAmCb8B,EAAAA,GAAG,EAAE9B,YAAY,CAAC,CAAD,CAnCJ;AAoCb+B,EAAAA,GAAG,EAAE/B,YAAY,CAAC,CAAD,CApCJ;AAqCbgC,EAAAA,GAAG,EAAEhC,YAAY,CAAC,CAAD,CArCJ;AAsCbiC,EAAAA,GAAG,EAAEjC,YAAY,CAAC,CAAD,CAtCJ;AAuCbkC,EAAAA,GAAG,EAAElC,YAAY,CAAC,CAAD,CAvCJ;AAwCbmC,EAAAA,GAAG,EAAEnC,YAAY,CAAC,CAAD;AAxCJ,C","sourcesContent":["const iconHeight = 41;\nconst iconWidth = 42;\n\nimport img from './img';\n\nconst noselect = () => ({\n '-webkit-touch-callout': 'none' /* iOS Safari */,\n '-webkit-user-select': 'none' /* Safari */,\n '-khtml-user-select': 'none' /* Konqueror HTML */,\n '-moz-user-select': 'none' /* Firefox */,\n '-ms-user-select': 'none' /* Internet Explorer/Edge */,\n 'user-select': 'none' /* Non-prefixed version, currently\n supported by Chrome and Opera */,\n});\n\nconst styleElement = (index) => ({\n display: 'inline-block',\n width: iconWidth,\n height: iconHeight,\n position: 'relative',\n top: '1px',\n cursor: 'pointer',\n background: `url(${img}) -${index * iconWidth}px 0px`,\n '&.active, &.active:hover': {\n backgroundPosition: `-${index * iconWidth}px -${2 * iconHeight}px`,\n },\n '&:hover': {\n textDecoration: 'none',\n backgroundPosition: `-${index * iconWidth}px -${iconHeight}px`,\n },\n});\n\nexport default {\n pointChooser: {\n backgroundColor: 'white',\n display: 'flex',\n justifyContent: 'space-between',\n borderRadius: '4px',\n padding: '1px',\n },\n deleteIconHolder: {\n position: 'relative',\n top: '3px',\n width: '30px',\n },\n deleteIcon: {\n fill: 'black',\n cursor: 'pointer',\n transition: 'opacity 100ms linear',\n '&:hover': {\n opacity: '0.5',\n },\n },\n elementSelector: Object.assign(\n {\n width: '55%',\n padding: '1px',\n },\n noselect(),\n ),\n controls: {\n display: 'flex',\n paddingTop: '7px',\n },\n pf: styleElement(0),\n lff: styleElement(1),\n lef: styleElement(2),\n lfe: styleElement(3),\n lee: styleElement(4),\n rfn: styleElement(5),\n rfp: styleElement(6),\n ren: styleElement(7),\n rep: styleElement(8),\n};\n"],"file":"styles.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/transitions/fade.jsx"],"names":["duration","fade","appear","opacity","appearActive","transition","enter","enterActive","exit","exitActive","FadeTransition","props","classes","propTypes","PropTypes","object","isRequired","Fade"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,QAAQ,GAAG,GAAjB;AACA,IAAMC,IAAI,GAAG;AACXC,EAAAA,MAAM,EAAE;AACNC,IAAAA,OAAO,EAAE;AADH,GADG;AAIXC,EAAAA,YAAY,EAAE;AACZD,IAAAA,OAAO,EAAE,CADG;AAEZE,IAAAA,UAAU,oBAAaL,QAAb;AAFE,GAJH;AAQXM,EAAAA,KAAK,EAAE;AACLH,IAAAA,OAAO,EAAE;AADJ,GARI;AAWXI,EAAAA,WAAW,EAAE;AACXJ,IAAAA,OAAO,EAAE,CADE;AAEXE,IAAAA,UAAU,oBAAaL,QAAb;AAFC,GAXF;AAeXQ,EAAAA,IAAI,EAAE;AACJL,IAAAA,OAAO,EAAE;AADL,GAfK;AAkBXM,EAAAA,UAAU,EAAE;AACVN,IAAAA,OAAO,EAAE,CADC;AAEVE,IAAAA,UAAU,oBAAaL,QAAb;AAFA;AAlBD,CAAb;;AAwBA,IAAMU,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,KAAK,EAAI;AAAA,MACtBC,OADsB,GACVD,KADU,CACtBC,OADsB;AAE9B,sBACE,gCAAC,mCAAD,gCACMD,KADN;AAEE,IAAA,MAAM,EAAE,IAFV;AAGE,IAAA,UAAU,EAAE;AACVL,MAAAA,KAAK,EAAEM,OAAO,CAACN,KADL;AAEVC,MAAAA,WAAW,EAAEK,OAAO,CAACL,WAFX;AAGVC,MAAAA,IAAI,EAAEI,OAAO,CAACJ,IAHJ;AAIVC,MAAAA,UAAU,EAAEG,OAAO,CAACH,UAJV;AAKVP,MAAAA,MAAM,EAAEU,OAAO,CAACV,MALN;AAMVE,MAAAA,YAAY,EAAEQ,OAAO,CAACR;AANZ,KAHd;AAWE,IAAA,OAAO,EAAEJ;AAXX,KADF;AAeD,CAjBD;;AAmBAU,cAAc,CAACG,SAAf,GAA2B;AACzBD,EAAAA,OAAO,EAAEE,sBAAUC,MAAV,CAAiBC;AADD,CAA3B;AAIA,IAAMC,IAAI,GAAG,0BAAYhB,IAAZ,EAAkBS,cAAlB,CAAb;eAEeO,I","sourcesContent":["import injectSheet from 'react-jss';\nimport React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\n\nconst duration = 200;\nconst fade = {\n appear: {\n opacity: 0\n },\n appearActive: {\n opacity: 1,\n transition: `opacity ${duration}ms ease-in`\n },\n enter: {\n opacity: 0\n },\n enterActive: {\n opacity: 1,\n transition: `opacity ${duration}ms ease-in`\n },\n exit: {\n opacity: 1\n },\n exitActive: {\n opacity: 0,\n transition: `opacity ${duration}ms ease-in`\n }\n};\n\nconst FadeTransition = props => {\n const { classes } = props;\n return (\n <CSSTransition\n {...props}\n appear={true}\n classNames={{\n enter: classes.enter,\n enterActive: classes.enterActive,\n exit: classes.exit,\n exitActive: classes.exitActive,\n appear: classes.appear,\n appearActive: classes.appearActive\n }}\n timeout={duration}\n />\n );\n};\n\nFadeTransition.propTypes = {\n classes: PropTypes.object.isRequired\n};\n\nconst Fade = injectSheet(fade)(FadeTransition);\n\nexport default Fade;\n"],"file":"fade.js"}
1
+ {"version":3,"sources":["../../../src/number-line/transitions/fade.jsx"],"names":["duration","fade","appear","opacity","appearActive","transition","enter","enterActive","exit","exitActive","FadeTransition","props","classes","propTypes","PropTypes","object","isRequired","Fade"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,QAAQ,GAAG,GAAjB;AACA,IAAMC,IAAI,GAAG;AACXC,EAAAA,MAAM,EAAE;AACNC,IAAAA,OAAO,EAAE;AADH,GADG;AAIXC,EAAAA,YAAY,EAAE;AACZD,IAAAA,OAAO,EAAE,CADG;AAEZE,IAAAA,UAAU,oBAAaL,QAAb;AAFE,GAJH;AAQXM,EAAAA,KAAK,EAAE;AACLH,IAAAA,OAAO,EAAE;AADJ,GARI;AAWXI,EAAAA,WAAW,EAAE;AACXJ,IAAAA,OAAO,EAAE,CADE;AAEXE,IAAAA,UAAU,oBAAaL,QAAb;AAFC,GAXF;AAeXQ,EAAAA,IAAI,EAAE;AACJL,IAAAA,OAAO,EAAE;AADL,GAfK;AAkBXM,EAAAA,UAAU,EAAE;AACVN,IAAAA,OAAO,EAAE,CADC;AAEVE,IAAAA,UAAU,oBAAaL,QAAb;AAFA;AAlBD,CAAb;;AAwBA,IAAMU,cAAc,GAAG,SAAjBA,cAAiB,CAACC,KAAD,EAAW;AAChC,MAAQC,OAAR,GAAoBD,KAApB,CAAQC,OAAR;AACA,sBACE,gCAAC,mCAAD,gCACMD,KADN;AAEE,IAAA,MAAM,EAAE,IAFV;AAGE,IAAA,UAAU,EAAE;AACVL,MAAAA,KAAK,EAAEM,OAAO,CAACN,KADL;AAEVC,MAAAA,WAAW,EAAEK,OAAO,CAACL,WAFX;AAGVC,MAAAA,IAAI,EAAEI,OAAO,CAACJ,IAHJ;AAIVC,MAAAA,UAAU,EAAEG,OAAO,CAACH,UAJV;AAKVP,MAAAA,MAAM,EAAEU,OAAO,CAACV,MALN;AAMVE,MAAAA,YAAY,EAAEQ,OAAO,CAACR;AANZ,KAHd;AAWE,IAAA,OAAO,EAAEJ;AAXX,KADF;AAeD,CAjBD;;AAmBAU,cAAc,CAACG,SAAf,GAA2B;AACzBD,EAAAA,OAAO,EAAEE,sBAAUC,MAAV,CAAiBC;AADD,CAA3B;AAIA,IAAMC,IAAI,GAAG,0BAAYhB,IAAZ,EAAkBS,cAAlB,CAAb;eAEeO,I","sourcesContent":["import injectSheet from 'react-jss';\nimport React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\n\nconst duration = 200;\nconst fade = {\n appear: {\n opacity: 0,\n },\n appearActive: {\n opacity: 1,\n transition: `opacity ${duration}ms ease-in`,\n },\n enter: {\n opacity: 0,\n },\n enterActive: {\n opacity: 1,\n transition: `opacity ${duration}ms ease-in`,\n },\n exit: {\n opacity: 1,\n },\n exitActive: {\n opacity: 0,\n transition: `opacity ${duration}ms ease-in`,\n },\n};\n\nconst FadeTransition = (props) => {\n const { classes } = props;\n return (\n <CSSTransition\n {...props}\n appear={true}\n classNames={{\n enter: classes.enter,\n enterActive: classes.enterActive,\n exit: classes.exit,\n exitActive: classes.exitActive,\n appear: classes.appear,\n appearActive: classes.appearActive,\n }}\n timeout={duration}\n />\n );\n};\n\nFadeTransition.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nconst Fade = injectSheet(fade)(FadeTransition);\n\nexport default Fade;\n"],"file":"fade.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/number-line",
3
- "version": "5.10.0",
3
+ "version": "5.10.1-beta.587+40df32c2f",
4
4
  "repository": "pie-framework/pie-elements",
5
5
  "description": "",
6
6
  "publishConfig": {
@@ -8,16 +8,17 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
- "@pie-lib/correct-answer-toggle": "^2.3.23",
12
- "@pie-lib/feedback": "^0.4.25",
13
- "@pie-lib/icons": "^2.4.23",
14
- "@pie-lib/math-rendering": "^2.3.6",
15
- "@pie-lib/render-ui": "^4.11.5",
11
+ "@pie-lib/correct-answer-toggle": "^2.3.62",
12
+ "@pie-lib/feedback": "^0.4.42",
13
+ "@pie-lib/icons": "^2.4.42",
14
+ "@pie-lib/math-rendering": "^2.5.12",
15
+ "@pie-lib/render-ui": "^4.14.12",
16
16
  "classnames": "^2.2.5",
17
17
  "d3-scale": "^3.2.1",
18
18
  "d3-selection": "^1.4.1",
19
+ "is-plain-object": "^5.0.0",
19
20
  "lodash": "^4.17.10",
20
- "mathjs": "^5.4.1",
21
+ "mathjs": "^7.5.1",
21
22
  "prop-types": "^15.6.1",
22
23
  "react": "^16.8.1",
23
24
  "react-dom": "^16.8.1",
@@ -27,7 +28,7 @@
27
28
  },
28
29
  "author": "pie framework developers",
29
30
  "license": "ISC",
30
- "gitHead": "8f4eaa4018dffb68e135ec9e274688a8ae05d865",
31
+ "gitHead": "40df32c2f78966706cb168843567c9df174f1d88",
31
32
  "scripts": {
32
33
  "postpublish": "../../scripts/postpublish"
33
34
  },