@pie-element/number-line 11.3.4-next.3 → 12.0.0-beta.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.
Files changed (86) hide show
  1. package/configure/lib/arrows.js +68 -103
  2. package/configure/lib/arrows.js.map +1 -1
  3. package/configure/lib/card-bar.js +41 -62
  4. package/configure/lib/card-bar.js.map +1 -1
  5. package/configure/lib/defaults.js +5 -7
  6. package/configure/lib/defaults.js.map +1 -1
  7. package/configure/lib/domain.js +60 -116
  8. package/configure/lib/domain.js.map +1 -1
  9. package/configure/lib/index.js +124 -194
  10. package/configure/lib/index.js.map +1 -1
  11. package/configure/lib/main.js +585 -721
  12. package/configure/lib/main.js.map +1 -1
  13. package/configure/lib/number-text-field.js +15 -86
  14. package/configure/lib/number-text-field.js.map +1 -1
  15. package/configure/lib/point-config.js +69 -129
  16. package/configure/lib/point-config.js.map +1 -1
  17. package/configure/lib/size.js +43 -77
  18. package/configure/lib/size.js.map +1 -1
  19. package/configure/lib/ticks.js +89 -151
  20. package/configure/lib/ticks.js.map +1 -1
  21. package/configure/lib/utils.js +2 -4
  22. package/configure/lib/utils.js.map +1 -1
  23. package/configure/package.json +10 -7
  24. package/controller/lib/defaults.js +5 -6
  25. package/controller/lib/defaults.js.map +1 -1
  26. package/controller/lib/index.js +171 -286
  27. package/controller/lib/index.js.map +1 -1
  28. package/controller/lib/tickUtils.js +96 -169
  29. package/controller/lib/tickUtils.js.map +1 -1
  30. package/controller/lib/utils.js +55 -88
  31. package/controller/lib/utils.js.map +1 -1
  32. package/controller/package.json +3 -3
  33. package/lib/data-converter.js +19 -23
  34. package/lib/data-converter.js.map +1 -1
  35. package/lib/draggable/index.js +104 -43
  36. package/lib/draggable/index.js.map +1 -1
  37. package/lib/index.js +118 -205
  38. package/lib/index.js.map +1 -1
  39. package/lib/number-line/colors.js +3 -13
  40. package/lib/number-line/colors.js.map +1 -1
  41. package/lib/number-line/feedback.js +53 -69
  42. package/lib/number-line/feedback.js.map +1 -1
  43. package/lib/number-line/graph/arrow.js +19 -38
  44. package/lib/number-line/graph/arrow.js.map +1 -1
  45. package/lib/number-line/graph/elements/base.js +7 -13
  46. package/lib/number-line/graph/elements/base.js.map +1 -1
  47. package/lib/number-line/graph/elements/builder.js +6 -7
  48. package/lib/number-line/graph/elements/builder.js.map +1 -1
  49. package/lib/number-line/graph/elements/line.js +209 -265
  50. package/lib/number-line/graph/elements/line.js.map +1 -1
  51. package/lib/number-line/graph/elements/point.js +170 -201
  52. package/lib/number-line/graph/elements/point.js.map +1 -1
  53. package/lib/number-line/graph/elements/ray.js +147 -185
  54. package/lib/number-line/graph/elements/ray.js.map +1 -1
  55. package/lib/number-line/graph/index.js +217 -283
  56. package/lib/number-line/graph/index.js.map +1 -1
  57. package/lib/number-line/graph/line.js +12 -22
  58. package/lib/number-line/graph/line.js.map +1 -1
  59. package/lib/number-line/graph/stacks.js +31 -54
  60. package/lib/number-line/graph/stacks.js.map +1 -1
  61. package/lib/number-line/graph/tick-utils.js +120 -209
  62. package/lib/number-line/graph/tick-utils.js.map +1 -1
  63. package/lib/number-line/graph/ticks.js +144 -225
  64. package/lib/number-line/graph/ticks.js.map +1 -1
  65. package/lib/number-line/index.js +331 -395
  66. package/lib/number-line/index.js.map +1 -1
  67. package/lib/number-line/point-chooser/button.js +33 -58
  68. package/lib/number-line/point-chooser/button.js.map +1 -1
  69. package/lib/number-line/point-chooser/img.js +2 -3
  70. package/lib/number-line/point-chooser/img.js.map +1 -1
  71. package/lib/number-line/point-chooser/index.js +152 -148
  72. package/lib/number-line/point-chooser/index.js.map +1 -1
  73. package/lib/number-line/point-chooser/styles.js +29 -52
  74. package/lib/number-line/point-chooser/styles.js.map +1 -1
  75. package/lib/number-line/transitions/fade.js +69 -48
  76. package/lib/number-line/transitions/fade.js.map +1 -1
  77. package/lib/number-line/transitions/index.js +2 -4
  78. package/lib/number-line/transitions/index.js.map +1 -1
  79. package/package.json +14 -11
  80. package/esm/configure.js +0 -84095
  81. package/esm/configure.js.map +0 -1
  82. package/esm/controller.js +0 -68122
  83. package/esm/controller.js.map +0 -1
  84. package/esm/element.js +0 -44487
  85. package/esm/element.js.map +0 -1
  86. package/esm/package.json +0 -3
