@pie-element/number-line 7.6.0 → 7.6.1-next.4

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.
@@ -14,9 +14,7 @@ var model = {
14
14
  ticks: {
15
15
  minor: 0.125,
16
16
  major: 0.5,
17
- labelStep: '1/2',
18
- tickIntervalType: 'Decimal',
19
- tickStep: '1/8'
17
+ tickIntervalType: 'Decimal'
20
18
  },
21
19
  arrows: {
22
20
  left: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","correctResponse","graph","domain","min","max","ticks","minor","major","labelStep","tickIntervalType","tickStep","arrows","left","right","maxNumberOfPoints","width","initialType","exhibitOnly","toolbarEditorPosition","availableTypes","PF","initialElements","widthEnabled","feedback","correct","type","incorrect","partial","configuration","instruction","settings","enabled","label","prompt","required","teacherInstructions","numberLineDimensions","step","spellCheck","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options","maxMaxElements","hidePointConfigButtons","availableTools"],"mappings":"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","sourcesContent":["export const model = {\n correctResponse: [],\n graph: {\n domain: {\n min: -1,\n max: 1,\n },\n ticks: {\n minor: 0.125,\n major: 0.5,\n labelStep: '1/2',\n tickIntervalType: 'Decimal',\n tickStep: '1/8',\n },\n arrows: {\n left: true,\n right: true,\n },\n maxNumberOfPoints: 1,\n width: 500,\n initialType: 'PF',\n exhibitOnly: false,\n toolbarEditorPosition: 'bottom',\n availableTypes: {\n PF: true,\n },\n initialElements: [],\n },\n widthEnabled: true,\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none',\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none',\n },\n partial: {\n default: 'Nearly',\n type: 'none',\n },\n },\n};\n\nexport const configuration = {\n instruction: {\n settings: false,\n enabled: true,\n label:\n 'Number line questions involve plotting points or other objects. To create one, first set up the number line, then select the plotting tools students will be offered and use them to define the correct answer.',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n required: false,\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n required: false,\n },\n numberLineDimensions: {\n settings: true,\n label: 'Width',\n enabled: true,\n min: 200,\n max: 800,\n step: 20,\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n maxMaxElements: 20,\n hidePointConfigButtons: false,\n availableTools: ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP'],\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","correctResponse","graph","domain","min","max","ticks","minor","major","tickIntervalType","arrows","left","right","maxNumberOfPoints","width","initialType","exhibitOnly","toolbarEditorPosition","availableTypes","PF","initialElements","widthEnabled","feedback","correct","type","incorrect","partial","configuration","instruction","settings","enabled","label","prompt","required","teacherInstructions","numberLineDimensions","step","spellCheck","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options","maxMaxElements","hidePointConfigButtons","availableTools"],"mappings":"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","sourcesContent":["export const model = {\n correctResponse: [],\n graph: {\n domain: {\n min: -1,\n max: 1,\n },\n ticks: {\n minor: 0.125,\n major: 0.5,\n tickIntervalType: 'Decimal',\n },\n arrows: {\n left: true,\n right: true,\n },\n maxNumberOfPoints: 1,\n width: 500,\n initialType: 'PF',\n exhibitOnly: false,\n toolbarEditorPosition: 'bottom',\n availableTypes: {\n PF: true,\n },\n initialElements: [],\n },\n widthEnabled: true,\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none',\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none',\n },\n partial: {\n default: 'Nearly',\n type: 'none',\n },\n },\n};\n\nexport const configuration = {\n instruction: {\n settings: false,\n enabled: true,\n label:\n 'Number line questions involve plotting points or other objects. To create one, first set up the number line, then select the plotting tools students will be offered and use them to define the correct answer.',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n required: false,\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n required: false,\n },\n numberLineDimensions: {\n settings: true,\n label: 'Width',\n enabled: true,\n min: 200,\n max: 800,\n step: 20,\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n maxMaxElements: 20,\n hidePointConfigButtons: false,\n availableTools: ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP'],\n};\n"],"file":"defaults.js"}
@@ -59,15 +59,13 @@ var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
59
59
 
60
60
  var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
61
61
 
