@pie-element/number-line 8.15.4-next.9 → 8.16.1-next.0
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/CHANGELOG.md +22 -0
- package/configure/CHANGELOG.md +19 -0
- package/configure/lib/defaults.js +28 -6
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +6 -0
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +121 -48
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +2 -2
- package/controller/CHANGELOG.md +18 -0
- package/controller/lib/index.js +8 -1
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/config-schema.json +135 -0
- package/docs/config-schema.json.md +101 -0
- package/docs/pie-schema.json +23 -1
- package/docs/pie-schema.json.md +16 -0
- package/lib/number-line/index.js +64 -49
- package/lib/number-line/index.js.map +1 -1
- package/package.json +3 -3
package/docs/config-schema.json
CHANGED
|
@@ -263,6 +263,136 @@
|
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
265
|
},
|
|
266
|
+
"rationale": {
|
|
267
|
+
"title": "EditableHtmlPluginConfigureRequired",
|
|
268
|
+
"type": "object",
|
|
269
|
+
"properties": {
|
|
270
|
+
"inputConfiguration": {
|
|
271
|
+
"title": "EditableHtmlConfigureProp",
|
|
272
|
+
"type": "object",
|
|
273
|
+
"properties": {
|
|
274
|
+
"math": {
|
|
275
|
+
"title": "EditableHtmlButtonConfigure",
|
|
276
|
+
"type": "object",
|
|
277
|
+
"properties": {
|
|
278
|
+
"disabled": {
|
|
279
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
280
|
+
"type": "boolean",
|
|
281
|
+
"title": "disabled"
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
"audio": {
|
|
286
|
+
"title": "EditableHtmlButtonConfigure",
|
|
287
|
+
"type": "object",
|
|
288
|
+
"properties": {
|
|
289
|
+
"disabled": {
|
|
290
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
291
|
+
"type": "boolean",
|
|
292
|
+
"title": "disabled"
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
"video": {
|
|
297
|
+
"title": "EditableHtmlButtonConfigure",
|
|
298
|
+
"type": "object",
|
|
299
|
+
"properties": {
|
|
300
|
+
"disabled": {
|
|
301
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
302
|
+
"type": "boolean",
|
|
303
|
+
"title": "disabled"
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
"image": {
|
|
308
|
+
"title": "EditableHtmlButtonConfigure",
|
|
309
|
+
"type": "object",
|
|
310
|
+
"properties": {
|
|
311
|
+
"disabled": {
|
|
312
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
313
|
+
"type": "boolean",
|
|
314
|
+
"title": "disabled"
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
"customPlugins": {
|
|
319
|
+
"description": "An array of objects that determine custom plugins.\nA custom plugin is an object which determines how the button will look like (icon) and the event name that will be triggered when button gets pressed (event).\nExample can be found at https://github.com/pie-framework/pie-lib/blob/develop/packages/demo/pages/editable-html.js#L425.",
|
|
320
|
+
"type": "array",
|
|
321
|
+
"items": {
|
|
322
|
+
"title": "CustomPlugin",
|
|
323
|
+
"type": "object",
|
|
324
|
+
"properties": {
|
|
325
|
+
"event": {
|
|
326
|
+
"description": "The name of the custom event. It needs to be valid (only letters, numbers and \"_\" can be used).\nPIE will emit the event prefixed with \"PIE-\".\nEg: event = 'client_custom_event_A' => the emitted event will be \"PIE-client_custom_event_A\"",
|
|
327
|
+
"type": "string",
|
|
328
|
+
"title": "event"
|
|
329
|
+
},
|
|
330
|
+
"iconAlt": {
|
|
331
|
+
"description": "The alt for the custom button icon",
|
|
332
|
+
"type": "string",
|
|
333
|
+
"title": "iconAlt"
|
|
334
|
+
},
|
|
335
|
+
"iconType": {
|
|
336
|
+
"description": "The icon type.\nCurrently, only \"SVG\" is supported.",
|
|
337
|
+
"type": "string",
|
|
338
|
+
"title": "iconType"
|
|
339
|
+
},
|
|
340
|
+
"icon": {
|
|
341
|
+
"description": "The icon string. Currently, only \"SVG\" is supported, so it needs to be a valid svg.",
|
|
342
|
+
"type": "string",
|
|
343
|
+
"title": "icon"
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
"required": [
|
|
347
|
+
"event",
|
|
348
|
+
"icon",
|
|
349
|
+
"iconAlt",
|
|
350
|
+
"iconType"
|
|
351
|
+
]
|
|
352
|
+
},
|
|
353
|
+
"title": "customPlugins"
|
|
354
|
+
},
|
|
355
|
+
"blockquote": {
|
|
356
|
+
"title": "EditableHtmlButtonConfigure",
|
|
357
|
+
"type": "object",
|
|
358
|
+
"properties": {
|
|
359
|
+
"disabled": {
|
|
360
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
361
|
+
"type": "boolean",
|
|
362
|
+
"title": "disabled"
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
"h3": {
|
|
367
|
+
"title": "EditableHtmlButtonConfigure",
|
|
368
|
+
"type": "object",
|
|
369
|
+
"properties": {
|
|
370
|
+
"disabled": {
|
|
371
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
372
|
+
"type": "boolean",
|
|
373
|
+
"title": "disabled"
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
},
|
|
379
|
+
"required": {
|
|
380
|
+
"description": "Indicates if the item is required and the value cannot be empty",
|
|
381
|
+
"type": "boolean",
|
|
382
|
+
"title": "required"
|
|
383
|
+
},
|
|
384
|
+
"settings": {
|
|
385
|
+
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
386
|
+
"type": "boolean",
|
|
387
|
+
"title": "settings"
|
|
388
|
+
},
|
|
389
|
+
"label": {
|
|
390
|
+
"description": "Indicates the label for the item that has to be displayed in the Settings Panel",
|
|
391
|
+
"type": "string",
|
|
392
|
+
"title": "label"
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
},
|
|
266
396
|
"teacherInstructions": {
|
|
267
397
|
"title": "EditableHtmlPluginConfigureRequired",
|
|
268
398
|
"type": "object",
|
|
@@ -572,6 +702,11 @@
|
|
|
572
702
|
}
|
|
573
703
|
}
|
|
574
704
|
},
|
|
705
|
+
"settingsPanelDisabled": {
|
|
706
|
+
"description": "Indicates if the settings panel is not available",
|
|
707
|
+
"type": "boolean",
|
|
708
|
+
"title": "settingsPanelDisabled"
|
|
709
|
+
},
|
|
575
710
|
"maxMaxElements": {
|
|
576
711
|
"description": "Holds numeric value for maximum number of elements allowed on number line.",
|
|
577
712
|
"type": "number",
|
|
@@ -197,6 +197,103 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
197
197
|
|
|
198
198
|
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
199
199
|
|
|
200
|
+
# `rationale` (object)
|
|
201
|
+
|
|
202
|
+
Properties of the `rationale` object:
|
|
203
|
+
|
|
204
|
+
## `inputConfiguration` (object)
|
|
205
|
+
|
|
206
|
+
Properties of the `inputConfiguration` object:
|
|
207
|
+
|
|
208
|
+
### `math` (object)
|
|
209
|
+
|
|
210
|
+
Properties of the `math` object:
|
|
211
|
+
|
|
212
|
+
#### `disabled` (boolean)
|
|
213
|
+
|
|
214
|
+
Indicates if the plugin is disabled or not
|
|
215
|
+
|
|
216
|
+
### `audio` (object)
|
|
217
|
+
|
|
218
|
+
Properties of the `audio` object:
|
|
219
|
+
|
|
220
|
+
#### `disabled` (boolean)
|
|
221
|
+
|
|
222
|
+
Indicates if the plugin is disabled or not
|
|
223
|
+
|
|
224
|
+
### `video` (object)
|
|
225
|
+
|
|
226
|
+
Properties of the `video` object:
|
|
227
|
+
|
|
228
|
+
#### `disabled` (boolean)
|
|
229
|
+
|
|
230
|
+
Indicates if the plugin is disabled or not
|
|
231
|
+
|
|
232
|
+
### `image` (object)
|
|
233
|
+
|
|
234
|
+
Properties of the `image` object:
|
|
235
|
+
|
|
236
|
+
#### `disabled` (boolean)
|
|
237
|
+
|
|
238
|
+
Indicates if the plugin is disabled or not
|
|
239
|
+
|
|
240
|
+
### `customPlugins` (array)
|
|
241
|
+
|
|
242
|
+
An array of objects that determine custom plugins.
|
|
243
|
+
A custom plugin is an object which determines how the button will look like (icon) and the event name that will be triggered when button gets pressed (event).
|
|
244
|
+
Example can be found at https://github.com/pie-framework/pie-lib/blob/develop/packages/demo/pages/editable-html.js#L425.
|
|
245
|
+
|
|
246
|
+
The object is an array with all elements of the type `object`.
|
|
247
|
+
|
|
248
|
+
The array object has the following properties:
|
|
249
|
+
|
|
250
|
+
#### `event` (string, required)
|
|
251
|
+
|
|
252
|
+
The name of the custom event. It needs to be valid (only letters, numbers and "_" can be used).
|
|
253
|
+
PIE will emit the event prefixed with "PIE-".
|
|
254
|
+
Eg: event = 'client_custom_event_A' => the emitted event will be "PIE-client_custom_event_A"
|
|
255
|
+
|
|
256
|
+
#### `iconAlt` (string, required)
|
|
257
|
+
|
|
258
|
+
The alt for the custom button icon
|
|
259
|
+
|
|
260
|
+
#### `iconType` (string, required)
|
|
261
|
+
|
|
262
|
+
The icon type.
|
|
263
|
+
Currently, only "SVG" is supported.
|
|
264
|
+
|
|
265
|
+
#### `icon` (string, required)
|
|
266
|
+
|
|
267
|
+
The icon string. Currently, only "SVG" is supported, so it needs to be a valid svg.
|
|
268
|
+
|
|
269
|
+
### `blockquote` (object)
|
|
270
|
+
|
|
271
|
+
Properties of the `blockquote` object:
|
|
272
|
+
|
|
273
|
+
#### `disabled` (boolean)
|
|
274
|
+
|
|
275
|
+
Indicates if the plugin is disabled or not
|
|
276
|
+
|
|
277
|
+
### `h3` (object)
|
|
278
|
+
|
|
279
|
+
Properties of the `h3` object:
|
|
280
|
+
|
|
281
|
+
#### `disabled` (boolean)
|
|
282
|
+
|
|
283
|
+
Indicates if the plugin is disabled or not
|
|
284
|
+
|
|
285
|
+
## `required` (boolean)
|
|
286
|
+
|
|
287
|
+
Indicates if the item is required and the value cannot be empty
|
|
288
|
+
|
|
289
|
+
## `settings` (boolean)
|
|
290
|
+
|
|
291
|
+
Indicates if the item has to be displayed in the Settings Panel
|
|
292
|
+
|
|
293
|
+
## `label` (string)
|
|
294
|
+
|
|
295
|
+
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
296
|
+
|
|
200
297
|
# `teacherInstructions` (object)
|
|
201
298
|
|
|
202
299
|
Properties of the `teacherInstructions` object:
|
|
@@ -415,6 +512,10 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
415
512
|
|
|
416
513
|
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
417
514
|
|
|
515
|
+
# `settingsPanelDisabled` (boolean)
|
|
516
|
+
|
|
517
|
+
Indicates if the settings panel is not available
|
|
518
|
+
|
|
418
519
|
# `maxMaxElements` (number)
|
|
419
520
|
|
|
420
521
|
Holds numeric value for maximum number of elements allowed on number line.
|
package/docs/pie-schema.json
CHANGED
|
@@ -678,6 +678,26 @@
|
|
|
678
678
|
"type": "boolean",
|
|
679
679
|
"title": "spellCheckEnabled"
|
|
680
680
|
},
|
|
681
|
+
"promptEnabled": {
|
|
682
|
+
"description": "Indicates if the prompt is enabled",
|
|
683
|
+
"type": "boolean",
|
|
684
|
+
"title": "promptEnabled"
|
|
685
|
+
},
|
|
686
|
+
"rationale": {
|
|
687
|
+
"description": "Indicates rationale for the answer",
|
|
688
|
+
"type": "string",
|
|
689
|
+
"title": "rationale"
|
|
690
|
+
},
|
|
691
|
+
"rationaleEnabled": {
|
|
692
|
+
"description": "Indicates if Rationale are enabled",
|
|
693
|
+
"type": "boolean",
|
|
694
|
+
"title": "rationaleEnabled"
|
|
695
|
+
},
|
|
696
|
+
"teacherInstructionsEnabled": {
|
|
697
|
+
"description": "Indicates if Teacher Instructions are enabled",
|
|
698
|
+
"type": "boolean",
|
|
699
|
+
"title": "teacherInstructionsEnabled"
|
|
700
|
+
},
|
|
681
701
|
"toolbarEditorPosition": {
|
|
682
702
|
"description": "Indicates the editor's toolbar position which can be 'bottom' or 'top'",
|
|
683
703
|
"default": ": 'bottom'",
|
|
@@ -710,7 +730,9 @@
|
|
|
710
730
|
"graph",
|
|
711
731
|
"id",
|
|
712
732
|
"partialScoring",
|
|
713
|
-
"
|
|
733
|
+
"rationaleEnabled",
|
|
734
|
+
"spellCheckEnabled",
|
|
735
|
+
"teacherInstructionsEnabled"
|
|
714
736
|
],
|
|
715
737
|
"definitions": {
|
|
716
738
|
"EditableHtmlConfigureProp": {
|
package/docs/pie-schema.json.md
CHANGED
|
@@ -168,6 +168,22 @@ The question prompt or item stem
|
|
|
168
168
|
|
|
169
169
|
Indicates if spellcheck is enabled for the author. Default value is true
|
|
170
170
|
|
|
171
|
+
# `promptEnabled` (boolean)
|
|
172
|
+
|
|
173
|
+
Indicates if the prompt is enabled
|
|
174
|
+
|
|
175
|
+
# `rationale` (string)
|
|
176
|
+
|
|
177
|
+
Indicates rationale for the answer
|
|
178
|
+
|
|
179
|
+
# `rationaleEnabled` (boolean, required)
|
|
180
|
+
|
|
181
|
+
Indicates if Rationale are enabled
|
|
182
|
+
|
|
183
|
+
# `teacherInstructionsEnabled` (boolean, required)
|
|
184
|
+
|
|
185
|
+
Indicates if Teacher Instructions are enabled
|
|
186
|
+
|
|
171
187
|
# `toolbarEditorPosition` (string, enum)
|
|
172
188
|
|
|
173
189
|
Indicates the editor's toolbar position which can be 'bottom' or 'top'
|
package/lib/number-line/index.js
CHANGED
|
@@ -27,28 +27,14 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
27
27
|
|
|
28
28
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
29
29
|
|
|
30
|
-
var _feedback = _interopRequireDefault(require("./feedback"));
|
|
31
|
-
|
|
32
|
-
var _graph = _interopRequireDefault(require("./graph"));
|
|
33
|
-
|
|
34
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
35
|
-
|
|
36
|
-
var _pointChooser = _interopRequireDefault(require("./point-chooser"));
|
|
37
|
-
|
|
38
30
|
var _react = _interopRequireDefault(require("react"));
|
|
39
31
|
|
|
40
32
|
var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/pie-toolbox/correct-answer-toggle"));
|
|
41
33
|
|
|
42
|
-
var _builder = require("./graph/elements/builder");
|
|
43
|
-
|
|
44
34
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
45
35
|
|
|
46
36
|
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
47
37
|
|
|
48
|
-
var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
|
|
49
|
-
|
|
50
|
-
var _reactJss = _interopRequireDefault(require("react-jss"));
|
|
51
|
-
|
|
52
38
|
var _isArray = _interopRequireDefault(require("lodash/isArray"));
|
|
53
39
|
|
|
54
40
|
var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
|
|
@@ -57,43 +43,63 @@ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
|
57
43
|
|
|
58
44
|
var _translator = _interopRequireDefault(require("@pie-lib/pie-toolbox/translator"));
|
|
59
45
|
|
|
46
|
+
var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
|
|
47
|
+
|
|
48
|
+
var _styles = require("@material-ui/core/styles");
|
|
49
|
+
|
|
50
|
+
var _feedback = _interopRequireDefault(require("./feedback"));
|
|
51
|
+
|
|
52
|
+
var _graph = _interopRequireDefault(require("./graph"));
|
|
53
|
+
|
|
54
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
55
|
+
|
|
56
|
+
var _pointChooser = _interopRequireDefault(require("./point-chooser"));
|
|
57
|
+
|
|
58
|
+
var _builder = require("./graph/elements/builder");
|
|
59
|
+
|
|
60
60
|
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); }; }
|
|
61
61
|
|
|
62
62
|
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; } }
|
|
63
63
|
|
|
64
64
|
var translator = _translator["default"].translator;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
65
|
+
|
|
66
|
+
var styles = function styles(theme) {
|
|
67
|
+
return {
|
|
68
|
+
mainContainer: {
|
|
69
|
+
color: _renderUi.color.text(),
|
|
70
|
+
backgroundColor: _renderUi.color.background()
|
|
71
|
+
},
|
|
72
|
+
graphTitle: {
|
|
73
|
+
textAlign: 'center',
|
|
74
|
+
pointerEvents: 'none',
|
|
75
|
+
userSelect: 'none'
|
|
76
|
+
},
|
|
77
|
+
numberLine: {
|
|
78
|
+
boxSizing: 'unset'
|
|
79
|
+
},
|
|
80
|
+
toggle: {
|
|
81
|
+
marginBottom: '16px'
|
|
82
|
+
},
|
|
83
|
+
black_on_rose: {
|
|
84
|
+
backgroundColor: 'mistyrose'
|
|
85
|
+
},
|
|
86
|
+
white_on_black: {
|
|
87
|
+
backgroundColor: 'black',
|
|
88
|
+
'--correct-answer-toggle-label-color': 'white',
|
|
89
|
+
'--tick-color': 'white',
|
|
90
|
+
'--line-stroke': 'white',
|
|
91
|
+
'--arrow-color': 'white',
|
|
92
|
+
'--point-stroke': 'white',
|
|
93
|
+
'--point-fill': 'black'
|
|
94
|
+
},
|
|
95
|
+
prompt: {
|
|
96
|
+
verticalAlign: 'middle',
|
|
97
|
+
marginBottom: '16px'
|
|
98
|
+
},
|
|
99
|
+
collapsible: {
|
|
100
|
+
paddingBottom: theme.spacing.unit * 2
|
|
101
|
+
}
|
|
102
|
+
};
|
|
97
103
|
};
|
|
98
104
|
|
|
99
105
|
var NumberLine = /*#__PURE__*/function (_React$Component) {
|
|
@@ -268,7 +274,8 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
|
|
|
268
274
|
emptyAnswer = model.emptyAnswer,
|
|
269
275
|
feedback = model.feedback,
|
|
270
276
|
colorContrast = model.colorContrast,
|
|
271
|
-
language = model.language
|
|
277
|
+
language = model.language,
|
|
278
|
+
teacherInstructions = model.teacherInstructions;
|
|
272
279
|
var addElement = this.addElement.bind(this);
|
|
273
280
|
var elementsSelected = !disabled && selectedElements && selectedElements.length > 0;
|
|
274
281
|
var ticks = graph.ticks,
|
|
@@ -354,7 +361,15 @@ var NumberLine = /*#__PURE__*/function (_React$Component) {
|
|
|
354
361
|
var numberLineContainerNames = (0, _classnames["default"])(classes.numberLine, classes.mainContainer, classes[colorContrast]);
|
|
355
362
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
356
363
|
className: containerNames
|
|
357
|
-
},
|
|
364
|
+
}, teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
365
|
+
labels: {
|
|
366
|
+
hidden: 'Show Teacher Instructions',
|
|
367
|
+
visible: 'Hide Teacher Instructions'
|
|
368
|
+
},
|
|
369
|
+
className: classes.collapsible
|
|
370
|
+
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
371
|
+
prompt: teacherInstructions
|
|
372
|
+
})), prompt && /*#__PURE__*/_react["default"].createElement("div", {
|
|
358
373
|
className: classes.prompt
|
|
359
374
|
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
360
375
|
prompt: prompt
|
|
@@ -419,7 +434,7 @@ exports.NumberLine = NumberLine;
|
|
|
419
434
|
classes: _propTypes["default"].object.isRequired
|
|
420
435
|
});
|
|
421
436
|
|
|
422
|
-
var _default = (0,
|
|
437
|
+
var _default = (0, _styles.withStyles)(styles)(NumberLine);
|
|
423
438
|
|
|
424
439
|
exports["default"] = _default;
|
|
425
440
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/number-line/index.jsx"],"names":["translator","Translator","styles","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","boxSizing","toggle","marginBottom","black_on_rose","white_on_black","prompt","verticalAlign","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","minWidth","maxWidth","maxHeight","corrected","correct","incorrect","disabled","correctResponse","emptyAnswer","feedback","colorContrast","language","addElement","bind","elementsSelected","arrows","height","availableTypes","title","fraction","width","getSize","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","lng","count","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","containerNames","numberLineContainerNames","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","__html","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport React from 'react';\nimport Toggle from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { buildElementModel } from './graph/elements/builder';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { color, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport injectSheet from 'react-jss';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nexport { Graph };\n\nconst styles = {\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n boxSizing: 'unset',\n },\n toggle: {\n marginBottom: '16px',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n};\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType ? initialType.toLowerCase() : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain } = this.props.model.graph;\n\n let elementData = buildElementModel(x, this.state.elementType, domain, ticks.minor);\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return isNumber(maxNumberOfPoints) && maxNumberOfPoints > 0 && (answer || []).length >= maxNumberOfPoints;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement, minWidth = 400, maxWidth = 1600, maxHeight } = this.props;\n let { showCorrectAnswer, answers, selectedElements, showMaxPointsWarning, elementType } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n language,\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected = !disabled && selectedElements && selectedElements.length > 0;\n const { ticks, domain, arrows, maxNumberOfPoints, height = 100, availableTypes, title, fraction } = graph;\n const width = this.getSize('width', minWidth, maxWidth, 600);\n const graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: (height > maxHeight ? maxHeight : height) || 100,\n arrows,\n fraction,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer ? getCorrectAnswerElements() : getAnswerElements();\n\n let maxPointsMessage = () =>\n maxNumberOfPoints == 1\n ? translator.t('numberLine.addElementLimit_one', { lng: language, count: 1 })\n : translator.t('numberLine.addElementLimit_other', { lng: language, count: maxNumberOfPoints });\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const containerNames = classNames(classes.mainContainer, classes[colorContrast]);\n const numberLineContainerNames = classNames(classes.numberLine, classes.mainContainer, classes[colorContrast]);\n\n return (\n <div className={containerNames}>\n {prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={prompt}/>\n </div>\n )}\n\n <div className={numberLineContainerNames} style={{ width }}>\n <div style={{ width: adjustedWidth }} className={classes.toggle}>\n <Toggle\n show={isArray(correctResponse) && correctResponse.length && !emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n language={language}\n />\n </div>\n\n {!disabled && (\n <PointChooser\n elementType={elementType}\n showDeleteButton={elementsSelected}\n onDeleteClick={deleteElements}\n onElementType={this.elementTypeSelected.bind(this)}\n onClearElements={this.clearAll.bind(this)}\n onUndoElement={this.undo.bind(this)}\n icons={getIcons()}\n language={language}\n />\n )}\n\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {title && <div className={classes.graphTitle} dangerouslySetInnerHTML={{ __html: title }}/>}\n\n {showMaxPointsWarning && <Feedback type=\"info\" width={adjustedWidth} message={maxPointsMessage()}/>}\n {feedback && !showCorrectAnswer && <Feedback {...feedback} width={adjustedWidth}/>}\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(NumberLine);\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/number-line/index.jsx"],"names":["translator","Translator","styles","theme","mainContainer","color","text","backgroundColor","background","graphTitle","textAlign","pointerEvents","userSelect","numberLine","boxSizing","toggle","marginBottom","black_on_rose","white_on_black","prompt","verticalAlign","collapsible","paddingBottom","spacing","unit","NumberLine","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","index","selected","indexOf","concat","filter","e","setState","t","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","elementData","minor","contains","some","element","push","onAddElement","maxNumberOfPoints","length","nextProps","showCorrectAnswer","type","min","max","defaultValue","Math","onUndoElement","pop","onClearElements","classes","onDeleteElements","onMoveElement","minWidth","maxWidth","maxHeight","corrected","correct","incorrect","disabled","correctResponse","emptyAnswer","feedback","colorContrast","language","teacherInstructions","addElement","bind","elementsSelected","arrows","height","availableTypes","title","fraction","width","getSize","graphProps","getAnswerElements","map","out","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","lng","count","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","containerNames","numberLineContainerNames","hidden","visible","elementTypeSelected","clearAll","undo","toggleElement","deselectElements","__html","React","Component","PropTypes","func","isRequired","object","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Toggle from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isEqual from 'lodash/isEqual';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nimport { Collapsible, color, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Feedback from './feedback';\nimport Graph from './graph';\nimport PropTypes from 'prop-types';\nimport PointChooser from './point-chooser';\nimport { buildElementModel } from './graph/elements/builder';\n\nconst { translator } = Translator;\n\nexport { Graph };\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n graphTitle: {\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n numberLine: {\n boxSizing: 'unset',\n },\n toggle: {\n marginBottom: '16px',\n },\n black_on_rose: {\n backgroundColor: 'mistyrose',\n },\n white_on_black: {\n backgroundColor: 'black',\n '--correct-answer-toggle-label-color': 'white',\n '--tick-color': 'white',\n '--line-stroke': 'white',\n '--arrow-color': 'white',\n '--point-stroke': 'white',\n '--point-fill': 'black',\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: '16px',\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nexport class NumberLine extends React.Component {\n static propTypes = {\n onMoveElement: PropTypes.func.isRequired,\n onDeleteElements: PropTypes.func.isRequired,\n onAddElement: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n answer: PropTypes.array,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props, context) {\n super(props, context);\n\n let initialType = props.model.graph ? props.model.graph.initialType : null;\n initialType = initialType ? initialType.toLowerCase() : PointChooser.DEFAULT_TYPE;\n\n this.state = {\n selectedElements: [],\n elementType: initialType,\n answers: props.answer,\n };\n }\n\n toggleElement(index) {\n let selected = [];\n if (this.state.selectedElements.indexOf(index) === -1) {\n selected = this.state.selectedElements.concat([index]);\n } else {\n selected = this.state.selectedElements.filter((e) => e !== index);\n }\n this.setState({ selectedElements: selected });\n }\n\n elementTypeSelected(t) {\n this.setState({ elementType: t });\n }\n\n addElement(x) {\n if (this.hasMaxNoOfPoints()) {\n this.setState({ showMaxPointsWarning: true });\n setTimeout(() => {\n this.setState({ showMaxPointsWarning: false });\n }, 2000);\n return;\n }\n\n const { ticks, domain } = this.props.model.graph;\n\n let elementData = buildElementModel(x, this.state.elementType, domain, ticks.minor);\n\n if (elementData) {\n const { answers } = this.state;\n\n const contains = answers.some((element) => {\n return isEqual(element, elementData);\n });\n\n if (!contains) {\n answers.push(elementData);\n this.setState({ answers });\n this.props.onAddElement(elementData);\n }\n }\n }\n\n hasMaxNoOfPoints() {\n let {\n answer,\n model: {\n graph: { maxNumberOfPoints },\n },\n } = this.props;\n\n return isNumber(maxNumberOfPoints) && maxNumberOfPoints > 0 && (answer || []).length >= maxNumberOfPoints;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { answer } = nextProps;\n\n if (!isEqual(this.state.answers, answer)) {\n this.setState({ showCorrectAnswer: false, answers: answer });\n }\n }\n\n deselectElements() {\n this.setState({ selectedElements: [] });\n }\n\n getSize(type, min, max, defaultValue) {\n const {\n model: { graph },\n } = this.props;\n\n if (graph && graph[type]) {\n return Math.max(min, Math.min(max, graph[type]));\n } else {\n return defaultValue;\n }\n }\n\n undo() {\n const { answers } = this.state;\n const { onUndoElement } = this.props;\n\n answers.pop();\n this.setState({ answers });\n onUndoElement();\n }\n\n clearAll() {\n const { onClearElements } = this.props;\n\n this.setState({ answers: [] });\n onClearElements();\n }\n\n render() {\n let { model, classes, onDeleteElements, onMoveElement, minWidth = 400, maxWidth = 1600, maxHeight } = this.props;\n let { showCorrectAnswer, answers, selectedElements, showMaxPointsWarning, elementType } = this.state;\n let {\n corrected = { correct: [], incorrect: [] },\n disabled,\n graph,\n correctResponse,\n prompt,\n emptyAnswer,\n feedback,\n colorContrast,\n language,\n teacherInstructions\n } = model;\n let addElement = this.addElement.bind(this);\n let elementsSelected = !disabled && selectedElements && selectedElements.length > 0;\n const { ticks, domain, arrows, maxNumberOfPoints, height = 100, availableTypes, title, fraction } = graph;\n const width = this.getSize('width', minWidth, maxWidth, 600);\n\n const graphProps = {\n disabled,\n domain,\n ticks,\n width,\n height: (height > maxHeight ? maxHeight : height) || 100,\n arrows,\n fraction,\n };\n\n let getAnswerElements = () => {\n return (answers || []).map((e, index) => {\n let out = cloneDeep(e);\n out.selected = selectedElements.indexOf(index) !== -1;\n out.correct = corrected.correct.includes(index)\n ? true\n : corrected.incorrect.includes(index)\n ? false\n : undefined;\n return out;\n });\n };\n\n let getCorrectAnswerElements = () => {\n return (correctResponse || []).map((r) => {\n r.correct = true;\n return r;\n });\n };\n\n let elements = showCorrectAnswer ? getCorrectAnswerElements() : getAnswerElements();\n\n let maxPointsMessage = () =>\n maxNumberOfPoints == 1\n ? translator.t('numberLine.addElementLimit_one', { lng: language, count: 1 })\n : translator.t('numberLine.addElementLimit_other', { lng: language, count: maxNumberOfPoints });\n\n let deleteElements = () => {\n onDeleteElements(selectedElements);\n\n answers = answers.filter((v, index) => {\n return !selectedElements.some((d) => d === index);\n });\n\n this.setState({ selectedElements: [], answers });\n };\n\n let getIcons = () => {\n if (availableTypes) {\n return Object.keys(availableTypes)\n .filter((k) => availableTypes[k])\n .map((k) => k.toLowerCase());\n }\n };\n\n let onShowCorrectAnswer = (show) => {\n this.setState({ showCorrectAnswer: show });\n };\n\n let adjustedWidth = graphProps.width - 20;\n\n const containerNames = classNames(classes.mainContainer, classes[colorContrast]);\n const numberLineContainerNames = classNames(classes.numberLine, classes.mainContainer, classes[colorContrast]);\n\n return (\n <div className={containerNames}>\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={teacherInstructions}/>\n </Collapsible>\n )}\n\n {prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n <div className={numberLineContainerNames} style={{ width }}>\n <div style={{ width: adjustedWidth }} className={classes.toggle}>\n <Toggle\n show={isArray(correctResponse) && correctResponse.length && !emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n language={language}\n />\n </div>\n\n {!disabled && (\n <PointChooser\n elementType={elementType}\n showDeleteButton={elementsSelected}\n onDeleteClick={deleteElements}\n onElementType={this.elementTypeSelected.bind(this)}\n onClearElements={this.clearAll.bind(this)}\n onUndoElement={this.undo.bind(this)}\n icons={getIcons()}\n language={language}\n />\n )}\n\n <Graph\n {...graphProps}\n elements={elements}\n onAddElement={addElement}\n onMoveElement={onMoveElement}\n onToggleElement={this.toggleElement.bind(this)}\n onDeselectElements={this.deselectElements.bind(this)}\n debug={false}\n />\n {title && <div className={classes.graphTitle} dangerouslySetInnerHTML={{ __html: title }} />}\n\n {showMaxPointsWarning && <Feedback type=\"info\" width={adjustedWidth} message={maxPointsMessage()} />}\n {feedback && !showCorrectAnswer && <Feedback {...feedback} width={adjustedWidth} />}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(NumberLine);\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/number-line",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.16.1-next.0+8e88fed57",
|
|
4
4
|
"repository": "pie-framework/pie-elements",
|
|
5
5
|
"description": "",
|
|
6
6
|
"publishConfig": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.2",
|
|
11
|
-
"@pie-lib/pie-toolbox": "1.
|
|
11
|
+
"@pie-lib/pie-toolbox": "1.26.0",
|
|
12
12
|
"classnames": "^2.2.5",
|
|
13
13
|
"d3-scale": "^3.2.1",
|
|
14
14
|
"d3-selection": "^1.4.1",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"author": "pie framework developers",
|
|
25
25
|
"license": "ISC",
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "8e88fed57fe7f61fd27a1a7ac11fcf8e2d87d207",
|
|
27
27
|
"scripts": {
|
|
28
28
|
"postpublish": "../../scripts/postpublish"
|
|
29
29
|
},
|