mathbox-react 0.0.14 → 0.2.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 (139) hide show
  1. package/build/cjs/{types/components → components}/ContainedMathbox.d.ts +0 -0
  2. package/build/cjs/components/ContainedMathbox.js +59 -0
  3. package/build/cjs/components/ContainedMathbox.js.map +1 -0
  4. package/build/cjs/{types/components → components}/Mathbox.d.ts +0 -0
  5. package/build/cjs/components/Mathbox.js +87 -0
  6. package/build/cjs/components/Mathbox.js.map +1 -0
  7. package/build/{esm/types/components/MathboxNodeContext.d.ts → cjs/components/MathboxAPIContext.d.ts} +5 -0
  8. package/build/cjs/components/MathboxAPIContext.js +18 -0
  9. package/build/cjs/components/MathboxAPIContext.js.map +1 -0
  10. package/build/cjs/{types/components → components}/components.d.ts +0 -0
  11. package/build/cjs/components/components.js +383 -0
  12. package/build/cjs/components/components.js.map +1 -0
  13. package/build/cjs/{types/testSetup.d.ts → components/components.spec.d.ts} +0 -0
  14. package/build/cjs/components/components.spec.js +310 -0
  15. package/build/cjs/components/components.spec.js.map +1 -0
  16. package/build/cjs/{types/components → components}/index.d.ts +1 -0
  17. package/build/cjs/components/index.js +25 -0
  18. package/build/cjs/components/index.js.map +1 -0
  19. package/build/cjs/{types/components → components}/types.d.ts +0 -0
  20. package/build/cjs/components/types.js +3 -0
  21. package/build/cjs/components/types.js.map +1 -0
  22. package/build/cjs/{types/components → components}/util.d.ts +0 -0
  23. package/build/cjs/components/util.js +107 -0
  24. package/build/cjs/components/util.js.map +1 -0
  25. package/build/cjs/{types/index.d.ts → index.d.ts} +0 -0
  26. package/build/cjs/index.js +18 -2
  27. package/build/cjs/index.js.map +1 -1
  28. package/build/cjs/stories/Area.stories.d.ts +69 -0
  29. package/build/cjs/stories/Area.stories.js +53 -0
  30. package/build/cjs/stories/Area.stories.js.map +1 -0
  31. package/build/cjs/stories/Cartesian.stories.d.ts +35 -0
  32. package/build/cjs/stories/Cartesian.stories.js +47 -0
  33. package/build/cjs/stories/Cartesian.stories.js.map +1 -0
  34. package/build/cjs/stories/Grid.stories.d.ts +263 -0
  35. package/build/cjs/stories/Grid.stories.js +45 -0
  36. package/build/cjs/stories/Grid.stories.js.map +1 -0
  37. package/build/cjs/stories/Mathbox.stories.d.ts +19 -0
  38. package/build/cjs/stories/Mathbox.stories.js +16 -0
  39. package/build/cjs/stories/Mathbox.stories.js.map +1 -0
  40. package/build/cjs/stories/Play.stories.d.ts +37 -0
  41. package/build/cjs/stories/Play.stories.js +35 -0
  42. package/build/cjs/stories/Play.stories.js.map +1 -0
  43. package/build/cjs/stories/Point.stories.d.ts +102 -0
  44. package/build/cjs/stories/Point.stories.js +103 -0
  45. package/build/cjs/stories/Point.stories.js.map +1 -0
  46. package/build/cjs/stories/Surface.stories.d.ts +69 -0
  47. package/build/cjs/stories/Surface.stories.js +49 -0
  48. package/build/cjs/stories/Surface.stories.js.map +1 -0
  49. package/build/cjs/stories/utils.d.ts +5 -0
  50. package/build/cjs/stories/utils.js +69 -0
  51. package/build/cjs/stories/utils.js.map +1 -0
  52. package/build/{esm/types → cjs}/testSetup.d.ts +0 -0
  53. package/build/cjs/testSetup.js +5 -0
  54. package/build/cjs/testSetup.js.map +1 -0
  55. package/build/cjs/{types/testUtils.d.ts → testUtils.d.ts} +0 -0
  56. package/build/cjs/testUtils.js +46 -0
  57. package/build/cjs/testUtils.js.map +1 -0
  58. package/build/cjs/threestrap/Renderer.d.ts +7 -0
  59. package/build/cjs/threestrap/Renderer.js +15 -0
  60. package/build/cjs/threestrap/Renderer.js.map +1 -0
  61. package/build/cjs/threestrap/ThreestrapContext.d.ts +6 -0
  62. package/build/cjs/threestrap/ThreestrapContext.js +15 -0
  63. package/build/cjs/threestrap/ThreestrapContext.js.map +1 -0
  64. package/build/cjs/threestrap/index.d.ts +2 -0
  65. package/build/cjs/threestrap/index.js +17 -0
  66. package/build/cjs/threestrap/index.js.map +1 -0
  67. package/build/cjs/threestrap/threestrap.d.ts +13 -0
  68. package/build/cjs/threestrap/threestrap.js +3 -0
  69. package/build/cjs/threestrap/threestrap.js.map +1 -0
  70. package/build/esm/{types/components → components}/ContainedMathbox.d.ts +0 -0
  71. package/build/esm/components/ContainedMathbox.js +31 -0
  72. package/build/esm/components/ContainedMathbox.js.map +1 -0
  73. package/build/esm/{types/components → components}/Mathbox.d.ts +0 -0
  74. package/build/esm/components/Mathbox.js +59 -0
  75. package/build/esm/components/Mathbox.js.map +1 -0
  76. package/build/{cjs/types/components/MathboxNodeContext.d.ts → esm/components/MathboxAPIContext.d.ts} +5 -0
  77. package/build/esm/components/MathboxAPIContext.js +15 -0
  78. package/build/esm/components/MathboxAPIContext.js.map +1 -0
  79. package/build/esm/{types/components → components}/components.d.ts +0 -0
  80. package/build/{index.d.ts → esm/components/components.js} +160 -98
  81. package/build/esm/components/components.js.map +1 -0
  82. package/build/esm/components/components.spec.d.ts +1 -0
  83. package/build/esm/components/components.spec.js +282 -0
  84. package/build/esm/components/components.spec.js.map +1 -0
  85. package/build/esm/{types/components → components}/index.d.ts +1 -0
  86. package/build/esm/components/index.js +5 -0
  87. package/build/esm/components/index.js.map +1 -0
  88. package/build/esm/{types/components → components}/types.d.ts +0 -0
  89. package/build/esm/components/types.js +2 -0
  90. package/build/esm/components/types.js.map +1 -0
  91. package/build/esm/{types/components → components}/util.d.ts +0 -0
  92. package/build/esm/components/util.js +96 -0
  93. package/build/esm/components/util.js.map +1 -0
  94. package/build/esm/{types/index.d.ts → index.d.ts} +0 -0
  95. package/build/esm/index.js +2 -2
  96. package/build/esm/index.js.map +1 -1
  97. package/build/esm/stories/Area.stories.d.ts +69 -0
  98. package/build/esm/stories/Area.stories.js +47 -0
  99. package/build/esm/stories/Area.stories.js.map +1 -0
  100. package/build/esm/stories/Cartesian.stories.d.ts +35 -0
  101. package/build/esm/stories/Cartesian.stories.js +41 -0
  102. package/build/esm/stories/Cartesian.stories.js.map +1 -0
  103. package/build/esm/stories/Grid.stories.d.ts +263 -0
  104. package/build/esm/stories/Grid.stories.js +39 -0
  105. package/build/esm/stories/Grid.stories.js.map +1 -0
  106. package/build/esm/stories/Mathbox.stories.d.ts +19 -0
  107. package/build/esm/stories/Mathbox.stories.js +10 -0
  108. package/build/esm/stories/Mathbox.stories.js.map +1 -0
  109. package/build/esm/stories/Play.stories.d.ts +37 -0
  110. package/build/esm/stories/Play.stories.js +29 -0
  111. package/build/esm/stories/Play.stories.js.map +1 -0
  112. package/build/esm/stories/Point.stories.d.ts +102 -0
  113. package/build/esm/stories/Point.stories.js +77 -0
  114. package/build/esm/stories/Point.stories.js.map +1 -0
  115. package/build/esm/stories/Surface.stories.d.ts +69 -0
  116. package/build/esm/stories/Surface.stories.js +43 -0
  117. package/build/esm/stories/Surface.stories.js.map +1 -0
  118. package/build/esm/stories/utils.d.ts +5 -0
  119. package/build/esm/stories/utils.js +42 -0
  120. package/build/esm/stories/utils.js.map +1 -0
  121. package/build/esm/testSetup.d.ts +1 -0
  122. package/build/esm/testSetup.js +3 -0
  123. package/build/esm/testSetup.js.map +1 -0
  124. package/build/esm/{types/testUtils.d.ts → testUtils.d.ts} +0 -0
  125. package/build/esm/testUtils.js +42 -0
  126. package/build/esm/testUtils.js.map +1 -0
  127. package/build/esm/threestrap/Renderer.d.ts +7 -0
  128. package/build/esm/threestrap/Renderer.js +13 -0
  129. package/build/esm/threestrap/Renderer.js.map +1 -0
  130. package/build/esm/threestrap/ThreestrapContext.d.ts +6 -0
  131. package/build/esm/threestrap/ThreestrapContext.js +12 -0
  132. package/build/esm/threestrap/ThreestrapContext.js.map +1 -0
  133. package/build/esm/threestrap/index.d.ts +2 -0
  134. package/build/esm/threestrap/index.js +2 -0
  135. package/build/esm/threestrap/index.js.map +1 -0
  136. package/build/esm/threestrap/threestrap.d.ts +13 -0
  137. package/build/esm/threestrap/threestrap.js +2 -0
  138. package/build/esm/threestrap/threestrap.js.map +1 -0
  139. package/package.json +37 -29
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __generator = (this && this.__generator) || function (thisArg, body) {
46
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
+ function verb(n) { return function (v) { return step([n, v]); }; }
49
+ function step(op) {
50
+ if (f) throw new TypeError("Generator is already executing.");
51
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
52
+ 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;
53
+ if (y = 0, t) op = [op[0] & 2, t.value];
54
+ switch (op[0]) {
55
+ case 0: case 1: t = op; break;
56
+ case 4: _.label++; return { value: op[1], done: false };
57
+ case 5: _.label++; y = op[1]; op = [0]; continue;
58
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
+ default:
60
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
+ if (t[2]) _.ops.pop();
65
+ _.trys.pop(); continue;
66
+ }
67
+ op = body.call(thisArg, _);
68
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
+ }
71
+ };
72
+ var __importDefault = (this && this.__importDefault) || function (mod) {
73
+ return (mod && mod.__esModule) ? mod : { "default": mod };
74
+ };
75
+ exports.__esModule = true;
76
+ var react_1 = __importStar(require("react"));
77
+ var react_2 = require("@testing-library/react");
78
+ var ContainedMathbox_1 = __importDefault(require("./ContainedMathbox"));
79
+ var Mathbox_1 = __importDefault(require("./Mathbox"));
80
+ var components_1 = require("./components");
81
+ function assertNotNil(value) {
82
+ if (value === undefined) {
83
+ throw new Error("Unexpected undefined value");
84
+ }
85
+ if (value === null) {
86
+ throw new Error("Unexpected null value");
87
+ }
88
+ }
89
+ /**
90
+ * Assert that two mathbox selections have the same nodes in the same order.
91
+ */
92
+ var assertSelectionsEqual = function (s1, s2) {
93
+ expect(s1.length).toBe(s2.length);
94
+ Array(s1.length)
95
+ .fill(null)
96
+ .forEach(function (_, i) {
97
+ expect(s1[i]).toBe(s2[i]);
98
+ });
99
+ };
100
+ describe("ContainedMathbox", function () {
101
+ it("makes a new mathbox instance only if the options have changed", function () {
102
+ var mbRef = { current: null };
103
+ var rerender = (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], { options: {}, ref: mbRef })).rerender;
104
+ var mb0 = mbRef.current;
105
+ assertNotNil(mb0);
106
+ rerender(react_1["default"].createElement(ContainedMathbox_1["default"], { options: {}, ref: mbRef }));
107
+ var mb1 = mbRef.current;
108
+ expect(mb1).toBe(mb0);
109
+ assertNotNil(mb1);
110
+ rerender(react_1["default"].createElement(ContainedMathbox_1["default"], { options: { plugins: ["core"] }, ref: mbRef }));
111
+ var mb2 = mbRef.current;
112
+ assertNotNil(mb2);
113
+ expect(mb2).not.toBe(mb1);
114
+ });
115
+ });
116
+ describe("Cartesian", function () {
117
+ it("exposes Mathbox instance via ref", function () {
118
+ var _a, _b;
119
+ var mbRef = { current: null };
120
+ var cartesianRef = { current: null };
121
+ (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef },
122
+ react_1["default"].createElement(components_1.Cartesian, { ref: cartesianRef })));
123
+ expect((_a = mbRef.current) === null || _a === void 0 ? void 0 : _a[0].type).toBe("root");
124
+ expect((_b = cartesianRef.current) === null || _b === void 0 ? void 0 : _b[0].type).toBe("cartesian");
125
+ });
126
+ it("creates a cartesian instance as child of root", function () {
127
+ var _a;
128
+ var mbRef = { current: null };
129
+ (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef },
130
+ react_1["default"].createElement(components_1.Cartesian, null)));
131
+ expect((_a = mbRef.current) === null || _a === void 0 ? void 0 : _a.select("cartesian").length).toBe(1);
132
+ });
133
+ it("creates mathbox children as children of itself", function () {
134
+ var _a, _b, _c;
135
+ var mbRef = { current: null };
136
+ (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef },
137
+ react_1["default"].createElement(components_1.Cartesian, null,
138
+ react_1["default"].createElement(components_1.Grid, null),
139
+ react_1["default"].createElement(components_1.Grid, null))));
140
+ (_a = mbRef.current) === null || _a === void 0 ? void 0 : _a.print();
141
+ expect((_b = mbRef.current) === null || _b === void 0 ? void 0 : _b.select("cartesian").length).toBe(1);
142
+ expect((_c = mbRef.current) === null || _c === void 0 ? void 0 : _c.select("cartesian grid").length).toBe(2);
143
+ });
144
+ it("removes its mathbox instance when unmounted", function () {
145
+ var _a, _b;
146
+ var mbRef = { current: null };
147
+ var rerender = (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef },
148
+ react_1["default"].createElement(components_1.Cartesian, null))).rerender;
149
+ expect((_a = mbRef.current) === null || _a === void 0 ? void 0 : _a.select("cartesian").length).toBe(1);
150
+ rerender(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef }));
151
+ expect((_b = mbRef.current) === null || _b === void 0 ? void 0 : _b.select("cartesian").length).toBe(0);
152
+ });
153
+ it.each([
154
+ { props: { visible: true, scale: [3, 2, 1] } },
155
+ { props: { visible: false, scale: [1, 2, 3] } },
156
+ ])("passes appropriate props to its mathbox instance", function (_a) {
157
+ var _b;
158
+ var props = _a.props;
159
+ var mbRef = { current: null };
160
+ (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef },
161
+ react_1["default"].createElement(components_1.Cartesian, __assign({}, props))));
162
+ var cartesian = (_b = mbRef.current) === null || _b === void 0 ? void 0 : _b.select("cartesian");
163
+ assertNotNil(cartesian);
164
+ expect(cartesian.get("visible")).toBe(props.visible);
165
+ // Mathbox converts scale to a ThreeJS Vec3
166
+ expect(cartesian.get("scale").toArray()).toStrictEqual(props.scale);
167
+ });
168
+ it("updates props on its mathbox instance when rerendered", function () {
169
+ var _a;
170
+ var mbRef = { current: null };
171
+ var rerender = (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef },
172
+ react_1["default"].createElement(components_1.Cartesian, null))).rerender;
173
+ var cartesian = (_a = mbRef.current) === null || _a === void 0 ? void 0 : _a.select("cartesian");
174
+ assertNotNil(cartesian);
175
+ expect(cartesian.get("visible")).toBe(true);
176
+ rerender(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef },
177
+ react_1["default"].createElement(components_1.Cartesian, { visible: false })));
178
+ expect(cartesian.get("visible")).toBe(false);
179
+ });
180
+ it("updates liveProps on its mathbox instance when rerendered", function () { return __awaiter(void 0, void 0, void 0, function () {
181
+ var mbRef, rerender, grid, w1, w2;
182
+ var _a;
183
+ return __generator(this, function (_b) {
184
+ switch (_b.label) {
185
+ case 0:
186
+ mbRef = { current: null };
187
+ rerender = (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef },
188
+ react_1["default"].createElement(components_1.Cartesian, null,
189
+ react_1["default"].createElement(components_1.Grid, { liveProps: {
190
+ width: function (t) { return 1 + t; }
191
+ } })))).rerender;
192
+ grid = (_a = mbRef.current) === null || _a === void 0 ? void 0 : _a.select("grid");
193
+ assertNotNil(grid);
194
+ w1 = grid.get("width");
195
+ return [4 /*yield*/, new Promise(function (resolve) {
196
+ setTimeout(resolve, 500);
197
+ })];
198
+ case 1:
199
+ _b.sent();
200
+ w2 = grid.get("width");
201
+ expect(w1).toBe(1);
202
+ // Mathbox uses seconds
203
+ expect(w2 - w1).toBeGreaterThan(0.45);
204
+ expect(w2 - w1).toBeLessThanOrEqual(0.5);
205
+ rerender(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef },
206
+ react_1["default"].createElement(components_1.Cartesian, null,
207
+ react_1["default"].createElement(components_1.Grid, { width: 10 }))));
208
+ expect(grid.get("width")).toBe(10);
209
+ return [2 /*return*/];
210
+ }
211
+ });
212
+ }); });
213
+ it("re-renders inside new instance when root changes", function () {
214
+ var mbRef = { current: null };
215
+ var cartesianRef = { current: null };
216
+ var gridRef = { current: null };
217
+ var options1 = {};
218
+ var rerender = (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef, options: options1 },
219
+ react_1["default"].createElement(components_1.Cartesian, { ref: cartesianRef },
220
+ react_1["default"].createElement(components_1.Grid, { ref: gridRef })))).rerender;
221
+ var mb1 = mbRef.current;
222
+ var cartesian1 = cartesianRef.current;
223
+ var grid1 = gridRef.current;
224
+ assertNotNil(mb1);
225
+ assertNotNil(cartesian1);
226
+ assertNotNil(grid1);
227
+ expect(cartesian1).toHaveLength(1);
228
+ assertSelectionsEqual(mb1.select("cartesian"), cartesian1);
229
+ expect(grid1).toHaveLength(1);
230
+ assertSelectionsEqual(mb1.select("grid"), grid1);
231
+ /**
232
+ * When re-rendered, this will create a new mathBox since the options
233
+ * object prop will have changed.
234
+ */
235
+ var options2 = { plugins: ["core"] };
236
+ expect(options1).not.toBe(options2);
237
+ rerender(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef, options: options2 },
238
+ react_1["default"].createElement(components_1.Cartesian, { ref: cartesianRef },
239
+ react_1["default"].createElement(components_1.Grid, { ref: gridRef }))));
240
+ var mb2 = mbRef.current;
241
+ var cartesian2 = cartesianRef.current;
242
+ var grid2 = gridRef.current;
243
+ assertNotNil(mb2);
244
+ assertNotNil(cartesian2);
245
+ assertNotNil(grid2);
246
+ // The options have changed (via deep equal) so a new instance is created
247
+ expect(mb1).not.toBe(mb2);
248
+ expect(cartesian2).toHaveLength(1);
249
+ assertSelectionsEqual(mb2.select("cartesian"), cartesian2);
250
+ expect(grid2).toHaveLength(1);
251
+ assertSelectionsEqual(mb2.select("grid"), grid2);
252
+ });
253
+ it("Can render a new instance without error", function () { return __awaiter(void 0, void 0, void 0, function () {
254
+ var mbRef, containerDiv, setKey, KeyedMathbox;
255
+ return __generator(this, function (_a) {
256
+ mbRef = { current: null };
257
+ containerDiv = null;
258
+ KeyedMathbox = function () {
259
+ var _a = (0, react_1.useState)(null), container = _a[0], setContainer = _a[1];
260
+ var _b = (0, react_1.useState)("key-0"), key = _b[0], setKeyState = _b[1];
261
+ setKey = setKeyState;
262
+ containerDiv = container;
263
+ return (react_1["default"].createElement("div", { ref: setContainer, key: key }, container && (react_1["default"].createElement(Mathbox_1["default"], { ref: mbRef, container: container },
264
+ react_1["default"].createElement(components_1.Cartesian, null)))));
265
+ };
266
+ (0, react_2.render)(react_1["default"].createElement(KeyedMathbox, null));
267
+ assertNotNil(mbRef.current);
268
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
269
+ (0, react_2.act)(function () { return setKey("key-2"); });
270
+ assertNotNil(containerDiv);
271
+ expect(mbRef.current.three.element).toBe(containerDiv);
272
+ expect(mbRef.current.select("cartesian").length).toBe(1);
273
+ return [2 /*return*/];
274
+ });
275
+ }); });
276
+ it("Can add and remove children without error", function () { return __awaiter(void 0, void 0, void 0, function () {
277
+ var mbRef, rerender;
278
+ return __generator(this, function (_a) {
279
+ mbRef = { current: null };
280
+ rerender = (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef, options: {} },
281
+ react_1["default"].createElement(components_1.Cartesian, null,
282
+ react_1["default"].createElement(components_1.Grid, null)))).rerender;
283
+ assertNotNil(mbRef.current);
284
+ expect(mbRef.current.select("grid").length).toBe(1);
285
+ rerender(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef, options: {} },
286
+ react_1["default"].createElement(components_1.Cartesian, null,
287
+ react_1["default"].createElement(components_1.Grid, null),
288
+ react_1["default"].createElement(components_1.Grid, null))));
289
+ assertNotNil(mbRef.current);
290
+ expect(mbRef.current.select("grid").length).toBe(2);
291
+ rerender(react_1["default"].createElement(ContainedMathbox_1["default"], { ref: mbRef, options: {} },
292
+ react_1["default"].createElement(components_1.Cartesian, null)));
293
+ assertNotNil(mbRef.current);
294
+ expect(mbRef.current.select("grid").length).toBe(0);
295
+ return [2 /*return*/];
296
+ });
297
+ }); });
298
+ });
299
+ describe("<Voxel />", function () {
300
+ it("throws a runtime error if it has children", function () {
301
+ var willThrow = function () {
302
+ return (0, react_2.render)(react_1["default"].createElement(ContainedMathbox_1["default"], null,
303
+ react_1["default"].createElement(components_1.Cartesian, null,
304
+ react_1["default"].createElement(components_1.Voxel, null,
305
+ react_1["default"].createElement(components_1.Grid, null)))));
306
+ };
307
+ expect(willThrow).toThrow("Component <Voxel /> cannot have children.");
308
+ });
309
+ });
310
+ //# 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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"}
@@ -1,3 +1,4 @@
1
1
  export * from "./components";
