@pie-element/number-line 13.1.2-next.2 → 13.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/CHANGELOG.json +1247 -0
  2. package/CHANGELOG.md +2441 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +28 -0
  5. package/configure/CHANGELOG.json +827 -0
  6. package/configure/CHANGELOG.md +2088 -0
  7. package/configure/lib/arrows.js +89 -0
  8. package/configure/lib/arrows.js.map +1 -0
  9. package/configure/lib/card-bar.js +57 -0
  10. package/configure/lib/card-bar.js.map +1 -0
  11. package/configure/lib/defaults.js +177 -0
  12. package/configure/lib/defaults.js.map +1 -0
  13. package/configure/lib/domain.js +87 -0
  14. package/configure/lib/domain.js.map +1 -0
  15. package/configure/lib/index.js +176 -0
  16. package/configure/lib/index.js.map +1 -0
  17. package/configure/lib/main.js +815 -0
  18. package/configure/lib/main.js.map +1 -0
  19. package/configure/lib/number-text-field.js +26 -0
  20. package/configure/lib/number-text-field.js.map +1 -0
  21. package/configure/lib/point-config.js +84 -0
  22. package/configure/lib/point-config.js.map +1 -0
  23. package/configure/lib/size.js +66 -0
  24. package/configure/lib/size.js.map +1 -0
  25. package/configure/lib/ticks.js +234 -0
  26. package/configure/lib/ticks.js.map +1 -0
  27. package/configure/lib/utils.js +12 -0
  28. package/configure/lib/utils.js.map +1 -0
  29. package/configure/package.json +20 -0
  30. package/controller/CHANGELOG.json +332 -0
  31. package/controller/CHANGELOG.md +1360 -0
  32. package/controller/lib/defaults.js +56 -0
  33. package/controller/lib/defaults.js.map +1 -0
  34. package/controller/lib/index.js +430 -0
  35. package/controller/lib/index.js.map +1 -0
  36. package/controller/lib/tickUtils.js +294 -0
  37. package/controller/lib/tickUtils.js.map +1 -0
  38. package/controller/lib/utils.js +168 -0
  39. package/controller/lib/utils.js.map +1 -0
  40. package/controller/package.json +20 -0
  41. package/demo.gif +0 -0
  42. package/docs/config-schema.json +2532 -0
  43. package/docs/config-schema.json.md +1844 -0
  44. package/docs/demo/config.js +8 -0
  45. package/docs/demo/generate.js +39 -0
  46. package/docs/demo/index.html +1 -0
  47. package/docs/pie-schema.json +2461 -0
  48. package/docs/pie-schema.json.md +1228 -0
  49. package/docs/schemas/config.json +256 -0
  50. package/lib/data-converter.js +96 -0
  51. package/lib/data-converter.js.map +1 -0
  52. package/lib/draggable/index.js +114 -0
  53. package/lib/draggable/index.js.map +1 -0
  54. package/lib/index.js +196 -0
  55. package/lib/index.js.map +1 -0
  56. package/lib/number-line/colors.js +11 -0
  57. package/lib/number-line/colors.js.map +1 -0
  58. package/lib/number-line/feedback.js +92 -0
  59. package/lib/number-line/feedback.js.map +1 -0
  60. package/lib/number-line/graph/arrow.js +44 -0
  61. package/lib/number-line/graph/arrow.js.map +1 -0
  62. package/lib/number-line/graph/elements/base.js +20 -0
  63. package/lib/number-line/graph/elements/base.js.map +1 -0
  64. package/lib/number-line/graph/elements/builder.js +37 -0
  65. package/lib/number-line/graph/elements/builder.js.map +1 -0
  66. package/lib/number-line/graph/elements/line.js +259 -0
  67. package/lib/number-line/graph/elements/line.js.map +1 -0
  68. package/lib/number-line/graph/elements/point.js +204 -0
  69. package/lib/number-line/graph/elements/point.js.map +1 -0
  70. package/lib/number-line/graph/elements/ray.js +190 -0
  71. package/lib/number-line/graph/elements/ray.js.map +1 -0
  72. package/lib/number-line/graph/index.js +262 -0
  73. package/lib/number-line/graph/index.js.map +1 -0
  74. package/lib/number-line/graph/line.js +38 -0
  75. package/lib/number-line/graph/line.js.map +1 -0
  76. package/lib/number-line/graph/stacks.js +78 -0
  77. package/lib/number-line/graph/stacks.js.map +1 -0
  78. package/lib/number-line/graph/tick-utils.js +347 -0
  79. package/lib/number-line/graph/tick-utils.js.map +1 -0
  80. package/lib/number-line/graph/ticks.js +188 -0
  81. package/lib/number-line/graph/ticks.js.map +1 -0
  82. package/lib/number-line/index.js +384 -0
  83. package/lib/number-line/index.js.map +1 -0
  84. package/lib/number-line/point-chooser/button.js +49 -0
  85. package/lib/number-line/point-chooser/button.js.map +1 -0
  86. package/lib/number-line/point-chooser/img.js +8 -0
  87. package/lib/number-line/point-chooser/img.js.map +1 -0
  88. package/lib/number-line/point-chooser/index.js +197 -0
  89. package/lib/number-line/point-chooser/index.js.map +1 -0
  90. package/lib/number-line/point-chooser/styles.js +77 -0
  91. package/lib/number-line/point-chooser/styles.js.map +1 -0
  92. package/lib/number-line/transitions/fade.js +88 -0
  93. package/lib/number-line/transitions/fade.js.map +1 -0
  94. package/lib/number-line/transitions/index.js +14 -0
  95. package/lib/number-line/transitions/index.js.map +1 -0
  96. package/package.json +21 -86
  97. package/configure.js +0 -2
  98. package/controller.js +0 -1
  99. package/dist/_virtual/_rolldown/runtime.js +0 -11
  100. package/dist/author/arrows.d.ts +0 -28
  101. package/dist/author/arrows.js +0 -69
  102. package/dist/author/card-bar.d.ts +0 -20
  103. package/dist/author/card-bar.js +0 -41
  104. package/dist/author/defaults.d.ts +0 -178
  105. package/dist/author/defaults.js +0 -144
  106. package/dist/author/domain.d.ts +0 -15
  107. package/dist/author/domain.js +0 -54
  108. package/dist/author/index.d.ts +0 -23
  109. package/dist/author/index.js +0 -89
  110. package/dist/author/main.d.ts +0 -44
  111. package/dist/author/main.js +0 -485
  112. package/dist/author/number-text-field.d.ts +0 -13
  113. package/dist/author/number-text-field.js +0 -13
  114. package/dist/author/point-config.d.ts +0 -25
  115. package/dist/author/point-config.js +0 -69
  116. package/dist/author/size.d.ts +0 -24
  117. package/dist/author/size.js +0 -48
  118. package/dist/author/ticks.d.ts +0 -22
  119. package/dist/author/ticks.js +0 -115
  120. package/dist/author/utils.d.ts +0 -9
  121. package/dist/author/utils.js +0 -4
  122. package/dist/browser/author/index.js +0 -40259
  123. package/dist/browser/author/index.js.map +0 -1
  124. package/dist/browser/controller/index.js +0 -569
  125. package/dist/browser/controller/index.js.map +0 -1
  126. package/dist/browser/delivery/index.js +0 -2
  127. package/dist/browser/delivery-DWjDT9Sz.js +0 -17910
  128. package/dist/browser/delivery-DWjDT9Sz.js.map +0 -1
  129. package/dist/browser/dist-D5T-OaLo.js +0 -19038
  130. package/dist/browser/dist-D5T-OaLo.js.map +0 -1
  131. package/dist/browser/impureFunctionsAny.generated-Bqfato71.js +0 -10162
  132. package/dist/browser/impureFunctionsAny.generated-Bqfato71.js.map +0 -1
  133. package/dist/browser/number-line.css +0 -2
  134. package/dist/controller/defaults.d.ts +0 -58
  135. package/dist/controller/defaults.js +0 -50
  136. package/dist/controller/index.d.ts +0 -47
  137. package/dist/controller/index.js +0 -165
  138. package/dist/controller/tickUtils.d.ts +0 -21
  139. package/dist/controller/tickUtils.js +0 -252
  140. package/dist/controller/utils.d.ts +0 -9
  141. package/dist/controller/utils.js +0 -68
  142. package/dist/delivery/data-converter.d.ts +0 -64
  143. package/dist/delivery/data-converter.js +0 -70
  144. package/dist/delivery/draggable/index.d.ts +0 -33
  145. package/dist/delivery/draggable/index.js +0 -39
  146. package/dist/delivery/index.d.ts +0 -35
  147. package/dist/delivery/index.js +0 -109
  148. package/dist/delivery/number-line/colors.d.ts +0 -11
  149. package/dist/delivery/number-line/colors.js +0 -5
  150. package/dist/delivery/number-line/feedback.d.ts +0 -19
  151. package/dist/delivery/number-line/feedback.js +0 -57
  152. package/dist/delivery/number-line/graph/arrow.d.ts +0 -30
  153. package/dist/delivery/number-line/graph/arrow.js +0 -27
  154. package/dist/delivery/number-line/graph/elements/base.d.ts +0 -16
  155. package/dist/delivery/number-line/graph/elements/base.js +0 -11
  156. package/dist/delivery/number-line/graph/elements/builder.d.ts +0 -33
  157. package/dist/delivery/number-line/graph/elements/builder.js +0 -30
  158. package/dist/delivery/number-line/graph/elements/line.d.ts +0 -51
  159. package/dist/delivery/number-line/graph/elements/line.js +0 -188
  160. package/dist/delivery/number-line/graph/elements/point.d.ts +0 -43
  161. package/dist/delivery/number-line/graph/elements/point.js +0 -127
  162. package/dist/delivery/number-line/graph/elements/ray.d.ts +0 -43
  163. package/dist/delivery/number-line/graph/elements/ray.js +0 -130
  164. package/dist/delivery/number-line/graph/index.d.ts +0 -59
  165. package/dist/delivery/number-line/graph/index.js +0 -196
  166. package/dist/delivery/number-line/graph/line.d.ts +0 -46
  167. package/dist/delivery/number-line/graph/line.js +0 -27
  168. package/dist/delivery/number-line/graph/stacks.d.ts +0 -10
  169. package/dist/delivery/number-line/graph/stacks.js +0 -40
  170. package/dist/delivery/number-line/graph/tick-utils.d.ts +0 -80
  171. package/dist/delivery/number-line/graph/tick-utils.js +0 -295
  172. package/dist/delivery/number-line/graph/ticks.d.ts +0 -46
  173. package/dist/delivery/number-line/graph/ticks.js +0 -115
  174. package/dist/delivery/number-line/index.d.ts +0 -35
  175. package/dist/delivery/number-line/index.js +0 -215
  176. package/dist/delivery/number-line/point-chooser/button.d.ts +0 -31
  177. package/dist/delivery/number-line/point-chooser/button.js +0 -36
  178. package/dist/delivery/number-line/point-chooser/img.d.ts +0 -10
  179. package/dist/delivery/number-line/point-chooser/img.js +0 -4
  180. package/dist/delivery/number-line/point-chooser/index.d.ts +0 -37
  181. package/dist/delivery/number-line/point-chooser/index.js +0 -154
  182. package/dist/delivery/number-line/point-chooser/styles.d.ts +0 -192
  183. package/dist/delivery/number-line/transitions/fade.d.ts +0 -34
  184. package/dist/delivery/number-line/transitions/fade.js +0 -75
  185. package/dist/delivery/number-line/transitions/index.d.ts +0 -10
  186. package/dist/index.d.ts +0 -1
  187. package/dist/index.iife.d.ts +0 -8
  188. package/dist/index.iife.js +0 -197
  189. package/dist/index.js +0 -2
  190. package/dist/runtime-support.d.ts +0 -12
  191. package/dist/runtime-support.js +0 -12
