mathbox-react 0.0.0-a53eb3e

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 (122) hide show
  1. package/README.md +30 -0
  2. package/build/cjs/components/ContainedMathbox.d.ts +11 -0
  3. package/build/cjs/components/ContainedMathbox.js +59 -0
  4. package/build/cjs/components/ContainedMathbox.js.map +1 -0
  5. package/build/cjs/components/Mathbox.d.ts +9 -0
  6. package/build/cjs/components/Mathbox.js +87 -0
  7. package/build/cjs/components/Mathbox.js.map +1 -0
  8. package/build/cjs/components/MathboxAPIContext.d.ts +9 -0
  9. package/build/cjs/components/MathboxAPIContext.js +18 -0
  10. package/build/cjs/components/MathboxAPIContext.js.map +1 -0
  11. package/build/cjs/components/components.d.ts +267 -0
  12. package/build/cjs/components/components.js +383 -0
  13. package/build/cjs/components/components.js.map +1 -0
  14. package/build/cjs/components/components.spec.d.ts +1 -0
  15. package/build/cjs/components/components.spec.js +332 -0
  16. package/build/cjs/components/components.spec.js.map +1 -0
  17. package/build/cjs/components/index.d.ts +4 -0
  18. package/build/cjs/components/index.js +28 -0
  19. package/build/cjs/components/index.js.map +1 -0
  20. package/build/cjs/components/types.d.ts +7 -0
  21. package/build/cjs/components/types.js +3 -0
  22. package/build/cjs/components/types.js.map +1 -0
  23. package/build/cjs/components/util.d.ts +38 -0
  24. package/build/cjs/components/util.js +107 -0
  25. package/build/cjs/components/util.js.map +1 -0
  26. package/build/cjs/index.d.ts +3 -0
  27. package/build/cjs/index.js +33 -0
  28. package/build/cjs/index.js.map +1 -0
  29. package/build/cjs/stories/Area.stories.d.ts +68 -0
  30. package/build/cjs/stories/Area.stories.js +53 -0
  31. package/build/cjs/stories/Area.stories.js.map +1 -0
  32. package/build/cjs/stories/Cartesian.stories.d.ts +34 -0
  33. package/build/cjs/stories/Cartesian.stories.js +47 -0
  34. package/build/cjs/stories/Cartesian.stories.js.map +1 -0
  35. package/build/cjs/stories/Grid.stories.d.ts +262 -0
  36. package/build/cjs/stories/Grid.stories.js +45 -0
  37. package/build/cjs/stories/Grid.stories.js.map +1 -0
  38. package/build/cjs/stories/Mathbox.stories.d.ts +18 -0
  39. package/build/cjs/stories/Mathbox.stories.js +16 -0
  40. package/build/cjs/stories/Mathbox.stories.js.map +1 -0
  41. package/build/cjs/stories/Play.stories.d.ts +36 -0
  42. package/build/cjs/stories/Play.stories.js +35 -0
  43. package/build/cjs/stories/Play.stories.js.map +1 -0
  44. package/build/cjs/stories/Point.stories.d.ts +101 -0
  45. package/build/cjs/stories/Point.stories.js +103 -0
  46. package/build/cjs/stories/Point.stories.js.map +1 -0
  47. package/build/cjs/stories/Surface.stories.d.ts +68 -0
  48. package/build/cjs/stories/Surface.stories.js +49 -0
  49. package/build/cjs/stories/Surface.stories.js.map +1 -0
  50. package/build/cjs/stories/utils.d.ts +5 -0
  51. package/build/cjs/stories/utils.js +69 -0
  52. package/build/cjs/stories/utils.js.map +1 -0
  53. package/build/cjs/testSetup.d.ts +1 -0
  54. package/build/cjs/testSetup.js +5 -0
  55. package/build/cjs/testSetup.js.map +1 -0
  56. package/build/cjs/testUtils.d.ts +1 -0
  57. package/build/cjs/testUtils.js +47 -0
  58. package/build/cjs/testUtils.js.map +1 -0
  59. package/build/cjs/threestrap/Controls.d.ts +21 -0
  60. package/build/cjs/threestrap/Controls.js +75 -0
  61. package/build/cjs/threestrap/Controls.js.map +1 -0
  62. package/build/cjs/threestrap/Renderer.d.ts +7 -0
  63. package/build/cjs/threestrap/Renderer.js +15 -0
  64. package/build/cjs/threestrap/Renderer.js.map +1 -0
  65. package/build/cjs/threestrap/ThreestrapContext.d.ts +6 -0
  66. package/build/cjs/threestrap/ThreestrapContext.js +15 -0
  67. package/build/cjs/threestrap/ThreestrapContext.js.map +1 -0
  68. package/build/cjs/threestrap/index.d.ts +4 -0
  69. package/build/cjs/threestrap/index.js +13 -0
  70. package/build/cjs/threestrap/index.js.map +1 -0
  71. package/build/cjs/threestrap/threestrap.d.ts +13 -0
  72. package/build/cjs/threestrap/threestrap.js +3 -0
  73. package/build/cjs/threestrap/threestrap.js.map +1 -0
  74. package/build/esm/components/ContainedMathbox.d.ts +11 -0
  75. package/build/esm/components/ContainedMathbox.js +31 -0
  76. package/build/esm/components/ContainedMathbox.js.map +1 -0
  77. package/build/esm/components/Mathbox.d.ts +9 -0
  78. package/build/esm/components/Mathbox.js +59 -0
  79. package/build/esm/components/Mathbox.js.map +1 -0
  80. package/build/esm/components/MathboxAPIContext.d.ts +9 -0
  81. package/build/esm/components/MathboxAPIContext.js +15 -0
  82. package/build/esm/components/MathboxAPIContext.js.map +1 -0
  83. package/build/esm/components/components.d.ts +267 -0
  84. package/build/esm/components/components.js +353 -0
  85. package/build/esm/components/components.js.map +1 -0
  86. package/build/esm/components/components.spec.d.ts +1 -0
  87. package/build/esm/components/components.spec.js +304 -0
  88. package/build/esm/components/components.spec.js.map +1 -0
  89. package/build/esm/components/index.d.ts +4 -0
  90. package/build/esm/components/index.js +5 -0
  91. package/build/esm/components/index.js.map +1 -0
  92. package/build/esm/components/types.d.ts +7 -0
  93. package/build/esm/components/types.js +2 -0
  94. package/build/esm/components/types.js.map +1 -0
  95. package/build/esm/components/util.d.ts +38 -0
  96. package/build/esm/components/util.js +96 -0
  97. package/build/esm/components/util.js.map +1 -0
  98. package/build/esm/index.d.ts +3 -0
  99. package/build/esm/index.js +4 -0
  100. package/build/esm/index.js.map +1 -0
  101. package/build/esm/testSetup.d.ts +1 -0
  102. package/build/esm/testSetup.js +3 -0
  103. package/build/esm/testSetup.js.map +1 -0
  104. package/build/esm/testUtils.d.ts +1 -0
  105. package/build/esm/testUtils.js +43 -0
  106. package/build/esm/testUtils.js.map +1 -0
  107. package/build/esm/threestrap/Controls.d.ts +21 -0
  108. package/build/esm/threestrap/Controls.js +73 -0
  109. package/build/esm/threestrap/Controls.js.map +1 -0
  110. package/build/esm/threestrap/Renderer.d.ts +7 -0
  111. package/build/esm/threestrap/Renderer.js +13 -0
  112. package/build/esm/threestrap/Renderer.js.map +1 -0
  113. package/build/esm/threestrap/ThreestrapContext.d.ts +6 -0
  114. package/build/esm/threestrap/ThreestrapContext.js +12 -0
  115. package/build/esm/threestrap/ThreestrapContext.js.map +1 -0
  116. package/build/esm/threestrap/index.d.ts +4 -0
  117. package/build/esm/threestrap/index.js +4 -0
  118. package/build/esm/threestrap/index.js.map +1 -0
  119. package/build/esm/threestrap/threestrap.d.ts +13 -0
  120. package/build/esm/threestrap/threestrap.js +2 -0
  121. package/build/esm/threestrap/threestrap.js.map +1 -0
  122. package/package.json +74 -0