2
2
  export { default as Mathbox } from "./Mathbox";
3
3
  export { default as ContainedMathbox } from "./ContainedMathbox";
4
+ export { useMathbox } from "./MathboxAPIContext";
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ exports.__esModule = true;
17
+ exports.useMathbox = exports.ContainedMathbox = exports.Mathbox = void 0;
18
+ __exportStar(require("./components"), exports);
19
+ var Mathbox_1 = require("./Mathbox");
20
+ __createBinding(exports, Mathbox_1, "default", "Mathbox");
21
+ var ContainedMathbox_1 = require("./ContainedMathbox");
22
+ __createBinding(exports, ContainedMathbox_1, "default", "ContainedMathbox");
23
+ var MathboxAPIContext_1 = require("./MathboxAPIContext");
24
+ __createBinding(exports, MathboxAPIContext_1, "useMathbox");
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,qCAA8C;AAArC,0DAAkB;AAC3B,uDAAgE;AAAvD,4EAA2B;AAEpC,yDAAgD;AAAvC,4DAAU"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ exports.__esModule = true;
6
+ exports.useDeepCompareMemo = exports.capitalize = exports.canNodeHaveChildren = exports.isSelectionParent = exports.isRootDestroyed = void 0;
7
+ /* eslint-disable no-underscore-dangle */
8
+ var isEqual_1 = __importDefault(require("lodash/isEqual"));
9
+ var react_1 = require("react");
10
+ /**
11
+ * Get root node given any node in Mathbox tree
12
+ */
13
+ var getRoot = function (selection) {
14
+ var current = selection;
15
+ while (current._up) {
16
+ current = current._up;
17
+ }
18
+ return current;
19
+ };
20
+ var isRootDestroyed = function (selection) {
21
+ var root = getRoot(selection);
22
+ return root.three === undefined;
23
+ };
24
+ exports.isRootDestroyed = isRootDestroyed;
25
+ /**
26
+ * Check that parent is actually the selection's parent.
27
+ * The mathbox components occasionally render with a selection value whose
28
+ * parent does not match the parent specified in MathboxContext.
29
+ *
30
+ * I believe this fundamentally this is happening because
31
+ * - we store parent value in context...
32
+ * - we update the context parent value using useEffect hooks..
33
+ * - useEffect hooks are called children before parents.
34
+ *
35
+ * One wonders whether we really need to be using useEffect hooks for the
36
+ * mathbox components, or if we can just put all the node creation/removal stuff
37
+ * in a render function. Hooks seem nice for dependencies, but mathbox is pretty
38
+ * smart about diffing out the actual changes.
39
+ */
40
+ var isSelectionParent = function (selection, parent) {
41
+ var _a;
42
+ var selectionParentNode = (_a = selection._up) === null || _a === void 0 ? void 0 : _a[0];
43
+ return selectionParentNode === parent[0];
44
+ };
45
+ exports.isSelectionParent = isSelectionParent;
46
+ var CAN_HAVE_CHILDREN = [
47
+ "view",
48
+ "cartesian",
49
+ "cartesian4",
50
+ "polar",
51
+ "spherical",
52
+ "stereographic",
53
+ "stereographic4",
54
+ "transform",
55
+ "transform4",
56
+ "vertex",
57
+ "fragment",
58
+ "layer",
59
+ "mask",
60
+ "group",
61
+ "inherit",
62
+ "root",
63
+ "unit",
64
+ "rtt",
65
+ "clock",
66
+ "now",
67
+ "move",
68
+ "present",
69
+ "reveal",
70
+ "slide",
71
+ ];
72
+ var canNodeHaveChildren = function (type) {
73
+ return CAN_HAVE_CHILDREN.includes(type);
74
+ };
75
+ exports.canNodeHaveChildren = canNodeHaveChildren;
76
+ var capitalize = function (s) {
77
+ if (!s)
78
+ return "";
79
+ return s[0].toLocaleUpperCase() + s.slice(1);
80
+ };
81
+ exports.capitalize = capitalize;
82
+ /**
83
+ * Returns the same reference to `value` as long as the the given values are
84
+ * deep equal.
85
+ *
86
+ * This is, in general, not a great idea. See
87
+ * https://github.com/facebook/react/issues/14476#issuecomment-471199055
88
+ *
89
+ * This should work OK for mathbox options because the objects in question are
90
+ * either shallow, or are deep equal at a fairly shallow level.
91
+ * E.g., OrbitControls may not be a shall object, but if it's not, it will at
92
+ * least be deep equal between renders.
93
+ *
94
+ * But should work OK for mathbox options.
95
+ */
96
+ var useDeepCompareMemo = function (value, initial) {
97
+ var oldValue = (0, react_1.useRef)(initial);
98
+ var memoOptions = (0, react_1.useMemo)(function () {
99
+ if ((0, isEqual_1["default"])(value, oldValue.current))
100
+ return oldValue.current;
101
+ oldValue.current = value;
102
+ return value;
103
+ }, [value]);
104
+ return memoOptions;
105
+ };
106
+ exports.useDeepCompareMemo = useDeepCompareMemo;
107
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/components/util.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAyC;AACzC,2DAAoC;AACpC,+BAAuC;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;AAEM,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;AAHY,QAAA,eAAe,mBAG3B;AAED;;;;;;;;;;;;;;GAcG;AACI,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;AANY,QAAA,iBAAiB,qBAM7B;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;AAIH,IAAM,mBAAmB,GAAG,UAAC,IAAc;IAChD,OAAC,iBAAuC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAAvD,CAAuD,CAAA;AAD5C,QAAA,mBAAmB,uBACyB;AAElD,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;AAHY,QAAA,UAAU,cAGtB;AAED;;;;;;;;;;;;;GAaG;AACI,IAAM,kBAAkB,GAAG,UAAI,KAAQ,EAAE,OAAU;IACxD,IAAM,QAAQ,GAAG,IAAA,cAAM,EAAI,OAAO,CAAC,CAAA;IACnC,IAAM,WAAW,GAAG,IAAA,eAAO,EAAC;QAC1B,IAAI,IAAA,oBAAO,EAAC,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;AARY,QAAA,kBAAkB,sBAQ9B"}
File without changes
@@ -1,2 +1,18 @@
1
- "use strict";var e=require("react"),t=require("three"),r=require("mathbox"),n=function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function o(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}var a=e.createContext(null),i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var c=function(){this.__data__=[],this.size=0};var s=function(e,t){return e===t||e!=e&&t!=t},u=s;var p=function(e,t){for(var r=e.length;r--;)if(u(e[r][0],t))return r;return-1},l=p,f=Array.prototype.splice;var v=p;var h=p;var y=p;var d=c,b=function(e){var t=this.__data__,r=l(t,e);return!(r<0)&&(r==t.length-1?t.pop():f.call(t,r,1),--this.size,!0)},_=function(e){var t=this.__data__,r=v(t,e);return r<0?void 0:t[r][1]},x=function(e){return h(this.__data__,e)>-1},j=function(e,t){var r=this.__data__,n=y(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this};function g(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}g.prototype.clear=d,g.prototype.delete=b,g.prototype.get=_,g.prototype.has=x,g.prototype.set=j;var m=g,w=m;var O=function(){this.__data__=new w,this.size=0};var S=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r};var A=function(e){return this.__data__.get(e)};var z=function(e){return this.__data__.has(e)},P="object"==typeof i&&i&&i.Object===Object&&i,k=P,E="object"==typeof self&&self&&self.Object===Object&&self,C=k||E||Function("return this")(),R=C.Symbol,T=R,M=Object.prototype,I=M.hasOwnProperty,F=M.toString,L=T?T.toStringTag:void 0;var V=function(e){var t=I.call(e,L),r=e[L];try{e[L]=void 0;var n=!0}catch(e){}var o=F.call(e);return n&&(t?e[L]=r:delete e[L]),o},B=Object.prototype.toString;var U=V,D=function(e){return B.call(e)},$=R?R.toStringTag:void 0;var q=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":$&&$ in Object(e)?U(e):D(e)};var N=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},G=q,H=N;var W,J=function(e){if(!H(e))return!1;var t=G(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},K=C["__core-js_shared__"],Q=(W=/[^.]+$/.exec(K&&K.keys&&K.keys.IE_PROTO||""))?"Symbol(src)_1."+W:"";var X=function(e){return!!Q&&Q in e},Y=Function.prototype.toString;var Z=function(e){if(null!=e){try{return Y.call(e)}catch(e){}try{return e+""}catch(e){}}return""},ee=J,te=X,re=N,ne=Z,oe=/^\[object .+?Constructor\]$/,ae=Function.prototype,ie=Object.prototype,ce=ae.toString,se=ie.hasOwnProperty,ue=RegExp("^"+ce.call(se).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var pe=function(e){return!(!re(e)||te(e))&&(ee(e)?ue:oe).test(ne(e))},le=function(e,t){return null==e?void 0:e[t]};var fe=function(e,t){var r=le(e,t);return pe(r)?r:void 0},ve=fe(C,"Map"),he=fe(Object,"create"),ye=he;var de=function(){this.__data__=ye?ye(null):{},this.size=0};var be=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},_e=he,xe=Object.prototype.hasOwnProperty;var je=function(e){var t=this.__data__;if(_e){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return xe.call(t,e)?t[e]:void 0},ge=he,me=Object.prototype.hasOwnProperty;var we=he;var Oe=de,Se=be,Ae=je,ze=function(e){var t=this.__data__;return ge?void 0!==t[e]:me.call(t,e)},Pe=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=we&&void 0===t?"__lodash_hash_undefined__":t,this};function ke(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ke.prototype.clear=Oe,ke.prototype.delete=Se,ke.prototype.get=Ae,ke.prototype.has=ze,ke.prototype.set=Pe;var Ee=ke,Ce=m,Re=ve;var Te=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};var Me=function(e,t){var r=e.__data__;return Te(t)?r["string"==typeof t?"string":"hash"]:r.map},Ie=Me;var Fe=Me;var Le=Me;var Ve=Me;var Be=function(){this.size=0,this.__data__={hash:new Ee,map:new(Re||Ce),string:new Ee}},Ue=function(e){var t=Ie(this,e).delete(e);return this.size-=t?1:0,t},De=function(e){return Fe(this,e).get(e)},$e=function(e){return Le(this,e).has(e)},qe=function(e,t){var r=Ve(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this};function Ne(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ne.prototype.clear=Be,Ne.prototype.delete=Ue,Ne.prototype.get=De,Ne.prototype.has=$e,Ne.prototype.set=qe;var Ge=Ne,He=m,We=ve,Je=Ge;var Ke=m,Qe=O,Xe=S,Ye=A,Ze=z,et=function(e,t){var r=this.__data__;if(r instanceof He){var n=r.__data__;if(!We||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Je(n)}return r.set(e,t),this.size=r.size,this};function tt(e){var t=this.__data__=new Ke(e);this.size=t.size}tt.prototype.clear=Qe,tt.prototype.delete=Xe,tt.prototype.get=Ye,tt.prototype.has=Ze,tt.prototype.set=et;var rt=tt;var nt=Ge,ot=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},at=function(e){return this.__data__.has(e)};function it(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new nt;++t<r;)this.add(e[t])}it.prototype.add=it.prototype.push=ot,it.prototype.has=at;var ct=it,st=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1},ut=function(e,t){return e.has(t)};var pt=function(e,t,r,n,o,a){var i=1&r,c=e.length,s=t.length;if(c!=s&&!(i&&s>c))return!1;var u=a.get(e),p=a.get(t);if(u&&p)return u==t&&p==e;var l=-1,f=!0,v=2&r?new ct:void 0;for(a.set(e,t),a.set(t,e);++l<c;){var h=e[l],y=t[l];if(n)var d=i?n(y,h,l,t,e,a):n(h,y,l,e,t,a);if(void 0!==d){if(d)continue;f=!1;break}if(v){if(!st(t,(function(e,t){if(!ut(v,t)&&(h===e||o(h,e,r,n,a)))return v.push(t)}))){f=!1;break}}else if(h!==y&&!o(h,y,r,n,a)){f=!1;break}}return a.delete(e),a.delete(t),f};var lt=C.Uint8Array,ft=s,vt=pt,ht=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r},yt=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r},dt=R?R.prototype:void 0,bt=dt?dt.valueOf:void 0;var _t=function(e,t,r,n,o,a,i){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!a(new lt(e),new lt(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return ft(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var c=ht;case"[object Set]":var s=1&n;if(c||(c=yt),e.size!=t.size&&!s)return!1;var u=i.get(e);if(u)return u==t;n|=2,i.set(e,t);var p=vt(c(e),c(t),n,o,a,i);return i.delete(e),p;case"[object Symbol]":if(bt)return bt.call(e)==bt.call(t)}return!1};var xt=function(e,t){for(var r=-1,n=t.length,o=e.length;++r<n;)e[o+r]=t[r];return e},jt=Array.isArray,gt=xt,mt=jt;var wt=function(e,t,r){var n=t(e);return mt(e)?n:gt(n,r(e))};var Ot=function(e,t){for(var r=-1,n=null==e?0:e.length,o=0,a=[];++r<n;){var i=e[r];t(i,r,e)&&(a[o++]=i)}return a},St=function(){return[]},At=Object.prototype.propertyIsEnumerable,zt=Object.getOwnPropertySymbols,Pt=zt?function(e){return null==e?[]:(e=Object(e),Ot(zt(e),(function(t){return At.call(e,t)})))}:St;var kt=function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n};var Et=function(e){return null!=e&&"object"==typeof e},Ct=q,Rt=Et;var Tt=function(e){return Rt(e)&&"[object Arguments]"==Ct(e)},Mt=Et,It=Object.prototype,Ft=It.hasOwnProperty,Lt=It.propertyIsEnumerable,Vt=Tt(function(){return arguments}())?Tt:function(e){return Mt(e)&&Ft.call(e,"callee")&&!Lt.call(e,"callee")},Bt={exports:{}};var Ut=function(){return!1};!function(e,t){var r=C,n=Ut,o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o?r.Buffer:void 0,c=(i?i.isBuffer:void 0)||n;e.exports=c}(Bt,Bt.exports);var Dt=/^(?:0|[1-9]\d*)$/;var $t=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&Dt.test(e))&&e>-1&&e%1==0&&e<t};var qt=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991},Nt=q,Gt=qt,Ht=Et,Wt={};Wt["[object Float32Array]"]=Wt["[object Float64Array]"]=Wt["[object Int8Array]"]=Wt["[object Int16Array]"]=Wt["[object Int32Array]"]=Wt["[object Uint8Array]"]=Wt["[object Uint8ClampedArray]"]=Wt["[object Uint16Array]"]=Wt["[object Uint32Array]"]=!0,Wt["[object Arguments]"]=Wt["[object Array]"]=Wt["[object ArrayBuffer]"]=Wt["[object Boolean]"]=Wt["[object DataView]"]=Wt["[object Date]"]=Wt["[object Error]"]=Wt["[object Function]"]=Wt["[object Map]"]=Wt["[object Number]"]=Wt["[object Object]"]=Wt["[object RegExp]"]=Wt["[object Set]"]=Wt["[object String]"]=Wt["[object WeakMap]"]=!1;var Jt=function(e){return Ht(e)&&Gt(e.length)&&!!Wt[Nt(e)]};var Kt=function(e){return function(t){return e(t)}},Qt={exports:{}};!function(e,t){var r=P,n=t&&!t.nodeType&&t,o=n&&e&&!e.nodeType&&e,a=o&&o.exports===n&&r.process,i=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=i}(Qt,Qt.exports);var Xt=Jt,Yt=Kt,Zt=Qt.exports,er=Zt&&Zt.isTypedArray,tr=er?Yt(er):Xt,rr=kt,nr=Vt,or=jt,ar=Bt.exports,ir=$t,cr=tr,sr=Object.prototype.hasOwnProperty;var ur=function(e,t){var r=or(e),n=!r&&nr(e),o=!r&&!n&&ar(e),a=!r&&!n&&!o&&cr(e),i=r||n||o||a,c=i?rr(e.length,String):[],s=c.length;for(var u in e)!t&&!sr.call(e,u)||i&&("length"==u||o&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||ir(u,s))||c.push(u);return c},pr=Object.prototype;var lr=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||pr)};var fr=function(e,t){return function(r){return e(t(r))}}(Object.keys,Object),vr=lr,hr=fr,yr=Object.prototype.hasOwnProperty;var dr=J,br=qt;var _r=ur,xr=function(e){if(!vr(e))return hr(e);var t=[];for(var r in Object(e))yr.call(e,r)&&"constructor"!=r&&t.push(r);return t},jr=function(e){return null!=e&&br(e.length)&&!dr(e)};var gr=wt,mr=Pt,wr=function(e){return jr(e)?_r(e):xr(e)};var Or=function(e){return gr(e,wr,mr)},Sr=Object.prototype.hasOwnProperty;var Ar=function(e,t,r,n,o,a){var i=1&r,c=Or(e),s=c.length;if(s!=Or(t).length&&!i)return!1;for(var u=s;u--;){var p=c[u];if(!(i?p in t:Sr.call(t,p)))return!1}var l=a.get(e),f=a.get(t);if(l&&f)return l==t&&f==e;var v=!0;a.set(e,t),a.set(t,e);for(var h=i;++u<s;){var y=e[p=c[u]],d=t[p];if(n)var b=i?n(d,y,p,t,e,a):n(y,d,p,e,t,a);if(!(void 0===b?y===d||o(y,d,r,n,a):b)){v=!1;break}h||(h="constructor"==p)}if(v&&!h){var _=e.constructor,x=t.constructor;_==x||!("constructor"in e)||!("constructor"in t)||"function"==typeof _&&_ instanceof _&&"function"==typeof x&&x instanceof x||(v=!1)}return a.delete(e),a.delete(t),v},zr=fe(C,"DataView"),Pr=ve,kr=fe(C,"Promise"),Er=fe(C,"Set"),Cr=fe(C,"WeakMap"),Rr=q,Tr=Z,Mr="[object Map]",Ir="[object Promise]",Fr="[object Set]",Lr="[object WeakMap]",Vr="[object DataView]",Br=Tr(zr),Ur=Tr(Pr),Dr=Tr(kr),$r=Tr(Er),qr=Tr(Cr),Nr=Rr;(zr&&Nr(new zr(new ArrayBuffer(1)))!=Vr||Pr&&Nr(new Pr)!=Mr||kr&&Nr(kr.resolve())!=Ir||Er&&Nr(new Er)!=Fr||Cr&&Nr(new Cr)!=Lr)&&(Nr=function(e){var t=Rr(e),r="[object Object]"==t?e.constructor:void 0,n=r?Tr(r):"";if(n)switch(n){case Br:return Vr;case Ur:return Mr;case Dr:return Ir;case $r:return Fr;case qr:return Lr}return t});var Gr=rt,Hr=pt,Wr=_t,Jr=Ar,Kr=Nr,Qr=jt,Xr=Bt.exports,Yr=tr,Zr="[object Arguments]",en="[object Array]",tn="[object Object]",rn=Object.prototype.hasOwnProperty;var nn=function(e,t,r,n,o,a){var i=Qr(e),c=Qr(t),s=i?en:Kr(e),u=c?en:Kr(t),p=(s=s==Zr?tn:s)==tn,l=(u=u==Zr?tn:u)==tn,f=s==u;if(f&&Xr(e)){if(!Xr(t))return!1;i=!0,p=!1}if(f&&!p)return a||(a=new Gr),i||Yr(e)?Hr(e,t,r,n,o,a):Wr(e,t,s,r,n,o,a);if(!(1&r)){var v=p&&rn.call(e,"__wrapped__"),h=l&&rn.call(t,"__wrapped__");if(v||h){var y=v?e.value():e,d=h?t.value():t;return a||(a=new Gr),o(y,d,r,n,a)}}return!!f&&(a||(a=new Gr),Jr(e,t,r,n,o,a))},on=Et;var an=function e(t,r,n,o,a){return t===r||(null==t||null==r||!on(t)&&!on(r)?t!=t&&r!=r:nn(t,r,n,o,e,a))},cn=an;var sn=function(e,t){return cn(e,t)},un=["view","cartesian","cartesian4","polar","spherical","stereographic","stereographic4","transform","transform4","vertex","fragment","layer","mask","group","inherit","root","unit","rtt","clock","now","move","present","reveal","slide"],pn=function(t){var r,n=function(e){return un.includes(e)}(t),i=(r=t)?r[0].toLocaleUpperCase()+r.slice(1):"";return e.forwardRef((function(r,c){var s=e.useReducer((function(e){return e+1}),0);s[0];var u=s[1],p=e.useContext(a),l=e.useRef(null),f=e.useRef(void 0);e.useEffect((function(){return function(){l.current&&(l.current.remove(),l.current=null)}}),[]),e.useImperativeHandle(c,(function(){return l.current})),r.children;var v=r.liveProps,h=o(r,["children","liveProps"]);if(e.useEffect((function(){p&&(!function(e){var t=function(e){for(var t=e;t._up;)t=t._up;return t}(e);return void 0===t.three}(p)?(l.current&&(function(e,t){var r;return(null===(r=e._up)||void 0===r?void 0:r[0])===t[0]}(l.current,p)||(l.current.remove(),l.current=null,u())),l.current?(f.current&&v!==f.current&&Object.keys(f.current).forEach((function(e){l.current.unbind(e)})),v&&v!==f.current&&l.current.bind(v),l.current.set(h)):(l.current=p[t](h,v),u()),f.current=v):u())}),[p,h,v]),!n){if(r.children)throw new Error("Component <".concat(i," /> cannot have children."));return null}return e.createElement(a.Provider,{value:l.current},r.children)}))},ln=pn("area"),fn=pn("array"),vn=pn("axis"),hn=pn("camera"),yn=pn("cartesian"),dn=pn("cartesian4"),bn=pn("clamp"),_n=pn("clock"),xn=pn("compose"),jn=pn("dom"),gn=pn("face"),mn=pn("format"),wn=pn("fragment"),On=pn("grid"),Sn=pn("group"),An=pn("grow"),zn=pn("html"),Pn=pn("inherit"),kn=pn("interval"),En=pn("join"),Cn=pn("label"),Rn=pn("layer"),Tn=pn("lerp"),Mn=pn("line"),In=pn("mask"),Fn=pn("matrix"),Ln=pn("memo"),Vn=pn("move"),Bn=pn("now"),Un=pn("play"),Dn=pn("point"),$n=pn("polar"),qn=pn("present"),Nn=pn("readback"),Gn=pn("repeat"),Hn=pn("resample"),Wn=pn("retext"),Jn=pn("reveal"),Kn=pn("rtt"),Qn=pn("scale"),Xn=pn("shader"),Yn=pn("slice"),Zn=pn("slide"),eo=pn("spherical"),to=pn("split"),ro=pn("spread"),no=pn("step"),oo=pn("stereographic"),ao=pn("stereographic4"),io=pn("strip"),co=pn("subdivide"),so=pn("surface"),uo=pn("swizzle"),po=pn("text"),lo=pn("ticks"),fo=pn("transform"),vo=pn("transform4"),ho=pn("transpose"),yo=pn("unit"),bo=pn("vector"),_o=pn("vertex"),xo=pn("view"),jo=pn("volume"),go=pn("voxel"),mo=e.forwardRef((function(i,c){var s,u,p,l=i.container,f=i.children,v=i.options,h=o(i,["container","children","options"]),y=(s=null!=v?v:{},u={},p=e.useRef(u),e.useMemo((function(){return sn(s,p.current)?p.current:(p.current=s,s)}),[s])),d=e.useState(null),b=d[0],_=d[1];return e.useEffect((function(){if(!l)return function(){};var e=r.mathBox(n(n({},y),{element:l}));return _(e),e.three.renderer.setClearColor(new t.Color(16777215),1),e.three.camera.position.set(1,1,2),function(){e.select("*").remove(),e.three.destroy(),_(null)}}),[l,y]),e.useEffect((function(){b&&b.set(h)}),[b,h]),e.useImperativeHandle(c,(function(){return b}),[b]),e.createElement(a.Provider,{value:b},f)})),wo=e.forwardRef((function(t,r){var a=t.children,i=t.containerId,c=t.containerClass,s=t.containerStyle,u=o(t,["children","containerId","containerClass","containerStyle"]),p=e.useState(null),l=p[0],f=p[1];return e.createElement("div",{ref:f,id:i,className:c,style:s},l&&e.createElement(mo,n({ref:r,container:l},u),a))}));exports.Area=ln,exports.Array=fn,exports.Axis=vn,exports.Camera=hn,exports.Cartesian=yn,exports.Cartesian4=dn,exports.Clamp=bn,exports.Clock=_n,exports.Compose=xn,exports.ContainedMathbox=wo,exports.Dom=jn,exports.Face=gn,exports.Format=mn,exports.Fragment=wn,exports.Grid=On,exports.Group=Sn,exports.Grow=An,exports.Html=zn,exports.Inherit=Pn,exports.Interval=kn,exports.Join=En,exports.Label=Cn,exports.Layer=Rn,exports.Lerp=Tn,exports.Line=Mn,exports.Mask=In,exports.Mathbox=mo,exports.Matrix=Fn,exports.Memo=Ln,exports.Move=Vn,exports.Now=Bn,exports.Play=Un,exports.Point=Dn,exports.Polar=$n,exports.Present=qn,exports.Readback=Nn,exports.Repeat=Gn,exports.Resample=Hn,exports.Retext=Wn,exports.Reveal=Jn,exports.Rtt=Kn,exports.Scale=Qn,exports.Shader=Xn,exports.Slice=Yn,exports.Slide=Zn,exports.Spherical=eo,exports.Split=to,exports.Spread=ro,exports.Step=no,exports.Stereographic=oo,exports.Stereographic4=ao,exports.Strip=io,exports.Subdivide=co,exports.Surface=so,exports.Swizzle=uo,exports.Text=po,exports.Ticks=lo,exports.Transform=fo,exports.Transform4=vo,exports.Transpose=ho,exports.Unit=yo,exports.Vector=bo,exports.Vertex=_o,exports.View=xo,exports.Volume=jo,exports.Voxel=go;
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ exports.__esModule = true;
17
+ __exportStar(require("./components"), exports);
18
+ //# sourceMappingURL=index.js.map