@pie-element/number-line 6.6.0 → 6.6.1-beta.1

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 (75) hide show
  1. package/configure/package.json +3 -3
  2. package/controller/package.json +3 -3
  3. package/package.json +8 -7
  4. package/configure/lib/arrows.js +0 -117
  5. package/configure/lib/arrows.js.map +0 -1
  6. package/configure/lib/card-bar.js +0 -79
  7. package/configure/lib/card-bar.js.map +0 -1
  8. package/configure/lib/defaults.js +0 -68
  9. package/configure/lib/defaults.js.map +0 -1
  10. package/configure/lib/domain.js +0 -106
  11. package/configure/lib/domain.js.map +0 -1
  12. package/configure/lib/index.js +0 -148
  13. package/configure/lib/index.js.map +0 -1
  14. package/configure/lib/main.js +0 -630
  15. package/configure/lib/main.js.map +0 -1
  16. package/configure/lib/number-text-field.js +0 -97
  17. package/configure/lib/number-text-field.js.map +0 -1
  18. package/configure/lib/point-config.js +0 -145
  19. package/configure/lib/point-config.js.map +0 -1
  20. package/configure/lib/size.js +0 -58
  21. package/configure/lib/size.js.map +0 -1
  22. package/configure/lib/ticks.js +0 -92
  23. package/configure/lib/ticks.js.map +0 -1
  24. package/configure/lib/utils.js +0 -14
  25. package/configure/lib/utils.js.map +0 -1
  26. package/controller/lib/defaults.js +0 -47
  27. package/controller/lib/defaults.js.map +0 -1
  28. package/controller/lib/index.js +0 -443
  29. package/controller/lib/index.js.map +0 -1
  30. package/lib/data-converter.js +0 -100
  31. package/lib/data-converter.js.map +0 -1
  32. package/lib/draggable/index.js +0 -53
  33. package/lib/draggable/index.js.map +0 -1
  34. package/lib/index.js +0 -241
  35. package/lib/index.js.map +0 -1
  36. package/lib/number-line/colors.js +0 -21
  37. package/lib/number-line/colors.js.map +0 -1
  38. package/lib/number-line/feedback.js +0 -108
  39. package/lib/number-line/feedback.js.map +0 -1
  40. package/lib/number-line/graph/arrow.js +0 -63
  41. package/lib/number-line/graph/arrow.js.map +0 -1
  42. package/lib/number-line/graph/elements/base.js +0 -26
  43. package/lib/number-line/graph/elements/base.js.map +0 -1
  44. package/lib/number-line/graph/elements/builder.js +0 -38
  45. package/lib/number-line/graph/elements/builder.js.map +0 -1
  46. package/lib/number-line/graph/elements/line.js +0 -317
  47. package/lib/number-line/graph/elements/line.js.map +0 -1
  48. package/lib/number-line/graph/elements/point.js +0 -233
  49. package/lib/number-line/graph/elements/point.js.map +0 -1
  50. package/lib/number-line/graph/elements/ray.js +0 -227
  51. package/lib/number-line/graph/elements/ray.js.map +0 -1
  52. package/lib/number-line/graph/index.js +0 -326
  53. package/lib/number-line/graph/index.js.map +0 -1
  54. package/lib/number-line/graph/line.js +0 -48
  55. package/lib/number-line/graph/line.js.map +0 -1
  56. package/lib/number-line/graph/stacks.js +0 -101
  57. package/lib/number-line/graph/stacks.js.map +0 -1
  58. package/lib/number-line/graph/tick-utils.js +0 -295
  59. package/lib/number-line/graph/tick-utils.js.map +0 -1
  60. package/lib/number-line/graph/ticks.js +0 -244
  61. package/lib/number-line/graph/ticks.js.map +0 -1
  62. package/lib/number-line/index.js +0 -401
  63. package/lib/number-line/index.js.map +0 -1
  64. package/lib/number-line/point-chooser/button.js +0 -74
  65. package/lib/number-line/point-chooser/button.js.map +0 -1
  66. package/lib/number-line/point-chooser/img.js +0 -9
  67. package/lib/number-line/point-chooser/img.js.map +0 -1
  68. package/lib/number-line/point-chooser/index.js +0 -181
  69. package/lib/number-line/point-chooser/index.js.map +0 -1
  70. package/lib/number-line/point-chooser/styles.js +0 -98
  71. package/lib/number-line/point-chooser/styles.js.map +0 -1
  72. package/lib/number-line/transitions/fade.js +0 -67
  73. package/lib/number-line/transitions/fade.js.map +0 -1
  74. package/lib/number-line/transitions/index.js +0 -16
  75. package/lib/number-line/transitions/index.js.map +0 -1