@@ -0,0 +1,384 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "Graph", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _graph.default;
11
+ }
12
+ });
13
+ exports.default = exports.NumberLine = void 0;
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _react = _interopRequireDefault(require("react"));
17
+ var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
18
+ var _lodashEs = require("lodash-es");
19
+ var _translator = _interopRequireDefault(require("@pie-lib/translator"));
20
+ var _renderUi = require("@pie-lib/render-ui");
21
+ var _styles = require("@mui/material/styles");
22
+ var _feedback = _interopRequireDefault(require("./feedback"));
23
+ var _graph = _interopRequireDefault(require("./graph"));
24
+ var _propTypes = _interopRequireDefault(require("prop-types"));
25
+ var _pointChooser = _interopRequireDefault(require("./point-chooser"));
26
+ var _builder = require("./graph/elements/builder");
27
+ const {
28
+ translator
29
+ } = _translator.default;
30
+ const StyledUiLayout = (0, _styles.styled)(_renderUi.UiLayout)(({
31
+ $colorContrast
32
+ }) => ({
33
+ color: _renderUi.color.text(),
34
+ backgroundColor: _renderUi.color.background(),
35
+ ...($colorContrast === 'black_on_rose' && {
36
+ backgroundColor: 'mistyrose'
37
+ }),
38
+ ...($colorContrast === 'white_on_black' && {
39
+ backgroundColor: 'black',
40
+ '--correct-answer-toggle-label-color': 'white',
41
+ '--tick-color': 'white',
42
+ '--line-stroke': 'white',
43
+ '--arrow-color': 'white',
44
+ '--point-stroke': 'white',
45
+ '--point-fill': 'black'
46
+ })
47
+ }));
48
+ const NumberLineContainer = (0, _styles.styled)('div')(({
49
+ $colorContrast
50
+ }) => ({
51
+ boxSizing: 'unset',
52
+ color: _renderUi.color.text(),
53
+ backgroundColor: _renderUi.color.background(),
54
+ ...($colorContrast === 'black_on_rose' && {
55
+ backgroundColor: 'mistyrose'
56
+ }),
57
+ ...($colorContrast === 'white_on_black' && {
58
+ backgroundColor: 'black',
59
+ '--correct-answer-toggle-label-color': 'white',
60
+ '--tick-color': 'white',
61
+ '--line-stroke': 'white',
62
+ '--arrow-color': 'white',
63
+ '--point-stroke': 'white',
64
+ '--point-fill': 'black'
65
+ })
66
+ }));
67
+ const GraphTitle = (0, _styles.styled)('div')({
68
+ textAlign: 'center',
69
+ pointerEvents: 'none',
70
+ userSelect: 'none'
71
+ });
72
+ const ToggleContainer = (0, _styles.styled)('div')({
73
+ marginBottom: '16px'
74
+ });
75
+ const PromptContainer = (0, _styles.styled)('div')({
76
+ verticalAlign: 'middle',
77
+ marginBottom: '16px'
78
+ });
79
+ const StyledCollapsible = (0, _styles.styled)(_renderUi.Collapsible)(({
80
+ theme
81
+ }) => ({
82
+ paddingBottom: theme.spacing(2)
83
+ }));
84
+ class NumberLine extends _react.default.Component {
85
+ constructor(props, context) {
86
+ super(props, context);
87
+ let initialType = props.model.graph ? props.model.graph.initialType : null;
88
+ initialType = initialType ? initialType.toLowerCase() : _pointChooser.default.DEFAULT_TYPE;
89
+ this.state = {
90
+ selectedElements: [],
91
+ elementType: initialType,
92
+ answers: props.answer
93
+ };
94
+ }
95
+ toggleElement(index) {
96
+ let selected = [];
97
+ if (this.state.selectedElements.indexOf(index) === -1) {
98
+ selected = this.state.selectedElements.concat([index]);
99
+ } else {
100
+ selected = this.state.selectedElements.filter(e => e !== index);
101
+ }
102
+ this.setState({
103
+ selectedElements: selected
104
+ });
105
+ }
106
+ elementTypeSelected(t) {
107
+ this.setState({
108
+ elementType: t
109
+ });
110
+ }
111
+ addElement(x) {
112
+ if (this.hasMaxNoOfPoints()) {
113
+ this.setState({
114
+ showMaxPointsWarning: true
115
+ });
116
+ setTimeout(() => {
117
+ this.setState({
118
+ showMaxPointsWarning: false
119
+ });
120
+ }, 2000);
121
+ return;
122
+ }
123
+ const {
124
+ ticks,
125
+ domain,
126
+ availableTypes
127
+ } = this.props.model.graph;
128
+
129
+ // check if the element type is enabled in availableTypes
130
+ if (availableTypes && !availableTypes[this.state.elementType.toUpperCase()]) {
131
+ return;
132
+ }
133
+ let elementData = (0, _builder.buildElementModel)(x, this.state.elementType, domain, ticks.minor);
134
+ if (elementData) {
135
+ const {
136
+ answers
137
+ } = this.state;
138
+ const contains = answers.some(element => {
139
+ return (0, _lodashEs.isEqual)(element, elementData);
140
+ });
141
+ if (!contains) {
142
+ answers.push(elementData);
143
+ this.setState({
144
+ answers
145
+ });
146
+ this.props.onAddElement(elementData);
147
+ }
148
+ }
149
+ }
150
+ hasMaxNoOfPoints() {
151
+ let {
152
+ answer,
153
+ model: {
154
+ graph: {
155
+ maxNumberOfPoints
156
+ }
157
+ }
158
+ } = this.props;
159
+ return (0, _lodashEs.isNumber)(maxNumberOfPoints) && maxNumberOfPoints > 0 && (answer || []).length >= maxNumberOfPoints;
160
+ }
161
+ UNSAFE_componentWillReceiveProps(nextProps) {
162
+ const {
163
+ answer
164
+ } = nextProps;
165
+ if (!(0, _lodashEs.isEqual)(this.state.answers, answer)) {
166
+ this.setState({
167
+ showCorrectAnswer: false,
168
+ answers: answer
169
+ });
170
+ }
171
+ }
172
+ deselectElements() {
173
+ this.setState({
174
+ selectedElements: []
175
+ });
176
+ }
177
+ getSize(type, min, max, defaultValue) {
178
+ const {
179
+ model: {
180
+ graph
181
+ }
182
+ } = this.props;
183
+ if (graph && graph[type]) {
184
+ return Math.max(min, Math.min(max, graph[type]));
185
+ } else {
186
+ return defaultValue;
187
+ }
188
+ }
189
+ undo() {
190
+ const {
191
+ answers
192
+ } = this.state;
193
+ const {
194
+ onUndoElement
195
+ } = this.props;
196
+ answers.pop();
197
+ this.setState({
198
+ answers
199
+ });
200
+ onUndoElement();
201
+ }
202
+ clearAll() {
203
+ const {
204
+ onClearElements
205
+ } = this.props;
206
+ this.setState({
207
+ answers: []
208
+ });
209
+ onClearElements();
210
+ }
211
+ render() {
212
+ let {
213
+ model,
214
+ onDeleteElements,
215
+ onMoveElement,
216
+ minWidth = 400,
217
+ maxWidth = 1600,
218
+ maxHeight
219
+ } = this.props;
220
+ let {
221
+ showCorrectAnswer,
222
+ answers,
223
+ selectedElements,
224
+ showMaxPointsWarning,
225
+ elementType
226
+ } = this.state;
227
+ let {
228
+ corrected = {
229
+ correct: [],
230
+ incorrect: []
231
+ },
232
+ disabled,
233
+ extraCSSRules,
234
+ graph,
235
+ correctResponse,
236
+ prompt,
237
+ emptyAnswer,
238
+ feedback,
239
+ colorContrast,
240
+ language,
241
+ teacherInstructions
242
+ } = model;
243
+ let addElement = this.addElement.bind(this);
244
+ let elementsSelected = !disabled && selectedElements && selectedElements.length > 0;
245
+ const {
246
+ ticks,
247
+ domain,
248
+ arrows,
249
+ maxNumberOfPoints,
250
+ height = 100,
251
+ availableTypes,
252
+ title,
253
+ fraction
254
+ } = graph;
255
+ const width = this.getSize('width', minWidth, maxWidth, 600);
256
+ const showTeacherInstructions = teacherInstructions && ((0, _renderUi.hasText)(teacherInstructions) || (0, _renderUi.hasMedia)(teacherInstructions));
257
+ const graphProps = {
258
+ disabled,
259
+ domain,
260
+ ticks,
261
+ width,
262
+ height: (height > maxHeight ? maxHeight : height) || 100,
263
+ arrows,
264
+ fraction
265
+ };
266
+ let getAnswerElements = () => {
267
+ return (answers || []).map((e, index) => {
268
+ let out = (0, _lodashEs.cloneDeep)(e);
269
+ out.selected = selectedElements.indexOf(index) !== -1;
270
+ if (corrected.correct.includes(index)) {
271
+ out.correct = true;
272
+ } else if (corrected.incorrect.includes(index)) {
273
+ out.correct = false;
274
+ } else {
275
+ out.correct = undefined;
276
+ }
277
+ return out;
278
+ });
279
+ };
280
+ let getCorrectAnswerElements = () => {
281
+ return (correctResponse || []).map(r => {
282
+ r.correct = true;
283
+ return r;
284
+ });
285
+ };
286
+
287
+ // Determine which elements to show on the chart
288
+ let elements = showCorrectAnswer && correctResponse ? getCorrectAnswerElements() : getAnswerElements();
289
+ let maxPointsMessage = () => maxNumberOfPoints == 1 ? translator.t('numberLine.addElementLimit_one', {
290
+ lng: language,
291
+ count: 1
292
+ }) : translator.t('numberLine.addElementLimit_other', {
293
+ lng: language,
294
+ count: maxNumberOfPoints
295
+ });
296
+ let deleteElements = () => {
297
+ onDeleteElements(selectedElements);
298
+ answers = answers.filter((v, index) => {
299
+ return !selectedElements.some(d => d === index);
300
+ });
301
+ this.setState({
302
+ selectedElements: [],
303
+ answers
304
+ });
305
+ };
306
+ let getIcons = () => {
307
+ if (availableTypes) {
308
+ return Object.keys(availableTypes).filter(k => availableTypes[k]).map(k => k.toLowerCase());
309
+ }
310
+ };
311
+ let onShowCorrectAnswer = show => {
312
+ this.setState({
313
+ showCorrectAnswer: show
314
+ });
315
+ };
316
+ let adjustedWidth = graphProps.width - 20;
317
+ return /*#__PURE__*/_react.default.createElement(StyledUiLayout, {
318
+ extraCSSRules: extraCSSRules,
319
+ $colorContrast: colorContrast
320
+ }, showTeacherInstructions && /*#__PURE__*/_react.default.createElement(StyledCollapsible, {
321
+ labels: {
322
+ hidden: 'Show Teacher Instructions',
323
+ visible: 'Hide Teacher Instructions'
324
+ }
325
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
326
+ prompt: teacherInstructions
327
+ })), prompt && /*#__PURE__*/_react.default.createElement(PromptContainer, null, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
328
+ prompt: prompt
329
+ })), /*#__PURE__*/_react.default.createElement(NumberLineContainer, {
330
+ $colorContrast: colorContrast,
331
+ style: {
332
+ width
333
+ }
334
+ }, /*#__PURE__*/_react.default.createElement(ToggleContainer, {
335
+ style: {
336
+ width: adjustedWidth
337
+ }
338
+ }, /*#__PURE__*/_react.default.createElement(_correctAnswerToggle.default, {
339
+ show: (0, _lodashEs.isArray)(correctResponse) && correctResponse.length && !emptyAnswer,
340
+ toggled: showCorrectAnswer,
341
+ onToggle: onShowCorrectAnswer,
342
+ initialValue: false,
343
+ language: language
344
+ })), !disabled && /*#__PURE__*/_react.default.createElement(_pointChooser.default, {
345
+ elementType: elementType,
346
+ showDeleteButton: elementsSelected,
347
+ onDeleteClick: deleteElements,
348
+ onElementType: this.elementTypeSelected.bind(this),
349
+ onClearElements: this.clearAll.bind(this),
350
+ onUndoElement: this.undo.bind(this),
351
+ icons: getIcons(),
352
+ language: language
353
+ }), /*#__PURE__*/_react.default.createElement(_graph.default, (0, _extends2.default)({}, graphProps, {
354
+ elements: elements,
355
+ onAddElement: addElement,
356
+ onMoveElement: onMoveElement,
357
+ onToggleElement: this.toggleElement.bind(this),
358
+ onDeselectElements: this.deselectElements.bind(this),
359
+ debug: false
360
+ })), title && /*#__PURE__*/_react.default.createElement(GraphTitle, {
361
+ dangerouslySetInnerHTML: {
362
+ __html: title
363
+ }
364
+ }), showMaxPointsWarning && /*#__PURE__*/_react.default.createElement(_feedback.default, {
365
+ type: "info",
366
+ width: adjustedWidth,
367
+ message: maxPointsMessage()
368
+ }), feedback && !showCorrectAnswer && /*#__PURE__*/_react.default.createElement(_feedback.default, (0, _extends2.default)({}, feedback, {
369
+ width: adjustedWidth
370
+ }))));
371
+ }
372
+ }
373
+ exports.NumberLine = NumberLine;
374
+ (0, _defineProperty2.default)(NumberLine, "propTypes", {
375
+ onMoveElement: _propTypes.default.func.isRequired,
376
+ onDeleteElements: _propTypes.default.func.isRequired,
377
+ onAddElement: _propTypes.default.func.isRequired,
378
+ onUndoElement: _propTypes.default.func.isRequired,
379
+ onClearElements: _propTypes.default.func.isRequired,
380
+ model: _propTypes.default.object.isRequired,
381
+ answer: _propTypes.default.array
382
+ });
383
+ var _default = exports.default = NumberLine;
384
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_correctAnswerToggle","_lodashEs","_translator","_renderUi","_styles","_feedback","_graph","_propTypes","_pointChooser","_builder","translator","Translator","StyledUiLayout","styled","UiLayout","$colorContrast","color","text","backgroundColor","background","NumberLineContainer","boxSizing","GraphTitle","textAlign","pointerEvents","userSelect","ToggleContainer","marginBottom","PromptContainer","verticalAlign","StyledCollapsible","Collapsible","theme","paddingBottom","spacing","NumberLine","React","Component","constructor","props","context","initialType","model","graph","toLowerCase","PointChooser","DEFAULT_TYPE","state","selectedElements","elementType","answers","answer","toggleElement","index","selected","indexOf","concat","filter","e","setState","elementTypeSelected","t","addElement","x","hasMaxNoOfPoints","showMaxPointsWarning","setTimeout","ticks","domain","availableTypes","toUpperCase","elementData","buildElementModel","minor","contains","some","element","isEqual","push","onAddElement","maxNumberOfPoints","isNumber","length","UNSAFE_componentWillReceiveProps","nextProps","showCorrectAnswer","deselectElements","getSize","type","min","max","defaultValue","Math","undo","onUndoElement","pop","clearAll","onClearElements","render","onDeleteElements","onMoveElement","minWidth","maxWidth","maxHeight","corrected","correct","incorrect","disabled","extraCSSRules","correctResponse","prompt","emptyAnswer","feedback","colorContrast","language","teacherInstructions","bind","elementsSelected","arrows","height","title","fraction","width","showTeacherInstructions","hasText","hasMedia","graphProps","getAnswerElements","map","out","cloneDeep","includes","undefined","getCorrectAnswerElements","r","elements","maxPointsMessage","lng","count","deleteElements","v","d","getIcons","Object","keys","k","onShowCorrectAnswer","show","adjustedWidth","default","createElement","labels","hidden","visible","PreviewPrompt","style","isArray","toggled","onToggle","initialValue","showDeleteButton","onDeleteClick","onElementType","icons","_extends2","onToggleElement","onDeselectElements","debug","dangerouslySetInnerHTML","__html","message","exports","_defineProperty2","PropTypes","func","isRequired","object","array","_default"],"sources":["../../src/number-line/index.jsx"],"sourcesContent":["import React from 'react';\nimport Toggle from '@pie-lib/correct-answer-toggle';\nimport { cloneDeep, isArray, isEqual, isNumber } from 'lodash-es';\nimport Translator from '@pie-lib/translator';\nimport { Collapsible, color, hasMedia, hasText, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { styled } from '@mui/material/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 StyledUiLayout = styled(UiLayout)(({ $colorContrast }) => ({\n color: color.text(),\n backgroundColor: color.background(),\n ...($colorContrast === 'black_on_rose' && {\n backgroundColor: 'mistyrose',\n }),\n ...($colorContrast === '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}));\n\nconst NumberLineContainer = styled('div')(({ $colorContrast }) => ({\n boxSizing: 'unset',\n color: color.text(),\n backgroundColor: color.background(),\n ...($colorContrast === 'black_on_rose' && {\n backgroundColor: 'mistyrose',\n }),\n ...($colorContrast === '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}));\n\nconst GraphTitle = styled('div')({\n textAlign: 'center',\n pointerEvents: 'none',\n userSelect: 'none',\n});\n\nconst ToggleContainer = styled('div')({\n marginBottom: '16px',\n});\n\nconst PromptContainer = styled('div')({\n verticalAlign: 'middle',\n marginBottom: '16px',\n});\n\nconst StyledCollapsible = styled(Collapsible)(({ theme }) => ({\n paddingBottom: theme.spacing(2),\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 };\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, availableTypes } = this.props.model.graph;\n\n // check if the element type is enabled in availableTypes\n if (availableTypes && !availableTypes[this.state.elementType.toUpperCase()]) {\n return;\n }\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, 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 extraCSSRules,\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 const showTeacherInstructions =\n teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\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\n if (corrected.correct.includes(index)) {\n out.correct = true;\n } else if (corrected.incorrect.includes(index)) {\n out.correct = false;\n } else {\n out.correct = undefined;\n }\n\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 // Determine which elements to show on the chart\n let elements = showCorrectAnswer && correctResponse ? 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 return (\n <StyledUiLayout extraCSSRules={extraCSSRules} $colorContrast={colorContrast}>\n {showTeacherInstructions && (\n <StyledCollapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </StyledCollapsible>\n )}\n\n {prompt && (\n <PromptContainer>\n <PreviewPrompt prompt={prompt} />\n </PromptContainer>\n )}\n\n <NumberLineContainer $colorContrast={colorContrast} style={{ width }}>\n <ToggleContainer style={{ width: adjustedWidth }}>\n <Toggle\n show={isArray(correctResponse) && correctResponse.length && !emptyAnswer}\n toggled={showCorrectAnswer}\n onToggle={onShowCorrectAnswer}\n initialValue={false}\n language={language}\n />\n </ToggleContainer>\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 && <GraphTitle dangerouslySetInnerHTML={{ __html: title }} />}\n\n {showMaxPointsWarning && <Feedback type=\"info\" width={adjustedWidth} message={maxPointsMessage()} />}\n {feedback && !showCorrectAnswer && <Feedback {...feedback} width={adjustedWidth} />}\n </NumberLineContainer>\n </StyledUiLayout>\n );\n }\n}\n\nexport default NumberLine;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _styles = require("@mui/material/styles");
11
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
12
+ const StyledButton = (0, _styles.styled)(_Button.default)({
13
+ fontSize: '0.9em',
14
+ marginLeft: 8,
15
+ minWidth: 32,
16
+ height: 32,
17
+ '& span': {
18
+ '& svg': {
19
+ width: '1.3em !important',
20
+ height: '1.3em !important'
21
+ }
22
+ }
23
+ });
24
+ const RawButton = ({
25
+ label,
26
+ onClick,
27
+ disabled,
28
+ title
29
+ }) => /*#__PURE__*/_react.default.createElement(StyledButton, {
30
+ title: title,
31
+ onClick: onClick,
32
+ disabled: disabled,
33
+ size: "small",
34
+ variant: "contained"
35
+ }, label);
36
+ RawButton.propTypes = {
37
+ disabled: _propTypes.default.bool,
38
+ label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),
39
+ onClick: _propTypes.default.func,
40
+ title: _propTypes.default.string
41
+ };
42
+ RawButton.defaultProps = {
43
+ disabled: false,
44
+ label: 'Add',
45
+ onClick: () => {},
46
+ title: ''
47
+ };
48
+ var _default = exports.default = RawButton;
49
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Button","StyledButton","styled","Button","fontSize","marginLeft","minWidth","height","width","RawButton","label","onClick","disabled","title","default","createElement","size","variant","propTypes","PropTypes","bool","oneOfType","string","object","func","defaultProps","_default","exports"],"sources":["../../../src/number-line/point-chooser/button.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Button from '@mui/material/Button';\n\nconst StyledButton = styled(Button)({\n fontSize: '0.9em',\n marginLeft: 8,\n minWidth: 32,\n height: 32,\n '& span': {\n '& svg': {\n width: '1.3em !important',\n height: '1.3em !important',\n },\n },\n});\n\nconst RawButton = ({ label, onClick, disabled, title }) => (\n <StyledButton\n title={title}\n onClick={onClick}\n disabled={disabled}\n size=\"small\"\n variant=\"contained\">\n {label}\n </StyledButton>\n);\n\nRawButton.propTypes = {\n disabled: PropTypes.bool,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n onClick: PropTypes.func,\n title: PropTypes.string,\n};\n\nRawButton.defaultProps = {\n disabled: false,\n label: 'Add',\n onClick: () => {},\n title: '',\n};\n\nexport default RawButton;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,MAAMI,YAAY,GAAG,IAAAC,cAAM,EAACC,eAAM,CAAC,CAAC;EAClCC,QAAQ,EAAE,OAAO;EACjBC,UAAU,EAAE,CAAC;EACbC,QAAQ,EAAE,EAAE;EACZC,MAAM,EAAE,EAAE;EACV,QAAQ,EAAE;IACR,OAAO,EAAE;MACPC,KAAK,EAAE,kBAAkB;MACzBD,MAAM,EAAE;IACV;EACF;AACF,CAAC,CAAC;AAEF,MAAME,SAAS,GAAGA,CAAC;EAAEC,KAAK;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAM,CAAC,kBACpDlB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACd,YAAY;EACXY,KAAK,EAAEA,KAAM;EACbF,OAAO,EAAEA,OAAQ;EACjBC,QAAQ,EAAEA,QAAS;EACnBI,IAAI,EAAC,OAAO;EACZC,OAAO,EAAC;AAAW,GAClBP,KACW,CACf;AAEDD,SAAS,CAACS,SAAS,GAAG;EACpBN,QAAQ,EAAEO,kBAAS,CAACC,IAAI;EACxBV,KAAK,EAAES,kBAAS,CAACE,SAAS,CAAC,CAACF,kBAAS,CAACG,MAAM,EAAEH,kBAAS,CAACI,MAAM,CAAC,CAAC;EAChEZ,OAAO,EAAEQ,kBAAS,CAACK,IAAI;EACvBX,KAAK,EAAEM,kBAAS,CAACG;AACnB,CAAC;AAEDb,SAAS,CAACgB,YAAY,GAAG;EACvBb,QAAQ,EAAE,KAAK;EACfF,KAAK,EAAE,KAAK;EACZC,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAC;EACjBE,KAAK,EAAE;AACT,CAAC;AAAC,IAAAa,QAAA,GAAAC,OAAA,CAAAb,OAAA,GAEaL,SAAS","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = exports.default = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaIAAAB6CAYAAAD9EVeZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA35pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyQzdFRkQ1NzFFMjA2ODExOTRGRkRERDNFOEEwRDAxQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0M0FGNEM3RUQwRDkxMUU0OTU5RUVDMkZDN0NCQzRBRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0M0FGNEM3REQwRDkxMUU0OTU5RUVDMkZDN0NCQzRBRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY1QUZDN0I3MEUyMDY4MTE4MDgzOUE0REM2MTYyOUQyIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NjFjZTg0NmMtMTg3ZS0xMTc4LWE4YmItZWNkODU4MDc4MWE2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Xy3JugAADlNJREFUeNrsnT9sFEkWh9vgI1oQmBgCJLRa7UmAIEBaovUf8pWAnL8SIQSs7JW5S4wDwl0kZER4PtvSiRhMzEoYAdmiDbmVdhEYC29CYOb6zc1Izdz0uKv6vaqavu+TioGZpur3ftX1Xk/PdM9Iq9XKAAAAYrEDCwAAgEIEAAAUIgAAAAoRAABQiAAAAChEAABAIQIAAKAQAQAAhQgAAIBCBAAAFCIAAAAKEQAANI5Rn/80MjLiPaDGTVa1x7eKB53p6rTeh6v0r9XPsPffJD+HydOU8rzWO6JTeVvM27/z9rHzuNh5PgTa41vFg850dcbeh1PRadX/TKIH4yHmvSme2nkllcu19byj+km6GdDk9b/UGc96fKt40JmuTut9eACznv1Y67Tuv1WWOJvk5zB5mlKerytwYRtx3bZgZJDK+FbxoDNdndb78ICk2fLsx1qndf+tssTZJD+HydOU8nwdgd9UFNdt3ygb5DX+ANTjKel3OW9f521X53EpUZ3e/daJ28rPUBoHJM7ZQj+uScdsrRmtpb4H6WWJMwE/1ebdcN2re5qCVxqF6B+OO++iskGu42u3xYqJs6hzpWSHWk5MZ+V+B+Aat5WfiyE1liTO2R7vXDFbaxHX0kyNQqTpp+q8R173MwaFyNQrjUL0u6NJvykb9HvkQvRbxcRZ1PnXkon8OjGdVfsd9Lpr3LH9VNHYJ3HOprhvJrKWfkjAT9V5T2Dd/2CYZ9W90ihErgZ9VDaoFbl9rJg4i/9nV8lE7kpMZ9V+q25bJe7Yfqpo7NE6m+q+mchaupmAn6rznsC6v2mYZ9W96rY6X9/+w3H7t8pfJfwji8tbD52HS7Y5nJhOjX5d447tp6bGLluJ75sx19Lf8vb3BPy0mPdY697H0yzSOq7/7YoOi5E/I/IafwDq8fTpt+wc61JiOqv2W/X1ynEb+Fm1qWjscyppJsXPL43X0nYfrN+s8WUFbT9V591w3at7ahlHyFNzpxwn/JSyQWrjW8VT0u8/8/ZV9t/v3H/V+XeKOiv1OwC1uDX8DKWx5MP1mZofrputtUD9F5PmrM/BsLGfavNuse6tPI0dh+Z1RD9W3HF/NDBIbXyreNCZrk7rfbgPM5n/141D6LTuv2/CbJqfw+RpSnm+rkCpijHvrKAyvlU86ExXp/U+XMJMjcRprdO6/9k6Hw8Mi5/D5GlKeb6uwOLbt8XOV/c+dh773oNI2SCV8a3iQWe6Oq334QHM1OzHWmcoHxrp5zB5mlKeH/G5Syt3364WDzrT1cndt5vnA3ffTjvPDhxLQzAAAIAv/DAeAABQiAAAgEIEAABAIQIAAAoRAAAAhQgAAChEAAAAFCIAAKAQAQAAUIgAAIBCBAAAQCECAIDmMfrs2TN5lN8cn8/bRN72RNb0IW+refs+b78eP368/SQ60YlOdKKzmTpH8z++zNvPedubSHEUg77L27d5O5m3V53n0YlOdKITnQ3UKafm5hISV2RvR1sXdKITnehEZwN17ui8TUuVqcLf0YlOdKITnQ3UuSOLf65wEF/0vJVDJzrRiU50Nkwn35oDAICoUIgAAIBCBAAAFCIAAAAKEQAAUIgAAAAoRAAAQCECAACgEAEAQPMZ1ejkxYsX2fLycvvx/fv32b59+7KjR49mZ8+ebT9aoz2+VTzoTFdn7H04FZ1W/d+/fz87f/58cgkwxLw3xVNLr0bW1tZavv95a2sru337drayslK6zZkzZ7Lr169no6N+Ne/48eMj8vjs2bOW9fh1+kPncOqs29cgnf1YWFjILl26FHytbafTei2fOHEiu3r16raJsyl+puKpq5+x8nytU3O3bt0aKE6Q1+fn500qtPb4VvGgM12dIfdhSZp3795Ncq2F8OHOnTvto3gtUvZzWD2NFYd3IXr58mX24MGDStvKdrK9JtrjW8XT2+/ExET77e2TJ0/aj5OTk0nq1PazbtwW/Vpp1E6a1mst5FrWSpyaflrMe8h9y7IYhYrD+zMiEeHC0tJSduTIETWDXMe/cOGC6gRVjaeoc3x8/LOjhkOHDrWPNlqtVra6upqMTo1+XeO28nNQv1YaNZNmiLUWei1J4hR8P9/Q9NNq3kOv+7qexvSqViF6+vSp0/bPnz9XNch1fG2qxlPUefny5b7byPPdiUxBZ9V+5Rx1GWNjY05xW/n58OHDdtsOTY3bJc1BvoWc85hrSRKnJDDXBKztp9W8x1j3vp5qxuGb571Pza2vrzttv7Gxoboju46vTdV4ijoPHjzYd5sDBw4kpVOjX9e4Y/upqVHryN16zmOvJfkQPLafFvMec927eqodh2+e9y5ExSPeKuzdq/srta7ja1M1nqLO169f992m7PlYOjX6dY07tp+aGrvs3Lkz6X0z5lqSo+iyI+yQflrMe6x17+Opdhy+ed67ELm+HT527JiqQa7jT01NZWtra6VNXreIp6iz7GhOjvRS0qnRr2vcVn5WRVNjFzlfL1+vDY2rTu211K9pJEwLPy3m3WLdW3mqHYdvnvf+jEguYqpy7r24vSba41vFU+z38ePH2fT0dPu6B3k7K0cSMomPHj1KSmfV7efm5kpfl4veNOP29fPevXulF9uJxosXL6pr7E2eQvfDZKE3iWxHUafFWgu5lq9cueJ13Y+Vn1bzrr3uLT1NIQ7vQtS9orbKN24srk7XHt8qnt5+B314npJObT/rxm3Rr5XGKskzpbUWai1rJUxtPy3mPdS+ZVmEQsZR64LWa9euta+oHYS8LttZoD2+VTzoTFdnqH247mkla53W/WsnzNT9HEZPY3pV6xY/xbe6UjHlq3vyrQn5wErOFWq8E6pyiwrt8X36Q+dw6/Tty/UWKnXvD2at03Ita633YfIztqcat/gJEYdKIRoWI9GJTnSiE53pwc9AAAAAhQgAAChEAAAAFCIAAKAQAQAAUIgAAIBCBAAAQCECAID/j0L0IWF9fxb+jk50ohOd6GygTilEqwkLLN5dD53oRCc60dlAnVKIZvK2kaC4jY62LuhEJzrRic4G6pRC9EveTubtX3nbTEDYZkfLyY62LuhEJzrRic4G6hxptZK+Fx4AADSc0aWlJXk8nLf5vE3kbU9kTfKhmpzP/D5vv547d679JDrRiU50orOZOuUXWr8cGRn5ef/+/Xt3796d7dy5M6q6ra2tPZubm9+9e/fu2/zdmrxte9V5CZ3oRCc60dlAnfIZ0ZyIkx85ii1OEA2iZWxsbK9oK7yETnSiE53obKBOKUQTUiFTY8+e9jvHqcJT6EQnOtGJzgbqlEK0J4UK2a9i5nxR1IxOdKITnehsnk5u8QMAAFGhEAEAAIUIAAAoRAAAABQiAACgEAEAAFCIAACAQgQAAEAhAgCA5jOq0cmLFy+y5eXl9uP79++zffv2ZUePHs3Onj3bfrRGe3yreNCZrs7Y+3AqOq36v3//fnb+/PnkEmCIeW+Kp5Ze1SpEW1tb2e3bt7OVlZXPnn/z5k328OHDdjtz5kx2/fr1bHR0VN0Y7fGt4kFnujpD78MLCwvZpUuXkltr1v3fuXOn/aidOFP1c5g9jeFVrVNzt27d+h9xvcjr8/PzJgZpj28VDzrT1RlyH5akeffu3STXWggfJHHKUbxmEUrVz2H1NFYc3oXo5cuX2YMHDyptK9vJ9ppoj28VT2+/ExMT7be3T548aT9OTk4mqVPbz7pxW/RrpVE7aVqvtZBrWStxavppMe8h9y3LYhQqDu9zDSLCBfmFwCNHjqgZ5Dr+hQsXVCeoajxFnePj458dNRw6dKh9tCE/1766upqMTo1+XeO28nNQv1YaNZNmiLUWei3VPaWk6afVvIde91an6UKtEe9C9PTpU6ftnz9/rmqQ6/jaVI2nqPPy5ct9t5HnuxOZgs6q/Z44caL09bGxMae4rfzsnsPeDk2N2yXNQb6FnPOYa0kSpyQw1wSs7afVvMdY976easbhm+e9T82tr687bb+xsaG6I7uOr03VeIo6Dx482HebAwcOJKVTo1/XuGP7qalR68jdes5jryX5EDy2nxbzHnPdu3qqHYdvnvcuRMUj3irIz8Jq4jq+NlXjKep8/fp1323Kno+lU6Nf17hj+6mpsUusHyJz1RljLclRdNkRdkg/LeY91rr38VQ7Dt88712IXN8OHzt2TNUg1/GnpqaytbW10iavW8RT1Fl2NCdHeinp1OjXNW4rP6uiqbGLnK+/evVq8CTvqlN7LfVrGgnTwk+LebdY91aeasfhm+e9PyOSi5iqnHsvbq+J9vhW8RT7ffz4cTY9Pd2+7kHezsqRhEzio0ePktJZdfu5ubnS1+WiN824ff28d+9e6cV2ovHixYvqGnuTp9D9MFnoTSLbUdRpsdZCruUrV654Xfdj5afVvGuve0tPU4jDuxB1r6it8o0bi6vTtce3iqe330EfnqekU9vPunFb9GulsUryTGmthVrLWglT20+LeQ+1b1kWoZBx1Lqg9dq1a+0ragchr8t2FmiPbxUPOtPVGWofrntayVqndf/aCTN1P4fR05he1bpnidzO4caNG9np06fbFVO+uiffmpAPrORcofV9urTHt4oHnenqDLkP17nGw1qndf8WCTNlP4fV02heab19i3ljSO3xreJBZ7o6Q+3DdS84tNYZey03zc9h9DRGHPwMBAAARIVCBAAAFCIAAKAQAQAAUIgAAIBCBAAAQCECAAAKEQAAQLBC9EH7Nyw06Gj6s/AUOtGJTnSis4E6pRCtbm5uJifww4cP8lC8ux460YlOdKKzgTqlEM28e/duQ+4d9OnTp+jCRINoWV9fl5/6mym8hE50ohOd6GygTrnX3C+tVuvk27dv5/I2mf97d2SNUrblBy6m8/aq8Dw60YlOdKKzgTr/I8AAfqzhPjCMsb4AAAAASUVORK5CYII=';
8
+ //# sourceMappingURL=img.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"img.js","names":[],"sources":["../../../src/number-line/point-chooser/img.js"],"sourcesContent":["export default 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaIAAAB6CAYAAAD9EVeZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA35pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyQzdFRkQ1NzFFMjA2ODExOTRGRkRERDNFOEEwRDAxQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0M0FGNEM3RUQwRDkxMUU0OTU5RUVDMkZDN0NCQzRBRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0M0FGNEM3REQwRDkxMUU0OTU5RUVDMkZDN0NCQzRBRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY1QUZDN0I3MEUyMDY4MTE4MDgzOUE0REM2MTYyOUQyIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NjFjZTg0NmMtMTg3ZS0xMTc4LWE4YmItZWNkODU4MDc4MWE2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Xy3JugAADlNJREFUeNrsnT9sFEkWh9vgI1oQmBgCJLRa7UmAIEBaovUf8pWAnL8SIQSs7JW5S4wDwl0kZER4PtvSiRhMzEoYAdmiDbmVdhEYC29CYOb6zc1Izdz0uKv6vaqavu+TioGZpur3ftX1Xk/PdM9Iq9XKAAAAYrEDCwAAgEIEAAAUIgAAAAoRAABQiAAAAChEAABAIQIAAKAQAQAAhQgAAIBCBAAAFCIAAAAKEQAANI5Rn/80MjLiPaDGTVa1x7eKB53p6rTeh6v0r9XPsPffJD+HydOU8rzWO6JTeVvM27/z9rHzuNh5PgTa41vFg850dcbeh1PRadX/TKIH4yHmvSme2nkllcu19byj+km6GdDk9b/UGc96fKt40JmuTut9eACznv1Y67Tuv1WWOJvk5zB5mlKerytwYRtx3bZgZJDK+FbxoDNdndb78ICk2fLsx1qndf+tssTZJD+HydOU8nwdgd9UFNdt3ygb5DX+ANTjKel3OW9f521X53EpUZ3e/daJ28rPUBoHJM7ZQj+uScdsrRmtpb4H6WWJMwE/1ebdcN2re5qCVxqF6B+OO++iskGu42u3xYqJs6hzpWSHWk5MZ+V+B+Aat5WfiyE1liTO2R7vXDFbaxHX0kyNQqTpp+q8R173MwaFyNQrjUL0u6NJvykb9HvkQvRbxcRZ1PnXkon8OjGdVfsd9Lpr3LH9VNHYJ3HOprhvJrKWfkjAT9V5T2Dd/2CYZ9W90ihErgZ9VDaoFbl9rJg4i/9nV8lE7kpMZ9V+q25bJe7Yfqpo7NE6m+q+mchaupmAn6rznsC6v2mYZ9W96rY6X9/+w3H7t8pfJfwji8tbD52HS7Y5nJhOjX5d447tp6bGLluJ75sx19Lf8vb3BPy0mPdY697H0yzSOq7/7YoOi5E/I/IafwDq8fTpt+wc61JiOqv2W/X1ynEb+Fm1qWjscyppJsXPL43X0nYfrN+s8WUFbT9V591w3at7ahlHyFNzpxwn/JSyQWrjW8VT0u8/8/ZV9t/v3H/V+XeKOiv1OwC1uDX8DKWx5MP1mZofrputtUD9F5PmrM/BsLGfavNuse6tPI0dh+Z1RD9W3HF/NDBIbXyreNCZrk7rfbgPM5n/141D6LTuv2/CbJqfw+RpSnm+rkCpijHvrKAyvlU86ExXp/U+XMJMjcRprdO6/9k6Hw8Mi5/D5GlKeb6uwOLbt8XOV/c+dh773oNI2SCV8a3iQWe6Oq334QHM1OzHWmcoHxrp5zB5mlKeH/G5Syt3364WDzrT1cndt5vnA3ffTjvPDhxLQzAAAIAv/DAeAABQiAAAgEIEAABAIQIAAAoRAAAAhQgAAChEAAAAFCIAAKAQAQAAUIgAAIBCBAAAQCECAIDmMfrs2TN5lN8cn8/bRN72RNb0IW+refs+b78eP368/SQ60YlOdKKzmTpH8z++zNvPedubSHEUg77L27d5O5m3V53n0YlOdKITnQ3UKafm5hISV2RvR1sXdKITnehEZwN17ui8TUuVqcLf0YlOdKITnQ3UuSOLf65wEF/0vJVDJzrRiU50Nkwn35oDAICoUIgAAIBCBAAAFCIAAAAKEQAAUIgAAAAoRAAAQCECAACgEAEAQPMZ1ejkxYsX2fLycvvx/fv32b59+7KjR49mZ8+ebT9aoz2+VTzoTFdn7H04FZ1W/d+/fz87f/58cgkwxLw3xVNLr0bW1tZavv95a2sru337drayslK6zZkzZ7Lr169no6N+Ne/48eMj8vjs2bOW9fh1+kPncOqs29cgnf1YWFjILl26FHytbafTei2fOHEiu3r16raJsyl+puKpq5+x8nytU3O3bt0aKE6Q1+fn500qtPb4VvGgM12dIfdhSZp3795Ncq2F8OHOnTvto3gtUvZzWD2NFYd3IXr58mX24MGDStvKdrK9JtrjW8XT2+/ExET77e2TJ0/aj5OTk0nq1PazbtwW/Vpp1E6a1mst5FrWSpyaflrMe8h9y7IYhYrD+zMiEeHC0tJSduTIETWDXMe/cOGC6gRVjaeoc3x8/LOjhkOHDrWPNlqtVra6upqMTo1+XeO28nNQv1YaNZNmiLUWei1J4hR8P9/Q9NNq3kOv+7qexvSqViF6+vSp0/bPnz9XNch1fG2qxlPUefny5b7byPPdiUxBZ9V+5Rx1GWNjY05xW/n58OHDdtsOTY3bJc1BvoWc85hrSRKnJDDXBKztp9W8x1j3vp5qxuGb571Pza2vrzttv7Gxoboju46vTdV4ijoPHjzYd5sDBw4kpVOjX9e4Y/upqVHryN16zmOvJfkQPLafFvMec927eqodh2+e9y5ExSPeKuzdq/srta7ja1M1nqLO169f992m7PlYOjX6dY07tp+aGrvs3Lkz6X0z5lqSo+iyI+yQflrMe6x17+Opdhy+ed67ELm+HT527JiqQa7jT01NZWtra6VNXreIp6iz7GhOjvRS0qnRr2vcVn5WRVNjFzlfL1+vDY2rTu211K9pJEwLPy3m3WLdW3mqHYdvnvf+jEguYqpy7r24vSba41vFU+z38ePH2fT0dPu6B3k7K0cSMomPHj1KSmfV7efm5kpfl4veNOP29fPevXulF9uJxosXL6pr7E2eQvfDZKE3iWxHUafFWgu5lq9cueJ13Y+Vn1bzrr3uLT1NIQ7vQtS9orbKN24srk7XHt8qnt5+B314npJObT/rxm3Rr5XGKskzpbUWai1rJUxtPy3mPdS+ZVmEQsZR64LWa9euta+oHYS8LttZoD2+VTzoTFdnqH247mkla53W/WsnzNT9HEZPY3pV6xY/xbe6UjHlq3vyrQn5wErOFWq8E6pyiwrt8X36Q+dw6/Tty/UWKnXvD2at03Ita633YfIztqcat/gJEYdKIRoWI9GJTnSiE53pwc9AAAAAhQgAAChEAAAAFCIAAKAQAQAAUIgAAIBCBAAAQCECAID/j0L0IWF9fxb+jk50ohOd6GygTilEqwkLLN5dD53oRCc60dlAnVKIZvK2kaC4jY62LuhEJzrRic4G6pRC9EveTubtX3nbTEDYZkfLyY62LuhEJzrRic4G6hxptZK+Fx4AADSc0aWlJXk8nLf5vE3kbU9kTfKhmpzP/D5vv547d679JDrRiU50orOZOuUXWr8cGRn5ef/+/Xt3796d7dy5M6q6ra2tPZubm9+9e/fu2/zdmrxte9V5CZ3oRCc60dlAnfIZ0ZyIkx85ii1OEA2iZWxsbK9oK7yETnSiE53obKBOKUQTUiFTY8+e9jvHqcJT6EQnOtGJzgbqlEK0J4UK2a9i5nxR1IxOdKITnehsnk5u8QMAAFGhEAEAAIUIAAAoRAAAABQiAACgEAEAAFCIAACAQgQAAEAhAgCA5jOq0cmLFy+y5eXl9uP79++zffv2ZUePHs3Onj3bfrRGe3yreNCZrs7Y+3AqOq36v3//fnb+/PnkEmCIeW+Kp5Ze1SpEW1tb2e3bt7OVlZXPnn/z5k328OHDdjtz5kx2/fr1bHR0VN0Y7fGt4kFnujpD78MLCwvZpUuXkltr1v3fuXOn/aidOFP1c5g9jeFVrVNzt27d+h9xvcjr8/PzJgZpj28VDzrT1RlyH5akeffu3STXWggfJHHKUbxmEUrVz2H1NFYc3oXo5cuX2YMHDyptK9vJ9ppoj28VT2+/ExMT7be3T548aT9OTk4mqVPbz7pxW/RrpVE7aVqvtZBrWStxavppMe8h9y3LYhQqDu9zDSLCBfmFwCNHjqgZ5Dr+hQsXVCeoajxFnePj458dNRw6dKh9tCE/1766upqMTo1+XeO28nNQv1YaNZNmiLUWei3VPaWk6afVvIde91an6UKtEe9C9PTpU6ftnz9/rmqQ6/jaVI2nqPPy5ct9t5HnuxOZgs6q/Z44caL09bGxMae4rfzsnsPeDk2N2yXNQb6FnPOYa0kSpyQw1wSs7afVvMdY976easbhm+e9T82tr687bb+xsaG6I7uOr03VeIo6Dx482HebAwcOJKVTo1/XuGP7qalR68jdes5jryX5EDy2nxbzHnPdu3qqHYdvnvcuRMUj3irIz8Jq4jq+NlXjKep8/fp1323Kno+lU6Nf17hj+6mpsUusHyJz1RljLclRdNkRdkg/LeY91rr38VQ7Dt88712IXN8OHzt2TNUg1/GnpqaytbW10iavW8RT1Fl2NCdHeinp1OjXNW4rP6uiqbGLnK+/evVq8CTvqlN7LfVrGgnTwk+LebdY91aeasfhm+e9PyOSi5iqnHsvbq+J9vhW8RT7ffz4cTY9Pd2+7kHezsqRhEzio0ePktJZdfu5ubnS1+WiN824ff28d+9e6cV2ovHixYvqGnuTp9D9MFnoTSLbUdRpsdZCruUrV654Xfdj5afVvGuve0tPU4jDuxB1r6it8o0bi6vTtce3iqe330EfnqekU9vPunFb9GulsUryTGmthVrLWglT20+LeQ+1b1kWoZBx1Lqg9dq1a+0ragchr8t2FmiPbxUPOtPVGWofrntayVqndf/aCTN1P4fR05he1bpnidzO4caNG9np06fbFVO+uiffmpAPrORcofV9urTHt4oHnenqDLkP17nGw1qndf8WCTNlP4fV02heab19i3ljSO3xreJBZ7o6Q+3DdS84tNYZey03zc9h9DRGHPwMBAAARIVCBAAAFCIAAKAQAQAAUIgAAIBCBAAAQCECAAAKEQAAQLBC9EH7Nyw06Gj6s/AUOtGJTnSis4E6pRCtbm5uJifww4cP8lC8ux460YlOdKKzgTqlEM28e/duQ+4d9OnTp+jCRINoWV9fl5/6mym8hE50ohOd6GygTrnX3C+tVuvk27dv5/I2mf97d2SNUrblBy6m8/aq8Dw60YlOdKKzgTr/I8AAfqzhPjCMsb4AAAAASUVORK5CYII=';\n"],"mappings":";;;;;;iCAAe,wmMAAwmM","ignoreList":[]}