@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.
- package/configure/lib/defaults.js +1 -3
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/main.js +228 -254
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/size.js +4 -0
- package/configure/lib/size.js.map +1 -1
- package/configure/lib/ticks.js +71 -109
- package/configure/lib/ticks.js.map +1 -1
- package/docs/demo/generate.js +2 -2
- package/docs/pie-schema.json +39 -30
- package/docs/pie-schema.json.md +27 -15
- package/lib/number-line/graph/tick-utils.js +68 -44
- package/lib/number-line/graph/tick-utils.js.map +1 -1
- package/lib/number-line/graph/ticks.js +2 -2
- package/lib/number-line/graph/ticks.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","correctResponse","graph","domain","min","max","ticks","minor","major","
|
|
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"}
|
package/configure/lib/main.js
CHANGED
|
@@ -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
|
|
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(
|
|
180
|
+
function Main(props) {
|
|
195
181
|
var _this;
|
|
196
182
|
|
|
197
183
|
(0, _classCallCheck2["default"])(this, Main);
|
|
198
|
-
_this = _super.call(this,
|
|
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 =
|
|
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
|
|
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,
|
|
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.
|
|
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$
|
|
591
|
-
classes = _this$
|
|
592
|
-
model = _this$
|
|
593
|
-
_onChange = _this$
|
|
594
|
-
configuration = _this$
|
|
595
|
-
uploadSoundSupport = _this$
|
|
596
|
-
|
|
597
|
-
var
|
|
598
|
-
|
|
599
|
-
contentDimensions =
|
|
600
|
-
|
|
601
|
-
instruction =
|
|
602
|
-
|
|
603
|
-
teacherInstructions =
|
|
604
|
-
|
|
605
|
-
prompt =
|
|
606
|
-
|
|
607
|
-
mathMlOptions =
|
|
608
|
-
|
|
609
|
-
numberLineDimensions =
|
|
610
|
-
|
|
611
|
-
maxMaxElements =
|
|
612
|
-
|
|
613
|
-
hidePointConfigButtons =
|
|
614
|
-
|
|
615
|
-
availableTools =
|
|
616
|
-
|
|
617
|
-
var
|
|
618
|
-
|
|
619
|
-
errors =
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
this.reloadTicksData(graph
|
|
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
|
|
630
|
-
correctResponseError =
|
|
631
|
-
domainError =
|
|
632
|
-
maxError =
|
|
633
|
-
pointsError =
|
|
634
|
-
promptError =
|
|
635
|
-
teacherInstructionsError =
|
|
636
|
-
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
|
-
|
|
736
|
-
|
|
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
|
});
|