62
- var math = _interopRequireWildcard(require("mathjs"));
63
-
64
62
  var _ticks = _interopRequireDefault(require("./ticks"));
65
63
 
66
64
  var _defaults = require("./defaults");
67
65
 
68
66
  var _utils = require("./utils");
69
67
 
70
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
68
+ var math = _interopRequireWildcard(require("mathjs"));
71
69
 
72
70
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
73
71
 
@@ -92,27 +90,15 @@ var trimModel = function trimModel(model) {
92
90
  }),
93
91
  correctResponse: undefined
94
92
  });
95
- }; // Object holding information related to tick and label interval values.
96
-
97
-
98
- var ticksModel = {
99
- tickIntervalType: 'Decimal',
100
- integerTick: 0,
101
- fractionTick: '0/1',
102
- decimalTick: 0,
103
- fractionLabel: '0/1',
104
- decimalLabel: 0
105
- }; // Object holding data related to possible values for ticks and label interval in array.
106
-
107
- var data = {
108
- minorLimits: {},
109
- minorValues: {},
110
- majorValues: {}
111
93
  };
94
+
112
95
  var lineIsSwitched = _numberLine.dataConverter.lineIsSwitched,
113
96
  switchGraphLine = _numberLine.dataConverter.switchGraphLine,
114
97
  toGraphFormat = _numberLine.dataConverter.toGraphFormat,
115
98
  toSessionFormat = _numberLine.dataConverter.toSessionFormat;
99
+ var minorLimits = {};
100
+ var minorValues = {};
101
+ var majorValues = {};
116
102
 
117
103
  var styles = function styles(theme) {
118
104
  return {
@@ -191,22 +177,11 @@ var Main = /*#__PURE__*/function (_React$Component) {
191
177
 
192
178
  var _super = _createSuper(Main);
193
179
 
194
- function Main(_props) {
180
+ function Main(props) {
195
181
  var _this;
196
182
 
197
183
  (0, _classCallCheck2["default"])(this, Main);
198
- _this = _super.call(this, _props);
199
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "checkAndAdjustHeight", function (props) {
200
- var _props$model$graph = props.model.graph,
201
- availableTypes = _props$model$graph.availableTypes,
202
- maxNumberOfPoints = _props$model$graph.maxNumberOfPoints;
203
-
204
- var height = _this.getAdjustedHeight(availableTypes, maxNumberOfPoints);
205
-
206
- _this.graphChange({
207
- height: height
208
- });
209
- });
184
+ _this = _super.call(this, props);
210
185
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "graphChange", function (obj) {
211
186
  var _this$props = _this.props,
212
187
  model = _this$props.model,
@@ -230,12 +205,10 @@ var Main = /*#__PURE__*/function (_React$Component) {
230
205
  graph: model.graph
231
206
  }
232
207
  });
233
- }
234
-
235
- _this.reloadTicksData(graph.domain, graph.width, graph.ticks);
208
+ } //reload ticks value whenever domain and width is changed
236
209
 
237
- _this.assignTicksModelToGraph(graph);
238
210
 
211
+ graph = _this.reloadTicksData(graph);
239
212
  onChange({
240
213
  graph: graph
241
214
  });
@@ -248,113 +221,6 @@ var Main = /*#__PURE__*/function (_React$Component) {
248
221
  height: height
249
222
  });
250
223
  });
