@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
@@ -5,10 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.Main = exports.toPointType = void 0;
8
+ exports.toPointType = exports["default"] = exports.Main = void 0;
9
9
 
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
 
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
12
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
15
 
14
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -23,45 +25,51 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
23
25
 
24
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
27
 
28
+ var _react = _interopRequireDefault(require("react"));
29
+
26
30
  var _configUi = require("@pie-lib/config-ui");
27
31
 
32
+ var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
33
+
34
+ var _numberLine = require("@pie-element/number-line");
35
+
28
36
  var _numberTextField = _interopRequireDefault(require("./number-text-field"));
29
37
 
30
38
  var _cardBar = _interopRequireDefault(require("./card-bar"));
31
39
 
32
- var _numberLine = require("@pie-element/number-line");
33
-
34
40
  var _size = _interopRequireDefault(require("./size"));
35
41
 
36
42
  var _propTypes = _interopRequireDefault(require("prop-types"));
37
43
 
38
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
39
-
40
44
  var _domain = _interopRequireDefault(require("./domain"));
41
45
 
42
46
  var _arrows = _interopRequireDefault(require("./arrows"));
43
47
 
44
48
  var _pointConfig = _interopRequireDefault(require("./point-config"));
45
49
 
46
- var _react = _interopRequireDefault(require("react"));
47
-
48
50
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
49
51
 
50
52
  var _styles = require("@material-ui/core/styles");
51
53
 
52
- var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
54
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
55
+
56
+ var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
57
+
58
+ var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
53
59
 
54
60
  var _ticks = _interopRequireDefault(require("./ticks"));
55
61
 
56
62
  var _defaults = require("./defaults");
57
63
 
64
+ var _utils = require("./utils");
65
+
58
66
  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); }; }
59
67
 
60
- 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; } }
68
+ 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; } }
61
69
 
62
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
70
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
63
71
 
64
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
72
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
65
73
 
66
74
  var trimModel = function trimModel(model) {
67
75
  return _objectSpread(_objectSpread({}, model), {}, {
@@ -101,7 +109,7 @@ var styles = function styles(theme) {
101
109
  margin: '20px 0'
102
110
  },
103
111
  pointTypeChooser: {
104
- margin: '20px 0'
112
+ margin: "".concat(theme.spacing.unit * 2.5, "px 0")
105
113
  },
106
114
  promptHolder: {
107
115
  width: '100%',
@@ -115,6 +123,19 @@ var styles = function styles(theme) {
115
123
  section: {
116
124
  margin: 0,
117
125
  padding: 0
126
+ },
127
+ tooltip: {
128
+ fontSize: theme.typography.fontSize - 2,
129
+ whiteSpace: 'pre',
130
+ maxWidth: '500px'
131
+ },
132
+ inlineFlexContainer: {
133
+ display: 'inline-flex'
134
+ },
135
+ errorText: {
136
+ fontSize: theme.typography.fontSize - 2,
137
+ color: 'red',
138
+ paddingTop: theme.spacing.unit
118
139
  }
119
140
  };
120
141
  };
@@ -127,9 +148,9 @@ var toPointType = function toPointType(response) {
127
148
  }
128
149
 
129
150
  return response.pointType[0];
130
- } else {
131
- return "".concat(response.leftPoint[0]).concat(response.rightPoint[0]);
132
151
  }
152
+
153
+ return "".concat(response.leftPoint[0]).concat(response.rightPoint[0]);
133
154
  }
134
155
 
135
156
  return "".concat(response.type[0]).concat(rest(response)).toUpperCase();
@@ -142,20 +163,17 @@ var Main = /*#__PURE__*/function (_React$Component) {
142
163
 
143
164
  var _super = _createSuper(Main);
144
165
 
145
- function Main() {
166
+ function Main(props) {
146
167
  var _this;
147
168
 
148
169
  (0, _classCallCheck2["default"])(this, Main);
170
+ _this = _super.call(this, props);
171
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "graphChange", function (obj) {
172
+ var _this$props = _this.props,
173
+ model = _this$props.model,
174
+ onChange = _this$props.onChange;
149
175
 
150
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
151
- args[_key] = arguments[_key];
152
- }
153
-
154
- _this = _super.call.apply(_super, [this].concat(args));
155
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "graphChange", function (o) {
156
- var onChange = _this.props.onChange;
157
-
158
- var graph = _objectSpread(_objectSpread({}, _this.props.model.graph), o);
176
+ var graph = _objectSpread(_objectSpread({}, model.graph), obj);
159
177
 
160
178
  onChange({
161
179
  graph: graph
@@ -169,9 +187,28 @@ var Main = /*#__PURE__*/function (_React$Component) {
169
187
  height: height
170
188
  });
171
189
  });
190
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getAdjustedHeight", function (availableTypes, maxNumberOfPoints) {
191
+ var onlyPFAvailable = true;
192
+ Object.entries(availableTypes || {}).forEach(function (_ref2) {
193
+ var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
194
+ type = _ref3[0],
195
+ value = _ref3[1];
196
+
197
+ if (type !== 'PF' && value) {
198
+ onlyPFAvailable = false;
199
+ return;
200
+ }
201
+ });
202
+ return maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable) ? 100 : 50 + (maxNumberOfPoints || 20) * 25;
203
+ });
172
204
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxNoOfPoints", function (e, maxNumberOfPoints) {
173
- return _this.graphChange({
174
- maxNumberOfPoints: maxNumberOfPoints
205
+ var availableTypes = _this.props.model.graph.availableTypes;
206
+
207
+ var height = _this.getAdjustedHeight(availableTypes, maxNumberOfPoints);
208
+
209
+ _this.graphChange({
210
+ maxNumberOfPoints: maxNumberOfPoints,
211
+ height: height
175
212
  });
176
213
  });
177
214
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeGraphTitle", function (title) {
@@ -180,15 +217,15 @@ var Main = /*#__PURE__*/function (_React$Component) {
180
217
  });
