@pie-element/number-line 11.3.4-next.3 → 12.0.0-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 (89) hide show
  1. package/CHANGELOG.md +0 -11
  2. package/configure/CHANGELOG.md +0 -11
  3. package/configure/lib/arrows.js +68 -103
  4. package/configure/lib/arrows.js.map +1 -1
  5. package/configure/lib/card-bar.js +41 -62
  6. package/configure/lib/card-bar.js.map +1 -1
  7. package/configure/lib/defaults.js +5 -7
  8. package/configure/lib/defaults.js.map +1 -1
  9. package/configure/lib/domain.js +60 -116
  10. package/configure/lib/domain.js.map +1 -1
  11. package/configure/lib/index.js +124 -194
  12. package/configure/lib/index.js.map +1 -1
  13. package/configure/lib/main.js +586 -722
  14. package/configure/lib/main.js.map +1 -1
  15. package/configure/lib/number-text-field.js +15 -86
  16. package/configure/lib/number-text-field.js.map +1 -1
  17. package/configure/lib/point-config.js +69 -129
  18. package/configure/lib/point-config.js.map +1 -1
  19. package/configure/lib/size.js +43 -77
  20. package/configure/lib/size.js.map +1 -1
  21. package/configure/lib/ticks.js +89 -151
  22. package/configure/lib/ticks.js.map +1 -1
  23. package/configure/lib/utils.js +2 -4
  24. package/configure/lib/utils.js.map +1 -1
  25. package/configure/package.json +10 -7
  26. package/controller/CHANGELOG.md +0 -11
  27. package/controller/lib/defaults.js +5 -6
  28. package/controller/lib/defaults.js.map +1 -1
  29. package/controller/lib/index.js +171 -286
  30. package/controller/lib/index.js.map +1 -1
  31. package/controller/lib/tickUtils.js +96 -169
  32. package/controller/lib/tickUtils.js.map +1 -1
  33. package/controller/lib/utils.js +55 -88
  34. package/controller/lib/utils.js.map +1 -1
  35. package/controller/package.json +3 -3
  36. package/lib/data-converter.js +19 -23
  37. package/lib/data-converter.js.map +1 -1
  38. package/lib/draggable/index.js +104 -43
  39. package/lib/draggable/index.js.map +1 -1
  40. package/lib/index.js +118 -205
  41. package/lib/index.js.map +1 -1
  42. package/lib/number-line/colors.js +3 -13
  43. package/lib/number-line/colors.js.map +1 -1
  44. package/lib/number-line/feedback.js +53 -69
  45. package/lib/number-line/feedback.js.map +1 -1
  46. package/lib/number-line/graph/arrow.js +19 -38
  47. package/lib/number-line/graph/arrow.js.map +1 -1
  48. package/lib/number-line/graph/elements/base.js +7 -13
  49. package/lib/number-line/graph/elements/base.js.map +1 -1
  50. package/lib/number-line/graph/elements/builder.js +6 -7
  51. package/lib/number-line/graph/elements/builder.js.map +1 -1
  52. package/lib/number-line/graph/elements/line.js +209 -265
  53. package/lib/number-line/graph/elements/line.js.map +1 -1
  54. package/lib/number-line/graph/elements/point.js +170 -201
  55. package/lib/number-line/graph/elements/point.js.map +1 -1
  56. package/lib/number-line/graph/elements/ray.js +147 -185
  57. package/lib/number-line/graph/elements/ray.js.map +1 -1
  58. package/lib/number-line/graph/index.js +217 -283
  59. package/lib/number-line/graph/index.js.map +1 -1
  60. package/lib/number-line/graph/line.js +12 -22
  61. package/lib/number-line/graph/line.js.map +1 -1
  62. package/lib/number-line/graph/stacks.js +31 -54
  63. package/lib/number-line/graph/stacks.js.map +1 -1
  64. package/lib/number-line/graph/tick-utils.js +120 -209
  65. package/lib/number-line/graph/tick-utils.js.map +1 -1
  66. package/lib/number-line/graph/ticks.js +144 -225
  67. package/lib/number-line/graph/ticks.js.map +1 -1
  68. package/lib/number-line/index.js +331 -395
  69. package/lib/number-line/index.js.map +1 -1
  70. package/lib/number-line/point-chooser/button.js +33 -58
  71. package/lib/number-line/point-chooser/button.js.map +1 -1
  72. package/lib/number-line/point-chooser/img.js +2 -3
  73. package/lib/number-line/point-chooser/img.js.map +1 -1
  74. package/lib/number-line/point-chooser/index.js +152 -148
  75. package/lib/number-line/point-chooser/index.js.map +1 -1
  76. package/lib/number-line/point-chooser/styles.js +29 -52
  77. package/lib/number-line/point-chooser/styles.js.map +1 -1
  78. package/lib/number-line/transitions/fade.js +70 -49
  79. package/lib/number-line/transitions/fade.js.map +1 -1
  80. package/lib/number-line/transitions/index.js +2 -4
  81. package/lib/number-line/transitions/index.js.map +1 -1
  82. package/package.json +16 -13
  83. package/esm/configure.js +0 -84095
  84. package/esm/configure.js.map +0 -1
  85. package/esm/controller.js +0 -68122
  86. package/esm/controller.js.map +0 -1
  87. package/esm/element.js +0 -44487
  88. package/esm/element.js.map +0 -1
  89. 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":[]}