251
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "reloadTicksData", function (domain, width, ticks) {
252
- //check correct response
253
- var model = _this.props.model;
254
-
255
- var graph = _objectSpread({}, model.graph);
256
-
257
- data.minorLimits = _numberLine.tickUtils.getMinorLimits(domain, width);
258
- data.minorValues = _numberLine.tickUtils.generateMinorValues(data.minorLimits);
259
- data.majorValues = {};
260
-
261
- var initTickModel = function initTickModel() {
262
- if (ticks.tickIntervalType) ticksModel.tickIntervalType = ticks.tickIntervalType; //setting minor values
263
-
264
- if (ticks.minor < data.minorLimits.min || ticks.minor > data.minorLimits.max) {
265
- ticksModel.decimalTick = data.minorValues.decimal[0];
266
- ticksModel.fractionTick = data.minorValues.fraction[0];
267
- } else {
268
- ticksModel.decimalTick = math.number(ticks.minor);
269
- ticksModel.fractionTick = data.minorValues.fraction[data.minorValues.decimal.indexOf(ticksModel.decimalTick)];
270
- }
271
-
272
- if (Number.isInteger(ticksModel.decimalTick)) {
273
- ticksModel.integerTick = math.number(ticksModel.decimalTick);
274
- } else {
275
- var firstInteger = data.minorValues.decimal.find(function (el) {
276
- return Number.isInteger(el);
277
- });
278
-
279
- if (firstInteger) {
280
- var index = data.minorValues.decimal.indexOf(firstInteger);
281
- ticksModel.integerTick = math.number(firstInteger);
282
-
283
- if (ticksModel.tickIntervalType === 'Integer') {
284
- ticksModel.fractionTick = data.minorValues.fraction[index];
285
- ticksModel.decimalTick = data.minorValues.decimal[index];
286
- }
287
- } else {
288
- if (ticksModel.tickIntervalType === 'Integer') {
289
- ticksModel.tickIntervalType = 'Fraction';
290
- ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.decimal.length - 1];
291
- ticksModel.fractionTick = data.minorValues.fraction[data.minorValues.fraction.length - 1];
292
- }
293
-
294
- ticksModel.integerTick = data.minorValues.decimal.reduce(function (a, b) {
295
- return Math.abs(b - ticksModel.decimalTick) < Math.abs(a - ticksModel.decimalTick) ? b : a;
296
- });
297
-
298
- if (!Number.isInteger(ticksModel.integerTick)) {
299
- ticksModel.integerTick = math.ceil(ticksModel.integerTick);
300
- }
301
- }
302
- } //setting major values
303
-
304
-
305
- data.majorValues = _numberLine.tickUtils.generateMajorValuesForMinor(ticksModel.decimalTick, data.minorValues);
306
-
307
- if (!ticks.major) {
308
- ticksModel.decimalLabel = data.majorValues.decimal[0];
309
- ticksModel.fractionLabel = data.majorValues.fraction[0];
310
- } else {
311
- ticksModel.decimalLabel = math.number(ticks.major);
312
-
313
- if (data.majorValues.decimal.indexOf(ticksModel.decimalLabel) === -1) {
314
- var currIndex = 0;
315
-
316
- if (ticksModel.tickIntervalType === 'Integer') {
317
- currIndex = 4;
318
- } else {
319
- currIndex = data.majorValues.decimal.length - 1;
320
- }
321
-
322
- while (currIndex !== 0) {
323
- var ticksData = {
324
- minor: ticksModel.decimalTick,
325
- major: data.majorValues.decimal[currIndex]
326
- };
327
-
328
- var out = _numberLine.tickUtils.buildTickData(domain, width, ticksData, {
329
- fraction: undefined
330
- });
331
-
332
- if (out.filter(function (x) {
333
- return x.type === 'major';
334
- }).length > 1) {
335
- break;
336
- } else {
337
- currIndex = currIndex - 1;
338
- }
339
- }
340
-
341
- ticksModel.decimalLabel = data.majorValues.decimal[currIndex];
342
- ticksModel.fractionLabel = data.majorValues.fraction[currIndex];
343
- } else {
344
- ticksModel.fractionLabel = data.majorValues.fraction[data.majorValues.decimal.indexOf(ticksModel.decimalLabel)];
345
- }
346
- }
347
- };
348
-
349
- initTickModel();
350
- });
351
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "assignTicksModelToGraph", function (graph) {
352
- graph.ticks.minor = ticksModel.decimalTick;
353
- graph.ticks.major = ticksModel.decimalLabel;
354
- graph.ticks.tickIntervalType = ticksModel.tickIntervalType;
355
- graph.ticks.tickStep = ticksModel.fractionTick;
356
- graph.ticks.labelStep = ticksModel.fractionLabel;
357
- });
358
224
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getAdjustedHeight", function (availableTypes, maxNumberOfPoints) {
359
225
  var onlyPFAvailable = true;