181
218
  });
182
219
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeTicks", function (ticks) {
183
- var _this$props = _this.props,
184
- model = _this$props.model,
185
- onChange = _this$props.onChange;
220
+ var _this$props2 = _this.props,
221
+ model = _this$props2.model,
222
+ onChange = _this$props2.onChange;
186
223
 
187
224
  var correctResponse = _numberLine.tickUtils.snapElements(model.graph.domain, ticks, model.correctResponse);
188
225
 
189
226
  var initialElements = _numberLine.tickUtils.snapElements(model.graph.domain, ticks, model.graph.initialElements);
190
227
 
191
- var graph = _objectSpread(_objectSpread({}, _this.props.model.graph), {}, {
228
+ var graph = _objectSpread(_objectSpread({}, model.graph), {}, {
192
229
  ticks: ticks,
193
230
  initialElements: initialElements
194
231
  });
@@ -204,8 +241,18 @@ var Main = /*#__PURE__*/function (_React$Component) {
204
241
  });
205
242
  });
206
243
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setDefaults", function () {
244
+ var _defaultModel$graph = _defaults.model.graph,
245
+ availableTypes = _defaultModel$graph.availableTypes,
246
+ maxNumberOfPoints = _defaultModel$graph.maxNumberOfPoints;
247
+
248
+ var height = _this.getAdjustedHeight(availableTypes, maxNumberOfPoints);
249
+
250
+ var graph = _objectSpread(_objectSpread({}, (0, _cloneDeep["default"])(_defaults.model.graph)), {}, {
251
+ height: height
252
+ });
253
+
207
254
  _this.props.onChange({
208
- graph: (0, _cloneDeep["default"])(_defaults.model.graph)
255
+ graph: graph
209
256
  });
210
257
  });
211
258
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "exhibitChanged", function (event, value) {
@@ -218,10 +265,10 @@ var Main = /*#__PURE__*/function (_React$Component) {
218
265
  });
219
266
  });
220
267
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveCorrectResponse", function (index, el, position) {
221
- var _this$props2 = _this.props,
222
- onChange = _this$props2.onChange,
223
- model = _this$props2.model;
224
268
  el.position = position;