@@ -0,0 +1,304 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import { describe, it, expect } from "vitest";
49
+ import React, { useState } from "react";
50
+ import { render, act } from "@testing-library/react";
51
+ import ContainedMathbox from "./ContainedMathbox";
52
+ import Mathbox from "./Mathbox";
53
+ import { Cartesian, Grid, Voxel } from "./components";
54
+ function assertNotNil(value) {
55
+ if (value === undefined) {
56
+ throw new Error("Unexpected undefined value");
57
+ }
58
+ if (value === null) {
59
+ throw new Error("Unexpected null value");
60
+ }
61
+ }
62
+ /**
63
+ * Assert that two mathbox selections have the same nodes in the same order.
64
+ */
65
+ var assertSelectionsEqual = function (s1, s2) {
66
+ expect(s1.length).toBe(s2.length);
67
+ Array(s1.length)
68
+ .fill(null)
69
+ .forEach(function (_, i) {
70
+ expect(s1[i]).toBe(s2[i]);
71
+ });
72
+ };
73
+ describe("ContainedMathbox", function () {
74
+ it("makes a new mathbox instance only if the options have changed", function () {
75
+ var mbRef = { current: null };
76
+ var rerender = render(React.createElement(ContainedMathbox, { options: {}, ref: mbRef })).rerender;
77
+ var mb0 = mbRef.current;
78
+ assertNotNil(mb0);
79
+ rerender(React.createElement(ContainedMathbox, { options: {}, ref: mbRef }));
80
+ var mb1 = mbRef.current;
81
+ expect(mb1).toBe(mb0);
82
+ assertNotNil(mb1);
83
+ rerender(React.createElement(ContainedMathbox, { options: { plugins: ["core"] }, ref: mbRef }));
84
+ var mb2 = mbRef.current;
85
+ assertNotNil(mb2);
86
+ expect(mb2).not.toBe(mb1);
87
+ });
88
+ });
89
+ describe("Cartesian", function () {
90
+ it("exposes Mathbox instance via ref", function () {
91
+ var _a, _b;
92
+ var mbRef = { current: null };
93
+ var cartesianRef = { current: null };
94
+ render(React.createElement(ContainedMathbox, { ref: mbRef },
95
+ React.createElement(Cartesian, { ref: cartesianRef })));
96
+ expect((_a = mbRef.current) === null || _a === void 0 ? void 0 : _a[0].type).toBe("root");
97
+ expect((_b = cartesianRef.current) === null || _b === void 0 ? void 0 : _b[0].type).toBe("cartesian");
98
+ });
99
+ it("creates a cartesian instance as child of root", function () {
100
+ var _a;
101
+ var mbRef = { current: null };
102
+ render(React.createElement(ContainedMathbox, { ref: mbRef },
103
+ React.createElement(Cartesian, null)));
104
+ expect((_a = mbRef.current) === null || _a === void 0 ? void 0 : _a.select("cartesian").length).toBe(1);
105
+ });
106
+ it("creates mathbox children as children of itself", function () {
107
+ var _a, _b, _c;
108
+ var mbRef = { current: null };
109
+ render(React.createElement(ContainedMathbox, { ref: mbRef },
110
+ React.createElement(Cartesian, null,
111
+ React.createElement(Grid, null),
112
+ React.createElement(Grid, null))));
113
+ (_a = mbRef.current) === null || _a === void 0 ? void 0 : _a.print();
114
+ expect((_b = mbRef.current) === null || _b === void 0 ? void 0 : _b.select("cartesian").length).toBe(1);
115
+ expect((_c = mbRef.current) === null || _c === void 0 ? void 0 : _c.select("cartesian grid").length).toBe(2);
116
+ });
117
+ it("removes its mathbox instance when unmounted", function () {
118
+ var _a, _b;
119
+ var mbRef = { current: null };
120
+ var rerender = render(React.createElement(ContainedMathbox, { ref: mbRef },
121
+ React.createElement(Cartesian, null))).rerender;
122
+ expect((_a = mbRef.current) === null || _a === void 0 ? void 0 : _a.select("cartesian").length).toBe(1);
123
+ rerender(React.createElement(ContainedMathbox, { ref: mbRef }));
124
+ expect((_b = mbRef.current) === null || _b === void 0 ? void 0 : _b.select("cartesian").length).toBe(0);
125
+ });
126
+ it.each([
127
+ { props: { visible: true, scale: [3, 2, 1] } },
128
+ { props: { visible: false, scale: [1, 2, 3] } },
129
+ ])("passes appropriate props to its mathbox instance", function (_a) {
130
+ var _b;
131
+ var props = _a.props;
132
+ var mbRef = { current: null };
133
+ render(React.createElement(ContainedMathbox, { ref: mbRef },
134
+ React.createElement(Cartesian, __assign({}, props))));
135
+ var cartesian = (_b = mbRef.current) === null || _b === void 0 ? void 0 : _b.select("cartesian");
136
+ assertNotNil(cartesian);
137
+ expect(cartesian.get("visible")).toBe(props.visible);
138
+ // Mathbox converts scale to a ThreeJS Vec3
139
+ expect(cartesian.get("scale").toArray()).toStrictEqual(props.scale);
140
+ });
141
+ it("updates props on its mathbox instance when rerendered", function () {
142
+ var _a;
143
+ var mbRef = { current: null };
144
+ var rerender = render(React.createElement(ContainedMathbox, { ref: mbRef },
145
+ React.createElement(Cartesian, null))).rerender;
146
+ var cartesian = (_a = mbRef.current) === null || _a === void 0 ? void 0 : _a.select("cartesian");
147
+ assertNotNil(cartesian);
148
+ expect(cartesian.get("visible")).toBe(true);
149
+ rerender(React.createElement(ContainedMathbox, { ref: mbRef },
150
+ React.createElement(Cartesian, { visible: false })));
151
+ expect(cartesian.get("visible")).toBe(false);
152
+ });
153
+ it("updates liveProps on its mathbox instance when rerendered", function () { return __awaiter(void 0, void 0, void 0, function () {
154
+ var mbRef, rerender, grid, w1, w2;
155
+ var _a;
156
+ return __generator(this, function (_b) {
157
+ switch (_b.label) {
158
+ case 0:
159
+ mbRef = { current: null };
160
+ rerender = render(React.createElement(ContainedMathbox, { ref: mbRef },
161
+ React.createElement(Cartesian, null,
162
+ React.createElement(Grid, { liveProps: {
163
+ width: function (t) { return 1 + t; },
164
+ } })))).rerender;
165
+ grid = (_a = mbRef.current) === null || _a === void 0 ? void 0 : _a.select("grid");
166
+ assertNotNil(grid);
167
+ w1 = grid.get("width");
168
+ return [4 /*yield*/, new Promise(function (resolve) {
169
+ setTimeout(resolve, 500);
170
+ })];
171
+ case 1:
172
+ _b.sent();
173
+ w2 = grid.get("width");
174
+ expect(w1).toBe(1);
175
+ // Mathbox uses seconds
176
+ expect(w2 - w1).toBeGreaterThan(0.45);
177
+ expect(w2 - w1).toBeLessThanOrEqual(0.5);
178
+ rerender(React.createElement(ContainedMathbox, { ref: mbRef },
179
+ React.createElement(Cartesian, null,
180
+ React.createElement(Grid, { width: 10 }))));
181
+ expect(grid.get("width")).toBe(10);
182
+ return [2 /*return*/];
183
+ }
184
+ });
185
+ }); });
186
+ it("re-renders inside new instance when root changes", function () {
187
+ var mbRef = { current: null };
188
+ var cartesianRef = { current: null };
189
+ var gridRef = { current: null };
190
+ var options1 = {};
191
+ var rerender = render(React.createElement(ContainedMathbox, { ref: mbRef, options: options1 },
192
+ React.createElement(Cartesian, { ref: cartesianRef },
193
+ React.createElement(Grid, { ref: gridRef })))).rerender;
194
+ var mb1 = mbRef.current;
195
+ var cartesian1 = cartesianRef.current;
196
+ var grid1 = gridRef.current;
197
+ assertNotNil(mb1);
198
+ assertNotNil(cartesian1);
199
+ assertNotNil(grid1);
200
+ expect(cartesian1).toHaveLength(1);
201
+ assertSelectionsEqual(mb1.select("cartesian"), cartesian1);
202
+ expect(grid1).toHaveLength(1);
203
+ assertSelectionsEqual(mb1.select("grid"), grid1);
204
+ /**
205
+ * When re-rendered, this will create a new mathBox since the options
206
+ * object prop will have changed.
207
+ */
208
+ var options2 = { plugins: ["core"] };
209
+ expect(options1).not.toBe(options2);
210
+ rerender(React.createElement(ContainedMathbox, { ref: mbRef, options: options2 },
211
+ React.createElement(Cartesian, { ref: cartesianRef },
212
+ React.createElement(Grid, { ref: gridRef }))));
213
+ var mb2 = mbRef.current;
214
+ var cartesian2 = cartesianRef.current;
215
+ var grid2 = gridRef.current;
216
+ assertNotNil(mb2);
217
+ assertNotNil(cartesian2);
218
+ assertNotNil(grid2);
219
+ // The options have changed (via deep equal) so a new instance is created
220
+ expect(mb1).not.toBe(mb2);
221
+ expect(cartesian2).toHaveLength(1);
222
+ assertSelectionsEqual(mb2.select("cartesian"), cartesian2);
223
+ expect(grid2).toHaveLength(1);
224
+ assertSelectionsEqual(mb2.select("grid"), grid2);
225
+ });
226
+ it("Can render a new instance without error", function () { return __awaiter(void 0, void 0, void 0, function () {
227
+ var mbRef, containerDiv, setKey, KeyedMathbox;
228
+ return __generator(this, function (_a) {
229
+ mbRef = { current: null };
230
+ containerDiv = null;
231
+ KeyedMathbox = function () {
232
+ var _a = useState(null), container = _a[0], setContainer = _a[1];
233
+ var _b = useState("key-0"), key = _b[0], setKeyState = _b[1];
234
+ setKey = setKeyState;
235
+ containerDiv = container;
236
+ return (React.createElement("div", { ref: setContainer, key: key }, container && (React.createElement(Mathbox, { ref: mbRef, container: container },
237
+ React.createElement(Cartesian, null)))));
238
+ };
239
+ render(React.createElement(KeyedMathbox, null));
240
+ assertNotNil(mbRef.current);
241
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
242
+ act(function () { return setKey("key-2"); });
243
+ assertNotNil(containerDiv);
244
+ expect(mbRef.current.three.element).toBe(containerDiv);
245
+ expect(mbRef.current.select("cartesian").length).toBe(1);
246
+ return [2 /*return*/];
247
+ });
248
+ }); });
249
+ it("Can add and remove children without error", function () { return __awaiter(void 0, void 0, void 0, function () {
250
+ var mbRef, rerender;
251
+ return __generator(this, function (_a) {
252
+ mbRef = { current: null };
253
+ rerender = render(React.createElement(ContainedMathbox, { ref: mbRef, options: {} },
254
+ React.createElement(Cartesian, null,
255
+ React.createElement(Grid, null)))).rerender;
256
+ assertNotNil(mbRef.current);
257
+ expect(mbRef.current.select("grid").length).toBe(1);
258
+ rerender(React.createElement(ContainedMathbox, { ref: mbRef, options: {} },
259
+ React.createElement(Cartesian, null,
260
+ React.createElement(Grid, null),
261
+ React.createElement(Grid, null))));
262
+ assertNotNil(mbRef.current);
263
+ expect(mbRef.current.select("grid").length).toBe(2);
264
+ rerender(React.createElement(ContainedMathbox, { ref: mbRef, options: {} },
265
+ React.createElement(Cartesian, null)));
266
+ assertNotNil(mbRef.current);
267
+ expect(mbRef.current.select("grid").length).toBe(0);
268
+ return [2 /*return*/];
269
+ });
270
+ }); });
271
+ });
272
+ describe("<Voxel />", function () {
273
+ it("throws a runtime error if it has children", function () {
274
+ /**
275
+ * In development React re-dispatches errors thrown during render through a
276
+ * `window` "error" event (invokeGuardedCallbackDev) in addition to
277
+ * rethrowing them to the caller. Vitest's global "error" listener collects
278
+ * that expected error as an unhandled error and fails the run — observed
279
+ * intermittently in CI. Calling preventDefault on the matching event marks
280
+ * it handled, which suppresses Vitest's collection, while `render` still
281
+ * throws so the assertion below holds.
282
+ */
283
+ var suppressExpectedError = function (event) {
284
+ var _a, _b;
285
+ if ((_b = (_a = event.error) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.includes("cannot have children")) {
286
+ event.preventDefault();
287
+ }
288
+ };
289
+ window.addEventListener("error", suppressExpectedError);
290
+ try {
291
+ var willThrow = function () {
292
+ return render(React.createElement(ContainedMathbox, null,
293
+ React.createElement(Cartesian, null,
294
+ React.createElement(Voxel, null,
295
+ React.createElement(Grid, null)))));
296
+ };
297
+ expect(willThrow).toThrow("Component <Voxel /> cannot have children.");
298
+ }
299
+ finally {
300
+ window.removeEventListener("error", suppressExpectedError);
301
+ }
302
+ });
303
+ });
304
+ //# sourceMappingURL=components.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.spec.js","sourceRoot":"","sources":["../../../src/components/components.spec.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from "./components";
2
+ export { default as Mathbox } from "./Mathbox";
3
+ export { default as ContainedMathbox } from "./ContainedMathbox";
4
+ export { useMathbox } from "./MathboxAPIContext";
@@ -0,0 +1,5 @@
1
+ export * from "./components";
2
+ export { default as Mathbox } from "./Mathbox";
3
+ export { default as ContainedMathbox } from "./ContainedMathbox";
4
+ export { useMathbox } from "./MathboxAPIContext";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { ReactNode } from "react";
2
+ import type { MathboxSelection, NodeType } from "mathbox";
3
+ import React from "react";
4
+ export type WithChildren<T> = {
5
+ children?: ReactNode | ReactNode[];
6
+ } & T;
7
+ export type MathboxRef<T extends NodeType> = React.Ref<MathboxSelection<T>>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import { MathboxSelection, NodeType } from "mathbox";
2
+ export declare const isRootDestroyed: (selection: MathboxSelection) => boolean;
3
+ /**
4
+ * Check that parent is actually the selection's parent.
5
+ * The mathbox components occasionally render with a selection value whose
6
+ * parent does not match the parent specified in MathboxContext.
7
+ *
8
+ * I believe this fundamentally this is happening because
9
+ * - we store parent value in context...
10
+ * - we update the context parent value using useEffect hooks..
11
+ * - useEffect hooks are called children before parents.
12
+ *
13
+ * One wonders whether we really need to be using useEffect hooks for the
14
+ * mathbox components, or if we can just put all the node creation/removal stuff
15
+ * in a render function. Hooks seem nice for dependencies, but mathbox is pretty
16
+ * smart about diffing out the actual changes.
17
+ */
18
+ export declare const isSelectionParent: (selection: MathboxSelection, parent: MathboxSelection) => boolean;
19
+ declare const CAN_HAVE_CHILDREN: readonly ["view", "cartesian", "cartesian4", "polar", "spherical", "stereographic", "stereographic4", "transform", "transform4", "vertex", "fragment", "layer", "mask", "group", "inherit", "root", "unit", "rtt", "clock", "now", "move", "present", "reveal", "slide"];
20
+ export type ParentNodeTypes = (typeof CAN_HAVE_CHILDREN)[number];
21
+ export declare const canNodeHaveChildren: (type: NodeType) => boolean;
22
+ export declare const capitalize: (s: string) => string;
23
+ /**
24
+ * Returns the same reference to `value` as long as the the given values are
25
+ * deep equal.
26
+ *
27
+ * This is, in general, not a great idea. See
28
+ * https://github.com/facebook/react/issues/14476#issuecomment-471199055
29
+ *
30
+ * This should work OK for mathbox options because the objects in question are
31
+ * either shallow, or are deep equal at a fairly shallow level.
32
+ * E.g., OrbitControls may not be a shall object, but if it's not, it will at
33
+ * least be deep equal between renders.
34
+ *
35
+ * But should work OK for mathbox options.
36
+ */
37
+ export declare const useDeepCompareMemo: <T>(value: T, initial: T) => T;
38
+ export {};
@@ -0,0 +1,96 @@
1
+ /* eslint-disable no-underscore-dangle */
2
+ import isEqual from "lodash/isEqual";
3
+ import { useRef, useMemo } from "react";
4
+ /**
5
+ * Get root node given any node in Mathbox tree
6
+ */
7
+ var getRoot = function (selection) {
8
+ var current = selection;
9
+ while (current._up) {
10
+ current = current._up;
11
+ }
12
+ return current;
13
+ };
14
+ export var isRootDestroyed = function (selection) {
15
+ var root = getRoot(selection);
16
+ return root.three === undefined;
17
+ };
18
+ /**
19
+ * Check that parent is actually the selection's parent.
20
+ * The mathbox components occasionally render with a selection value whose
21
+ * parent does not match the parent specified in MathboxContext.
22
+ *
23
+ * I believe this fundamentally this is happening because
24
+ * - we store parent value in context...
25
+ * - we update the context parent value using useEffect hooks..
26
+ * - useEffect hooks are called children before parents.
27
+ *
28
+ * One wonders whether we really need to be using useEffect hooks for the
29
+ * mathbox components, or if we can just put all the node creation/removal stuff
30
+ * in a render function. Hooks seem nice for dependencies, but mathbox is pretty
31
+ * smart about diffing out the actual changes.
32
+ */
33
+ export var isSelectionParent = function (selection, parent) {
34
+ var _a;
35
+ var selectionParentNode = (_a = selection._up) === null || _a === void 0 ? void 0 : _a[0];
36
+ return selectionParentNode === parent[0];
37
+ };
38
+ var CAN_HAVE_CHILDREN = [
39
+ "view",
40
+ "cartesian",
41
+ "cartesian4",
42
+ "polar",
43
+ "spherical",
44
+ "stereographic",
45
+ "stereographic4",
46
+ "transform",
47
+ "transform4",
48
+ "vertex",
49
+ "fragment",
50
+ "layer",
51
+ "mask",
52
+ "group",
53
+ "inherit",
54
+ "root",
55
+ "unit",
56
+ "rtt",
57
+ "clock",
58
+ "now",
59
+ "move",
60
+ "present",
61
+ "reveal",
62
+ "slide",
63
+ ];
64
+ export var canNodeHaveChildren = function (type) {
65
+ return CAN_HAVE_CHILDREN.includes(type);
66
+ };
67
+ export var capitalize = function (s) {
68
+ if (!s)
69
+ return "";
70
+ return s[0].toLocaleUpperCase() + s.slice(1);
71
+ };
72
+ /**
73
+ * Returns the same reference to `value` as long as the the given values are
74
+ * deep equal.
75
+ *
76
+ * This is, in general, not a great idea. See
77
+ * https://github.com/facebook/react/issues/14476#issuecomment-471199055
78
+ *
79
+ * This should work OK for mathbox options because the objects in question are
80
+ * either shallow, or are deep equal at a fairly shallow level.
81
+ * E.g., OrbitControls may not be a shall object, but if it's not, it will at
82
+ * least be deep equal between renders.
83
+ *
84
+ * But should work OK for mathbox options.
85
+ */
86
+ export var useDeepCompareMemo = function (value, initial) {
87
+ var oldValue = useRef(initial);
88
+ var memoOptions = useMemo(function () {
89
+ if (isEqual(value, oldValue.current))
90
+ return oldValue.current;
91
+ oldValue.current = value;
92
+ return value;
93
+ }, [value]);
94
+ return memoOptions;
95
+ };
96
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/components/util.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAKvC;;GAEG;AACH,IAAM,OAAO,GAAG,UAAC,SAA2B;IAC1C,IAAI,OAAO,GAAG,SAA0B,CAAA;IACxC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAA;KACtB;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,SAA2B;IACzD,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAC/B,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAA;AACjC,CAAC,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAC/B,SAA2B,EAC3B,MAAwB;;IAExB,IAAM,mBAAmB,GAAG,MAAC,SAA2B,CAAC,GAAG,0CAAG,CAAC,CAAC,CAAA;IACjE,OAAO,mBAAmB,KAAK,MAAM,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,IAAM,iBAAiB,GAAG;IACxB,MAAM;IACN,WAAW;IACX,YAAY;IACZ,OAAO;IACP,WAAW;IACX,eAAe;IACf,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,SAAS;IACT,QAAQ;IACR,OAAO;CACC,CAAA;AAIV,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,IAAc;IAChD,OAAC,iBAAuC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAAvD,CAAuD,CAAA;AAEzD,MAAM,CAAC,IAAM,UAAU,GAAG,UAAC,CAAS;IAClC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAA;IACjB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC9C,CAAC,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAI,KAAQ,EAAE,OAAU;IACxD,IAAM,QAAQ,GAAG,MAAM,CAAI,OAAO,CAAC,CAAA;IACnC,IAAM,WAAW,GAAG,OAAO,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAA;QAC7D,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAA;QACxB,OAAO,KAAK,CAAA;IACd,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACX,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import * as Threestrap from "./threestrap";
2
+ export * from "./components";
3
+ export { Threestrap };
@@ -0,0 +1,4 @@
1
+ import * as Threestrap from "./threestrap";
2
+ export * from "./components";
3
+ export { Threestrap };
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAE1C,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { getMockContext } from "./testUtils";
2
+ HTMLCanvasElement.prototype.getContext = getMockContext;
3
+ //# sourceMappingURL=testSetup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testSetup.js","sourceRoot":"","sources":["../../src/testSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,iBAAiB,CAAC,SAAS,CAAC,UAAU,GAAG,cAAc,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const getMockContext: () => any;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * A mock that uses proxies to create properties as they are accessed. Supports
3
+ * function calls and toPrimitive.
4
+ *
5
+ * @param specifics Allows specifying specific values for properties. If a prop
6
+ * exists on `specifics`, then that value will be used when the property is
7
+ * accessed on automock.
8
+ * @returns
9
+ */
10
+ var getAutomock = function (specifics) {
11
+ // Only needs to be callable so the Proxy target supports the `apply` trap.
12
+ var autmockSeed = function () { return undefined; };
13
+ var handler = {
14
+ get: function (target, prop) {
15
+ if (prop === Symbol.toPrimitive) {
16
+ return function () { return "Automock: ".concat(JSON.stringify(specifics)); };
17
+ }
18
+ if (specifics && Reflect.has(specifics, prop)) {
19
+ var value = Reflect.get(specifics, prop);
20
+ return value;
21
+ }
22
+ if (!Reflect.has(target, prop)) {
23
+ Reflect.set(target, prop, getAutomock());
24
+ }
25
+ return Reflect.get(target, prop);
26
+ },
27
+ apply: function () {
28
+ return getAutomock();
29
+ },
30
+ };
31
+ return new Proxy(autmockSeed, handler);
32
+ };
33
+ export var getMockContext = function () {
34
+ var mockContext = getAutomock({
35
+ getParameter: function (name) {
36
+ if (name === mockContext.VERSION)
37
+ return "Fake version!";
38
+ return getAutomock();
39
+ },
40
+ });
41
+ return mockContext;
42
+ };
43
+ //# sourceMappingURL=testUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/testUtils.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,IAAM,WAAW,GAAG,UAClB,SAAa;IAEb,2EAA2E;IAC3E,IAAM,WAAW,GAAG,cAAM,OAAA,SAAS,EAAT,CAAS,CAAA;IACnC,IAAM,OAAO,GAAG;QACd,GAAG,YAAC,MAAgB,EAAE,IAAqB;YACzC,IAAI,IAAI,KAAK,MAAM,CAAC,WAAW,EAAE;gBAC/B,OAAO,cAAM,OAAA,oBAAa,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAE,EAAxC,CAAwC,CAAA;aACtD;YACD,IAAI,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;gBAC7C,IAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBAC1C,OAAO,KAAK,CAAA;aACb;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;aACzC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAClC,CAAC;QACD,KAAK;YACH,OAAO,WAAW,EAAE,CAAA;QACtB,CAAC;KACF,CAAA;IACD,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,cAAc,GAAG;IAC5B,IAAM,WAAW,GAAG,WAAW,CAAC;QAC9B,YAAY,EAAE,UAAC,IAAa;YAC1B,IAAI,IAAI,KAAK,WAAW,CAAC,OAAO;gBAAE,OAAO,eAAe,CAAA;YACxD,OAAO,WAAW,EAAE,CAAA;QACtB,CAAC;KACF,CAAC,CAAA;IACF,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import type { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
3
+ import type { Vector3 } from "three";
4
+ type OrbitControlsProps = {
5
+ type: "orbit";
6
+ enablePan?: boolean;
7
+ enableRotate?: boolean;
8
+ enableZoom?: boolean;
9
+ target?: Vector3;
10
+ onStart?: (event: {
11
+ type: "start";
12
+ target: OrbitControls;
13
+ }) => void;
14
+ onEnd?: (event: {
15
+ type: "end";
16
+ target: OrbitControls;
17
+ }) => void;
18
+ };
19
+ type ControlsProps = OrbitControlsProps;
20
+ declare const Controls: React.FC<ControlsProps>;
21
+ export default Controls;