package/lib/index.js DELETED
@@ -1,241 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- Object.defineProperty(exports, "Graph", {
11
- enumerable: true,
12
- get: function get() {
13
- return _graph["default"];
14
- }
15
- });
16
- Object.defineProperty(exports, "NumberLineComponent", {
17
- enumerable: true,
18
- get: function get() {
19
- return _numberLine["default"];
20
- }
21
- });
22
- exports.tickUtils = exports.pointChooser = exports["default"] = exports.dataConverter = void 0;
23
-
24
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
25
-
26
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
27
-
28
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
29
-
30
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
31
-
32
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
33
-
34
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
35
-
36
- var dataConverter = _interopRequireWildcard(require("./data-converter"));
37
-
38
- exports.dataConverter = dataConverter;
39
-
40
- var pointChooser = _interopRequireWildcard(require("./number-line/point-chooser"));
41
-
42
- exports.pointChooser = pointChooser;
43
-
44
- var tickUtils = _interopRequireWildcard(require("./number-line/graph/tick-utils"));
45
-
46
- exports.tickUtils = tickUtils;
47
-
48
- var _graph = _interopRequireDefault(require("./number-line/graph"));
49
-
50
- var _numberLine = _interopRequireDefault(require("./number-line"));
51
-
52
- var _react = _interopRequireDefault(require("react"));
53
-
54
- var _reactDom = _interopRequireDefault(require("react-dom"));
55
-
56
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
57
-
58
- var _mathRendering = require("@pie-lib/math-rendering");
59
-
60
- 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); }
61
-
62
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
63
-
64
- 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); }; }
65
-
66
- 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; } }
67
-
68
- var NumberLine = /*#__PURE__*/function (_HTMLElement) {
69
- (0, _inherits2["default"])(NumberLine, _HTMLElement);
70
-
71
- var _super = _createSuper(NumberLine);
72
-
73
- function NumberLine() {
74
- (0, _classCallCheck2["default"])(this, NumberLine);
75
- return _super.call(this);
76
- }
77
-
78
- (0, _createClass2["default"])(NumberLine, [{
79
- key: "model",
80
- set: function set(m) {
81
- this._model = m;
82
-
83
- this._applyInitialElements();
84
-
85
- this._render();
86
-
87
- this.dispatch('model-set');
88
- }
89
- }, {
90
- key: "session",
91
- get: function get() {
92
- return this._session;
93
- },
94
- set: function set(s) {
95
- this._session = s;
96
-
97
- this._applyInitialElements();
98
-
99
- this._render();
100
- }
101
- }, {
102
- key: "connectedCallback",
103
- value: function connectedCallback() {
104
- this._render();
105
- }
106
- }, {
107
- key: "isComplete",
108
- value: function isComplete() {
109
- return this._session ? (this._session.answer || []).length > 0 : false;
110
- }
111
- }, {
112
- key: "dispatch",
113
- value: function dispatch(type) {
114
- this.dispatchEvent(new CustomEvent(type, {
115
- bubbles: true,
116
- detail: {
117
- complete: this.isComplete()
118
- }
119
- }));
120
- }
121
- }, {
122
- key: "dispatchSessionChanged",
123
- value: function dispatchSessionChanged() {
124
- this.dispatch('session-changed');
125
- }
126
- }, {
127
- key: "addElement",
128
- value: function addElement(data) {
129
- if (!this._session) {
130
- return;
131
- }
132
-
133
- this._session.answer = this._session.answer || [];
134
-
135
- this._session.answer.push((0, dataConverter.toSessionFormat)(data));
136
-
137
- this.dispatchSessionChanged();
138
-
139
- this._render();
140
- }
141
- }, {
142
- key: "moveElement",
143
- value: function moveElement(index, el, position) {
144
- var answer = this._session.answer[index];
145
-
146
- if (!answer) {
147
- throw new Error('cant find element at index: ', index);
148
- }
149
-
150
- if (el.type === 'line' && position.left === position.right) {
151
- this._render();
152
-
153
- return;
154
- } //set the new position
155
-
156
-
157
- el.position = position;
158
- var update = el.type === 'line' && (0, dataConverter.lineIsSwitched)(el) ? (0, dataConverter.switchGraphLine)(el) : el;
159
-
160
- this._session.answer.splice(index, 1, (0, dataConverter.toSessionFormat)(update));
161
-
162
- this.dispatchSessionChanged();
163
-
164
- this._render();
165
- }
166
- }, {
167
- key: "deleteElements",
168
- value: function deleteElements(indices) {
169
- this._session.answer = this._session.answer.filter(function (v, index) {
170
- return !indices.some(function (d) {
171
- return d === index;
172
- });
173
- });
174
- this.dispatchSessionChanged();
175
-
176
- this._render();
177
- }
178
- }, {
179
- key: "undoElement",
180
- value: function undoElement() {
181
- this._session.answer.pop();
182
-
183
- this.dispatchSessionChanged();
184
-
185
- this._render();
186
- }
187
- }, {
188
- key: "clearElements",
189
- value: function clearElements() {
190
- this._session.answer = [];
191
- this.dispatchSessionChanged();
192
-
193
- this._render();
194
- }
195
- }, {
196
- key: "_applyInitialElements",
197
- value: function _applyInitialElements() {
198
- if (this._model && this._model.graph && this._model.graph.initialElements && this._session && (!this._session.answer || !this._session.answer.length)) {
199
- this._session.answer = (0, _cloneDeep["default"])(this._model.graph.initialElements);
200
- }
201
- }
202
- }, {
203
- key: "_render",
204
- value: function _render() {
205
- var _this = this;
206
-
207
- try {
208
- if (this._model && this._session) {
209
- if (!this._session.answer) {
210
- this._applyInitialElements();
211
- }
212
-
213
- var answer = (this._session.answer || []).map(dataConverter.toGraphFormat);
214
- var model = (0, _cloneDeep["default"])(this._model);
215
- model.correctResponse = model.correctResponse && model.correctResponse.map(dataConverter.toGraphFormat);
216
- var props = {
217
- model: model,
218
- answer: answer,
219
- onAddElement: this.addElement.bind(this),
220
- onMoveElement: this.moveElement.bind(this),
221
- onDeleteElements: this.deleteElements.bind(this),
222
- onUndoElement: this.undoElement.bind(this),
223
- onClearElements: this.clearElements.bind(this)
224
- };
225
-
226
- var el = /*#__PURE__*/_react["default"].createElement(_numberLine["default"], props);
227
-
228
- _reactDom["default"].render(el, this, function () {
229
- (0, _mathRendering.renderMath)(_this);
230
- });
231
- }
232
- } catch (e) {
233
- throw e;
234
- }
235
- }
236
- }]);
237
- return NumberLine;
238
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
239
-
240
- exports["default"] = NumberLine;
241
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["NumberLine","m","_model","_applyInitialElements","_render","dispatch","_session","s","answer","length","type","dispatchEvent","CustomEvent","bubbles","detail","complete","isComplete","data","push","dispatchSessionChanged","index","el","position","Error","left","right","update","splice","indices","filter","v","some","d","pop","graph","initialElements","map","toGraphFormat","model","correctResponse","props","onAddElement","addElement","bind","onMoveElement","moveElement","onDeleteElements","deleteElements","onUndoElement","undoElement","onClearElements","clearElements","React","createElement","RootComponent","ReactDOM","render","e","HTMLElement"],"mappings":"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","sourcesContent":["import * as dataConverter from './data-converter';\nimport * as pointChooser from './number-line/point-chooser';\nimport * as tickUtils from './number-line/graph/tick-utils';\n\nimport { lineIsSwitched, switchGraphLine, toGraphFormat, toSessionFormat } from './data-converter';\n\nimport Graph from './number-line/graph';\nimport NumberLineComponent from './number-line';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport RootComponent from './number-line';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { renderMath } from '@pie-lib/math-rendering';\n\n//Expose some additional modules for configuration\nexport { Graph, NumberLineComponent, tickUtils, dataConverter, pointChooser };\n\nexport default class NumberLine extends HTMLElement {\n constructor() {\n super();\n }\n\n set model(m) {\n this._model = m;\n this._applyInitialElements();\n this._render();\n this.dispatch('model-set');\n }\n\n set session(s) {\n this._session = s;\n this._applyInitialElements();\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n connectedCallback() {\n this._render();\n }\n\n isComplete() {\n return this._session ? (this._session.answer || []).length > 0 : false;\n }\n\n dispatch(type) {\n this.dispatchEvent(\n new CustomEvent(type, {\n bubbles: true,\n detail: {\n complete: this.isComplete(),\n },\n }),\n );\n }\n\n dispatchSessionChanged() {\n this.dispatch('session-changed');\n }\n\n addElement(data) {\n if (!this._session) {\n return;\n }\n\n this._session.answer = this._session.answer || [];\n this._session.answer.push(toSessionFormat(data));\n this.dispatchSessionChanged();\n this._render();\n }\n\n moveElement(index, el, position) {\n let answer = this._session.answer[index];\n\n if (!answer) {\n throw new Error('cant find element at index: ', index);\n }\n\n if (el.type === 'line' && position.left === position.right) {\n this._render();\n return;\n }\n\n //set the new position\n el.position = position;\n\n let update = el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el;\n\n this._session.answer.splice(index, 1, toSessionFormat(update));\n\n this.dispatchSessionChanged();\n this._render();\n }\n\n deleteElements(indices) {\n this._session.answer = this._session.answer.filter((v, index) => {\n return !indices.some((d) => d === index);\n });\n this.dispatchSessionChanged();\n this._render();\n }\n\n undoElement() {\n this._session.answer.pop();\n this.dispatchSessionChanged();\n this._render();\n }\n\n clearElements() {\n this._session.answer = [];\n this.dispatchSessionChanged();\n this._render();\n }\n\n _applyInitialElements() {\n if (\n this._model &&\n this._model.graph &&\n this._model.graph.initialElements &&\n this._session &&\n (!this._session.answer || !this._session.answer.length)\n ) {\n this._session.answer = cloneDeep(this._model.graph.initialElements);\n }\n }\n\n _render() {\n try {\n if (this._model && this._session) {\n if (!this._session.answer) {\n this._applyInitialElements();\n }\n\n let answer = (this._session.answer || []).map(toGraphFormat);\n let model = cloneDeep(this._model);\n model.correctResponse = model.correctResponse && model.correctResponse.map(toGraphFormat);\n\n let props = {\n model,\n answer,\n onAddElement: this.addElement.bind(this),\n onMoveElement: this.moveElement.bind(this),\n onDeleteElements: this.deleteElements.bind(this),\n onUndoElement: this.undoElement.bind(this),\n onClearElements: this.clearElements.bind(this),\n };\n\n let el = React.createElement(RootComponent, props);\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n } catch (e) {\n throw e;\n }\n }\n}\n"],"file":"index.js"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.selected = exports.incorrect = exports.correct = void 0;
7
-
8
- var _renderUi = require("@pie-lib/render-ui");
9
-
10
- var selected = _renderUi.color.primaryDark();
11
-
12
- exports.selected = selected;
13
-
14
- var correct = _renderUi.color.correct();
15
-
16
- exports.correct = correct;
17
-
18
- var incorrect = _renderUi.color.incorrect();
19
-
20
- exports.incorrect = incorrect;
21
- //# sourceMappingURL=colors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/number-line/colors.js"],"names":["selected","color","primaryDark","correct","incorrect"],"mappings":";;;;;;;AAAA;;AAEO,IAAMA,QAAQ,GAAGC,gBAAMC,WAAN,EAAjB;;;;AACA,IAAMC,OAAO,GAAGF,gBAAME,OAAN,EAAhB;;;;AACA,IAAMC,SAAS,GAAGH,gBAAMG,SAAN,EAAlB","sourcesContent":["import { color } from '@pie-lib/render-ui';\n\nexport const selected = color.primaryDark();\nexport const correct = color.correct();\nexport const incorrect = color.incorrect();\n"],"file":"colors.js"}
@@ -1,108 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _icons = require("@pie-lib/icons");
11
-
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
-
14
- var _renderUi = require("@pie-lib/render-ui");
15
-
16
- var _react = _interopRequireDefault(require("react"));
17
-
18
- var _reactTransitionGroup = require("react-transition-group");
19
-
20
- var _classnames = _interopRequireDefault(require("classnames"));
21
-
22
- var _reactJss = _interopRequireDefault(require("react-jss"));
23
-
24
- var getIcon = function getIcon(t) {
25
- switch (t) {
26
- case 'unanswered':
27
- return _icons.NothingSubmitted;
28
-
29
- case 'correct':
30
- return _icons.Correct;
31
-
32
- case 'incorrect':
33
- return _icons.Incorrect;
34
-
35
- case 'partial':
36
- return _icons.PartiallyCorrect;
37
-
38
- case 'info':
39
- return _icons.ShowRationale;
40
-
41
- default:
42
- return undefined;
43
- }
44
- };
45
-
46
- var Feedback = function Feedback(props) {
47
- var classes = props.classes,
48
- type = props.type;
49
- var className = (0, _classnames["default"])(classes[type], classes.feedback);
50
- var Icon = getIcon(props.type);
51
- return /*#__PURE__*/_react["default"].createElement(_reactTransitionGroup.TransitionGroup, null, /*#__PURE__*/_react["default"].createElement(_reactTransitionGroup.CSSTransition, {
52
- classNames: 'fb',
53
- key: "fb",
54
- timeout: 300
55
- }, /*#__PURE__*/_react["default"].createElement("div", {
56
- key: "panel",
57
- className: className,
58
- style: {
59
- width: props.width
60
- }
61
- }, /*#__PURE__*/_react["default"].createElement(Icon, {
62
- iconSet: "emoji",
63
- shape: "square"
64
- }), /*#__PURE__*/_react["default"].createElement("span", {
65
- className: classes.message,
66
- dangerouslySetInnerHTML: {
67
- __html: props.message
68
- }
69
- }))));
70
- };
71
-
72
- Feedback.propTypes = {
73
- width: _propTypes["default"].number,
74
- message: _propTypes["default"].string,
75
- classes: _propTypes["default"].object.isRequired,
76
- type: _propTypes["default"].string
77
- };
78
- var styles = {
79
- feedback: {
80
- marginTop: '10px',
81
- backgroundColor: '#dddddd',
82
- padding: '10px',
83
- display: 'flex',
84
- alignItems: 'center',
85
- '& svg': {
86
- height: '30px'
87
- },
88
- '& h1': {
89
- padding: '0px',
90
- margin: '0px'
91
- }
92
- },
93
- message: {
94
- paddingLeft: '5px',
95
- userSelect: 'none'
96
- },
97
- correct: {
98
- backgroundColor: _renderUi.color.correct()
99
- },
100
- incorrect: {
101
- backgroundColor: _renderUi.color.incorrect()
102
- }
103
- };
104
-
105
- var _default = (0, _reactJss["default"])(styles)(Feedback);
106
-
107
- exports["default"] = _default;
108
- //# sourceMappingURL=feedback.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/number-line/feedback.jsx"],"names":["getIcon","t","NothingSubmitted","Correct","Incorrect","PartiallyCorrect","ShowRationale","undefined","Feedback","props","classes","type","className","feedback","Icon","width","message","__html","propTypes","PropTypes","number","string","object","isRequired","styles","marginTop","backgroundColor","padding","display","alignItems","height","margin","paddingLeft","userSelect","correct","color","incorrect"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAEA,IAAIA,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAO;AACnB,UAAQA,CAAR;AACE,SAAK,YAAL;AACE,aAAOC,uBAAP;;AACF,SAAK,SAAL;AACE,aAAOC,cAAP;;AACF,SAAK,WAAL;AACE,aAAOC,gBAAP;;AACF,SAAK,SAAL;AACE,aAAOC,uBAAP;;AACF,SAAK,MAAL;AACE,aAAOC,oBAAP;;AACF;AACE,aAAOC,SAAP;AAZJ;AAcD,CAfD;;AAiBA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAW;AAC1B,MAAQC,OAAR,GAA0BD,KAA1B,CAAQC,OAAR;AAAA,MAAiBC,IAAjB,GAA0BF,KAA1B,CAAiBE,IAAjB;AACA,MAAIC,SAAS,GAAG,4BAAWF,OAAO,CAACC,IAAD,CAAlB,EAA0BD,OAAO,CAACG,QAAlC,CAAhB;AACA,MAAIC,IAAI,GAAGd,OAAO,CAACS,KAAK,CAACE,IAAP,CAAlB;AAEA,sBACE,gCAAC,qCAAD,qBACE,gCAAC,mCAAD;AAAe,IAAA,UAAU,EAAE,IAA3B;AAAiC,IAAA,GAAG,EAAC,IAArC;AAA0C,IAAA,OAAO,EAAE;AAAnD,kBACE;AAAK,IAAA,GAAG,EAAC,OAAT;AAAiB,IAAA,SAAS,EAAEC,SAA5B;AAAuC,IAAA,KAAK,EAAE;AAAEG,MAAAA,KAAK,EAAEN,KAAK,CAACM;AAAf;AAA9C,kBACE,gCAAC,IAAD;AAAM,IAAA,OAAO,EAAC,OAAd;AAAsB,IAAA,KAAK,EAAC;AAA5B,IADF,eAEE;AAAM,IAAA,SAAS,EAAEL,OAAO,CAACM,OAAzB;AAAkC,IAAA,uBAAuB,EAAE;AAAEC,MAAAA,MAAM,EAAER,KAAK,CAACO;AAAhB;AAA3D,IAFF,CADF,CADF,CADF;AAUD,CAfD;;AAiBAR,QAAQ,CAACU,SAAT,GAAqB;AACnBH,EAAAA,KAAK,EAAEI,sBAAUC,MADE;AAEnBJ,EAAAA,OAAO,EAAEG,sBAAUE,MAFA;AAGnBX,EAAAA,OAAO,EAAES,sBAAUG,MAAV,CAAiBC,UAHP;AAInBZ,EAAAA,IAAI,EAAEQ,sBAAUE;AAJG,CAArB;AAOA,IAAMG,MAAM,GAAG;AACbX,EAAAA,QAAQ,EAAE;AACRY,IAAAA,SAAS,EAAE,MADH;AAERC,IAAAA,eAAe,EAAE,SAFT;AAGRC,IAAAA,OAAO,EAAE,MAHD;AAIRC,IAAAA,OAAO,EAAE,MAJD;AAKRC,IAAAA,UAAU,EAAE,QALJ;AAMR,aAAS;AACPC,MAAAA,MAAM,EAAE;AADD,KAND;AASR,YAAQ;AACNH,MAAAA,OAAO,EAAE,KADH;AAENI,MAAAA,MAAM,EAAE;AAFF;AATA,GADG;AAebf,EAAAA,OAAO,EAAE;AACPgB,IAAAA,WAAW,EAAE,KADN;AAEPC,IAAAA,UAAU,EAAE;AAFL,GAfI;AAmBbC,EAAAA,OAAO,EAAE;AACPR,IAAAA,eAAe,EAAES,gBAAMD,OAAN;AADV,GAnBI;AAsBbE,EAAAA,SAAS,EAAE;AACTV,IAAAA,eAAe,EAAES,gBAAMC,SAAN;AADR;AAtBE,CAAf;;eA2Be,0BAAYZ,MAAZ,EAAoBhB,QAApB,C","sourcesContent":["import { Correct, Incorrect, NothingSubmitted, PartiallyCorrect, ShowRationale } from '@pie-lib/icons';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\n\nimport React from 'react';\nimport { TransitionGroup, CSSTransition } from 'react-transition-group';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\n\nlet getIcon = (t) => {\n switch (t) {\n case 'unanswered':\n return NothingSubmitted;\n case 'correct':\n return Correct;\n case 'incorrect':\n return Incorrect;\n case 'partial':\n return PartiallyCorrect;\n case 'info':\n return ShowRationale;\n default:\n return undefined;\n }\n};\n\nconst Feedback = (props) => {\n const { classes, type } = props;\n let className = classNames(classes[type], classes.feedback);\n let Icon = getIcon(props.type);\n\n return (\n <TransitionGroup>\n <CSSTransition classNames={'fb'} key=\"fb\" timeout={300}>\n <div key=\"panel\" className={className} style={{ width: props.width }}>\n <Icon iconSet=\"emoji\" shape=\"square\" />\n <span className={classes.message} dangerouslySetInnerHTML={{ __html: props.message }} />\n </div>\n </CSSTransition>\n </TransitionGroup>\n );\n};\n\nFeedback.propTypes = {\n width: PropTypes.number,\n message: PropTypes.string,\n classes: PropTypes.object.isRequired,\n type: PropTypes.string,\n};\n\nconst styles = {\n feedback: {\n marginTop: '10px',\n backgroundColor: '#dddddd',\n padding: '10px',\n display: 'flex',\n alignItems: 'center',\n '& svg': {\n height: '30px',\n },\n '& h1': {\n padding: '0px',\n margin: '0px',\n },\n },\n message: {\n paddingLeft: '5px',\n userSelect: 'none',\n },\n correct: {\n backgroundColor: color.correct(),\n },\n incorrect: {\n backgroundColor: color.incorrect(),\n },\n};\n\nexport default injectSheet(styles)(Feedback);\n"],"file":"feedback.js"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Arrow = Arrow;
9
- exports["default"] = void 0;
10
-
11
- var _react = _interopRequireDefault(require("react"));
12
-
13
- var _propTypes = _interopRequireDefault(require("prop-types"));
14
-
15
- var _classnames = _interopRequireDefault(require("classnames"));
16
-
17
- var _reactJss = _interopRequireDefault(require("react-jss"));
18
-
19
- var _renderUi = require("@pie-lib/render-ui");
20
-
21
- var style = {
22
- root: {
23
- fill: _renderUi.color.primary()
24
- }
25
- };
26
-
27
- function Arrow(_ref) {
28
- var x = _ref.x,
29
- y = _ref.y,
30
- direction = _ref.direction,
31
- classes = _ref.classes,
32
- className = _ref.className;
33
- var transform = "translate(".concat(x || 0, ",").concat(y, ")");
34
-
35
- if (direction && direction === 'right') {
36
- transform += ' rotate(180)';
37
- }
38
-
39
- var names = (0, _classnames["default"])(classes.root, className);
40
- return /*#__PURE__*/_react["default"].createElement("path", {
41
- d: "m 0,0 8,-5 0,10 -8,-5",
42
- transform: transform,
43
- className: names
44
- });
45
- }
46
-
47
- Arrow.propTypes = {
48
- y: _propTypes["default"].number,
49
- x: _propTypes["default"].number,
50
- direction: _propTypes["default"].oneOf(['left', 'right']),
51
- classes: _propTypes["default"].object.isRequired,
52
- className: _propTypes["default"].string
53
- };
54
- Arrow.defaultProps = {
55
- y: 0,
56
- x: 0,
57
- direction: 'left'
58
- };
59
-
60
- var _default = (0, _reactJss["default"])(style)(Arrow);
61
-
62
- exports["default"] = _default;
63
- //# sourceMappingURL=arrow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/arrow.jsx"],"names":["style","root","fill","color","primary","Arrow","x","y","direction","classes","className","transform","names","propTypes","PropTypes","number","oneOf","object","isRequired","string","defaultProps"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAEC,gBAAMC,OAAN;AADF;AADM,CAAd;;AAMO,SAASC,KAAT,OAAwD;AAAA,MAAvCC,CAAuC,QAAvCA,CAAuC;AAAA,MAApCC,CAAoC,QAApCA,CAAoC;AAAA,MAAjCC,SAAiC,QAAjCA,SAAiC;AAAA,MAAtBC,OAAsB,QAAtBA,OAAsB;AAAA,MAAbC,SAAa,QAAbA,SAAa;AAC7D,MAAIC,SAAS,uBAAgBL,CAAC,IAAI,CAArB,cAA0BC,CAA1B,MAAb;;AAEA,MAAIC,SAAS,IAAIA,SAAS,KAAK,OAA/B,EAAwC;AACtCG,IAAAA,SAAS,IAAI,cAAb;AACD;;AAED,MAAMC,KAAK,GAAG,4BAAWH,OAAO,CAACR,IAAnB,EAAyBS,SAAzB,CAAd;AACA,sBAAO;AAAM,IAAA,CAAC,EAAC,uBAAR;AAAgC,IAAA,SAAS,EAAEC,SAA3C;AAAsD,IAAA,SAAS,EAAEC;AAAjE,IAAP;AACD;;AAEDP,KAAK,CAACQ,SAAN,GAAkB;AAChBN,EAAAA,CAAC,EAAEO,sBAAUC,MADG;AAEhBT,EAAAA,CAAC,EAAEQ,sBAAUC,MAFG;AAGhBP,EAAAA,SAAS,EAAEM,sBAAUE,KAAV,CAAgB,CAAC,MAAD,EAAS,OAAT,CAAhB,CAHK;AAIhBP,EAAAA,OAAO,EAAEK,sBAAUG,MAAV,CAAiBC,UAJV;AAKhBR,EAAAA,SAAS,EAAEI,sBAAUK;AALL,CAAlB;AAQAd,KAAK,CAACe,YAAN,GAAqB;AACnBb,EAAAA,CAAC,EAAE,CADgB;AAEnBD,EAAAA,CAAC,EAAE,CAFgB;AAGnBE,EAAAA,SAAS,EAAE;AAHQ,CAArB;;eAMe,0BAAYR,KAAZ,EAAmBK,KAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/render-ui';\n\nconst style = {\n root: {\n fill: color.primary(),\n },\n};\n\nexport function Arrow({ x, y, direction, classes, className }) {\n let transform = `translate(${x || 0},${y})`;\n\n if (direction && direction === 'right') {\n transform += ' rotate(180)';\n }\n\n const names = classNames(classes.root, className);\n return <path d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={names} />;\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right']),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left',\n};\n\nexport default injectSheet(style)(Arrow);\n"],"file":"arrow.js"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.basePropTypes = void 0;
9
-
10
- var _react = _interopRequireDefault(require("react"));
11
-
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
-
14
- //eslint-disable-line
15
- var basePropTypes = function basePropTypes() {
16
- return {
17
- interval: _propTypes["default"].number.isRequired,
18
- domain: _propTypes["default"].shape({
19
- min: _propTypes["default"].number.isRequired,
20
- max: _propTypes["default"].number.isRequired
21
- })
22
- };
23
- };
24
-
25
- exports.basePropTypes = basePropTypes;
26
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/number-line/graph/elements/base.js"],"names":["basePropTypes","interval","PropTypes","number","isRequired","domain","shape","min","max"],"mappings":";;;;;;;;;AAAA;;AACA;;AAD2B;AAGpB,IAAMA,aAAa,GAAG,SAAhBA,aAAgB;AAAA,SAAO;AAClCC,IAAAA,QAAQ,EAAEC,sBAAUC,MAAV,CAAiBC,UADO;AAElCC,IAAAA,MAAM,EAAEH,sBAAUI,KAAV,CAAgB;AACtBC,MAAAA,GAAG,EAAEL,sBAAUC,MAAV,CAAiBC,UADA;AAEtBI,MAAAA,GAAG,EAAEN,sBAAUC,MAAV,CAAiBC;AAFA,KAAhB;AAF0B,GAAP;AAAA,CAAtB","sourcesContent":["import React from 'react'; //eslint-disable-line\nimport PropTypes from 'prop-types';\n\nexport const basePropTypes = () => ({\n interval: PropTypes.number.isRequired,\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }),\n});\n"],"file":"base.js"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.buildElementModel = buildElementModel;
7
-
8
- function buildElementModel(position, elementType, domain, interval) {
9
- if (elementType.startsWith('p')) {
10
- return {
11
- position: position,
12
- type: 'point',
13
- pointType: elementType.endsWith('e') ? 'empty' : 'full'
14
- };
15
- } else if (elementType.startsWith('l')) {
16
- var left = position + interval <= domain.max ? position : position - interval;
17
- var right = left + interval;
18
- return {
19
- type: 'line',
20
- leftPoint: elementType.charAt(1) === 'e' ? 'empty' : 'full',
21
- rightPoint: elementType.charAt(2) === 'e' ? 'empty' : 'full',
22
- position: {
23
- left: left,
24
- right: right
25
- }
26
- };
27
- } else if (elementType.startsWith('r')) {
28
- var full = elementType.charAt(1) === 'f';
29
- var positive = elementType.charAt(2) === 'p';
30
- return {
31
- type: 'ray',
32
- direction: positive ? 'positive' : 'negative',
33
- pointType: full ? 'full' : 'empty',
34
- position: position
35
- };
36
- }
37
- }
38
- //# sourceMappingURL=builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/number-line/graph/elements/builder.js"],"names":["buildElementModel","position","elementType","domain","interval","startsWith","type","pointType","endsWith","left","max","right","leftPoint","charAt","rightPoint","full","positive","direction"],"mappings":";;;;;;;AAAO,SAASA,iBAAT,CAA2BC,QAA3B,EAAqCC,WAArC,EAAkDC,MAAlD,EAA0DC,QAA1D,EAAoE;AACzE,MAAIF,WAAW,CAACG,UAAZ,CAAuB,GAAvB,CAAJ,EAAiC;AAC/B,WAAO;AACLJ,MAAAA,QAAQ,EAAEA,QADL;AAELK,MAAAA,IAAI,EAAE,OAFD;AAGLC,MAAAA,SAAS,EAAEL,WAAW,CAACM,QAAZ,CAAqB,GAArB,IAA4B,OAA5B,GAAsC;AAH5C,KAAP;AAKD,GAND,MAMO,IAAIN,WAAW,CAACG,UAAZ,CAAuB,GAAvB,CAAJ,EAAiC;AACtC,QAAII,IAAI,GAAGR,QAAQ,GAAGG,QAAX,IAAuBD,MAAM,CAACO,GAA9B,GAAoCT,QAApC,GAA+CA,QAAQ,GAAGG,QAArE;AACA,QAAIO,KAAK,GAAGF,IAAI,GAAGL,QAAnB;AACA,WAAO;AACLE,MAAAA,IAAI,EAAE,MADD;AAELM,MAAAA,SAAS,EAAEV,WAAW,CAACW,MAAZ,CAAmB,CAAnB,MAA0B,GAA1B,GAAgC,OAAhC,GAA0C,MAFhD;AAGLC,MAAAA,UAAU,EAAEZ,WAAW,CAACW,MAAZ,CAAmB,CAAnB,MAA0B,GAA1B,GAAgC,OAAhC,GAA0C,MAHjD;AAILZ,MAAAA,QAAQ,EAAE;AAAEQ,QAAAA,IAAI,EAAJA,IAAF;AAAQE,QAAAA,KAAK,EAALA;AAAR;AAJL,KAAP;AAMD,GATM,MASA,IAAIT,WAAW,CAACG,UAAZ,CAAuB,GAAvB,CAAJ,EAAiC;AACtC,QAAIU,IAAI,GAAGb,WAAW,CAACW,MAAZ,CAAmB,CAAnB,MAA0B,GAArC;AACA,QAAIG,QAAQ,GAAGd,WAAW,CAACW,MAAZ,CAAmB,CAAnB,MAA0B,GAAzC;AACA,WAAO;AACLP,MAAAA,IAAI,EAAE,KADD;AAELW,MAAAA,SAAS,EAAED,QAAQ,GAAG,UAAH,GAAgB,UAF9B;AAGLT,MAAAA,SAAS,EAAEQ,IAAI,GAAG,MAAH,GAAY,OAHtB;AAILd,MAAAA,QAAQ,EAAEA;AAJL,KAAP;AAMD;AACF","sourcesContent":["export function buildElementModel(position, elementType, domain, interval) {\n if (elementType.startsWith('p')) {\n return {\n position: position,\n type: 'point',\n pointType: elementType.endsWith('e') ? 'empty' : 'full',\n };\n } else if (elementType.startsWith('l')) {\n let left = position + interval <= domain.max ? position : position - interval;\n let right = left + interval;\n return {\n type: 'line',\n leftPoint: elementType.charAt(1) === 'e' ? 'empty' : 'full',\n rightPoint: elementType.charAt(2) === 'e' ? 'empty' : 'full',\n position: { left, right },\n };\n } else if (elementType.startsWith('r')) {\n let full = elementType.charAt(1) === 'f';\n let positive = elementType.charAt(2) === 'p';\n return {\n type: 'ray',\n direction: positive ? 'positive' : 'negative',\n pointType: full ? 'full' : 'empty',\n position: position,\n };\n }\n}\n"],"file":"builder.js"}