269
+ var _this$props3 = _this.props,
270
+ onChange = _this$props3.onChange,
271
+ model = _this$props3.model;
225
272
  var update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);
226
273
  var correctResponse = (0, _toConsumableArray2["default"])(model.correctResponse);
227
274
  correctResponse[index] = update;
@@ -230,12 +277,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
230
277
  });
231
278
  });
232
279
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveInitialView", function (index, el, position) {
233
- var _this$props3 = _this.props,
234
- model = _this$props3.model,
235
- onChange = _this$props3.onChange;
236
280
  el.position = position;
281
+ var _this$props4 = _this.props,
282
+ model = _this$props4.model,
283
+ onChange = _this$props4.onChange;
237
284
  var update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);
238
- var initialElements = (0, _toConsumableArray2["default"])(_this.props.model.graph.initialElements);
285
+ var initialElements = (0, _toConsumableArray2["default"])(model.graph.initialElements);
239
286
  initialElements[index] = update;
240
287
 
241
288
  var graph = _objectSpread(_objectSpread({}, model.graph), {}, {
@@ -247,15 +294,20 @@ var Main = /*#__PURE__*/function (_React$Component) {
247
294
  });
248
295
  });
249
296
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "availableTypesChange", function (availableTypes) {
250
- var _this$props4 = _this.props,
251
- model = _this$props4.model,
252
- onChange = _this$props4.onChange;
253
- new Set(model.correctResponse.map(toPointType)).forEach(function (pointType) {
297
+ var _this$props5 = _this.props,
298
+ model = _this$props5.model,
299
+ onChange = _this$props5.onChange;
300
+ var correctResponse = model.correctResponse,
301
+ maxNumberOfPoints = model.graph.maxNumberOfPoints;
302
+ new Set(correctResponse.map(toPointType)).forEach(function (pointType) {
254
303
  availableTypes[pointType] = true;
255
304
  });
256
305
 
306
+ var height = _this.getAdjustedHeight(availableTypes, maxNumberOfPoints);
307
+
257
308
  var graph = _objectSpread(_objectSpread({}, model.graph), {}, {
258
- availableTypes: availableTypes
309
+ availableTypes: availableTypes,
310
+ height: height
259
311
  });
260
312
 
261
313
  onChange({
@@ -263,9 +315,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
263
315
  });
264
316
  });
265
317
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "deleteCorrectResponse", function (indices) {
266
- var _this$props5 = _this.props,
267
- model = _this$props5.model,
268
- onChange = _this$props5.onChange;
318
+ var _this$props6 = _this.props,
319
+ model = _this$props6.model,
320
+ onChange = _this$props6.onChange;
269
321
  var correctResponse = model.correctResponse.filter(function (v, index) {
270
322
  return !indices.some(function (d) {
271
323
  return d === index;
@@ -276,9 +328,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
276
328
  });
277
329
  });
278
330
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "deleteInitialView", function (indices) {
279
- var _this$props6 = _this.props,
280
- model = _this$props6.model,
281
- onChange = _this$props6.onChange;
331
+ var _this$props7 = _this.props,
332
+ model = _this$props7.model,
333
+ onChange = _this$props7.onChange;
282
334
  var initialElements = model.graph.initialElements.filter(function (v, index) {
283
335
  return !indices.some(function (d) {
284
336
  return d === index;
@@ -294,9 +346,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
294
346
  });
295
347
  });
296
348
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "addCorrectResponse", function (data) {
297
- var _this$props7 = _this.props,
298
- model = _this$props7.model,
299
- onChange = _this$props7.onChange;
349
+ var _this$props8 = _this.props,
350
+ model = _this$props8.model,
351
+ onChange = _this$props8.onChange;
300
352
  var correctResponse = (0, _toConsumableArray2["default"])(model.correctResponse);
301
353
  correctResponse.push(toSessionFormat(data));
302
354
  onChange({
@@ -304,9 +356,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
304
356
  });
305
357
  });
306
358
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "addInitialView", function (data) {
307
- var _this$props8 = _this.props,
308
- onChange = _this$props8.onChange,
309
- model = _this$props8.model;
359
+ var _this$props9 = _this.props,
360
+ onChange = _this$props9.onChange,
361
+ model = _this$props9.model;
310
362
 
311
363
  var graph = _objectSpread({}, model.graph);
312
364
 
@@ -318,19 +370,17 @@ var Main = /*#__PURE__*/function (_React$Component) {
318
370
  });
319
371
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "clearCorrectResponse", function () {
320
372
  var onChange = _this.props.onChange;
321
- var correctResponse = [];
322
373
  onChange({
323
- correctResponse: correctResponse
374
+ correctResponse: []
324
375
  });
325
376
  });
326
377
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "clearInitialView", function () {
327
- var _this$props9 = _this.props,
328
- model = _this$props9.model,
329
- onChange = _this$props9.onChange;
330
- var initialElements = [];
378
+ var _this$props10 = _this.props,
379
+ model = _this$props10.model,
380
+ onChange = _this$props10.onChange;
331
381
 
332
382
  var graph = _objectSpread(_objectSpread({}, model.graph), {}, {
333
- initialElements: initialElements
383
+ initialElements: []
334
384
  });
335
385
 
336
386
  onChange({
@@ -338,9 +388,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
338
388
  });
339
389
  });