360
226
  Object.entries(availableTypes || {}).forEach(function (_ref2) {
@@ -372,17 +238,6 @@ var Main = /*#__PURE__*/function (_React$Component) {
372
238
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxNoOfPoints", function (e, maxNumberOfPoints) {
373
239
  maxNumberOfPoints = Math.floor(maxNumberOfPoints);
374
240
 
375
- if (_this.isAvailableTypesGreaterThanMaxElements(_this.props.model.graph.availableTypes, maxNumberOfPoints)) {
376
- _this.setState({
377
- dialog: {
378
- open: true,
379
- text: 'To use this value, you must first remove one or more elements from the available types.'
380
- }
381
- });
382
-
383
- return;
384
- }
385
-
386
241
  if (_this.props.model.correctResponse.length > maxNumberOfPoints) {
387
242
  _this.setState({
388
243
  dialog: {
@@ -403,19 +258,6 @@ var Main = /*#__PURE__*/function (_React$Component) {
403
258
  height: height
404
259
  });
405
260
  });
406
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isAvailableTypesGreaterThanMaxElements", function (availableTypes, maxElements) {
407
- var availableTypeCount = 0;
408
- Object.entries(availableTypes || {}).forEach(function (_ref4) {
409
- var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
410
- type = _ref5[0],
411
- value = _ref5[1];
412
-
413
- if (value) {
414
- availableTypeCount = availableTypeCount + 1;
415
- }
416
- });
417
- return availableTypeCount > maxElements;
418
- });
419
261
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeGraphTitle", function (title) {
420
262
  return _this.graphChange({
421
263
  title: title
@@ -425,31 +267,181 @@ var Main = /*#__PURE__*/function (_React$Component) {
425
267
  var _this$props2 = _this.props,
426
268
  model = _this$props2.model,
427
269
  onChange = _this$props2.onChange;
428
- var ticks = model.graph.ticks;
429
- ticks.minor = object.ticksModel.decimalTick;
430
- ticks.major = object.ticksModel.decimalLabel;
431
- ticks.tickIntervalType = object.ticksModel.tickIntervalType;
432
- ticks.tickStep = object.ticksModel.fractionTick;
433
- ticks.labelStep = object.ticksModel.fractionLabel;
270
+ var ticks = object.ticks;
434
271
 
435
272
  var correctResponse = _numberLine.tickUtils.snapElements(model.graph.domain, ticks, model.correctResponse);
436
273
 
437
274
  var initialElements = _numberLine.tickUtils.snapElements(model.graph.domain, ticks, model.graph.initialElements);
438
275
 
439
- var graph = _objectSpread(_objectSpread({}, model.graph), {}, {
440
- ticks: ticks,
276
+ var updatedGraph = _this.updateMajorValue(_objectSpread(_objectSpread({}, model.graph), {}, {
277
+ ticks: ticks
278
+ }));
279
+
280
+ var graph = _objectSpread(_objectSpread({}, updatedGraph), {}, {
441
281
  initialElements: initialElements
442
282
  });
443
283
 
444
- _this.reloadTicksData(graph.domain, graph.width, graph.ticks);
445
-
446
- _this.assignTicksModelToGraph(graph);
447
-
448
284
  onChange({
449
285
  graph: graph,
450
286
  correctResponse: correctResponse
451
287
  });
452
288
  });
289
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "reloadTicksData", function (graph) {
290
+ var domain = graph.domain,
291
+ ticks = graph.ticks,
292
+ width = graph.width; //Set tick interval type if not present for legacy number line models depending upon minor value
293
+
294
+ if (!ticks.tickIntervalType) {
295
+ if (ticks.minor > 0.5) {
296
+ ticks.tickIntervalType = 'Integer';
297
+ } else {
298
+ ticks.tickIntervalType = 'Decimal';
299
+ }
300
+ } // This section will calculate minor and major values array and assign respective value
301
+ // to different tick types object
302
+
303
+
304
+ minorLimits = _numberLine.tickUtils.getMinorLimits(domain, width);
305
+
306
+ if (minorLimits.min >= 1) {
307
+ /*
308
+ * In this scenario only integer tick will be enabled
309
+ * */
310
+ ticks.tickIntervalType = 'Integer';
311
+ ticks.minor = ticks.minor < 1 ? math.number(math.ceil(minorLimits.min)) : ticks.minor >= math.number(math.ceil(minorLimits.min)) && ticks.minor <= math.number(math.floor(minorLimits.max)) ? ticks.minor : math.number(math.ceil(minorLimits.min));
312
+ ticks.integerTick = ticks.minor;
313
+ minorValues = {
314
+ decimal: [],
315
+ fraction: []
316
+ };
317
+ ticks.fractionTick = '0';
318
+ ticks.decimalTick = 0;
319
+ } else if (minorLimits.min >= 0 && minorLimits.max < 1) {
320
+ /*
321
+ * In this scenario only decimal or fraction tick will be enabled
322
+ * */
323
+ if (ticks.tickIntervalType === 'Integer') {
324
+ ticks.tickIntervalType = 'Fraction';
325
+ }
326
+
327
+ minorValues = _numberLine.tickUtils.generateMinorValues(minorLimits);
328
+ var minValue = math.number(math.fraction(minorValues.fraction[0]));
329
+ var maxValue = math.number(math.fraction(minorValues.fraction[minorValues.fraction.length - 1]));
330
+
331
+ if (ticks.minor < minValue || ticks.minor > maxValue) {
332
+ switch (ticks.tickIntervalType) {
333
+ case 'Fraction':
334
+ ticks.minor = math.number(math.fraction(minorValues.fraction[minorValues.fraction.length - 1]));
335
+ ticks.fractionTick = minorValues.fraction[minorValues.fraction.length - 1];
336
+ ticks.decimalTick = minorValues.decimal[0];
337
+ break;
338
+
339
+ case 'Decimal':
340
+ case 'Integer':
341
+ ticks.minor = minorValues.decimal[minorValues.decimal.length - 1];
342
+ ticks.decimalTick = minorValues.decimal[minorValues.decimal.length - 1];
343
+ ticks.fractionTick = minorValues.fraction[0];
344
+ }
345
+ } else {
346
+ switch (ticks.tickIntervalType) {
347
+ case 'Fraction':
348
+ var fraction = math.fraction(math.number(ticks.minor));
349
+ ticks.fractionTick = fraction.n + '/' + fraction.d;
350
+ ticks.decimalTick = ticks.decimalTick ? ticks.decimalTick : minorValues.decimal[0];
351
+ break;
352
+
353
+ case 'Decimal':
354
+ case 'Integer':
355
+ ticks.decimalTick = ticks.minor;
356
+ ticks.fractionTick = ticks.fractionTick ? ticks.fractionTick : minorValues.fraction[0];
357
+ }
358
+ }
359
+
360
+ ticks.integerTick = 1;
361
+ } else if (minorLimits.min < 1 && minorLimits.max >= 1) {
362
+ /*
363
+ * In this scenario all integer, decimal or fraction tick will be enabled
364
+ * */
365
+ minorValues = _numberLine.tickUtils.generateMinorValues(minorLimits);
366
+
367
+ if (!(ticks.minor >= minorLimits.min && ticks.minor <= minorLimits.max)) {
368
+ if (minorLimits.min > 0.5) {
369
+ ticks.tickIntervalType = 'Integer';
370
+ }
371
+
372
+ switch (ticks.tickIntervalType) {
373
+ case 'Integer':
374
+ ticks.minor = math.number(math.ceil(minorLimits.min));
375
+ ticks.integerTick = ticks.minor;
376
+ ticks.decimalTick = minorLimits.min > 0.5 ? 0 : minorValues.decimal[0];
377
+ ticks.fractionTick = minorLimits.min > 0.5 ? '0' : minorValues.fraction[0];
378
+ break;
379
+
380
+ case 'Decimal':
381
+ ticks.minor = minorValues.decimal[0];
382
+ ticks.integerTick = 1;
383
+ ticks.decimalTick = ticks.minor;
384
+ ticks.fractionTick = minorValues.fraction[0];
385
+ break;
386
+
387
+ case 'Fraction':
388
+ ticks.minor = math.number(math.fraction(minorValues.fraction[0]));
389
+ ticks.integerTick = 1;
390
+ ticks.decimalTick = minorValues.decimal[0];
391
+ ticks.fractionTick = minorValues.fraction[0];
392
+ }
393
+ } else {
394
+ switch (ticks.tickIntervalType) {
395
+ case 'Integer':
396
+ ticks.integerTick = ticks.minor;
397
+ ticks.decimalTick = minorLimits.min > 0.5 ? 0 : minorValues.decimal[0];
398
+ ticks.fractionTick = minorLimits.min > 0.5 ? '0' : minorValues.fraction[0];
399
+ break;
400
+
401
+ case 'Decimal':
402
+ ticks.integerTick = 1;
403
+ ticks.decimalTick = ticks.minor;
404
+ ticks.fractionTick = minorValues.fraction[0];
405
+ break;
406
+
407
+ case 'Fraction':
408
+ ticks.integerTick = 1;
409
+ ticks.decimalTick = minorValues.decimal[0];
410
+
411
+ var _fraction = math.fraction(math.number(ticks.minor));
412
+
413
+ ticks.fractionTick = _fraction.n + '/' + _fraction.d;
414
+ }
415
+ }
416
+ }
417
+
418
+ return _this.updateMajorValue(_objectSpread(_objectSpread({}, graph), {}, {
419
+ ticks: ticks
420
+ }));
421
+ });
422
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateMajorValue", function (graph) {
423
+ var domain = graph.domain,
424
+ ticks = graph.ticks,
425
+ width = graph.width;
426
+ majorValues = _numberLine.tickUtils.generateMajorValuesForMinor(ticks.minor, domain, width);
427
+
428
+ if (majorValues.decimal.indexOf(ticks.major) === -1) {
429
+ var currIndex = 0;
430
+
431
+ if (ticks.tickIntervalType === 'Integer') {
432
+ currIndex = majorValues.decimal.length > 4 ? 4 : majorValues.decimal.length - 1;
433
+ } else {
434
+ currIndex = majorValues.decimal.length - 1;
435
+ }
436
+
437
+ ticks.major = majorValues.decimal[currIndex];
438
+ }
439
+
440
+ graph.fraction = ticks.tickIntervalType === 'Fraction' && ticks.major < 1;
441
+ return _objectSpread(_objectSpread({}, graph), {}, {
442
+ ticks: ticks
443
+ });
444
+ });
453
445
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeArrows", function (arrows) {
454
446
  return _this.graphChange({
455
447
  arrows: arrows
@@ -488,26 +480,11 @@ var Main = /*#__PURE__*/function (_React$Component) {
488
480
  onChange = _this$props4.onChange;
489
481
  var correctResponse = model.correctResponse,
490
482
  maxNumberOfPoints = model.graph.maxNumberOfPoints;
491
- var availableTypeCount = 0;
492
- Object.entries(availableTypes || {}).forEach(function (_ref6) {
493
- var _ref7 = (0, _slicedToArray2["default"])(_ref6, 2),
494
- type = _ref7[0],
495
- value = _ref7[1];
496
-
497
- if (value) {
498
- availableTypeCount = availableTypeCount + 1;
499
- }
500
- });
501
-
502
- if (maxNumberOfPoints < availableTypeCount) {
503
- _this.props.model.graph.maxNumberOfPoints = availableTypeCount;
504
- }
505
-
506
483
  new Set(correctResponse.map(toPointType)).forEach(function (pointType) {
507
484
  availableTypes[pointType] = true;
508
485
  });
509
486
 
510
- var height = _this.getAdjustedHeight(availableTypes, _this.props.model.graph.maxNumberOfPoints);
487
+ var height = _this.getAdjustedHeight(availableTypes, maxNumberOfPoints);
511
488
 
512
489
  var graph = _objectSpread(_objectSpread({}, model.graph), {}, {
513
490
  availableTypes: availableTypes,
@@ -557,6 +534,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
557
534
  correctResponse: correctResponse
558
535
  });
559
536
  });
537
+ var _props$model$graph = props.model.graph,
538
+ _availableTypes = _props$model$graph.availableTypes,
539
+ _maxNumberOfPoints = _props$model$graph.maxNumberOfPoints;
540
+
541
+ var _height = _this.getAdjustedHeight(_availableTypes, _maxNumberOfPoints);
542
+
560
543
  _this.state = {
561
544
  dialog: {
562
545
  open: false,
@@ -568,72 +551,65 @@ var Main = /*#__PURE__*/function (_React$Component) {
568
551
  }
569
552
  };
570
553
 
571
- _this.checkAndAdjustHeight(_props);
554
+ _this.graphChange({
555
+ height: _height
556
+ });
572
557
 
573
558
  return _this;
574
559
  }
575
560
 
576
561
  (0, _createClass2["default"])(Main, [{
577
- key: "componentDidUpdate",
578
- value: function componentDidUpdate(prevProps, prevState, snapshot) {
579
- var _this$props8;
580
-
581
- if (!(0, _isEqual["default"])(prevProps === null || prevProps === void 0 ? void 0 : prevProps.configuration, (_this$props8 = this.props) === null || _this$props8 === void 0 ? void 0 : _this$props8.configuration)) {
582
- this.checkAndAdjustHeight(this.props);
583
- }
584
- }
585
- }, {
586
562
  key: "render",
587
563
  value: function render() {
588
564
  var _this2 = this;
589
565
 
590
- var _this$props9 = this.props,
591
- classes = _this$props9.classes,
592
- model = _this$props9.model,
593
- _onChange = _this$props9.onChange,
594
- configuration = _this$props9.configuration,
595
- uploadSoundSupport = _this$props9.uploadSoundSupport;
596
-
597
- var _ref8 = configuration || {},
598
- _ref8$contentDimensio = _ref8.contentDimensions,
599
- contentDimensions = _ref8$contentDimensio === void 0 ? {} : _ref8$contentDimensio,
600
- _ref8$instruction = _ref8.instruction,
601
- instruction = _ref8$instruction === void 0 ? {} : _ref8$instruction,
602
- _ref8$teacherInstruct = _ref8.teacherInstructions,
603
- teacherInstructions = _ref8$teacherInstruct === void 0 ? {} : _ref8$teacherInstruct,
604
- _ref8$prompt = _ref8.prompt,
605
- prompt = _ref8$prompt === void 0 ? {} : _ref8$prompt,
606
- _ref8$mathMlOptions = _ref8.mathMlOptions,
607
- mathMlOptions = _ref8$mathMlOptions === void 0 ? {} : _ref8$mathMlOptions,
608
- _ref8$numberLineDimen = _ref8.numberLineDimensions,
609
- numberLineDimensions = _ref8$numberLineDimen === void 0 ? {} : _ref8$numberLineDimen,
610
- _ref8$maxMaxElements = _ref8.maxMaxElements,
611
- maxMaxElements = _ref8$maxMaxElements === void 0 ? 20 : _ref8$maxMaxElements,
612
- _ref8$hidePointConfig = _ref8.hidePointConfigButtons,
613
- hidePointConfigButtons = _ref8$hidePointConfig === void 0 ? false : _ref8$hidePointConfig,
614
- _ref8$availableTools = _ref8.availableTools,
615
- availableTools = _ref8$availableTools === void 0 ? ['PF'] : _ref8$availableTools;
616
-
617
- var _ref9 = model || {},
618
- _ref9$errors = _ref9.errors,
619
- errors = _ref9$errors === void 0 ? {} : _ref9$errors,
620
- graph = _ref9.graph,
621
- spellCheckEnabled = _ref9.spellCheckEnabled,
622
- toolbarEditorPosition = _ref9.toolbarEditorPosition;
623
-
624
- this.reloadTicksData(graph.domain, graph.width, graph.ticks);
566
+ var _this$props8 = this.props,
567
+ classes = _this$props8.classes,
568
+ model = _this$props8.model,
569
+ _onChange = _this$props8.onChange,
570
+ configuration = _this$props8.configuration,
571
+ uploadSoundSupport = _this$props8.uploadSoundSupport;
572
+
573
+ var _ref4 = configuration || {},
574
+ _ref4$contentDimensio = _ref4.contentDimensions,
575
+ contentDimensions = _ref4$contentDimensio === void 0 ? {} : _ref4$contentDimensio,
576
+ _ref4$instruction = _ref4.instruction,
577
+ instruction = _ref4$instruction === void 0 ? {} : _ref4$instruction,
578
+ _ref4$teacherInstruct = _ref4.teacherInstructions,
579
+ teacherInstructions = _ref4$teacherInstruct === void 0 ? {} : _ref4$teacherInstruct,
580
+ _ref4$prompt = _ref4.prompt,
581
+ prompt = _ref4$prompt === void 0 ? {} : _ref4$prompt,
582
+ _ref4$mathMlOptions = _ref4.mathMlOptions,
583
+ mathMlOptions = _ref4$mathMlOptions === void 0 ? {} : _ref4$mathMlOptions,
584
+ _ref4$numberLineDimen = _ref4.numberLineDimensions,
585
+ numberLineDimensions = _ref4$numberLineDimen === void 0 ? {} : _ref4$numberLineDimen,
586
+ _ref4$maxMaxElements = _ref4.maxMaxElements,
587
+ maxMaxElements = _ref4$maxMaxElements === void 0 ? 20 : _ref4$maxMaxElements,
588
+ _ref4$hidePointConfig = _ref4.hidePointConfigButtons,
589
+ hidePointConfigButtons = _ref4$hidePointConfig === void 0 ? false : _ref4$hidePointConfig,
590
+ _ref4$availableTools = _ref4.availableTools,
591
+ availableTools = _ref4$availableTools === void 0 ? ['PF'] : _ref4$availableTools;
592
+
593
+ var _ref5 = model || {},
594
+ _ref5$errors = _ref5.errors,
595
+ errors = _ref5$errors === void 0 ? {} : _ref5$errors,
596
+ spellCheckEnabled = _ref5.spellCheckEnabled,
597
+ toolbarEditorPosition = _ref5.toolbarEditorPosition;
598
+
599
+ var graph = model.graph;
600
+ graph = this.reloadTicksData(graph);
625
601
  var _this$state = this.state,
626
602
  dialog = _this$state.dialog,
627
603
  correctAnswerDialog = _this$state.correctAnswerDialog;
628
604
 
629
- var _ref10 = errors || {},
630
- correctResponseError = _ref10.correctResponseError,
631
- domainError = _ref10.domainError,
632
- maxError = _ref10.maxError,
633
- pointsError = _ref10.pointsError,
634
- promptError = _ref10.prompt,
635
- teacherInstructionsError = _ref10.teacherInstructions,
636
- widthError = _ref10.widthError;
605
+ var _ref6 = errors || {},
606
+ correctResponseError = _ref6.correctResponseError,
607
+ domainError = _ref6.domainError,
608
+ maxError = _ref6.maxError,
609
+ pointsError = _ref6.pointsError,
610
+ promptError = _ref6.prompt,
611
+ teacherInstructionsError = _ref6.teacherInstructions,
612
+ widthError = _ref6.widthError;
637
613
 
638
614
  var validationMessage = (0, _utils.generateValidationMessage)();
639
615
  var correctResponse = (0, _cloneDeep["default"])(model.correctResponse || []).map(toGraphFormat);
@@ -732,8 +708,10 @@ var Main = /*#__PURE__*/function (_React$Component) {
732
708
  }, maxError), domainError && /*#__PURE__*/_react["default"].createElement("div", {
733
709
  className: classes.errorText
734
710
  }, domainError), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, null, /*#__PURE__*/_react["default"].createElement(_ticks["default"], {
735
- ticksModel: ticksModel,
736
- data: data,
711
+ ticks: graph.ticks,
712
+ minorLimits: minorLimits,
713
+ minorValues: minorValues,
714
+ majorValues: majorValues,
737
715
  onChange: this.changeTicks
738
716
  }))), /*#__PURE__*/_react["default"].createElement("div", {
739
717
  className: classes.flexRow
@@ -841,10 +819,6 @@ var Main = /*#__PURE__*/function (_React$Component) {
841
819
  onClose: function onClose() {
842
820
  var graph = _this2.state.correctAnswerDialog.graph;
843
821
 
844
- _this2.reloadTicksData(graph.domain, graph.width, graph.ticks);
845
-
846
- _this2.assignTicksModelToGraph(graph);
847
-
848
822
  _onChange({
849
823
  graph: graph
850
824
  });