@@ -1,53 +1,114 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _reactDraggable = _interopRequireDefault(require("react-draggable"));
23
-
24
- 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); }; }
25
-
26
- 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; } }
27
-
28
- var LocalDraggable = /*#__PURE__*/function (_Draggable) {
29
- (0, _inherits2["default"])(LocalDraggable, _Draggable);
30
-
31
- var _super = _createSuper(LocalDraggable);
32
-
33
- function LocalDraggable() {
34
- (0, _classCallCheck2["default"])(this, LocalDraggable);
35
- return _super.apply(this, arguments);
7
+ exports.Draggable = Draggable;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _core = require("@dnd-kit/core");
10
+ // Draggable.jsx
11
+
12
+ /**
13
+ * Shared dnd-kit wrapper for Line + Point.
14
+ *
15
+ * Props:
16
+ * - id: string (unique)
17
+ * - disabled: boolean
18
+ * - grid: [stepX] (like grid={[is]})
19
+ * - bounds: { left: number, right: number } in px (like scaledLineBounds)
20
+ * - onMouseDown: (event) => void
21
+ * - onDragStart?: () => void
22
+ * - onDragMove?: (deltaX: number) => void // snapped + clamped
23
+ * - onDragEnd?: (deltaX: number) => void // snapped + clamped
24
+ * - children: ({ setNodeRef, attributes, listeners, translateX, isDragging, onMouseDown }) => ReactNode
25
+ */
26
+ function Draggable({
27
+ id,
28
+ disabled,
29
+ grid,
30
+ bounds,
31
+ onMouseDown,
32
+ onDragStart,
33
+ onDragMove,
34
+ onDragEnd,
35
+ children
36
+ }) {
37
+ const {
38
+ attributes,
39
+ listeners,
40
+ setNodeRef,
41
+ transform
42
+ } = (0, _core.useDraggable)({
43
+ id,
44
+ disabled
45
+ });
46
+ const step = grid && grid[0] ? grid[0] : null;
47
+
48
+ // current transform.x from dnd-kit
49
+ let rawX = transform?.x ?? 0;
50
+
51
+ // grid snapping (grid={[step]})
52
+ if (step) {
53
+ rawX = Math.round(rawX / step) * step;
36
54
  }
37
55
 
38
- (0, _createClass2["default"])(LocalDraggable, [{
39
- key: "componentWillReceiveProps",
40
- value: function componentWillReceiveProps(next) {
41
- (0, _get2["default"])((0, _getPrototypeOf2["default"])(LocalDraggable.prototype), "componentWillReceiveProps", this).call(this, next); //Remove the x/y state as these values have now been updated and will come through as props.
42
-
43
- this.setState({
44
- x: 0,
45
- y: 0
46
- });
56
+ // clamp to bounds in px
57
+ if (bounds) {
58
+ if (typeof bounds.left === 'number') {
59
+ rawX = Math.max(bounds.left, rawX);
47
60
  }
48
- }]);
49
- return LocalDraggable;
50
- }(_reactDraggable["default"]);
51
-
52
- exports["default"] = LocalDraggable;
61
+ if (typeof bounds.right === 'number') {
62
+ rawX = Math.min(bounds.right, rawX);
63
+ }
64
+ }
65
+ const translateX = rawX;
66
+ const isDragging = !!transform;
67
+
68
+ // helpers to apply same snap+clamp to deltaX before callbacks
69
+ const snapClampDeltaX = deltaX => {
70
+ let x = deltaX;
71
+ if (step) {
72
+ x = Math.round(x / step) * step;
73
+ }
74
+ if (bounds) {
75
+ if (typeof bounds.left === 'number') {
76
+ x = Math.max(bounds.left, x);
77
+ }
78
+ if (typeof bounds.right === 'number') {
79
+ x = Math.min(bounds.right, x);
80
+ }
81
+ }
82
+ return x;
83
+ };
84
+ (0, _core.useDndMonitor)({
85
+ onDragStart(event) {
86
+ if (event.active.id !== id || disabled) return;
87
+ onDragStart?.();
88
+ },
89
+ onDragMove(event) {
90
+ if (event.active.id !== id || disabled) return;
91
+ const deltaX = event.delta.x || 0;
92
+ onDragMove?.(snapClampDeltaX(deltaX));
93
+ },
94
+ onDragEnd(event) {
95
+ if (event.active.id !== id || disabled) return;
96
+ const deltaX = event.delta.x || 0;
97
+ onDragEnd?.(snapClampDeltaX(deltaX));
98
+ }
99
+ });
100
+ const handleMouseDown = e => {
101
+ // same as before: prevent text selection
102
+ e.nativeEvent.preventDefault();
103
+ onMouseDown?.(e);
104
+ };
105
+ return children({
106
+ setNodeRef,
107
+ attributes,
108
+ listeners,
109
+ translateX,
110
+ isDragging,
111
+ onMouseDown: handleMouseDown
112
+ });
113
+ }
53
114
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/draggable/index.js"],"names":["LocalDraggable","next","setState","x","y","Draggable"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;IAEqBA,c;;;;;;;;;;;;WACnB,mCAA0BC,IAA1B,EAAgC;AAC9B,sIAAgCA,IAAhC,EAD8B,CAE9B;;AACA,WAAKC,QAAL,CAAc;AAAEC,QAAAA,CAAC,EAAE,CAAL;AAAQC,QAAAA,CAAC,EAAE;AAAX,OAAd;AACD;;;EALyCC,0B","sourcesContent":["import Draggable from 'react-draggable';\n\nexport default class LocalDraggable extends Draggable {\n componentWillReceiveProps(next) {\n super.componentWillReceiveProps(next);\n //Remove the x/y state as these values have now been updated and will come through as props.\n this.setState({ x: 0, y: 0 });\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_core","Draggable","id","disabled","grid","bounds","onMouseDown","onDragStart","onDragMove","onDragEnd","children","attributes","listeners","setNodeRef","transform","useDraggable","step","rawX","x","Math","round","left","max","right","min","translateX","isDragging","snapClampDeltaX","deltaX","useDndMonitor","event","active","delta","handleMouseDown","e","nativeEvent","preventDefault"],"sources":["../../src/draggable/index.js"],"sourcesContent":["// Draggable.jsx\nimport React from 'react';\nimport { useDraggable, useDndMonitor } from '@dnd-kit/core';\n\n/**\n * Shared dnd-kit wrapper for Line + Point.\n *\n * Props:\n * - id: string (unique)\n * - disabled: boolean\n * - grid: [stepX] (like grid={[is]})\n * - bounds: { left: number, right: number } in px (like scaledLineBounds)\n * - onMouseDown: (event) => void\n * - onDragStart?: () => void\n * - onDragMove?: (deltaX: number) => void // snapped + clamped\n * - onDragEnd?: (deltaX: number) => void // snapped + clamped\n * - children: ({ setNodeRef, attributes, listeners, translateX, isDragging, onMouseDown }) => ReactNode\n */\nexport function Draggable({\n id,\n disabled,\n grid,\n bounds,\n onMouseDown,\n onDragStart,\n onDragMove,\n onDragEnd,\n children,\n}) {\n const { attributes, listeners, setNodeRef, transform } = useDraggable({\n id,\n disabled,\n });\n\n const step = grid && grid[0] ? grid[0] : null;\n\n // current transform.x from dnd-kit\n let rawX = transform?.x ?? 0;\n\n // grid snapping (grid={[step]})\n if (step) {\n rawX = Math.round(rawX / step) * step;\n }\n\n // clamp to bounds in px\n if (bounds) {\n if (typeof bounds.left === 'number') {\n rawX = Math.max(bounds.left, rawX);\n }\n if (typeof bounds.right === 'number') {\n rawX = Math.min(bounds.right, rawX);\n }\n }\n\n const translateX = rawX;\n const isDragging = !!transform;\n\n // helpers to apply same snap+clamp to deltaX before callbacks\n const snapClampDeltaX = (deltaX) => {\n let x = deltaX;\n if (step) {\n x = Math.round(x / step) * step;\n }\n if (bounds) {\n if (typeof bounds.left === 'number') {\n x = Math.max(bounds.left, x);\n }\n if (typeof bounds.right === 'number') {\n x = Math.min(bounds.right, x);\n }\n }\n return x;\n };\n\n useDndMonitor({\n onDragStart(event) {\n if (event.active.id !== id || disabled) return;\n onDragStart?.();\n },\n onDragMove(event) {\n if (event.active.id !== id || disabled) return;\n const deltaX = event.delta.x || 0;\n onDragMove?.(snapClampDeltaX(deltaX));\n },\n onDragEnd(event) {\n if (event.active.id !== id || disabled) return;\n const deltaX = event.delta.x || 0;\n onDragEnd?.(snapClampDeltaX(deltaX));\n },\n });\n\n const handleMouseDown = (e) => {\n // same as before: prevent text selection\n e.nativeEvent.preventDefault();\n onMouseDown?.(e);\n };\n\n return children({\n setNodeRef,\n attributes,\n listeners,\n translateX,\n isDragging,\n onMouseDown: handleMouseDown,\n });\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js CHANGED
@@ -1,241 +1,154 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
4
  Object.defineProperty(exports, "__esModule", {
8
5
  value: true
9
6
  });
10
7
  Object.defineProperty(exports, "Graph", {
11
8
  enumerable: true,
12
- get: function get() {
13
- return _graph["default"];
9
+ get: function () {
10
+ return _graph.default;
14
11
  }
15
12
  });
16
13
  Object.defineProperty(exports, "NumberLineComponent", {
17
14
  enumerable: true,
18
- get: function get() {
19
- return _numberLine["default"];
15
+ get: function () {
16
+ return _numberLine.default;
20
17
  }
21
18
  });
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
-
19
+ exports.tickUtils = exports.pointChooser = exports.default = exports.dataConverter = void 0;
20
+ var _dataConverter = _interopRequireWildcard(require("./data-converter"));
21
+ var dataConverter = _dataConverter;
22
+ exports.dataConverter = _dataConverter;
40
23
  var pointChooser = _interopRequireWildcard(require("./number-line/point-chooser"));
41
-
42
24
  exports.pointChooser = pointChooser;
43
-
44
25
  var tickUtils = _interopRequireWildcard(require("./number-line/graph/tick-utils"));
45
-
46
26
  exports.tickUtils = tickUtils;
47
-
48
27
  var _graph = _interopRequireDefault(require("./number-line/graph"));
49
-
50
28
  var _numberLine = _interopRequireDefault(require("./number-line"));
51
-
52
29
  var _react = _interopRequireDefault(require("react"));
53
-
54
- var _reactDom = _interopRequireDefault(require("react-dom"));
55
-
30
+ var _client = require("react-dom/client");
56
31
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
57
-
58
32
  var _mathRendering = require("@pie-lib/math-rendering");
33
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
34
+ //Expose some additional modules for configuration
59
35
 
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);
36
+ class NumberLine extends HTMLElement {
37
+ constructor() {
38
+ super();
39
+ this._root = null;
76
40
  }
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);
41
+ set model(m) {
42
+ this._model = m;
43
+ this._applyInitialElements();
44
+ this._render();
45
+ this.dispatch('model-set');
46
+ }
47
+ set session(s) {
48
+ this._session = s;
49
+ this._applyInitialElements();
50
+ this._render();
51
+ }
52
+ get session() {
53
+ return this._session;
54
+ }
55
+ connectedCallback() {
56
+ this._render();
57
+ }
58
+ isComplete() {
59
+ return this._session ? (this._session.answer || []).length > 0 : false;
60
+ }
61
+ dispatch(type) {
62
+ this.dispatchEvent(new CustomEvent(type, {
63
+ bubbles: true,
64
+ detail: {
65
+ complete: this.isComplete()
148
66
  }
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();
67
+ }));
68
+ }
69
+ dispatchSessionChanged() {
70
+ this.dispatch('session-changed');
71
+ }
72
+ addElement(data) {
73
+ if (!this._session) {
74
+ return;
165
75
  }
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();
76
+ this._session.answer = this._session.answer || [];
77
+ this._session.answer.push((0, _dataConverter.toSessionFormat)(data));
78
+ this.dispatchSessionChanged();
79
+ this._render();
80
+ }
81
+ moveElement(index, el, position) {
82
+ let answer = this._session.answer[index];
83
+ if (!answer) {
84
+ throw new Error('cant find element at index: ', index);
177
85
  }
178
- }, {
179
- key: "undoElement",
180
- value: function undoElement() {
181
- this._session.answer.pop();
182
-
183
- this.dispatchSessionChanged();
184
-
86
+ if (el.type === 'line' && position.left === position.right) {
185
87
  this._render();
88
+ return;
186
89
  }
187
- }, {
188
- key: "clearElements",
189
- value: function clearElements() {
190
- this._session.answer = [];
191
- this.dispatchSessionChanged();
192
90
 
193
- this._render();
91
+ //set the new position
92
+ el.position = position;
93
+ let update = el.type === 'line' && (0, _dataConverter.lineIsSwitched)(el) ? (0, _dataConverter.switchGraphLine)(el) : el;
94
+ this._session.answer.splice(index, 1, (0, _dataConverter.toSessionFormat)(update));
95
+ this.dispatchSessionChanged();
96
+ this._render();
97
+ }
98
+ deleteElements(indices) {
99
+ this._session.answer = this._session.answer.filter((v, index) => {
100
+ return !indices.some(d => d === index);
101
+ });
102
+ this.dispatchSessionChanged();
103
+ this._render();
104
+ }
105
+ undoElement() {
106
+ this._session.answer.pop();
107
+ this.dispatchSessionChanged();
108
+ this._render();
109
+ }
110
+ clearElements() {
111
+ this._session.answer = [];
112
+ this.dispatchSessionChanged();
113
+ this._render();
114
+ }
115
+ _applyInitialElements() {
116
+ if (this._model && this._model.graph && this._model.graph.initialElements && this._session && (!this._session.answer || !this._session.answer.length)) {
117
+ this._session.answer = (0, _cloneDeep.default)(this._model.graph.initialElements);
194
118
  }
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);
119
+ }
120
+ _render() {
121
+ if (this._model && this._session) {
122
+ if (!this._session.answer) {
123
+ this._applyInitialElements();
200
124
  }
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;
125
+ let answer = (this._session.answer || []).map(_dataConverter.toGraphFormat);
126
+ let model = (0, _cloneDeep.default)(this._model);
127
+ model.correctResponse = model.correctResponse && model.correctResponse.map(_dataConverter.toGraphFormat);
128
+ let props = {
129
+ model,
130
+ answer,
131
+ onAddElement: this.addElement.bind(this),
132
+ onMoveElement: this.moveElement.bind(this),
133
+ onDeleteElements: this.deleteElements.bind(this),
134
+ onUndoElement: this.undoElement.bind(this),
135
+ onClearElements: this.clearElements.bind(this)
136
+ };
137
+ let el = /*#__PURE__*/_react.default.createElement(_numberLine.default, props);
138
+ if (!this._root) {
139
+ this._root = (0, _client.createRoot)(this);
234
140
  }
141
+ this._root.render(el);
142
+ queueMicrotask(() => {
143
+ (0, _mathRendering.renderMath)(this);
144
+ });
235
145
  }
236
- }]);
237
- return NumberLine;
238
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
239
-
240
- exports["default"] = NumberLine;
146
+ }
147
+ disconnectedCallback() {
148
+ if (this._root) {
149
+ this._root.unmount();
150
+ }
151
+ }
152
+ }
153
+ exports.default = NumberLine;
241
154
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
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 };\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
+ {"version":3,"file":"index.js","names":["_dataConverter","_interopRequireWildcard","require","dataConverter","exports","pointChooser","tickUtils","_graph","_interopRequireDefault","_numberLine","_react","_client","_cloneDeep","_mathRendering","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NumberLine","HTMLElement","constructor","_root","model","m","_model","_applyInitialElements","_render","dispatch","session","s","_session","connectedCallback","isComplete","answer","length","type","dispatchEvent","CustomEvent","bubbles","detail","complete","dispatchSessionChanged","addElement","data","push","toSessionFormat","moveElement","index","el","position","Error","left","right","update","lineIsSwitched","switchGraphLine","splice","deleteElements","indices","filter","v","some","d","undoElement","pop","clearElements","graph","initialElements","cloneDeep","map","toGraphFormat","correctResponse","props","onAddElement","bind","onMoveElement","onDeleteElements","onUndoElement","onClearElements","React","createElement","RootComponent","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount"],"sources":["../src/index.js"],"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 { createRoot } from 'react-dom/client';\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 };\nexport default class NumberLine extends HTMLElement {\n constructor() {\n super();\n this._root = null;\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 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 if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,18 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.selected = exports.incorrect = exports.correct = void 0;
7
-
8
7
  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;
8
+ const selected = exports.selected = _renderUi.color.primaryDark();
9
+ const correct = exports.correct = _renderUi.color.correct();
10
+ const incorrect = exports.incorrect = _renderUi.color.incorrect();
21
11
  //# sourceMappingURL=colors.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"colors.js","names":["_renderUi","require","selected","exports","color","primaryDark","correct","incorrect"],"sources":["../../src/number-line/colors.js"],"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"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEO,MAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAGE,eAAK,CAACC,WAAW,CAAC,CAAC;AACpC,MAAMC,OAAO,GAAAH,OAAA,CAAAG,OAAA,GAAGF,eAAK,CAACE,OAAO,CAAC,CAAC;AAC/B,MAAMC,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGH,eAAK,CAACG,SAAS,CAAC,CAAC","ignoreList":[]}