340
390
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "undoCorrectResponse", function () {
341
- var _this$props10 = _this.props,
342
- model = _this$props10.model,
343
- onChange = _this$props10.onChange;
391
+ var _this$props11 = _this.props,
392
+ model = _this$props11.model,
393
+ onChange = _this$props11.onChange;
344
394
  var correctResponse = (0, _toConsumableArray2["default"])(model.correctResponse);
345
395
  correctResponse.pop();
346
396
  onChange({
@@ -348,9 +398,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
348
398
  });
349
399
  });
350
400
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "undoInitialView", function () {
351
- var _this$props11 = _this.props,
352
- onChange = _this$props11.onChange,
353
- model = _this$props11.model;
401
+ var _this$props12 = _this.props,
402
+ onChange = _this$props12.onChange,
403
+ model = _this$props12.model;
354
404
 
355
405
  var graph = _objectSpread({}, model.graph);
356
406
 
@@ -360,7 +410,16 @@ var Main = /*#__PURE__*/function (_React$Component) {
360
410
  graph: graph
361
411
  });
362
412
  });
363
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAddElement", _this.addInitialView);
413
+ var _props$model$graph = props.model.graph,
414
+ _availableTypes = _props$model$graph.availableTypes,
415
+ _maxNumberOfPoints = _props$model$graph.maxNumberOfPoints;
416
+
417
+ var _height = _this.getAdjustedHeight(_availableTypes, _maxNumberOfPoints);
418
+
419
+ _this.graphChange({
420
+ height: _height
421
+ });
422
+
364
423
  return _this;
365
424
  }
366
425
 
@@ -369,21 +428,39 @@ var Main = /*#__PURE__*/function (_React$Component) {
369
428
  value: function render() {
370
429
  var _this2 = this;
371
430
 
372
- var _this$props12 = this.props,
373
- classes = _this$props12.classes,
374
- model = _this$props12.model,
375
- _onChange = _this$props12.onChange,
376
- configuration = _this$props12.configuration;
377
- var graph = model.graph;
378
-
379
- var _ref2 = configuration || {},
380
- _ref2$prompt = _ref2.prompt,
381
- prompt = _ref2$prompt === void 0 ? {} : _ref2$prompt;
382
-
431
+ var _this$props13 = this.props,
432
+ classes = _this$props13.classes,
433
+ model = _this$props13.model,
434
+ _onChange = _this$props13.onChange,
435
+ configuration = _this$props13.configuration,
436
+ uploadSoundSupport = _this$props13.uploadSoundSupport;
437
+
438
+ var _ref4 = configuration || {},
439
+ _ref4$prompt = _ref4.prompt,
440
+ prompt = _ref4$prompt === void 0 ? {} : _ref4$prompt;
441
+
442
+ var _ref5 = model || {},
443
+ errors = _ref5.errors,
444
+ graph = _ref5.graph,
445
+ spellCheckEnabled = _ref5.spellCheckEnabled,
446
+ toolbarEditorPosition = _ref5.toolbarEditorPosition;
447
+
448
+ var _ref6 = errors || {},
449
+ widthError = _ref6.widthError,
450
+ domainError = _ref6.domainError,
451
+ maxError = _ref6.maxError,
452
+ pointsError = _ref6.pointsError,
453
+ correctResponseError = _ref6.correctResponseError;
454
+
455
+ var validationMessage = (0, _utils.generateValidationMessage)();
383
456
  var correctResponse = (0, _cloneDeep["default"])(model.correctResponse || []).map(toGraphFormat);
384
457
  var initialView = (0, _cloneDeep["default"])(graph.initialElements || []).map(toGraphFormat);
385
- return /*#__PURE__*/_react["default"].createElement("div", {
386
- className: classes.root
458
+ var toolbarOpts = {
459
+ position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
460
+ };
461
+ return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
462
+ hideSettings: true,
463
+ settings: null
387
464
  }, prompt.settings && /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
388
465
  label: prompt.label
389
466
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
@@ -395,9 +472,32 @@ var Main = /*#__PURE__*/function (_React$Component) {
395
472
  });
396
473
  },
397
474
  nonEmpty: false,
398
- disableUnderline: true
475
+ disableUnderline: true,
476
+ toolbarOpts: toolbarOpts,
477
+ spellCheck: spellCheckEnabled,
478
+ uploadSoundSupport: uploadSoundSupport,
479
+ languageCharactersProps: [{
480
+ language: 'spanish'
481
+ }, {
482
+ language: 'special'
483
+ }]
399
484
  })), /*#__PURE__*/_react["default"].createElement(_cardBar["default"], {
400
- header: "Attributes"
485
+ header: "Attributes",
486
+ info: /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
487
+ classes: {
488
+ tooltip: classes.tooltip
489
+ },
490
+ disableFocusListener: true,
491
+ disableTouchListener: true,
492
+ placement: 'right',
493
+ title: validationMessage
494
+ }, /*#__PURE__*/_react["default"].createElement(_Info["default"], {
495
+ fontSize: 'small',
496
+ color: 'primary',
497
+ style: {
498
+ marginLeft: '8px'
499
+ }
500
+ }))
401
501
  }, "Set up the number line by entering the domain and number of tick marks to display. Labels on the number line can be edited or removed by clicking on the label."), /*#__PURE__*/_react["default"].createElement("div", {
402
502
  className: classes.row
403
503
  }, /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
@@ -414,7 +514,13 @@ var Main = /*#__PURE__*/function (_React$Component) {
414
514
  domain: domain
415
515
  });
416
516
  }
417
- }))), /*#__PURE__*/_react["default"].createElement("div", {
517
+ }))), widthError && /*#__PURE__*/_react["default"].createElement("div", {
518
+ className: classes.errorText
519
+ }, widthError), maxError && /*#__PURE__*/_react["default"].createElement("div", {
520
+ className: classes.errorText
521
+ }, maxError), domainError && /*#__PURE__*/_react["default"].createElement("div", {
522
+ className: classes.errorText
523
+ }, domainError), /*#__PURE__*/_react["default"].createElement("div", {
418
524
  className: classes.row
419
525
  }, /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
420
526
  label: 'Ticks'
@@ -431,7 +537,15 @@ var Main = /*#__PURE__*/function (_React$Component) {
431
537
  label: 'Title'
432
538
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
433
539
  markup: graph.title || '',
434
- onChange: this.changeGraphTitle
540
+ onChange: this.changeGraphTitle,
541
+ toolbarOpts: toolbarOpts,
542
+ spellCheck: spellCheckEnabled,
543
+ uploadSoundSupport: uploadSoundSupport,
544
+ languageCharactersProps: [{
545
+ language: 'spanish'
546
+ }, {
547
+ language: 'special'
548
+ }]
435
549
  })), /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
436
550
  label: 'Limits'
437
551
  }, /*#__PURE__*/_react["default"].createElement(_numberTextField["default"], {
@@ -441,14 +555,16 @@ var Main = /*#__PURE__*/function (_React$Component) {
441
555
  max: 20,
442
556
  value: graph.maxNumberOfPoints,
443
557
  onChange: this.changeMaxNoOfPoints
444
- })), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
558
+ }), pointsError && /*#__PURE__*/_react["default"].createElement("div", {
559
+ className: classes.errorText
560
+ }, pointsError)), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
445
561
  variant: "outlined",
446
562
  mini: true,
447
563
  color: "primary",
448
564
  onClick: this.setDefaults
449
565
  }, "Reset to default values"), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("br", null), !graph.exhibitOnly && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_cardBar["default"], {
450
566
  header: "Correct Response"
451
- }, "Select answer type and place it on the number line. Intersecting points, line segments and/or rays will appear above the number line.", ' ', /*#__PURE__*/_react["default"].createElement("i", null, "Note: A maximum of 20 points, line segments or rays may be plotted.")), /*#__PURE__*/_react["default"].createElement(_numberLine.NumberLineComponent, {
567
+ }, "Select answer type and place it on the number line. Intersecting points, line segments and/or rays will appear above the number line. ", /*#__PURE__*/_react["default"].createElement("i", null, "Note: A maximum of 20 points, line segments or rays may be plotted.")), /*#__PURE__*/_react["default"].createElement(_numberLine.NumberLineComponent, {
452
568
  onMoveElement: this.moveCorrectResponse,
453
569
  onDeleteElements: this.deleteCorrectResponse,
454
570
  onAddElement: this.addCorrectResponse,
@@ -457,7 +573,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
457
573
  answer: correctResponse //strip feedback for this model
458
574
  ,
459
575
  model: trimModel(model)
460
- }), /*#__PURE__*/_react["default"].createElement(_cardBar["default"], {
576
+ }), correctResponseError && /*#__PURE__*/_react["default"].createElement("div", {
577
+ className: classes.errorText
578
+ }, correctResponseError), /*#__PURE__*/_react["default"].createElement(_cardBar["default"], {
461
579
  header: "Available Types",
462
580
  mini: true
463
581
  }, "Click on the input options to be displayed to the students. All inputs will display by default."), /*#__PURE__*/_react["default"].createElement("div", {
@@ -470,7 +588,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
470
588
  }, "Use this number line to set a starting point, line segment or ray. This is optional. ", /*#__PURE__*/_react["default"].createElement("br", null), "This number line may also be used to make an exhibit number line, which can not be manipulated by a student."), /*#__PURE__*/_react["default"].createElement(_numberLine.NumberLineComponent, {
471
589
  onMoveElement: this.moveInitialView,
472
590
  onDeleteElements: this.deleteInitialView,
473
- onAddElement: this.onAddElement,
591
+ onAddElement: this.addInitialView,
474
592
  onClearElements: this.clearInitialView,
475
593
  onUndoElement: this.undoInitialView,
476
594
  answer: initialView,
@@ -487,7 +605,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
487
605
  return _onChange({
488
606
  feedback: feedback
489
607
  });
490
- }
608
+ },
609
+ toolbarOpts: toolbarOpts
491
610
  })));
492
611
  }
493
612
  }]);
@@ -499,7 +618,8 @@ exports.Main = Main;
499
618
  classes: _propTypes["default"].object.isRequired,
500
619
  model: _propTypes["default"].object.isRequired,
501
620
  configuration: _propTypes["default"].object.isRequired,
502
- onChange: _propTypes["default"].func.isRequired
621
+ onChange: _propTypes["default"].func.isRequired,
622
+ uploadSoundSupport: _propTypes["default"].object.isRequired
503
623
  });
504
624
 
505
625
  var _default = (0, _styles.withStyles)(styles, {